From 3ab1645610040adb1fdf28e5d5418396ddfb52bb Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 9 May 2020 00:36:16 -0400 Subject: [PATCH 01/34] Add pyopenssl dependencies --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 7d0e464..883a26d 100644 --- a/setup.py +++ b/setup.py @@ -16,6 +16,7 @@ setuptools.setup( author="Michael Lazar", author_email="lazar.michael22@gmail.com", description="An Experimental Gemini Server", + install_requires=["cryptography", "pyopenssl"], long_description=long_description(), long_description_content_type="text/markdown", py_modules=["jetforce", "jetforce_client", "jetforce_diagnostics"], From aef44e9db70ce27f6d5658eb4842d3499b1229cf Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 9 May 2020 00:38:32 -0400 Subject: [PATCH 02/34] Simplify argument parsing --- jetforce.py | 147 +++++++++++++++++++++++++++------------------------- 1 file changed, 75 insertions(+), 72 deletions(-) diff --git a/jetforce.py b/jetforce.py index 79aa538..091e89d 100755 --- a/jetforce.py +++ b/jetforce.py @@ -72,6 +72,80 @@ An Experimental Gemini Server, v{__version__} https://github.com/michael-lazar/jetforce """ +# fmt: off +# noinspection PyTypeChecker +parser = argparse.ArgumentParser( + prog="jetforce", + description="An Experimental Gemini Protocol Server", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, +) +parser.add_argument( + "-V", "--version", + action="version", + version="jetforce " + __version__ +) +parser.add_argument( + "--host", + help="Server address to bind to", + default="127.0.0.1" +) +parser.add_argument( + "--port", + help="Server port to bind to", + type=int, + default=1965 +) +parser.add_argument( + "--hostname", + help="Server hostname", + default="localhost" +) +parser.add_argument( + "--tls-certfile", + dest="certfile", + help="Server TLS certificate file", + metavar="FILE", +) +parser.add_argument( + "--tls-keyfile", + dest="keyfile", + help="Server TLS private key file", + metavar="FILE", +) +parser.add_argument( + "--tls-cafile", + dest="cafile", + help="A CA file to use for validating clients", + metavar="FILE", +) +parser.add_argument( + "--tls-capath", + dest="capath", + help="A directory containing CA files for validating clients", + metavar="DIR", +) +# Arguments below this line are specific to the StaticDirectoryApplication +parser.add_argument( + "--dir", + help="Root directory on the filesystem to serve", + default="/var/gemini", + metavar="DIR", +) +parser.add_argument( + "--cgi-dir", + help="CGI script directory, relative to the server's root directory", + default="cgi-bin", + metavar="DIR", +) +parser.add_argument( + "--index-file", + help="If a directory contains a file with this name, " + "that file will be served instead of auto-generating an index page", + default="index.gmi", + metavar="FILE", +) +# fmt: on + class Status: """ @@ -739,87 +813,16 @@ def make_ssl_context( return context -def command_line_parser() -> argparse.ArgumentParser: - """ - Construct the default argument parser when launching the server from - the command line. These are meant to be application-agnostic arguments - that could apply to any subclass of the JetforceApplication. - """ - parser = argparse.ArgumentParser( - prog="jetforce", - description="An Experimental Gemini Protocol Server", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - parser.add_argument( - "-V", "--version", action="version", version="jetforce " + __version__ - ) - parser.add_argument("--host", help="Server address to bind to", default="127.0.0.1") - parser.add_argument("--port", help="Server port to bind to", type=int, default=1965) - parser.add_argument("--hostname", help="Server hostname", default="localhost") - parser.add_argument( - "--tls-certfile", - dest="certfile", - help="Server TLS certificate file", - metavar="FILE", - ) - parser.add_argument( - "--tls-keyfile", - dest="keyfile", - help="Server TLS private key file", - metavar="FILE", - ) - parser.add_argument( - "--tls-cafile", - dest="cafile", - help="A CA file to use for validating clients", - metavar="FILE", - ) - parser.add_argument( - "--tls-capath", - dest="capath", - help="A directory containing CA files for validating clients", - metavar="DIR", - ) - return parser - - def run_server() -> None: """ Entry point for running the static directory server. """ - parser = command_line_parser() - parser.add_argument( - "--dir", - help="Root directory on the filesystem to serve", - default="/var/gemini", - metavar="DIR", - ) - parser.add_argument( - "--cgi-dir", - help="CGI script directory, relative to the server's root directory", - default="cgi-bin", - metavar="DIR", - ) - parser.add_argument( - "--index-file", - help="If a directory contains a file with this name, that file will be " - "served instead of auto-generating an index page", - default="index.gmi", - metavar="FILE", - ) args = parser.parse_args() - app = StaticDirectoryApplication(args.dir, args.index_file, args.cgi_dir) ssl_context = make_ssl_context( args.hostname, args.certfile, args.keyfile, args.cafile, args.capath ) - server = GeminiServer( - host=args.host, - port=args.port, - ssl_context=ssl_context, - hostname=args.hostname, - app=app, - ) + server = GeminiServer(app, args.host, args.port, ssl_context, args.hostname) asyncio.run(server.run()) From c369c3b9fdbcc0a9261ff1285b385d294251b776 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 9 May 2020 00:58:16 -0400 Subject: [PATCH 03/34] Use cryptography to generate certificates --- jetforce.py | 57 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/jetforce.py b/jetforce.py index 091e89d..ee3c947 100755 --- a/jetforce.py +++ b/jetforce.py @@ -38,6 +38,7 @@ import argparse import asyncio import codecs import dataclasses +import datetime import mimetypes import os import pathlib @@ -51,6 +52,11 @@ import time import typing import urllib.parse +from cryptography import x509 +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes, serialization +from cryptography.hazmat.primitives.asymmetric import rsa + if sys.version_info < (3, 7): sys.exit("Fatal Error: jetforce requires Python 3.7+") @@ -756,22 +762,45 @@ class GeminiServer: def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: """ - Utility function to generate a self-signed SSL certificate key pair if - one isn't provided. Results may vary depending on your version of OpenSSL. + Utility function to generate an ad-hoc self-signed SSL certificate. """ - certfile = pathlib.Path(tempfile.gettempdir()) / f"{hostname}.crt" - keyfile = pathlib.Path(tempfile.gettempdir()) / f"{hostname}.key" - if not certfile.exists() or not keyfile.exists(): - print(f"Writing ad hoc TLS certificate to {certfile}") - subprocess.run( - [ - f"openssl req -newkey rsa:2048 -nodes -keyout {keyfile}" - f' -nodes -x509 -out {certfile} -subj "/CN={hostname}"' - ], - shell=True, - check=True, + certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") + keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") + + if not os.path.exists(certfile) or not os.path.exists(keyfile): + backend = default_backend() + + print("Generating private key...", file=sys.stderr) + private_key = rsa.generate_private_key(65537, 2048, default_backend()) + with open(keyfile, "wb") as fp: + # noinspection PyTypeChecker + key_data = private_key.private_bytes( + serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption(), + ) + fp.write(key_data) + + print("Generating certificate...", file=sys.stderr) + common_name = x509.NameAttribute(x509.NameOID.COMMON_NAME, hostname) + subject_name = x509.Name([common_name]) + not_valid_before = datetime.datetime.utcnow() + not_valid_after = not_valid_before + datetime.timedelta(days=365) + certificate = x509.CertificateBuilder( + subject_name=subject_name, + issuer_name=subject_name, + public_key=private_key.public_key(), + serial_number=x509.random_serial_number(), + not_valid_before=not_valid_before, + not_valid_after=not_valid_after, ) - return str(certfile), str(keyfile) + certificate = certificate.sign(private_key, hashes.SHA256(), backend) + with open(certfile, "wb") as fp: + # noinspection PyTypeChecker + cert_data = certificate.public_bytes(serialization.Encoding.PEM) + fp.write(cert_data) + + return certfile, keyfile def make_ssl_context( From 7996b49792b6cba15d17304578ebfe6f03b059da Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 9 May 2020 01:34:02 -0400 Subject: [PATCH 04/34] Move server framework from asyncio to socketserver --- jetforce.py | 179 +++++++++++++++++++++++----------------------------- 1 file changed, 80 insertions(+), 99 deletions(-) diff --git a/jetforce.py b/jetforce.py index ee3c947..ba1250e 100755 --- a/jetforce.py +++ b/jetforce.py @@ -35,7 +35,6 @@ StaticDirectoryApplication: from __future__ import annotations import argparse -import asyncio import codecs import dataclasses import datetime @@ -44,6 +43,7 @@ import os import pathlib import re import socket +import socketserver import ssl import subprocess import sys @@ -453,7 +453,7 @@ class StaticDirectoryApplication(JetforceApplication): def load_file(self, filesystem_path: pathlib.Path) -> typing.Iterator[bytes]: """ - Load a file using a generator to allow streaming data to the TCP socket. + Load a file in chunks to allow streaming to the TCP socket. """ with filesystem_path.open("rb") as fp: data = fp.read(1024) @@ -514,7 +514,7 @@ class StaticDirectoryApplication(JetforceApplication): return Response(Status.NOT_FOUND, "Not Found") -class GeminiRequestHandler: +class GeminiRequestHandler(socketserver.StreamRequestHandler): """ Handle a single Gemini Protocol TCP request. @@ -534,55 +534,40 @@ class GeminiRequestHandler: TIMESTAMP_FORMAT = "%d/%b/%Y:%H:%M:%S %z" - reader: asyncio.StreamReader - writer: asyncio.StreamWriter + server: GeminiServer received_timestamp: time.struct_time - remote_addr: str - client_cert: dict url: str status: int meta: str response_buffer: str response_size: int - def __init__(self, server: GeminiServer, app: typing.Callable) -> None: - self.server = server - self.app = app + def setup(self) -> None: self.response_size = 0 + self.response_buffer = "" + super().setup() - async def handle( - self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter - ) -> None: + def handle(self) -> None: """ - Main method for the request handler, performs the following: - - 1. Read the request bytes from the reader stream - 2. Parse the request and generate response data - 3. Write the response bytes to the writer stream + The request handler entry point, called once for each connection. """ - self.reader = reader - self.writer = writer - self.remote_addr = writer.get_extra_info("peername")[0] - self.client_cert = writer.get_extra_info("peercert") self.received_timestamp = time.localtime() + self.request.do_handshake() try: - await self.parse_header() + self.parse_header() except Exception: # Malformed request, throw it away and exit immediately self.write_status(Status.BAD_REQUEST, "Malformed request") - return await self.close_connection() + return try: environ = self.build_environ() - app = self.app(environ, self.write_status) - for data in app: - await self.write_body(data) + response_generator = self.server.app(environ, self.write_status) + for data in response_generator: + self.write_body(data) except Exception: self.write_status(Status.CGI_ERROR, "An unexpected error occurred") - raise - finally: - await self.close_connection() def build_environ(self) -> typing.Dict[str, typing.Any]: """ @@ -591,41 +576,43 @@ class GeminiRequestHandler: Variable names conform to the CGI spec defined in RFC 3875. """ url_parts = urllib.parse.urlparse(self.url) + remote_addr, remote_port, *_ = self.client_address environ = { "GEMINI_URL": self.url, "HOSTNAME": self.server.hostname, "PATH_INFO": url_parts.path, "QUERY_STRING": url_parts.query, - "REMOTE_ADDR": self.remote_addr, - "REMOTE_HOST": self.remote_addr, + "REMOTE_ADDR": remote_addr, + "REMOTE_HOST": remote_addr, "SERVER_NAME": self.server.hostname, - "SERVER_PORT": str(self.server.port), + "SERVER_PORT": str(remote_port), "SERVER_PROTOCOL": "GEMINI", "SERVER_SOFTWARE": f"jetforce/{__version__}", } - if self.client_cert: - subject = dict(x[0] for x in self.client_cert["subject"]) + client_cert = self.request.getpeercert() + if client_cert: + subject = dict(x[0] for x in client_cert["subject"]) environ.update( { "AUTH_TYPE": "CERTIFICATE", "REMOTE_USER": subject.get("commonName", ""), - "TLS_CLIENT_NOT_BEFORE": self.client_cert["notBefore"], - "TLS_CLIENT_NOT_AFTER": self.client_cert["notAfter"], - "TLS_CLIENT_SERIAL_NUMBER": self.client_cert["serialNumber"], + "TLS_CLIENT_NOT_BEFORE": client_cert["notBefore"], + "TLS_CLIENT_NOT_AFTER": client_cert["notAfter"], + "TLS_CLIENT_SERIAL_NUMBER": client_cert["serialNumber"], } ) return environ - async def parse_header(self) -> None: + def parse_header(self) -> None: """ Parse the gemini header line. The request is a single UTF-8 line formatted as: \r\n """ - data = await self.reader.readuntil(b"\r\n") - data = data[:-2] # strip the line ending + data = self.rfile.readline(1026) + data = data.rstrip(b"\r\n") if len(data) > 1024: raise ValueError("URL exceeds max length of 1024 bytes") @@ -650,53 +637,48 @@ class GeminiRequestHandler: self.meta = meta self.response_buffer = f"{status}\t{meta}\r\n" - async def write_body(self, data: bytes) -> None: + def write_body(self, data: bytes) -> None: """ Write bytes to the gemini response body. """ - await self.flush_status() + self.flush_status() self.response_size += len(data) - self.writer.write(data) - await self.writer.drain() + self.wfile.write(data) - async def flush_status(self) -> None: + def flush_status(self) -> None: """ Flush the status line from the internal buffer to the socket stream. """ if self.response_buffer and not self.response_size: data = self.response_buffer.encode() self.response_size += len(data) - self.writer.write(data) - await self.writer.drain() + self.wfile.write(data) self.response_buffer = "" - async def close_connection(self) -> None: - """ - Flush any remaining bytes and close the stream. - """ - await self.flush_status() - self.log_request() - await self.writer.drain() + def finish(self) -> None: + self.flush_status() + try: + self.log_request() + except AttributeError: + # Malformed request or dropped connection + pass + super().finish() def log_request(self) -> None: """ Log a gemini request using a format derived from the Common Log Format. """ - try: - self.server.log_message( - f"{self.remote_addr} " - f"[{time.strftime(self.TIMESTAMP_FORMAT, self.received_timestamp)}] " - f'"{self.url}" ' - f"{self.status} " - f'"{self.meta}" ' - f"{self.response_size}" - ) - except AttributeError: - # Malformed request or dropped connection - pass + self.server.log_message( + f"{self.client_address[0]} " + f"[{time.strftime(self.TIMESTAMP_FORMAT, self.received_timestamp)}] " + f'"{self.url}" ' + f"{self.status} " + f'"{self.meta}" ' + f"{self.response_size}" + ) -class GeminiServer: +class GeminiServer(socketserver.ThreadingTCPServer): """ An asynchronous TCP server that uses the asyncio stream abstraction. @@ -715,47 +697,46 @@ class GeminiServer: hostname: str = "localhost", ) -> None: - self.host = host - self.port = port - self.hostname = hostname self.app = app + self.hostname = hostname self.ssl_context = ssl_context + super().__init__((host, port), self.request_handler_class, False) - async def run(self) -> None: + def run(self) -> None: """ - The main asynchronous server loop. + Launch the main server loop. """ self.log_message(ABOUT) - server = await asyncio.start_server( - self.accept_connection, self.host, self.port, ssl=self.ssl_context - ) - self.log_message(f"Server hostname is {self.hostname}") - for sock in server.sockets: - sock_ip, sock_port, *_ = sock.getsockname() - if sock.family == socket.AF_INET: - self.log_message(f"Listening on {sock_ip}:{sock_port}") - else: - self.log_message(f"Listening on [{sock_ip}]:{sock_port}") - - async with server: - await server.serve_forever() - - async def accept_connection( - self, reader: asyncio.StreamReader, writer: asyncio.StreamWriter - ) -> None: - """ - Hook called by the socket server when a new connection is accepted. - """ - request_handler = self.request_handler_class(self, self.app) try: - await request_handler.handle(reader, writer) - finally: - writer.close() + self.server_bind() + self.server_activate() + except Exception: + self.server_close() + raise + + sock_ip, sock_port, *_ = self.server_address + if self.address_family == socket.AF_INET: + self.log_message(f"Listening on {sock_ip}:{sock_port}") + else: + self.log_message(f"Listening on [{sock_ip}]:{sock_port}") + + self.serve_forever() + + def get_request(self): + """ + Wrap the incoming request in an SSL connection. + """ + # noinspection PyTupleAssignmentBalance + sock, client_addr = super(GeminiServer, self).get_request() + ssl_sock = self.ssl_context.wrap_socket( + sock, server_side=True, do_handshake_on_connect=False + ) + return ssl_sock, client_addr def log_message(self, message: str) -> None: """ - Log a diagnostic server message. + Log a diagnostic server message to stderr, may be overridden. """ print(message, file=sys.stderr) @@ -852,7 +833,7 @@ def run_server() -> None: args.hostname, args.certfile, args.keyfile, args.cafile, args.capath ) server = GeminiServer(app, args.host, args.port, ssl_context, args.hostname) - asyncio.run(server.run()) + server.run() if __name__ == "__main__": From ef4023bd5c233544df943be6a7eee1f8e9a1aa05 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 10 May 2020 22:16:36 -0400 Subject: [PATCH 05/34] pyOpenSSL + SocketServer WIP --- jetforce.py | 45 ++++++++++++++++----------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/jetforce.py b/jetforce.py index ba1250e..bb0e852 100755 --- a/jetforce.py +++ b/jetforce.py @@ -44,7 +44,6 @@ import pathlib import re import socket import socketserver -import ssl import subprocess import sys import tempfile @@ -56,6 +55,7 @@ from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes, serialization from cryptography.hazmat.primitives.asymmetric import rsa +from OpenSSL import SSL if sys.version_info < (3, 7): sys.exit("Fatal Error: jetforce requires Python 3.7+") @@ -693,7 +693,7 @@ class GeminiServer(socketserver.ThreadingTCPServer): app: typing.Callable, host: str = "127.0.0.1", port: int = 1965, - ssl_context: ssl.SSLContext = None, + ssl_context: SSL.Context = None, hostname: str = "localhost", ) -> None: @@ -723,16 +723,14 @@ class GeminiServer(socketserver.ThreadingTCPServer): self.serve_forever() - def get_request(self): + def get_request(self) -> typing.Tuple[SSL.Connection, typing.Tuple[str, int]]: """ Wrap the incoming request in an SSL connection. """ # noinspection PyTupleAssignmentBalance sock, client_addr = super(GeminiServer, self).get_request() - ssl_sock = self.ssl_context.wrap_socket( - sock, server_side=True, do_handshake_on_connect=False - ) - return ssl_sock, client_addr + sock = SSL.Connection(self.ssl_context, sock) + return sock, client_addr def log_message(self, message: str) -> None: """ @@ -790,36 +788,25 @@ def make_ssl_context( keyfile: typing.Optional[str] = None, cafile: typing.Optional[str] = None, capath: typing.Optional[str] = None, -) -> ssl.SSLContext: +) -> SSL.Context: """ Generate a sane default SSL context for a Gemini server. - - For more information on what these variables mean and what values they can - contain, see the python standard library documentation: - - https://docs.python.org/3/library/ssl.html#ssl-contexts - - verify_mode: ssl.CERT_OPTIONAL - A client certificate request is sent to the client. The client may - either ignore the request or send a certificate in order perform TLS - client cert authentication. If the client chooses to send a certificate, - it is verified. Any verification error immediately aborts the TLS - handshake. """ if certfile is None: certfile, keyfile = generate_ad_hoc_certificate(hostname) - context = ssl.SSLContext() - context.verify_mode = ssl.CERT_OPTIONAL - context.load_cert_chain(certfile, keyfile) - - if not cafile and not capath: - # Load from the system's default client CA directory - context.load_default_certs(purpose=ssl.Purpose.CLIENT_AUTH) - else: - # Use a custom CA for validating client certificates + context = SSL.Context(SSL.TLSv1_2_METHOD) + context.use_certificate_file(certfile) + context.use_privatekey_file(keyfile or certfile) + context.check_privatekey() + if cafile or capath: context.load_verify_locations(cafile, capath) + def verify_cb(connection, x509, err_no, err_depth, return_code): + pass + + context.set_verify(SSL.VERIFY_PEER, verify_cb) + return context From 335d79ad5489f1c8951710a5d549ba558fa92b13 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 12 May 2020 23:50:12 -0400 Subject: [PATCH 06/34] Move server framework from socketserver to twisted :) --- jetforce.py | 374 +++++++++++++++++++++++++++++++--------------------- setup.py | 2 +- 2 files changed, 223 insertions(+), 153 deletions(-) diff --git a/jetforce.py b/jetforce.py index bb0e852..12a37f2 100755 --- a/jetforce.py +++ b/jetforce.py @@ -35,6 +35,7 @@ StaticDirectoryApplication: from __future__ import annotations import argparse +import base64 import codecs import dataclasses import datetime @@ -43,7 +44,6 @@ import os import pathlib import re import socket -import socketserver import subprocess import sys import tempfile @@ -56,6 +56,16 @@ from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes, serialization from cryptography.hazmat.primitives.asymmetric import rsa from OpenSSL import SSL +from twisted.internet import reactor +from twisted.internet.base import ReactorBase +from twisted.internet.endpoints import SSL4ServerEndpoint +from twisted.internet.protocol import Factory +from twisted.internet.ssl import CertificateOptions +from twisted.internet.tcp import Port +from twisted.protocols.basic import LineOnlyReceiver + +CN = x509.NameOID.COMMON_NAME + if sys.version_info < (3, 7): sys.exit("Fatal Error: jetforce requires Python 3.7+") @@ -264,6 +274,49 @@ class RoutePattern: return re.fullmatch(self.path, request_path) +def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: + """ + Utility function to generate an ad-hoc self-signed SSL certificate. + """ + certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") + keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") + + if not os.path.exists(certfile) or not os.path.exists(keyfile): + backend = default_backend() + + print("Generating private key...", file=sys.stderr) + private_key = rsa.generate_private_key(65537, 2048, default_backend()) + with open(keyfile, "wb") as fp: + # noinspection PyTypeChecker + key_data = private_key.private_bytes( + serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption(), + ) + fp.write(key_data) + + print("Generating certificate...", file=sys.stderr) + common_name = x509.NameAttribute(CN, hostname) + subject_name = x509.Name([common_name]) + not_valid_before = datetime.datetime.utcnow() + not_valid_after = not_valid_before + datetime.timedelta(days=365) + certificate = x509.CertificateBuilder( + subject_name=subject_name, + issuer_name=subject_name, + public_key=private_key.public_key(), + serial_number=x509.random_serial_number(), + not_valid_before=not_valid_before, + not_valid_after=not_valid_after, + ) + certificate = certificate.sign(private_key, hashes.SHA256(), backend) + with open(certfile, "wb") as fp: + # noinspection PyTypeChecker + cert_data = certificate.public_bytes(serialization.Encoding.PEM) + fp.write(cert_data) + + return certfile, keyfile + + class JetforceApplication: """ Base Jetforce application class with primitive URL routing. @@ -514,7 +567,46 @@ class StaticDirectoryApplication(JetforceApplication): return Response(Status.NOT_FOUND, "Not Found") -class GeminiRequestHandler(socketserver.StreamRequestHandler): +class GeminiTLSContextFactory: + """ + Generate a sane default SSL context for a Gemini server. + """ + + def __init__( + self, + hostname: str = "localhost", + certfile: typing.Optional[str] = None, + keyfile: typing.Optional[str] = None, + cafile: typing.Optional[str] = None, + capath: typing.Optional[str] = None, + ): + if certfile is None: + certfile, keyfile = generate_ad_hoc_certificate(hostname) + + context = SSL.Context(SSL.TLSv1_2_METHOD) + context.use_certificate_file(certfile) + context.use_privatekey_file(keyfile or certfile) + context.check_privatekey() + if cafile or capath: + context.load_verify_locations(cafile, capath) + context.set_verify(SSL.VERIFY_PEER, self.verify_cb) + self.context = context + + def getContext(self) -> SSL.Context: + """ + Return the SSL context, this method must be implemented for twisted. + """ + return self.context + + def verify_cb(self, connection, x509, err_no, err_depth, return_code): + """ + Disable all peer certificate validation at the openSSL level in order + to allow self-signed client certificates. + """ + return True + + +class GeminiProtocol(LineOnlyReceiver): """ Handle a single Gemini Protocol TCP request. @@ -534,26 +626,49 @@ class GeminiRequestHandler(socketserver.StreamRequestHandler): TIMESTAMP_FORMAT = "%d/%b/%Y:%H:%M:%S %z" - server: GeminiServer - received_timestamp: time.struct_time + connected_timestamp: time.struct_time + request: bytes url: str status: int meta: str response_buffer: str response_size: int - def setup(self) -> None: + def __init__(self, server: GeminiServer, app: JetforceApplication): + self.server = server + self.app = app + + def connectionMade(self): + """ + This is invoked by twisted after the connection is first established. + """ + self.connected_timestamp = time.localtime() self.response_size = 0 self.response_buffer = "" - super().setup() - def handle(self) -> None: + def lineReceived(self, line): """ - The request handler entry point, called once for each connection. - """ - self.received_timestamp = time.localtime() - self.request.do_handshake() + This method is invoked by LineOnlyReceiver for every incoming line. + Because Gemini requests are only ever a single line long, this will + only be called once and we can use it to handle the lifetime of the + connection without managing any state. + """ + self.request = line + try: + try: + self.handle() + finally: + self.flush_status() + try: + self.log_request() + except Exception: + # Malformed request or dropped connection + pass + finally: + self.transport.loseConnection() + + def handle(self): try: self.parse_header() except Exception: @@ -563,7 +678,7 @@ class GeminiRequestHandler(socketserver.StreamRequestHandler): try: environ = self.build_environ() - response_generator = self.server.app(environ, self.write_status) + response_generator = self.app(environ, self.write_status) for data in response_generator: self.write_body(data) except Exception: @@ -576,30 +691,39 @@ class GeminiRequestHandler(socketserver.StreamRequestHandler): Variable names conform to the CGI spec defined in RFC 3875. """ url_parts = urllib.parse.urlparse(self.url) - remote_addr, remote_port, *_ = self.client_address + client_addr = self.transport.getPeer() environ = { "GEMINI_URL": self.url, "HOSTNAME": self.server.hostname, "PATH_INFO": url_parts.path, "QUERY_STRING": url_parts.query, - "REMOTE_ADDR": remote_addr, - "REMOTE_HOST": remote_addr, + "REMOTE_ADDR": client_addr.host, + "REMOTE_HOST": client_addr.host, "SERVER_NAME": self.server.hostname, - "SERVER_PORT": str(remote_port), + "SERVER_PORT": str(client_addr.port), "SERVER_PROTOCOL": "GEMINI", "SERVER_SOFTWARE": f"jetforce/{__version__}", } - client_cert = self.request.getpeercert() - if client_cert: - subject = dict(x[0] for x in client_cert["subject"]) + openssl_cert = self.transport.getPeerCertificate() + if openssl_cert: + # Extract useful information from the client certificate. These + # mostly follow the naming convention from GLV-1.12556 + cert = openssl_cert.to_cryptography() + name_attrs = cert.subject.get_attributes_for_oid(CN) + common_name = name_attrs[0].value if name_attrs else "" + fingerprint_bytes = cert.fingerprint(hashes.SHA256()) + fingerprint = base64.b64encode(fingerprint_bytes).decode() + not_before = cert.not_valid_before.strftime("%Y-%m-%dT%H:%M:%SZ") + not_after = cert.not_valid_after.strftime("%Y-%m-%dT%H:%M:%SZ") environ.update( { "AUTH_TYPE": "CERTIFICATE", - "REMOTE_USER": subject.get("commonName", ""), - "TLS_CLIENT_NOT_BEFORE": client_cert["notBefore"], - "TLS_CLIENT_NOT_AFTER": client_cert["notAfter"], - "TLS_CLIENT_SERIAL_NUMBER": client_cert["serialNumber"], + "REMOTE_USER": common_name, + "TLS_CLIENT_HASH": fingerprint, + "TLS_CLIENT_NOT_BEFORE": not_before, + "TLS_CLIENT_NOT_AFTER": not_after, + "TLS_CLIENT_SERIAL_NUMBER": cert.serial_number, } ) @@ -611,12 +735,10 @@ class GeminiRequestHandler(socketserver.StreamRequestHandler): The request is a single UTF-8 line formatted as: \r\n """ - data = self.rfile.readline(1026) - data = data.rstrip(b"\r\n") - if len(data) > 1024: + if len(self.request) > 1024: raise ValueError("URL exceeds max length of 1024 bytes") - self.url = data.decode() + self.url = self.request.decode() def write_status(self, status: int, meta: str) -> None: """ @@ -643,7 +765,7 @@ class GeminiRequestHandler(socketserver.StreamRequestHandler): """ self.flush_status() self.response_size += len(data) - self.wfile.write(data) + self.transport.write(data) def flush_status(self) -> None: """ @@ -652,162 +774,113 @@ class GeminiRequestHandler(socketserver.StreamRequestHandler): if self.response_buffer and not self.response_size: data = self.response_buffer.encode() self.response_size += len(data) - self.wfile.write(data) + self.transport.write(data) self.response_buffer = "" - def finish(self) -> None: - self.flush_status() - try: - self.log_request() - except AttributeError: - # Malformed request or dropped connection - pass - super().finish() - def log_request(self) -> None: """ Log a gemini request using a format derived from the Common Log Format. """ - self.server.log_message( - f"{self.client_address[0]} " - f"[{time.strftime(self.TIMESTAMP_FORMAT, self.received_timestamp)}] " - f'"{self.url}" ' - f"{self.status} " - f'"{self.meta}" ' - f"{self.response_size}" + message = '{} [{}] "{}" {} {} {}'.format( + self.transport.getPeer().host, + time.strftime(self.TIMESTAMP_FORMAT, self.connected_timestamp), + self.url, + self.status, + self.meta, + self.response_size, ) + self.server.log_message(message) -class GeminiServer(socketserver.ThreadingTCPServer): +class GeminiServer(Factory): """ - An asynchronous TCP server that uses the asyncio stream abstraction. + This class acts as a wrapper around most of the plumbing for twisted. - This is a lightweight class that accepts incoming requests, logs them, and - sends them to a configurable request handler to be processed. + There's not much going on here, the main intention is to make it as simple + as possible to import and run a server without needing to understand the + complicated class hierarchy and conventions defined by twisted. """ - request_handler_class = GeminiRequestHandler + # Initializes the pyOpenSSL context object, you may want to override this + # to customize your server's TLS configuration. + tls_context_factory_class = GeminiTLSContextFactory + + # Request handler class, you probably don't want to override this. + protocol_class = GeminiProtocol + + # The TLS twisted interface class is confusingly named SSL4, even though it + # will accept either IPv4 & IPv6 interfaces. + endpoint_class = SSL4ServerEndpoint def __init__( self, app: typing.Callable, + reactor: ReactorBase = reactor, host: str = "127.0.0.1", port: int = 1965, - ssl_context: SSL.Context = None, hostname: str = "localhost", - ) -> None: - + certfile: typing.Optional[str] = None, + keyfile: typing.Optional[str] = None, + cafile: typing.Optional[str] = None, + capath: typing.Optional[str] = None, + **_, + ): self.app = app + self.reactor = reactor + self.host = host + self.port = port self.hostname = hostname - self.ssl_context = ssl_context - super().__init__((host, port), self.request_handler_class, False) + self.certfile = certfile + self.keyfile = keyfile + self.cafile = cafile + self.capath = capath - def run(self) -> None: + def log_message(self, message: str) -> None: """ - Launch the main server loop. + Log a diagnostic server message to stderr. """ - self.log_message(ABOUT) - self.log_message(f"Server hostname is {self.hostname}") - try: - self.server_bind() - self.server_activate() - except Exception: - self.server_close() - raise + print(message, file=sys.stderr) - sock_ip, sock_port, *_ = self.server_address - if self.address_family == socket.AF_INET: + def on_bind_interface(self, port: Port) -> None: + """ + Log when the server binds to an interface. + """ + sock_ip, sock_port, *_ = port.socket.getsockname() + if port.addressFamily == socket.AF_INET: self.log_message(f"Listening on {sock_ip}:{sock_port}") else: self.log_message(f"Listening on [{sock_ip}]:{sock_port}") - self.serve_forever() - - def get_request(self) -> typing.Tuple[SSL.Connection, typing.Tuple[str, int]]: + def buildProtocol(self, addr) -> GeminiProtocol: """ - Wrap the incoming request in an SSL connection. + This method is invoked by twisted once for every incoming connection. + + It builds the protocol instance which acts as a request handler and + implements the actual Gemini protocol. """ - # noinspection PyTupleAssignmentBalance - sock, client_addr = super(GeminiServer, self).get_request() - sock = SSL.Connection(self.ssl_context, sock) - return sock, client_addr + return GeminiProtocol(self, self.app) - def log_message(self, message: str) -> None: + def run(self) -> None: """ - Log a diagnostic server message to stderr, may be overridden. + This is the main server loop. """ - print(message, file=sys.stderr) - - -def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: - """ - Utility function to generate an ad-hoc self-signed SSL certificate. - """ - certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") - keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") - - if not os.path.exists(certfile) or not os.path.exists(keyfile): - backend = default_backend() - - print("Generating private key...", file=sys.stderr) - private_key = rsa.generate_private_key(65537, 2048, default_backend()) - with open(keyfile, "wb") as fp: - # noinspection PyTypeChecker - key_data = private_key.private_bytes( - serialization.Encoding.PEM, - format=serialization.PrivateFormat.TraditionalOpenSSL, - encryption_algorithm=serialization.NoEncryption(), - ) - fp.write(key_data) - - print("Generating certificate...", file=sys.stderr) - common_name = x509.NameAttribute(x509.NameOID.COMMON_NAME, hostname) - subject_name = x509.Name([common_name]) - not_valid_before = datetime.datetime.utcnow() - not_valid_after = not_valid_before + datetime.timedelta(days=365) - certificate = x509.CertificateBuilder( - subject_name=subject_name, - issuer_name=subject_name, - public_key=private_key.public_key(), - serial_number=x509.random_serial_number(), - not_valid_before=not_valid_before, - not_valid_after=not_valid_after, + self.log_message(ABOUT) + self.log_message(f"Server hostname is {self.hostname}") + tls_context_factory = self.tls_context_factory_class( + hostname=self.hostname, + certfile=self.certfile, + keyfile=self.keyfile, + cafile=self.cafile, + capath=self.capath, ) - certificate = certificate.sign(private_key, hashes.SHA256(), backend) - with open(certfile, "wb") as fp: - # noinspection PyTypeChecker - cert_data = certificate.public_bytes(serialization.Encoding.PEM) - fp.write(cert_data) - - return certfile, keyfile - - -def make_ssl_context( - hostname: str = "localhost", - certfile: typing.Optional[str] = None, - keyfile: typing.Optional[str] = None, - cafile: typing.Optional[str] = None, - capath: typing.Optional[str] = None, -) -> SSL.Context: - """ - Generate a sane default SSL context for a Gemini server. - """ - if certfile is None: - certfile, keyfile = generate_ad_hoc_certificate(hostname) - - context = SSL.Context(SSL.TLSv1_2_METHOD) - context.use_certificate_file(certfile) - context.use_privatekey_file(keyfile or certfile) - context.check_privatekey() - if cafile or capath: - context.load_verify_locations(cafile, capath) - - def verify_cb(connection, x509, err_no, err_depth, return_code): - pass - - context.set_verify(SSL.VERIFY_PEER, verify_cb) - - return context + endpoint = self.endpoint_class( + reactor=self.reactor, + port=self.port, + sslContextFactory=tls_context_factory, + interface=self.host, + ) + endpoint.listen(self).addCallback(self.on_bind_interface) + self.reactor.run() def run_server() -> None: @@ -816,10 +889,7 @@ def run_server() -> None: """ args = parser.parse_args() app = StaticDirectoryApplication(args.dir, args.index_file, args.cgi_dir) - ssl_context = make_ssl_context( - args.hostname, args.certfile, args.keyfile, args.cafile, args.capath - ) - server = GeminiServer(app, args.host, args.port, ssl_context, args.hostname) + server = GeminiServer(app, **vars(args)) server.run() diff --git a/setup.py b/setup.py index 883a26d..30275dd 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setuptools.setup( author="Michael Lazar", author_email="lazar.michael22@gmail.com", description="An Experimental Gemini Server", - install_requires=["cryptography", "pyopenssl"], + install_requires=["cryptography", "pyopenssl", "twisted"], long_description=long_description(), long_description_content_type="text/markdown", py_modules=["jetforce", "jetforce_client", "jetforce_diagnostics"], From 124de25502efba2f3eb97784d5aa3ceb72e72ff3 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Wed, 13 May 2020 00:32:51 -0400 Subject: [PATCH 07/34] Polishing up the twisted interface --- jetforce.py | 83 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/jetforce.py b/jetforce.py index 12a37f2..569301f 100755 --- a/jetforce.py +++ b/jetforce.py @@ -57,6 +57,7 @@ from cryptography.hazmat.primitives import hashes, serialization from cryptography.hazmat.primitives.asymmetric import rsa from OpenSSL import SSL from twisted.internet import reactor +from twisted.internet.address import IPv4Address, IPv6Address from twisted.internet.base import ReactorBase from twisted.internet.endpoints import SSL4ServerEndpoint from twisted.internet.protocol import Factory @@ -626,6 +627,8 @@ class GeminiProtocol(LineOnlyReceiver): TIMESTAMP_FORMAT = "%d/%b/%Y:%H:%M:%S %z" + client_addr: typing.Union[IPv4Address, IPv6Address] + client_cert: typing.Optional[x509.Certificate] connected_timestamp: time.struct_time request: bytes url: str @@ -645,6 +648,12 @@ class GeminiProtocol(LineOnlyReceiver): self.connected_timestamp = time.localtime() self.response_size = 0 self.response_buffer = "" + self.client_addr = self.transport.getPeer() + self.client_cert = None + + peer_cert = self.transport.getPeerCertificate() + if peer_cert: + self.client_cert = peer_cert.to_cryptography() def lineReceived(self, line): """ @@ -656,25 +665,19 @@ class GeminiProtocol(LineOnlyReceiver): """ self.request = line try: - try: - self.handle() - finally: - self.flush_status() - try: - self.log_request() - except Exception: - # Malformed request or dropped connection - pass + self.handle_request() finally: + self.log_request() self.transport.loseConnection() - def handle(self): + def handle_request(self): try: self.parse_header() except Exception: # Malformed request, throw it away and exit immediately self.write_status(Status.BAD_REQUEST, "Malformed request") - return + self.flush_status() + raise try: environ = self.build_environ() @@ -683,6 +686,9 @@ class GeminiProtocol(LineOnlyReceiver): self.write_body(data) except Exception: self.write_status(Status.CGI_ERROR, "An unexpected error occurred") + raise + finally: + self.flush_status() def build_environ(self) -> typing.Dict[str, typing.Any]: """ @@ -691,25 +697,22 @@ class GeminiProtocol(LineOnlyReceiver): Variable names conform to the CGI spec defined in RFC 3875. """ url_parts = urllib.parse.urlparse(self.url) - client_addr = self.transport.getPeer() environ = { "GEMINI_URL": self.url, "HOSTNAME": self.server.hostname, "PATH_INFO": url_parts.path, "QUERY_STRING": url_parts.query, - "REMOTE_ADDR": client_addr.host, - "REMOTE_HOST": client_addr.host, + "REMOTE_ADDR": self.client_addr.host, + "REMOTE_HOST": self.client_addr.host, "SERVER_NAME": self.server.hostname, - "SERVER_PORT": str(client_addr.port), + "SERVER_PORT": str(self.client_addr.port), "SERVER_PROTOCOL": "GEMINI", "SERVER_SOFTWARE": f"jetforce/{__version__}", } - - openssl_cert = self.transport.getPeerCertificate() - if openssl_cert: + if self.client_cert: # Extract useful information from the client certificate. These # mostly follow the naming convention from GLV-1.12556 - cert = openssl_cert.to_cryptography() + cert = self.client_cert name_attrs = cert.subject.get_attributes_for_oid(CN) common_name = name_attrs[0].value if name_attrs else "" fingerprint_bytes = cert.fingerprint(hashes.SHA256()) @@ -726,7 +729,6 @@ class GeminiProtocol(LineOnlyReceiver): "TLS_CLIENT_SERIAL_NUMBER": cert.serial_number, } ) - return environ def parse_header(self) -> None: @@ -781,15 +783,20 @@ class GeminiProtocol(LineOnlyReceiver): """ Log a gemini request using a format derived from the Common Log Format. """ - message = '{} [{}] "{}" {} {} {}'.format( - self.transport.getPeer().host, - time.strftime(self.TIMESTAMP_FORMAT, self.connected_timestamp), - self.url, - self.status, - self.meta, - self.response_size, - ) - self.server.log_message(message) + try: + message = '{} [{}] "{}" {} {} {}'.format( + self.client_addr.host, + time.strftime(self.TIMESTAMP_FORMAT, self.connected_timestamp), + self.url, + self.status, + self.meta, + self.response_size, + ) + except AttributeError: + # The connection ended before we got far enough to log anything + pass + else: + self.server.log_message(message) class GeminiServer(Factory): @@ -873,13 +880,17 @@ class GeminiServer(Factory): cafile=self.cafile, capath=self.capath, ) - endpoint = self.endpoint_class( - reactor=self.reactor, - port=self.port, - sslContextFactory=tls_context_factory, - interface=self.host, - ) - endpoint.listen(self).addCallback(self.on_bind_interface) + + interfaces = [self.host] if self.host else ["0.0.0.0", "::"] + for interface in interfaces: + endpoint = self.endpoint_class( + reactor=self.reactor, + port=self.port, + sslContextFactory=tls_context_factory, + interface=interface, + ) + endpoint.listen(self).addCallback(self.on_bind_interface) + self.reactor.run() From c3c7ae3743d50b6c09992d99aa7b1fd7d5afe777 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Wed, 13 May 2020 01:37:21 -0400 Subject: [PATCH 08/34] Re-work interface for argument parsing --- jetforce.py | 205 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 128 insertions(+), 77 deletions(-) diff --git a/jetforce.py b/jetforce.py index 569301f..700e7fe 100755 --- a/jetforce.py +++ b/jetforce.py @@ -89,80 +89,6 @@ An Experimental Gemini Server, v{__version__} https://github.com/michael-lazar/jetforce """ -# fmt: off -# noinspection PyTypeChecker -parser = argparse.ArgumentParser( - prog="jetforce", - description="An Experimental Gemini Protocol Server", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, -) -parser.add_argument( - "-V", "--version", - action="version", - version="jetforce " + __version__ -) -parser.add_argument( - "--host", - help="Server address to bind to", - default="127.0.0.1" -) -parser.add_argument( - "--port", - help="Server port to bind to", - type=int, - default=1965 -) -parser.add_argument( - "--hostname", - help="Server hostname", - default="localhost" -) -parser.add_argument( - "--tls-certfile", - dest="certfile", - help="Server TLS certificate file", - metavar="FILE", -) -parser.add_argument( - "--tls-keyfile", - dest="keyfile", - help="Server TLS private key file", - metavar="FILE", -) -parser.add_argument( - "--tls-cafile", - dest="cafile", - help="A CA file to use for validating clients", - metavar="FILE", -) -parser.add_argument( - "--tls-capath", - dest="capath", - help="A directory containing CA files for validating clients", - metavar="DIR", -) -# Arguments below this line are specific to the StaticDirectoryApplication -parser.add_argument( - "--dir", - help="Root directory on the filesystem to serve", - default="/var/gemini", - metavar="DIR", -) -parser.add_argument( - "--cgi-dir", - help="CGI script directory, relative to the server's root directory", - default="cgi-bin", - metavar="DIR", -) -parser.add_argument( - "--index-file", - help="If a directory contains a file with this name, " - "that file will be served instead of auto-generating an index page", - default="index.gmi", - metavar="FILE", -) -# fmt: on - class Status: """ @@ -392,6 +318,16 @@ class JetforceApplication: """ return Response(Status.PERMANENT_FAILURE, "Not Found") + @classmethod + def add_arguments(cls, parser: argparse.ArgumentParser) -> None: + """ + Add any application-specific arguments to the GeminiServer parser. + + The destination variables for these arguments should match the method + signature for this class's __init__ method. + """ + return + class StaticDirectoryApplication(JetforceApplication): """ @@ -424,6 +360,33 @@ class StaticDirectoryApplication(JetforceApplication): self.mimetypes.add_type("text/gemini", ".gmi") self.mimetypes.add_type("text/gemini", ".gemini") + @classmethod + def add_arguments(cls, parser: argparse.ArgumentParser): + # fmt: off + parser.add_argument( + "--dir", + help="Root directory on the filesystem to serve", + default="/var/gemini", + metavar="DIR", + dest="root_directory", + ) + parser.add_argument( + "--cgi-dir", + help="CGI script directory, relative to the server's root directory", + default="cgi-bin", + metavar="DIR", + dest="cgi_directory", + ) + parser.add_argument( + "--index-file", + help="If a directory contains a file with this name, " + "that file will be served instead of auto-generating an index page", + default="index.gmi", + metavar="FILE", + dest="index_file", + ) + # fmt: on + def serve_static_file(self, request: Request) -> Response: """ Convert a URL into a filesystem path, and attempt to serve the file @@ -459,6 +422,7 @@ class StaticDirectoryApplication(JetforceApplication): elif filesystem_path.is_dir(): if not request.path.endswith("/"): url_parts = urllib.parse.urlparse(request.url) + # noinspection PyProtectedMember url_parts = url_parts._replace(path=request.path + "/") return Response(Status.REDIRECT_PERMANENT, url_parts.geturl()) @@ -893,14 +857,101 @@ class GeminiServer(Factory): self.reactor.run() + @classmethod + def build_argument_parser(cls): + """ + Build the default command line argument parser for the jetforce server. + """ + # fmt: off + # noinspection PyTypeChecker + parser = argparse.ArgumentParser( + prog="jetforce", + description="An Experimental Gemini Protocol Server", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + ) + parser.add_argument( + "-V", "--version", + action="version", + version="jetforce " + __version__ + ) + parser.add_argument( + "--host", + help="Server address to bind to", + default="127.0.0.1" + ) + parser.add_argument( + "--port", + help="Server port to bind to", + type=int, + default=1965 + ) + parser.add_argument( + "--hostname", + help="Server hostname", + default="localhost" + ) + parser.add_argument( + "--tls-certfile", + dest="certfile", + help="Server TLS certificate file", + metavar="FILE", + ) + parser.add_argument( + "--tls-keyfile", + dest="keyfile", + help="Server TLS private key file", + metavar="FILE", + ) + parser.add_argument( + "--tls-cafile", + dest="cafile", + help="A CA file to use for validating clients", + metavar="FILE", + ) + parser.add_argument( + "--tls-capath", + dest="capath", + help="A directory containing CA files for validating clients", + metavar="DIR", + ) + # fmt: on + return parser + + @classmethod + def from_argparse( + cls, app_class: typing.Type[JetforceApplication], reactor: ReactorBase = reactor + ): + """ + Shortcut to parse command line arguments and build a server instance. + + This only works with class-based Jetforce applications that subclass + from JetforceApplication. + """ + parser = cls.build_argument_parser() + app_class.add_arguments(parser) + + server_keys = [ + "host", + "port", + "hostname", + "certfile", + "keyfile", + "cafile", + "capath", + ] + args = vars(parser.parse_args()) + server_args = {k: v for k, v in args.items() if k in server_keys} + extra_args = {k: v for k, v in args.items() if k not in server_keys} + + app = app_class(**extra_args) + return cls(app, reactor, **server_args) + def run_server() -> None: """ Entry point for running the static directory server. """ - args = parser.parse_args() - app = StaticDirectoryApplication(args.dir, args.index_file, args.cgi_dir) - server = GeminiServer(app, **vars(args)) + server = GeminiServer.from_argparse(app_class=StaticDirectoryApplication) server.run() From 4570cabcaf00060fcd53a45307f5894bc9e0f7e2 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Fri, 15 May 2020 00:11:09 -0400 Subject: [PATCH 09/34] Re-work TLS interface --- jetforce.py | 267 +++++++++++++++++++++++++++++------------------ requirements.txt | 26 +++++ setup.py | 7 +- 3 files changed, 195 insertions(+), 105 deletions(-) create mode 100644 requirements.txt diff --git a/jetforce.py b/jetforce.py index 700e7fe..bdfb1bd 100755 --- a/jetforce.py +++ b/jetforce.py @@ -61,12 +61,10 @@ from twisted.internet.address import IPv4Address, IPv6Address from twisted.internet.base import ReactorBase from twisted.internet.endpoints import SSL4ServerEndpoint from twisted.internet.protocol import Factory -from twisted.internet.ssl import CertificateOptions +from twisted.internet.ssl import CertificateOptions, TLSVersion from twisted.internet.tcp import Port from twisted.protocols.basic import LineOnlyReceiver - -CN = x509.NameOID.COMMON_NAME - +from twisted.python.randbytes import secureRandom if sys.version_info < (3, 7): sys.exit("Fatal Error: jetforce requires Python 3.7+") @@ -89,6 +87,8 @@ An Experimental Gemini Server, v{__version__} https://github.com/michael-lazar/jetforce """ +CN = x509.NameOID.COMMON_NAME + class Status: """ @@ -201,49 +201,6 @@ class RoutePattern: return re.fullmatch(self.path, request_path) -def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: - """ - Utility function to generate an ad-hoc self-signed SSL certificate. - """ - certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") - keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") - - if not os.path.exists(certfile) or not os.path.exists(keyfile): - backend = default_backend() - - print("Generating private key...", file=sys.stderr) - private_key = rsa.generate_private_key(65537, 2048, default_backend()) - with open(keyfile, "wb") as fp: - # noinspection PyTypeChecker - key_data = private_key.private_bytes( - serialization.Encoding.PEM, - format=serialization.PrivateFormat.TraditionalOpenSSL, - encryption_algorithm=serialization.NoEncryption(), - ) - fp.write(key_data) - - print("Generating certificate...", file=sys.stderr) - common_name = x509.NameAttribute(CN, hostname) - subject_name = x509.Name([common_name]) - not_valid_before = datetime.datetime.utcnow() - not_valid_after = not_valid_before + datetime.timedelta(days=365) - certificate = x509.CertificateBuilder( - subject_name=subject_name, - issuer_name=subject_name, - public_key=private_key.public_key(), - serial_number=x509.random_serial_number(), - not_valid_before=not_valid_before, - not_valid_after=not_valid_after, - ) - certificate = certificate.sign(private_key, hashes.SHA256(), backend) - with open(certfile, "wb") as fp: - # noinspection PyTypeChecker - cert_data = certificate.public_bytes(serialization.Encoding.PEM) - fp.write(cert_data) - - return certfile, keyfile - - class JetforceApplication: """ Base Jetforce application class with primitive URL routing. @@ -532,45 +489,6 @@ class StaticDirectoryApplication(JetforceApplication): return Response(Status.NOT_FOUND, "Not Found") -class GeminiTLSContextFactory: - """ - Generate a sane default SSL context for a Gemini server. - """ - - def __init__( - self, - hostname: str = "localhost", - certfile: typing.Optional[str] = None, - keyfile: typing.Optional[str] = None, - cafile: typing.Optional[str] = None, - capath: typing.Optional[str] = None, - ): - if certfile is None: - certfile, keyfile = generate_ad_hoc_certificate(hostname) - - context = SSL.Context(SSL.TLSv1_2_METHOD) - context.use_certificate_file(certfile) - context.use_privatekey_file(keyfile or certfile) - context.check_privatekey() - if cafile or capath: - context.load_verify_locations(cafile, capath) - context.set_verify(SSL.VERIFY_PEER, self.verify_cb) - self.context = context - - def getContext(self) -> SSL.Context: - """ - Return the SSL context, this method must be implemented for twisted. - """ - return self.context - - def verify_cb(self, connection, x509, err_no, err_depth, return_code): - """ - Disable all peer certificate validation at the openSSL level in order - to allow self-signed client certificates. - """ - return True - - class GeminiProtocol(LineOnlyReceiver): """ Handle a single Gemini Protocol TCP request. @@ -763,6 +681,146 @@ class GeminiProtocol(LineOnlyReceiver): self.server.log_message(message) +def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: + """ + Utility function to generate an ad-hoc self-signed SSL certificate. + """ + certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") + keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") + + if not os.path.exists(certfile) or not os.path.exists(keyfile): + backend = default_backend() + + print("Generating private key...", file=sys.stderr) + private_key = rsa.generate_private_key(65537, 2048, backend) + with open(keyfile, "wb") as fp: + # noinspection PyTypeChecker + key_data = private_key.private_bytes( + serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption(), + ) + fp.write(key_data) + + print("Generating certificate...", file=sys.stderr) + common_name = x509.NameAttribute(CN, hostname) + subject_name = x509.Name([common_name]) + not_valid_before = datetime.datetime.utcnow() + not_valid_after = not_valid_before + datetime.timedelta(days=365) + certificate = x509.CertificateBuilder( + subject_name=subject_name, + issuer_name=subject_name, + public_key=private_key.public_key(), + serial_number=x509.random_serial_number(), + not_valid_before=not_valid_before, + not_valid_after=not_valid_after, + ) + certificate = certificate.sign(private_key, hashes.SHA256(), backend) + with open(certfile, "wb") as fp: + # noinspection PyTypeChecker + cert_data = certificate.public_bytes(serialization.Encoding.PEM) + fp.write(cert_data) + + return certfile, keyfile + + +class GeminiOpenSSLCertificateOptions(CertificateOptions): + """ + CertificateOptions is a factory function that twisted uses to do all of the + gnarly OpenSSL setup and return a PyOpenSSL context object. Unfortunately, + it doesn't do *exactly* what I need it to do, so I need to subclass to add + some custom behavior. + + References: + https://twistedmatrix.com/documents/16.1.1/core/howto/ssl.html + https://github.com/urllib3/urllib3/blob/master/src/urllib3/util/ssl_.py + https://github.com/twisted/twisted/blob/trunk/src/twisted/internet/_sslverify.py + """ + + def verify_callback(self, conn, cert, errno, depth, preverify_ok): + """ + Callback used by OpenSSL for client certificate verification. + + preverify_ok returns the verification result that OpenSSL has already + obtained, so return this value to cede control to the underlying + library. Returning true will always allow client certificates, even if + they are self-signed. + """ + return preverify_ok + + def proto_select_callback(self, conn, protocols): + """ + Callback used by OpenSSL for ALPN support. + + Return the first matching protocol in our list of acceptable values. + """ + for p in self._acceptableProtocols: + if p in protocols: + return p + else: + return b"" + + def __init__( + self, + certfile: str, + keyfile: typing.Optional[str] = None, + cafile: typing.Optional[str] = None, + capath: typing.Optional[str] = None, + **kwargs, + ): + self.certfile = certfile + self.keyfile = keyfile + self.cafile = cafile + self.capath = capath + super().__init__(**kwargs) + + def _makeContext(self): + """ + Most of this code is copied directly from the parent class method. + + I switched to using the OpenSSL methods that read keys/certs from files + instead of manually loading the objects into memory. I also added + configurable verify & ALPN callbacks. + """ + ctx = self._contextFactory(self.method) + ctx.set_options(self._options) + ctx.set_mode(self._mode) + + ctx.use_certificate_file(self.certfile) + ctx.use_privatekey_file(self.keyfile or self.certfile) + for extraCert in self.extraCertChain: + ctx.add_extra_chain_cert(extraCert) + # Sanity check + ctx.check_privatekey() + + if self.cafile or self.capath: + ctx.load_verify_locations(self.cafile, self.capath) + + verify_flags = SSL.VERIFY_PEER + if self.requireCertificate: + verify_flags |= SSL.VERIFY_FAIL_IF_NO_PEER_CERT + if self.verifyOnce: + verify_flags |= SSL.VERIFY_CLIENT_ONCE + + ctx.set_verify(verify_flags, self.verify_callback) + if self.verifyDepth is not None: + ctx.set_verify_depth(self.verifyDepth) + + if self.enableSessions: + session_name = secureRandom(32) + ctx.set_session_id(session_name) + + ctx.set_cipher_list(self._cipherString.encode("ascii")) + + self._ecChooser.configureECDHCurve(ctx) + + if self._acceptableProtocols: + ctx.set_alpn_select_callback(self.proto_select_callback) + ctx.set_alpn_protos(self._acceptableProtocols) + + return ctx + + class GeminiServer(Factory): """ This class acts as a wrapper around most of the plumbing for twisted. @@ -772,10 +830,6 @@ class GeminiServer(Factory): complicated class hierarchy and conventions defined by twisted. """ - # Initializes the pyOpenSSL context object, you may want to override this - # to customize your server's TLS configuration. - tls_context_factory_class = GeminiTLSContextFactory - # Request handler class, you probably don't want to override this. protocol_class = GeminiProtocol @@ -796,6 +850,9 @@ class GeminiServer(Factory): capath: typing.Optional[str] = None, **_, ): + if certfile is None: + certfile, keyfile = generate_ad_hoc_certificate(hostname) + self.app = app self.reactor = reactor self.host = host @@ -837,12 +894,19 @@ class GeminiServer(Factory): """ self.log_message(ABOUT) self.log_message(f"Server hostname is {self.hostname}") - tls_context_factory = self.tls_context_factory_class( - hostname=self.hostname, + self.log_message(f"TLS Certificate File: {self.certfile}") + self.log_message(f"TLS Private Key File: {self.keyfile}") + + certificate_options = GeminiOpenSSLCertificateOptions( certfile=self.certfile, keyfile=self.keyfile, cafile=self.cafile, capath=self.capath, + raiseMinimumTo=TLSVersion.TLSv1_3, + requireCertificate=False, + fixBrokenPeers=True, + # ALPN, I may look into supporting this later + acceptableProtocols=None, ) interfaces = [self.host] if self.host else ["0.0.0.0", "::"] @@ -850,7 +914,7 @@ class GeminiServer(Factory): endpoint = self.endpoint_class( reactor=self.reactor, port=self.port, - sslContextFactory=tls_context_factory, + sslContextFactory=certificate_options, interface=interface, ) endpoint.listen(self).addCallback(self.on_bind_interface) @@ -930,18 +994,13 @@ class GeminiServer(Factory): parser = cls.build_argument_parser() app_class.add_arguments(parser) - server_keys = [ - "host", - "port", - "hostname", - "certfile", - "keyfile", - "cafile", - "capath", - ] args = vars(parser.parse_args()) - server_args = {k: v for k, v in args.items() if k in server_keys} - extra_args = {k: v for k, v in args.items() if k not in server_keys} + + # Split command line arguments into the group that should be passed to + # the server class, and the group that should be passed to the app class. + keys = cls.__init__.__annotations__.keys() + server_args = {k: v for k, v in args.items() if k in keys} + extra_args = {k: v for k, v in args.items() if k not in keys} app = app_class(**extra_args) return cls(app, reactor, **server_args) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1706f7e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,26 @@ +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile +# +attrs==19.3.0 # via automat, service-identity, twisted +automat==20.2.0 # via twisted +cffi==1.14.0 # via cryptography +constantly==15.1.0 # via twisted +cryptography==2.9.2 # via pyopenssl, service-identity +hyperlink==19.0.0 # via twisted +idna==2.9 # via Jetforce (setup.py), hyperlink +incremental==17.5.0 # via twisted +pyasn1-modules==0.2.8 # via service-identity +pyasn1==0.4.8 # via pyasn1-modules, service-identity +pycparser==2.20 # via cffi +pyhamcrest==2.0.2 # via twisted +pyopenssl==19.1.0 # via Jetforce (setup.py) +service-identity==18.1.0 # via Jetforce (setup.py) +six==1.14.0 # via automat, cryptography, pyopenssl +twisted==20.3.0 # via Jetforce (setup.py) +zope.interface==5.1.0 # via twisted + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/setup.py b/setup.py index 30275dd..aadad38 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,12 @@ setuptools.setup( author="Michael Lazar", author_email="lazar.michael22@gmail.com", description="An Experimental Gemini Server", - install_requires=["cryptography", "pyopenssl", "twisted"], + install_requires=[ + "twisted", + "service_identity", # Used by twisted + "idna", # Used by twisted + "pyopenssl", # Used by twisted + ], long_description=long_description(), long_description_content_type="text/markdown", py_modules=["jetforce", "jetforce_client", "jetforce_diagnostics"], From b5acfb594b46beef877dd88e7d2b55ea3c526a2b Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Fri, 15 May 2020 01:11:12 -0400 Subject: [PATCH 10/34] Make the preverify_ok value accessible --- jetforce.py | 75 ++++++++++++++++++++++++++++++++--------------------- setup.py | 2 +- 2 files changed, 46 insertions(+), 31 deletions(-) diff --git a/jetforce.py b/jetforce.py index bdfb1bd..b531386 100755 --- a/jetforce.py +++ b/jetforce.py @@ -320,21 +320,22 @@ class StaticDirectoryApplication(JetforceApplication): @classmethod def add_arguments(cls, parser: argparse.ArgumentParser): # fmt: off - parser.add_argument( + group = parser.add_argument_group("static file configuration") + group.add_argument( "--dir", help="Root directory on the filesystem to serve", default="/var/gemini", metavar="DIR", dest="root_directory", ) - parser.add_argument( + group.add_argument( "--cgi-dir", help="CGI script directory, relative to the server's root directory", default="cgi-bin", metavar="DIR", dest="cgi_directory", ) - parser.add_argument( + group.add_argument( "--index-file", help="If a directory contains a file with this name, " "that file will be served instead of auto-generating an index page", @@ -400,7 +401,8 @@ class StaticDirectoryApplication(JetforceApplication): stream to the client. """ script_name = str(filesystem_path) - cgi_env = environ.copy() + + cgi_env = {k: v for k, v in environ.items() if k.isupper()} cgi_env["GATEWAY_INTERFACE"] = "GCI/1.1" cgi_env["SCRIPT_NAME"] = script_name @@ -510,7 +512,6 @@ class GeminiProtocol(LineOnlyReceiver): TIMESTAMP_FORMAT = "%d/%b/%Y:%H:%M:%S %z" client_addr: typing.Union[IPv4Address, IPv6Address] - client_cert: typing.Optional[x509.Certificate] connected_timestamp: time.struct_time request: bytes url: str @@ -531,11 +532,6 @@ class GeminiProtocol(LineOnlyReceiver): self.response_size = 0 self.response_buffer = "" self.client_addr = self.transport.getPeer() - self.client_cert = None - - peer_cert = self.transport.getPeerCertificate() - if peer_cert: - self.client_cert = peer_cert.to_cryptography() def lineReceived(self, line): """ @@ -576,7 +572,8 @@ class GeminiProtocol(LineOnlyReceiver): """ Construct a dictionary that will be passed to the application handler. - Variable names conform to the CGI spec defined in RFC 3875. + Variable names (mostly) conform to the CGI spec defined in RFC 3875. + The TLS variable names borrow from the GLV-1.12556 server. """ url_parts = urllib.parse.urlparse(self.url) environ = { @@ -590,21 +587,39 @@ class GeminiProtocol(LineOnlyReceiver): "SERVER_PORT": str(self.client_addr.port), "SERVER_PROTOCOL": "GEMINI", "SERVER_SOFTWARE": f"jetforce/{__version__}", + "client_certificate": None, } - if self.client_cert: - # Extract useful information from the client certificate. These - # mostly follow the naming convention from GLV-1.12556 - cert = self.client_cert + + peer_certificate = self.transport.getPeerCertificate() + if peer_certificate: + cert = peer_certificate.to_cryptography() + environ["client_certificate"] = cert + + # Extract useful information from the client certificate. name_attrs = cert.subject.get_attributes_for_oid(CN) common_name = name_attrs[0].value if name_attrs else "" + fingerprint_bytes = cert.fingerprint(hashes.SHA256()) fingerprint = base64.b64encode(fingerprint_bytes).decode() + not_before = cert.not_valid_before.strftime("%Y-%m-%dT%H:%M:%SZ") not_after = cert.not_valid_after.strftime("%Y-%m-%dT%H:%M:%SZ") + + conn = self.transport.getHandle() + + tls_version = conn.get_protocol_version_name() + tls_cipher = conn.get_cipher_name() + + # Grab the value that we stashed during the TLS handshake. + verified = getattr(conn, "preverify_ok", False) + environ.update( { "AUTH_TYPE": "CERTIFICATE", "REMOTE_USER": common_name, + "TLS_CIPHER": tls_cipher, + "TLS_VERSION": tls_version, + "TLS_CLIENT_VERIFIED": verified, "TLS_CLIENT_HASH": fingerprint, "TLS_CLIENT_NOT_BEFORE": not_before, "TLS_CLIENT_NOT_AFTER": not_after, @@ -746,7 +761,8 @@ class GeminiOpenSSLCertificateOptions(CertificateOptions): library. Returning true will always allow client certificates, even if they are self-signed. """ - return preverify_ok + conn.preverify_ok = preverify_ok + return True def proto_select_callback(self, conn, protocols): """ @@ -905,7 +921,7 @@ class GeminiServer(Factory): raiseMinimumTo=TLSVersion.TLSv1_3, requireCertificate=False, fixBrokenPeers=True, - # ALPN, I may look into supporting this later + # This is for ALPN, I may look into supporting this later. acceptableProtocols=None, ) @@ -938,41 +954,42 @@ class GeminiServer(Factory): action="version", version="jetforce " + __version__ ) - parser.add_argument( + group = parser.add_argument_group("server configuration") + group.add_argument( "--host", help="Server address to bind to", default="127.0.0.1" ) - parser.add_argument( + group.add_argument( "--port", help="Server port to bind to", type=int, default=1965 ) - parser.add_argument( + group.add_argument( "--hostname", help="Server hostname", default="localhost" ) - parser.add_argument( + group.add_argument( "--tls-certfile", dest="certfile", help="Server TLS certificate file", metavar="FILE", ) - parser.add_argument( + group.add_argument( "--tls-keyfile", dest="keyfile", help="Server TLS private key file", metavar="FILE", ) - parser.add_argument( + group.add_argument( "--tls-cafile", dest="cafile", help="A CA file to use for validating clients", metavar="FILE", ) - parser.add_argument( + group.add_argument( "--tls-capath", dest="capath", help="A directory containing CA files for validating clients", @@ -982,14 +999,12 @@ class GeminiServer(Factory): return parser @classmethod - def from_argparse( + def from_command_line( cls, app_class: typing.Type[JetforceApplication], reactor: ReactorBase = reactor ): """ - Shortcut to parse command line arguments and build a server instance. - - This only works with class-based Jetforce applications that subclass - from JetforceApplication. + Shortcut to parse command line arguments and build a server instance + for a class-based jetforce application. """ parser = cls.build_argument_parser() app_class.add_arguments(parser) @@ -1010,7 +1025,7 @@ def run_server() -> None: """ Entry point for running the static directory server. """ - server = GeminiServer.from_argparse(app_class=StaticDirectoryApplication) + server = GeminiServer.from_command_line(app_class=StaticDirectoryApplication) server.run() diff --git a/setup.py b/setup.py index aadad38..dea9fa8 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ setuptools.setup( author_email="lazar.michael22@gmail.com", description="An Experimental Gemini Server", install_requires=[ - "twisted", + "twisted>=20.3.0", "service_identity", # Used by twisted "idna", # Used by twisted "pyopenssl", # Used by twisted From 36e29f5d154d542f8c40c4f71388d5fa54961ca8 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Fri, 15 May 2020 01:22:34 -0400 Subject: [PATCH 11/34] Update documentation --- jetforce.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/jetforce.py b/jetforce.py index b531386..974dd25 100755 --- a/jetforce.py +++ b/jetforce.py @@ -6,11 +6,12 @@ Overview -------- GeminiServer: - An asynchronous TCP server built on top of python's asyncio stream - abstraction. This is a lightweight class that accepts incoming requests, - logs them, and sends them to a configurable request handler to be processed. + A TCP + TLS server build on top of the python twisted framework. This class + is responsible for binding to the TCP/IP interface, setting up the TLS + context, handling incoming connections, and sending connections to to a + request handler to be processed. -GeminiRequestHandler: +GeminiProtocol: The request handler manages the life of a single gemini request. It exposes a simplified interface to read the request URL and write the gemini response status line and body to the socket. The request URL and other server @@ -27,10 +28,10 @@ JetforceApplication: how to accomplish this. StaticDirectoryApplication: - This is a pre-built application that serves files from a static directory. - It provides an "out-of-the-box" gemini server without needing to write any - lines of code. This is what is invoked when you launch jetforce from the - command line. + This is a batteries-included application that serves files from a static + directory. It provides a preconfigured gemini server without needing to + write any lines of code. This is what is invoked when you launch jetforce + from the command line. """ from __future__ import annotations @@ -290,10 +291,10 @@ class StaticDirectoryApplication(JetforceApplication): """ Application for serving static files & CGI over gemini. - This is a pre-built application that serves files from a static directory. - It provides an "out-of-the-box" gemini server without needing to write any - lines of code. This is what is invoked when you launch jetforce from the - command line. + This is a batteries-included application that serves files from a static + directory. It provides a preconfigured gemini server without needing to + write any lines of code. This is what is invoked when you launch jetforce + from the command line. If a directory contains a file with the name "index.gmi", that file will be returned when the directory path is requested. Otherwise, a directory From 3704d64ecfce09e6d88a18be1fef7941b1edd45f Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Fri, 15 May 2020 01:26:57 -0400 Subject: [PATCH 12/34] Bumping version --- jetforce.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jetforce.py b/jetforce.py index 974dd25..621f168 100755 --- a/jetforce.py +++ b/jetforce.py @@ -70,7 +70,7 @@ from twisted.python.randbytes import secureRandom if sys.version_info < (3, 7): sys.exit("Fatal Error: jetforce requires Python 3.7+") -__version__ = "0.2.2" +__version__ = "1.0.0rc1" __title__ = "Jetforce Gemini Server" __author__ = "Michael Lazar" __license__ = "Floodgap Free Software License" diff --git a/setup.py b/setup.py index dea9fa8..9c5a70a 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def long_description(): setuptools.setup( name="Jetforce", - version="0.2.2", + version="1.0.0rc1", url="https://github.com/michael-lazar/jetforce", license="Other/Proprietary License", author="Michael Lazar", From 1fe8082bddcbf54135d4fc4b006a23c4da6a793f Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 17 May 2020 14:57:56 -0400 Subject: [PATCH 13/34] Reorganizing the library as a packing instead of a single file --- jetforce.py | 1034 -------------------------------------- jetforce/__init__.py | 11 + jetforce/__main__.py | 117 +++++ jetforce/__version__.py | 1 + jetforce/app/__init__.py | 0 jetforce/app/base.py | 202 ++++++++ jetforce/app/static.py | 186 +++++++ jetforce/protocol.py | 206 ++++++++ jetforce/server.py | 119 +++++ jetforce/tls.py | 179 +++++++ setup.py | 12 +- 11 files changed, 1028 insertions(+), 1039 deletions(-) delete mode 100755 jetforce.py create mode 100644 jetforce/__init__.py create mode 100644 jetforce/__main__.py create mode 100644 jetforce/__version__.py create mode 100644 jetforce/app/__init__.py create mode 100644 jetforce/app/base.py create mode 100644 jetforce/app/static.py create mode 100644 jetforce/protocol.py create mode 100644 jetforce/server.py create mode 100644 jetforce/tls.py diff --git a/jetforce.py b/jetforce.py deleted file mode 100755 index 621f168..0000000 --- a/jetforce.py +++ /dev/null @@ -1,1034 +0,0 @@ -#!/usr/bin/env python3 -""" -Jetforce, an experimental Gemini server. - -Overview --------- - -GeminiServer: - A TCP + TLS server build on top of the python twisted framework. This class - is responsible for binding to the TCP/IP interface, setting up the TLS - context, handling incoming connections, and sending connections to to a - request handler to be processed. - -GeminiProtocol: - The request handler manages the life of a single gemini request. It exposes - a simplified interface to read the request URL and write the gemini response - status line and body to the socket. The request URL and other server - information is stuffed into an ``environ`` dictionary that encapsulates the - request at a low level. This dictionary, along with a callback to write the - response data, and passed to a configurable "application" function or class. - -JetforceApplication: - This is a base class for writing jetforce server applications. It doesn't - anything on its own, but it does provide a convenient interface to define - custom server endpoints using route decorators. If you want to utilize - jetforce as a library and write your own server in python, this is the class - that you want to extend. The examples/ directory contains some examples of - how to accomplish this. - -StaticDirectoryApplication: - This is a batteries-included application that serves files from a static - directory. It provides a preconfigured gemini server without needing to - write any lines of code. This is what is invoked when you launch jetforce - from the command line. -""" -from __future__ import annotations - -import argparse -import base64 -import codecs -import dataclasses -import datetime -import mimetypes -import os -import pathlib -import re -import socket -import subprocess -import sys -import tempfile -import time -import typing -import urllib.parse - -from cryptography import x509 -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives import hashes, serialization -from cryptography.hazmat.primitives.asymmetric import rsa -from OpenSSL import SSL -from twisted.internet import reactor -from twisted.internet.address import IPv4Address, IPv6Address -from twisted.internet.base import ReactorBase -from twisted.internet.endpoints import SSL4ServerEndpoint -from twisted.internet.protocol import Factory -from twisted.internet.ssl import CertificateOptions, TLSVersion -from twisted.internet.tcp import Port -from twisted.protocols.basic import LineOnlyReceiver -from twisted.python.randbytes import secureRandom - -if sys.version_info < (3, 7): - sys.exit("Fatal Error: jetforce requires Python 3.7+") - -__version__ = "1.0.0rc1" -__title__ = "Jetforce Gemini Server" -__author__ = "Michael Lazar" -__license__ = "Floodgap Free Software License" -__copyright__ = "(c) 2020 Michael Lazar" - -ABOUT = fr""" -You are now riding on... -_________ _____________ -______ /______ /___ __/_______________________ -___ _ /_ _ \ __/_ /_ _ __ \_ ___/ ___/ _ \ -/ /_/ / / __/ /_ _ __/ / /_/ / / / /__ / __/ -\____/ \___/\__/ /_/ \____//_/ \___/ \___/ - -An Experimental Gemini Server, v{__version__} -https://github.com/michael-lazar/jetforce -""" - -CN = x509.NameOID.COMMON_NAME - - -class Status: - """ - Gemini response status codes. - """ - - INPUT = 10 - - SUCCESS = 20 - SUCCESS_END_OF_SESSION = 21 - - REDIRECT_TEMPORARY = 30 - REDIRECT_PERMANENT = 31 - - TEMPORARY_FAILURE = 40 - SERVER_UNAVAILABLE = 41 - CGI_ERROR = 42 - PROXY_ERROR = 43 - SLOW_DOWN = 44 - - PERMANENT_FAILURE = 50 - NOT_FOUND = 51 - GONE = 52 - PROXY_REQUEST_REFUSED = 53 - BAD_REQUEST = 59 - - CLIENT_CERTIFICATE_REQUIRED = 60 - TRANSIENT_CERTIFICATE_REQUESTED = 61 - AUTHORISED_CERTIFICATE_REQUIRED = 62 - CERTIFICATE_NOT_ACCEPTED = 63 - FUTURE_CERTIFICATE_REJECTED = 64 - EXPIRED_CERTIFICATE_REJECTED = 65 - - -class Request: - """ - Object that encapsulates information about a single gemini request. - """ - - def __init__(self, environ: dict): - self.environ = environ - self.url = environ["GEMINI_URL"] - - url_parts = urllib.parse.urlparse(self.url) - if not url_parts.hostname: - raise ValueError("URL must contain a `hostname` part") - - if not url_parts.scheme: - # If scheme is missing, infer it to be gemini:// - self.scheme = "gemini" - else: - self.scheme = url_parts.scheme - - self.hostname = url_parts.hostname - self.port = url_parts.port - self.path = url_parts.path - self.params = url_parts.params - self.query = urllib.parse.unquote(url_parts.query) - self.fragment = url_parts.fragment - - -@dataclasses.dataclass -class Response: - """ - Object that encapsulates information about a single gemini response. - """ - - status: int - meta: str - body: typing.Union[None, bytes, str, typing.Iterator[bytes]] = None - - -@dataclasses.dataclass -class RoutePattern: - """ - A pattern for matching URLs with a single endpoint or route. - """ - - path: str = ".*" - scheme: str = "gemini" - hostname: typing.Optional[str] = None - - strict_hostname: bool = True - strict_port: bool = True - strict_trailing_slash: bool = False - - def match(self, request: Request) -> typing.Optional[re.Match]: - """ - Check if the given request URL matches this route pattern. - """ - if self.hostname is None: - server_hostname = request.environ["HOSTNAME"] - else: - server_hostname = self.hostname - server_port = int(request.environ["SERVER_PORT"]) - - if self.strict_hostname and request.hostname != server_hostname: - return - if self.strict_port and request.port is not None: - if request.port != server_port: - return - if self.scheme and self.scheme != request.scheme: - return - - if self.strict_trailing_slash: - request_path = request.path - else: - request_path = request.path.rstrip("/") - - return re.fullmatch(self.path, request_path) - - -class JetforceApplication: - """ - Base Jetforce application class with primitive URL routing. - - This is a base class for writing jetforce server applications. It doesn't - anything on its own, but it does provide a convenient interface to define - custom server endpoints using route decorators. If you want to utilize - jetforce as a library and write your own server in python, this is the class - that you want to extend. The examples/ directory contains some examples of - how to accomplish this. - """ - - def __init__(self): - self.routes: typing.List[ - typing.Tuple[RoutePattern, typing.Callable[[Request], Response]] - ] = [] - - def __call__( - self, environ: dict, send_status: typing.Callable - ) -> typing.Iterator[bytes]: - try: - request = Request(environ) - except Exception: - send_status(Status.BAD_REQUEST, "Unrecognized URL format") - return - - for route_pattern, callback in self.routes[::-1]: - if route_pattern.match(request): - break - else: - callback = self.default_callback - - response = callback(request) - send_status(response.status, response.meta) - if isinstance(response.body, bytes): - yield response.body - elif isinstance(response.body, str): - yield response.body.encode() - elif response.body: - yield from response.body - - def route( - self, - path: str = ".*", - scheme: str = "gemini", - hostname: typing.Optional[str] = None, - strict_hostname: bool = True, - strict_trailing_slash: bool = False, - ) -> typing.Callable: - """ - Decorator for binding a function to a route based on the URL path. - - app = JetforceApplication() - - @app.route('/my-path') - def my_path(request): - return Response(Status.SUCCESS, 'text/plain', 'Hello world!') - """ - route_pattern = RoutePattern( - path, scheme, hostname, strict_hostname, strict_trailing_slash - ) - - def wrap(func: typing.Callable) -> typing.Callable: - self.routes.append((route_pattern, func)) - return func - - return wrap - - def default_callback(self, request: Request) -> Response: - """ - Set the error response based on the URL type. - """ - return Response(Status.PERMANENT_FAILURE, "Not Found") - - @classmethod - def add_arguments(cls, parser: argparse.ArgumentParser) -> None: - """ - Add any application-specific arguments to the GeminiServer parser. - - The destination variables for these arguments should match the method - signature for this class's __init__ method. - """ - return - - -class StaticDirectoryApplication(JetforceApplication): - """ - Application for serving static files & CGI over gemini. - - This is a batteries-included application that serves files from a static - directory. It provides a preconfigured gemini server without needing to - write any lines of code. This is what is invoked when you launch jetforce - from the command line. - - If a directory contains a file with the name "index.gmi", that file will - be returned when the directory path is requested. Otherwise, a directory - listing will be auto-generated. - """ - - def __init__( - self, - root_directory: str = "/var/gemini", - index_file: str = "index.gmi", - cgi_directory: str = "cgi-bin", - ): - super().__init__() - self.routes.append((RoutePattern(), self.serve_static_file)) - - self.root = pathlib.Path(root_directory).resolve(strict=True) - self.cgi_directory = cgi_directory.strip("/") + "/" - - self.index_file = index_file - self.mimetypes = mimetypes.MimeTypes() - self.mimetypes.add_type("text/gemini", ".gmi") - self.mimetypes.add_type("text/gemini", ".gemini") - - @classmethod - def add_arguments(cls, parser: argparse.ArgumentParser): - # fmt: off - group = parser.add_argument_group("static file configuration") - group.add_argument( - "--dir", - help="Root directory on the filesystem to serve", - default="/var/gemini", - metavar="DIR", - dest="root_directory", - ) - group.add_argument( - "--cgi-dir", - help="CGI script directory, relative to the server's root directory", - default="cgi-bin", - metavar="DIR", - dest="cgi_directory", - ) - group.add_argument( - "--index-file", - help="If a directory contains a file with this name, " - "that file will be served instead of auto-generating an index page", - default="index.gmi", - metavar="FILE", - dest="index_file", - ) - # fmt: on - - def serve_static_file(self, request: Request) -> Response: - """ - Convert a URL into a filesystem path, and attempt to serve the file - or directory that is represented at that path. - """ - url_path = pathlib.Path(request.path.strip("/")) - - filename = pathlib.Path(os.path.normpath(str(url_path))) - if filename.is_absolute() or str(filename.name).startswith(".."): - # Guard against breaking out of the directory - return Response(Status.NOT_FOUND, "Not Found") - - filesystem_path = self.root / filename - - try: - if not os.access(filesystem_path, os.R_OK): - # File not readable - return Response(Status.NOT_FOUND, "Not Found") - except OSError: - # Filename too large, etc. - return Response(Status.NOT_FOUND, "Not Found") - - if filesystem_path.is_file(): - is_cgi = str(filename).startswith(self.cgi_directory) - is_exe = os.access(filesystem_path, os.X_OK) - if is_cgi and is_exe: - return self.run_cgi_script(filesystem_path, request.environ) - - mimetype = self.guess_mimetype(filesystem_path.name) - generator = self.load_file(filesystem_path) - return Response(Status.SUCCESS, mimetype, generator) - - elif filesystem_path.is_dir(): - if not request.path.endswith("/"): - url_parts = urllib.parse.urlparse(request.url) - # noinspection PyProtectedMember - url_parts = url_parts._replace(path=request.path + "/") - return Response(Status.REDIRECT_PERMANENT, url_parts.geturl()) - - index_file = filesystem_path / self.index_file - if index_file.exists(): - generator = self.load_file(index_file) - return Response(Status.SUCCESS, "text/gemini", generator) - - generator = self.list_directory(url_path, filesystem_path) - return Response(Status.SUCCESS, "text/gemini", generator) - - else: - return Response(Status.NOT_FOUND, "Not Found") - - def run_cgi_script(self, filesystem_path: pathlib.Path, environ: dict) -> Response: - """ - Execute the given file as a CGI script and return the script's stdout - stream to the client. - """ - script_name = str(filesystem_path) - - cgi_env = {k: v for k, v in environ.items() if k.isupper()} - cgi_env["GATEWAY_INTERFACE"] = "GCI/1.1" - cgi_env["SCRIPT_NAME"] = script_name - - # Decode the stream as unicode so we can parse the status line - # Use surrogateescape to preserve any non-UTF8 byte sequences. - out = subprocess.Popen( - [script_name], - stdout=subprocess.PIPE, - env=cgi_env, - bufsize=1, - universal_newlines=True, - errors="surrogateescape", - ) - - status_line = out.stdout.readline().strip() - status_parts = status_line.split(maxsplit=1) - if len(status_parts) != 2 or not status_parts[0].isdecimal(): - return Response(Status.CGI_ERROR, "Unexpected Error") - - status, meta = status_parts - - # Re-encode the rest of the body as bytes - body = codecs.iterencode(out.stdout, encoding="utf-8", errors="surrogateescape") - return Response(int(status), meta, body) - - def load_file(self, filesystem_path: pathlib.Path) -> typing.Iterator[bytes]: - """ - Load a file in chunks to allow streaming to the TCP socket. - """ - with filesystem_path.open("rb") as fp: - data = fp.read(1024) - while data: - yield data - data = fp.read(1024) - - def list_directory( - self, url_path: pathlib.Path, filesystem_path: pathlib.Path - ) -> typing.Iterator[bytes]: - """ - Auto-generate a text/gemini document based on the contents of the file system. - """ - yield f"Directory: /{url_path}\r\n".encode() - if url_path.parent != url_path: - yield f"=>/{url_path.parent}\t..\r\n".encode() - - for file in sorted(filesystem_path.iterdir()): - if file.name.startswith("."): - # Skip hidden directories/files that may contain sensitive info - continue - elif file.is_dir(): - yield f"=>/{url_path / file.name}/\t{file.name}/\r\n".encode() - else: - yield f"=>/{url_path / file.name}\t{file.name}\r\n".encode() - - def guess_mimetype(self, filename: str) -> str: - """ - Guess the mimetype of a file based on the file extension. - """ - mime, encoding = self.mimetypes.guess_type(filename) - if encoding: - return f"{mime}; charset={encoding}" - else: - return mime or "text/plain" - - def default_callback(self, request: Request) -> Response: - """ - Since the StaticDirectoryApplication only serves gemini URLs, return - a proxy request refused for suspicious URLs. - """ - if request.scheme != "gemini": - return Response( - Status.PROXY_REQUEST_REFUSED, - "This server does not allow proxy requests", - ) - elif request.hostname != request.environ["HOSTNAME"]: - return Response( - Status.PROXY_REQUEST_REFUSED, - "This server does not allow proxy requests", - ) - elif request.port and request.port != request.environ["SERVER_PORT"]: - return Response( - Status.PROXY_REQUEST_REFUSED, - "This server does not allow proxy requests", - ) - else: - return Response(Status.NOT_FOUND, "Not Found") - - -class GeminiProtocol(LineOnlyReceiver): - """ - Handle a single Gemini Protocol TCP request. - - The request handler manages the life of a single gemini request. It exposes - a simplified interface to read the request URL and write the gemini response - status line and body to the socket. The request URL and other server - information is stuffed into an ``environ`` dictionary that encapsulates the - request at a low level. This dictionary, along with a callback to write the - response data, and passed to a configurable "application" function or class. - - This design borrows heavily from the standard library's HTTP request - handler (http.server.BaseHTTPRequestHandler). However, I did not make any - attempts to directly emulate the existing conventions, because Gemini is an - inherently simpler protocol than HTTP and much of the boilerplate could be - removed. - """ - - TIMESTAMP_FORMAT = "%d/%b/%Y:%H:%M:%S %z" - - client_addr: typing.Union[IPv4Address, IPv6Address] - connected_timestamp: time.struct_time - request: bytes - url: str - status: int - meta: str - response_buffer: str - response_size: int - - def __init__(self, server: GeminiServer, app: JetforceApplication): - self.server = server - self.app = app - - def connectionMade(self): - """ - This is invoked by twisted after the connection is first established. - """ - self.connected_timestamp = time.localtime() - self.response_size = 0 - self.response_buffer = "" - self.client_addr = self.transport.getPeer() - - def lineReceived(self, line): - """ - This method is invoked by LineOnlyReceiver for every incoming line. - - Because Gemini requests are only ever a single line long, this will - only be called once and we can use it to handle the lifetime of the - connection without managing any state. - """ - self.request = line - try: - self.handle_request() - finally: - self.log_request() - self.transport.loseConnection() - - def handle_request(self): - try: - self.parse_header() - except Exception: - # Malformed request, throw it away and exit immediately - self.write_status(Status.BAD_REQUEST, "Malformed request") - self.flush_status() - raise - - try: - environ = self.build_environ() - response_generator = self.app(environ, self.write_status) - for data in response_generator: - self.write_body(data) - except Exception: - self.write_status(Status.CGI_ERROR, "An unexpected error occurred") - raise - finally: - self.flush_status() - - def build_environ(self) -> typing.Dict[str, typing.Any]: - """ - Construct a dictionary that will be passed to the application handler. - - Variable names (mostly) conform to the CGI spec defined in RFC 3875. - The TLS variable names borrow from the GLV-1.12556 server. - """ - url_parts = urllib.parse.urlparse(self.url) - environ = { - "GEMINI_URL": self.url, - "HOSTNAME": self.server.hostname, - "PATH_INFO": url_parts.path, - "QUERY_STRING": url_parts.query, - "REMOTE_ADDR": self.client_addr.host, - "REMOTE_HOST": self.client_addr.host, - "SERVER_NAME": self.server.hostname, - "SERVER_PORT": str(self.client_addr.port), - "SERVER_PROTOCOL": "GEMINI", - "SERVER_SOFTWARE": f"jetforce/{__version__}", - "client_certificate": None, - } - - peer_certificate = self.transport.getPeerCertificate() - if peer_certificate: - cert = peer_certificate.to_cryptography() - environ["client_certificate"] = cert - - # Extract useful information from the client certificate. - name_attrs = cert.subject.get_attributes_for_oid(CN) - common_name = name_attrs[0].value if name_attrs else "" - - fingerprint_bytes = cert.fingerprint(hashes.SHA256()) - fingerprint = base64.b64encode(fingerprint_bytes).decode() - - not_before = cert.not_valid_before.strftime("%Y-%m-%dT%H:%M:%SZ") - not_after = cert.not_valid_after.strftime("%Y-%m-%dT%H:%M:%SZ") - - conn = self.transport.getHandle() - - tls_version = conn.get_protocol_version_name() - tls_cipher = conn.get_cipher_name() - - # Grab the value that we stashed during the TLS handshake. - verified = getattr(conn, "preverify_ok", False) - - environ.update( - { - "AUTH_TYPE": "CERTIFICATE", - "REMOTE_USER": common_name, - "TLS_CIPHER": tls_cipher, - "TLS_VERSION": tls_version, - "TLS_CLIENT_VERIFIED": verified, - "TLS_CLIENT_HASH": fingerprint, - "TLS_CLIENT_NOT_BEFORE": not_before, - "TLS_CLIENT_NOT_AFTER": not_after, - "TLS_CLIENT_SERIAL_NUMBER": cert.serial_number, - } - ) - return environ - - def parse_header(self) -> None: - """ - Parse the gemini header line. - - The request is a single UTF-8 line formatted as: \r\n - """ - if len(self.request) > 1024: - raise ValueError("URL exceeds max length of 1024 bytes") - - self.url = self.request.decode() - - def write_status(self, status: int, meta: str) -> None: - """ - Write the gemini status line to an internal buffer. - - The status line is a single UTF-8 line formatted as: - \t\r\n - - If the response status is 2, the meta field will contain the mimetype - of the response data sent. If the status is something else, the meta - will contain a descriptive message. - - The status is not written immediately, it's added to an internal buffer - that must be flushed. This is done so that the status can be updated as - long as no other data has been written to the stream yet. - """ - self.status = status - self.meta = meta - self.response_buffer = f"{status}\t{meta}\r\n" - - def write_body(self, data: bytes) -> None: - """ - Write bytes to the gemini response body. - """ - self.flush_status() - self.response_size += len(data) - self.transport.write(data) - - def flush_status(self) -> None: - """ - Flush the status line from the internal buffer to the socket stream. - """ - if self.response_buffer and not self.response_size: - data = self.response_buffer.encode() - self.response_size += len(data) - self.transport.write(data) - self.response_buffer = "" - - def log_request(self) -> None: - """ - Log a gemini request using a format derived from the Common Log Format. - """ - try: - message = '{} [{}] "{}" {} {} {}'.format( - self.client_addr.host, - time.strftime(self.TIMESTAMP_FORMAT, self.connected_timestamp), - self.url, - self.status, - self.meta, - self.response_size, - ) - except AttributeError: - # The connection ended before we got far enough to log anything - pass - else: - self.server.log_message(message) - - -def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: - """ - Utility function to generate an ad-hoc self-signed SSL certificate. - """ - certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") - keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") - - if not os.path.exists(certfile) or not os.path.exists(keyfile): - backend = default_backend() - - print("Generating private key...", file=sys.stderr) - private_key = rsa.generate_private_key(65537, 2048, backend) - with open(keyfile, "wb") as fp: - # noinspection PyTypeChecker - key_data = private_key.private_bytes( - serialization.Encoding.PEM, - format=serialization.PrivateFormat.TraditionalOpenSSL, - encryption_algorithm=serialization.NoEncryption(), - ) - fp.write(key_data) - - print("Generating certificate...", file=sys.stderr) - common_name = x509.NameAttribute(CN, hostname) - subject_name = x509.Name([common_name]) - not_valid_before = datetime.datetime.utcnow() - not_valid_after = not_valid_before + datetime.timedelta(days=365) - certificate = x509.CertificateBuilder( - subject_name=subject_name, - issuer_name=subject_name, - public_key=private_key.public_key(), - serial_number=x509.random_serial_number(), - not_valid_before=not_valid_before, - not_valid_after=not_valid_after, - ) - certificate = certificate.sign(private_key, hashes.SHA256(), backend) - with open(certfile, "wb") as fp: - # noinspection PyTypeChecker - cert_data = certificate.public_bytes(serialization.Encoding.PEM) - fp.write(cert_data) - - return certfile, keyfile - - -class GeminiOpenSSLCertificateOptions(CertificateOptions): - """ - CertificateOptions is a factory function that twisted uses to do all of the - gnarly OpenSSL setup and return a PyOpenSSL context object. Unfortunately, - it doesn't do *exactly* what I need it to do, so I need to subclass to add - some custom behavior. - - References: - https://twistedmatrix.com/documents/16.1.1/core/howto/ssl.html - https://github.com/urllib3/urllib3/blob/master/src/urllib3/util/ssl_.py - https://github.com/twisted/twisted/blob/trunk/src/twisted/internet/_sslverify.py - """ - - def verify_callback(self, conn, cert, errno, depth, preverify_ok): - """ - Callback used by OpenSSL for client certificate verification. - - preverify_ok returns the verification result that OpenSSL has already - obtained, so return this value to cede control to the underlying - library. Returning true will always allow client certificates, even if - they are self-signed. - """ - conn.preverify_ok = preverify_ok - return True - - def proto_select_callback(self, conn, protocols): - """ - Callback used by OpenSSL for ALPN support. - - Return the first matching protocol in our list of acceptable values. - """ - for p in self._acceptableProtocols: - if p in protocols: - return p - else: - return b"" - - def __init__( - self, - certfile: str, - keyfile: typing.Optional[str] = None, - cafile: typing.Optional[str] = None, - capath: typing.Optional[str] = None, - **kwargs, - ): - self.certfile = certfile - self.keyfile = keyfile - self.cafile = cafile - self.capath = capath - super().__init__(**kwargs) - - def _makeContext(self): - """ - Most of this code is copied directly from the parent class method. - - I switched to using the OpenSSL methods that read keys/certs from files - instead of manually loading the objects into memory. I also added - configurable verify & ALPN callbacks. - """ - ctx = self._contextFactory(self.method) - ctx.set_options(self._options) - ctx.set_mode(self._mode) - - ctx.use_certificate_file(self.certfile) - ctx.use_privatekey_file(self.keyfile or self.certfile) - for extraCert in self.extraCertChain: - ctx.add_extra_chain_cert(extraCert) - # Sanity check - ctx.check_privatekey() - - if self.cafile or self.capath: - ctx.load_verify_locations(self.cafile, self.capath) - - verify_flags = SSL.VERIFY_PEER - if self.requireCertificate: - verify_flags |= SSL.VERIFY_FAIL_IF_NO_PEER_CERT - if self.verifyOnce: - verify_flags |= SSL.VERIFY_CLIENT_ONCE - - ctx.set_verify(verify_flags, self.verify_callback) - if self.verifyDepth is not None: - ctx.set_verify_depth(self.verifyDepth) - - if self.enableSessions: - session_name = secureRandom(32) - ctx.set_session_id(session_name) - - ctx.set_cipher_list(self._cipherString.encode("ascii")) - - self._ecChooser.configureECDHCurve(ctx) - - if self._acceptableProtocols: - ctx.set_alpn_select_callback(self.proto_select_callback) - ctx.set_alpn_protos(self._acceptableProtocols) - - return ctx - - -class GeminiServer(Factory): - """ - This class acts as a wrapper around most of the plumbing for twisted. - - There's not much going on here, the main intention is to make it as simple - as possible to import and run a server without needing to understand the - complicated class hierarchy and conventions defined by twisted. - """ - - # Request handler class, you probably don't want to override this. - protocol_class = GeminiProtocol - - # The TLS twisted interface class is confusingly named SSL4, even though it - # will accept either IPv4 & IPv6 interfaces. - endpoint_class = SSL4ServerEndpoint - - def __init__( - self, - app: typing.Callable, - reactor: ReactorBase = reactor, - host: str = "127.0.0.1", - port: int = 1965, - hostname: str = "localhost", - certfile: typing.Optional[str] = None, - keyfile: typing.Optional[str] = None, - cafile: typing.Optional[str] = None, - capath: typing.Optional[str] = None, - **_, - ): - if certfile is None: - certfile, keyfile = generate_ad_hoc_certificate(hostname) - - self.app = app - self.reactor = reactor - self.host = host - self.port = port - self.hostname = hostname - self.certfile = certfile - self.keyfile = keyfile - self.cafile = cafile - self.capath = capath - - def log_message(self, message: str) -> None: - """ - Log a diagnostic server message to stderr. - """ - print(message, file=sys.stderr) - - def on_bind_interface(self, port: Port) -> None: - """ - Log when the server binds to an interface. - """ - sock_ip, sock_port, *_ = port.socket.getsockname() - if port.addressFamily == socket.AF_INET: - self.log_message(f"Listening on {sock_ip}:{sock_port}") - else: - self.log_message(f"Listening on [{sock_ip}]:{sock_port}") - - def buildProtocol(self, addr) -> GeminiProtocol: - """ - This method is invoked by twisted once for every incoming connection. - - It builds the protocol instance which acts as a request handler and - implements the actual Gemini protocol. - """ - return GeminiProtocol(self, self.app) - - def run(self) -> None: - """ - This is the main server loop. - """ - self.log_message(ABOUT) - self.log_message(f"Server hostname is {self.hostname}") - self.log_message(f"TLS Certificate File: {self.certfile}") - self.log_message(f"TLS Private Key File: {self.keyfile}") - - certificate_options = GeminiOpenSSLCertificateOptions( - certfile=self.certfile, - keyfile=self.keyfile, - cafile=self.cafile, - capath=self.capath, - raiseMinimumTo=TLSVersion.TLSv1_3, - requireCertificate=False, - fixBrokenPeers=True, - # This is for ALPN, I may look into supporting this later. - acceptableProtocols=None, - ) - - interfaces = [self.host] if self.host else ["0.0.0.0", "::"] - for interface in interfaces: - endpoint = self.endpoint_class( - reactor=self.reactor, - port=self.port, - sslContextFactory=certificate_options, - interface=interface, - ) - endpoint.listen(self).addCallback(self.on_bind_interface) - - self.reactor.run() - - @classmethod - def build_argument_parser(cls): - """ - Build the default command line argument parser for the jetforce server. - """ - # fmt: off - # noinspection PyTypeChecker - parser = argparse.ArgumentParser( - prog="jetforce", - description="An Experimental Gemini Protocol Server", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - parser.add_argument( - "-V", "--version", - action="version", - version="jetforce " + __version__ - ) - group = parser.add_argument_group("server configuration") - group.add_argument( - "--host", - help="Server address to bind to", - default="127.0.0.1" - ) - group.add_argument( - "--port", - help="Server port to bind to", - type=int, - default=1965 - ) - group.add_argument( - "--hostname", - help="Server hostname", - default="localhost" - ) - group.add_argument( - "--tls-certfile", - dest="certfile", - help="Server TLS certificate file", - metavar="FILE", - ) - group.add_argument( - "--tls-keyfile", - dest="keyfile", - help="Server TLS private key file", - metavar="FILE", - ) - group.add_argument( - "--tls-cafile", - dest="cafile", - help="A CA file to use for validating clients", - metavar="FILE", - ) - group.add_argument( - "--tls-capath", - dest="capath", - help="A directory containing CA files for validating clients", - metavar="DIR", - ) - # fmt: on - return parser - - @classmethod - def from_command_line( - cls, app_class: typing.Type[JetforceApplication], reactor: ReactorBase = reactor - ): - """ - Shortcut to parse command line arguments and build a server instance - for a class-based jetforce application. - """ - parser = cls.build_argument_parser() - app_class.add_arguments(parser) - - args = vars(parser.parse_args()) - - # Split command line arguments into the group that should be passed to - # the server class, and the group that should be passed to the app class. - keys = cls.__init__.__annotations__.keys() - server_args = {k: v for k, v in args.items() if k in keys} - extra_args = {k: v for k, v in args.items() if k not in keys} - - app = app_class(**extra_args) - return cls(app, reactor, **server_args) - - -def run_server() -> None: - """ - Entry point for running the static directory server. - """ - server = GeminiServer.from_command_line(app_class=StaticDirectoryApplication) - server.run() - - -if __name__ == "__main__": - run_server() diff --git a/jetforce/__init__.py b/jetforce/__init__.py new file mode 100644 index 0000000..2aabb3d --- /dev/null +++ b/jetforce/__init__.py @@ -0,0 +1,11 @@ +# fmt: off +from .__version__ import __version__ +from .app.base import (JetforceApplication, Request, Response, RoutePattern, + Status) +from .protocol import GeminiProtocol +from .server import GeminiServer + +__title__ = "Jetforce Gemini Server" +__author__ = "Michael Lazar" +__license__ = "Floodgap Free Software License" +__copyright__ = "(c) 2020 Michael Lazar" diff --git a/jetforce/__main__.py b/jetforce/__main__.py new file mode 100644 index 0000000..8e3b0e3 --- /dev/null +++ b/jetforce/__main__.py @@ -0,0 +1,117 @@ +""" +Main entry point for running ``jetforce`` from the command line. + +This will launch a gemini server running the StaticFileServer application. +""" +# Black does not do a good job of formatting argparse code, IMHO. +# fmt: off +import argparse +import sys + +from .__version__ import __version__ +from .app.static import StaticDirectoryApplication +from .server import GeminiServer + +if sys.version_info < (3, 7): + sys.exit("Fatal Error: jetforce requires Python 3.7+") + + +# noinspection PyTypeChecker +parser = argparse.ArgumentParser( + prog="jetforce", + description="An Experimental Gemini Protocol Server", + formatter_class=argparse.ArgumentDefaultsHelpFormatter, +) +parser.add_argument( + "-V", "--version", + action="version", + version="jetforce " + __version__ +) +group = parser.add_argument_group("server configuration") +group.add_argument( + "--host", + help="Server address to bind to", + default="127.0.0.1" +) +group.add_argument( + "--port", + help="Server port to bind to", + type=int, + default=1965 +) +group.add_argument( + "--hostname", + help="Server hostname", + default="localhost" +) +group.add_argument( + "--tls-certfile", + dest="certfile", + help="Server TLS certificate file", + metavar="FILE", +) +group.add_argument( + "--tls-keyfile", + dest="keyfile", + help="Server TLS private key file", + metavar="FILE", +) +group.add_argument( + "--tls-cafile", + dest="cafile", + help="A CA file to use for validating clients", + metavar="FILE", +) +group.add_argument( + "--tls-capath", + dest="capath", + help="A directory containing CA files for validating clients", + metavar="DIR", +) +group = parser.add_argument_group("static file configuration") +group.add_argument( + "--dir", + help="Root directory on the filesystem to serve", + default="/var/gemini", + metavar="DIR", + dest="root_directory", +) +group.add_argument( + "--cgi-dir", + help="CGI script directory, relative to the server's root directory", + default="cgi-bin", + metavar="DIR", + dest="cgi_directory", +) +group.add_argument( + "--index-file", + help="If a directory contains a file with this name, " + "that file will be served instead of auto-generating an index page", + default="index.gmi", + metavar="FILE", + dest="index_file", +) + + +def main(): + args = parser.parse_args() + app = StaticDirectoryApplication( + root_directory=args.root_directory, + index_file=args.index_file, + cgi_directory=args.cgi_directory, + ) + server = GeminiServer( + app=app, + host=args.host, + port=args.port, + hostname=args.hostname, + certfile=args.certfile, + keyfile=args.keyfile, + cafile=args.cafile, + capath=args.capath, + ) + server.run() + + +if __name__ == "__main__": + main() diff --git a/jetforce/__version__.py b/jetforce/__version__.py new file mode 100644 index 0000000..6c93125 --- /dev/null +++ b/jetforce/__version__.py @@ -0,0 +1 @@ +__version__ = "1.0.0rc1" diff --git a/jetforce/app/__init__.py b/jetforce/app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/jetforce/app/base.py b/jetforce/app/base.py new file mode 100644 index 0000000..2adc9c0 --- /dev/null +++ b/jetforce/app/base.py @@ -0,0 +1,202 @@ +import argparse +import dataclasses +import re +import typing +import urllib.parse + + +class Status: + """ + Gemini response status codes. + """ + + INPUT = 10 + + SUCCESS = 20 + SUCCESS_END_OF_SESSION = 21 + + REDIRECT_TEMPORARY = 30 + REDIRECT_PERMANENT = 31 + + TEMPORARY_FAILURE = 40 + SERVER_UNAVAILABLE = 41 + CGI_ERROR = 42 + PROXY_ERROR = 43 + SLOW_DOWN = 44 + + PERMANENT_FAILURE = 50 + NOT_FOUND = 51 + GONE = 52 + PROXY_REQUEST_REFUSED = 53 + BAD_REQUEST = 59 + + CLIENT_CERTIFICATE_REQUIRED = 60 + TRANSIENT_CERTIFICATE_REQUESTED = 61 + AUTHORISED_CERTIFICATE_REQUIRED = 62 + CERTIFICATE_NOT_ACCEPTED = 63 + FUTURE_CERTIFICATE_REJECTED = 64 + EXPIRED_CERTIFICATE_REJECTED = 65 + + +class Request: + """ + Object that encapsulates information about a single gemini request. + """ + + def __init__(self, environ: dict): + self.environ = environ + self.url = environ["GEMINI_URL"] + + url_parts = urllib.parse.urlparse(self.url) + if not url_parts.hostname: + raise ValueError("URL must contain a `hostname` part") + + if not url_parts.scheme: + # If scheme is missing, infer it to be gemini:// + self.scheme = "gemini" + else: + self.scheme = url_parts.scheme + + self.hostname = url_parts.hostname + self.port = url_parts.port + self.path = url_parts.path + self.params = url_parts.params + self.query = urllib.parse.unquote(url_parts.query) + self.fragment = url_parts.fragment + + +@dataclasses.dataclass +class Response: + """ + Object that encapsulates information about a single gemini response. + """ + + status: int + meta: str + body: typing.Union[ + None, bytes, str, typing.Iterable[typing.Union[bytes, str]] + ] = None + + +@dataclasses.dataclass +class RoutePattern: + """ + A pattern for matching URLs with a single endpoint or route. + """ + + path: str = ".*" + scheme: str = "gemini" + hostname: typing.Optional[str] = None + + strict_hostname: bool = True + strict_port: bool = True + strict_trailing_slash: bool = False + + def match(self, request: Request) -> typing.Optional[re.Match]: + """ + Check if the given request URL matches this route pattern. + """ + if self.hostname is None: + server_hostname = request.environ["HOSTNAME"] + else: + server_hostname = self.hostname + server_port = int(request.environ["SERVER_PORT"]) + + if self.strict_hostname and request.hostname != server_hostname: + return + if self.strict_port and request.port is not None: + if request.port != server_port: + return + if self.scheme and self.scheme != request.scheme: + return + + if self.strict_trailing_slash: + request_path = request.path + else: + request_path = request.path.rstrip("/") + + return re.fullmatch(self.path, request_path) + + +class JetforceApplication: + """ + Base Jetforce application class with primitive URL routing. + + This is a base class for writing jetforce server applications. It doesn't + anything on its own, but it does provide a convenient interface to define + custom server endpoints using route decorators. If you want to utilize + jetforce as a library and write your own server in python, this is the class + that you want to extend. The examples/ directory contains some examples of + how to accomplish this. + """ + + def __init__(self): + self.routes: typing.List[ + typing.Tuple[RoutePattern, typing.Callable[[Request], Response]] + ] = [] + + def __call__( + self, environ: dict, send_status: typing.Callable + ) -> typing.Iterator[bytes]: + try: + request = Request(environ) + except Exception: + send_status(Status.BAD_REQUEST, "Unrecognized URL format") + return + + for route_pattern, callback in self.routes[::-1]: + if route_pattern.match(request): + break + else: + callback = self.default_callback + + response = callback(request) + send_status(response.status, response.meta) + + if isinstance(response.body, (bytes, str)): + yield response.body + elif response.body: + yield from response.body + + def route( + self, + path: str = ".*", + scheme: str = "gemini", + hostname: typing.Optional[str] = None, + strict_hostname: bool = True, + strict_trailing_slash: bool = False, + ) -> typing.Callable: + """ + Decorator for binding a function to a route based on the URL path. + + app = JetforceApplication() + + @app.route('/my-path') + def my_path(request): + return Response(Status.SUCCESS, 'text/plain', 'Hello world!') + """ + route_pattern = RoutePattern( + path, scheme, hostname, strict_hostname, strict_trailing_slash + ) + + def wrap(func: typing.Callable) -> typing.Callable: + self.routes.append((route_pattern, func)) + return func + + return wrap + + def default_callback(self, request: Request) -> Response: + """ + Set the error response based on the URL type. + """ + return Response(Status.PERMANENT_FAILURE, "Not Found") + + @classmethod + def add_arguments(cls, parser: argparse.ArgumentParser) -> None: + """ + Add any application-specific arguments to the GeminiServer parser. + + The destination variables for these arguments should match the method + signature for this class's __init__ method. + """ + return diff --git a/jetforce/app/static.py b/jetforce/app/static.py new file mode 100644 index 0000000..bc9a282 --- /dev/null +++ b/jetforce/app/static.py @@ -0,0 +1,186 @@ +import codecs +import mimetypes +import os +import pathlib +import subprocess +import typing +import urllib.parse + +from .base import JetforceApplication, Request, Response, RoutePattern, Status + + +class StaticDirectoryApplication(JetforceApplication): + """ + Application for serving static files & CGI over gemini. + + This is a batteries-included application that serves files from a static + directory. It provides a preconfigured gemini server without needing to + write any lines of code. This is what is invoked when you launch jetforce + from the command line. + + If a directory contains a file with the name "index.gmi", that file will + be returned when the directory path is requested. Otherwise, a directory + listing will be auto-generated. + """ + + def __init__( + self, + root_directory: str = "/var/gemini", + index_file: str = "index.gmi", + cgi_directory: str = "cgi-bin", + ): + super().__init__() + self.routes.append((RoutePattern(), self.serve_static_file)) + + self.root = pathlib.Path(root_directory).resolve(strict=True) + self.cgi_directory = cgi_directory.strip("/") + "/" + + self.index_file = index_file + self.mimetypes = mimetypes.MimeTypes() + self.mimetypes.add_type("text/gemini", ".gmi") + self.mimetypes.add_type("text/gemini", ".gemini") + + def serve_static_file(self, request: Request) -> Response: + """ + Convert a URL into a filesystem path, and attempt to serve the file + or directory that is represented at that path. + """ + url_path = pathlib.Path(request.path.strip("/")) + + filename = pathlib.Path(os.path.normpath(str(url_path))) + if filename.is_absolute() or str(filename.name).startswith(".."): + # Guard against breaking out of the directory + return Response(Status.NOT_FOUND, "Not Found") + + filesystem_path = self.root / filename + + try: + if not os.access(filesystem_path, os.R_OK): + # File not readable + return Response(Status.NOT_FOUND, "Not Found") + except OSError: + # Filename too large, etc. + return Response(Status.NOT_FOUND, "Not Found") + + if filesystem_path.is_file(): + is_cgi = str(filename).startswith(self.cgi_directory) + is_exe = os.access(filesystem_path, os.X_OK) + if is_cgi and is_exe: + return self.run_cgi_script(filesystem_path, request.environ) + + mimetype = self.guess_mimetype(filesystem_path.name) + generator = self.load_file(filesystem_path) + return Response(Status.SUCCESS, mimetype, generator) + + elif filesystem_path.is_dir(): + if not request.path.endswith("/"): + url_parts = urllib.parse.urlparse(request.url) + # noinspection PyProtectedMember + url_parts = url_parts._replace(path=request.path + "/") + return Response(Status.REDIRECT_PERMANENT, url_parts.geturl()) + + index_file = filesystem_path / self.index_file + if index_file.exists(): + generator = self.load_file(index_file) + return Response(Status.SUCCESS, "text/gemini", generator) + + generator = self.list_directory(url_path, filesystem_path) + return Response(Status.SUCCESS, "text/gemini", generator) + + else: + return Response(Status.NOT_FOUND, "Not Found") + + def run_cgi_script(self, filesystem_path: pathlib.Path, environ: dict) -> Response: + """ + Execute the given file as a CGI script and return the script's stdout + stream to the client. + """ + script_name = str(filesystem_path) + + cgi_env = {k: v for k, v in environ.items() if k.isupper()} + cgi_env["GATEWAY_INTERFACE"] = "GCI/1.1" + cgi_env["SCRIPT_NAME"] = script_name + + # Decode the stream as unicode so we can parse the status line + # Use surrogateescape to preserve any non-UTF8 byte sequences. + out = subprocess.Popen( + [script_name], + stdout=subprocess.PIPE, + env=cgi_env, + bufsize=1, + universal_newlines=True, + errors="surrogateescape", + ) + + status_line = out.stdout.readline().strip() + status_parts = status_line.split(maxsplit=1) + if len(status_parts) != 2 or not status_parts[0].isdecimal(): + return Response(Status.CGI_ERROR, "Unexpected Error") + + status, meta = status_parts + + # Re-encode the rest of the body as bytes + body = codecs.iterencode(out.stdout, encoding="utf-8", errors="surrogateescape") + return Response(int(status), meta, body) + + def load_file(self, filesystem_path: pathlib.Path) -> typing.Iterator[bytes]: + """ + Load a file in chunks to allow streaming to the TCP socket. + """ + with filesystem_path.open("rb") as fp: + data = fp.read(1024) + while data: + yield data + data = fp.read(1024) + + def list_directory( + self, url_path: pathlib.Path, filesystem_path: pathlib.Path + ) -> typing.Iterator[bytes]: + """ + Auto-generate a text/gemini document based on the contents of the file system. + """ + yield f"Directory: /{url_path}\r\n".encode() + if url_path.parent != url_path: + yield f"=>/{url_path.parent}\t..\r\n".encode() + + for file in sorted(filesystem_path.iterdir()): + if file.name.startswith("."): + # Skip hidden directories/files that may contain sensitive info + continue + elif file.is_dir(): + yield f"=>/{url_path / file.name}/\t{file.name}/\r\n".encode() + else: + yield f"=>/{url_path / file.name}\t{file.name}\r\n".encode() + + def guess_mimetype(self, filename: str) -> str: + """ + Guess the mimetype of a file based on the file extension. + """ + mime, encoding = self.mimetypes.guess_type(filename) + if encoding: + return f"{mime}; charset={encoding}" + else: + return mime or "text/plain" + + def default_callback(self, request: Request) -> Response: + """ + Since the StaticDirectoryApplication only serves gemini URLs, return + a proxy request refused for suspicious URLs. + """ + if request.scheme != "gemini": + return Response( + Status.PROXY_REQUEST_REFUSED, + "This server does not allow proxy requests", + ) + elif request.hostname != request.environ["HOSTNAME"]: + return Response( + Status.PROXY_REQUEST_REFUSED, + "This server does not allow proxy requests", + ) + elif request.port and request.port != request.environ["SERVER_PORT"]: + return Response( + Status.PROXY_REQUEST_REFUSED, + "This server does not allow proxy requests", + ) + else: + return Response(Status.NOT_FOUND, "Not Found") diff --git a/jetforce/protocol.py b/jetforce/protocol.py new file mode 100644 index 0000000..a083493 --- /dev/null +++ b/jetforce/protocol.py @@ -0,0 +1,206 @@ +from __future__ import annotations + +import time +import typing +import urllib.parse + +from twisted.internet.address import IPv4Address, IPv6Address +from twisted.internet.defer import inlineCallbacks +from twisted.protocols.basic import LineOnlyReceiver + +from .__version__ import __version__ +from .app.base import JetforceApplication, Status +from .tls import inspect_certificate + + +class GeminiProtocol(LineOnlyReceiver): + """ + Handle a single Gemini Protocol TCP request. + + The request handler manages the life of a single gemini request. It exposes + a simplified interface to read the request URL and write the gemini response + status line and body to the socket. The request URL and other server + information is stuffed into an ``environ`` dictionary that encapsulates the + request at a low level. This dictionary, along with a callback to write the + response data, and passed to a configurable "application" function or class. + + This design borrows heavily from the standard library's HTTP request + handler (http.server.BaseHTTPRequestHandler). However, I did not make any + attempts to directly emulate the existing conventions, because Gemini is an + inherently simpler protocol than HTTP and much of the boilerplate could be + removed. + """ + + TIMESTAMP_FORMAT = "%d/%b/%Y:%H:%M:%S %z" + + client_addr: typing.Union[IPv4Address, IPv6Address] + connected_timestamp: time.struct_time + request: bytes + url: str + status: int + meta: str + response_buffer: str + response_size: int + + def __init__(self, server: "GeminiServer", app: JetforceApplication): + self.server = server + self.app = app + + def connectionMade(self): + """ + This is invoked by twisted after the connection is first established. + """ + self.connected_timestamp = time.localtime() + self.response_size = 0 + self.response_buffer = "" + self.client_addr = self.transport.getPeer() + + def lineReceived(self, line): + """ + This method is invoked by LineOnlyReceiver for every incoming line. + + Because Gemini requests are only ever a single line long, this will + only be called once and we can use it to handle the lifetime of the + connection without managing any state. + """ + self.request = line + return self._handle_request_noblock() + + @inlineCallbacks + def _handle_request_noblock(self): + try: + self.parse_header() + except Exception: + # Malformed request, throw it away and exit immediately + self.write_status(Status.BAD_REQUEST, "Malformed request") + self.flush_status() + self.transport.loseConnection() + raise + + try: + environ = self.build_environ() + for data in self.app(environ, self.write_status): + self.write_body(data) + yield # Yield control to the event loop + except Exception: + self.write_status(Status.CGI_ERROR, "An unexpected error occurred") + finally: + self.flush_status() + self.log_request() + self.transport.loseConnection() + + def build_environ(self) -> typing.Dict[str, typing.Any]: + """ + Construct a dictionary that will be passed to the application handler. + + Variable names (mostly) conform to the CGI spec defined in RFC 3875. + The TLS variable names borrow from the GLV-1.12556 server. + """ + url_parts = urllib.parse.urlparse(self.url) + environ = { + "GEMINI_URL": self.url, + "HOSTNAME": self.server.hostname, + "PATH_INFO": url_parts.path, + "QUERY_STRING": url_parts.query, + "REMOTE_ADDR": self.client_addr.host, + "REMOTE_HOST": self.client_addr.host, + "SERVER_NAME": self.server.hostname, + "SERVER_PORT": str(self.client_addr.port), + "SERVER_PROTOCOL": "GEMINI", + "SERVER_SOFTWARE": f"jetforce/{__version__}", + "client_certificate": None, + } + + cert = self.transport.getPeerCertificate() + if cert: + x509_cert = cert.to_cryptography() + cert_data = inspect_certificate(x509_cert) + conn = self.transport.getHandle() + environ.update( + { + "client_certificate": x509_cert, + "AUTH_TYPE": "CERTIFICATE", + "REMOTE_USER": cert_data["common_name"], + "TLS_CLIENT_HASH": cert_data["fingerprint"], + "TLS_CLIENT_NOT_BEFORE": cert_data["not_before"], + "TLS_CLIENT_NOT_AFTER": cert_data["not_after"], + "TLS_CLIENT_SERIAL_NUMBER": cert_data["serial_number"], + # Grab the value that was stashed during the TLS handshake + "TLS_CLIENT_VERIFIED": getattr(conn, "verified", False), + "TLS_CIPHER": conn.get_cipher_name(), + "TLS_VERSION": conn.get_protocol_version_name(), + } + ) + return environ + + def parse_header(self) -> None: + """ + Parse the gemini header line. + + The request is a single UTF-8 line formatted as: \r\n + """ + if len(self.request) > 1024: + raise ValueError("URL exceeds max length of 1024 bytes") + + self.url = self.request.decode() + + def write_status(self, status: int, meta: str) -> None: + """ + Write the gemini status line to an internal buffer. + + The status line is a single UTF-8 line formatted as: + \t\r\n + + If the response status is 2, the meta field will contain the mimetype + of the response data sent. If the status is something else, the meta + will contain a descriptive message. + + The status is not written immediately, it's added to an internal buffer + that must be flushed. This is done so that the status can be updated as + long as no other data has been written to the stream yet. + """ + self.status = status + self.meta = meta + self.response_buffer = f"{status}\t{meta}\r\n" + + def write_body(self, data: typing.Union[str, bytes, None]) -> None: + """ + Write bytes to the gemini response body. + """ + if data is None: + return + + self.flush_status() + if isinstance(data, str): + data = data.encode() + self.response_size += len(data) + self.transport.write(data) + + def flush_status(self) -> None: + """ + Flush the status line from the internal buffer to the socket stream. + """ + if self.response_buffer and not self.response_size: + data = self.response_buffer.encode() + self.response_size += len(data) + self.transport.write(data) + self.response_buffer = "" + + def log_request(self) -> None: + """ + Log a gemini request using a format derived from the Common Log Format. + """ + try: + message = '{} [{}] "{}" {} {} {}'.format( + self.client_addr.host, + time.strftime(self.TIMESTAMP_FORMAT, self.connected_timestamp), + self.url, + self.status, + self.meta, + self.response_size, + ) + except AttributeError: + # The connection ended before we got far enough to log anything + pass + else: + self.server.log_message(message) diff --git a/jetforce/server.py b/jetforce/server.py new file mode 100644 index 0000000..c95556f --- /dev/null +++ b/jetforce/server.py @@ -0,0 +1,119 @@ +from __future__ import annotations + +import socket +import sys +import typing + +from twisted.internet import reactor +from twisted.internet.base import ReactorBase +from twisted.internet.endpoints import SSL4ServerEndpoint +from twisted.internet.protocol import Factory +from twisted.internet.tcp import Port + +from .__version__ import __version__ +from .protocol import GeminiProtocol +from .tls import GeminiCertificateOptions, generate_ad_hoc_certificate + +ABOUT = fr""" +You are now riding on... +_________ _____________ +______ /______ /___ __/_______________________ +___ _ /_ _ \ __/_ /_ _ __ \_ ___/ ___/ _ \ +/ /_/ / / __/ /_ _ __/ / /_/ / / / /__ / __/ +\____/ \___/\__/ /_/ \____//_/ \___/ \___/ + +An Experimental Gemini Server, v{__version__} +https://github.com/michael-lazar/jetforce +""" + + +class GeminiServer(Factory): + """ + Wrapper around twisted's TCP server that handles most of the setup and + plumbing for you. + """ + + protocol_class = GeminiProtocol + + # The TLS twisted interface class is confusingly named SSL4, even though it + # will accept either IPv4 & IPv6 interfaces. + endpoint_class = SSL4ServerEndpoint + + def __init__( + self, + app: typing.Callable, + reactor: ReactorBase = reactor, + host: str = "127.0.0.1", + port: int = 1965, + hostname: str = "localhost", + certfile: typing.Optional[str] = None, + keyfile: typing.Optional[str] = None, + cafile: typing.Optional[str] = None, + capath: typing.Optional[str] = None, + ): + if certfile is None: + self.log_message("Generating ad-hoc certificate files...") + certfile, keyfile = generate_ad_hoc_certificate(hostname) + + self.app = app + self.reactor = reactor + self.host = host + self.port = port + self.hostname = hostname + self.certfile = certfile + self.keyfile = keyfile + self.cafile = cafile + self.capath = capath + + def log_message(self, message: str) -> None: + """ + Log a diagnostic server message to stderr. + """ + print(message, file=sys.stderr) + + def on_bind_interface(self, port: Port) -> None: + """ + Log when the server binds to an interface. + """ + sock_ip, sock_port, *_ = port.socket.getsockname() + if port.addressFamily == socket.AF_INET: + self.log_message(f"Listening on {sock_ip}:{sock_port}") + else: + self.log_message(f"Listening on [{sock_ip}]:{sock_port}") + + def buildProtocol(self, addr) -> GeminiProtocol: + """ + This method is invoked by twisted once for every incoming connection. + + It builds the instance of the protocol class, which is what actually + implements the Gemini protocol. + """ + return GeminiProtocol(self, self.app) + + def run(self) -> None: + """ + This is the main server loop. + """ + self.log_message(ABOUT) + self.log_message(f"Server hostname is {self.hostname}") + self.log_message(f"TLS Certificate File: {self.certfile}") + self.log_message(f"TLS Private Key File: {self.keyfile}") + + certificate_options = GeminiCertificateOptions( + certfile=self.certfile, + keyfile=self.keyfile, + cafile=self.cafile, + capath=self.capath, + ) + + interfaces = [self.host] if self.host else ["0.0.0.0", "::"] + for interface in interfaces: + endpoint = self.endpoint_class( + reactor=self.reactor, + port=self.port, + sslContextFactory=certificate_options, + interface=interface, + ) + endpoint.listen(self).addCallback(self.on_bind_interface) + + self.reactor.run() diff --git a/jetforce/tls.py b/jetforce/tls.py new file mode 100644 index 0000000..3145844 --- /dev/null +++ b/jetforce/tls.py @@ -0,0 +1,179 @@ +import base64 +import datetime +import os +import tempfile +import typing + +import OpenSSL +from cryptography import x509 +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes, serialization +from cryptography.hazmat.primitives.asymmetric import rsa +from twisted.internet.ssl import CertificateOptions, TLSVersion +from twisted.python.randbytes import secureRandom + +COMMON_NAME = x509.NameOID.COMMON_NAME + + +def inspect_certificate(cert: x509) -> dict: + """ + Extract useful fields from a x509 client certificate object. + """ + name_attrs = cert.subject.get_attributes_for_oid(COMMON_NAME) + common_name = name_attrs[0].value if name_attrs else "" + + fingerprint_bytes = cert.fingerprint(hashes.SHA256()) + fingerprint = base64.b64encode(fingerprint_bytes).decode() + + not_before = cert.not_valid_before.strftime("%Y-%m-%dT%H:%M:%SZ") + not_after = cert.not_valid_after.strftime("%Y-%m-%dT%H:%M:%SZ") + + serial_number = cert.serial_number + + data = { + "common_name": common_name, + "fingerprint": fingerprint, + "not_before": not_before, + "not_after": not_after, + "serial_number": serial_number, + } + return data + + +def generate_ad_hoc_certificate(hostname: str) -> typing.Tuple[str, str]: + """ + Utility function to generate an ad-hoc self-signed SSL certificate. + """ + certfile = os.path.join(tempfile.gettempdir(), f"{hostname}.crt") + keyfile = os.path.join(tempfile.gettempdir(), f"{hostname}.key") + + if not os.path.exists(certfile) or not os.path.exists(keyfile): + backend = default_backend() + + private_key = rsa.generate_private_key(65537, 2048, backend) + with open(keyfile, "wb") as fp: + # noinspection PyTypeChecker + key_data = private_key.private_bytes( + serialization.Encoding.PEM, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption(), + ) + fp.write(key_data) + + common_name = x509.NameAttribute(COMMON_NAME, hostname) + subject_name = x509.Name([common_name]) + not_valid_before = datetime.datetime.utcnow() + not_valid_after = not_valid_before + datetime.timedelta(days=365) + certificate = x509.CertificateBuilder( + subject_name=subject_name, + issuer_name=subject_name, + public_key=private_key.public_key(), + serial_number=x509.random_serial_number(), + not_valid_before=not_valid_before, + not_valid_after=not_valid_after, + ) + certificate = certificate.sign(private_key, hashes.SHA256(), backend) + with open(certfile, "wb") as fp: + # noinspection PyTypeChecker + cert_data = certificate.public_bytes(serialization.Encoding.PEM) + fp.write(cert_data) + + return certfile, keyfile + + +class GeminiCertificateOptions(CertificateOptions): + """ + CertificateOptions is a factory function that twisted provides to do all of + the confusing PyOpenSSL configuration for you. Unfortunately, their built-in + class doesn't support the verify callback and some other options required + for implementing TOFU pinning, so I had to subclass and add custom behavior. + + References: + https://twistedmatrix.com/documents/16.1.1/core/howto/ssl.html + https://github.com/urllib3/urllib3/blob/master/src/urllib3/util/ssl_.py + https://github.com/twisted/twisted/blob/trunk/src/twisted/internet/_sslverify.py + """ + + def verify_callback(self, conn, cert, errno, depth, preverify_ok): + """ + Callback used by OpenSSL for client certificate verification. + + preverify_ok returns the verification result that OpenSSL has already + obtained, so return this value to cede control to the underlying + library. Returning true will always allow client certificates, even if + they are self-signed. + """ + conn.verified = preverify_ok + return True + + def proto_select_callback(self, conn, protocols): + """ + Callback used by OpenSSL for ALPN support. + + Return the first matching protocol in our list of acceptable values. + """ + for p in self._acceptableProtocols: + if p in protocols: + return p + else: + return b"" + + def __init__( + self, + certfile: str, + keyfile: typing.Optional[str] = None, + cafile: typing.Optional[str] = None, + capath: typing.Optional[str] = None, + ): + self.certfile = certfile + self.keyfile = keyfile + self.cafile = cafile + self.capath = capath + + super().__init__( + raiseMinimumTo=TLSVersion.TLSv1_2, + requireCertificate=False, + fixBrokenPeers=True, + ) + + def _makeContext(self): + """ + Most of this code is copied directly from the parent class method. + """ + ctx = self._contextFactory(self.method) + ctx.set_options(self._options) + ctx.set_mode(self._mode) + + ctx.use_certificate_file(self.certfile) + ctx.use_privatekey_file(self.keyfile or self.certfile) + for extraCert in self.extraCertChain: + ctx.add_extra_chain_cert(extraCert) + # Sanity check + ctx.check_privatekey() + + if self.cafile or self.capath: + ctx.load_verify_locations(self.cafile, self.capath) + + verify_flags = OpenSSL.SSL.VERIFY_PEER + if self.requireCertificate: + verify_flags |= OpenSSL.SSL.VERIFY_FAIL_IF_NO_PEER_CERT + if self.verifyOnce: + verify_flags |= OpenSSL.SSL.VERIFY_CLIENT_ONCE + + ctx.set_verify(verify_flags, self.verify_callback) + if self.verifyDepth is not None: + ctx.set_verify_depth(self.verifyDepth) + + if self.enableSessions: + session_name = secureRandom(32) + ctx.set_session_id(session_name) + + ctx.set_cipher_list(self._cipherString.encode("ascii")) + + self._ecChooser.configureECDHCurve(ctx) + + if self._acceptableProtocols: + ctx.set_alpn_select_callback(self.proto_select_callback) + ctx.set_alpn_protos(self._acceptableProtocols) + + return ctx diff --git a/setup.py b/setup.py index 9c5a70a..55e7c04 100644 --- a/setup.py +++ b/setup.py @@ -18,16 +18,18 @@ setuptools.setup( description="An Experimental Gemini Server", install_requires=[ "twisted>=20.3.0", - "service_identity", # Used by twisted - "idna", # Used by twisted - "pyopenssl", # Used by twisted + # Requirements below are used by twisted[security] + "service_identity", + "idna", + "pyopenssl", ], long_description=long_description(), long_description_content_type="text/markdown", - py_modules=["jetforce", "jetforce_client", "jetforce_diagnostics"], + packages=["jetforce", "jetforce.app"], + py_modules=["jetforce_client", "jetforce_diagnostics"], entry_points={ "console_scripts": [ - "jetforce=jetforce:run_server", + "jetforce=jetforce.__main__:main", "jetforce-client=jetforce_client:run_client", "jetforce-diagnostics=jetforce_diagnostics:run", ] From 263b33446941328ee3c9e0ff61c76e28b23162af Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 17 May 2020 15:00:51 -0400 Subject: [PATCH 14/34] Formatting --- jetforce/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/jetforce/__init__.py b/jetforce/__init__.py index 2aabb3d..4d08214 100644 --- a/jetforce/__init__.py +++ b/jetforce/__init__.py @@ -1,9 +1,10 @@ -# fmt: off +""" +isort:skip_file +""" from .__version__ import __version__ -from .app.base import (JetforceApplication, Request, Response, RoutePattern, - Status) from .protocol import GeminiProtocol from .server import GeminiServer +from .app.base import JetforceApplication, Request, Response, RoutePattern, Status __title__ = "Jetforce Gemini Server" __author__ = "Michael Lazar" From 2b44182d84b50917324156acfa06d078dc987ad0 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 17 May 2020 15:01:08 -0400 Subject: [PATCH 15/34] Formatting --- jetforce/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetforce/__init__.py b/jetforce/__init__.py index 4d08214..1d9df64 100644 --- a/jetforce/__init__.py +++ b/jetforce/__init__.py @@ -2,9 +2,9 @@ isort:skip_file """ from .__version__ import __version__ +from .app.base import JetforceApplication, Request, Response, RoutePattern, Status from .protocol import GeminiProtocol from .server import GeminiServer -from .app.base import JetforceApplication, Request, Response, RoutePattern, Status __title__ = "Jetforce Gemini Server" __author__ = "Michael Lazar" From abea5601d74f80616d6989357d946666e651a9be Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 17 May 2020 23:08:16 -0400 Subject: [PATCH 16/34] Finally figured out twisted concurrency --- examples/counter.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ jetforce/protocol.py | 29 ++++++++++++++++------------ jetforce_client.py | 11 ++++++----- 3 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 examples/counter.py diff --git a/examples/counter.py b/examples/counter.py new file mode 100644 index 0000000..ec5f7b6 --- /dev/null +++ b/examples/counter.py @@ -0,0 +1,45 @@ +""" +An endpoint that streams incrementing numbers forever. + +This is an example of how a jetforce application can respond with a generator +function instead of plain text/bytes. The server will iterate over the +generator and write the data to the socket in-between each iteration. This can +be useful if you want to serve a large response, like a binary file, without +loading the entire response into memory at once. + +The server will schedule your application code to be run inside of a separate +thread, using twisted's built-in thread pool. So even though the counter +function contains a sleep(), it will not block the server from handling other +requests. Try requesting this endpoint over two connections simultaneously. + +> jetforce-client gemini://localhost +> jetforce-client gemini://localhost +""" + +import time + +from jetforce import GeminiServer, JetforceApplication, Response, Status + + +def counter(): + """ + Generator function that counts to ∞. + """ + x = 0 + while True: + time.sleep(1) + x += 1 + yield f"{x}\r\n" + + +app = JetforceApplication() + + +@app.route() +def index(request): + return Response(Status.SUCCESS, "text/plain", counter()) + + +if __name__ == "__main__": + server = GeminiServer(app) + server.run() diff --git a/jetforce/protocol.py b/jetforce/protocol.py index a083493..0b20233 100644 --- a/jetforce/protocol.py +++ b/jetforce/protocol.py @@ -5,7 +5,8 @@ import typing import urllib.parse from twisted.internet.address import IPv4Address, IPv6Address -from twisted.internet.defer import inlineCallbacks +from twisted.internet.defer import ensureDeferred +from twisted.internet.threads import deferToThread from twisted.protocols.basic import LineOnlyReceiver from .__version__ import __version__ @@ -64,10 +65,10 @@ class GeminiProtocol(LineOnlyReceiver): connection without managing any state. """ self.request = line - return self._handle_request_noblock() + return ensureDeferred(self._handle_request_noblock()) + + async def _handle_request_noblock(self): - @inlineCallbacks - def _handle_request_noblock(self): try: self.parse_header() except Exception: @@ -79,9 +80,15 @@ class GeminiProtocol(LineOnlyReceiver): try: environ = self.build_environ() - for data in self.app(environ, self.write_status): - self.write_body(data) - yield # Yield control to the event loop + response_generator = await deferToThread( + self.app, environ, self.write_status + ) + while True: + try: + data = await deferToThread(response_generator.__next__) + self.write_body(data) + except StopIteration: + break except Exception: self.write_status(Status.CGI_ERROR, "An unexpected error occurred") finally: @@ -163,16 +170,14 @@ class GeminiProtocol(LineOnlyReceiver): self.meta = meta self.response_buffer = f"{status}\t{meta}\r\n" - def write_body(self, data: typing.Union[str, bytes, None]) -> None: + def write_body(self, data: typing.Union[str, bytes]) -> None: """ Write bytes to the gemini response body. """ - if data is None: - return - - self.flush_status() if isinstance(data, str): data = data.encode() + + self.flush_status() self.response_size += len(data) self.transport.write(data) diff --git a/jetforce_client.py b/jetforce_client.py index 6d8411c..1b08b56 100755 --- a/jetforce_client.py +++ b/jetforce_client.py @@ -7,6 +7,7 @@ A dead-simple gemini client intended to be used for server development and testi import argparse import socket import ssl +import sys import urllib.parse context = ssl.create_default_context() @@ -25,11 +26,11 @@ def fetch(url: str, host: str = None, port: str = None): with socket.create_connection((host, port)) as sock: with context.wrap_socket(sock) as ssock: ssock.sendall((url + "\r\n").encode()) - fp = ssock.makefile("rb") - header = fp.readline().decode() - print(header) - body = fp.read().decode() - print(body) + fp = ssock.makefile("rb", buffering=0) + data = fp.read(1024) + while data: + sys.stdout.buffer.write(data) + data = fp.read(1024) def run_client(): From d4ceb4d085fe7ac26b3851073613dbb658ee614c Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sun, 17 May 2020 23:10:31 -0400 Subject: [PATCH 17/34] Change back to beta version, we're not ready for 1.0 --- jetforce/__version__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jetforce/__version__.py b/jetforce/__version__.py index 6c93125..493f741 100644 --- a/jetforce/__version__.py +++ b/jetforce/__version__.py @@ -1 +1 @@ -__version__ = "1.0.0rc1" +__version__ = "0.3.0" diff --git a/setup.py b/setup.py index 55e7c04..ef6f4df 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def long_description(): setuptools.setup( name="Jetforce", - version="1.0.0rc1", + version="0.3.0", url="https://github.com/michael-lazar/jetforce", license="Other/Proprietary License", author="Michael Lazar", From 2d7856f27c6764459723b7feca59ab9618e2a21b Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Mon, 18 May 2020 00:00:06 -0400 Subject: [PATCH 18/34] Update echo example --- examples/{ => cgi}/cowsay.cgi | 0 examples/{ => cgi}/debug.cgi | 0 examples/echo.py | 32 ++++++++++++++++++++++++++++++++ examples/echo_server.py | 27 --------------------------- jetforce/protocol.py | 24 ++++++++++++++++++++---- jetforce/tls.py | 5 +++-- 6 files changed, 55 insertions(+), 33 deletions(-) rename examples/{ => cgi}/cowsay.cgi (100%) rename examples/{ => cgi}/debug.cgi (100%) create mode 100644 examples/echo.py delete mode 100644 examples/echo_server.py diff --git a/examples/cowsay.cgi b/examples/cgi/cowsay.cgi similarity index 100% rename from examples/cowsay.cgi rename to examples/cgi/cowsay.cgi diff --git a/examples/debug.cgi b/examples/cgi/debug.cgi similarity index 100% rename from examples/debug.cgi rename to examples/cgi/debug.cgi diff --git a/examples/echo.py b/examples/echo.py new file mode 100644 index 0000000..1b8e91f --- /dev/null +++ b/examples/echo.py @@ -0,0 +1,32 @@ +""" +A bare-bones server that with echo back the request to the client. + +This example demonstrates the simplest proof-of-concept of how you can write +your own application from scratch instead of sub-classing from the provided +JetforceApplication. The server/application interface is almost identical to +WSGI defined in PEP-3333 [1]. + +Unless you're feeling adventurous, you probably want to stick to the +JetforceApplication instead of going this low-level. + +[1] https://www.python.org/dev/peps/pep-3333/#id20 +""" +import jetforce + + +def app(environ, send_status): + """ + Arguments: + environ: A dictionary containing information about the request + send_status: A callback function that takes two parameters: The + response status (int) and the response meta text (str). + + Returns: A generator containing the response body. + """ + send_status(10, "text/gemini") + yield f"Received path: {environ['GEMINI_URL']}" + + +if __name__ == "__main__": + server = jetforce.GeminiServer(app) + server.run() diff --git a/examples/echo_server.py b/examples/echo_server.py deleted file mode 100644 index 1056887..0000000 --- a/examples/echo_server.py +++ /dev/null @@ -1,27 +0,0 @@ -""" -A simple Gemini server that echos back the request to the client. -""" -import asyncio - -import jetforce - - -def echo(environ, send_status): - url = environ["GEMINI_URL"] - send_status(jetforce.Status.SUCCESS, "text/gemini") - yield f"Received path: {url}".encode() - - -if __name__ == "__main__": - args = jetforce.command_line_parser().parse_args() - ssl_context = jetforce.make_ssl_context( - args.hostname, args.certfile, args.keyfile, args.cafile, args.capath - ) - server = jetforce.GeminiServer( - host=args.host, - port=args.port, - ssl_context=ssl_context, - hostname=args.hostname, - app=echo, - ) - asyncio.run(server.run()) diff --git a/jetforce/protocol.py b/jetforce/protocol.py index 0b20233..3feffcd 100644 --- a/jetforce/protocol.py +++ b/jetforce/protocol.py @@ -59,16 +59,32 @@ class GeminiProtocol(LineOnlyReceiver): def lineReceived(self, line): """ This method is invoked by LineOnlyReceiver for every incoming line. - - Because Gemini requests are only ever a single line long, this will - only be called once and we can use it to handle the lifetime of the - connection without managing any state. """ self.request = line return ensureDeferred(self._handle_request_noblock()) async def _handle_request_noblock(self): + """ + Handle the gemini request and write the raw response to the socket. + This method is implemented using an async coroutine, which has been + supported by twisted since python 3.5 by wrapping the method in + ensureDeferred(). Twisted + coroutines is a bitch to figure out, but + once it clicks it really does turn out to be an elegant solution. + + Any time that we call into the application code, we wrap the call with + deferToThread() which will execute the code in a separate thread using + twisted's thread pool. deferToThread() will return a future object + that we can then `await` to get the result when the thread finishes. + This is important because we don't want application code to block the + twisted event loop from serving other requests at the same time. + + In the future, I would like to add the capability for applications to + implement proper coroutines that can call `await` on directly without + needing to wrap them in threads. Conceptually, this shouldn't be too + difficult, but it will require implementing an alternate version of + the JetforceApplication that's async-compatible. + """ try: self.parse_header() except Exception: diff --git a/jetforce/tls.py b/jetforce/tls.py index 3145844..aea659d 100644 --- a/jetforce/tls.py +++ b/jetforce/tls.py @@ -124,7 +124,8 @@ class GeminiCertificateOptions(CertificateOptions): keyfile: typing.Optional[str] = None, cafile: typing.Optional[str] = None, capath: typing.Optional[str] = None, - ): + ) -> None: + self.certfile = certfile self.keyfile = keyfile self.cafile = cafile @@ -136,7 +137,7 @@ class GeminiCertificateOptions(CertificateOptions): fixBrokenPeers=True, ) - def _makeContext(self): + def _makeContext(self) -> OpenSSL.SSL.Context: """ Most of this code is copied directly from the parent class method. """ From b2727748ef551b37ea6859e8dbeb5d490d459f91 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Mon, 18 May 2020 00:07:38 -0400 Subject: [PATCH 19/34] Add some color to the logo --- jetforce/server.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jetforce/server.py b/jetforce/server.py index c95556f..d34086a 100644 --- a/jetforce/server.py +++ b/jetforce/server.py @@ -14,13 +14,21 @@ from .__version__ import __version__ from .protocol import GeminiProtocol from .tls import GeminiCertificateOptions, generate_ad_hoc_certificate +if sys.stderr.isatty(): + CYAN = "\033[36m\033[1m" + RESET = "\033[0m" +else: + CYAN = "" + RESET = "" + + ABOUT = fr""" -You are now riding on... +{CYAN}You are now riding on... _________ _____________ ______ /______ /___ __/_______________________ ___ _ /_ _ \ __/_ /_ _ __ \_ ___/ ___/ _ \ / /_/ / / __/ /_ _ __/ / /_/ / / / /__ / __/ -\____/ \___/\__/ /_/ \____//_/ \___/ \___/ +\____/ \___/\__/ /_/ \____//_/ \___/ \___/{RESET} An Experimental Gemini Server, v{__version__} https://github.com/michael-lazar/jetforce From 78e94f30914280e83823da1d81a5a71a2d0ce8f1 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Mon, 18 May 2020 01:40:09 -0400 Subject: [PATCH 20/34] Update guestbook example --- examples/guestbook.py | 73 ++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/examples/guestbook.py b/examples/guestbook.py index c3cb1d8..7e4d945 100644 --- a/examples/guestbook.py +++ b/examples/guestbook.py @@ -1,60 +1,63 @@ """ -A guestbook application that accepts input from guests and stores messages in -a simple text file. +A simple guestbook application that accepts and displays text messages. + +This is an example of how to return a 10 INPUT request to the client and +retrieve their response by parsing the URL query string. This example stores +the guestbook inside of a persistent sqlite database. """ -import asyncio -import pathlib + +import sqlite3 from datetime import datetime -import jetforce -from jetforce import Response, Status +from jetforce import GeminiServer, JetforceApplication, Response, Status -guestbook = pathlib.Path("guestbook.txt") +DB = "/tmp/guestbook.sqlite" + +SCHEMA = """ +CREATE TABLE IF NOT EXISTS guestbook ( + ip_address TEXT, + created_at timestamp, + message TEXT +) +""" +with sqlite3.connect(DB) as c: + c.execute(SCHEMA) -app = jetforce.JetforceApplication() +app = JetforceApplication() @app.route("", strict_trailing_slash=False) def index(request): - data = ["Guestbook", "=>/submit Sign the Guestbook", ""] + lines = ["Guestbook", "=>/submit Sign the Guestbook"] - guestbook.touch(exist_ok=True) - with guestbook.open("r") as fp: - for line in fp: - line = line.strip() - if line.startswith("=>"): - data.append(line[2:]) - else: - data.append(line) + with sqlite3.connect(DB, detect_types=sqlite3.PARSE_DECLTYPES) as c: + for row in c.execute("SELECT * FROM guestbook ORDER BY created_at"): + ip_address, created_at, message = row + line = f"{created_at:%Y-%m-%d} - [{ip_address}] {message}" + lines.append("") + lines.append(line) - data.extend(["", "...", ""]) - return Response(Status.SUCCESS, "text/gemini", "\n".join(data)) + lines.extend(["", "...", ""]) + body = "\n".join(lines) + + return Response(Status.SUCCESS, "text/gemini", body) @app.route("/submit") def submit(request): if request.query: message = request.query[:256] - created = datetime.utcnow() - with guestbook.open("a") as fp: - fp.write(f"\n[{created:%Y-%m-%d %I:%M %p}]\n{message}\n") - + created = datetime.now() + ip_address = request.environ["REMOTE_HOST"] + with sqlite3.connect(DB) as c: + values = (ip_address, created, message) + c.execute("INSERT INTO guestbook VALUES (?, ?, ?)", values) return Response(Status.REDIRECT_TEMPORARY, "") else: return Response(Status.INPUT, "Enter your message (max 256 characters)") if __name__ == "__main__": - args = jetforce.command_line_parser().parse_args() - ssl_context = jetforce.make_ssl_context( - args.hostname, args.certfile, args.keyfile, args.cafile, args.capath - ) - server = jetforce.GeminiServer( - host=args.host, - port=args.port, - ssl_context=ssl_context, - hostname=args.hostname, - app=app, - ) - asyncio.run(server.run()) + server = GeminiServer(app) + server.run() From f02ea377623b087e2699fcbd59ac28b263fb52a3 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Mon, 18 May 2020 01:40:19 -0400 Subject: [PATCH 21/34] Add exception logging --- jetforce/protocol.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/jetforce/protocol.py b/jetforce/protocol.py index 3feffcd..cd435c3 100644 --- a/jetforce/protocol.py +++ b/jetforce/protocol.py @@ -1,6 +1,7 @@ from __future__ import annotations import time +import traceback import typing import urllib.parse @@ -89,6 +90,7 @@ class GeminiProtocol(LineOnlyReceiver): self.parse_header() except Exception: # Malformed request, throw it away and exit immediately + self.server.log_message(traceback.format_exc()) self.write_status(Status.BAD_REQUEST, "Malformed request") self.flush_status() self.transport.loseConnection() @@ -106,6 +108,7 @@ class GeminiProtocol(LineOnlyReceiver): except StopIteration: break except Exception: + self.server.log_message(traceback.format_exc()) self.write_status(Status.CGI_ERROR, "An unexpected error occurred") finally: self.flush_status() From 43907a0e44ea27e4a7047daa1be360e8fbe3f248 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Mon, 18 May 2020 23:52:05 -0400 Subject: [PATCH 22/34] Add composite application helper --- examples/vhost.py | 36 ++++++++++++++++++++++++++++ examples/virtualhost.py | 31 ------------------------ jetforce/app/composite.py | 50 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+), 31 deletions(-) create mode 100644 examples/vhost.py delete mode 100644 examples/virtualhost.py create mode 100644 jetforce/app/composite.py diff --git a/examples/vhost.py b/examples/vhost.py new file mode 100644 index 0000000..985a7bb --- /dev/null +++ b/examples/vhost.py @@ -0,0 +1,36 @@ +""" +A server that implements virtual hosting for multiple subdomains. + +This is a basic example of you how can run multiple apps from the same server +by creating a composite application. + +> jetforce-client gemini://apple.localhost --host localhost +> jetforce-client gemini://banana.localhost --host localhost +""" +from jetforce import GeminiServer, JetforceApplication, Response, Status +from jetforce.app.composite import CompositeApplication + +apple = JetforceApplication() + + +@apple.route() +def index(request): + return Response(Status.SUCCESS, "text/plain", "apple!") + + +banana = JetforceApplication() + + +@banana.route() +def index(request): + return Response(Status.SUCCESS, "text/plain", "banana!") + + +composite_app = CompositeApplication( + {"apple.localhost": apple, "banana.localhost": banana} +) + + +if __name__ == "__main__": + server = GeminiServer(composite_app) + server.run() diff --git a/examples/virtualhost.py b/examples/virtualhost.py deleted file mode 100644 index c74449f..0000000 --- a/examples/virtualhost.py +++ /dev/null @@ -1,31 +0,0 @@ -""" -This is an example of using virtual hosting to serve URLs for multiple -subdomains from a single jetforce server. -""" -import asyncio - -import jetforce -from jetforce import Response, Status - -app = jetforce.JetforceApplication() - - -@app.route(hostname="apple.localhost") -def serve_apple_domain(request): - return Response(Status.SUCCESS, "text/plain", f"apple\n{request.path}") - - -@app.route(hostname="banana.localhost") -def serve_banana_domain(request): - return Response(Status.SUCCESS, "text/plain", f"banana\n{request.path}") - - -if __name__ == "__main__": - args = jetforce.command_line_parser().parse_args() - ssl_context = jetforce.make_ssl_context( - args.hostname, args.certfile, args.keyfile, args.cafile, args.capath - ) - server = jetforce.GeminiServer( - host=args.host, port=args.port, ssl_context=ssl_context, app=app - ) - asyncio.run(server.run()) diff --git a/jetforce/app/composite.py b/jetforce/app/composite.py new file mode 100644 index 0000000..1f52c53 --- /dev/null +++ b/jetforce/app/composite.py @@ -0,0 +1,50 @@ +import typing + +from .base import Request, Status + + +class CompositeApplication: + """ + Route requests between multiple applications by looking at the URL hostname. + + The primary intention of this class is enable virtual hosting by serving + two or more applications behind a single jetforce server. + """ + + def __init__(self, application_map: typing.Dict[typing.Optional[str], typing.Any]): + """ + Initialize the application by providing a mapping of hostname -> app + key pairs. A hostname of `None` is a special key that can be used as + a default if none of the others match. + + Example: + app = CompositeApplication( + { + "cats.com": cats_app, + "dogs.com": dogs_app, + None: other_animals_app, + } + ) + """ + self.application_map = application_map + + def __call__( + self, environ: dict, send_status: typing.Callable + ) -> typing.Iterator[bytes]: + try: + request = Request(environ) + except Exception: + send_status(Status.BAD_REQUEST, "Unrecognized URL format") + return + + if request.hostname in self.application_map: + environ["HOSTNAME"] = request.hostname + app = self.application_map[request.hostname] + yield from app(environ, send_status) + + elif None in self.application_map: + app = self.application_map[None] + yield from app(environ, send_status) + + else: + send_status(Status.PROXY_REQUEST_REFUSED, "Invalid hostname") From b7c3e43ac4ebc8858d59d2815aa68ca30edca2af Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Mon, 18 May 2020 23:52:34 -0400 Subject: [PATCH 23/34] Update other examples --- examples/counter.py | 1 - examples/guestbook.py | 11 ++++++++--- examples/http_proxy.py | 35 ++++++++++++++++------------------- jetforce/__init__.py | 2 ++ 4 files changed, 26 insertions(+), 23 deletions(-) diff --git a/examples/counter.py b/examples/counter.py index ec5f7b6..fbec028 100644 --- a/examples/counter.py +++ b/examples/counter.py @@ -15,7 +15,6 @@ requests. Try requesting this endpoint over two connections simultaneously. > jetforce-client gemini://localhost > jetforce-client gemini://localhost """ - import time from jetforce import GeminiServer, JetforceApplication, Response, Status diff --git a/examples/guestbook.py b/examples/guestbook.py index 7e4d945..76b3516 100644 --- a/examples/guestbook.py +++ b/examples/guestbook.py @@ -2,10 +2,15 @@ A simple guestbook application that accepts and displays text messages. This is an example of how to return a 10 INPUT request to the client and -retrieve their response by parsing the URL query string. This example stores -the guestbook inside of a persistent sqlite database. -""" +retrieve their response by parsing the URL query string. +This example stores the guestbook inside of a persistent sqlite database. +Because each request will run inside of a separate thread, we must create a new +connection object inside of the request handler instead of re-using a global +database connection. This thread-safety can be disabled in sqlite3 by using the +check_same_thread=False argument, but then it's up to you to ensure that only +connection request is writing to the database at any given time. +""" import sqlite3 from datetime import datetime diff --git a/examples/http_proxy.py b/examples/http_proxy.py index 1708c2c..42a46a1 100644 --- a/examples/http_proxy.py +++ b/examples/http_proxy.py @@ -1,15 +1,22 @@ """ -This is an example of setting up a Gemini server to proxy requests to other -protocols. This application will accept HTTP URLs, download and render them -locally using the `w3m` tool, and render the output to the client as plain text. +A server that proxies HTTP websites over gemini. + +This example demonstrates how your application routes aren't just limited to +gemini URLs. The server will accept any HTTP URL, download the page and +render it using the external `w3m` tool, and then render the output to the +client as plain-text. + +Most gemini clients won't be able to make this request, because the hostname +in the URL doesn't match the hostname of the server. You can test this out +using jetforce-client like this: + +> jetforce-client https://mozz.us --host localhost """ -import asyncio import subprocess -import jetforce -from jetforce import Response, Status +from jetforce import GeminiServer, JetforceApplication, Response, Status -app = jetforce.JetforceApplication() +app = JetforceApplication() @app.route(scheme="https", strict_hostname=False) @@ -26,15 +33,5 @@ def proxy_request(request): if __name__ == "__main__": - args = jetforce.command_line_parser().parse_args() - ssl_context = jetforce.make_ssl_context( - args.hostname, args.certfile, args.keyfile, args.cafile, args.capath - ) - server = jetforce.GeminiServer( - host=args.host, - port=args.port, - ssl_context=ssl_context, - hostname=args.hostname, - app=app, - ) - asyncio.run(server.run()) + server = GeminiServer(app) + server.run() diff --git a/jetforce/__init__.py b/jetforce/__init__.py index 1d9df64..072636d 100644 --- a/jetforce/__init__.py +++ b/jetforce/__init__.py @@ -3,6 +3,8 @@ isort:skip_file """ from .__version__ import __version__ from .app.base import JetforceApplication, Request, Response, RoutePattern, Status +from .app.static import StaticDirectoryApplication +from .app.composite import CompositeApplication from .protocol import GeminiProtocol from .server import GeminiServer From 56aea1b6832063d2453e07fb35df8a71b6b69f78 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 00:25:22 -0400 Subject: [PATCH 24/34] Add stub for later SNI support --- jetforce/tls.py | 25 +++++++++++++++++++++++-- jetforce_client.py | 16 ++++++++++++---- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/jetforce/tls.py b/jetforce/tls.py index aea659d..ca801a4 100644 --- a/jetforce/tls.py +++ b/jetforce/tls.py @@ -94,7 +94,14 @@ class GeminiCertificateOptions(CertificateOptions): https://github.com/twisted/twisted/blob/trunk/src/twisted/internet/_sslverify.py """ - def verify_callback(self, conn, cert, errno, depth, preverify_ok): + def verify_callback( + self, + conn: OpenSSL.SSL.Connection, + cert: OpenSSL.crypto.X509, + errno: int, + depth: int, + preverify_ok: int, + ) -> bool: """ Callback used by OpenSSL for client certificate verification. @@ -106,7 +113,9 @@ class GeminiCertificateOptions(CertificateOptions): conn.verified = preverify_ok return True - def proto_select_callback(self, conn, protocols): + def proto_select_callback( + self, conn: OpenSSL.SSL.Connection, protocols: typing.List[bytes] + ) -> bytes: """ Callback used by OpenSSL for ALPN support. @@ -118,6 +127,16 @@ class GeminiCertificateOptions(CertificateOptions): else: return b"" + def sni_callback(self, conn: OpenSSL.SSL.Connection) -> None: + """ + Callback used by OpenSSL for SNI support. + + We can inspect the servername requested by the client using + conn.get_servername(), and attach an appropriate context using + conn.set_context(new_context). + """ + pass + def __init__( self, certfile: str, @@ -177,4 +196,6 @@ class GeminiCertificateOptions(CertificateOptions): ctx.set_alpn_select_callback(self.proto_select_callback) ctx.set_alpn_protos(self._acceptableProtocols) + ctx.set_tlsext_servername_callback(self.sni_callback) + return ctx diff --git a/jetforce_client.py b/jetforce_client.py index 1b08b56..d8b2282 100755 --- a/jetforce_client.py +++ b/jetforce_client.py @@ -15,7 +15,7 @@ context.check_hostname = False context.verify_mode = ssl.CERT_NONE -def fetch(url: str, host: str = None, port: str = None): +def fetch(url, host=None, port=None, use_sni=False): parsed_url = urllib.parse.urlparse(url) if not parsed_url.scheme: parsed_url = urllib.parse.urlparse(f"gemini://{url}") @@ -23,8 +23,10 @@ def fetch(url: str, host: str = None, port: str = None): host = host or parsed_url.hostname port = port or parsed_url.port or 1965 + server_hostname = host if use_sni else None + with socket.create_connection((host, port)) as sock: - with context.wrap_socket(sock) as ssock: + with context.wrap_socket(sock, server_hostname=server_hostname) as ssock: ssock.sendall((url + "\r\n").encode()) fp = ssock.makefile("rb", buffering=0) data = fp.read(1024) @@ -44,12 +46,18 @@ def run_client(): ) parser.add_argument("--certfile", help="Optional client certificate") parser.add_argument("--keyfile", help="Optional client key") - args = parser.parse_args() + parser.add_argument("--alpn-protocol", help="Indicate the protocol using ALPN") + parser.add_argument( + "--use-sni", action="store_true", help="Specify the server hostname via SNI" + ) + args = parser.parse_args() if args.certfile: context.load_cert_chain(args.certfile, args.keyfile) + if args.alpn_protocol: + context.set_alpn_protocols([args.alpn_protocol]) - fetch(args.url, args.host, args.port) + fetch(args.url, args.host, args.port, args.use_sni) if __name__ == "__main__": From 71ab30aea96059b4adb3bf17769078f7c9643b22 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 00:37:52 -0400 Subject: [PATCH 25/34] Add a new (better) CC0 licensed cover photo --- README.md | 2 +- logo.jpg | Bin 0 -> 57265 bytes resources/rocket.jpg | Bin 714126 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 logo.jpg delete mode 100644 resources/rocket.jpg diff --git a/README.md b/README.md index bece300..e2e9990 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ An experimental TCP server for the new, under development Gemini Protocol. Learn more about Gemini [here](https://gopher.commons.host/gopher://zaibatsu.circumlunar.space/1/~solderpunk/gemini). -![Rocket Launch](resources/rocket.jpg) +![Rocket Launch](logo.jpg) ## Features diff --git a/logo.jpg b/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ecb3ba51912d40668c64153c406a86ad3c92021 GIT binary patch literal 57265 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 literal 0 HcmV?d00001 diff --git a/resources/rocket.jpg b/resources/rocket.jpg deleted file mode 100644 index fb682ea49d09169b2ccbfd41ddcbb9e5ebdf1c9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714126 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

%i(&A=W7A9E~#0~BTKbGtKbYoP=FtA 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 WqddMcP3+%3s_7P1bT?2uS73`ZiXCv(DxMR zvrr<*ree(*gjp;9?deP2?>)*BI%Hjv62Anqm|CoLdQ0k|5Qw>+<>FI+}G zM=}S>SUMnZf_t7b@-ghAU%5?dshE0ZOA$@$0tp*jZmpaPLNJbrEr3aC_V!ZHUbVGK zF*4t;suE~QOmmaY-FRydlue?PmP3(AvVOYoNW|Yi*Z)&B@bp~ckslF00ld^Qs20%b zWPAVChTgfHJ*i@&D0M41tVevGr4l@zQhnuS8K5kqlZ_ovx-DHY z!ukO_kv8}?L8zeX^`krO|GrJK(SP5tQ~0d^`o0(4Jly(o6HHfC z3QQZ3;sY+C_ocZEo7s#GkE^GtHx%2Ho7@uGn72;@)gg`i%EC$783eh>Tv(utNwJ z%ba-JuY%7@?)yWy0r0;(r&IKYuzn560R{1w#nNB1JuD@zpvHg|0lrV8D<{>$VCPOi zWX?I()^IT-)^mS`u?3ib78W1K{@}V_uUkEh_ks^BajLC$&dErvh7SN6S!AC_0Nj;%Z-o8*+$

U+T>ei7V)7DoCes@<~37UEC7VM$y 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%0Axww{$_K?;Y1&4x4YAaMHfvww<~-8GD*|5bUH0E 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 z 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ℜ-|NBbhvuz6_D>nOjKGcN@mvSB-`oIDprK{y%I* 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

R^sFaS|d2 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

1TM$Rui!y@0g&bRRr+eIWz_A28Og^r(uW zj!TJABNh%@3_(DJNU1fcl?(|gcE8st>4N|QdMS!~$XWc`NsABL4M^r9Gr+p6Wpk24 zXUJSyc;CdXX_$r>3~InCMNB)t<&8GqX#M^N5s$*1NUf=?;DS{01NE`D%MtF%p@ODY zlVS=^7zR+e2EZv*DDjX%0Wx9wi~?8ER6Da$5X`6Yk#ZNy0a9F;AqtZh{{Wa{W{`P_ z+-`6*hF1G}6ESek$08L6zDUj(8_F^*2e+%pM14xYcYv%YWsnW8A_tL=pFBWNFeQhK zc$(%QTG7r3!UMX@@$j$1`%4=>4lTivQ^pQhFpCJrB#aH7t))p4OC!ku0T#9A>(7=5 zx~%v$4rHFbrhZsBIeh$qRCrZOs~2d(Tls9#E?&bLzG~O_6Hqgj3Sbdt071o3=OC(5IOHC|+y~BM6IpVAv9JyD2SG8doSjV?lX_jK) zbr+`!p+P8xg!qs2!4hCcyA|py1}(^_1lW=U%t$f5^MIapa~mr8Ki)G`%8ejGBW4A_ zwaXaX1q1~qv1{sjLZX&NE3IU(AMS?f(1RUJMgRhI=vD>hH3*R~PUho#VSZ=-0D*t_ zK>q;mKB4bhqkqyc{{VJB)_x}$v1LS+!xnSo2PYyY;;Rsaf|e9Zs47Mj0}*x`#KDf> zL=Cy}_v2T)L=vheuQ4%+Js>YExyY;Hc>!4+8H$vA*u)Jw3;{qJCJd@^a#x_J0Z8iK zvHpLbHbMz?YXSm~R)RlEbj6oQ0Cl2sRfxFAMgdhhsA2+;&ZEf8NWb>?ZN4qqFvV27t}a3ivHh{+3Jw$ZVUYlwSmI7V9)!BQvY3&j zlyWu}_+0IK&5jrVx1H^O@ry=@)Wq?HU|rUg>Nyy*7YddK48?qTu;(juBY*=)Xyi3t z;fDmV8g4oDpL}A$8ILslz!CABs|h};jZ76u7S6oJk7N+9lNL8uQDt*rV8P$T61&gl zk6yTapaIVN$-V95C*dY=2WWq_OWS)3_nGa{-KTF~_KfzFTa5+Ukn#rV)$aM~~csy#6 zRcLE8K~qWU6)fu>B6NTxHLL}<7C5^?%oS5zVDi{U;(k8 zUccJ`g7d*7Puf(*s;}*v41p!Ag|c!g2}J}30I(#cMx(g3zNepCbn39;k!>pB9$aFz zlC`Qi4azgJt=IH`KvJa8G1sPlF45~e@UUTH7_6io(n?Bll;o0+m?VP0l7Dz$Lh;8; zz9uSm)K*1|Xa;>`;a*IVM=7d{}WcApjX4Wb6a>N*N53KE!=69-~r z^!ROvi8V1r`nEigl0Rd#pnyoq?6R@;W*~*UMNqDOtw71jL6KrT#Ps?$#@1e&JTyQX z0VJ{KVahLYinP0iPRym3HNn=(MvWtqSylKVf(81s>__v~24<|WC_x~yy^n{I$0A9d zXK#+x8f+0|Lm81{D?NH`?t_Z999~KqfM*2B_Dn*-+;f|A#AN%h4VG3Tvg)J~P}w+9$RdTcWpC6# zYTCMntyG@rt|*NxOvAA-3Uva-jqTHwodc=)e;AI|ZrRnb$<<1$)pDZ~RzYlrHW`37 zjWZF|YPp(bnWk+wo#H(wrU+9$&^8>mC)4A9sIF@@tWe@ekqC0k>IO^fBv1j#RPaR+ ziu+li)l*V{rT|qes$tH#CO6y(ow;(ss+J&WXq%nw%=tz4#9opeR=ziOaEfISwpPl@ z%mF0=+Okz60Dj3}1&)f2Qm$-xS!t^HnU5e0Y=x*G`oXOfey?r_kKn zmImDR$l*sTsgb43ur0~NGUdXqM1aC40YcybAOVS!F_KCt;U&lyrVl%gTi*No=V(^5 zy!c^5HOU~IKuNS@k=d0hOVWKcGtxB`){u6sTqK zrDIG2{{Ui5lRj%PO;i)WxF+P4?U%nP~3#MXS%wM$tTPh@0 z#R9UZWmGIkBojc{Am33fe(9MFG^YTp(~v~Q(>wK!n3SQYun7F5%)pT`9{CDoX7`j(^365h5z>h?!CU1|m*!BR;iokR(@N$KiNDCaV*3g8(? zC2cSbjB^~1!xjW}NAU-6ZI!u8W_uJU5kYH{m+m$DZ0S{IK z9ZBC(pF(G^!^;erQ6>i#U=tby5}{kwRfT&7EnirvIb_EAt0}2jB1s@cq=D|Zj+Xah zL6ihOMsL*H^z!vP3=*LvC`^n9EEN#Ya4mu4VgX;Y#}^<_Bmvf@Sc2B6;xQ_A2bVb{ z^_%;r6)Q@nwG)1OK(RcHh{Vp6v{0&tS%@UmtRr*<{+yp*^pH_y8Bjc4jQ{{$EDFK( zZRe!l%a$?fiL?VFoW}lGnt`HH8z&A(4Uu0|#CZa+#}Ug9ph}WRV|`tu=9>lvBa}!# zxc6d>dQB))Al`I`f$0Q>a21QK^=lFhspoQEJC`cS~x%GWj>--q`M)9^KzF{vp2?{{SLxdvuy6*Esm| zY512(v+prXia^oody)LxHp??qtuWlRFc%tW0L!CZm0r%j3{v90Uykvd^h3Rwkh|ssMwe9Xdj`PY&TpmF<^idqKo_WqQ0BI|cSV!SdOfHAoNI9wpkAtHUeh z>8y&hatso$5~nX}l+uwM;5gYH+WAL*_zm~XB5%F7@xJ@IYx`{@J0@!Kc(NpLB)M7T#D9b@nROo+ ze68G_-MVcWj`-bojpw{{`YnUBX47f+ZPU7Y$8t@tLpH^@Yg15k8g|rcXVXKfi$kiF z2BsB_S>4^G>?dxYvYoTYal^y2+1$=+Bbm$4%H&>#S36%n#qvo@MGW6}Rp>Lb8j5JG zR#PER<9g>><?|$>!_vUNKWL*<8N^;N8`F%fzx&yPDaWtKHM6 zGIeV~D*-~boK5`cvF^Kv$bHSYcQ@&|HjyN|jmKj44n!Cl@63X?CG{`*wIVoTo?MV9D{uTJvUxo18zGpj|sYZnk zC-#Tj8btzuTe5waHC4+i!)nVfcLhP#);5pGU--l(uW9)08cC^+Q?NGx_~E-iphuG` z^6M7Is+$Jkq2BjxHnJu!B0_38BLJ#Lo-buhlE)$KV(z;7v+SdfaNgg2sPGOZj&qf= zS$fqws`T`?4s4fsO$xHWsZyjawv7PH0H)s!aa^WrhU6<{>LI4BP!d4|7BHk(kzhRb z=m|MQa0mUD{m&oIUwhKHEJfN0Ze-jM{{W`IMX|;K01lSNeM^Oobg;3`mKHhE!pAyT zSm#R%9O+?VvAh*lk!3>hxGdN(NflLjV8;-(&2m|Z1OrE|6OC0V#A?%%$osgu>DIv8}YmDCE7d?Xo>H!%a3mM9yO1F9&`BS@-5-bN(Y#X!l%R8$HzM-oF2 z!1a>VLslBUFx2+(S|&LY80&a?vd|5s5}Om<1q06UJjj^0rXr`+ENMd^sfvJ9eGWc} z{?~QL{@=$^9N1Qs)S6Z$ha>1BdD~%)DpZX|06>yt{@lMv{c%{=Zgd?+IN25l&_8(r zMQ`@w{f&widd#VvKo~LEw-e>cck9>Pjm)k}bls!@Bf@M6BKIFLwXsjv>SJYgOnjBf zg4p5|&?f9yq4sNwH}{oaFoh}^*fD?zCV6d+iz`8um2aj1B!CIjLANhc5O?V`9agE` z&B=)_#48ZWK;eL3a~M%Rlzr;!p1JXvcrr|-Ldb{N3*>pvNj{kA*DQrJ6q%+Ds|J}j z8v{Lg^NeF&^XX|Iv9Gynhm8#LHzx|(CmSRBwD>R#f)0Qw! zmsHdoGI)+&t0+MDwHYWD%GHx1%C^mjR%OesV=G#*?u!xK$cMhDTiWmkA{zX;jBMuU z(mH@*z=rXNm=Zx8u6{=reZNr@`t7?$&k8J)A}SURN`mJZioOg_v!fEYfrzjG>$&08 zsb;e@L(A%AEBz#)0Kg(|&!0n%LqC@(l&azYV{>_!X^Ebv%Kn(k&fJuuZQmS9(trx6 z%8e-tMX-7;;{b*ZJx{ze$|i+Tpm;>u7GPZe02|}awwWZsX(w}YbM>|XkwS+&VMusv z5s5U6v8XBygKDmyWQO|&?J>FXQ~v-^oBsem&MQ}785FLd+m3cNkB#sSsgJqKfIU4y zU^t=_pV~?E0FW1fbzMmVf6d8;P|iB09{l z`zMkR*$)aqWRa%g=g!ynNAXnaHt@vsGaneAckzh#AVrnlEPY6Fo-oEV zRr*HBfneC!r5uCA*dQQA1dyjLLpf3dV8mk`0QTe<&$9qhLBSR|9W)+H!g&opxI6Rt zVMn$8;RpL-@z}kmKX`8oq*-1aHk^mtB#DDekqof$SOfL3DW9lCIgG2BsiO*YE5C&) zj||(qVsyXbY7y-AZOk$kHw#$ulDN=kvrh zDluYU0%K|DI-F)c?fC1rbv>^yZ*95_9)aX&o;^T_86hw-yGoKs#z&LW5pt?YXD0;N zHO#A70)xs(i1Pr<{IG(7eavUugv#S;b8 z>0T2X$V9{|6ADVN8xE|Nr%4T3l?Sw@6wCmkz-~J4wGhL{*$(m$aI;* zD#n!?Sb6<>x5c7qO=4T!jj^=HA}9f!5Gtuh*}D~8L*762AD8io88nH5ykGocA5*9U zF9>{^{C(JDL#w>xMw7oQ$oKNZrpc?9Ri_h7 zj~)e-#@t96A{G3$YVtN0)S%$lVb*3~6*^@|ZCe>2YBu^CV%0RC5jPAV7=t5Y*ME@b zClYfzJB(ZOz*2D^xHkllf24szzvq2bW-x&2A#AavM?y)ASzV6Xoub}W!)29twz>nA zB%iWd?(#eW-^~u9YU-ZRCUzu=KBRbkB0TV6N#soR+mNySu^BAoih#^{BA5(F;;bGI zC;mtN%j+>~lHiRq1VotU%6_BWi=v1>mrmCb2=xC}sHkswJyEgOOF-}}zkhJ6l{C}{x?k@6w+jcUOx z2PL`o7s)mO0{SDF3w4f=z|P#@_4!+TPe&-#Kzpq-%*L)`oNoky0?~^8@jGd><_#=? zZL1ZJFp-?X8&l-qe>{c##Pn3E2VmM(0gX3<0&gaH^2Alu=!d4TLr#~GCR7f#G6=XI zzA=XV7N1uE(`n>sHHQ*mrBbd)&6xh`1N+jO$k8{}l4e|;GoqOuAhUi~-(k1U85L+! zf~rAwQ4<%aMZ|OQNa@QOUGg_)>h#;DvsbJ#Gfx?4%y6p#Bqf)`*$2e{V$q2BVSb^x zJtj)NkgEa+0o%np^xJ+>x4RhiQG-Ntyjzfy6YIZDn8H#_l7PWT@%Zo|vtrDWF;eFj zOoHVoR6+X{IW1bO#61-e6$z4e0CfKNgn>39Jx9>^AKL@8ttpO02QqwtoV~|j7s-8z ze`-YvP~-%RSvhS)nA>}SdwR(EVh|EWl1aY*0AJ(fgn3jM49@ZrTq>0@#sh#tI3Qgx zIVd-DNK?l|WHPkKS>7$@XrJ?feP9PtKvUw4k3hqoBDDtiwFS%NAyrIcD5J(5V<18l z5KA#`S1P`k)FqAlC*^I&IUK)yL91IAnJvHRw)~?5K+)T>xQHq`1Ry0kk?meEX~KY{ zWR1uypk|Sf6p(5=5T&$`qR}&9%cTDR7-xYh>pY6Z@39}_n8Ep=fPz7{=0uIwNShuA zWo%_u4R|juiR8_>$1xbwjBG-)AL zr3y-T%P^ZHS2?tfRdZDgU6+YkiWX448&qSLGe{|N6e}SX|*WWl>e;?|pCW>jGso=59q`2`CaFi=#I5ntJSo<$8K5@X3qj*1Mh7f?#E z*o6yb7WRypk1JqYh4B;OVPVLUBnxtq0F&>+gvu3NX7G?%lplOu3uO6NA?!1d-ma@m z6sWchOeNaOHc}+Wv4iV7dG*9a>UXX*g{DzpiSZtDGDhBBN0uEj88VDpXAmrrICUS932eUbR$X=`Xg&lfzc)_Ni%!V>`-o_#cG79Q}W1=mwFnQn5;B8FUssx#cX#w!aT81Q4en!a_gH?W# zSMQLLlyuahl_gkCq3vo0BGdVNtbI1a8on^V2;K=3(%^FUMhVljO{tGDBlC+AM0lgf zRI0JC3#@^-@{+3=kA@cEhNwOxxYQ&j}dNX;d~U#vJo6?Mo6R(G5~># zGY444PSjd8$#Rb%7b+GNKvEpZw38M#Croma=ZVE3DGIuZmIe$6I(IvH?R~9)-^)_R zG8L6*vla3%cEy5v5UN6@-b()KiM0#}R3pB95`}{?1;7%zVie36=QrpuRT2sfO2nJ3 z`9Z&|#`qp*F-pp9LXhCFM=~>m?H&51F*pecQp|H=Sk;PDn^1BJT0oiP0GXD)_x&w^ zT7*o~S(7{RFgf(UspWuwI=}G0{#E|~+;uPA+y4L;{{WgF`!O$jL;nB^tnK zqR*)$D&nD8@)+5TaX!RXCA=gXX#&RE+z=z)KS8lXT4pUXKR$T2X=I267`|;8IhM&( zXAus;g*Y+fqHLXIS6p4xWvg&^*8&Q64_>&tOM+{Vgy0ei2<}q2yA;745+Jy{y9Njl z+yc)__vkM@y8pu+=iIaRTyy;a{6Y)|Ct?Wp!IO}n9GX(5zJ5D$7f~DR;)T)cJ|%9N z&*6&nR$lJb9fy2D)k`$eE_{W`lH(*K%#-qukB@ovbBX(uJ{m7>Ew~AWZ{hnAo~%7C z2?w$2PvrB6sTP<38Y%Y;bFFA;5Ct?YQvC75{dI3KUN*I56n3CNQkVKsQvc!xS0UP$ z)b>$$QZ*NbQUM&Dsv{jK=|(-FGb+^RRX0&9^8)I2z>29sw_hXx`1syqymw{PtD)y-0A>Wk& zP|Tc&nF;+i)DX7{DrZ5+dfmRl*nfcPrF4nEDhHnGf^m=sC~tSykJewKy~e077Dx#F z)s4`B6`q&hz6_!wD1d$W(w4y&MgFF#(jTUlQCzbCq+Dq0FC<^B7)F;s-SA;6Wd2qV zV$!V$Uy7R?PCg>)S0jk~86A5V3mXIS+Fb?s4I?ULlDEV1VLmNEIt$|RF&gPkZ_y#Q zF|+lhxnfhn(A^)1;-x}s=;EmxqC}x+Mu6jzRFa6fr%($&YH-+2*MB6V2SyS8i_hNU z>&auO#ZT&|W9$7ygk4Ki{s&KfrT>dPJKvumUaK0WeOT+5&&lUnc{-1AJm1K;UaA81 zzcdF#SujU|z0qAElc$!3-uW3|2GsG`fm0jh@>A^xcW-l!Zf0y*&yCp|q6h{=klB5VnvoxbV;-XnRiNe_b0EmxB3Acyrx_)qN|Iv@w z-&GMfT-t&y6mzT#-g*+}<_b>y9aBE3k5l#ll3WTr2c_1V4_V9P8EwfGLAPArYkJ(B zX*fedJ`eN?4w((O-a1A*?YDCoXN=|BkycCR$1ne8(M@bt1~rc>&AWKrkTn%3eYr@ znQ9LPC5%sE+5vSa7nftx8RBsCAzBasF}Wwumf6HM$4(k z{+ldh9STnbCJT-b@u6>9>74{w61N5zd~6B~fM$O7ZRqweTF;8w-pi;4t<8r)lLp;V zri%@{Uam4TJP1h!z*l*h%HE*lX~YFW7WH<}wwlR12`}d533Azd!U)k?W;B5HUQSQ^ zsd2}gBSvYoqc8YW*WndI-OJ;Bd$mP~flbON_ec6=_-PG~GW=dNsZ`XvtuE8pIzd=Y zgrihR=for&3vCBpLI3;kTK}fr4_sIg%|@TJZM#seMbd_HEp`?o;J%ZzLhV^KnYsB_ z8tEZ;^9s4%epR@{XUA}1h`otkMjM(4XlwW2Fq-aJdN-od&VpE8o>i<>Mf(1eKyk44 z2%-fR`3E12RQ3WceSxW{0zfyW;5W)ajD>SmI!W;|Mm3dRH_?L-mdSB+P{m>D2V0uR zp`sdvGMffnMQ^A$TW`0TnL^)x0PK2BjPUF^`{|qU44wM!GEO}3EclN z;_n;2CUkJp5Jx$YueDBzd|wn~Z}_(y<_JkoX!9>01%DCwSV2&VUq`wz2m#=bQIB%v zY)wx7of$TEm@)4nt5+2cn^i_Y*(6{_Jntm=={(Q&@n%kuSH7nXmz?%P4V49+Lo3do z0(aDv;oW}>yeaREzqv@Vc<54Y1O^^%8m$Z;{WfG@Pha&&aZI-H+qCdCcUGvX80iM+ zTWc^_j2D;)B2dUs;h_q~XqWxaDbOExl7IUfq!9@InURU2rnJ6Sq_P^N<&B5ZNV+K@ ze1BmLW$roNH;dzFV7>c7DF!$}&_>o*5I{qHm4(A+L0KUM-u9L3RYsV^NleogWCzWc zg>rRzxpE=Ox_ppCAS&$apvf&dRc!xB;^WYh6;qZJL%k$qlivwQ+exP~1dT;rX8!)^ zsM_{pv;%{=w>7B8zwRoSurBVhX`Xey7@piL4I+nDzY)fKkkx%_HfcCFLZOXagRJmVDwfI4 zy-*!!$kh4Zl2I%B&2TjMBeIVE7+#@ch!I=l%h&$^5vv|wq%5WE*Ck8!QKP-wn#|a_ z1;v`*ra$AC0YxaE>zH|%q*ML_WE1CR%dT{f{B8ZxbbWGHn=IIU@eq6Q_4j5=n;qqk z&gM?<9VKthlve);V~(@ZwI<4?PanM_<#gnQIt>dnb}8gA8Z~K2Q@+yXZm+0y3ze*U z95rTMblqsLUz>@>H!UfvM|^$g73!w- z^lp;k`PfoJGt<@TBHQFjnRdTUJyxBDGdg!7v|bwXDf~*l{xo^4g8|e}I`= zilnkR4(`GE^2CXQYmw;Yh8~^W%pcSWQN?NtmCEj?W`?sRu(2fdN=_x#DpLKMZNA*9 zO6>=8`=$E%hd8qf%+kCGyDI@cUoPs@YRy=?&L?(-ZqQWbs2;pap_!5X$5)c1r3!1Z z0N=LrEY2zQPKWzkg}DxgR{VC^PRH?vlbfeuZ{YX$a@?i50$*gs?HtN&tqB*)XD%&& zT{>OBs+!$H3Y=8cDdlQ_1||(?JE}Ed#W2a#VT8w>n5uv_jmG& zX2xDH6YT%iE?0|vF1u0sYauJRT7bNQ3zT0i;hvdZtrMrBMqZdxz}H{45AX)~Un)jYB&1cUQJV-l z;`owBqRcRCjX4Z;Z0-EDn!ii?Rf-&66gafMLr?g*>OVl*U3?9n&frS|c66O7shaZL zR-M`KuEdfZ>#0-om+r3dhN|?E$nMlX&loVgkk;uP>APqcAeii5*;{<^`&ESF!=Pi>xd|(XM4MwbiErU$wSQ+H)-1RX$u=eb2zJ zDM7!uZS(0?onI|!a@A_Fb{}djU1vIp7)Ll=~wBM+yG?+`S7jU9{8Iw z_cG-<=}v^obONCzablZty_p#UfVF|lrl_Wvn2|36z6wwJy_dOr8@Qx)90 zW~t>o+-3w6b5Fx1(p3t(Jl9+Yuzne9Kg8aALU?|@*)xV}%JDhs!fPvI_9XjL>c z)*Np2L2+21fW#uma~eRPxI{aFf%>9ogsg`n4+YVs))%eqRXQaED70A;kh}<9lE|CTFP})o4|(wxQKRbH2UHXdP%GEsd@rJMOYaU-9m6{&0fq-WkaStQ$Xuy0O|a^p($!c ztg0R~u7K9Mt(wPGUZd>K4N5;7M*y6-KhQw&$d?eq>*1&`+c2!{n&xVJ=F#WJHOi(d zd!<}4?glP;A^Ppz_Nt^(t{&VuBrE_M$>Z%45)Nhvb};P46SG^`W^OkVDOn)i0?NVc z`m;=c6`Cw^#o12Hyac;{mrz)#ARE$$X)lwTo;5sE3H|^C@FLD*GS|RU(&jkyn8Qq* zv7*?)K$JtFL4yEd`%iGes%n4|7D5low4KP=q|yLGyT77czTNz>mwGd3X;7;d?Ea9O zGn33}3yb5Z0(z(5)kcAgsEsH7Zc=6pXBnHYE0nIN6u|}gH>Da$KcU5cA@mt=5?2&c zXqM^{5eSaJIt1`l3G|YP2DNf%uZU__o^zvYld21ai_D@iCd!$=rxbn1LXtV-QVcn| zvpNa4^&o(~*s#Z2428^L&KC0rCar=K@CVhBOcn+^(R9X5aDqo2brvaD9 z$Z&xR4|;iH5np0C4;obv8QyAn)0~aG@XAjo=$4-KNp2cR=l52i z))aRnbV|Pf9uhhBFpR#`In1*D1L9;%HeMq0`2?pQqB-ppdI-jqO@x1j-N7j?Z}Uo` z6J7g?zjBBO8jC1>4>&<;3I+ti%(p7Z>{u?r!*~EC2qJyg3Q}}9Y{9)m`L_%6=pIm; z7{Z4LC{|iuJ^T5G89%x6Qz2;@+h;~2v>x03M$(~s%1$;1*6mwI+wy+J`~G*>^XV@S zjmpf$)nbDG0T%Y?Y>nNLk^qC~N70E2tL0nFr>A2$oIXicH-kI>w7h24C=}P4_>PU? zPM!oDuAZWGRasHVN+XVRT!qD)a*QA??&4~L>Z(FV>4vm_Yonq2Tz(q#M2P~yM>LIN zH#dXIFmkyfPpaNK;%sVYNKxH?7o z5AgV15fZrgi$Yd;db;y?UE{j#g(uTmFKL6=-D_0moz%%tp5{GbO0SgRJl55$+IX_P zt4}5Xp$~oC&(uwv=bV%XiAKKON^`luhj!~ZFDUv17BJIsj9Eg?IWA|Eu_{bsl$YhS zK#vvzr0oA!6T}dpI3)#QhmpwFu25|;{hX%l_z$qODCl&MbFGbss1k$SZgs{6LIfqd zmBertt)p)SymB5dkR^{K1En=9Op!jx+c;kvAO}rVi|A=>H&h_%F9T2`DsOx3a)L`u zhdy$gtmi2NnZ706DJ;e)FfE}FMYgYJ!3|$eAN1=0g^Lk^klG#nG9w;TS!~%pXQj40 zS=W@6$Y7KhzxFnIwrQKEFOSF`tYKv`$Y>4s04VmKh#{sKMr+@d;h)QArI# z@gP=XB!D+N7alN*(igiP7e1?aph`BuLKg0v8u6OwUO#YYwuN$9?a{~vk9^DG%_}pg z@c_cb&=A~O#r2*mD<~Ah(2@G_5$wnIhGTWTT{>?`j0$uv5lUx12X$49*bW~-x6}He z*2Ieg6wr2ha{EsK;12->tNnv>vC%6EOBGznu_|PAN+3K4Vkt;mBqh5M6Ud- zupwV&w~{s>QKi*K0wD|}YvfW*c|{v_ozmOHpvBze)@Pb>Z<=L~AXTI>%`y91>vit! zR?=m=Z+OjY&xwcI%&I}uGCBpU0sANxlLgRHBUll8O>}_DH!WhC_r@31+6YSZHwU8% z%j4Cl5j>?~-*rcKeLbk!tv}EXcjs|Px!{9*j4U<>^Xl<2{{Z&Li-ovr2`>@&eYhiw07Q*{upnk>d*4}J%Auv* z=l>z%5y{rHy=5A~ZPlj`M^mKKXXm5uB1GYa)B{k|vg)yv4ng@rCBjMBZO;x&DMs3U zo8Hh9(tIe6V2s;f+S5P!h^e+ZPj#76Ig+mtyup}^n8~4B z(y;6VPCx-x^o*AL*G-tTp&>MkVzS=NZrZde>1)yw;3U{)jE8_!ZOsypP3yH@Kd0oCTrfK&qIR8Z#8Broaz1TnDU^J2`1FDNPRCqfQn0%Hm_x@+=vizw{jOBN|)&Xf;S zjO1?nx=i7g)E7a==X*(odJ+LnpQ8(GxM^g@P)MO;#mK2ezkrXUaqLyoF4jyzEdUaP zUT|+(6#lF)&1b3(%e1szy49sTe1LOKqgho$1^aogh%~;Fg*&kj)YFk7^<2+K4G0?I zeTr`*4-srQ$sM5@UmJEo#OgaaED0cn5l1Gyw~DhdmBcb%ft2fG(^)}~C1O!K1WLj$ z&=b{uvmcCFS?8_)-4-X10Zu6qs2A;R#fxX6erPOO87 zWI#z$81-#kdnSmfzu}FkDP^!7TYS<;zDz5tuo7c5 z6kaM04OwP8pmG0K{u>D3pfZ<3KVwr1iYA#N)%I)tgKVFg5$477*$pq#wMm%AToD&v zNl!v$l%1}fy}q)wmMU^GpOZY|vZm%GS>h~456v`Kz8&CwVEwMXSqNvq!aN1&CRrBb z%K)I#>k5(iJx(6%#r9jT9z#FN(ey53m`x@G@jAkgRf!mpjj0<@qeRo2jR=@rTEl0B zoIt>U02dzTI%$U7$D1E0$p)D#W$kDLkoa+}LCC8kVR-Pw93m+9(QHKXn|JOss<*g1;Sbih_AOD-u_LY|@^o8Ly z^xvLEe36n*vOsE+b7C7^7=U$5rsZG5ssfHeucNm(ZhCSXRO^rmmQX5p77%nJ1iKWuWXNWYDW*?0WObw9vnqU zxex8yFWtU6uQJ6UBw3)QzV^VSzgTqO8FPN;304(G%F)!$0QUzA<^BgqSi>ZJkM2e& zV)8C=0z@8e_z66@m5zl2Dj*^rd}nP|>!r$7Ar?1cjpt3@L!H3u%%Se+iHJuWVxbIl z{plVu@2npWq0#i9O715Qq_gigiz|}LAbi?Z%5B~MEP}LSAiHnz2Qy4JS?;xTkJY(X z898G=AeAlBg3byvOuWkMibrFsh05itY2Jq)8QF7lGk9M&UN)p+3CS&8$+G&xVp3SggBegUf=e{ioWGF4 zn0kMk5QVwnu^GjE2Vo8iu+3dUiu_PA{f54RbC z`$vR1!WrbhX^9}Z_^-SSJ5y5xJRtYExzoFsNn+QMGH(7fQ~%iE3)YHxt8u=!jgf}o z;uSbtch@rL@$1<{9Y7h8e5}r^W{3Xz{F6A(vbt1~O|-Ax8`C6x!}9U2j;zf9mGDfV z{XMEuIN~QShOa+n)=KY=iqm8Ya5|Kt)>FjWFJdz*5;@t@_4QiOp!;11y@2NAPk?Y8 zX(=;{#qUa1lwNE-a?ec9E|!*4TXBARXBC@XS3fW2@F==9E0I@F0TM~QlC9Ciw}^kj z8H163bPV}b!HLT}NRtrz;6#z9pX?n5;{=dx=GvJ0m0Jfto39JbS5-3Pv(?!bXKL`$ z29O}F{s+K%(z|g9kq?E+mSiLz+V?oGVCDFXi z)|v((Wfa^kMIx(K+}0<&ZkoXvic0vxNLO2F8=tW&my&x1WnNRTM$}M{){@bM;7+{c zyh(CJFP`SSABy{MopX`KIkF*AFeQ3SXW>{uBz8zhNpx^VGHMu^37|WedBYjuIj7=_ zcZqNA7D`#FkHH$A%<3{@kA+M{moznRWp+WHAP*W+DKa^Ga7+bU?%E%&HcESl5L(vX9~xDsg2phLnQO495sq0ViRBY0}yLZ8*m z59Y<*!NYlLxpCq1K8hyq(5pc3-<89pc|%jYS;Ci?8S@MmNaf#xo&A#bUl8uTm>UnPH{236RAicQeK$H+o4dJZh3a(U|1BY7jyG+!N z3p)~W>qQe~yTeuLg+$fJSvn%~NzH6t`~FF}yzi_`|GWu~30$0@awIrmaJYFwC+D44 zrjlQkkR73;O;3}z#=$}KI1mG2V$#whngNu64*{%%tYb4B5{;j|IntVrTQ(#^ zm1z>>OC!|Fp-?)dy=XzX7B+ffs7P`TmU8ve3H?|})i4SNF{D1DE?-u%jiDxk)ap=r zJw*($X?5-(n$+*lNc)*z1qnBJCJG#dc)f3Qh4qaCid?{3IxI}&d&(R=W45SMN*~=9 zB(x2EYmlBqoucewt1)ZVx70iKCJeH>bfo2%%vcz?VOPgdgO^4r&2I9si^qgiDR(^# z`^5$`*HY~olU}T5Y9YaNI9x#_`5$yg?P)U8YBU`6OyR6?Q}k~B!`U=OF)13Bal0a7 zv7f+KZ9;Sm&IsX-I2>gQ=_^s&o|A_S6LJ_fm^`B2jmDSPtm#E@0xml>I`ldOC#y{@ zAVLR!U%1sbZ$4(75HK*v`}$NWv)zr#vVZ}&1gu3ZZBX}vFE?w(pY0(;ge{rNuFh)b zelE@)A{+zZC0w5PCBcM%iM^%rDN>rvg^|ixxmpIPShNWkh6=t-y6#YI| zRqJqUw48v8Z<$ANf|MW5G?J?ZY4Vg zX!{4jxc4FKg?{H~Y@>o?4E;){RRdPLQuRGV99-OGdYMg`j~7!YL%i6Eg6v5kIxJ#1 zLQi7zO+kVMatQK9hq!VsRN!ofsOLwfsInOKes;EU)PUC*q$P1sRlse^r?qn{YMBXH zpW##7lW_}UFZ*k)!X-xota>bsspB^*Z<=AaEr#Crz9E-bG|DN~!S}i)b@64J-a@DU z{=IkH=iW28;_q^HK;bG?B3Ndc0=Fpq1ylvz@>qH6$p2FS#DBgK>Y)!sj@pMHY)>A3 z4eoWqN31vCre*tG6caB4D9S*28v*~IxE+g6&hp6D<^zT4=`ZL<(m7Uq2Bi4+1oOvW z(HhNqTygay$nsEKtDN=Wqb z6>^z!TyPM==HNZP@6LCcKRt+bycP9ISN(P^Ula14sn&=~8SubQE!O_J z9`7O)F~1O@+S+_@aq@+qyLXFbnw=pdZxB?dlrpq`Pf*I#`5fo1as4PP*LgQo93}9K za@p-|u+#M)AjL&=_%=K3VqK#6b;_IY6eaZ+{#sLach&sw8$YkOy)}=HZW~)t&B`Rx z(RUU*9u1i$H~g6$o=bG8Bb=h^(j;NxWxB%e8*Y-s_nG)ZKm_(c<;*eK2{ zx#E0o>9{m*L&y#**L=fJ0!ua0ai?e)Q$;){LbT%PQyXE4jBed_ELs%{z%gxuZb!Sv zTAyiG%BZu+`}~hHj)G4cLm#$iT`lQnPXttpmL@9K1u1PF3a7uOsaJ$q#ZHN9zCnVw z;|5`H){;*=KC{cRvl!E7dK|7JCs|o4^5!^y|C;xaz?@Mf_*Kvu=0JRG z;5VkrmYQV_(Vr&PNaDKc-w!0Y=yWBV_`dkjX5L9KD^rl7a!$6ja$Z#+&ymTY>34zD z3*DbUlt$H?cQkCNRST8c$Ke&XYztPmP6!kFnJX=`rOSCK0Yw z&N#9$`);r6H%;64NEsY5r-B&nXqPAtq67O2#Y zE=v2W3o*`Mu_D6OP=Fy9Sg*PL-IS2wiGufRwI9Fy2Ow9krOVm%xH?BM7hJ&#v4fpt`6d}k3|+@OICQU=_;prZ3YEPD z>J!|AB*AAWI-T_yB_`$qG{9{>{yNSmxKG?RKEq&U-T5Ahgd%nLpEr1tf?x<1w6_GHR0sN zuQ&s_4{-ZtlV>raE?C>g{bE-H#iGRSOM_@1s^+t`6HoJ}4lxb=Ko2r$p=a6aG}_Eb ztD=LVA4p0oKXTwyeM10M>+)0BNfZF-u}sP4+!rEe#tSNj_xqvh6<`9Dmn(?wsX~RJ zS-d~5y77ce5poPE3b=b1IHa zQ8_J{wwltrh5F|red+4`3Wo17EH~K5j-oFq@Vsx4fL_8NiLQFY6T6VE5u^|5-T%6m z!xm1|c$=K}jbDi!g1ksvN`StTi#<}((3bYs9b>2WoEr^p73(J%%gc(K{bz)>1NOEI z+WNYH&236t*0$3~-0PNE@sz_&d>X8S+zl1zBfb-wMS&RDRh}5oYAW)99;GTvO_!iZ zArUS>Ju%M9^sKQsXyC@UsW+Y4lj5C1F%%^qJJo=M>kw5pNcC1apWki2;QaT;+cIzI z2wAC4S(IQH)9XsyF78l=xG&du&eTdyWbxXvZmcbt7P3B zI{uoCI>XsmuD|psn*(8g?E3daRVJJ!3*T!Uwrv;w#?uRocV-=W)V?43&=P+h16G=) zV8Z>Trj)%FBvF4@OOdUd#Dul}{FkFJ(!D}fgfX=SRa?z{^bhVT53O9d@WOB%{Ru{E z%o=}Sf8<&jYr3{$m)e*3dS_hv{dQObyl_DgJAalipmHw@3&9El>X)nlwK{dY<+uDD z6z@}_E^}7$8_QD`Cj@rT` zpi)|H@8-~0Ek&i#jUstuGh1`%|6`n55J zzPp{Qgt&&62tJ~#A$9Vl9gwS6=*7Ky4S(b?FN023KOrmCACc#XT5;#RnU-UrI4nOG z0{UOra29wKf>xnQwc^FY-E;MCHUl}GgYN9GL*>824?7^Ah!8v5uk_QR8l(&)9Pa(s zssZMA;%`yzs`jT-Uh{6p45DTCO-&Zsv!f+aEn+=bX4g%|)xoockBrEmqWJ4}*)XZs zPoE_u7{hrzIN9TB!4VBB*0ul^likZFJxB7`n-tlocZy$0Pjh95WE9yw#mx}qu+BnH zR*yNAH2M}I&<1_ox_G-p?na$X_+~XbPY)vfyCr9mn$TM%gUEZePjan#7c%OfpXsNb zu0B5h2XM_c`u){>l1@OOz_3r4{_y$b>+Mw({dwc_+dYU+qbQ;f#eZeOTb@YRBH=Gc~rAOyqk-Eqt)M1lqggi~~4l+~nHX z>5W&c)5%{R|d_v+Dc{^WIlKsFb{Q_da#E=6ugUYEjMZe1|K&%~a}gz^B>q zfd;+^9K~8R^*lWs_WZ7P+O2qNou|R_jf8NK4};V6eH+5Dgq*wkJq zNBP#jdI++J_W{$diW?YGy-(G(nG|E#aD!K`{8}|-bq3`qY+=&GY1DGrs~niyu& zpY`kcy63g;>OX*5(QdYqdr7Zos{|+tkNMy3i7xjUQYik;GEK`N8uNi=q|1j^y+7|U ziHOO579git%aIJ@*6RlZeJ!ZWscI}q5&af#y~(gM?7l@Iz}Ga73~~|ireoDc|sNPuQ1 zwqa;740?vplaWCZ(@WF(Qa^a#A>N@Nm;RcB?+c3|a-$$9n-!3h->#|@f^b5(C6IA= zWQhG@uz;83QR|^Ey5l#4oFDKUHL^5uma-GH)SjOP?*@O|=LeiLeNrVj6u$m!hCPN2ZfFubM6=!fOIqil$*1Tn;;fUn%r5NDWes^or>{Yn5nw^j2q zR*IVv8A8u1$TZuq)xubgqG6OAN1R0+ze+ToZ{};U+`EFu!ubjyC_I}r*%UUzBz8bO zSk?58-qDmgphodq+ymcjizuq>z;iIw;_sZhNF0At?$e)79A$14!`cKdsl({3ASCnH za5@&-4-d;#u5v{(4^cv*WkNr1)?D-c7ziw$*;#^ln9xbzHshwBxOge3XLJ^<6B7%& zlHcjXP8#AN*{UB5PdL>?*5jiA*c8$YPHb{pQ$SZ_c9#0$?l8gk>yfie(=EwD^*qez zI>d~&aqT!nNqTG*+opo^ zDzM`_MJihX=kcKO_egpEYZ#)Dzv#K+#*jU&Xw;JMXQ!hru=f{tqDEK3!b~C~X-E^v z{#YotT(=#+i-JYghmdOLZf8VFaGu}(>XQ~?(?aABFzV>!u#=54aFzzdk~JqErs~rL zVqv5rRpa*08yL};KLxbrb13w$4;G)()~eB!@DzA^?x)&(w29N34fC!f>vEFjJ&4ke z-rA$g&rj7u%i7etHJ3*nHw*jsiM_-)F!gHi(dTL)i$89W zjXW{y6A(-+lFP#w2@0o2xDZ{-xw_w0qyFak=)1%5N3UwOHSvh)b5$3l{sk`gw*0VU zV$vb5FM|wJ&O15p+6L$}(%&V@ZT{;TWME-as-vfi3SLBg=yz8mk>)s@@HIj>(T9>* z6(r7t7?ahAAvk=VdnGn;2=0R=@qTeNU0a$~Kz9t&v9005g}q7!(S4g@bz?{c^F+^> zQf2C;S)oa_f6&Btlc^dey+>pLrb9sZ0Nj(G=DC;Hkcm=gQrTYSC3WqA_)jxMjahpZ zy1Bs|tfU-OkB1`6B#QcjwBrpU5QY-nduKyGherN#g#z2 z=I+73PxK>CVYZh|JPjrT+`VmPpjZ?`PnY(enQtB7CUk|B;= z0s#5=Lo~5J45Ocx>y9^U7^u2bXcn|~ky!|Ip>Jmlx^0tAnHW=teVNLM0U)looxvYB zsB;dR$6A%ZH;SS5dQ!?Ul2_lLA5%ff0WT2<8K}GKUm1Vl5zs^c6!dmw9Fe}h)=B!P z?4MAz{8W8>BingL$&Iz6b}-sLdayO2W83N%BYgv>>7eW1BGFzN4*jS>;Q$G|79HLF zilr_0WvUC#OwthHM*3Ej!s7w>2A?j6OdN)K;%4Nav<9#Uus#@ZydZ%^PJZV2|*l$FnRs2fZiw$9}E=wiKFCi zNHbRR++`p_Njd*m&Es!l$ePOaFR$XoNbC(H2oPyIGx^=os(FKinh>YrpWCfS9&+O; zb2pT)M|XYTM)hE@GYCg!Ic4>(+v}_%5dvh@v zrSWf!G6dRTwM@rfBo|{*X+nNH9ek`aiIA2A4N`2Y!zJwVrOaGyd(de!@})GFh`PW2 zzHG!(VSOoh#LpVTO3AOA|EvuO0vn&Q^SyHN(qN0mrBNmKJZ8`y`A5dbmn;)5x=b=} z;m<7*1%CK@42F(QqP@AUj!^F=u19}_O42ET0+RtJ37aQeMLIc-vq}}{YyboR!Xa{* z@XcUdK`qcuW9vKX+K)ezTb0bI{Ppzvg}?QcWZKq*fXg+Fl&_{#&V%l3ETXo}MqEV& za%O-0R*yD>`5x`wo0KOS1Ms`&2O^tj(|FU)s&%d!PVgP`{IX7Zn~8jl!@`9PXKRHm&b%lvgk!u z2L0skxg^A?>>S!iRw%qML!k4rz*_*$%VL`BR+dLyM{#52gEW#6nMGr{JGbROt3DVo zmQ1>`WZ>;KGRSQmoV@e?^}f8*nUbd3d*)>FyE>oKE%#&kH<5YWII-Pmx_Chi43aDb zZ*sg}v?@EfxjW77#(wQp8VetF%O=I<3c}m5vRte`idpOQUlxsvx{Fw8I-hl7hIzu%+Y~t_f5V^p#+~r)h$CZnIWWOD zp<$n@^!#CCy5}~ITG>WWY4EM&PY#8tJj>J%{eWTX5-AIJb0cYRWO&!O`%OF{iG8B2;I`80ph|k|PTcVv0}5yzRn# zb>`UflXy~3f!MSw&<^A->SE;uxOm&!FMH1YLi!+pcf1Fwg!uabket%c3l%S3*G^97 z%UYz%m4bIeW-Kf)*WexlJTSE}{7vc)bQN2ZzRDRb@4(S)Bl97frPB*F{%i$Yx@sf3e&}GdQ`Ua+{YL%WZs--GW>{dG@mlf-|3!k%*H z`4dthJBVH-&X1y>UnocwlfVAKQDEu-e2ZA}P5E=Yu6zo5%{hE%S6%=U63Dsy{Qe(6 zc8ucjifI64geyfa+A{ldx)xI$5aXn6kG?`pj|VL98LtKgEigAzbl}tLi{5s$V%8f5 zW&DjV0=v!HfBhM9q$)4WHd+VF4Q?7b5iif2~D_7zID>|U59gN01UJ>A{jLzZcNANBB7Q&Obkbt(S@OidA^%-f3% zfZd4DPLc#FED6Q)24s0+Rg(+`<*~ja7jDP5scle1nRiT}j4|aZIdM?LfgOyGER+e~ z6bpKuwz?|ci%@cvED(eV_a!BGrJCc!iLsn!{5um5vUtX&y|ENnhXDjG^Wo;E5~_)% z>P`T$fy;F#@uR$JLZ5?6zYF~)p-fYdwFAg3&wl=9^&!_DxwvKEvYn;&#WoS4l#5-( z8KEF~B7wBThE$gT7)qcN<0St0<}IjkFOwD@H(lDeY(I@>puZ~TfSEwxD^lI@fi8Kv8C%a)z#vKO4o>RpTl)(HDoZGvMtZANRh%cdI4z2XpD@&P`|h$Cd%D;N zP^cHCzi}{eQS{diy|PA;@NabZyQ8sax_h7yY4}*1o(0DiYQ>yTg|2p%!^U2+xCL7y zLCuc>IjAUE3l|2XENh}iS1*G8LSiKnJ`(RfQt#~}_}?e5>6M>Uv`lAfA5U%H5A9R` z{2c$@t5X}kD89BiY`4I0nxk4ZC}B2%6Q5e@B1Ie^WOGu4ovw$7iXBx9o%*;bnK*P(Mk+`$E_heCo!xz@R<>_CrTW`CYjCjh3J3WrQ>v4y z-j$P0{#_i?@t!!yFxY8oIL#SPQa{ldQ&&-FmMx~-klGmhG^v=Mwmf`xz|8(9(Q$CRXlu?&m9Den^3{faF&4p>O*$!&0Uwmbd^ z_jJ;q<4-3aZ#u-d&-5#y@Kg_F6RrE~*k(%IU@%oOr&+TGnjH~Hwqs>ExUX5Bg} zgPxux4j-cUEucapp-W5`voe@A@jt-jx7#6y2bg%b+SsS8_xXQHMI#rSBz4k>tB2mT zSZcfCf5A?L=mFu{vqdNpZgPFE@P(ux$mje20B+{>na)+VD=YeXT^iYHF7(gtw?n=A zDed_e5u)wkL!w4TN2>oQ(Esq76^FQj6b_7 zkXyCJi_>&{6i%yFeTS?{bCv`7*W(lDHn#UAL3$^^AWW^TOe3vKAPNvpDKQedBbL$S zyGMH3Wb!6QOSSVXb4qY!29Fvd|5I(ww4aCktn3|x% z=i#4oa&?&Hjb3GOB0NIsILO2A@MO+UUmYVg3#JLI2C>Stgf66={7OP{=AN!m(Fazr zG0d`&d#npYg)!Nek9zg4=8ER>jU3$T5#ZmbBFZZhD?D;wM@zMN&d-+Rjwb1moG;>B zS!Zi@StT3TRjdMSI7_{Q#~<;8+OBRYKd!0aFON3}{108{xL#S?b=wu&wry8bv2AO` zR>e*#so1t{+qR90ZCCJo>;1p?Da>o)o}-W6nt71$?m{LfEEXA8nt+o6er*a*p;(Ak zcXeOlJd7&Saey3fNv%9aMl(Z&s%t#tfbyJaT!~qw8<@hn=zuPVXN}GEg^m{f00rQn zGq1ZE=w~bup)#;{Z~t`)uF6=c&3?gP4k z!T88Zw+*=%8HHrzd5yv9E^gK$k5wElOa6xY?Kak|KYhztsCWB|74s5XHdqQbevIVw zz3Rw&6?BTnx%r3XB&dL6KrY~qv^N^Gk%gs41%ViD zCtPrBOY5^GviMM8M+HABd{VmiBUKf5AEQez2M0yn<5@h0s`EQ4lFH)NeLkgkm zw{iJZ$Ce6~Xle|B+-Q+x?yIG`Ln=Gcdmz4YN%K%1b21p*Pg_Gp&jOWRuZyExZd8}elL`@x?jTw{OClXP4(BB5UBYu{S4-TFPaXf>zzX?p5Wit(_q>~seMjn zSu^t8Ve&<}-hgNYCOOumbCk%7sE{o}<{#s{+G^NYLIt@C2h^3}e_WT67fCOk4u-Sn zOAI!XN0;0o|F&SGY#J4Iyd9MaEWH>v1m(tQl#k!3qZUbUk|>@*JU?$$<}htkok%@f z!`T&27KK!qS`ip)q70OeTJUMkw1p-r>y93z_S7IqiJLA>NerC9&|*=~)a!L=venT6 zLS}h&?;!zmlKBvf7u@vZ->F}(KR*S)nK%e^PxJqg3}zfs>Qb1DV-{n8;6%{*VG zemE+M0;}(LNA!>4k$js64qJrn$GBB!5O)KQU>Z&*af1paLQU#55LwvSA}YYKw{oR2 z6{sz|t(Q(xv6sDtL&re6sEtLAC!GOJGh#*KpKA%x&xIjALya|qZ3El@YU4wWI#QVk zqbL_vhwOk+^lt{oGp}O!yOV!eV(>>Q!Q%x+xu^-v{E7eJAV&f1R_{e`hj6;QMqLi} zJma^fQv#W>>qV^Qn9@4(JGkdBK{&+xSm(#?_AK%8Q6%AC7$C(l@Q&Ph9BU6xIRiv z$hQOyk}TplE7fXIA?WCdwG9=@9GsiqpK)7cYgqe}Q+hh&^@fOZvm2s4Vn$XuP3era z@B)+QSS4SS{{u8ek^YF54VGqH=Brcrs9~J`C!F?El$pu)GxqZybfoSw$d~3;bzquv z$k$6{Q*ybjY7-$YG$pq_0un3FQc{V~mYpR~(N`da#zX0xBU5dc0}-(Ag5HI3aJsYh z?BjA_&AAH7h{+fSYADx{uG<)`l_tAp>-4H~G2^iktrEdX)okSr8m(ay)|shB#U?Yd zQ-Xu)hByNJ+{&mkHS8Iw9~em=Rys(%Oc5f~>{=@ghI!l#I=>Cby$xZxUvIUp4^fVa z#~Y^~rI#c#rYLZT>+7dk*?}W)rJ~r}`7LWbFMbu-F#_$jV z2fX_B_oKSW>Gm^!<{#s(|KtoCj|Mh@*P)pN>p8Oqq3b=h@sabhLeAO z1t=*AAc+)9{|6X`^H~p+zq0s(q0JV>vT!L#jz3OkV89=G7CUl$N(#oT0*;H&P^{R5 zyQvaD>;t%iAQnG+EPXYYDw`;o;~6<0oBex~y7%d2gzcp8;**V*G!snSf!h}1{;YV# z4uFpz!7>Xv29no)S;`P=&#%Vxe8F5{rr7sr0EJ$jxFg|e3QJ~81e2Rk710S|>L5+3 z42j0$8<}6?WDz{}w1g4(fg9q^y^3D$+mLi?{ z5VJNwFt`z`aF_{Q>?U)tF*LE!4v}Q4b;!g-_4vJjQ~EKd8>kC5TsvqgqZ%ESCPt1_*0d*%uum^OBugAeeJKO zZwMOSU~LxL=v~MlG2mdV<@5-$&cz?iR*v}LCdulP@6BtVjUTSAWKFt~IXB|gaHyz` zYq(wH%r&7A7)s5hqI0mZi>Nlt-w5&%GLs9iZ8j7Udr2aON7t~-Gn$Dr$xkD&u_wY8 zRG>+)kzOk2`!a%sV-HWMiN5+z&elE_oO7R_`%0h8L`kbdnn@oScO0f&CrHhckB|S)VEd{+ysc5rkwv#M<Yfr&&)>0ian5}8}a^VtHx11lXIy?5}~I`BUD_a9)^onIo_``ViLRxCoA z%aNiveAWPS>ZXOM7yI3%VN@#^FP3lu&yF24<2PxNy_#wFyW^a*os5MU!j~ShWwHI# z;bYSomxbs8a6f}0rV(~p%tbWyK(DY@Sb~T0(E>tiq)c5TkaWwDrOqAfJbpM8Vx;A> zuWf1y+a6ECjcw|XtoElfsKhdFVP|L5m>nI5k>tdp!1QG0o$&k_S^XYkBiDcqr}MewBm9&Rjar5S_FJMm^uUAE z&uis1V=)9AThx_$Z4~A~+ePGic|^j8iQp2s>m1oDHDUDyKq5D0n7%btTK{{UmWbKg zZBwD=ZN#Uwi*+OlA6YwW7@qVb+Yfp)+^A7Qq+UwMu#2OKdvMXwe6#;O?;dw^N(DuQ zD?oFa$x&`1%SEUL!g;MPVVh*#1-|;&?AMF%Hbfv~nt8q$U*Hh_SVdNYUg8osARg|F z$@Yf(c{GKOerHSDs(cND6kMVMFW2}w((t^?*pisNj!Fuz>8y7V4=I&_f!$kj8+;>J z-lbsrxfKRq&FV4 zmw$;Cqpn0CZlB~0HW4?|IZsHr-$A!X7V*iZQ1>qRNz8a^pj03ehrm!~>Yj zLykl!Sp{qt_tncY`Lu@hZPF9_Cm4Q)LA7mR5(unlY?jtY$kwKkq3U_ED=`BFPYLQ8 zLHWnkru2ckPZ0Zf87LhD&~9iQOPGWLS#tX|FeS)HiQt7VNF`Uh?a%ESLKV||SF+>- zjbx4hiHI0&dP<6}E}PG?rkc#ZQz4J+<+3KK{{sYceea3I7UQK*>jVOsi?4}+l55S6 z!)`7mfke0@upuVPTl;=JY{vYJ#p$E!6A7^8M|wb}Anf(1sdezF*8u>O`~X?=4>IBS zhPAnT4%5}G31$OS84B@?hAf1=*MH3ZUg+F>zg7R1D;q|kT!Az@PXT>vgnziegJ{M8 zQQ&5Ap1D0Nzv(U@i=da9!{U(+6kh~-abuEn*pfiDBD0_g#)9A@WZ*1iu)LeXhspzffC1cI?fsXnLyQrF`g*{1kjUWi523O8RA0J`k= zzKKY~Q;fJaRS~EvX_&`gQeMJcicdL_)87Ev9rQNB;A3J=r^_*;7R8}>#;YU)kfMvw zd=uLdfOqogL~=p5-nI5$??cR0(9AA{=SE#YPXD?LsJjoQT%rG=EIQwcI}iG{p!PCc zf@Bz}ow2o+vd!v}FU?tR6vrk6vs?N=@renn2Jb{cNA@)<+o5qJ#2S zc{pb-U-cnODw|-m&~gEaRuuTM%fm{=NmPxE-!&P1we%9Z+1?XGn!ZtajFi|C6>hck zV?B-h`vZZ`o$%Go%JTM@*;cM{KE*^ycqe;sWq&*)R0+cPQAh%14)ZDboIGNyfdUu2 zN9VJkBjNZ3^jn}s)ADFSx*y;n*WX{&J=WiI*x>bEAZKm+$N>fuIrh9$2zue(QOvbyK$J+v=l|JIE7BktJ` zC96k561p7a=Bm{i6?#>hk+|de$$CUs9LhLb+`1lq9G#5^@qaSZYuEoOuxZWE5-MZm z8VING>rL^gGLl}I7|5{Jpf-soa`B2d60|B(-4S-mnRIiD_;z_1yp||4$h}^&QJRzA zA~j1goh2KWm~ApJca;7Ez=;!NS=ZNRfUlPhlpBaOBjV9Sgi?f{p+Q5Xe1@ z3^|o{9@+fSt&tg0sji~Vx)4>?H~5W5eK$I~eLoMNC-t_kaXSOq^9m35aW;7$AjfJR zQBBY7#XbXd>}-|ejM=|y;eH-^Kh;ck2uut1(m zXMukQO?ei)O7jm-LmX2#_j&DK@rePh2*krG>V|kyl=Tn^26CCzdk+U#q!8ewVlJmb z%w2!!YLnD&3_^^6q$tUFr`-MDIwf*QC4n-z5zE~8~>Pq z)H(WtnO?0mvPcZ_2Sob+GTg{%RRV)rzy*09;E;SNUh?0o^X$LpXE>`=I}R}wwauSa zszB27HpHpW66tY9_y%}8@rFRKu?vq4V$+*|yW9Rps|E!hxXsDQ6V)6E&bJ+EtnG92 zsS2>1imCj}Ok-%QGyc4zyocORg-M4`#Ua7Nw~#fvt*}3~*RD7psyj)A3m*O(9ddPx zr6nFP8vzq71h2;}6bg;k=!)(+H%l6_lF?I5&EprM-#zRE5emgDOxyRo>Z5}{UdHv#coH}*>QpGI4Y zGsO#2^}bq-@&#=fT#Jl87Rw+(m<)#dGJSrQ)2il9QA(S2B8tKX@jl#u1Tn9M&3!CI zdQEQ0Ap0|iG<^;C9N`$&A&ZfUeqkGG`8z!+lD%BFnk4iPTjWsnuQX ztP@tzh>zBY%h_|q{m&K4p-e9b@gO7KSNX_46RN3nsl`*Og{3-33aX!sy|-PybC1w7 z#XEf)3%mbnpVpr@6RP;Amuz?pPj|WMhr4p~fV;0etm!R@6K(dEHrqVqNyC|;p!nYX z{gQ3WRbME|*=FVP_)TT*?wdi1*Ra)|y&|!6^k01 z7>$a|Y4zoxb0O1=U7j)j$q$T?51E1TyItPQznrtS%vD^H2DT@o@?HD{%af&sO_0D! zoAY%5))v0tpu&{6A+|XN%W;%$b!~ui(+!%R_K_D@IFyLm$){$oj>|@T3nqG#nu~R4 zJOTm;tSwdgwsF|<5S1|d+bu~xa>}(#<}L!9Dr?BT$Khvk0AQyFIqMK9>({b1RvTKU zhw|sY;PFmB%OiXy_QV0y#qpa8qIxq6*T~pDnSc*NUjo`}p+C+^Lv&wn_sko|S}_n6 zqq=p-`z_W^n~}b{AX!bVRj8VH(GsG9#G();XpMR-lFP9fnJ%S7V^pKv!?KdFg6Ys3 z=0}azKN-z(oME?f?h8ST%jYr@szXp0#{&(foq^W23g%zc<@Y>&U)!FbSDCey`ASZRwY#p#dI)7O+|qua z#7pZ^EAzZf;O3y6w~>#pd#-l0L6Jj7)J$Pa%vUEJ%^SAkTP^+A=Vf&+M*P$oi)s(F zJv!QK4wd#?UvdZ}UbLR?w|iPB2c&xf9Si; z5kxleDESAzK%xB+sIFc*{HAuzbNaQ(yXsO?p>!Kw{aVcsjcH9c%yYHE66GFEWgZW8 z5qA&z@akd2pSryPT$u%;q4J{^JvLFYi8dbY9yGG$)BsjrNh}enbO3CBr}aO~ev1&9P6q*NH}3cqJ8i_!}u)dvto{3t7zg9rU2OB{CG`9qJJ z2(>~^8b4Y1GpiD(EL{ha%xzA}3%oOYTfDL8i`YqN6pJcE=x1=FZ)b-#+y%4rI&ELm zwz%Ka$ul@>Dw9;$#B>dav!n_1YFA}7|1O*xr+TI6le1S`+*)~}SiUJC)n!)=$0`KC zr=aNuOdZE?&Xjj&z ztoFEXImax2u?jWbq{ZRl~T zhjD}k)~6K`AM^k><2l%%;|q#$Y!aTr%-mh&S$S%j{^r4&LVQK2QEg$IRTD}D{#~9p zrAsX`2rAvLD6$nTX5X>I_E@y){kc)P=ab~RbgieVP`ohHZj%x()9!#@038dvkbS|0 zUt?IP9!pD#p+NbEO6w~}!l+q?8A3GIHhfjSgwM@-Uhqq!@TAp5TeUQKC$&U2Rw`5l zw>j31%i64wCeET#WxUA3_Ep2ChMru>L)>%ysz@;(vEKCE6717&ho8sAmZyh#rmOaE z7vqD~a|3ghT2Tr$5^k*ZllRjf9ZcOwlmagkZ8w!aiFCLX8c(}}FL{6NM`pfOi(4gB znm8+~mg*F28pJINRL~otor`gl&^pH<4->A9pk|%2Tj(>Qdu$*$b~F9Xv`r<%Rsq2d zkpnTek-bs6mH!92JR{=?1$p1{thQ`W8pMg7LVy@w&M7pE$zk+8C;F z)W3Bv$2ABU^PGKO1F^gU7j1Htr}ds(8EgQ3vqDr*R1WG;?%`9e@j+9tIG7jA4$S-I z{V;S%CNFpuPPBJB<=?1qW0*E#5Xk$eq0Lo9{_JRQBoN%a`xC0;$_v;co(GpB4h|p) zwD5XZ_a1$VUJgtP-v4qzojAna=8OdEfTdUs_o0OEt<|=(|xIi2I{{7 zrKbJU=KM;!9h|I#FI55QqnTm|3@o7(%6fR1+kvZqRniTth>I}$N{KvOn?|@ye_U#J z9&W&6`yTd+aE@w$0|n3n(9eB&iaWW9ldBQyUSZ6T2ES2JD~GHp8jyDwm#>5*n@}dt z3e|!gBaUYz)9v#HSg9XPXml!6@tm z`t_4#bU^|$jl${w_wPb|7W*eP{5%)Y013ai*KLShx$3;cZ@b|v>0mJ8?}mt)pY`Jx zsK*xJ->2{J%s~LczRc4a`5YVLc2PWe5sYIeQWTZGGyzMksZdEu_Up;VaST^iaEb1F zlSnslyL8&Gbz=1v4LXQmuukZ{wf9TOTr+4uz!C@l!>HII^93iyq(#5tk*@n*@jnxi zJZv-tmVLaqIA5xLXqElmduw^ z{|X+_WXjaLk%+obpp~=H<%>`UNVqdm?lTewW1V3804X^y&m&L$i-5K9Vk?yZiv%FCk+*-#ocvkI4e6_(8RAEQqpCHw=YBk%v*U5$3?qg@gv^3N zb>Ew_|E&8XnbQKMg9}C86ZC94g!bve-1xnBxiTrY7tbd?&Pskw8qxLxH+&gWJLKA- z7>v!oY3+0hx;H07lfMz;iuSu-nM&(N=YEANUISXW~nDarPC2n8r}y15~OBw~ABMe*cNS55eAUZjEC zF($@fQkW zCy@h}2`wYJfC)9fpC_WA>B~JGPb5@Vz2|1{m78&NP*evzAOj^Lf|_SebBA?jjc8X0 zAu8O-PK@ygi^musa948=ZgyZ7-?UU{PJL$^MJRZsmkD!{eX`Sng>?ZNgkWnZ!*4Sn z;D>5LIv2h*_z_wqsJ!)zAI4{whQgqwVVSIsDn+HIkB}(w9X^VGQ+v5$%k5gi&KOS3 zY-R>YFEt~T7th`>s_qUb@D*+us}ze|t586bE*+Wlh@laurA+Wj;72f(X{=DJu(43D zE%fb>AK2DqnSQsWeyod9zZ>VWS(2|ig47?C&Jpv%f-3GzqPbNcIRxA(LR9~4iL#&# zC9C{XVjizw8L#8sz{3V(Ynpjbxli<@X0DT&f*}3iAZA7Ub%>r*mya*l+#E&cb(AQn z6C}lXI!Y3T6ki&hkib}yjyAURl|A*-=+C@O6qb!bO!K;QL&G!8s^U-Y!;MO}rf2H~ zZ?i=nbEKBh7d3uQxHtKUN$c!}0Xe99xs3V&xLA4pUIDoD`sf3PvFpnMerOX^U+xnx zxAUbr!nbl9qi7BgMba(v=oVloF-}rnDzl80?Y#s!;F;K8oR514cCS7BPCy3yM`YhK z83r+ky({Tulq{t$X`@*_fIzE3F*G|Wvw0Nj(Z+8qv(JF)CR(n=I^vX!RUO$doaz)6 zBs@iQ04TB;O!!G}Kl$h&WR|(lsb=JcUL`y|?8{fqfttB55# zn7HCQc@ZY2V`EMk@s2#>{8I|y2@4WZ#Ti6kx8=nA(HC98oen|Zb8l~G>vwGFfpCeW z*JB1DwIrU*k^63aa}Uq^?jee3Nzs;DgqO)80056z6~8jCh|}As?(ZtN(1bZ-O2xyu z$t`1JGg4-wdL8)VBd>$w68U&Qd3#ZXuCmH5 zf?bNPckNZ)#N?1QxCU>WPzO}=3yIg4l%W&I&$o)y1SBjAvzf}kswrL!?|#Oyn2of( zMT_<>KOrjRLnhs2bDB%`Q8eKFm_f5EOf1lpV4O;W?S~wx8x!qJ9)OcK=;!NS2N}?A z?eFnaXQ$(eSs~FG#S2!j!qC9AN=>!lx^#0>oCOhTaO4o3==;oDTs z%OHcfj8u0A4}hfhpq!=?EQl|*O8ohis5h{cc-fY0(K@oz3tw1UPW$&1waQr-51epU z>d$7T2xA@PeibTh9GHL2w|?EXUw4^>K9B=Aj65(U-~I;9`pYtuv6V$!XcKPsDL#cX z_40ZQv-;|E`WhRNaMI?0Fj8S?ZR3^pe>`|+8h{Xa=0 zi%NJ-RkWHG%!9?&GV#-<4CX=ig_XJ+kbyeCW-LufE6;smgy}C(#ltD`sabQ@x(vt_ z3(Udv@{|R7UWdMcWvn^|!SS;A>Mbg#3<+pOP;9)%Q9zC5l#5BpWWY^5)9gz-xbIw7 zDlV(~^54pdra<=x435dQr{PR?FJrsJ3FdJY^nUM=5Ok`P96c)d`?sS>PE6qxh%n?_ z;u{%$p+uh;Sq16-)bu?LV zfof<#;o4#zFTU}JsE7w>FrgKUxm+R@=@eB=#dKS>x4q?E(>d_*^N*Agm%pLaTR799 zgo&UArs`ra6jjApazeVjtsTT`=6#VByrm(-);->L7Qt(}J)qi>R?{{VN} zMjx@w%^Kg80Z(e*tjc|Frr#ys&S|USXhjl?84cRm3l_|?%D9teQHD?So60B*e!_Ug zsP#OFmVaAwLca;`^P!%u935Gyg>ut<6leIx@HdoY0#)c0(Gg%(t9Xl?vTQ_uZv#|>}0KHY4+hT-2VV<_=tjS$ke1rG;6Mt_K(9U__>Lk+(lL^^_Oe`O7~IR(eLt#8&S_L zI;cSHpk#4+Lg(ffJzfBdFM+47@kqz^M=x&dbXpVrV3uc5YOcj+^z-l$d*C8^{{)_P z|3sjne@+BE949>Lb%Z(u_IL$i>6X2dQxHUzYD@0|R1Ea9bi~M>3b0 zO%o!PHo7gjdSZS;AhvGd@}!6|Y`d{Hajs`z{3;{n6-tXM#pL$qC>3X;EGokV1PAKd zM`&5%*NE}ei1u+T^h^m>!#&)RBDPHMBL?9ivdRi)!?MK{W>9xO&K4*v2uT&Av>Tp~ z9&iC?)z+IDbP7sVZ44|1Ors{kk+zv!V@2IKV!s+8|543DPG~SRR5ST!@^^NiyEaH! zw{l$C+>CQk8)8LLyZ|Y3;TiJR=lBT^;aDw(Ls50GKuuJhc|VulFq=FuNs%H|C1aBO z@Sg^F5*M^Fb5LV{EtPjgM!8j$I=tR+J{W~3!Cqb|ld7Z>c*K&6AmXq$%AYyYUl=)< z(v;HZw1;TJ;irg<@xIdRgwdk$B7{u$s}h=)m76)nQ!d9Y)Lt0AcFGDS_N5{mFs9GP z9|!(|>Mj%q>e*sHR9Q8A7?*{~zfgWIgAo$DRB52hTPL)iQsiI$Om7#UQ9K&RBR9RA zgOK3#7l$K_hu5O}KCh^ZIg~F(XoPRf`VsG4+0V|12ik#C=;4OQ{XXk1(H;jpf^Qu( z^vY8(LX7@x0V*{#MbS=(W>*6XCzSP=rF8Jtz?4|U*JC9q4*kaDZOn0l@~ctvw`W)5 z#QG-LBHHYQ%kY3MRwH9#G}u^3i`+cIbq~@s=t@Ev15rnTBKbbVU0D?{_sm-7_iY@t%bQ65GIql3f* zx~a(#G`I;O)*<$da-d-vj)hh<)Ds@~OtLAVFlp8N*@bFpQ~~K*P(Aj~Jctn4pfSnw zIB&CJz)f=EOZId2$D;Kem;8MdmlcByh zoi>_uX74JzFjF(GMx3ljQccBuzzqPO%nmmh=Q1$h;vW@73hICsgGwM4OU8==w#Y(f zUZ~F(nC;4=DDx7R8xxSi3+fBw2@~Uj`<|Y*3pztn z^|7j8A1W8J3uQ+E)wS^e{#jqJM3$D7_^NIEBI!%k38r&C2fjUM%AKj#{CD7mULvI{PT>c+{?;N9HQECty@kGd+qx53~Ps7lH zJa8#E8uw1v0Rb5b9ac!+`T2EjO(L~QHOx>BVxOrSJL2aYx%b3*V1-mqxmYoPb3IrP z2q~VI^D=N}i(hUUI<(;1pXrei>P~V%sAy zgoTg~Mo%#aXo&aK;`fgJb*rG!)u})!l2e1zoww=iz5uwdj+9He$I>jzZ1nw;$Vb1B zG;Hn^onWTHy+SV@Un~P!_<`Bf0jDVzp>%opG3`c5FijK@)Tj24mwcecg(&XZ0JGhd zYz!F3{z2ff`~wob6+GU%IcH~tYpHY?Dd_AcNhx_Bt3duVXt5UGdc^{*X4kmfolJgB zE+-^GZ2)0{VkNLEtjF6{g|2>C7mn>Fj^8U60T3sqzlbK#H-hbQ2(uWx1( zCE?q7O=-7}&|dJi>NX&=HKfH+Pq9vAYmZdAGxzVJRI7c(cD)U`Hs{`PLw}g|D$gb- zpKJNj6uM}l)Ey1>;ne7lIjp%8PX{dyE&fb@@)cK|>@k#?1#jrYg<_5;kTi)(HZsFm zvsN?TCWRD$N&5x)7Y~_Z<9o`C{ga^Ct2+i6W+Rs(^&{6J<|osDW~wPemj0}NABs9t zy0;sBk2mK+unn4Os=0zN1;0`EPaga2moguB>OQ^FYop|E`P-N&x3un81IeXcxw`cy zJt3PH=}pMnmT~UuU+9i{V@}ow3YVRnaV7H?Ttjk4D8buOf1Iwu3|zNaPh>4UlQc0O zpEHXVY<`_D6pBcdYUX+{Z*)EE%OH!caYog3tjyH|!OwBLeVBcXivz8E#>BQPZk zATYgV%B9V6TZZ2YjA7W==1umRGB0PbB(Ji2NfduW*J*1ifJC6kMj8Bb-Tr1*eK9Qr z?s=Z`7caSoTP;oQpBO{j1Dl&N2RqH*_9STW=8g&|XkeOGT7^UyFw8$xQnx}uYXo68>w9VYP^!n~iO;I5 zAX?04XJP-r1G^?a(ZH}t4^dV?uV8rqyU@?d`8{lt!sG5jXseQ6<*O8vo!?sF$%x zZbJiw$Mcx4p|w>Daw=rp;H!3)0i$U^X)*_(8*a03w%8WptQuuTCxQl)?=gI=$`Gwa zsfcAdeI=5xfL&)zG5659+#OfVAGLe#FibEZmTiK?!lWqn9O6H`knXs&KLc|y@8C$E z|5f}4*u0xQeiV$DI<7bosY|)$vF0-0EG$t#>3?&B(6K&Wp2UmT34&~nI=r|2racp6 zX(pV}BwHk+Ns5+#{vAyfl`?`Gbk>;fTy#s}mA?7LGt4MrFZom7sYI&lL+24;p%~)~I=Z!;* z5l8xY$eAe>?)f@&Vm%LNu~I_6M?pN?YoUM_H)6#Yd{{c!La269gJMItQx_OguSfAz z4%f#m{QEaht?coZB($r|_U%!Fk!TCSo}hLGQ+1%sZ&0DkZRwK4&OoxVdEVcFlV*Zf zJ9#)*hFo*pOKGbQ`f#W8gXNk8?@zXtT`$w!~ZcAZD+|%^6z}gP~=qH&RhhB%> z+AeHx$xKXOX;a zjp7*f#9!cl=^k$Hyzb@>OdURDtbfYBL$vuUHM)!Q_4IYNZ2jdoGZ;cHQ{vQR3MS%g z8vkfbc%@vpVOJ=MXm*mw=a8vHJd3;A`{eaY`D%Rexc=?F)!O0D)X%PAYvH1A#FaDM zs`ovg{hi$_M1MH6m!|M;s|( z0o4HqmccJu&4P)4mwV@2H?r%j+C8jjPplRuEJn51a!T~bGN*ctm{j`n-&27-gPPt3 zhpm~4HYsWkub-SRS@qozt=r;$1=PB6FbCP#wQ4NGkH0wZB7Hf+Rp!iHdA(cGnCmoi z6$_bUy(SM*L?q)^RC7ZZ3i|fj-n>7h+|wp{-XBn=yot}Q99DMSa}FKST0TKTi}#189i<1N;ZTGO`J< z5G=SFv+&_r_g#a#MnT*6>Mpfq8TK?sb@7Gxqgov&+RLkksRT`F?)A7DS~8m7S)foD|8fx}A?OSSU&VVfn^8HaA@ z?8Ihqn&NKrSy^bu|EYQ-bVh3-1x2EQKQcz15bYb^D6DVT(qibL%+vRN>uX{|*YCCM zL(S~kaN#Bn)8`By$-PgnYR?0yZ;H9ilAH^liIP7(POU0TGWUmRSg!qEy&~9V?YPDv z(o+u zRs4cNZ2cU=TsEP^jmxCD(FdhlE6{FU58#0b2hcy9gT#VSj7zo%c(J@Kp@P5Sc`yD_ zgP-FYv$RrkZ}P^bbpo+7;Vj8a&|Haog^1! zGgFgYOmM@&V+WlCG1?LO|8wzazR6RsIiVhV%IR4TE5Ndutge8E66uKZXu|NSA8g}V z{G&;x(#VSi9hzX(jM4xR|AWLB0Hc43W+Dz_fQXxi2!?V0+|$;b#J7Q=;zrA{zw>)` ztxrzZ@3R4gAx$!jyqEwk!BM`$7@5iKbED{sXHFZdl1o+sgD0Llak^^%&b2whQWs=N}QI^-n()}V~vN1)2vlvLkQGY}irY2C^O`|8Uz z#fK!N@EJzs%%E_jrJ1uHj*ZhdO)i-j01qe87$aSPMS(;ECdcx1rOc|A4y!dnz2L=6 zoK`Xs40|b@Vm;zH+)3+AXNmtyat!~e-8j_I%IR_#3P^R4aQ-aEjTgrLaVc)89%`n> zvvSy(ab#-hdgdIvVLbiIno_515Oc5eLw>HS07kt%RfDV=BZULqDvTcc;;rd*CZHrC z!$RdMM~!m*ltQaI#( z%229=GFF9CWdt`suD<|~p`wQA{{6#rtbr2Oq359r+e@E@#ojf=f@3sGlo!w1DkVC^ zOpt&E5CBk7Aaaq_Z6c1IJWxNCXKYUixm>bFcJq5DK|V;Bx?}ywA0ZrpdU~C)jnmLk8B<(KzGge zJ8tl{>GI^;s6bGBIg<@qJC$B^2y25KtN?rDB@J&{UAmuoct`+-Wco4TX}~GI4v(x! zR1CBxXTkwM|KTK{rvc;Vl8Rxe6R}*sB%#(F_F1-FPy(UeM|okWO8C88&cufKp`h!~Vo^ z3KyX-eW1XDjSDR=2R=9w(ot2JvRrkAnyf}0?KO>Lgnb1`P{a+19GC6xExKO&9u)hEA5_okmqD zw=}F}+#{)TkUULB$5-e4#U_n{Ah#!$YAjG8;tB;+R=7?~%ji7voJQ;Qc`ybl zMr20dN@3E^Ovj2?L+D8|a6>ZT(P9>&s5)Ksq0U%98=%FO;>%R(C`;cfrZcW->Y(z4 zgw39~bojR0%$5WtxV2`mvQWCNBPzVa4q-nGX>=>0g$YWf5)lHqZ4vOybDc@Q5Ytw< zasM>J&gB(#p=}_xz$bHj$~LaliDSzed#VR>PNk7f%iJL(Qai?BUkBJ+c3QIQpuwf< zdZ!DsV!kB@0TFc_NilFn6_?$8`J?M|5G%^U)Ko>aFz_h|kyBE~sf0cEo#RNm@L}qH z$=~P;yNgE!gU1ZR>LlvfnvPt~SHdDxq!^P?UZ^TeaXmxOq<1Iq1G{=&4Esb}tH33d2w;YV^cZ}>=S#}hfFzT5>6cizhpS-R zAbJGRoe3f@yi*qs!icd&n~iSX0pfJe$5t`2fWTT1f!|+KUi|D+r+- z_LL-WJ-0`Y>CvJ(4)EoKSqYEW$47o|7!xK#;AV^i6wjh~&P=F|5@uYcTa>^6?Rhma zE=~v;4dWnc>aC1j&=7^VUBSlO&DQikfI6`g_0azBck(y^9sQHpf#1>EmGJ|UDWa>^ zcu~+~GPY2NWWwb)i{lHFa9I$fdwKVP%oskC?9)*;qD_lS%`t^b7J8~^lU3OxMUbMz z^66|p-f`F6Npta1k0{Zdy=|aWG;qm1gMgF@&Aa_*K8`fCU^e0Sl7%=5*Dz{m*fft) zUE3JP+;UBcDwv~Z7b;jO?4lz**&qD#bV*598^3H1J*Xs0Xmk^b(ZK&cWM4Q31^0$`pts}LV-c`EuJr#|JCnUfJ z3eEy9PeUeC9wNf7@Pl>IOm}zHEwBtAMd12RJXbIn1!4sxEPvaiNgIt(7dRDJ#5qjS zAa5LMfQ31vrZu$%gBNmg4#2#@?Xf(SK~a(QL2@D%%#^Y>0lBlpo zBv}D|N_sT`CWX{#ysIVT4f=bCK6s7R<4=f@EFuDcVoPjh-yAjhiT?omWB&k!wV(T^ zP<`^J{uMv^F)!U;sQUNgHVH{AtgfyZfcE{9NWxM8;FE||48OQYq%i>Xq-!9iLWN=o z0T$%kY)#B_8jrx^MFC1L&kt)KgHX{Eru*e87l^KXHcq& zzB>Yu$!fAhASu-6z<@%;v352cM@hVa(+;e3m^UEJr>t@@?z#73+oX~(5mfg8(_AQT5I~pE6Q>%H7cO1ESbLY}ZXk7PeJ|a(B#Pgn?EM$(}>_pvxXs2q(hE$F+ zpw?LrG@eEj*GverfgoMPGgQGPw8`h<6BFb*+xEelGWtOAEQ510I>-3mY#RNyxc1Kb zqFC|P#i-3=kr>8;MgYqRPc9IZMad621>vlcRZ~whm8i;NL#QK}*v{h7YhHY>iPD=< zwt=i}!Oit~OnF2>gXfHq9;Z5xmjr>q3`-zIXHX2-p7>Vb1y*YLRLnZCJ5C#+%k1v$A3niZ zSAwLqsUqwUdcmz!qm*V@UtW8}4=Z#$w#L;wvMoJ3DVBlf2Ia5oiXP#wA&HJ$lyJ&9 zEJ`*&$kd*$S?zN5z$wTAYG+W^7UvD{wYh9I>AmfV9bxGx1{sJT3D`*V+skY<*_wz( z?d%&KPjF+mDCTSH&;@yD-R+`mi2Rl-3lqD%DNh-sx&oByr3DiUh{{U)>)RAsocj?oAkmrn{uh+#snU0*aQbI{3nXoEC z^4>No$ZpWlY)a%9^^wG#E7NuiRnt<;asXPuf#qw9;{HT6EfR&go_?{k#mF{|x*C)2 zb4I=*#DSZNG#Q!d(3N8wo_&395?Y9^xr)`QB{-7E2-M;ZpaBsah>#}4#{GIlKyBnVm*to}9eBEsWQ(>fnn>AN!-IbCb45CI^~gtXKjKC7J|< z9M@fLTD2;9bY}K|P*zX17u@pZe7Bq96EjGc&@C)U-U^aTe>}Y4;_s%^X@LRR5u#k2 zlGIC5lA_z|E1}OH#r1ZUc?fd0(gf|yo~M=0Dx9rD8bC85+P_i=^7Z*ARj-6bN}fSw z6yP)83hFq+wyUlFCWYj&DFaR4zS^o2jqLC1+B=sPE!~5bcd6a5+ zVnCn;noF<+lg3s2l0UH^b%|RrwQ4{oy+T73KGPE`V|#jj_|u_GnkK^IpXPzM5oqVP z>()bv1|UJ}JxTiMfK-VDDF>7T_33;EtJEPz zMs!epOBPT)f%_h}og6_n!;(i<71)n-Tnpj!2q1G2x#hPzN0v0}=K{K|(?R}U5~ibX zh2`9}Nej<3OQ?`8o*5Y$AG z!a-0F*X~U3PRy)N>zydr7W^A$;b;wrKBp=P(ywqpr#lA z4v7|s18vC@%J{-?RQQM@)8=P?-+W5J6Ui)wX#&|;yk@+C5{fAY)Rv`oF%lFoVr^(% zp_64Li5=Pj-?29=lRD2E!pgY3GDgg&Q!kTJj4D*_1yB>dWm=0xYB~mT zjvXAIVjWm`$s#}^rCRkV=%|5v%5|xfS!69P6w?f+QkD$bO2LpkKx5W^G=pqDw%#In03l!X)Q{DvV203qH`1~0*5S3F8$R|(+xV9 zAtN8BKV_K#o%=E1xjf~3{R6~%F`3Jr(D2F?s^`=1RP)PEKAGNahsN!*)`>+(+JxexX~RX()ndy}>F8V=gopw+JIbX$Ji zweCNh)@-oDwwBrTfBcl5O~fXe7(Dy#d8)Zu$h7jYRk6lI-qUj$bpJ(@J=5cQu>O*UeK}L8=_aU9w+zYLz1} zi>7q5mh|87JM%`5;C+6RRk`-}${Tj4y7qnRbJA`dso5VFZri5ss+WG-hu29UCkfeaA-_+jm%X@omX2nt3M~eUR;?F2iwpymqG?e70J?Qm#su`c6wNn5&n~ z_w*_Em79oV*sTubYb8TXn2N4}S4@%f$J=LQb3bUj8!?v3Q|$I(cn)WT<+HT7uNmXK zCnc21RLEw#vBU;TEmdl9Dz)evK?>8eapVYo8GTMzjxPk z@6tl+qtb6pq}})J!&L~BXlFZQTc?juQ(2}A`Y|zVPvxVDy5Kma555YuD%YYJsZ$?$ zs3%!5QR>uK5v-9=8c_zo2#kGc!*ZF5U76t=I-d@V-wxp%KZes~DVpK6s^z$TR)t5& z)MYg)Wty_N%GAscydaSwrA3QRyNUJn;@4^P@2Pjw{{WfDX4XKUh}E@o4C5g{iY84e z9WpCr5OfbCav7|UN-PCh6{;;FjMPCXfYM!oAWh5+Y-Y);)otJG)~M=WlS{kBsFP2u((0h{>NJ{tY`b=@ z8I~zVw?*Ne2ZTdBT3wA-}cq;hMM}#Yr{^zpnoP;G?!V&d+gdk;zk|-&3!} zvbl_-9V=CHS$ZO))|&=k6o&*bfE0*<`49g96ucL^?G|aOtxYXQDCkrO43%okP2o=K z?2ePSrqHuAVVHu)laDLUG^T+g{(S!c9e&|u9<6E=YSn65-jXv4ELxw4NFcY0^EdZf z9~H2JYY(rh;ohxaan6<&Inu(%I#^ieOA8$7VPl;vEOVuWhUBbo`+xL*_?=MC{{YEu zfJpLSe~c262=gL-I0eYNqjpID08jn%U2;|G1(Q%}Qv?8Rv(_W$Zg`swllPSq$l!B- z-so}v0B`-BXIH3>qRs6NabZ0UB~>8Fjj+qAFlBWNq*E($tgH&Ml{_0;6hR#FI-+wB zDkV_ulzhEvS(;j+on@=010?BvB}8imIarWfiDh61c}pD_oa#*b`2 z34SO0Q@cC+e(mp_elFDQz30EryY1UAa(q49d!${Zr9iq}2Gg=lr}-mpk42_kz6~r| z`1J6_q}J=weZgSUG{yz_^M?JH{h;tpA=+I30B8QudpSavXtVWm?~>vjk*UQ;30-Yd zC&Th)rxwXm$9AU2Enz2imt0%Xe9yw4TM(OywlV zy$Aa`N-E}~r70}jey~__q_Lq`fV!0=PBEzQ&#}CvN_DArBkc&(rLM9!{l4LppvQ!o zw0kU!o13d%O01d2nEnlWWARz9_-(g7*!kz;6SwL+{{U7$3ils$?=Z=-_vZVw zYvP-@v_B~AKbqTT*XZ>c?Xy8N6HB#dbr5JqqGRT1IUa;~L5$ zcwy8mWiBT4jMry7b;dF|iabZQyf&>2-4RBeNbgEKv)OdwF)k?W$N2aVA zm}-)`11_N0^WFp6pRvx)ab6#urPyBHW*04)?{j$!&uq9QT#pdd6Ozx+soBorzFo+d zN}d@uAnmeW33g9*b`Qgym)Rd8cW%-07kunnBpYvZ_r}q&>pOo(-P@j;Nn#uH+h*ms zZrb?w9cF}S6LgnXxoc*CaE{D_mRN$B01%dZCDxo#BM`aDVK(`ps76u~uXD>*7_ zGXT{q7>BOkjZm!AcYz!iX!yQUjdrh!@s1Ud%y5nunawlgcvfRIM>yOvjfu!psh6il zkfB1MV@YXIrA$+(0-#{zt99A5k1U#5p%Ns3l1JGtv?zgMnSf9GLE!bEnS(rj5HztfKqrz1rpq%07|=k_6mE?5C96 zix@V>G@axQVk?;vNgH_xYA8k|HbIPPr;$r&g@9p0uBk-JQ%z(a3dxQ}ml`-Xxoo@Y@kH#^nrv#u5I4jDnCw0<667N(Vu1tV?~4tkbAoRHC6#ap^PG zA}#Ycj>SKu5%B$gpMEC$JGj@k_ZOOc#+BG4iy9I{#T&<$@9~9F*s6v|l|_(205cl9 zrYHjyhKavH01-Vg4vKn+sacg80N4gHEpQ@ypyOn8o!JbUXxd4VR`K)t%O)oPO6Eus z4g!`?NjAW7U2_?%@}nO0$~-NOs|dH(`Npj(5}+XPjYB}ZM?-ey8}u0NP5KEUS#bjZ zbHVZq7+x+0L79C(Vd+=w2_vkW-f?T9Krk5c0PJI-+yl})>~v^Rbg05LKoZ7na3BF3 zk1@>qf{%7qDj{xJiNMk~?jos)0eJf=al5bYi1q5OttwcJ24Fx3;t!tq)$Y)ZEMP+E z1E`*MBa}h-V0~Vtnbi1|ToOwtwlScx7C-@@NFXg)EEJAMN$N52Fe6YF5gU11;m$f> zl955;1%^C6MeUc z>FKr)G2$$VY1(>0w&e3WewQQ*OQ3=77PWNvF&U9G(P&$qo+~T8bX_Gw%cD6 z9aJ9(7Z->(7Uv@4b7_;l9Mw!ASY>B*Rg)6TNhGqj@nlkxIkQBLq^MjiHl}of1H?(w zVgQvli((xs;tk@GcI39P+9LRp(aaeg79*6VHUJN7KnE{ih%A7>1N{9_JzvP_WO7MH z6$4LGrY}BSBi3&qAIvK8?vmojrjL;l+4{>_p8mt-DDqt{oK zrj12p_lIpnkPU@^5o~h#g2l-@z#BlGRselp60x;bV$G`n2^lKz2?mr^4mcP80B2V} zLGs0S1gii*Bv|yrt`wgm9CBldhQ!wgnk0YClvnot#kH!;nsP)9Wvy-3NHTfe*cB!M zi|z$&DIV`%3eQHXP@MU|Mkl2)+{3UOpn6hS0ge;%W(KfJ7JF1of5M0^Ylrm$n?X<@AV;Kmr4KpCujmbUgJdW*l~>-+UFt{DrV8dd|m#*#$L0|r3n zw@fgk;>MIQvQOq7Ur;=-2D4YUv|f2NsHUF=5&*ogO9YWbgU!(tZ}{szrgJD`RZ*zO zX=}`1V;}VMwk*)0nUE>vr%bbZRuLq?-^xc#iJW3y<=ynUX{6Gou$3wdiijiwAX%BH zkz`Oek)c3;J#qX;iBY9psrTy2<^-075G0K=;t&Po5k6Sza#=>JL^p6HNpbB4kVx3u zoW#KBBG|LNbiK5@cAW=sMKqeoU&@k)FrjFeMy9U=kW>i76U+T8byq!KCr*Ne%%yE< zG6V!`g0~Cd0`fsOzAa^G=ASS@rQMZ@l1`<)z!D^x7aWD=G3F=ACSA98pHHCioi3_h zGDx&xW=D2pr8eyuTRfj!nl;Ht9(`YjR;io~OS|rvhZPTqt#g5B z06nBSU`)sc#14K?MWksRVcY>T3Mw>tyTX3_>KwH6k_RR6ZwsS;yAw$t(bo4*qtPw=?gX@z<#lK#$WCI zTsmDkK1IB$j?ud>EgXs>5U~JAh)E+AG_ivA4_=#-&7~T8Rm*CYdjJCyB|#BoHUJ2Y zR-AC$Lo6!3h}EcqUo4!zm#E>fKJLCOlu;0&cz8{!^=xZF{g1AJ&-3OX9W1C1dGC zd$9BX0ssYS)jlY4=9_D1@oEZ5mSPBNz_sT7Sg)JN3XK9t*1jk!3IV?rT{5ziIyNA z4~8xb`t&&Cv$=Q6S87_M8d{dZ0WWLb@gt$Jx!Mt>5lNm05~7);^5o3t^^r&cDMMPf zuc#m~C5DMpsP~mh(?sss;Y^s>Y(xv(M=8ZDCQVTfF^V%Wm-J;PA>(j;8W_j!OJ?$5 zIAR&t1)@}+Qos-tz#RtTth#!z%qGdA0JW;X@$!%jz$E%&Bm|0t+fi*m`@jR{J#Tz5F0G@E)GEO4t(avL zwCd{QTRSf#T6-|O*#!~O>Lg1K>adZ#`=ggkGZg_9wk$x2Fkq80e!f@|R*{`rFarRq zN;AYaJOaw3gceLnd}J2HtAepRDJ2AuVhA<{_v-_m^J^Wk8`U)4z!Riidh&~p-yD_X z5g5*RxGJ6ys~gCm3m;g3MUmv9;JN3HrKa*iA*akwjKl*wtZmla1`4QzI;EL_Dn+0e zwT=0cGy1~|J2;QX@kf%G1G7}GYwGej4iwtsOahjs$k7BrcT-7KnG?i73Iw;Q1nfG; zmLu@fT4p?Lc;8VG0y@cvfxbFt^O+mj*eq&ZLITDKH7b(I3$m$5u~wkjNPrNXN}$ET z1l)~{w)T9w7{oo}GqGzGU;@}c(k<^do9=ME#g+Uk5&)%qWzdq$rio${1b@>KDM#^x zN9mXW5J!;r?$3aWL7m3a(*FQHSTWH+FxE2R!j5l;llp07LdL#ToH1t@rzzu9Z+4NrE!Wg}=B1Hj94U8UR8;~Pkfh5Ka7eMX zzeE$L_HIB9CJ%(omPY5(p;}>ta4C>v8J#4OM@C^DAQe)!Y0o9ZY98a| z6!j%AKrA;TnU8h(3>hK6<-iN!JCIx-5e0FM9ybh$<&z8!EkPN4ZH*8R42v?~v$zcM*_L2mC* zrV9hAb*zQ3YfE@fx_VonpPEnm#J~Dk{{Z;opzo@G065L6 z_{yco;h7U96EiRY3Mp1~Y=ZeQx~3q4s@2~|gSs@H?6b`oO47d$Ez^#TmV!6rAf z2p5@{j7z}!seR*23a)W76bM(|s1uQCG7*+_&P==*1!O%vMJ^Z;B+i?GzhCk3wiu~W zq}UsdcCr1(?Ta4MsAN!s#pP=>u45Cm)&YHE0mY*RQHVuW`m;(AgEVl2wcmbrjpdDx4NoX;zkhE8D%oHWdjQdw05l8UmZ0a=)jA~s3~yMErI zlMg3N;bZzuuOGY#+mu65fsUr^Iup`4bj6Ye@(g53V&HNX8wCRe=N#Aqzz6*@x8);_ zfYnf>st`xzHj~%WmH;lY6mEZE_3y;Dn#nn2mKeVnnc6t5}-IklZQGlg zMy`GSpVRlIpHB(Nb^F(4>d{mZZE`#0AHCX?Zwge(~K zpMTN7=qwn((xZ92^7`_`jCzS&qUDtmv6ONaISh)CmG)@a6uV=APg=>NEo2amagQ%+0}I4m~wW$n08FS%hi_+5&&K?};g; zNRR>E=WXYEU(4l)Jv@4i6KYapY6BHFfWd_$EmoU7G9AH9rFc=fp{~#4T19{d18*!F5>Q~C;$>$ zOj<(0j{%v1Iakz!>@ymUz#_dZIhTFB5D6Cmj-7r#-sNH_A_sXDCQ08vM%onw*8Xw2(Cj@{g&-b6)ypg>uG3GB+_GG69e2vojHr zGgx7Ws!JcwRNPUdDrxULObU|5Ae+kC@v$87qM?nVP4>Pk6YJ#DtX?Knc#2EowvA;> zgBYp3W3U|uG*ZhRPgH8=U728l6cxNRxo@?(5$A&x$!HNEOpC|w&leawvJF;+b+MX) zWcG}>d4r$@!vP}TRMH@B3V_O_H#vFQrBtvmO5WBa@6z0aZGS9W%Yv;2!D35VRZO;- znK5t&Q4u2$TK?iGizYbgTGp5_W9~@uES8v?ETyQHT#B((9F}zE5U^1w^rXXyl1DGg zZ=LbglY#fVf=NMHcUA#5-Nmt|wY zt|p^ZsZm)fjomJqfX0*3XJfIA!Nd-&S?UUENs?y3TWLP)^N&1a&69baXwIlktS4hI zh!RSofCZ{42(m3IsB1hQLP-|Ja-l?JaL!2+xH0Aq=c(&Awir>S8%;`N5TLs$)CSWQ zz2?(5^2OIpxk_;av%Hp#7EHq?U_?r&Knw*~A75daX^aCoR5)!~fwKsR0LVP%ZVunX z{mKO@gu&Y2ZFRJKM?!Hotkp4^9Xu-Xj}V5O6~VuJu4r?M5p9qmcw4@vtytBljFtik zwv(`*bn^NyLoTE+Hf54z$dhpcVs<`TUwleiq+h;7Rzdbc)73Z;eXuo`ghBWP>+&fuP(rW&0kV?z5Ah8bgZTq`&G z%CGEi=$buPYN!bW={$pTJqFTdKaKH7(yA71%w9Q+uUK+nN$Z?J~Gr`aJmQ9Ov9xr{~=yeCkGi2%md8ySz^-#Bb)a(f}e1*30Z zDFgxupiP>@17GMU^(d+Zf%zZp_3y#=5FlwJ?7?8oygcA}`M{hHI>jQOaLwvZDPhH% zEXLJj3JnjUD;qb~mRZ`Sl4?XLeFP5@rsK$o7M+c;38YAC$h?aJAm5b7nU63x#c6ge zu{CjdZ|555fs#FYN4HCqcX{L27IqJGA=$i z7ka9SjZw-1bSP-hM#NamM%{6Ud+%(6Nw0!YH}r>UY=;l%QILV47uI0)YEO>=*iMN#qZ%I&K4+cc)r|)Gt$!sC7sn724M2%jFO{Inkqq z)Uh}P0fsEBNl*hlvlmh@PoP_p2(Gzm8bHvEDo6yd(-1>`-?lefai|Le5$P8Bd+&=T zn2Thn&nT6Q+Fpw9fbBH^2c14@QD~$?(DYgX@DM zmF05B$s(N81tv03{W4+*Vg7_u0zptnJzL9>RH9T^2tpD-5KDBtZ#ubRI;5#Th*wR> zyZ{z_C!MeI#ecZILF{hS*X+A5cK45LcDC!>x_#GMvgkX9f7=d$^V`3@bO&J3$%mbPapL9+)e*`pbAOf5GCtcK7S1Rt4%jC^!{Fgu5J z?ytrF0L+J7yY^%q#jp8FP0Lrgb{_FRd3KiDrP1wMc8u;jZtVMP`i*|ir_&#q}U$)Nns>!#UsGA^!O2Oy39oG8=bv|5!ac}ij0tW{G|yH-c9P4f(thE_xO zibXPY2WpB2Jp{IJA=AJ(#$_okSpEC&d^atZ%nIG+S3N?7FZDOfRQ~`$%g+^r}1_os92o0jD+=d0hg_1kp) zx7q#C1TVSnI#n_LXI>-6Xw`mpT^^V$I*uoT@R~K#IhJglCZk@ib2hw6r54T6?rBoV z1*6^2YJ!t6&QwuSvQtE34XCmWQRHBeuQ9BZhE zFq|;`me|I@vLUE>zIL^Asab+jT1dv2U{b8Gwy9E8>A;O(6)YfaIPdBwhO)_!9-D0R z$f|`)mOc``A_Hz5N3|25dq;8IwNUJxzpd2jrP{VBwQI8IB-FN|4ZU|gK-KO;NGUuk zuGRkl(ltm1FDj3|2V4he^G#DJtG*Q#Rfw8;ba#Lf02{*Q<-W!&t^I~5uNpkg%y0ta{{$&A$ zh{wXYgf#0^L&>c+G3V#?whim5#5m_m3moZTW1TE4bESojbg;3`mKHhE!oxEkU;Y08 z^#1_d^`FGpu2qQIMA~rUaq2%@0K<}aqx>J|`;Ys7_`kcf1E9ln0k8o70F~GNzOnN!qEs0|8cvun3~YAa&ukVMusIih_J8cIu_{;gly5eX z%G=&N@jMe_5%2wH0_x>-(&}Cj89KC zTGkYr%{=QA6MR-a+&v?DkH!UXKv3 zQ!;+-R*4nOYI>e3Wt0MO`Y}iT7k~Kik72(6u-nf@ zw|%3?_E~ZqD}m+sz@fym)pJ}*rx4;rDnAqABvGuiGUAp^>DA2CdUa^l%jOd>+N(}k zBprXX{{Z-P;F-?WW&1(eue5x>Wip&ohwvWGa7rVCSK_rZ4cQLNWGQiq`K-y(DJEi_ zC(Ur`wDhiJs;iO$k&jBh!<+Fv_<;OXd_&yb^Z1AOPfhTjb8NlhJAY@{benf~Z3(^X z^6Z*T;dh1Gd&O6A)5jZYVbRAXo?T9YcaBHXx)m|U^p{~fNyK>GSBX^OROm6wRZ3Y* z)jl5i19;pq~($t(fi8JxQi53v6Cd|w2gzpMNH z{MGf=W%G3oVCtr6m8qpmDNw{gs8ouPT2CwC3I>RStN;59_z=X1N!2xyXdtK z?E))4EE!O*sRJ+Mf+!v@``G?^+tX65QBj1Ose%uPE~Dx+YJMBcL3>jiP#DJ5u5DPz}o$vl(y^ zlH&#mcs4{@)wr)Bwu$AOMilne1#C8ja$J}yVwH$#^2*94W?kT~u zbR4x2-X)2HJ`w48h#++3wmMvg7NJ^(nuSuUNHZ`mxH}J@@cxg!qx|VfU&74H@+F2- zD&h?-E-G&-W(0B+o-duu7a_=y7f*zUCJB|f-g)`@V`)^KFi@;rwTPIpAJjU*7_{m; zxmZR&%o7GA=*W%7Khjc;Qs){UuW2V*?np1YK41}uc=7@ zK{hcP{dMU{l+y*7R+yL`AWMI^$3DMPdegH{9AU65MUE}Jaj^h}AgZN?C;3pk{qe0x zJw-reD^US-3x+h{ne~mVLAN|otjGw0KypKs<_rVt5`V@d;&!rua-~1cYN`Ngj33<1 z_SpW=O?`ExN#H|Iv<}y>f_Jy-eb}bNDYUSd5I6PdY*{wVbRmK>(N!R1!zC&SG*p|r ztE2q$eQQz7QYXSo#QP7XXUY!1UzbyijMWN;Ojt8Dk1s*<`Ql$wtaOVsWFr9C7UU@< z@y4uxqM2&`gAsj7^lNRW1LG!sBjw#Wml`1MUjZ6dqzr5{xPbfI8KJPGj zF+$2B3~wS0nkMSS*gQA!jq_&~zI~7q1SyeWcplxi+h9j7uyLzPhti!P%Ik==&YO#Y zXgmEydTqjeQDJQu_Wk#o6Ycx~^ekDfKaRP&oJs1{cx8cb2nB!xc$-_FUGKL;OC+?_ zH)#NB-gdDbTTbRJfTq^?G|wcC*Dg3SE-s#$re0@FHHMLM9Fvpu93JEOBiT3`IKdRMvC$4`xp3YI8?64rnk{)CNH5+r?y={%0u3svO%!9eTK=Pv$dlF$ULlxA*40k8 z2UMB4xx5${w@Q^DN8z9MNQ+F^k-o+{e6Y^_-BasyQbjkr29i)_UlSEjP?*>=kQk^e zzB62rV3q0`8Qjicz#*9osUU!{5R#aLtplA#UEhbnIw2KcQb~x5P z<&f(g^s*>N(=?Ms48Anf9D{<9wnQllE?C%nLdk(&uD2zZs8w2`wOT*`GU~%kIIt+! z8jAAX(s9pcs;x5NAG#}Z0G(RDF(Lr;gT67w*BphOMwS;K$T0<|1~Nw^in2SQKx`gL z$CC_|TidkZbj4-X73rFK>6B*F7s5h-v9Tl#K>1vQjz>5&DGbG#*@!#Jfih2DnCFY8 zi&zjOnX@Eo6f#-_5k^%8Q2~*7-GK-)%GIOi8XXyWff9kMrc?`$7Or-*0(L*!7_6X{ zby7-z7=U&l^Z0#EE_;6M6eMZJqt&A-# z&-H5b7ux5`8dRtXu*{kP=P)cRPOhhLN0toUbUJFepXD2q)V z%c-A4$jpqP#!@kkNX|zE2oEti;q6_NaG^jQddCCLW$NXZFF~{#RKwI7Pm9D(m11wc z*z*1>lzJ6QFp6XX4yh!YL`RoPVVSiq#hO$=%4Lb;E~R9P6vcuo4-~75DzGXK^|h0G zgohxjnksxDAp2cpSV@D+Z+| ztK3YFIgYr5nI;KhdXP^&1mWKTmyOH2k7(bR-ox~qE$2w#^;YtdQ9&f)#J4JGPqLFDzCn-xr2!OU zFD4e`7`U~!>GjtUib%wlnJjiZiMKACxAiz`IbF&`tPEJYh9QrMLX3cn*Rv`Z(5cRU zb||KZG(f3xx}ew@5^eqcJne>BsMDm70U+uGZ9AQ|yq>sZ%z{Fxr&3}vPOKGP!$Pfv zM~a3DM~psLqYx2_&{P8|gp~|QFizvjZ9hGuYYkW+Knw)Si12ye-^-D}Z8lCCH)m|4 zX_2CILPlY9fee}BAlAMT+EI2ph~x|$kgSqJU8dHPGB)4i>4QyDq%M># z5D4)Oq;ilqf%3z8$=#AATx4ew&bbs!J>*5@jx5QE^kNd(Z~;|_o|CdltV;l_oN8Hpbl*L_tsqRH@y>2qQ^tSLZM~UlV$FIO2?$sPLRLc*!Lyvn+vSVBQtP z84QTZg`6W67{^qaj5h&f61^tVFnMwZ-HB9E8k(*39ZCV6BVq`H5MWqFC$weM!Hl6- zmW)Tq;k_C>%a6bJz&Mc{1f$1DYN!Pw<^nWCNdZpa{{WH815uT9R72s`5GmLpAQNCY zlkfD!>q{Z<;d!ic5h9gV#oa?07E|`c@;DT#Y7R&&(2rm&2AwxE$R2z8+Vg;^B$EQ< zXpU$Blh>uT+pZ@x(xR=oDBvhYNhHaYnldmT;uvBNKChSGB=r-Z16}!zJfI1KzhB>$ z9ZfKWNis~x5Juj;Juy2RC4lu8B$qDawV*Nb|n2@1;rz@jbX51_rnt*B#5M%BXV&WfnHM znJexRXKy}1-B}E~2U)q_O{`A)pV!wGEj-0ya13PNP_pI~%E$_sqhM%Zl6zickPV+; zFdBDK0G>eFN4VS95tm>DD6x<>45r|nrg?dC-v&o9kYceqBal`r8Mh^cQ3?f;p1$e; zLM>><(Mju}RGGrwpINh9)%w=o$ zjB>y!K0}oP3YHbuBgJX3X``jIva5z9cv#M$6kNbIjBaFWHAFyE4JAd1_}|iFtl;Q( zxeTI4lNQJU^==%3tOB%ZjIJ8ln!-9T1eG0NoZ3t+HdC=?kt1tF^W{IrHw6t!7!)Mj zgAzYo{&=~?+_5&6HbP=}qQuwql1->jvI|kjlb0m@a{mB&OYh+X`tyPH`{HHF{u;3* zb!{L=EkJX(U)K+>ap~rcRgqQCj53Qx#hQ{v$Yo&S8k-OUa7hi-YPs3&Tr&bg2=I^s zt1vg2+kf67Z@Do1FAFVA&g63f+Y1X!;-|T8@vKa!xJDU1jf$&2$#@G^Y^)j_ax1Kd z&I*C``zKTA69wAk$+hIot;?n@u3f2xT>xp)2nX7Oa%9_`gySCTwZmQI)9K4d>XS$W zO3i~m?{FBXBq^Z4618DN6M0%qbUH$?FQjj&cfGbJkpy}3#)uT?8f2CP0!mmxGh;lj zJ!cK=8*ZW~B-BkK>7>-DcTkbH>;)1voo#@XXs`-dU9zM$P3k!ZriL`AU{W?d5q6$u ztor&xnarhTRb&BFNO@vRji6cwB0gBBcMS4rwMhtab0xfqWP%k`L?n3ub8H%1i>MiJ z%xkEsp6nHW2mnm(J`?rliPWy0L)ics9V`a%N2W3+xjtMz+L}?HOFl4n-=31OhnO%oZxN(@B6d$%Y}Ji8mW;Hnd|iE~Hdr5U1JP zz>Vb2=chBaC_ApDV$E9HIfzD9sw%h?UKZ6xIhtY0ingw^D!65{l_C#c*Y}e?c)qMq z>J}s4zA^6UtN^n-*vpXt%u3OsBxTvGBDQ9~OenCxWp+ndIl7@VwIu~(@dTMS+yGY!P?8ivzE3*)Irl`@3~)Sw?3#fc`t zAn|-xSygjInWM!@@Wx~wKo6De7nsJX(57@DAhNEn5dgp!D;}F4_TtOi+mq@d5Nf4q zBbqx7#n1@EjAOx>ibnEV3S}-bvNBLX<>;FPF@9nCzouU}Gr~p{TGaipqrPaj{h0M@O&}myx6fzl3DKvPORx&AIM4TwW8O4&l zXXhv=(7IXGl}s>#4dOJ|Tmm-uMl~|orBcCP#H#>JiRwta`WUs%v6ql-J9dvvqR|$O zK*X<<`CZfo3Ja?ooxxfT6Q5ov^mW@WOS+{^LMo^%K?Ii4CS-Cp+s_S6t5s^R3{~y1 z(_``Uwj}g>mNRK&uwz2bs$_0UHX(WCf=Ei_Ng~S7RUKuD^x2dyrk7DEa&ZLxkYX$vGgK5-+imaTXbaDju#X&LkrYB4^S&SuXUmj>q&Qj;_mhgT9;yzb? zA{1=R&pkeTAw_4hs!W(Tp!{@q(}A7dNcgd5_~*^a5|-qN&!?&14 zZ(;NsOY(GbqS8)g!sall5|q;f{ASqtmKb85)pKz2zyvAG%BdGPac*^{9q)g*5NBVp zXVwm)wgopu`RV$YtIawkB1!IyLi2%o%FEudayK z(-fNzPhUY)HAOT*=P`IX8mV>D_&<=>oW%;zzj!cd`YCA_{xCBqQCVyciP!c010z#s zBw9pWX;hi|gEdB7FMW`W^%KR2FyIrB>uPS+MWVC`e&?5YHC;00ifL5w^yb7DXe~f( zYzTJS(UHy%I(;VN6s+2^2W6T}Fft|Jj(40b`8doZqJ@+skXe4@3pG8O=dI7Y2g*?8W7{dwWp-j$2Y^s#Ouy#LLP%1oW4qB`{MOFww>r&+6kjD`qtLS7Z7---@-@D^ zPi-6iswA(Pvr}K8B&$*-Fps^q;-Yt`akgKC7D~OkRu)c8xKQ(5@EeCKX;IO-^+GFO zAh!s0{vqa)y<%E}Wb>4@0wRp3wcU!21&j>u0q&mxmuPdN?8BXe+2u{_%a=k`k7FLj z&4!9ak=}{U3#ISY-z_8BdaQgsXPVOGNLA^I=!Ejq)k41bWZR}bb=vsMu*`l{lafrW z*3VzInzUhDzT~<$n*m*Hs zu;y;Rh3J=cUvT*vRv-rUGuRc%}4r27&EFS+d z))U}<{c;}ldExwHTUaa4DcIxkKS1eKzni_)Z{GZfF-73~>BBiV4q%hS;ObUb(3CUb zz$&2;iK3TUY~RjYaL+~|#cC3>GWGQVS5Jp>MtMpdqP2=AhGh#=;(O$B4wqo%ud2#8 z{M|eM>iZK;-9v#WPV44Ps5%M)6cu>> zeo)x&y7K0|vGx5rE8cYb)n9^dultd_PWzjEr^-Fq7?0aI)=XWv^JaTbFTcY|r{m&> z=bIbaG#bxHp2?TW)QP`bp0}PpF~oVjq{}RMNBW7xH5s*V)OF~pSr-cBRDvFH_8>LR ze-u`NLEJl#(VNE-siUJ@02MW%>-`Szc4_LXeQmKrl+ z>$dXjl#Yz2o{+Ao8ZXEvfAhRIv_7iTb$d6ADKbGLo1Q|wX6 zR|!{a+S*YrR~G%l^^aeW4s@5c`!70m#!^6a>&aS`c4vOp)$u};=I2Q#+BC}Z^r3fU z)})5vmV_d^)Q_1X+XdC$<*JY+_gqUl^dy>xsfS?I2(N0^f|+Yk!U77mcArsKxAhI8 z(Q#LDB!l=W|FEU0!_}B;r7hA1(VJenGLu0=}NU^lnLvOM#=Im-pP<=MY0h9-o8#f5(ve2 znLLDVic+j^5R>!^-up?;AP@pfsLa!Z(pTK zv!8BD{u{a8bUhAWuc|B|bx+vo#i!nf)nRT@?~XTv_&krB$vfMFIR4n7!#Z9mEZC%(UOJW)BgZ#Nbd#r>7yzIrT+nD zkxs+Z`TxmH?~>+(iw6cz{Rc3*AH%D88OH<^tCJ=?8{j04)x3X=r%(UiwBkR&>I$D_ z+8H%G0HX%}?OGJ684BF7c_cII4%1CWrcwXvFMjmJ7pITKLf=39+kXHYp{-NzWv|D5 zjBgL<*_vG^N9zxTssrjSeuYiW&`B3vyk3v|jd8?9`f({UZqLrdzbHs(_RUq+V8AK& zkm!Pnb-PmbhU%v&D`mf?j7jjBH~LJ60gHX>uPH6B>A2kNN;zfv8m%uzv~gj>7_t+t zJ1sAQEDfYklwBwJoDFs)aMs2yuq1G{$bo|~vcZTeyft&yxKJUlcCn0U*eWYt`$azvn*yfxc0^(dJ7I-GaTa)YbcjpU=^iA|zY+xdF-jQOC<^LAgBL zs6Jh)UYS&XMkFt~`%r?^?#Kx8N_~z5H94xrK4hO`uoh2SwJ`ozwuNje0s1LxE$B2{arLQ?8PA#2H<#zXJL2R=<0&|A30bHS`)eEIvePxJ;o zfqkUHugjW-Ac7$QV~dORk;!?bZKGPPs{KSh+sCW^CyeL#-tQ&{GgF;n1igc6 z!rPfdbgUVdY!QwA6|pPedmum-Yr{Y zO0?s(Yve`zn<=cBH1m(1rnuKYdQ=qUs8%AT) z=Y9~{9&p)m>G^dhwCiUwl=WJz0LE(bOcH~MU!AjM$`?LpgAiBkJcNuyvtXLu*dIAE zq4mTtN~?u{=LxLQgpmwOt!8~5(WvsD{#Kcl*^~WF0{)AoS=Cu(?q70ez^06c|E!J$ zYjO|2zHb{BvYJyVI%0n|uNZe&aO!aVWPS+$$yfpbx9czSM4y%D zde`pOF=|rA(8&&Z(QR(OdOO&9^aH&KoE}ZQ$Jkomrh?AN*H<2*M(Shlxu8|jz}_xz zB=?gxF1x!b22a6Dp^7Dy+it@Tzew4DSr>N6DlIKMm0AUc zKJ)Kkuvn}moq|7HNj3VB>PEPE{l!w|u4ZxH=cf*Qs{C1p-Ip9a8v>4W7}G0tvwFUj z^^pN%>9JojwcJfn?~%xL^In_&yb}M3=kZ%AA5P?gC8JU2I@nSBCG*xO^kNE06XzCI zxX}=dy?aT}=?t3vY!-BPi?E_9)5`;kN-3}|PV zGR(4=p|g=^D+unA6??$zxnpJ~Pj@~;Bu{1`?4-)AmGO26sdYaf^_vB8h@25@yC9ra zW26I!Zb7_L^v92Dbe0cri7h`JjMK2vIX`}??_mP}R&Q^&SJdvS?B(9uIMy7AjGMH_ zB0lGIc0^LcA5TH13?|H5i}FjxK?bU@nTd@dQL(;Hp@tHi@Tpa3F|kL2FZ;Pi)T*>X zDTEyGT@NjBCHmZ%@Z*^h$Q_>n*e7qiBBx|5GI61cO<&&Es`U`~8IVOWeL=;lSw!4e z2TAeG;6W!Jw!Ttab`%(t`nw&|5MOLNV1z~{3;{eW1~exhWC<__J+^7lJ#pLwH&#r}%*I zw$6lwqp!##Mol?*Y67s94AcGBTu#i3zeVswWkh^gz3~#*3~$K|!y$(M$Z zdZG8mi9I|P$3aggGaPD}ysgU|^!Ei00g}g|Hj{^nAWF&dDdw6)m7T>!GtjgIkk%*> zE9^x7wlhZr*YQZ37@;hT{EPD{7NykcwOvX<3+Ja_`!7=j&&r>-lr`wM_903&JtNf? z+=mH2wgj0ZPw57*Jz_;oK6l=ZN{0vO;)|@Ot4*q=$mc4}AbgGZW`isL-C6$NaCxV{ z1y&8wM<_QId-eL$?_zJpZBC@$+vRu20H$zwP&o5LE)QDNhmn+G+~8@3BUS`OAx!t36{?K=n=ntl^08FSvNvFm$bSK<*b5;7iKDNVja6e(~&hvdVu2MAulUf=zX6Ntt zpPKS)TD%yv&Je$FoVE+f7e7*Me%1gd8X5dX*;q_VPuMuCDW*||*Le|=$@~z(iRq)X z5+*1#=F+`NfMwqM|l=+2U~e4f_I3xEOe zhL41-eVrZDOD6RUHR0R%-lYL#tAhGBePNM``-#ih3O7XTE@5b8i;P`o13z9Z`c8KE zBQwSjOY`MK++e-@$E=9jRQN5LiC8C?e9{ zm&+NQo_2f=*8p{ugG$O7%~V!C8TaTL%0otka2hK!A~}eyooQTb8XiW!IFn}*mumqa z2*4a|y`75lu15=ui}%Wgc~xc^mT-mir#t7y7720K`EK_-QZ&yLtZtKlC$r_N4=PoT zp|bD4YErjp)`U?hv_*gYzB^1Zh`BmxEB}sgjL%QN1V|@1=6`oJi2u4|*G@0bHQtl6 z?hdxJ6VV#Rzi|A zMD5I(1?K#t7TLs)tT1m(yE402b$s=!w0wNE)2D2&mN= zZ!9Sw7c)JLxo05E+70zyg`6_L)FOyinK=({v-*Dy9u=9-_524jQa#M#7mNSov4cKR z3y^H~nI{^Yj5&gdt~rZ{5YP?~AIGP@k-a2b9t|ZjYlb-4si4MiB*4 zF5!Kt?it`KYPJYwVG7ts1vVYc1e*)xjoot?z!;7;uM%8cwA1xd{ltxi0Fj$yguA<(Y*O~~q=?15mTo;ROj>ywh?h(J6Ma^0I;`)8 zqn|lJS=`_hC!D9+w~+*sUnxqC@O#WG)0QR-Gz87D8sm);pGZ;dP2I_PQM9$Y`pVsS zAuypv>NQxvyUmo%EW%P8C79snO0-h&2D0!a&0-e9=Q$Et3a;`|GU>R4X&==5Zfvd> zJgaJS2NugCWTPn@_5jgj|f`7NvH_rCfa^K6*~{_0lef&6|!wTqW79 z#Z%9YzAyLrql9U?2c0wVF91AJ3>sO?Ken*7t=!ndt$)uWvyR(2<1C?z43>>o^b(U| zsZJ63J=1&AEDk+DjOGvY1V{dS({c!nBCvS|79r6zL!_S83XnmSH#wTR-xB4r2#}S~ zASkbHPzCmYq_I zg%&4KX%+L$%IjWD^*;d1E-GS~)2W^r@b#?4f`|2K6~O>0*dv!t!9*A5aI z-==hQwEn7eW>mnyh=Ph9p<49FZ6U_OU9&_zMqH=h>btHFZWnJjz$nhq=h5nK3B=@JKCGac$~Cb&laI=!>tV6=Yl>N# zi<>R`0HoW5IhH4t8lZd&l{v7)8Y~V1(^W)3Y5OQ=XpU0&<#rZy2+Em2I~oX?ce2DB zam&&&)P7*aR^|MOax3bJXPmy&+$r`8TNNc`I_}q27JBMwl+B=~A0d|E<4Ls$q=pE) z_k{W>$g$yz#mpDz(i1d6f$}>$@qC+2T%25ZuHg_btR{9~BFUsyYt%<2 zjE0o!_yVa(O{Sj1u?zCTDVaRHZq5nP^Up5>Mgv@ORG5LIh#wj<&0fFkQF3YR3gxX* z(qk%V5xJNSuq-FEQ;f2yP>TFulUiy$gTU!R5(HEoU_>^ViUdp+vk>c!lrkkKuXa9O z2_s%sZB)0QDiRS*$x~rRI%dASiq-<|WZXGQYoR702Q5U4@&wq{tf4Z@mWD)^dl(D* z7`u(DP1PpDMFUmO_6t0zDk(|~^zl)CPZfdS1_q#YUp8#$)iGJvvTS)UmgDu#ayEz6NS%?SxF8FKNX zY|?8=TfTC-+h0)#6*0wK*hQPCrf~dx=>uZW9z&hQA8#;yDZt2I=Q~RfLq2pf^ZdlU zmOL3BEFdSrCb7dV=K*38vAv{IfrAkzaY(MA&Rbz`#So8LqZ zPDU0{DCIt`5L0yfH$zgrn$`2awIb2%pLp!6>H#Qc)3nwbS#+zt&p53L@o-4$lyE`@ z_4k|3{(gJd&bvN3v>i$jwoajHQV7hZ3?>@Lv|5KLV!roVIWP@zxv6}Qp(oz&&1H!| zl+pwcN?0KE{3%5TX|dPU(CoaL4#@G-bnS>XI19*1?v$3L4@R}_ww`J@r$idUO@UcE z^SwnB)$Lc7Y(}n2?akNvZOl%_iCX`A+etuIVg2tEW|{(3EX3x$w5t+k6KgPm(=Ysc z?WDM_4F2LdUe}?Ug;_i+xTuUo!W0xmnVa+AolD}vHxl1bGGD=Ek1aW(XRVD*X@Km; zOj!l0py8^#;ZazQ7%nyn`K7r)7~*Nq4dkAZ6lm5T)!CbG^M)a;#dO2DTU>Nzu@FNL zz_Mw4Fre`$Z4^v_(Kse@F8CCv52L&uw}FeYa~n1b>&r?;GtG@NVAF^CDJnw|flbX{ z=qTXABIn&Tsk2Z+wt>pqP(zBUi8!PL+sz*h{VN7te|WMUo)Ke1Zu^=Y#LV|M;Uj40 zuU97bHem80A3-QNLxO+P(cEb0SJpMs1#<3Jj01p$$hNx5NX3yAdMY_1b_@sQ0YiUs?zOPhTv~g5iw|Jrf^$9 z2z=H|mDvidEp-x6p+J=##=_VQBC#Fc?m;iV{=s7a|4-1()Re4^bF$1jvpqx6yZi`A))6I)XjouToPHI};!pX7}w zaW{seLjtij@rv|^!052Jbl7bS2sswkfd!0FdkW^N`yA-GsZ!eZ9e(2P_xf3-t z@2*6qq_p7(%Ec7p5Y|T;!}<@9k7hXfnG&UrFb|&b8z*H7h)>?o7k*1}S-*zKlP#_E z_n9XKCf(4$SZb%C0nZO6!fmDSOZdwm^)}U#pAd*SS_^!~b;fHsC0!0`Nuw(1yT#ZQ z8-rU^9hpkKR!f>CfRN|)`ON&Oe(4jH)_B_>N|2jsP4VU@lKkP}G2#^GHQ8mFBG{}c zT&O~qIs;>4c#XG7PehzDNA%Z{rLW81Re!TtJzaqA2`3=6UqJZ6IZ)7y>jbSadVKQY z%YOg|O6eaNdT2^cudYo$iU#N*H|ufjr84`e2DGP+Wi(7r>}cHg z@QX~5#lGzjO7#if`mB3ft#$NbpME|s%~!-RU{42I0Yp6jOdaZAndy}20R|+oxa-=x z+qS15DHd+e+UmXK%cwk0iA3HI7sS}N5qYG>jUQrRnsw4gw=7G?YFQ|M6}d>#(R9?r zvJh54C(`H6J1ZxLo1Vm5z&u+XAx-iQ!Pwa^+Ds`m$jN*Uw4p3@lMRUIr33z7bcyj= zjR_>r23+WJ;U)NiX>=G-pSho!2*jCwl??MoFryB9MuX+c%qa(eW0ZBJ81>iM->b5SgBvp zVrLHHz}S|V+TAHC$(iAA;|MBE#ODRu+c4Ej0CZmVk$6~45W7!j7Q?mNfC>sN9KhV= zAFz~nPi}374#EwE@%&$?5?9TfLhqg}41zHOZ!b4nPyS3*jYyLZ#d=F2KXxF3F zmvl6kMx_{!jq&Q_O(A!hS8M=WsS^2>yd1fjnJNN$LwVp&vT-9zIDa?B7-hV2W;clO z`dnl*Mlf+zu&ggAN;77_ztv~mPNN@Fac5l1(wJRENJ1J=83g1LOY*mP1K;(QUO(DS ztZg;71mth%JJogUpC?YWLy5I}53&(Ve$NRUpM5;`Hu~BWufX$5!q90jO zok7GNEzBEnQ(5D6HI7x#foC-@6ML4nelCbrjg>fKscvbJvU%)OY%R&3zxWk#*LR!I z=(a$kf4$$XRd1VaYcb*6de_hi+@N$0V6*@|JW<9`4QzW{D#OJvT^Obemk<#SFOn_r4fYv!n{2b3tzO%fDx8im41|S0))LUHI5I?S;nqU%X@T0D2f~?L-8X~b zzlIW@=UN~K+2G9OvFoMyal}~Vz_xUpt+};WTU9$Kt9{Lasq`Kg;PTz+eGW43^nQQi zJ-T(i)?<14r{qwQt>-UrXjoCw={RR2bK1xZxhniQw^#9*Ci@WcwfC%{^&D~Eg$(lR&r^a zy?ufJ(JBb^eXv>U<9{F+`yQOulvbX(D`FGo<=*kkHmA9-=aPXU$qj=Sy4MujREEFtc~4_0{RLU2Y-UuM zAeAs=(f)HGed1k@n*~=GncuE3*}4kO2ouwF!F~~DuKo|v{?C^>jKwo6s5$#YEUoGg z{Z^afMklUihuV-f&F`NZ?ZV^49JiXP)Akw^!@jl@Sa6SW1!zQLzZpI#MlY2e|K!$A z4E)+IE7vbG-OI0kAI1e&quOc$d-j62#%GsQ1p3q92&Y&>tw)7rS4JqGnKIwQpO8$+ z$wAb)V-gtrlfp`X%y1QP`r4R4EpF#TPbzhK=@MM1AHdyP|DwBu)_X2`laEiS>E~Ku z2Y1_aZV+=6ywa6P{>H6L++dvYt39vXzOqpAn4D7FsWNJavn@||KUPv2wuCOE|L;?a z>U+T|K*yv!0E6|XfD_)t)ufom6znuZjuqmUlHCE;*+4`Qa2@xQAj_f`F#TF|Z|;e^ zF&XpE|Kl`8n`RY%?f>&JzoLVOwloirBxZ)P6uSGOHkGl6`5lm-}I$&ktME$qnnmU)Sdk1cZ^!h;znnpj|Pl9be`w!Kf zZHRMM_|C31<8%=5RJFikeH6b2L4W6k!Pl>|I^$aSyOl&yNIF4+?bvRUOh?Da?K82iejvgA-@hJum655pfsb~}!=rqB z4a5qeS`CeWh1=Emz;r7&o5+Wj9<{3Voe!TvNS#Xi*Sk8<^skz5*>>16MiywpUc#1I z<;&vv9B%<6`VmMg@-%tJVjcA)xD7wQN? zWAI9-*vr_h_G*Q-!%B_th9_a;OQI~b(x+=4EJW+iZ{0qlM%uax!|5x#OT5|52es+>9D#5fz!t_DAp~b! z9zgQBCD^qhPEgOCX(+VBE*w#8Kh4hp{He1ATzRiVrcI<{*N{kOi0eC>8a zlgdX5<=j=xzQhxWyqC5h)CASP^Bj9#yMGK8O0PlHP)>vyh0HQ`S@t`zkCBZ%H83o7 zWoCwWQAjs!(y6}4l?XKOd4>Y-D@-BoCN>|2@9$}T=a6eM*n9&0jJq;Ip%_f~ar%)% zBo`JLg{-tqXP1t@R{dRAhXbX;6h{jO?-64I%Jx}MRgj46Q1O@Vbp-n(oG!#H$W>Q1HHyNaLu~6 z4jwIR(G7^WgYt8IA0^_Ec!Huz@-|!v{1WsMZw8;W^t%I-pL6zUoP^(HuysshI&Joh zSZA6Gp#%$$X&I)&iZ#9lkO#aUzYdsO4a6O+s&xj1+|XICq?5kfCb(Q}C}%nuFJd7$ zi(h|AUfO^WeFL3%iu?Xi8`X?6*An<9$p%of9LBa?Xois=9plu<<@)D&%)!`vRezz7 z&i(i1$PZZaZnZXe*YHpW9o#M{-xJ<}$@1}Xn9@l_*YQDHbtyc~XTv<# z$eXjck#-pzTGDJF{YsbtnC=pxY!=cZhDZ){c?cbhE_dA|=n|K24`3yB%4Y#0qOG=G0OJoNOl5jl8jykt?yJ@AnsBwdJti_~Xg*Z*Dh9qdj(f zy>qgbNpy>!0~#rBHeIKGp3;MeK?w~7wKK*gIK);|q?my^5i$TAj}AHA=PiJiB}3H% z7Aqp9qf6gPf}OfGSj+U=OveH0$dPyWu|S#gW~su@m|RE&JcFmYL%LeKs@fAGKzDb? zkRN}xM<~LgOx_x&B3@$ot7#bPT$YeA1qhr%iG`p`$hQEgjFvx!p)=B2||0 z94ua{8`WoF?ppQ)Ru3z0bZ!@yH$}ByBim)2cE_fCxlBB`0)+gdUNFU>Gd=I_KaH!} z>jrY1NN8ERi5GqhZEE6=>rz?3$WL!Ug~BTqHqu%eJ$Z=XZqdG!@t~U`!)sqV2DADT z0!)~~1_I%L=44N@5r~uID3QUqMIvlwqWUJSthWQ3A&#;s!)|`*3du6m`g|?Jz0Jdv z2D1P~W=88C3;e*+qe7;V2FQ;2dlZiE;5nafRdWSFN6PeYc3Fa!9_ z1fFvjaMjbx^&Sgq-ur%~*Xc3xYx>enKxb(%YaCwsfe5LKKLgO8-Hm*>xcoQ(gZ? zYg=&Im{vAUQ&2^M=Czr{DjiZP|pZM0S12bYGC1CR$#Y6~aXbMA(n zt6g)dR0F8Xu|M0@<@jBC2#fYy;GVmdlUG-(BcB4y->fb;cXS6QRMObEprw~1Sn8k+ zf+ou8p3zfe@6p8J8mxj|zSYRwRi(FK%0#%s0$ng&L3T18SGjt0^9018A6Q4;B%Z5t zDZ9n;{kEP$+S<9M1*bIoj8|@BV1AC36W^TspIHhP>HyCTRmk7J{U#zBBt7k|xjZo|&lMs0OGw`_ z8hN$-maIbqgA&4Z6ZKq2KDD3+6ZG}Q}HqsCrGz;gp)#~7rYsOebMP^c;%A0cII z4{avEF~%-`r6f01y1(6=gL6PR{*#WB*=vsGI;gh};>_${W(tkNT9?Jv=U-1Ay2UwmnuVs;LrGTEB#MC^#1OjWxxrm%nMMtC5 zjBoA-2q^?Wx&@L0wc_BOvE07aK?2MtC?3B^*Vkx-Xwqc%YchVtkj*$o(T2H1wM+5ncsYoir2yUm8dUqXhuV-2Ugn1h;jtYFlrN3OmkMs8dzSE zlJPR&M}?7D!>e*Td_3VT=$_~-^sPpOHH~8hiatG=kWEm^cw_gnnqOqp++h95{K=q3 zh(YM~=KJfy=JQ!up2|d}8!IE3 z(gNswR#O4Gu0+JfS8Jw@MPzxJC(}i#fw2@?k~h;pEPW0OZM!LE96)C&VQ!{))F_iH;VOVH@#Z;#WNg}aaIL3|&eIGbB;POdEvg2t(-xt<$;!1l{+w!}ot+ z^S6zhQ=@@6=dh+|A`;!*Y`6b7Ea8hig{|88e z>T|L*KU{M+g}auRYb9xc``VWNEW0h1Y64h2qr@_RSJ+`0E2~SyYWPSqOaRU#lCjCA z5n#dKMMC|sM*P0}$2Q+^Rh%^DDB1RMM8rHRcsc@>i*ItWY&laazICAJaZF9V3%&Z# z0lmlUzLu3&xDfpJT<$zxb_aq@kR;7{NaO_%jE8>TLX%b09~=@bXq8&nx>%3MrnMKV z5JbHW2^?zVE&}`^HOr#!o;#-nDqKC)W(QW7V(^qq9Wc~*~a|I#`FVpG3LBGMVn8-Wk zSh%ei772r~dsGh3T~-nqPrhDmk?3tOU#^zno>HV~-!T`+5jnQKu|@`SojP$G1xXYwWy@Mfr7Pb%9x2@&Q4kh>o5 zKGsfKJZrVIG)zNa!sKtdv7P3cvY?1k5qP2lJ$!NaxO&M6a;=d9%rgsPlnE=x6wu## z{Tjw`H%h|4{XbWUPdrlOXarJ2Y)IyFC*Veu<1^}|P{7~d{1`^!)d#}l%kH!@GMFic z)8_HpOq%8b4DdXbR%{fF#AA^hUf*SLI+d%j3q@{$8o7!U&Y;k7Ey?= zU_}<_n^2Bx?&b!Qw2|Uwz;5wpJgia7tbE0R6Kp;r!wKhqLcYox%lG3&+WaS#HkcC) zC_UG=#;l?>_X%DrDkqGz-V%1k789)WiQQre0k+;=GgJxZtAw$8m)(JQGM5eRX|qOz zbBouhgPUkhrY((?hv_g#t#W^1REmZO$TY08dU0U!z!X>LSgRV6E)0Tuy1zdGEK#P+ zpi!g2^u7IvW)Z)5X`0NE;$XsBVH9iW4p7H)&WmpIA~aSydallGkjI|=1fPm8GSL29 z91Iybk>A&bC*r0C_0Cax7qfeD$oX7e!u`R(Iz9adA^&@Sno*nCksg`*fB^{U( zVY?>}(-|5vHQ_2tfwxQEY_D5hVg=3$6qjqW9w`3OKbpzJ(k6q?WO7X;PIofHj88z$ zczg5}W<|jKFCR=i_6IcxIQ$dA^kjU5NxH-~QqnK-A&rJ{I9oGI6J+_prpo!v=E}yVU$H zzYC_%sFxk}=@BhKz`3!+Aze9t{oRj~nA^0~PZx0O3R#uHm6b+g3@*vP`c5Fac5#Vc zc8*~0*NfDis4;vx*)A&ar>X>mIK(-3-kxv&LPdy8kzM>J9kl5-N~fqH+HjEDOoK{ohx4Q9<*Dvz6_8g@b8f=#N&NOz2 z5BwWX=Wfe-In6*u>D-M$iF@*of@>_uj(NT&+_%gn5Cnp-OzQ)knyKTq5?a^dfJ5<`3{>CqgMN$ zN5WmWr!dkayM%^X0ODxKdQM*-1R9xagVmXa5sh2_DXujGvJm+ne4SqYh%?omnDGjx zitIX>-P{f@5ogKb&{1pBFtu53a3DTgm?=cQ55PQ5G*)=l66aBpt((@~c%B10sj!@Y z`8)99R^hD@Vp6MiHv&1_-;e3Q?zuWc8iVWd1lgnp#3p;uTON31cp^%0m;>pebm5(a z-Ip$|iy*7Tmdsq}c>2ZgU6zJtBRWzp>8+<0gyk@o9FFBc9 zrXIOAAjx1TEagiK8F4uT0zZ1C9JMb85$$5XRVQ4>t*g!RWOdZ#*w2;VY7GVeDsIKe zEAT{UwK5H&3uBLbHz=LD9`{1PX0xm`3($TrciG~PRO?wcs=AZfOMup9YEVUG_W3QVMRSso!Cj z3ns)M$!a@HzunxPhRD;4M$Mtk#GJ%zicHp@$@Xhp#>t87#Uyj`v!6H>`kM|;R~o`J z)N&*&o2rx+Gj__Enpz*`TAxqnHuFArg>?P6+HQF}qOT8gfHwWg?JQpGC6X@?{v-8W zhyQoXU3hnnv>pCO73bJxTihvb&t{1Wu>- zJ6{mrr%P>ab#Dp<=9^zY$(r)D%dO5D_M_1X8@isvHBXK6e_I2DnFoTN>hgEj9oKQW zS=!yD*bT%~S@Y%?D`1)D_u9BUT9H-q`8~7hB<$h6m_&~H;U}Svy_$#eFN3$aqKq4& z?CZvpUfKNX3Cjvg3 zyB1P6O@0p@e`?-j0)*E{e!t)JCU5qZ?_fWgyA;khodw;eTgQQtpswTILZ1AiJ-TEN zFOo+pjqipaKKH&dGh^oX0mBMJhjoZMSELV| z>kh7zo2GY{@t=$oXW?}dbM|<}Sx1}I4x0849{YFjWP)>!MD)iH#z**TBbj2N+MLa6 zPqE+rv*WvcE=#0^egobli36t5x{{pU(=Q)yqBq0S;7!qvIll~#gI;*y3 z(x_g$P5FZd4ddWGlJgo2;zA4lctC7Uu7wn(b;>ixZQL^C;Ek+{9HIp+WOJC6`{Z9m z_X6|&K>vt*SsLYHA2zv*_I?T+Ar@YlPYu#;SDQy}eIn6DWY3AMPFDAvQdqjrmQhTXgGllf!u|)xKsdja zxm9Y^g#|Sjs!{}kLGQlXe%YUbeXj6c8N{j7%G#ew7%4M>d?lD!EIn)f`~LuXEK=yvX>BGVMeD%Rk@y{{YLbb1|A=#23~Vm^%UC8e|B!Se|1OM63%K z`TBi%iNF$06^IPO=>Gs<03++@5={}w1MmJ=%bXPRZmP|!gmg*qR4Y*#l}RK>3Q5#J zf-ZK%g$pTz1cMNIf*||PUvS2Yeh{@f_1AtZ^pGxuCZF+(^2;&Qyy3!6pzR$*xW%W4 zD;9$zr(o-wIeCM+$kKTiV7RV+iuUg;v~nwyPTp}W%e6|i25ALq)J0)SyGEycx;R;> zcOhC9NcUg18Z;h{*&TYVnD1(Rkal54g+hQPV~NvIt(YB|Ng7Ciefy}>r;Gr3yF8Cx zcnoNcMPDM%HP2p(x#X&$5uqvn08~sw4Wtvdoz3y%$b^sxh!8#=L~Le1v|t&SiYZNz zwg7|cM1B7Na1GF_ujaZ6l?|#T(Pz9f%#jQukcOF#Ll)_PY(caE%46Sov~F<8UjTUY>WC(SPnq?Bc4ZFH0tXhn*tPQ+}~pY-$DijDS%=*$2dH>i{GD>u){eaSY$yp zi6oLp=lL`Rj(>uGwe_=>XGma0?guCW+^v3{1}p^vLF6WFus(eJxr{R-OxYrepq`mD zO1cv^silusCa}8*^zCf2G+-2!<8Y`KflOF6sq3xERAi=UkP=R^1aGl75I3LijpX8) zXQrxE{{RVeEP*5lFg#smEDR2o!+nqOM$6lp#ojkDrQLU^^6=`6PMUozZduHFI9vr6 zn+9nVk@T3G>u)EY6zJ5aX&Q-@QeeT3ksAZO{LV8onS{(iq>i(s62U`AF*}~S2=nQS zKX~n1R{5jxYV?t68%{jhIoSuFPpXYbj%Wx0)#Gp4FBVd7E;@yHg0(~pWn=~bkz#p7 zMf}H*0AXda?^=@!Y9O1>EAkK~4Wj-=_}1R;?YR499WJH~WSWTOA~sh=6RS0HF#^>& z3=P-|_w9Cgo70}|jg^3ClGlJ_mL!el1-;RUvO&hCDnhZ-%XK74^1m-Wn8f=1#4D{b zusMlKoUbJTKpdM~eyD`1$M&ANjLj#mvZX;2?N1}n0y$e7lwDMU0RV^`?;`g-MB+8K z2qk7`L4r5^8ba>2o}nHQAWrygwZw@fDg(&K3r4IE8Xu%m>B#;F1r7e2!~OxDc%y&kE_FDpbdyI&i??u1o#X>=|0$L zxwhNEHtCG<+uP((>EnGH%c=queMrndjz(YFSR8Rzzs?@k?oU3RW^G0?K<>mIPE3!8kYemSnPe8i0)fAGT^?H_Ix7m@+QDEKRG7Gn zM=O0rS5>_xt~AsL4v$RA%F5D-J=~KPDvCajDpXlhPyBU*n9ND<8k->lPL+rq0KZM{ zeGWD9)X^-`>v9W5tCKV4N$PEA#TRtlq%)Y6^FV&X#+g!vK%lrF1}DfJV^;#Gb&9}h z0X!i$=QC?>%=3@i8UP*1xR~@i^z-=Qqa@3lz59o>RVW3Lz&0S3%oZ*QCX+8!$Of%e z`;AN|NR$Mb*aE=(EIrYSv{Z$Yvl*V2=l!rAsuhsDlEkIYzDAit<3XtrNA5POT$Uw^ zYis}dGEF;8ueKkNYw(&%^M>T zlchMYmf;nYfI_)vA*ro-6zWqyc&QqKcWX^LHjfKEPI{~Y?`e~;5+y}rs9Y1EdhO?F zQ#+B*6>Z8Xw5v4cXxc>|r9}PWNDSri$QumHV%bnJ1QR_Y+?66~=?2v{k_d}TfigBT z@xxYBbt|oP0zo20tX3_sze0S*0nlsVLi1v!tyWdaHdhX+&Z?HmBU1GbKJ30X0_b!! zc!RYPr~4dLr!0!HK47Dt?T_E|) z5r3)o<5<2;-5yw;Xk=|>rcGR0ttcd{n{-itvq%al1}ttr8wDiWIxQjVq$aD-yA5jW zfW(gpAxO60sP)G!nbA(OLt4X2kOjqz3EO^i@4mBZwX*62`i#WSC^p7Y%y$*?lFzE(DginVmkJf5F=ovlSsr1TIL@7R378>?C}!zQNj~lYY{?L1oq? z@<`7r&m2NyO92tM8fIAFMRzW;Ni>0&DE&NrYq4A|g=fpM1*uuJRI2q5GO0ohI3yFX zX;>V$$C~z+KbQ$pl~2Q_n#C}#!G@#ah>6&4Na+~cG2~cPU82cA45^8PPS!Gsm;eia zTCpSr!uSDwmrX|vR3fRQgS)1pDEGt!daMW%3X2FJZWJ4zG%cx`WSOyRlBcORH~u*Q z0h&h37|03|vqfYk9ekxnFuHwFoq>+2ru z53<+fZ|*pVl*R@UVj4qHfgy=XVsZ-Uki|eX<6sK@-a%kXq_lwtNLl5i9luS-Oe&r* zBayuR+y0n{nXh9${cy~{ zDLWb5?em|~`)_;?Bd}QIiDX42BLd85kf5TWLI9NDz%$~Zjuxc>mZ@rENr5B4jdDS= z6JzIj+BS?*hF=w=dB*nX=Z-YZs353D)Vrsdh?AFvo;czz)gcjLvN<7a0NIsNokFzx zsZe|}7f6x=S2og5>m)!dayt&d{qGitVk;=boIKi6V^QTh?YR5!IQB9#y072B5@e{!HIYy zjy*hcVr0z1f=Oi_Sfnbf7F?N_w1@*p>r7Lri&9io?$H?jU?vEQb-u#i3t^Mc21q4fdH4Kk0s$38>5} z+>0ibSDBBAph%dyc<%`i%2j|86$2F-6v>T3%5DMNNE`ZXz7r?`4%HOQ*o`Om_eMKM zP`{aIinc24V5&1Ln3EF8QI?6F*v9G^asZ{Ax|hN=DGIIxkN028b9>BhzdT6j&kY6& z-fghI>xQJ%ODr--RYeuJ=8pj8BBZo$8mPi3@j?FZmTHqC6cBFgm6!ZTVKD(j4-AXj ztWTZ>kTnt2L5b7K&~NMI^W}uYs%Ke|Q2{9*y9FYdfxWd^ z{{Rk${VD$dw;6-XWGgCR1~MbF#AHxp0+EzR&BrYBM1q0}2iOBE_eLrB{pk!zqy>aA+JDVL|J zBm!q?+hOZ_4!h!H8tUCaE(r}55w!Ukk|(6%;kOA1ieMSU%zt1)EVW1E76?RKfmrA+ zGyz)b5XINLiB=khsUf3%M$!yHkIG_B_#z6OEdi9=4S^RC&!#SM>J^8GM;bcHrr^pp zc0wfppV|~7#tNuEv@$UV9+)T~u(2duSf#Fsye{OA6~OUza7a?NI+!${XhonAurnk< zlNSRPeJr#E7IG8y1c;^>{D4XilE2<3jer?cstYb8wG-2omjhh;C2yof#Ezue{*yQc zLckUNtviV2KK@vfigqSEg1Z9kTB5TL4LAT0NvJ2th2LO& zAWUzxVr61K4g!8w{-=Q+6F)eM;$kUU)R!wDRyN_<6az02`z$?M5Uh*~GP-~Z(`#2o z19V+e1QK=tlep+CZN3^Bm~QM(c>&~10AxnQc)8yanpr_{iU3H!HN;7BrKH9%RN}=( zX4irU`lb@>plO1t13b)tWZL7VB2_3L*vYZpPcN(DatT+|oRp%HzDW4>AUGzS33kUM z07wWq5TFAijY>egfJeyx0GuUIq#fgt+xEo%&$xbCW|38W-F(Wje%S(yO#%f-N`+z+ zqPY$Iy3NkzYSg1N<(Uq!3=ja^ThLhU1+ix@R8y-g7eh>+=`&~-w)45L#kX+oA1Q4- zF{rfz%JdOHIe{yKiwxTW(IUB^xMFXvDzysgj9H3+!)34~w%=lYqa7|zwIwD@5V9L^ zSdajS+xO>aIQLho27e>eh+3S;)&*6T3NuseQqhXK03Y^*IC+Kz>MQtwd$3cal1P9$ z{Z2ONp7B8*{*pHz9C!Y698tfJn^aL7nL;?n>o8Awe4%+l{Z_<8iOvtaLNmxrGh|5Ve8ce;y*XlS7#cvaJ zT@?it^9n@xbhJ!eZ_vn}E8uEYYG~A%4y8i2u`nWHZ$I06V<=BQ<@Wd^eMVAv;xj#i zgX4&Z5=>|=m5F6w2Ohs#HEL6)th!8_YPpg~BbO`u`3zE`jLgMA($LX9AY=jwHtK(z zW4PptS*)EUW>ku$XNwgC=AIcv0RI4}6v>K%n#<@F04E}dQ(h{&I>}%Q0EcUt8;(MK zB*4Y$=)#_q5T(@e60sT%nlq_&8_iU9y8+SC zMI)FYA10fb7Uf3ZV!!B3VmZn;vFFk+H%{Dr#eQG2s-kG7??c zo5~qvh(s}dZt^1-$vg!eN~+pb>FZSR>(W3HcNjsi6shIHD5MP(1;i;P z1+^XILmx19$DEw2y=u@Pt3NPpGIsOl>JKbjX5XX7PKiJ2&QPcsN@#|;3W5$_ZC^}4 z052rPn9YK~!<5ni(9kAL!MNvsc8KSLr9qX8F@=i>6Xz#r#y;*nTAC4-$PEZT)&XCJ*46T3}KD<#yp1*8=qgEkTXCTAT6RU(>#1FFGi761?omAQc+ zGfYpz5jstxT}G}b4G7tkN)Z5Nc!@7nWm$;@7dGG(0g39Po7-T}Ae9+~JH}Z$oZZnXh8Vdn>!QxbE3X7;q zm^U$Kjg7>7`CA*DJ;Z1|egMhe-P85N?v5!^ILxd>i)y8bA(R>!D_A4}h-U?WA5~pt zeavO)GY8b*f~&mhAT;x^n1~kUF{(2%;Tq~eCrE~n2?9^2PhMCxq{W%ZL|=UH;dx#q zHEns1Pyob(N*0Gv1~GjlsjzVqDqz@|=zO_M3{Tz`Wm<4V3Dh>`R5PqogIUe7|4xph?R3Te7<005wE zJ07R@#zTY{NKQk3;gAfq^wg!jZEO%Il6b%4xuaE;KxXkuktSGNSOWx&H<|s$IXaV2 z6UqR!k0W!=@v!BEh?Z>c*zn2%s9Ge41Y>-TD3ZTqR~>FHZnYXfh6H$l)HMjVn*8nV z#1({Tk+hx6*bT1&#^w(Ap3&%992sL$K?+nb3yQ)#UhoUY~52ijzZw(&F4}HCm7+`7EJI)iRXcp<_9}yR|gd z%ykRfAHCo3<;QrB6#FOpKH~gg>1Okp{>SBpX~thKm7!9dUK#fyYGpF1M=wf^DpVEe z)1gX@G_9_oQzT=5zXel#nFry9P49f#TXXDw-_ZU%yC>t_o*A~y1e=!qxoo|Ux%aPj zZc=M?v9fA3T8M{j=++$^Of+q*jwKQ_{!cgKZN!r@nX1`pnXb-ecmgL3t5-KiFGnH9 zb37X?+*+#9eK9yGTCay(yosp`&!I)WxIV#hvaJi0Qc3H;~!yM zYqY#Vps!Rv3E>=XwAl{K@N9)FwIa0_KTe)&it!Nc5i71;>&zyaZ^)bf0CjKQD)%44 zn+~mF+`dBjH($2w`#k!Px<1<7^?xUK7M=|v>Ypt>hCP0+eZF1WT?yw)riw}AI#?N- z&p5%alx*pJDZ_H~^6#9>Jyc|B%ahC02~RZ4LoFbrec&?Ft_%=4ZuSn31ggYb-(XtctZW~lMr5yN{q+RWu)!qq5$rS`I#*Wl)!Wht#{*`}ey zDW-2K??`0oYorRMU%OvK{{RR700{iK@=wFv(W~tp!)ep$yH|XdZ%t0CxLaq`$)lTY zUE@)uSNxRG>k+YzM`Jda0SqWy$C(woIoaOOcC)kns?2t2vKe3W%CuUwP9el{yfwvl z;hDVSrbJW$b2*RuzMz7zWl}*6ARhtyd;3BAJnScLcm_kY864(%zZ&55YtvdB9e9${ zbEtmD^!QSBEI;*|JZT<;KXyr&S(Wj_&#T2$#%S}#P?WhqZBRf|+ap-?HSsen}h zamx0$hh!-X{{Y-Frk+)@*?Pe=8bG_dKZzDKIMQcaur@P~Tz?OS>Ilb31({4-S|az2`r!~oju0G{0MH-L{l8!PKfnC? zilaMb3hGdl)mYk07&9|*JqO1Hq-g|9nE3oXaoV-97x&2H_#GWOpjIedTf(FT2lE(` zXJZ!k;fR1b-hD)UdSTA3;Bn5D76sI`Vn2`P{XY5Py5%_iXjBeB1TyV!Xm7u}mt0Lm zOMDOO`{FsA47mrIAJ5sYe*XaH&p+Rc7_fCRbrH-?_TQJSueL6#%p3Win2vu| zIAMtb`2PUk{{WSBftjos8XHcM7`D~}ru@eKxRee<>*I*&wD8NRk5wXn(jkUeVURNn zVw}d(t`=3ZXrr>gmB-f`Yvi+aXyz)mVyz+HQ=?lgMzoLyUa_Xt5tCFB%}q>@N|6g| z8vvC?K*TE*BwKZuAjFOE+>LmF&+>Vz2tqJl*y%Vh~$Vp=+^~VToDCsSw!Dy8)HL12)f-K*WMqEJr=83 z6kZR-=XuY1twIS2+`B`wbwRy|B)hgCA`j_WzPyjJx$YmqYxc(_Uo}pXRqb|s(p<%V z$E#YsI(3vPl{ISu?EV@FP=N~2K%aN}S*2Sw!am0HH0e)!_D#ZR>7;}w{nv|e8UTTK zuo{UlTI0)hJgyY00YsY=I5aQleg6R4&3)Hig1O;L1W*c?I=O>Bf5gGtmOPKUQqlwv z1Y55;nCE!+P8N^DsV5)pT>WxK_BH*8fI7NB`LRf#aNY)g+s|EWC-auBjQS= z!R01>KCSNaoC}!}a2x*snd6g07OSu4fqW17^}Us<{p7}>tf5upr0?ng8~*@fHaQ^F zEc!C7ry6v5e==l88i&d{glXMaDmR-9#F4s`u!J{V2Yf|*yP;H}O^qzV)DuvM42GM^ zfJ+bzshEosc-u~j&>5>5YAAriyBC+%2$q$YAcN#^c2Q(Y3zgJ4uxjjEA+MrM5kOhL z=dPnCnM74>I$UUCe9ro|+T6+BaST)<6p(_z5+(pJ2;3Wb+sh2<8a5$ng8u+b0x#@; zr`f&<7gj&Ekm5mDnysl!1qRU8i5BHQ9=MW zXZf$^`0D*0BTQ3ZnoUL|MB7cdlVcdrq^wAg2)|C9Jil&ug4O9})fX!`z);LB6>2w< zH||ec$qBlmwmQ+vEezcjE0`t3PMS^%_=hqsMfL~djXb_$og@lU`x&@{<~j1Y=VKF$ zGx8qOxNaI}(5ya0(ZagN)ue1ASe8yhKkQtrs}=zx{l!=d7PM7Lpey&ZNZg@EQZ|{1 zo6Wgf7SvH{a-<{FB&a3BLFgA!-+qJl#rh0@ z5?IXJSEc^FP5{(t@kX^y8Ow?#o-jCY^kfRfat@#sj4oGJb2BtzonTq{yhwluGq8=e z9_!;ygK7&9L2WWR2>IO4r$LI_>JE}qfuQA7s6sK!+zRa1=@C-TU^gc4%+TC+u>sziX&!_>g}Y#j7}bx zi*O5ozr3#^$g$SH56{z7Qo(f+bt_x~AczO1`<`(;vvYZJDlk(s24oSx_Qmc_KOuwjdjLJFoVQNxF}^u=6pXFEGh-BPJgt_&z?2AZAq0KhpXYa0mj zHmKB6sZ3e{1a1f$Nw@jxV-ecf3_*w>6KPCXN-)n zQy+}TFk)S8@z%0l8{f-tzu!_<$L({2Z0FM-lNi(oMU&az8MX?TtR=b!IXOR*& z^Ek(y&8|&SMv(~x-b^EvR1mm_TtczLE16ku%n_)T7t|~@g`lds!)mAk><9wJZ_xCP zm&BDsNOUJuX=UG3?c@w}HYd{eM=HR z=^=VmVSv(VDQNbNjY=)cdA#|=97e53DGd978Az5=AP@|QgKJ1Xq*nLdALlz>p?~Q5 zb&hyh);DIFa)a2cffj^pDn(TeSlY7?Yfmpz?)AuYWphlCCdFzPH;v$UM=yj|t53b9 zP*E^dXH#8R8(P9IxtM{<_`@B=zE7f!r||w~^6@HBozit!2$pgyiXgN%XcAOqN~<+aKS+KL4=L}04TYWbITYI zMLfEVOoBClYMy0ypqRUW(>li_NHPL8LSuVh=&%C<%hT}OojTc&)lq`gyR!IpQbwB? z@d!3EIOlklbMEw9A^cU-rgqdw1Zj~z8H4;BXWrCJw`|)s?MBt6hAqK~8phN+vxf$V zfVvW*Y>y<=PRks0Jx{jqR?6hEnN-QsRc5tTbu3FrP-JPoK zL2`OQ_zPk;u=kF?x7WTf6z?(zdo0Tuf|QjT3d%C3hYU~ZGh)a{B!D_bd^H;4pd^DO zOUVEg=mc~0IE?^pW?-wpVeNY$n~~JVziAkZnV7aL(Hul}@)pHQE+tg}R}(9@Epk#C z#;+0$0P9c`YDgPu7Sm&4aeaW?;T1cr;&tlZ)L4G^+Yx%ghnXby29!I7X_)?;e1aDX zFKQIIx>JF^iCImSo{MiYB7eM|xQ&1!<~~=y$LL}bZB$6lkc=3D5pGJTXGOO(aSRfS zXa+&8%AP@~xdl{>N-iYBZ~92&4&aPIR2>=^$iC7n-m|wO5$nt_^1MXI*sDPKu_XPJ~B$UP@{+#XmJI-rkbq7ONn{4IWRaRn}^gU>9D zld`PODHY?0Abg534eaVvsgo6%0y_&9L0OE&n!Bre!#%(CU(=QYyed**gK8Qg>OnUX z%z?BW&s+rtsb?RVk|@y9v4{gKPZGtLDwv4nKpZlbaHdCg4E{GziV(VGyUq2f(y`J^ z!L|C#3&_Fs<9o~s3*c;M~H4Y+u}U%brqeI)TqTK3azw=+;7v7 z_h9WVsvN1@9WbShrCC!oQWn{i#?koTBsr#xMgwGwT$>07iBXk~qpP4WB~L;vAly%( z!ng|#i$n>J zOIrp$2Go2Yu#h=I`osu0y9^>K29afgZOmkP6!mX#I>yVVj#!e) z$&m4@sAY(N%B&2YM*T%2?<;4jLZPbTRYr|KMv-yKz;u8k(Bn+VI~a}s0B^772I*um zL`F0qFV8a0+%#r~B?rr&J*_&)e4q2ngj6$RqvH0nhMu|p9<(OLm_s!%8 zv-^4_rQSHYrh*HTVS4~=d+oepCTEq>`c_Wz7+aZ+x7_lKOlgRq;YoK0pt6FYfuP_C zFX%C^*hVDX@W`T>eQvcC2|8B#iM`BwBH}r6>xW%r!xCAGN0^&m<;wV%@~fyZuz4;^ zG*~p3V$Ff$Hu&RU4 zw)a@2c#JxYPbUY{$52Sm>yonuEL$oZD`Yw1k6adWhE=0k(?gmS9a)dH;*+3;nH=`t zV}1JEo_jA=lGSn+r~J(T#Es&^pFgRA)a<*4i&^s1w`FLqT60R)myJ(yeF8=bdl=Mt?XYD!2iECWTo#b=kP!M(FSw@11> z(8Q{ma-&ja7{*X$>E?81q7<{L7`bc|n%St-pJc>p z(m*@hZ8tp!o%a~DZ(9A&QnF0Wq85wR44e9-1!Y!DIraoAvXo4i-QQ8>im?o@s#-_} z%3>qW`NL&VS%E6X@e9t=C$CG$^u+`G-c37d<%&Q0G!^ELJfud=RU9T%M>zyvAXOi? z?(*L{z`WMhw!nRMm7vQ;4D8LK8jEZ0$}IeN!T)nY?TRE z+t{H|8~XrpD$ZE=$L1TYSd6nW4yEloK(K0IjLUS!1BY8MRT{A|dK&*jDLWU`VB+IRV z78cS@_{MH2TCQ30^v;@rq|}lN4^ex`i{G81c5Y3o1cn(%7rV4>o+ujQfV*(0wMsh_Kb7u=YJtJDb^Sva=(-SW_pIP z7{=NS-}9Q0B#4g7yV`pXv z&a5*sxF2}sN?w!&0Y^P%(yKJtK~UZ6va?R0h8PR-7XV1~#-h_==wi~+V`4?8>IMaA z`QS##{?6-urcWZd@q#fx*m57$mykzTnVizCTFPFWkh)4pm;@PsCj9U2-y0cxxL9&8 zu-krfd)~*Vme@Z_1CS)LBl;|%abmn2MS_d<@5V%Ov`1XtZ!i>)DoYtrE^n)1ZFnZ* zCEVs2E$rr0yVUk<2fYk8l^or%Z?fo^r{uwYqWt0O*lxcmDt()Bgae zRNuV?CJK(Tb=#5a@x~oyV$E+1SowSH>IatCk%QIC0II7%oOo_UsT^N5^mzOJIzxzp z0}U#nfGhwJBy$n)|dBYaAa8u-eAfHvG+lVpZvAb%ueLH-8= zjk*J-{D4G4PcmR0R{vPnZ_z>4)J)H29SYXxBDR)${xj zXZgD0u8nw=Dw%Luyi7KdZa|)-K^*-&u^m<#bj*_now^OWZRHr9h5T`-W?-#q7!t?% z;*Zk*0IhwfGzqS&SF8U3EWDMpC?pjo<5WiD{{W^O&N6FL)?NXdk^lgEJdAYZ&SM14 zD0rog8KjO!R*fW7R`JT}QaOq_RGYⓈSJ@QWRB^k(i9!#adxAH0jl9bt)r;VA9l? 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ϔ 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 NG6UJQmWp>m5c{6Lg82}X(AaUc!woOC`fUU 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 z%0AZH}p(ppJ7R-;AfG&EW4L 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

IUFh?N9<)W-) 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

  • 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 X>woHR`j7LC{{XvX{{Zll;gA2>G8Odh From d66e11c9cefb02139d3bb2456f39dc1c218284ed Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 00:38:04 -0400 Subject: [PATCH 26/34] Update documentation --- jetforce/tls.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jetforce/tls.py b/jetforce/tls.py index ca801a4..9db0ae8 100644 --- a/jetforce/tls.py +++ b/jetforce/tls.py @@ -120,6 +120,7 @@ class GeminiCertificateOptions(CertificateOptions): Callback used by OpenSSL for ALPN support. Return the first matching protocol in our list of acceptable values. + This is not currently being used but I may want to add support later. """ for p in self._acceptableProtocols: if p in protocols: @@ -133,7 +134,8 @@ class GeminiCertificateOptions(CertificateOptions): We can inspect the servername requested by the client using conn.get_servername(), and attach an appropriate context using - conn.set_context(new_context). + conn.set_context(new_context). This is not currently being used but + I want to add support in the future. """ pass From 46a39012c7bef22e72bb2b0c6fbd9001f32d4429 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 00:59:47 -0400 Subject: [PATCH 27/34] Update README.md --- README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e2e9990..37fd5a6 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,10 @@ Learn more about Gemini [here](https://gopher.commons.host/gopher://zaibatsu.cir ## Features -- A built-in static file server with support for gemini directories and - CGI scripts. -- Lightweight, single-file framework with zero external dependencies. -- Modern python codebase with type hinting and black style formatting. -- Supports concurrent connections using an asynchronous event loop. -- Extendable components that loosely implement the [WSGI](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface) - server/application pattern. +- A built-in static file server with support for gemini directories and CGI scripts. +- An extendable application framework that loosely mimics the [WSGI](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface) interface. +- A lean, modern python codebase with type hints and black formatting. +- A solid networking foundation based on the [twisted](https://twistedmatrix.com/trac/) engine. ## Installation From 937e34ba3424ed7f8f7b4c360e711a019eedab3d Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 01:00:56 -0400 Subject: [PATCH 28/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 37fd5a6..feb227a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Jetforce An experimental TCP server for the new, under development Gemini Protocol. -Learn more about Gemini [here](https://gopher.commons.host/gopher://zaibatsu.circumlunar.space/1/~solderpunk/gemini). +Learn more about Gemini [here](https://portal.mozz.us/). ![Rocket Launch](logo.jpg) From dca4ebc4edab54d78734c617e32aafc3ae5f9ad2 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 01:01:46 -0400 Subject: [PATCH 29/34] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index feb227a..e39c83d 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Learn more about Gemini [here](https://portal.mozz.us/). - A built-in static file server with support for gemini directories and CGI scripts. - An extendable application framework that loosely mimics the [WSGI](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface) interface. - A lean, modern python codebase with type hints and black formatting. -- A solid networking foundation based on the [twisted](https://twistedmatrix.com/trac/) engine. +- A solid networking foundation built on top of the [twisted](https://twistedmatrix.com/trac/) engine. ## Installation From ee9efd3f5f514d2e61709045abb80eee6fa01169 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 01:14:44 -0400 Subject: [PATCH 30/34] Tidy up client code --- jetforce_client.py | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/jetforce_client.py b/jetforce_client.py index d8b2282..8d5b977 100755 --- a/jetforce_client.py +++ b/jetforce_client.py @@ -1,8 +1,6 @@ #!/usr/bin/env python3 """ -A dead-simple gemini client intended to be used for server development and testing. - -./jetforce-client gemini://mozz.us +A very basic gemini client to use for testing server configurations. """ import argparse import socket @@ -22,11 +20,10 @@ def fetch(url, host=None, port=None, use_sni=False): host = host or parsed_url.hostname port = port or parsed_url.port or 1965 - - server_hostname = host if use_sni else None + sni = host if use_sni else None with socket.create_connection((host, port)) as sock: - with context.wrap_socket(sock, server_hostname=server_hostname) as ssock: + with context.wrap_socket(sock, server_hostname=sni) as ssock: ssock.sendall((url + "\r\n").encode()) fp = ssock.makefile("rb", buffering=0) data = fp.read(1024) @@ -38,26 +35,23 @@ def fetch(url, host=None, port=None, use_sni=False): def run_client(): parser = argparse.ArgumentParser(description="A simple gemini client") parser.add_argument("url") + parser.add_argument("--host", help="Server host") + parser.add_argument("--port", help="Server port") + parser.add_argument("--tls-certfile", help="Client certificate") + parser.add_argument("--tls-keyfile", help="Client private key") + parser.add_argument("--tls-alpn-protocol", help="Protocol for ALPN negotiation") parser.add_argument( - "--host", help="Optional server to connect to, will default to the URL" - ) - parser.add_argument( - "--port", help="Optional port to connect to, will default to the URL" - ) - parser.add_argument("--certfile", help="Optional client certificate") - parser.add_argument("--keyfile", help="Optional client key") - parser.add_argument("--alpn-protocol", help="Indicate the protocol using ALPN") - parser.add_argument( - "--use-sni", action="store_true", help="Specify the server hostname via SNI" + "--tls-enable-sni", action="store_true", help="Specify the hostname using SNI" ) args = parser.parse_args() - if args.certfile: - context.load_cert_chain(args.certfile, args.keyfile) - if args.alpn_protocol: - context.set_alpn_protocols([args.alpn_protocol]) + if args.tls_certfile: + context.load_cert_chain(args.tls_certfile, args.tls_keyfile) - fetch(args.url, args.host, args.port, args.use_sni) + if args.tls_alpn_protocol: + context.set_alpn_protocols([args.tls_alpn_protocol]) + + fetch(args.url, args.host, args.port, args.tls_enable_sni) if __name__ == "__main__": From 67c18f2f98292649d6a94e02bc6a397d5cdc476d Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Tue, 19 May 2020 01:43:18 -0400 Subject: [PATCH 31/34] Update README.md --- README.md | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e39c83d..05c12a3 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Learn more about Gemini [here](https://portal.mozz.us/). - A built-in static file server with support for gemini directories and CGI scripts. - An extendable application framework that loosely mimics the [WSGI](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface) interface. - A lean, modern python codebase with type hints and black formatting. -- A solid networking foundation built on top of the [twisted](https://twistedmatrix.com/trac/) engine. +- A solid foundation built on top of the [twisted](https://twistedmatrix.com/trac/) networking engine. ## Installation @@ -22,12 +22,12 @@ The latest release can be installed from [PyPI](https://pypi.org/project/Jetforc $ pip install jetforce ``` -Or, clone the repository and run the script directly: +Or, install from source: ```bash $ git clone https://github.com/michael-lazar/jetforce $ cd jetforce -$ python3 jetforce.py +$ python setup.py install ``` ## Usage @@ -88,30 +88,28 @@ The gemini specification *requires* that all connections be sent over TLS. If you do not provide a TLS certificate file using the ``--tls-certfile`` flag, jetforce will automatically generate a temporary cert for you to use. This is great for making development easier, but before you expose your server to the -public internet you should configure something more permanent. You can generate +public internet you should setup something more permanent. You can generate your own self-signed server certificate, or obtain one from a Certificate Authority like [Let's Encrypt](https://letsencrypt.org). -Here's the OpenSSL command that jetforce uses to generate a self-signed cert: +Here's an example `openssl` command that you can use to generate a self-signed certificate: ``` $ openssl req -newkey rsa:2048 -nodes -keyout {hostname}.key \ -nodes -x509 -out {hostname}.crt -subj "/CN={hostname}" ``` -Jetforce also supports verified client TLS certificates. You can specify your -client CA with the ``--tls-cafile`` or ``--tls-capath`` flags. Verified -connections will have the ``REMOTE_USER`` variable added to their environment, -which contains the client certificate's CN attribute. Instructions on how to -generate TLS client certificates are outside of the scope of this readme, but +Jetforce also supports TLS client certificates (both self-signed and CA verified). +Connections made with a client certificate will have additional metadata included +in the request environment. ``REMOTE_USER`` will contain the subject common name, +and ``TLS_CLIENT_HASH`` will contain a fingerprint that can be used for TOFU pinning. + +You can specify a CA for client validation with the ``--tls-cafile`` or ``--tls-capath`` +flags. Connections validated by the CA will have the ``TLS_CLIENT_VERIFIED`` flag set to +True. Instructions on how to generate CA's are outside of the scope of this readme, but you can find many helpful tutorials [online](https://www.makethenmakeinstall.com/2014/05/ssl-client-authentication-step-by-step/). -There are currently no plans to support unverified (transient) client -certificates. This is due to a technical limitation of the python standard -library's ``ssl`` module, which is described in detail -[here](https://portal.mozz.us/gemini/mozz.us/journal/2019-08-21_transient_tls_certs.gmi). - ### Static Files Jetforce will serve static files in the ``/var/gemini/`` directory: From 8920225b385f003466d25f7fcaff53b5c45bc17c Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 23 May 2020 21:27:17 -0400 Subject: [PATCH 32/34] Remove jetforce-diagnostics script, it have now been moved to a separate repository --- jetforce_diagnostics.py | 721 ---------------------------------------- setup.py | 3 +- 2 files changed, 1 insertion(+), 723 deletions(-) delete mode 100755 jetforce_diagnostics.py diff --git a/jetforce_diagnostics.py b/jetforce_diagnostics.py deleted file mode 100755 index c9624a7..0000000 --- a/jetforce_diagnostics.py +++ /dev/null @@ -1,721 +0,0 @@ -#!/usr/bin/env python3 -""" -A diagnostic tool for gemini servers. - -This program will barrage your server with a series of requests in -an attempt to uncover unexpected behavior. Not all of these checks -adhere strictly to the gemini specification. Some of them are -general best practices, and some trigger undefined behavior. Results -should be taken with a grain of salt and analyzed on their own merit. -""" -import argparse -import contextlib -import datetime -import ipaddress -import socket -import ssl -import sys -import time -import typing - -if sys.version_info < (3, 7): - sys.exit("Fatal Error: script requires Python 3.7+") - -socket.setdefaulttimeout(5) - -# ANSI color codes -A_BOLD = 1 -FG_BLACK = 30 -FG_RED = 31 -FG_GREEN = 32 -FG_YELLOW = 33 -FG_BLUE = 34 -FG_MAGENTA = 35 -FG_CYAN = 36 -FG_WHITE = 37 - - -def colorize(text: str, color: int) -> str: - """ - Colorize text using ANSI escape codes. - """ - if sys.stdout.isatty(): - return f"\033[{color}m{text}\033[0m" - else: - return text - - -def log(text: str, style: str = "normal") -> None: - """ - Print formatted text to stdout with optional styling. - """ - if style == "title": - text = colorize(text, A_BOLD) - if style == "warning": - text = colorize(f" {text}", FG_YELLOW) - elif style == "info": - text = colorize(f" {text}", FG_CYAN) - elif style == "success": - text = colorize(f" ✓ {text}", FG_GREEN) - elif style == "failure": - text = colorize(f" x {text}", FG_RED) - print(text) - - -def log_error(err: Exception) -> None: - """ - Helper method for formatting exceptions as error messages. - """ - if isinstance(err, Warning): - log(str(err), style="warning") - else: - log(str(err), style="failure") - - -class GeminiResponse: - def __init__(self, header): - self.charset: str = "utf-8" - self.header: str = header - self.body: str = "" - self.meta: typing.Optional[str] = None - self.status: typing.Optional[str] = None - self.mime: typing.Optional[str] = None - - -class BaseCheck: - """ - Abstract base class for implementing server checks. - """ - - description: str = "" - - def __init__(self, args: argparse.Namespace): - self.args = args - - def run(self) -> None: - """ - Run the check and log any unhandled exceptions. - """ - log(f"[{self.__class__.__name__}] {self.__doc__}", style="title") - try: - self.check() - except Exception as e: - log_error(e) - log("") - - def check(self) -> None: - raise NotImplemented - - @property - def netloc(self): - if self.args.port == 1965: - return self.args.host - else: - return f"{self.args.host}:{self.args.port}" - - def resolve_host(self, family: socket.AddressFamily) -> tuple: - """ - Retrieve the IP address and connection information for the host. - """ - host = self.args.host - port = self.args.port - type_ = socket.SOCK_STREAM - proto = socket.IPPROTO_TCP - addr_info = socket.getaddrinfo(host, port, family, type_, proto) - if not addr_info: - raise UserWarning(f"No {family} address found for host") - # Gemini IPv6 - return addr_info[0][4] - - @contextlib.contextmanager - def connection( - self, context: typing.Optional[ssl.SSLContext] = None - ) -> ssl.SSLSocket: - """ - Setup an unverified TLS socket connection with the host. - """ - if context is None: - context = ssl.SSLContext(ssl.PROTOCOL_TLS) - context.check_hostname = False - context.verify_mode = ssl.CERT_NONE - with socket.create_connection( - (self.args.host, self.args.port), timeout=5 - ) as sock: - with context.wrap_socket(sock) as ssock: - yield ssock - - def make_request(self, url: str) -> GeminiResponse: - """ - Send the request verbatim to the server and parse the response bytes. - """ - log("Requesting URL") - log(repr(url), style="info") - with self.connection() as sock: - sock.sendall(url.encode(errors="surrogateescape")) - fp = sock.makefile("rb") - header = fp.readline().decode() - - log("Response header") - log(repr(header), style="info") - - response = GeminiResponse(header) - try: - response.status, response.meta = header.strip().split(maxsplit=1) - except ValueError: - return response - - if response.status.startswith("2"): - meta_parts = [part.strip() for part in response.meta.split(";")] - response.mime = meta_parts[0] - for part in meta_parts[1:]: - if part.lower().startswith("charset="): - response.charset = part[8:] - - response.body = fp.read().decode(response.charset) - return response - - def assert_success(self, response: GeminiResponse) -> None: - """ - Helper method to check if a response was successful. - """ - log("Status should return a success code (20 SUCCESS)") - style = "success" if response.status == "20" else "failure" - log(f"Received status of {response.status!r}", style) - - def assert_permanent_failure(self, response: GeminiResponse) -> None: - """ - Helper method to assert that a response returned a permanent. - """ - log("Status should return a failure code (5X PERMANENT FAILURE)") - style = "success" if response.status.startswith("5") else "failure" - log(f"Received status of {response.status!r}", style) - - def assert_proxy_refused(self, response: GeminiResponse) -> None: - """ - Helper method to assert that a response returned a permanent. - """ - log("Status should return a failure code (53 PROXY REQUEST REFUSED)") - style = "success" if response.status == "53" else "failure" - log(f"Received status of {response.status!r}", style) - - def assert_bad_request(self, response: GeminiResponse) -> None: - """ - Helper method to assert that a response returned a permanent. - """ - log("Status should return a failure code (59 BAD REQUEST)") - style = "success" if response.status == "59" else "failure" - log(f"Received status of {response.status!r}", style) - - -class IPv4Address(BaseCheck): - """Establish a connection over an IPv4 address""" - - def check(self): - log(f"Looking up IPv4 address for {self.args.host!r}") - addr = self.resolve_host(socket.AF_INET) - log(f"{addr[0]!r}", style="success") - log(f"Attempting to connect to {addr[0]}:{addr[1]}") - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: - sock.connect(addr) - sock.close() - log(f"Successfully established connection", style="success") - - -class IPv6Address(BaseCheck): - """Establish a connection over an IPv6 address""" - - def check(self) -> None: - log(f"Looking up IPv6 address for {self.args.host!r}") - addr = self.resolve_host(socket.AF_INET6) - if ipaddress.ip_address(addr[0]).ipv4_mapped: - raise UserWarning("Found IPv4-mapped address, skipping check") - log(f"{addr[0]!r}", style="success") - log(f"Attempting to connect to [{addr[0]}]:{addr[1]}") - with socket.socket(socket.AF_INET6, socket.SOCK_STREAM) as sock: - sock.connect(addr) - sock.close() - log(f"Successfully established connection", style="success") - - -class TLSVersion(BaseCheck): - """Server must negotiate at least TLS v1.2, ideally TLS v1.3""" - - def check(self) -> None: - log(f"Checking client library") - log(f"{ssl.OPENSSL_VERSION!r}", style="info") - log("Determining highest supported TLS version") - with self.connection() as sock: - version = sock.version() - if version in ("SSLv2", "SSLv3", "TLSv1", "TLSv1.1"): - log(f"Negotiated {version}", style="failure") - elif version == "TLSv1.2": - log(f"Negotiated {version}", style="warning") - else: - log(f"Negotiated {version}", style="success") - - -class TLSClaims(BaseCheck): - """Certificate claims must be valid""" - - def check(self) -> None: - try: - # $ pip install cryptography - import cryptography - from cryptography.hazmat.backends import default_backend - from cryptography.x509.oid import NameOID, ExtensionOID - except ImportError: - raise UserWarning("cryptography library not installed, skipping check") - - with self.connection() as sock: - # Python refuses to parse a certificate unless the issuer is validated. - # Because many gemini servers use self-signed certs, we need to use - # a third-party library to parse the certs from their binary form. - der_x509 = sock.getpeercert(binary_form=True) - cert = default_backend().load_der_x509_certificate(der_x509) - now = datetime.datetime.utcnow() - - log('Checking "Not Valid Before" timestamp') - style = "success" if cert.not_valid_before <= now else "failure" - log(f"{cert.not_valid_before} UTC", style) - - log('Checking "Not Valid After" timestamp') - style = "success" if cert.not_valid_after >= now else "failure" - log(f"{cert.not_valid_after} UTC", style) - - log("Checking subject claim matches server hostname") - subject = [] - for cn in cert.subject.get_attributes_for_oid(NameOID.COMMON_NAME): - subject.append(("commonName", cn.value)) - - subject_alt_name = [] - try: - ext = cert.extensions.get_extension_for_oid( - ExtensionOID.SUBJECT_ALTERNATIVE_NAME - ) - except cryptography.x509.ExtensionNotFound: - pass - else: - for dns in ext.value.get_values_for_type(cryptography.x509.DNSName): - subject_alt_name.append(("DNS", dns)) - for ip_address in ext.value.get_values_for_type( - cryptography.x509.IPAddress - ): - subject_alt_name.append(("IP Address", ip_address)) - - cert_dict = { - "subject": (tuple(subject),), - "subjectAltName": tuple(subject_alt_name), - } - log(f"{cert_dict!r}", style="info") - ssl.match_hostname(cert_dict, self.args.host) - log(f"Hostname {self.args.host!r} matches claim", style="success") - - -class TLSVerified(BaseCheck): - """Certificate should be self-signed or have a trusted issuer""" - - def check(self) -> None: - log("Connecting over verified SSL socket") - context = ssl.create_default_context() - try: - with socket.create_connection((self.args.host, self.args.port)) as sock: - with context.wrap_socket(sock, server_hostname=self.args.host) as ssock: - ssock.sendall(f"gemini://{self.netloc}\r\n".encode()) - except Exception as e: - if getattr(e, "verify_code", None) == 18: - log("Self-signed TLS certificate detected", style="warning") - else: - raise - else: - log("Established trusted TLS connection", style="success") - - -class TLSRequired(BaseCheck): - """Non-TLS requests should be refused""" - - def check(self) -> None: - log("Sending non-TLS request") - try: - with socket.create_connection((self.args.host, self.args.port)) as sock: - sock.sendall(f"gemini://{self.netloc}\r\n".encode()) - fp = sock.makefile("rb") - header = fp.readline().decode() - if header: - log(f"Received unexpected response {header!r}", style="failure") - else: - log(f"Connection closed by server", style="success") - except Exception as e: - # A connection error is a valid response - log(f"{e!r}", style="success") - - -class ConcurrentConnections(BaseCheck): - """Server should support concurrent connections""" - - def check(self) -> None: - url = f"gemini://{self.netloc}/\r\n" - - log(f"Attempting to establish two connections") - with self.connection() as sock: - log("Opening socket 1", style="info") - sock.send(url[0].encode()) - with self.connection() as sock2: - log("Opening socket 2", style="info") - sock2.sendall(url.encode()) - log("Closing socket 2", style="info") - sock.sendall(url[1:].encode()) - log("Closing socket 1", style="info") - - log(f"Concurrent connections supported", style="success") - - -class Homepage(BaseCheck): - """Request the gemini homepage""" - - def check(self) -> None: - url = f"gemini://{self.netloc}/\r\n" - response = self.make_request(url) - - self.assert_success(response) - - log('Mime type should be "text/gemini"') - style = "success" if response.mime == "text/gemini" else "failure" - log(f"{response.mime!r}", style) - - log('Header should end with "\\r\\n"') - style = "success" if response.header.endswith("\r\n") else "failure" - log(f"{response.header[-2:]!r}", style) - - log("Body should be non-empty") - style = "success" if response.body else "failure" - log(f"{response.body[:50]!r}", style) - - log("Body should terminate with a newline") - style = "success" if response.body.endswith("\n") else "failure" - log(f"{response.body[-1:]!r}", style) - - log('Body should use "\\r\\n" line endings') - bad_line = None - for line in response.body.splitlines(True): - if not line.endswith("\r\n"): - bad_line = line - break - if bad_line is None: - log("All lines end with '\\r\\n'", style="success") - else: - log(f"Invalid line ending {bad_line!r}", style="failure") - - -class HomepageRedirect(BaseCheck): - """A URL with no trailing slash should redirect to the canonical resource""" - - def check(self) -> None: - url = f"gemini://{self.netloc}\r\n" - response = self.make_request(url) - - log("Status should return code 31 (REDIRECT PERMANENT)") - style = "success" if response.status == "31" else "failure" - log(f"{response.status!r}", style) - - log('Meta should redirect to location "gemini://[hostname]/"') - style = "success" if response.meta == f"gemini://{self.netloc}/" else "failure" - log(f"{response.meta!r}", style) - - log('Header should end with "\\r\\n"') - style = "success" if response.header.endswith("\r\n") else "failure" - log(f"{response.header[-2:]!r}", style) - - log("Body should be empty") - style = "success" if response.body == "" else "failure" - log(f"{response.body[:50]!r}", style) - - -class PageNotFound(BaseCheck): - """Request a gemini URL that does not exist""" - - def check(self) -> None: - url = f"gemini://{self.netloc}/09pdsakjo73hjn12id78\r\n" - response = self.make_request(url) - - log("Status should return code 51 (NOT FOUND)") - style = "success" if response.status == "51" else "failure" - log(f"{response.status!r}", style) - - log('Header should end with "\\r\\n"') - style = "success" if response.header.endswith("\r\n") else "failure" - log(f"{response.header[-2:]!r}", style) - - log("Body should be empty") - style = "success" if response.body == "" else "failure" - log(f"{response.body[:50]!r}", style) - - -class RequestMissingCR(BaseCheck): - """A request without a should timeout""" - - def check(self) -> None: - url = f"gemini://{self.netloc}/\n" - try: - response = self.make_request(url) - except Exception as e: - log("No response should be received") - log(f"{e}", style="success") - else: - log("No response should be received") - log(f"{response.status!r}", style="failure") - - -class URLIncludePort(BaseCheck): - """Send the URL with the port explicitly defined""" - - def check(self) -> None: - url = f"gemini://{self.args.host}:{self.args.port}/\r\n" - response = self.make_request(url) - self.assert_success(response) - - -class URLSchemeMissing(BaseCheck): - """A URL without a scheme should be inferred as gemini""" - - def check(self) -> None: - url = f"//{self.netloc}/\r\n" - response = self.make_request(url) - self.assert_success(response) - - -class URLByIPAddress(BaseCheck): - """Send the URL using the IPv4 address""" - - def check(self) -> None: - addr = self.resolve_host(socket.AF_INET) - url = f"gemini://{addr[0]}:{addr[1]}/\r\n" - response = self.make_request(url) - - log("Verify that the status matches your desired behavior") - log(f"{response.status!r}", style="info") - - -class URLInvalidUTF8Byte(BaseCheck): - """Send a URL containing a non-UTF8 byte sequence""" - - def check(self) -> None: - non_utf8_character = "\udcdc" # Surrogate-escaped byte sequence - url = f"gemini://{self.netloc}/{non_utf8_character}\r\n" - - try: - response = self.make_request(url) - except Exception: - response = None - - log("Connection should either drop, or return 59 (BAD REQUEST)") - if response is None: - log("Connection closed without response", style="success") - else: - style = "success" if response.status == "59" else "failure" - log(f"{response.status!r}", style) - - -class URLMaxSize(BaseCheck): - """Send a 1024 byte URL, the maximum allowed size""" - - def check(self) -> None: - # Per the spec, the are not included in the total size - base_url = f"gemini://{self.netloc}/" - buffer = "0" * (1024 - len(base_url.encode("utf-8"))) - url = base_url + buffer + "\r\n" - - response = self.make_request(url) - log("Status should return code 51 (NOT FOUND)") - style = "success" if response.status == "51" else "failure" - log(f"{response.status!r}", style) - - -class URLAboveMaxSize(BaseCheck): - """Send a 1025 byte URL, above the maximum allowed size""" - - def check(self) -> None: - # Per the spec, the are not included in the total size - base_url = f"gemini://{self.netloc}/" - buffer = "0" * (1025 - len(base_url.encode("utf-8"))) - url = base_url + buffer + "\r\n" - - try: - response = self.make_request(url) - except Exception: - response = None - - log("Connection should either drop, or return 59 (BAD REQUEST)") - if response is None: - log("Connection closed without response", style="success") - else: - style = "success" if response.status == "59" else "failure" - log(f"{response.status!r}", style) - - -class URLWrongPort(BaseCheck): - """A URL with an incorrect port number should be rejected""" - - def check(self) -> None: - url = f"gemini://{self.args.host}:443/\r\n" - response = self.make_request(url) - self.assert_proxy_refused(response) - - -class URLWrongHost(BaseCheck): - """A URL with a foreign hostname should be rejected""" - - def check(self) -> None: - url = f"gemini://wikipedia.org/\r\n" - response = self.make_request(url) - self.assert_proxy_refused(response) - - -class URLSchemeHTTP(BaseCheck): - """Send a URL with an HTTP scheme""" - - def check(self) -> None: - url = f"http://{self.netloc}/\r\n" - response = self.make_request(url) - self.assert_proxy_refused(response) - - -class URLSchemeHTTPS(BaseCheck): - """Send a URL with an HTTPS scheme""" - - def check(self) -> None: - url = f"https://{self.netloc}/\r\n" - response = self.make_request(url) - self.assert_proxy_refused(response) - - -class URLSchemeGopher(BaseCheck): - """Send a URL with a Gopher scheme""" - - def check(self) -> None: - url = f"gopher://{self.netloc}/\r\n" - response = self.make_request(url) - self.assert_proxy_refused(response) - - -class URLEmpty(BaseCheck): - """Empty URLs should not be accepted by the server""" - - def check(self) -> None: - url = f"\r\n" - response = self.make_request(url) - self.assert_bad_request(response) - - -class URLRelative(BaseCheck): - """Relative URLs should not be accepted by the server""" - - def check(self) -> None: - url = f"/\r\n" - response = self.make_request(url) - self.assert_bad_request(response) - - -class URLInvalid(BaseCheck): - """Random text should not be accepted by the server""" - - def check(self) -> None: - url = f"Hello Gemini!\r\n" - response = self.make_request(url) - self.assert_bad_request(response) - - -class URLDotEscape(BaseCheck): - """A URL should not be able to escape the root using dot notation""" - - def check(self) -> None: - url = f"gemini://{self.netloc}/../../\r\n" - response = self.make_request(url) - self.assert_permanent_failure(response) - - -# TODO: Test sending a transient client certificate -# TODO: Test with client pinned to TLS v1.1 -CHECKS = [ - IPv4Address, - IPv6Address, - TLSVersion, - TLSClaims, - TLSVerified, - TLSRequired, - ConcurrentConnections, - Homepage, - HomepageRedirect, - PageNotFound, - RequestMissingCR, - URLIncludePort, - URLSchemeMissing, - URLByIPAddress, - URLInvalidUTF8Byte, - URLMaxSize, - URLAboveMaxSize, - URLWrongPort, - URLWrongHost, - URLSchemeHTTP, - URLSchemeHTTPS, - URLSchemeGopher, - URLEmpty, - URLRelative, - URLInvalid, - URLDotEscape, -] - - -def build_epilog(): - epilog = ["list of checks:"] - for check in CHECKS: - epilog.append(colorize(f" [{check.__name__}]", A_BOLD)) - epilog.append(f" {check.__doc__}") - return "\n".join(epilog) - - -parser = argparse.ArgumentParser( - usage="%(prog)s host [port] [--help]", - description=__doc__, - epilog=build_epilog(), - formatter_class=argparse.RawDescriptionHelpFormatter, -) -parser.add_argument("host", help="server hostname to connect to") -parser.add_argument( - "port", - nargs="?", - type=int, - default=1965, - help="server port to connect to (default: 1965)", -) -parser.add_argument("--checks", help="comma separated list of checks to apply") -parser.add_argument( - "--delay", - type=float, - default=2, - help="seconds to sleep between checks (default: 2)", -) - - -def run(): - args = parser.parse_args() - if args.checks: - check_names = {cls.__name__: cls for cls in CHECKS} - check_list = [] - for name in args.checks.split(","): - name = name.strip() - if name not in check_names: - raise ValueError(f"unknown check {name!r}") - check_list.append(check_names[name]) - else: - check_list = CHECKS - - log(f"Running gemini server diagnostics check against {args.host}:{args.port}") - log("...\n") - for check in check_list: - time.sleep(args.delay) - check(args).run() - log("Done!") - - -if __name__ == "__main__": - run() diff --git a/setup.py b/setup.py index ef6f4df..d2fdca0 100644 --- a/setup.py +++ b/setup.py @@ -26,12 +26,11 @@ setuptools.setup( long_description=long_description(), long_description_content_type="text/markdown", packages=["jetforce", "jetforce.app"], - py_modules=["jetforce_client", "jetforce_diagnostics"], + py_modules=["jetforce_client"], entry_points={ "console_scripts": [ "jetforce=jetforce.__main__:main", "jetforce-client=jetforce_client:run_client", - "jetforce-diagnostics=jetforce_diagnostics:run", ] }, python_requires=">=3.7", From 1cb5324a61c419a9593e969b8f83945ab3145f9a Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 23 May 2020 21:31:41 -0400 Subject: [PATCH 33/34] Forgot to remove old license classifier --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index d2fdca0..b7be16f 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,6 @@ setuptools.setup( classifiers=[ "Environment :: Web Environment", "Intended Audience :: Developers", - "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", From a138210ff9b9f3280425432f6489bf0ee0c92c12 Mon Sep 17 00:00:00 2001 From: Michael Lazar Date: Sat, 23 May 2020 21:38:55 -0400 Subject: [PATCH 34/34] Setting up a beta release candidate --- CHANGELOG.md | 4 +++- setup.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a03e57b..56a139e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,10 @@ # Jetforce Changelog -### Unreleased +### v0.3.0 (pre-release) - Allow a client certificate subject's CN to be blank. +- The ``jetforce-diagnostics`` script has been split off into a separate + repository at [gemini-diagnostics](https://github.com/michael-lazar/gemini-diagnostics). ### v0.2.2 (2012-03-31) diff --git a/setup.py b/setup.py index b7be16f..c0deafd 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def long_description(): setuptools.setup( name="Jetforce", - version="0.3.0", + version="0.3.0b1", url="https://github.com/michael-lazar/jetforce", license="Other/Proprietary License", author="Michael Lazar",