From 5f6b2ae3aec2c4c1bbadef6017aff32b10340ace Mon Sep 17 00:00:00 2001 From: ccstan99 <38997995+ccstan99@users.noreply.github.com> Date: Sun, 30 Apr 2023 13:49:27 -0700 Subject: [PATCH 1/4] Initial commit --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1a9c053 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Stampy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 7cbd0d54fc0ddaf6d4abd9553d037d228dc82c22 Mon Sep 17 00:00:00 2001 From: ccstan99 Date: Sun, 30 Apr 2023 14:02:19 -0700 Subject: [PATCH 2/4] initial commit based on McGill's AlignmentSearch --- .gitignore | 145 ++ README.md | 11 + api/Procfile | 1 + api/chat.py | 175 ++ api/dataset_dl.py | 23 + api/get_blocks.py | 122 + api/main.py | 70 + api/nixpacks.toml | 5 + api/requirements.txt | 22 + readme.old | 38 + resources/screenshot.png | Bin 0 -> 1326506 bytes src/dataset/create_dataset.py | 401 +++ src/dataset/settings.py | 12 + src/dataset/text_splitter.py | 220 ++ src/main.py | 163 ++ src/settings.py | 12 + web/.env.example | 14 + web/.gitignore | 42 + web/README.md | 28 + web/next.config.mjs | 22 + web/package-lock.json | 4483 +++++++++++++++++++++++++++++++++ web/package.json | 39 + web/postcss.config.cjs | 8 + web/src/env.mjs | 74 + web/src/header.tsx | 43 + web/src/pages/_app.tsx | 9 + web/src/pages/index.tsx | 417 +++ web/src/pages/semantic.tsx | 100 + web/src/searchbox.tsx | 52 + web/src/styles/globals.css | 39 + web/tailwind.config.cjs | 10 + web/tsconfig.json | 33 + 32 files changed, 6833 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 api/Procfile create mode 100644 api/chat.py create mode 100644 api/dataset_dl.py create mode 100644 api/get_blocks.py create mode 100644 api/main.py create mode 100644 api/nixpacks.toml create mode 100644 api/requirements.txt create mode 100644 readme.old create mode 100644 resources/screenshot.png create mode 100644 src/dataset/create_dataset.py create mode 100644 src/dataset/settings.py create mode 100644 src/dataset/text_splitter.py create mode 100644 src/main.py create mode 100644 src/settings.py create mode 100644 web/.env.example create mode 100644 web/.gitignore create mode 100644 web/README.md create mode 100644 web/next.config.mjs create mode 100644 web/package-lock.json create mode 100644 web/package.json create mode 100644 web/postcss.config.cjs create mode 100644 web/src/env.mjs create mode 100644 web/src/header.tsx create mode 100644 web/src/pages/_app.tsx create mode 100644 web/src/pages/index.tsx create mode 100644 web/src/pages/semantic.tsx create mode 100644 web/src/searchbox.tsx create mode 100644 web/src/styles/globals.css create mode 100644 web/tailwind.config.cjs create mode 100644 web/tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..80e3f6c --- /dev/null +++ b/.gitignore @@ -0,0 +1,145 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# Other +*alignment_texts.jsonl +*config.py +*.DS_Store +*.env +*.npy +*.pkl + +.vercel/ +temp/ +*tmp.py + +api/dataset.pkl +api/dataset_big.pkl +api/dataset_300.pkl diff --git a/README.md b/README.md new file mode 100644 index 0000000..f3e02dc --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# AlignmentSearch + +![img](resources/screenshot.png) + +## Project Layout + +- `src/` stuff around processing our dataset and constructing embeddings +- `api/` a flask app serving as our backend +- `web/` a NextJS app for the frontend + + diff --git a/api/Procfile b/api/Procfile new file mode 100644 index 0000000..0d052ab --- /dev/null +++ b/api/Procfile @@ -0,0 +1 @@ +web: gunicorn main:app --worker-class eventlet --threads 4 diff --git a/api/chat.py b/api/chat.py new file mode 100644 index 0000000..10fbf1d --- /dev/null +++ b/api/chat.py @@ -0,0 +1,175 @@ +# ------------------------------- env, constants ------------------------------- + +from get_blocks import get_top_k_blocks, Block + +from typing import List, Dict +import openai +import tiktoken +import time +import re + +# OpenAI models +EMBEDDING_MODEL = "text-embedding-ada-002" +COMPLETIONS_MODEL = "gpt-3.5-turbo" +# COMPLETIONS_MODEL = "gpt-4" + +STANDARD_K = 20 if COMPLETIONS_MODEL == 'gpt-4' else 10 + +# parameters + +# NOTE: All this is approximate, there's bits I'm intentionally not counting. Leave a buffer beyond what you might expect. +NUM_TOKENS = 8191 if COMPLETIONS_MODEL == 'gpt-4' else 4095 +HISTORY_FRACTION = 0.25 # the (approximate) fraction of num_tokens to use for history text before truncating +CONTEXT_FRACTION = 0.5 # the (approximate) fraction of num_tokens to use for context text before truncating + +ENCODER = tiktoken.get_encoding("cl100k_base") + +DEBUG_PRINT = True + +# --------------------------------- prompt code -------------------------------- + + + +# limit a string to a certain number of tokens +def cap(text: str, max_tokens: int) -> str: + + if max_tokens <= 0: return "..." + + encoded_text = ENCODER.encode(text) + + if len(encoded_text) <= max_tokens: return text + else: return ENCODER.decode(encoded_text[:max_tokens]) + " ..." + + + + +def construct_prompt(query: str, history: List[Dict[str, str]], context: List[Block]) -> List[Dict[str, str]]: + + prompt = [] + + # History takes the format: history=[ + # {"role": "user", "content": "Die monster. You don’t belong in this world!"}, + # {"role": "assistant", "content": "It was not by my hand I am once again given flesh. I was called here by humans who wished to pay me tribute."}, + # {"role": "user", "content": "Tribute!?! You steal men's souls and make them your slaves!"}, + # {"role": "assistant", "content": "Perhaps the same could be said of all religions..."}, + # {"role": "user", "content": "Your words are as empty as your soul! Mankind ill needs a savior such as you!"}, + # {"role": "assistant", "content": "What is a man? A miserable little pile of secrets. But enough talk... Have at you!"}, + # ] + + source_prompt = "You are a helpful assistant knowledgeable about AI Alignment and Safety. " \ + "Please give a clear and coherent answer to the user's questions.(written after \"Q:\") " \ + "using the following sources. Each source is labeled with a letter. Feel free to " \ + "use the sources in any order, and try to use multiple sources in your answers.\n\n" + + token_count = len(ENCODER.encode(source_prompt)) + + # Context from top-k blocks + for i, block in enumerate(context): + block_str = f"[{chr(ord('a') + i)}] {block.title} - {block.author} - {block.date}\n{block.text}\n\n" + block_tc = len(ENCODER.encode(block_str)) + + if token_count + block_tc > int(NUM_TOKENS * CONTEXT_FRACTION): + source_prompt += cap(block_str, int(NUM_TOKENS * CONTEXT_FRACTION) - token_count) + break + else: + source_prompt += block_str + token_count += block_tc + + source_prompt = source_prompt.strip(); + if len(history) > 0: + source_prompt += "\n\n"\ + "Before the question (\"Q: \"), there will be a history of previous questions and answers. " \ + "These sources only apply to the last question. Any sources used in previous answers " \ + "are invalid." + + prompt.append({"role": "system", "content": source_prompt.strip()}) + + + # Write a version of the last 10 messages into history, cutting things off when we hit the token limit. + token_count = 0 + history_trnc = [] + for message in history[:-10:-1]: + if message["role"] == "user": + history_trnc.append({"role": "user", "content": "Q: " + message["content"]}) + token_count += len(ENCODER.encode("Q: " + message["content"])) + else: + content = cap(message["content"], int(NUM_TOKENS * HISTORY_FRACTION) - token_count) + + # censor all source letters into [x] + content = re.sub(r"\[[0-9]+\]", "[x]", content) + + history_trnc.append({"role": "assistant", "content": content}) + token_count += len(ENCODER.encode(content)) + + if token_count > int(NUM_TOKENS * HISTORY_FRACTION): + break + + prompt.extend(history_trnc[::-1]) + + + question_prompt = f"In your answer, please cite any claims you make back to each source " \ + f"using the format: [a], [b], etc. If you use multiple sources to make a claim " \ + f"cite all of them. For example: \"AGI is concerning [c, d, e].\"\n\nQ: " + query + + prompt.append({"role": "user", "content": question_prompt}) + + return prompt + +# ------------------------------- completion code ------------------------------- +import time +import json + +# returns either (True, reply string, top_k_blocks)) or (False, error message string, None) +def talk_to_robot(index, query: str, history: List[Dict[str, str]], k: int = STANDARD_K): + try: + # 1. Find the most relevant blocks from the Alignment Research Dataset + yield json.dumps({"state": "loading", "phase": "semantic"}) + top_k_blocks = get_top_k_blocks(index, query, k) + + yield json.dumps({"state": "loading", "phase": "semantic", 'citations': [{'title': block.title, 'author': block.author, 'date': block.date, 'url': block.url} for block in top_k_blocks]}) + + # 2. Generate a prompt + yield json.dumps({"state": "loading", "phase": "prompt"}) + prompt = construct_prompt(query, history, top_k_blocks) + + # 3. Count number of tokens left for completion (-50 for a buffer) + max_tokens_completion = NUM_TOKENS - sum([len(ENCODER.encode(message["content"]) + ENCODER.encode(message["role"])) for message in prompt]) - 50 + + # 4. Answer the user query + yield json.dumps({"state": "loading", "phase": "llm"}) + t1 = time.time() + response = '' + + for chunk in openai.ChatCompletion.create( + model=COMPLETIONS_MODEL, + messages=prompt, + max_tokens=max_tokens_completion, + stream=True + ): + res = chunk["choices"][0]["delta"] + if res is not None and res.get("content") is not None: + response += res["content"] + yield json.dumps({"state": "streaming", "content": res["content"]}) + + + t2 = time.time() + print("Time to get response: ", t2 - t1) + + if DEBUG_PRINT: + print('\n' * 10) + print(" ------------------------------ prompt: -----------------------------") + for message in prompt: + print(f"----------- {message['role']}: ------------------") + print(message['content']) + + print('\n' * 10) + + print(" ------------------------------ response: -----------------------------") + print(response) + + yield json.dumps({"state": "done"}) + + except Exception as e: + print(e) + yield json.dumps({"state": "error", "error": str(e)}) + diff --git a/api/dataset_dl.py b/api/dataset_dl.py new file mode 100644 index 0000000..d2afe3d --- /dev/null +++ b/api/dataset_dl.py @@ -0,0 +1,23 @@ +# run this script to download the dataset + +import pickle +import requests +import os + +print('Downloading dataset...') + +url = os.environ.get('DATASET_URL') +if url is None: + print('No dataset url provided.') + exit() + +dataset_dict_bytes = requests.get(url).content + +print('Unpacking dataset...') +dataset_dict = pickle.loads(dataset_dict_bytes) + +print('Writing dataset to disk...') +with open('dataset.pkl', 'wb') as f: + pickle.dump(dataset_dict, f) + +print('Done!') diff --git a/api/get_blocks.py b/api/get_blocks.py new file mode 100644 index 0000000..61574f3 --- /dev/null +++ b/api/get_blocks.py @@ -0,0 +1,122 @@ +from typing import List, Tuple +import dataclasses +import datetime +import itertools +import numpy as np +import openai +import regex as re +import time + +# ---------------------------------- constants --------------------------------- + +EMBEDDING_MODEL = "text-embedding-ada-002" + +# ------------------------------------ types ----------------------------------- + +@dataclasses.dataclass +class Block: + title: str + author: str + date: str + url: str + tags: str + text: str + +# ------------------------------------------------------------------------------ + +# Get the embedding for a given text. The function will retry with exponential backoff if the API rate limit is reached, up to 4 times. +def get_embedding(text: str) -> np.ndarray: + + max_retries = 4 + max_wait_time = 10 + attempt = 0 + + while True: + try: + result = openai.Embedding.create(model=EMBEDDING_MODEL, input=text) + return result["data"][0]["embedding"] + + except openai.error.RateLimitError as e: + + attempt += 1 + + if attempt > max_retries: raise e + + time.sleep(min(max_wait_time, 2 ** attempt)) + + +# Get the k blocks most semantically similar to the query using Pinecone. +def get_top_k_blocks(index, user_query: str, k: int = 20) -> List[Block]: + + # print time + t = time.time() + + # Get the embedding for the query. + query_embedding = get_embedding(user_query) + + t1 = time.time() + print("Time to get embedding: ", t1 - t) + + query_response = index.query( + namespace="alignment-search", # ugly, sorry + top_k=k, + include_values=False, + include_metadata=True, + vector=query_embedding + ) + blocks = [] + for match in query_response['matches']: + + date = match['metadata']['date'] + + if type(date) == datetime.date: date = date.strftime("%Y-%m-%d") # iso8601 + + blocks.append(Block( + title = match['metadata']['title'], + author = match['metadata']['author'], + date = date, + url = match['metadata']['url'], + tags = match['metadata']['tags'], + text = match['metadata']['text'] + )) + + t2 = time.time() + + print("Time to get top-k blocks: ", t2 - t1) + + # for all blocks that are "the same" (same title, author, date, url, tags), + # combine their text with "....." in between. Return them in order such + # that the combined block has the minimum index of the blocks combined. + + key = lambda bi: (bi[0].title or "", bi[0].author or "", bi[0].date or "", bi[0].url or "", bi[0].tags or "") + + blocks_plus_old_index = [(block, i) for i, block in enumerate(blocks)] + blocks_plus_old_index.sort(key=key) + + unified_blocks: List[Tuple[Block, int]] = [] + + for key, group in itertools.groupby(blocks_plus_old_index, key=key): + group = list(group) + if len(group) == 0: continue + + group = group[:3] # limit to a max of 3 blocks from any one source + + text = "\n.....\n".join([block[0].text for block in group]) + + min_index = min([block[1] for block in group]) + + unified_blocks.append((Block(key[0], key[1], key[2], key[3], key[4], text), min_index)) + + unified_blocks.sort(key=lambda bi: bi[1]) + return [block for block, _ in unified_blocks] + + +# we add the title and authors inside the contents of the block, so that +# searches for the title or author will be more likely to pull it up. This +# strips it back out. +def strip_block(text: str) -> str: + r = re.match(r"^\"(.*)\"\s*-\s*Title:.*$", text, re.DOTALL) + if not r: + print("Warning: couldn't strip block") + print(text) + return r.group(1) if r else text diff --git a/api/main.py b/api/main.py new file mode 100644 index 0000000..45f04c9 --- /dev/null +++ b/api/main.py @@ -0,0 +1,70 @@ +from flask import Flask, jsonify, request, Response +from flask_cors import CORS, cross_origin +from get_blocks import get_top_k_blocks +from chat import talk_to_robot +import dataclasses +import os +import openai +import pinecone + + +# ---------------------------------- env setup --------------------------------- + + +if os.path.exists('.env'): + from dotenv import load_dotenv + load_dotenv() + +OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY') +openai.api_key = OPENAI_API_KEY + +PINECONE_API_KEY = os.environ.get('PINECONE_API_KEY') +PINECONE_ENV = "us-east1-gcp" +pinecone.init( + api_key=PINECONE_API_KEY, + environment=PINECONE_ENV +) +INDEX_NAME = "alignment-search" +index = pinecone.Index(index_name=INDEX_NAME) + + +# ---------------------------------- web setup --------------------------------- + +app = Flask(__name__) +cors = CORS(app) +app.config['CORS_HEADERS'] = 'Content-Type' + +# ---------------------------------- sse stuff --------------------------------- + +def stream(src): + yield from ('data: ' + '\ndata: '.join(message.splitlines()) + '\n\n' for message in src) + yield 'event: close\n\n' + +# ------------------------------- semantic search ------------------------------ + + +@app.route('/semantic', methods=['POST']) +@cross_origin() +def semantic(): + query = request.json['query'] + return jsonify([dataclasses.asdict(block) for block in get_top_k_blocks(index, query)]) + + +# ------------------------------------ chat ------------------------------------ + + +@app.route('/chat', methods=['POST']) +@cross_origin() +def chat(): + + query = request.json['query'] + history = request.json['history'] + + return Response(stream(talk_to_robot(index, query, history)), mimetype='text/event-stream') + + +# ------------------------------------------------------------------------------ + + +if __name__ == '__main__': + app.run(debug=True, port=3000) diff --git a/api/nixpacks.toml b/api/nixpacks.toml new file mode 100644 index 0000000..6114761 --- /dev/null +++ b/api/nixpacks.toml @@ -0,0 +1,5 @@ +# [phases.build] +# cmds = ['python3 dataset_dl.py'] + +[start] +cmd = 'gunicorn --timeout 300 "main:app"' diff --git a/api/requirements.txt b/api/requirements.txt new file mode 100644 index 0000000..0dfb1f0 --- /dev/null +++ b/api/requirements.txt @@ -0,0 +1,22 @@ +# ---- ---- + +Flask==1.1.2 + +click==7.1.2 +gunicorn==20.0.4 +itsdangerous==1.1.0 +Jinja2==2.11.3 +MarkupSafe==1.1.1 +Werkzeug==2.2.3 + +flask-cors + +# ---- ---- + +openai==0.27.2 +numpy==1.24.2 +tenacity==8.2.2 +tiktoken +pinecone-client + +python-dotenv diff --git a/readme.old b/readme.old new file mode 100644 index 0000000..56258d3 --- /dev/null +++ b/readme.old @@ -0,0 +1,38 @@ +# AlignmentSearch + +This project creates embeddings for every set of a few paragraphs from the source dataset, in order to do real-time semantic search and question answering on them. + +The very barebones of the project is currently in src/testing.ipynb. file which contains: + +To try out, add a src/config.py file which contains your OPENAI_API_KEY. + +## TODO: +- Getting data: + - Figure out the right format for the dataset + - Get entirety of data + - Searches for new posts/papers/etc and scrape them, runs once a day + - Async API calls for embeddings (otherwise it is going to take years) +- Semantic search: + - Test out other techniques than just vector similarity (e.g. LSH-index, see Dense Retrieval methods (here)[https://medium.com/@aikho/deep-learning-in-information-retrieval-part-ii-dense-retrieval-1f9fecb47de9]) + - Test other embeddings models ((SimCSE)[https://github.com/princeton-nlp/SimCSE] possibly SOTA?) +- Question answering: + - Test out other models prompts to see which is best +- Summarization: + - Test out other models and prompts to see which is best (Forefront?) +- Info extraction from PDF: + - Specifically mentioned by Anson. Look into methods by Mely.ai to extract tables from PDFs maybe? + - Test various techniques to make it more performant +- Finetuning: + - Finetune embeddings model + - Finetune q&a model + - Finetune summarization model + - Finetune info extraction model +- Other: + - Create website/other. Not sure what would be most helpful here (Find someone that can figure this out) + - Document search (give descriptions of a post/document/video/article/book/etc related to alignment, and get top semantically related result) + +## Ideas +- The whole dataset with embeddings doesn't fit on the frontend, but requests take a while. Solution: have a useful but small fraction of the dataset on the front end, get similarity score for embeddings, and do real time semantic search. However, every time the user presses space or enter, do the call to do semantic search over the full dataset. + + +Source dataset: Kirchner, J. H., Smith, L., Thibodeau, J., McDonnell, K., and Reynolds, L. "Understanding AI alignment research: A Systematic Analysis." arXiv preprint arXiv:2022.4338861 (2022). diff --git a/resources/screenshot.png b/resources/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..a6994e0469005effad6800d8786e30a788c1e410 GIT binary patch literal 1326506 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.Kmc8XW!(lV%Cz>S5Tp^nPBfT$Q_(_Z z^P~|Rj%0TaUx>Fpa{J*Iu*2(~OC4GmO&jM^C(AiW^SF4aDSv|kTMJ4?H5u&+Ea($| z=z~I}xR`d#uXCpzSk!4q>}Y~}umtZ;!dh;T*8Ie~@a{p24Wcq!5GpUL1?dSqXNt)* z2@DRrWu3Mkn}ANG)}U&(XSh?0zNYjLY_qLqpfT>RaCs~t{!1g|1@Dn{eDZREM_gC| zgnQn9Tj&GRA>;{~u-35gCkzSn7J@wp77O&=a^dVs}k8xc+Rr{!@4tm`A2$ z6WAHdN`X@3rSC5d`)JMu(aR}7CW}UH<}Zbq^u3a!%BR@4C#p%iF%s6!KMQ+Uf6K1J zvD!+5>y)4^&*}@4l=i^Jc8KX|#hKT=_MDZSk}3^FX{{SfGNs6Fz__ez@{wkl&F8E? z0tl+Tjk+%h5L7>6DYMLcwq7qBSN^Jd^0aokQge%F2EhF(q~3(vTdK%z5H^wGJ-u;u z1dzu(Z{77zzZefb6?-i+70FoG1dK?P6w2qaKtTpEMYkZmLlK#woO%MlA2c&R)^Kur z`&yAPI^Z(;{4Of2~c-*Lb+tjquS=KOX62=2DW9V)%Cs4?5v+pNfZ^=mSKD6Qo&L8*lFh#ecVs0q^)+FnSf}ge8kd*sh}B2Diy ze_WfF-oV}2W7FT|F^aFQ6BU$W2`hKBalGBjOOXGQ(yDQ*u7IKPrtG z0Zr|4El)^&RoL}_T;hCltyCd!r0%`Iq8wUp{aTvd2gF7lpjnq|a&_AfTGtTSc`Kj5 zFkya7cSr3ek^b$doLT!yAo}=e3Aazynut_T=%AB&M=Kb{i>E*wfvAcrkm3*q zpC9nE$cL)D6(=a)Y{)D12Ij>&uzTnDRQIkf;r-j_NXdP>4JW+R@PKISv5cSN?amwi z7E%N<{$CZT1o)1#?en+AJ-!q%O6%@y#HVb4fA8yPy8p|lYxf_+KzDZQL|JGotpX8G z=;-iqI;1YqZ-}iV@1s+Dm-z|R#J!gKw(OAG>&B?}xfSzE>RAKau3<#u(Pxd@*u7AlAkjeP?PE+T$msXmxLN207Xy`X(B{ z0zKZypmKaMC|9F2Y2%Ev#Ud z3nH&JbY?9O4sV(-g>l(xzOsWo4peV|;wxB|GBKJ^qs1%3zY^)fTzt;kMV{mVT?buu zbW=G7R4Cc;dhTPeckDjczt6HIbsHxO#W6G~H=jBIlg3hJa-Wlh87tP4Zd9PGypR1MRpMqslXCOg2;~0Y5u}v0 zb5BicirvHBQ9T-Q_mh9Z(x!T;(0ojlr89qPy|8M^680>N7xiKOg*9Ucp*hF7Ju8k~ zUS1j-d3S07Dtz9gH?~bXv?oB3dsI@#2kfdlO7`AY1h3%wR>*jfw*;l2ydHi^_pzK7 zF|O*KWcv|;S%5WlP?Rso_z5nmY_k7V`{;uqeokj4UlAa$cYY2ldE{rbdrrl9tg<9< z05-5Pomo2NG;AuHKPH?|&lEjDjy-aq=kCnAy_uAMpu7q%-wRG;%i^$PebN4#QKQxD*u+)tx{_}i%6z!iK6%2HQ}duv(K1> z>`Ix(WHX zp@4|{u)C;V!<#w=(!PBZ0Sf@yG?=qzi#kGl9o#KumB`1r?}@@O(n9O!eW3D#-_#y|Bp}s5g@_hWdY|ayWiLAt%rpI|Td9!_^ zb=Q=pN(Qr~HF;VcW5>xo)q``A*+sO#9?jU07gygxl=&S~y;P_HSM0ECeam-jGRVst z;GSh;+%pvNLP~7#mHub?))neYkPM@vuyI6|6*^qe+F1SK!NU)*4Vn)niG`GU9s*0D z&y9G2d@yU;ihSr*Lbc`neaRk!9o3bxi-h1Nkp@srNTt>+rGSSCW1jLM8kQ`^$~dBT z*s}e=RK)o}bm}d0q@}Blri9<7yKP(Lm>J^+tTP3G6W zl^GLQ{pOQZYr03EIs7W!y2c(szElY8ENpn3e>$YV>I)f-UyNI(jHouAZpc`P%lPYM zRoX~EPg&7MDqT1qh%xP1jOzDXRbrF|Bq^a^OgF{1$mEcaDV+iKPX!HP+h7aLjK@Qm zMT-$yJvaGI&1(U+!0%VwBkZ<=MRPF&AcXo&i>8Ui z@_mH&rZIRZpT4v@LjhdFjH)i39bpa>gyZExzm)`O+v2(r1|f%?ySv-!lt zR~M?%f0XJ;^SqT7e6`jidnY%Yd;K|Fy0J*?KIT6I9OjshN>?vkZ`=UOwcj1&*k4%y zzhSS5 z{ax-Kzj2v%#|-aHl}_f{O*&}!_Lj65w`w=1Pk8bb1%E6z44Fe})-OplG=60#*#{Xv zHiiy*GHd5%)%8GV1!;xHTAsqmHnTS2@$Uet`;>!r^V}itz@!6xBbB;<#?ytJt{>dpW6HGYWyq%rJ89 zjc0MZX?13%$~W~|Z2jExZ&dqSE* zMhMwcKBP5aFrTrrj()=~E4NGhb@l-#qbaXpQ_=Itn{-Kh9X6{ppUm&>uy8Du8%_Aa zeEw~ftcd%;CSb$*!Y9Y74Wl0Lky;f{<9X_a1P`x1{HJ+y?S`K{uE8O-;qbdZwb|D( z>?k`R9@Z9UILX5{Z#D_1$K;}C2 zXv8e)C537t3_i^4QGCI|7E}FtVFfhhRDZ{nuDSK#v59aa?YmI8Z3Ra5Q`LTQ#nlG< zAm%2{I^dJ7%KwqI14LDGT7J-eX$B!Lv;~53*Hp;tH@~|h@5`AgY5^utUXEr|l2