From 4b1c7da1bef56108d63ec07f30153bb5eff23454 Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Fri, 5 Sep 2025 17:28:45 +0000 Subject: [PATCH 1/8] Removed 'Read the Docs' button Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- themes/memmachine/layouts/_partials/home-sections.html | 7 ------- themes/memmachine/layouts/_partials/ready-section.html | 7 ------- 2 files changed, 14 deletions(-) diff --git a/themes/memmachine/layouts/_partials/home-sections.html b/themes/memmachine/layouts/_partials/home-sections.html index 9d790f6..080566e 100644 --- a/themes/memmachine/layouts/_partials/home-sections.html +++ b/themes/memmachine/layouts/_partials/home-sections.html @@ -29,13 +29,6 @@

data-aos-delay="200" >Try the Playground - Read the Docs - Ready to Begin?

data-aos-delay="200" >Try the Playground - Read the Docs - Date: Fri, 5 Sep 2025 17:32:48 +0000 Subject: [PATCH 2/8] Use a brighter color for the text to make it easier to read Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- themes/memmachine/assets/css/styles.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/memmachine/assets/css/styles.css b/themes/memmachine/assets/css/styles.css index 91d1d3a..3135d6c 100644 --- a/themes/memmachine/assets/css/styles.css +++ b/themes/memmachine/assets/css/styles.css @@ -83,7 +83,7 @@ body { line-height: 1.5; font-weight: 400; background: #211334 url(/img/bg.svg) center/cover no-repeat; - color: var(--light-300); + color: var(--light-500); scroll-behavior: smooth; } input:focus { From 9ddbb92c67ac73701f1d94808cd998aff7176ed9 Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Fri, 5 Sep 2025 17:34:25 +0000 Subject: [PATCH 3/8] Reduce vertical whitespace between the Hero and first Solution block --- themes/memmachine/layouts/_partials/home-sections.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/memmachine/layouts/_partials/home-sections.html b/themes/memmachine/layouts/_partials/home-sections.html index 080566e..d562754 100644 --- a/themes/memmachine/layouts/_partials/home-sections.html +++ b/themes/memmachine/layouts/_partials/home-sections.html @@ -107,7 +107,7 @@

-
+
From 3fb9f780803b6e7351d83d28d1d011622512363d Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Fri, 5 Sep 2025 17:49:48 +0000 Subject: [PATCH 4/8] Update FAQs Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- data/faq.yaml | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/data/faq.yaml b/data/faq.yaml index 445163a..4283215 100644 --- a/data/faq.yaml +++ b/data/faq.yaml @@ -1,17 +1,26 @@ -- question: What is MemMachine? - answer: MemMachine is an open-source, multi-layered memory system for AI agents. It allows developers to give their agents Short-Term, Long-Term, and Personalization memory, enabling them to have stateful, context-aware conversations and recall user-specific facts over time. - -- question: How is this different from standard LangChain or LangGraph memory? - answer: While libraries like LangChain provide excellent memory components, MemMachine focuses on abstracting the complexity of managing different memory types and provides a dedicated Personalization layer that can be easily integrated into any agent framework, including LangChain and LangGraph. - -- question: Is the Open Source version ready for production use? - answer: Yes, the open-source version is fully-featured and can be deployed in production environments. It is ideal for developers who are comfortable managing their own infrastructure. Our Pro and Enterprise tiers offer managed hosting, dedicated support, and advanced features for teams that require a higher level of service and security. +- question: What is MemMachine, and what makes it unique? + answer: MemMachine is an open-source, multi-layered memory system for AI agents. It allows you to equip your agents with Short-Term, Long-Term, and Personalization memory. While many AI models offer some form of built-in memory, MemMachine's system is model-agnostic, meaning it can support multiple AI models simultaneously, including specialized models hosted in a private cloud or on-premises data center. This capability enables organizations to maintain full control of their data and work with various models without vendor lock-in. - question: Why are these capabilities needed if they're becoming available by frontier labs like OpenAI? answer: Because a frontier lab's memory service keeps the memory, and its memory service does not work with other models. Many organizations work with multiple models, including specialized models deployed in its private environment, including its VPC in the cloud and its own on-prem data center. They desire a memory system that can support all of these models. +- question: How does MemMachine handle data privacy and security? + answer: MemMachine is designed with security in mind. The open-source version can be deployed in your private cloud or on-premises environment, giving you full control over your data. + - question: Who is driving development of MemMachine? - answer: MemVerge incubated the project to the current stage, and this project will be community-driven. MemVerge will continue to assign its engineering team to improve the memory system, and contributors of all backgrounds are welcome to join. + answer: The project was initially incubated by MemVerge to its current state. The project is now community-driven, and we welcome contributors of all backgrounds. MemVerge will continue to assign its engineering team to improve the memory system and support community efforts. - question: How can I get started with MemMachine? - answer: You can get started by visiting our [documentation](https://docs.memmachine.ai) \ No newline at end of file + answer: You can get started by visiting our [documentation](https://docs.memmachine.ai) + +- question: Where can I find the source code for MemMachine? + answer: The source code for MemMachine is available on [GitHub](https://github.com/MemMachine/MemMachine) + +- question: How can I contribute to the MemMachine project? + answer: We welcome contributions from the community! You can contribute by reporting issues, suggesting features, or submitting pull requests on our [GitHub](https://github.com/MemMachine/MemMachine) repository. + +- question: How do I get support for MemMachine? + answer: You can get support through our community channels by joining our [Discord server](https://discord.gg/usydANvKqD) or filing an issue on our [GitHub](https://github.com/MemMachine/MemMachine) repository. + +- question: Is there an Enterprise version of MemMachine or support available for MemMachine users? + answer: An Enterprise version of MemMachine with additional features and dedicated support will be available soon. \ No newline at end of file From b657ed75a3acccc5e937b3b1960bea0327183e31 Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Fri, 5 Sep 2025 17:54:17 +0000 Subject: [PATCH 5/8] Update FAQs Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- data/faq.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/faq.yaml b/data/faq.yaml index 4283215..b104f62 100644 --- a/data/faq.yaml +++ b/data/faq.yaml @@ -1,6 +1,9 @@ - question: What is MemMachine, and what makes it unique? answer: MemMachine is an open-source, multi-layered memory system for AI agents. It allows you to equip your agents with Short-Term, Long-Term, and Personalization memory. While many AI models offer some form of built-in memory, MemMachine's system is model-agnostic, meaning it can support multiple AI models simultaneously, including specialized models hosted in a private cloud or on-premises data center. This capability enables organizations to maintain full control of their data and work with various models without vendor lock-in. +- question: Is MemMachine for developers or end users? + answer: MemMachine is primarily designed for Agent developers and organizations building AI applications. It provides a flexible and scalable memory system that can be integrated into various AI models, allowing developers to enhance their applications with advanced memory capabilities. + - question: Why are these capabilities needed if they're becoming available by frontier labs like OpenAI? answer: Because a frontier lab's memory service keeps the memory, and its memory service does not work with other models. Many organizations work with multiple models, including specialized models deployed in its private environment, including its VPC in the cloud and its own on-prem data center. They desire a memory system that can support all of these models. From 2d5922fe5d84de19bf38e138a17042ee4dddfc17 Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Fri, 5 Sep 2025 20:28:09 +0000 Subject: [PATCH 6/8] Updated Chat Widget Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- themes/memmachine/assets/css/styles.css | 13 +- themes/memmachine/assets/js/custom.js | 181 ++++++++++++++---- .../layouts/_partials/home-sections.html | 49 +---- 3 files changed, 160 insertions(+), 83 deletions(-) diff --git a/themes/memmachine/assets/css/styles.css b/themes/memmachine/assets/css/styles.css index 3135d6c..3e5ccc0 100644 --- a/themes/memmachine/assets/css/styles.css +++ b/themes/memmachine/assets/css/styles.css @@ -447,10 +447,19 @@ header nav ul li a:hover { display: flex; align-items: center; justify-content: center; + background: var(--gradient-lavender-pink-peach); +} +.hero-chat-input button i { + color: white; /* Ensure icons are white */ } -.hero-chat-input button svg { + +.hero-chat-input button svg, +.hero-chat-input button i { width: 24px; height: 24px; + display: flex; + align-items: center; + justify-content: center; } .hero-brand p { margin-bottom: 32px; @@ -462,7 +471,7 @@ header nav ul li a:hover { } .hero-chat-list::-webkit-scrollbar { - width: 4px; + width: 8px; } .hero-chat-list::-webkit-scrollbar-track { diff --git a/themes/memmachine/assets/js/custom.js b/themes/memmachine/assets/js/custom.js index fc4a911..a1db449 100644 --- a/themes/memmachine/assets/js/custom.js +++ b/themes/memmachine/assets/js/custom.js @@ -87,40 +87,45 @@ document.addEventListener("DOMContentLoaded", function () { }); }); +// Chat Widget const chatList = document.getElementById("chatList"); const userInput = document.getElementById("userInput"); const sendButton = document.getElementById("sendButton"); +const chatInputContainer = document.getElementById("chatInputContainer"); // Check if chatList exists before proceeding if (chatList) { - const messages = [ + // Chat state to manage the conversation flow + let chatState = 0; + + // Pre-scripted messages for the chat flow + const scriptedMessages = [ { sender: "You", - time: "1:17 PM", - text: "What are your thoughts on the latest AI chip manufacturer earnings reports that came out this week?", + text: "How can I manage user-specific data without retraining my model for every user?", }, { sender: "MemMachine Agent", - time: "1:17 PM", - text: "The reports show strong growth, particularly in the data center segment. However, I recall you mentioned last month that you're looking to decrease your exposure to hardware manufacturers and focus more on AI software and platform companies. Do you want me to filter these insights based on that strategy?", + text: "That's a key challenge for building personalized agents. MemMachine addresses this with its Personalization memory layer, which stores user-specific data independently of your core model. I recall you were building a financial advice agent for small businesses last month—this is a perfect use case for that.", }, { sender: "You", - time: "1:18 PM", - text: "Wow, good memory. Yes, please. Focus on the implications for software companies.", + text: "Wow, you remember that? That's exactly what I'm working on. How does that work under the hood?", }, { sender: "MemMachine Agent", - time: "1:18 PM", - text: "Understood. The strong hardware sales signal a surge in demand for advanced AI models, which is a bullish indicator for AI platform companies that leverage this new hardware.", + text: "The core of our memory system is designed to be model-agnostic, giving your agents stateful, context-aware conversations and the ability to recall user-specific facts over time. This is the foundation for building the next generation of AI solutions.", + }, + { + sender: "You", + text: "Okay, that's exactly what I need.", + }, + { + sender: "MemMachine Agent", + text: "You're welcome! Would you like to know how to get started with this kind of memory system? (Yes/No)", }, ]; - // Function to add initial messages to the chat - function loadInitialMessages() { - messages.forEach((message) => addMessage(message)); - } - function addMessage(message) { const chatItem = document.createElement("div"); chatItem.className = "hero-chat-item"; @@ -134,50 +139,148 @@ if (chatList) {
`; chatList.appendChild(chatItem); - chatItem.classList.add("fade-in"); // Add fade-in class for animation - chatList.scrollTop = chatList.scrollHeight; // Scroll to the bottom + chatItem.classList.add("fade-in"); + chatList.scrollTop = chatList.scrollHeight; } - - // Load initial messages on page load - loadInitialMessages(); - - sendButton.addEventListener("click", () => { - submitMessage(); - }); - - // Allow submitting message with Enter key - userInput.addEventListener("keypress", (event) => { - if (event.key === "Enter") { - submitMessage(); + + // New function to load the entire conversation history + function loadConversationHistory() { + let delay = 0; + for (let i = 0; i < scriptedMessages.length; i++) { + setTimeout(() => { + const currentTime = new Date().toLocaleTimeString([], { + hour: "2-digit", + minute: "2-digit", + }); + addMessage({ + sender: scriptedMessages[i].sender, + time: currentTime, + text: scriptedMessages[i].text, + }); + }, delay); + delay += 500; // Reduced delay for a faster feel } - }); + // Set the state to 1 after the initial conversation loads, + // so the next message from the user is a response to the question. + chatState = 1; + } function submitMessage() { - const userMessage = userInput.value; - if (userMessage) { - const currentTime = new Date().toLocaleTimeString([], { - hour: "2-digit", - minute: "2-digit", + const userMessage = userInput.value.trim().toLowerCase(); + const currentTime = new Date().toLocaleTimeString([], { + hour: "2-digit", + minute: "2-digit", + }); + + // The chat widget is only active for the final response + if (chatState === 1) { + // Post the user's message + addMessage({ + sender: "You", + time: currentTime, + text: userInput.value, }); + userInput.value = ""; + + const positiveResponses = ["yes", "y", "sure", "ok", "of course", "please"]; + const negativeResponses = ["no", "n", "nope", "nah"]; + const isPositive = positiveResponses.some(response => userMessage.includes(response)); + const isNegative = negativeResponses.some(response => userMessage.includes(response)); + + setTimeout(() => { + if (isPositive) { + addMessage({ + sender: "MemMachine Agent", + time: currentTime, + text: `Great! The best way to get started is with our comprehensive
documentation. You can also join our Discord server to collaborate with other developers, or try the Playground to see a live demo.`, + }); + } else if (isNegative) { + addMessage({ + sender: "MemMachine Agent", + time: currentTime, + text: "No problem. If you change your mind, you can find our resources at any time in the navigation bar. We're here to help when you're ready!", + }); + } else { + addMessage({ + sender: "MemMachine Agent", + time: currentTime, + text: "That's a great question, but I'm not a full-fledged chat bot! If you're looking for more information, you can find our resources at any time in the navigation bar. We're here to help when you're ready!", + }); + } + chatState = 2; // End of the conversation flow + disableChatInput(); + addRestartButton(); + }, 500); // Reduced delay + } else { + // Default message for any interaction after the conversation is over addMessage({ sender: "You", time: currentTime, - text: userMessage, + text: userInput.value, }); - userInput.value = ""; // Clear input + userInput.value = ""; - // Simulate the agent response setTimeout(() => { addMessage({ sender: "MemMachine Agent", time: currentTime, - text: "Free quote limit reached. Please upgrade for unlimited access.", + text: "Thanks for visiting! Please use the links above to learn more about MemMachine." }); - }, 500); // Delay for agent response + }, 500); // Reduced delay + } + } + + function disableChatInput() { + userInput.disabled = true; + sendButton.style.display = "none"; + userInput.placeholder = "Chat is complete."; + } + + function addRestartButton() { + const restartButton = document.createElement("button"); + restartButton.id = "restartButton"; + restartButton.className = "hero-chat-input-btn"; + restartButton.innerHTML = ` + + `; + restartButton.addEventListener("click", () => { + chatList.innerHTML = ""; // Clear the chat messages + loadConversationHistory(); + enableChatInput(); + }); + // Append the restart button to the chat input container + chatInputContainer.appendChild(restartButton); + } + + function enableChatInput() { + userInput.disabled = false; + sendButton.style.display = "block"; + userInput.placeholder = "Type your message"; + const restartButton = document.getElementById('restartButton'); + if (restartButton) { + restartButton.remove(); } } + + sendButton.addEventListener("click", () => { + submitMessage(); + }); + + userInput.addEventListener("keypress", (event) => { + if (event.key === "Enter") { + submitMessage(); + } + }); + + // Start the conversation history when the page loads + loadConversationHistory(); } + + + + + // Initialize Lenis for smooth scrolling const lenis = new Lenis(); diff --git a/themes/memmachine/layouts/_partials/home-sections.html b/themes/memmachine/layouts/_partials/home-sections.html index d562754..46f059a 100644 --- a/themes/memmachine/layouts/_partials/home-sections.html +++ b/themes/memmachine/layouts/_partials/home-sections.html @@ -46,58 +46,23 @@

-->

+ +
-
-
-
+
+
+ +
From 4bc6efc78f01d7f980798ced774a7b02f9c5ba03 Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Fri, 5 Sep 2025 20:34:31 +0000 Subject: [PATCH 7/8] Updated Chat Widget Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- themes/memmachine/assets/js/custom.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/memmachine/assets/js/custom.js b/themes/memmachine/assets/js/custom.js index a1db449..5df11e1 100644 --- a/themes/memmachine/assets/js/custom.js +++ b/themes/memmachine/assets/js/custom.js @@ -204,7 +204,7 @@ if (chatList) { addMessage({ sender: "MemMachine Agent", time: currentTime, - text: "That's a great question, but I'm not a full-fledged chat bot! If you're looking for more information, you can find our resources at any time in the navigation bar. We're here to help when you're ready!", + text: "I'm sorry, but I'm not a full-fledged chat bot (yet)! If you're looking for more information, you can find our resources at any time in the navigation bar. We're here to help when you're ready!", }); } chatState = 2; // End of the conversation flow From 1534e6d9945da68c03cc62fc78322cfb64473ca4 Mon Sep 17 00:00:00 2001 From: Steve Scargall <37674041+sscargal@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:20:34 +0000 Subject: [PATCH 8/8] Added 'The MemMachine Architecture' section Signed-off-by: Steve Scargall <37674041+sscargal@users.noreply.github.com> --- .../layouts/_partials/home-sections.html | 65 +++++++++++++++++- .../img/MemMachine_Architecture-Dark.png | Bin 0 -> 51432 bytes .../static/img/MemMachine_Architecture.png | Bin 0 -> 51460 bytes 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 themes/memmachine/static/img/MemMachine_Architecture-Dark.png create mode 100644 themes/memmachine/static/img/MemMachine_Architecture.png diff --git a/themes/memmachine/layouts/_partials/home-sections.html b/themes/memmachine/layouts/_partials/home-sections.html index 46f059a..2d5815c 100644 --- a/themes/memmachine/layouts/_partials/home-sections.html +++ b/themes/memmachine/layouts/_partials/home-sections.html @@ -11,7 +11,7 @@

With Memory that Lasts.

- Meet MemMachine, an open-source memory layer for advanced AI agents. It enables AI-powered applications to learn, store, and recall data and preferences from past sessions to enrich future interactions. MemMachine’s memory layer persists across multiple sessions, agents, and large language models, building a sophisticated, evolving user profile. It transforms AI chatbots into personalized, context-aware AI assistants designed to understand and respond with better precision and depth. + Meet MemMachine, an open-source memory layer for advanced AI agents. It enables AI-powered applications to learn, store, and recall data and preferences from past sessions to enrich future interactions. MemMachine's memory layer persists across multiple sessions, agents, and large language models, building a sophisticated, evolving user profile. It transforms AI chatbots into personalized, context-aware AI assistants designed to understand and respond with better precision and depth.

@@ -245,6 +245,69 @@

Unlock Complex Workflows

+
+
+
+
+
+

+ The MemMachine Architecture +

+
+
+
+
+
+
+
+ MemMachine Architecture Diagram +
+
+
+
+
+
+
+
+ +
+
+

Agents Interact via the API Layer

+

+ Users interact with an agent, which connects to the MemMachine Memory core through a RESTful API, Python SDK, or MCP Server. +

+
+
+
+
+ +
+
+

MemMachine Manages Memory

+

+ MemMachine processes interactions and stores them in two distinct types: Episodic Memory for conversational context and Profile Memory for long-term user facts. +

+
+
+
+
+ +
+
+

Data is Persisted to Databases

+

+ Memory is persisted to a database layer where Episodic Memory is stored in a graph database and Profile Memory is stored in an SQL database. +

+
+
+
+
+
+
+
+
+
+
1*Qxqlm-eeeNUKQzkqDx9#G5?U<2b>BExsU5D5YlF^hR5<9Y#0A+W zIgb}eIeSZQT}D*pwY0l~6qV_A&+=<6jkHC=o@rhbu%ig!RUt*VKgL`1Md`!f4t>`8 zP4*0LuVA6-`_eC6Yk2M}qZp2LLeMmck0?(2^E~orm#;D|6si?W9x0*BUMi@u8Sr1?KW&iZpaI8w)SPH7} zE`+BYIEOVVqk{(Nb1o@ODl*M^f6OYlp}XR-<_b9-e7zPiFiRk;K41ONs9?l%Ix^Hr zOgC?2syQDC{}mSIb^#-_>fD@}l~oZWPWMz6(t!}o2)$9;8a}2n4Imk+j4|HIcp90V zeOKGJ6RV68ytqAPi2pDF8OA;9^!ZFdwG(1)@ zP*6)tB9zn4h>iXFE7ZSJGN&{9*1>-==5nh`hi^B8h4zbgmv&;*DVd|iq>P@Tc$EO< zpHSYW@*Y8@+r2yV zX47q;PYuYE^xK#7mb1Mj#f-u#t@;qY44L>bNI<=F|5A2hs`N~tFiVn?_an|USWVim z_9OOM^%xJ0uC-~ZGW(b{r8)Km;{HgXsUJPD{?;Lk&B}(H2w5rrd}O&hlKS^aBmh!p zgVkS0t0dxn*PFUXqT~bEK4Kay+gV>fCH3+yBYPr}~cgnX~mi>a=!da*0<8ZUrl2CFc8#@oqj3*ILia!#XA;l+f ze22czvgvu zSnXUVttP@obp~6aG9I?^n9~cNjtJ4-jj7{b2;ELnyDI1l+BhcgCn&0uD?3b?p;pNp zA^q9@Ft6A7UN5B0q}u1LT_al=PMJ=9F_4PAv(C*pV2f}iq($?rcNL=3GNmL2?v%Lr zDj*Xm4)pIQJ#}T(Ki;_NPmvKL7lk*}tuac*4ZKaH+a;z(VeV8yKV4R<%KY)(Pk6=B ze7&E9;5I$|C_A$~^cI=vb2WI-BtuPlnO9bj&!WK)c*Q=hH)y>=FvL*W;FV25Skx#F zoOowIhBUVn6LZ9u-H0^-$7J5INv!s#?DS_3Qo;?0E~uv=HHv;{upTvuR#U8c z(I&6;g1Sn})_2bvLu{8JU8bN$EMLEHNT2KCOFki>JZc=Vw9rFisvw5-2jU-SbvVTn z|G|j5E(y)<*U7py7p$`)sRa1D3Ff5)E_C(+UPqzBG~TpSGZhfcK#3VF`T_IjXW+Q_huL0+F*J~DhGCX({bC2&-Xx*3W$o3g zQn^F)@u-VwGoI^uBZb&}eo0@YH4r@(ch7cBIynl>(LS8_U;``9*A+WNCxYv=A!~5U z^iK~1TX<^==;5t9hh|BDs}hNmJ=#_X1;n(~O)7_yI*uy7ES#gmcD+%}mb?+ZI+2y~ zl?o;3V=^f?yQ<%#hT9vBac7_Lxr;Oc+xCoS62$-JRAAo@jth(n3t6gbDv=?X+2*jYR2Z$c^2*&nefraBVnmil?r z$QyPKiwm-EF^srxHO@GSY>7-Kr5?ObMq=W8pS)_Iy6mc!u}>!&+(Ui3kOxe&B8*p& z0HhAYBY*tT>(=QpenU`|YzJrL*L;v@8v!mi0~;eoEx~o2zMVt87;7N~MSs@-<>;u7 zwHP;0xQ8OZKFlELV;VZKN=wWWeR+2*1z--E!&=Uv=5y?N=7E;Uh^OAf%Xq_D+0hl@ zg?Q+cTHK-zV6YZj#-&U3ErU_+YEeJwYUG_r6^hTDqk$@X&=h9NSvtVF8bC4B-c_W% zt9FfpH~kRMx>Crp0FFr(SwPi%onF4v2rV%-bq<^BRCPVkIr_3Be*-nh`Yq5<9L zi>aG!o^Xhhef+eJzax-(zVEx47m<+m4dR($w8#IHrC`JqIS?|Z;34ii8f6doW2Eb4 zN9UbZj1+f(iFN$wD6#MJ39Qgv*Tfh0oPw?4IL&=|_!ZIuEgjvzi9Qxa0<{=920Sb! zz}H2q+>WdRx$q)m_}j$@6S>eV1kafT{T(yD!wnSmA=1)+6bRS9W+V*&C1HkF&p0bE z0YxNqX(MkC%fPCw|Ba)GPGTU&LiTt0CJ%F;*yv#U<4H-eNK2-7UN|N%XNyK^g*)EI zyy~kzUzBv2Y|dS&unA(b%`|V&u%NosDH2a-&@rd5CUyBG`P3_k(nst zB{jW*GQ_^+ddO0(#qB)Gdf_Xp|9IV2`S*(!)sa{Qi%lr6=xnQz=zp<*)Ch+Kz4A!F z@M>1dKcD-D2||spQIPSc7);X>#7qz@@i93O72pob4i4#JGtuqD{yF3AnM7=3LK0hl znCj<*S*q16VCf$q!b-M?eIFI|DID#4iR4a!LTxojZX3{-q$y zrR&e*$Z~eyFu)x^S9-2QqDB-=4kxr3C6t%**%BRCQUO-nvzxLwDL#@UGx*q@zCU-O>w;4*=U8^1InHEnr!%gPp6?_7a@aM)mBNS4B zcM;w~4GUz{0~+rRU~a zzDugSPr$l(8zdjvUVN1($S;dS%Qyx1d?aW~4K1+H|MNYXRM4y(DPy$#SDPPATFzB1WVa*l)P842 z*@7{IzqkYjh$>~I`+Vf4Zz}VW%#OS|p#SiA6Q#_Bd+mndu=y%Ocfij|@*YkWsMHOL z*DBVh#CBz=DJjLd{yudg`^U9`*|4U(x>YwIgVD+qz(i}%jH*=zDU-HnKadIboa`Rws@czAi$Y`(aucjv#6E)og>sKS6RjdxsKQYnPY%mk z8E8P>UJ-{LFr9vW(b+Q$h!hl63y?vC2?V!1#el6J#RA?6OR6x(i=FI6DY+!2Per@m zb}KJ*y}p;)$%*BfyESU3gsR*XM_MF>KneZQ{Gw}pUR0SMk0PbAa3Qp7I_YPt5K~>l zzW(knU##2jm)?VIIr*%-rNW0w%q?L?QG+re>o9VXi2)AKB*_mheiSE-ufKsLBFka4Kbr}7mBZKHuLEqYsKmXC@|rbindenyKsXb%G40%1i6BIRz_ zgga*awbE>!ua-4Gcx($(-RgmmSOqyn6C&M`N<@Y26|&B-UNRr~(T`Tauf?xN=*jXRg_$``^y@ z(-p=~mVQPzOX{f{j(_4N#&lk85tcj``R|S{h0gj)lRiAo#JF#bv&PD4rfC}YezHH( zos>67ZoIzv-oe*WjmKa6-^M8u0#kC)Caw1Y+&Lcq-r>#Uc0T*e>g#bP%#H&E^KOpY z+ggNLWR#mKFk!b8)iQB_*p@RXo2id<1m zH{s9CuH|>Z;!7|8P#Z389iQA(GFy0qXrORL85L}osemSBx&uj)lEVs} z-S`0+9Xs+h7v6E%Rc~;NFG})~`zj92x0l4W-HmD@sl-%BX?PjNsTD$CH}$g`p0F`~ z&W&r^FwskopY6*y1vxhzk>8M$Uw&uNqdBEH4h~W`FY!qB85ZNx>xCZ}lnW7nM^`zl|-Ot>yx zGX|Ev;sI$42s~=}tN)au5)4AESXv9{+cJN$@w`9bc-l`Kx5-YVJHt=792{S3y;ee+ z+$J&ccP$dBiHfENT4d?X%(je{n@Il6`tuTh`$z^4eB<83)M+W^|F`)<(cauDOQF!t zgft*AQEkd`s#f`c%c^j6*ZV8g%Tt!-utE;^yrZBO#*^;NuE5aK4I@IQ8;a@6_n5}> z%bix2eoCBE$I7|(?-&MtF0};W?i{;l+3?@?p#5P36flq!eMsc*FADyCahy3Pwb6|*iBcr4?*>}jZCT1mU0TQ zVs!h%zT2LxH;^=NaG(%GeYu;Tx?D-66RAjux+pjMEu6P~crKocH;NE$zzJ8n4}NVna=tbE+xrGhq|Ef}=zkAar24kfB>Ij_>*C zjZU6-GLDjSY(iQ1a$|k<%?>5CeAf}1A(`*_gWa7{02fJAYci00>Ps|3rfW%J9`Wq9 zt0Qu439Qp}D?<^}n?Iq_j($FpIz_#nGK6Z+pYE6L^2C_yZgpK2{~yuK-anOQ`?La= zOEGgbbf}OUK^SCYbVj-L?Ejel|7#4fK>4^fbDlc_jTG+;G*Q#My)OIK$`2yLUd_ zeRz`Zm`%JCENDTJn0aK^9)$QP9N!hNy);N@5sV&94 z+T+~Cp}u0jS(7?i&EuGph!snHqY-8UueJl`?|K9%3j?wB12wdVpRNxaI>vt(2?!?B zb*O&ojoTtFdRq$a#c~ZBNSwABh>k5TXrcNmIM0vYdYQXMyZ`ZzB7pc-{%}NF4|TOL zT{f`{^0izJRFNy=!8Q1&a_h<6b=xKhIqtdfzbRW*ZnAHMSc6QW82-TPw0482eIN=z9&Ymd@p9TpkJu*@v7SDSnH}BlZqfOOdZmh5&0r# zW%~G%wOo+|i?xoMo68tVMvku7nm}r%SKGGL&LEHUTB|ad5prT5z3+v^>WGlzpR+Qa zm}Y$8<9g3(KH{@DLpVP5C#{{((Mosn5IxV$ES}ek!*K~5ni=j#2-yd;6Ww}#7<%jJ zp(;DkNGOPp#%t?)mSY+LzrE`R?^a~~I)~1k>sLa`ZtGG*zqnA6T_o4abrYU)Fj>)=^w)AIi1uBl;_Kf zcAHj?AFq=Qj2Zj={1}x4hRG>3zW?r}B51nzoAk<0?%O{HGhjKT`IBkVpUK9eh4#J= zILYI+>S*?-w$acmf+#$-c*@MsYZawmJ~)(ZrhY3M0d5CQa#pxg5ztu}sB(+meL0HW zQ^tKO7KHHm=_c$y_iNH1{({|deg(Uhj_4QEGf?F4cWR@uj_E|x-IO&FT)3OI>u->Z<9QpRpoFD`o5Ja? znK@8ql=1qbb4Yi$9nzPrYTcLV&9H}Tl-6@;(Mc8^5<*3Xd6P~H zDPI4@FG*A_hAkH|`3q8@n0Wm{HVAX!Gc72-xuS@n+b-HYnGt76TUIOJM@ zt!-mlocVF$l=Xmyx>@S~WdN@6CUnw>D#v?xN+RD5TXwGHbzpKQZ+(knFDzDhm5$QcGbTfN--|0 zqol1c!zNiiD;m!K7AFOslRyq8U~IJ~k-t0ENO70>8*UwT(3<vVl}Ig9S2 zbHrv~Je^TERH;xgJ*@oKX1cpMbPlcnp`t5--FOCw`yOa{Psp>A!X?0peIFdrAm%mf z=tj5E_G^niZLXL}>LVYece5J(hxTG+fnwtrDWIG1J(eZQOWS(qa&+6e+ z-M7C6`)O8mH~GEvM)aJ}f8MFED`B6&>EO|(#QRpp3n{m;8CB9hwk~EH;wetjY6uq3 z-oc$N3qGKc0i?XZ;EtDPFOig18eMMtkELmou&(odw>{tm^&C`|iCXOMR@_f934)VB z!UAtk(gvt>ZhOBV_?*~#oAVe$zfh9JI)7Vpt$OvGKaP{@R!_XU-<{$(9q%SN7@Wy#_dEbIx@}pgL_huE=Y@nmuvw$1>NaGd* zXnKlR>Ki{6b(J@46l&6ACdWTZ55|k1ri!9E*M#mjFS=*J4l%ZFcHf$l^z2?AYft5u zP%&1J52V+5h3*y>E1xRh-9?p>ezfhgKRrF00lt9sp@5XMQ|;D^Jhlu7Z`2=&v8?@bt{bCoeO7Sok{!m`PXKYUT+XDoit zpqN0^?1Xq#r&*ke)GL+I_K-zV-!|p?j1#|!QVLV}n6^(VrJAOEUD;nMRB$Sv5e+=? zzYARxN($cpDk+dWZrbTInL>4JKJ;5>Ub-A2TC3$eEVUb-DyYtIt+$+Ier$hQ_9$fz zM@1g$_37v?>OgIWdYxRU_kuuu_k~>&oM(Q=apEV`bSbZgU^ii|mF%WAD{$6svguArix&LGF8GX(F^Nyk*8%Vni@hZPfJ zQef+V=rCHYNF6-Rv@4gWDtydl+MLiZ7A>^PM;mU+!JQ%&-J7OEZ91Oge;hIyOnuu( zy4bV-LdQC8v5l;*iNJhcUXEdl#H#D+OhB}roXYs7FHR-u2 z6N%maD2G2HQeeT{2_4Z#sUG96fU|R@tnO$U0Y_UBl-o~X1WBii04<{ zlu(@}#FvWN21dtG^`!fLE>5@gPlyp{_rg7nG;#ovt>Ee)eCsO|B!i-Fuf$PW3F8OROD~`iO@U+Hy}y zSwD5d)AFg~=qMi3A=-HoveNP&1HPUApH4GPBL50?zAP4yko^C)nsJYLmUM|YQ?QPf zup0RDA?kp)BK6?_ca#1p2-BT1UZ;%j*FI6rmjMpK7lcS4JHPDKS>XLA64otSl7Ee7 zP2B-&7$oH{p-?A0aLL?o-#*;!49RpD_$P@OW&!sr>I!pe3obR_o#4wAPt<4r04WG8 z>np-jBf;1v>6JSQ$A^cHrV?>bZ-M6>@~B)>be~1XRDV-hOSacaK|Bt~6iWPj9g8HL z@>6F3O=P{vLha{N-mhpDLt3iEq>l5|h(ugR9Z9n-5#@a=AtFIJT|c;EdVX~Er8~`T zp8QSHY`3{!bJS*lyg8MawX3K1WU~gpfVX}y!%0i;p_QmZeC^y?U|NTVcyb{;2>2fM zZ7|a^Dk9{iSUT%F1e_0PCbJE?{22X})iK#L z(mx0dK&k`|^H|WEE#+OoUe`zdao^F$4Bi_}|I*j0GNIEbpCV7nThuh1C&FoOK}|83 zAeo$y&wxucr2>bGuSJ zAXY!e{iKceMtXWs<+m5yR5Vn?0ahxj8c8JMw{+CKu*o>7)LX*nXD8l9f!Vza3GkcK zBC#)f&+}!6TeY)~sQ&Mk@fOXlr#kokLQ$CrV`FbPJr4U+xxV1sy&N`wGM~_wv`P_f z&PjY9gMOT`Q6@8nzx@las6qa|QQ?!Wk#Dc&(Y>bKVB z|CBJ+!iAIKNg49{U76e%K35@3)>P1Q}*ksII z^Ax9k@Fo8y{7*}DFgi4VO$%d!vr{iCSFlxPh6g}7_@}lQqt*7pg4)tyxTZvM^)O^s zF-p-68GOnqnA}8h)4Mj6Hx}DehBZ0LsQ4n9f%jAs==uMPOBX2IgE^L1V1f%*z&Sg? zGzT}d3}%dI>5*z4?asC_8cqUWnl ztU*p}xP#Hdl~9#_{j$`d(I3XgUlQax4wc*cU{xW4dj`!Uyz?TZ((e0eDfI=)5B7Z# z$KKbIDWEjg4-F5$sRX2BEQqavbNL-0ux8s=mSwnR*y+wh5_jLM#90=I zJOg1rT}Q7WlZ|RliatDAR^@{QaqL= z&16vEIQn%__rvwJ3*H~PDjJsep+U?^!mKc=X@vy_glA&}!YRf63h)}`0*zYSi|#<$ zq*>ozH>j#qn`}Lu&yxMLDj}^H)#tTYyzzpy>2yot7z&uRyc`ui+gBfJFds@XwivIn zeyte~@;XlBA=aV80#7N57aW}bG-M{do-h$R(3BGvTi#9n6F=5w{OhD0_M8hp^Zs7) z9rDBnf>KdCl{({DZszzQE;pQU*~J29Ptl?I0+nmH^E2g?-=N+~c&?!sR z<7Vm<{KhMKk8pJwxN0dFwmzE^?U1FLXWHCLfm`=xY?BA>5Ot3o2Z^ZL2A+qyWHc;C*3sV;O6kQMu8G=vBV{x`&K}}o#)@IyY&n& zQ3kusI7AkxMYBc0r1*calpRFu5X|&xY2lVwk{qqsitJ##&k3;^38o0T9AkXTj)s^* zIUxfC{SOCLj=Gyy?qidxBR2U>TAS(pR{5<49*vE?q{)cUS+u@O;7Db%!v~kUwzj_# z(+rbAvznKfhK6+vhx*89U&rLaV59Be1VB&?JMOurV*buI>{df9Op|#5&FC|3!Q~0g zb_H;_)H0Z1^leq0wCnd8@@_4}S!HqQ{&;^>-<|hEz#<8x=ylsa2OO~$3X*S3 z#)#Iq6R1DH9jM8P7F>y&#sE4x$2P8=S86CjWgckz0p(ps`on{b0ss6Q$NO1Lf{)@x zD2N>R%c+0j18Vr7VyaU(!Nff(T)BAHXH*g^h)gJ`>~&%-sYbP&X1>NVC|3JgBw3(1SEGujDG#j&nf_6 z{}Cb7f~(EP?G?U9`23~ATG(?91#y6Uz99c>JUi1m_K?wu`cO?S)XfKeG22+dQ~6Bl zLhMw2@u4Hkpo0h>YBcjW`&ZMg+8PUqlyNF*Ue5Rm#g4Hazy2FANW`uBttXuo?x2u& zE1&~4VFEp4R!+*mAv#&_tXKXN29ZbB+WfhwhAAX6`FT6eeHDqbOcjmSb735ltm3m~ zo1B_~-LhI^+d#y(nx^UNKS`#fOo47bD&R13klK`L{57m~4IvcdSF}B}t57$PZAMq* zbHrE@Afv*lgbFJ+bwMX%z0I?6wmyoyzVxc=V?ZpxlT&i_4OeCa1$jx zffGsRf2ECy#0AqrQ8S|E8yN~6$4;fJ+r0kOrP|nG;Gy@Zw1X4>SVTsyGDRDMeoZp> zn@%-to`aWDoQK5GdU@58?m~RgB(_;94f=K*fY0sCrmnunZD}jL=^@0!9H{rtNTpOa`5rhR?WB|l%OKnA^$86Udw9pb)c?9jBTUM*tyPY$G; zk7AcS)fW%gUU)$?YhlWIhQ{CBvH*sf`%zV2gul!6w5BP*N|V^w%Dup}0w80FU*>8o zmHrX>9F#!L&ilx~rM@L|oO=RF|J4F8U_AL~vtPao^<(Sv!RQqZ^bFlogLHVtw7+;- zR}e3dBA1Ra>Y&4lk<(MGlvd<}qEa9omv~zHm|GJ!iHEOwi_z>K02h&;+D)$L1#9gOZZbFY zD+Aat;)eFaY%{HZMea1LzDHsq^T!84!|aVO#Zb`bQCAmEv9(7cdi3zx4EB9oJ=wUy zi<=Mm3gOlgHc<_a%NdSs;Q;Xv59q_|dV|dYfI$L`?n>h>dA(N8>ob7S_CbDUGzY^o z`pv$X30NZU01n&w@0NZhq8ude`|XrBVqkgejZPGqP#YVDBLkIGG*kBz;8yJk!Vt8Y z*vGmskEt^4+W;tkoq!R}ZeZN29^e^z-^^R){`eoJ-3H(TZ z&4qX+ioSaSUNen<(1ocR6k;5AL18p=5$kV5kt}hn(#AKaI#4^DP#_ReBu@d;QqJ@# zHF@)ap;R7`GUAF!s}f4nz=P(b?a=`sOX9q_&u&hZBj3nj&EJmy{tZDLe&26jzZ|;i z`-t{%~oW^XwddrU4G1>*)%K zwYBx#PKKjA_lnQ0zMgXrZo^Kx?O2&Ex9h=Fe>Y&SC8C+%EUg*&>vOvd22QDjF{2nl zPyV53MEQWb#cDi1#C&P?%T@C)K5wq zv;u%MDXFN$zznZ`K*QQS2&oksYpa|#K1b+e{;vqpd$s*&t}Bai}^CUuxt zA>{yn@5SUiiDaEpoxXwKt0ltxfJS~UNDz~uXebh~`yOCzO>MT4vY|{2HZ!8xmf!yV z$sDKxwtS5uvBDhvCyRc$^mB{0pqkfIZkZ!}66LVVzsonhj1Q@ObT!L9r ztG@qe!-7VEIuCxSx#80)er3`mxVc*k!Vn&PXD_Qj4w3OG zN43a%ti(w|MFSd=b+3HU{`!pZeZ_+gfTL!i+*Wdy-k-_D=t&TwNRl8fR`87TYo!F| zBL{quiTQF8(C=Y{rFWm_$FR$Z!aCt`xs!(BdyX8V1m!)k_5z?mB?}~fICa9~r|#o< zhBmqG2LjYo;>_L+7~P!$ccKXAmF=?63@aW%9+^2_P>vGLqi&8r z#)_vk&Hqw9Y$D}B;xc;eN>sAnI{j(?71#JFVdO>>n5Bom#V1tR+S0j_ zzWiGe>uP(2)6GcSoFfi1#KT7<*homqQ%G=eZ(5nE3c$z^Ci46xCAVf`;sv z3M{zVelbzA`o+kS{)d*q+tbx{t+oluf%G=F<5_a`s`>XH31vU_d`K0F$>qJNKOcgq zSsizZfW?EkmE_1239|iO?(d#1M>~lY*E)mFHzHZn19nqQqoE;KNnb1!l*n%?54N+f zUC>lSMPa0iKj1SUCxb+b3=3xlZR2Oj5ru974AeYL-l)8u@cW%K+7!H$X$0I3#M!Fy5t>{YhLzB+itekShcyFD&6XfDdpf9r&-}+$Eg3-2%rwjb`+FnV%i-fttG3X&AawZ3!Z(J zz}JUcVZGa7G9=Ekrw2H`P#|AwNpGu-L7MIy&$y_WGF|*DX=nYM?(L8k5h@&)oqI<4}fX3)`J*M+r99(r-;xr#vP|vpe*qy5-JphkQM6 zjzvRpur;-KW?)q|n;gSvt?~e1SN>3KI%%~i?ai6`AQWcnu>kbfVibWSqdo-C$R)p5 zjj1S8l~%lq;B7Ax<2N%mPlL$eoms|sowm-l{OJ)$)OBctC;sS8pnX8-e$&d0%z0< z7S#1d1CAtIUtn1XB+I6m-}V$a<&&4359WZuD#;)X1zml6XkTA+RZObK@|tZsQXzL0 z@x;C3?2GKI!8H)~hLKlNx{cy8HVDgnxY*wQL~vDHc)`cJ_d3huj^3C?B;2Q(soz=d zY?kVt597yVn09lfk)$-8$-ah`#N9~3|IMFUebhT(u8RYJ!w|o>KgzTe#q26tC=sSI^AeX*9+nHRuCyd2F`FcLd0hl}`X)B3JVtOyDl&pmv|P>KMvbrRpvp04m+U zsB%Z%{Z3D}7Vy1OM*b!sJN^sC^;D3-z9$#K;C>teBYUoV6ezZDfQ;#Ofymy=h+1>3 znBG^10qd}+s0JNn_PzF@{~ReYYb&q(<$F2AQLyT$E0E!LN(y6iBK~&W=EWd&2QVIR zMTzGcW{%Iqk6eoWPf5`o|KoP&99JP<|AcMH!NX9*SzI)`&Io4tHOQc*W2`tf4;0vtXx)2wSzi@#~~MP2$;@h6*+gimX`n>z*CA1A!s3SMtPhO1nb)h zF(qqKqElA-&U`rp3P z>5V{4>*1Mvg3~s6hwasI{c10ePoR3r&L03FeCYFl6K7bNG+lLM0x6?@%;Z816i3)s zsMXt3Tdj5@YWCaG+UkD>RF!_SC``}y=%tUBMWUtHob!2@-0|ciE0{`ItxK=k+1HhV zGmJN9Xy$20aY?#`*pR^_eQHs37*T)Q@_Wn0-R0YGM#UNQ(!KoV7WPFpU=O0_v$ z_r^Mz{L8d!X!rU*h5K?%|JLNrkzXUkWYM}wD3j(y#=mqq+a@0}^(FfyUHp+BKnd)} zePLKjK?P9FJm$y$YvI03><@1)&@aRps_klCHbN@j%|1J!w1k-$Ag;K%(+uX3!QIse z%F;hWl?{QvH-_cdES?Q#E$55I(QTkv$Bev9&^Ot(JJ(arfF5|$QGH+h?o>^IY7150q<6$5*gDvvkr z8-8aN1K)WE);rrgweNy+*>zH3=PObvxI+2sxWHkAWS(Yd@IBg}63&L0=XPtz)s;f=iCV{$rI-XO$Qh{n#0%%Xr zeMYGFIT!1C62p#+MUOp4cI6wS`#cv zqc*B%1WA~}B3>1W^T%T!{ae07~p^fO?c{VN+o1o60k<}Ytn zl}%$k_!_`lwW);WtaQByLaTA&K%rlXC?{dImr&(FQD-`R|!13J;r83GP8vjkYoJDZ_# z)2QPbm`KFX?ba4+qU&kq6Ust`Hd;O z)(X7>b4pY$z0Iz}Ft;%;sZ&N|?AAzlZAuf%N$MSbM+N<6j@AN{7ywYQXoTQ|z9qA; zm{1z7RJ{VB?W0gn$O-alrVyhRFQMmSb`qi9vTXl&BDm;Wx#}E>L~9GsBAh8dQ8>ub z!(9S2wwsSU6;`OSX~%I{h)0)I-gMkvEL*JkSZl5X?Ks`=w*aVm>b9&Q>?GzRE7F~) zKk8KDw;wrZ9zgcm$-1X|pUMTCNS$;NY<=!NDYv-|f{-UBisU-2O?M#pVXHMJbGjBo zsnCis7oPcuNt1o0G25+|p_f%?b+9?s@R2L$UoX}d)Su|+uI_%-{B{4p7hqvH z{l8ckh!oAV2;(%xexyGC;YyIRbc1=YSc{f|Ax7Yc7wzkhMJVAIi>A$XIiAWnqECOa zB@M;o3kK0O$P`{(h008Ca(FN?HblK!jsuo^M%_{duj39bccK4NI02|Lp~6OJ6#!Y; z+quPgvo{sw#dUX+sXp<5fFpD;NYCael-66K*rwI-$3TEZVGcnC9V7q%n4J_1**A56Z?c9(K zYG{GBz+?X#W5jrN51S0w0TDk#6kTze(BSL(z8#xjd_74r!345KGuBRbv{z?07?1R%x@)E5L?^^Tj$3zEe%|I-(Z2|dA}b=MLI)lC zT=@8v8^&;)Kuc0s+#(eSRe`xA6-o7)Ip^nd!ymIZ4yRnB17B^#^(uHz@rnPHXCjTE zjjVb-Tumw|ps}_;v6nX;FyPd2J^f{DpZJ{!)BY%e&+Aw2UomsRPxbT-!?D|Y`zBe} z;gezdHn&ur{i4OMxoY#s`#=tSQ+6_;tWmgA$AmM+8bFIQi;n{Yjr7w5ClyF|Sip}t zDugJ#P?iaf$$SY^cVDHFcRdOk<)`bPZO|$0RD-XSzk5~i;=`0Xzk5t127Rt%gk=Hw zH*g)h;ZUG|^bVYXjgS-f!m0i%YcfikzP3lNJv;M!a_L%=J+SfJJ#!&u^RjRzj%Bv& z#-Ju=jN+aQ4$h(Zm`mV(D}h{Q{nSR^=XyHi4~uqnxA(~lFrEfx70G()CswKJ%grbd ztI>T)l5H`iU8O^T2`8ut-wtz=WX9`Ey-az-21o+tV3lB?^krZHe>7cA-oxo!+Dv#WTI z?5~-U9v#-HV#JYQ;(quaBI{cC>Q39_5^9#(EwqKl^W@c@t=~wIh=qWQX-l&voLVP8^TbHf6|JNkN>+RdVZ@h zU<@X)xBz4iA&XHod^OMdE_W1=n$_ zM!NY93UVSjm5q>mUs5S`dAXyQJ!!e$$ymcTX#9BxjA3C)9yNq(<$f9_XNlbjw0PO0 z0DUM0N^Iq5Hh}KcP`3vth_^{Jv>V-|pNuW`&FJ6El>&##t*=^m-w%$I)JNw>7raJ& zI##@Htgt%Cy+;FhF@CG=wB(P@(#wWL?-miqSAOvnZ3#|K`m*Lp!s5~fs9ry2LxRr9 z{1T7r_3uOR@dYjyDO$a55&YPy0C1A8?oJb>uS-rl^A@-2c<@i2FS18ixS@%PaA<&$ zK0Egh6Yd+9bBaQkvTL8=H2U10-WM@=Qb&ICyU?A+44^^3^-P^*kUu#q?^G3+G<0|X zg7uKYR+?otbgP&EaQ35mdA>Egl*GSus^Zx6@yQ52_m;?Z^q^N~M>blq!mg6y)W(U8 zQP5b*7WHI^&YQxNLy|TO3WaKilVeu{Y9TJuC5fVw#R|iV+BE9Itk{rA9vY1=ZCXk= zUcs*f9bgz6da?{^lx-Xe&~}%C?AzrAlXrX;HuSkxkDJ}062Jbbrh26EspdjK>i*91 z{u997@jVidlhp$HAOF6GR!q4*T@{l56AAj$O^RFJ=xta1^Z{j`Ug+C@&CY=F)D`aU zt!cvg>$wuZ#rJKJ4f@|0w|gw$;*-hvflu#Kl>HB62mtQ-`}Anp23 zO9{6KI9;{cm~HyeQ{DbPp~2|P*z9UkS{k^3R8fCJ0a8vYOq=On<`2WC+h-7R_sMM~ zDc9qLX>VIgpd#W9JUSGzJGk1u>H~rO4%h^dG%Iei`pUBRiNMUE8m*TI@v{Oj_o_FC zARtLcsNqysXLD)S*`;-MKPXhkem+pCn)?eICHsz{NY+k)9{Bdcq4vcoK!k9>rbL2i z!^))tlU);WSiF;VePa-`@&3*E0hI4B01Y=7kXAb%`$T1BLSKBhn{I9^xb+>M5AiMb4qljr=G&}?o02Qi)#^;S5*y9WmnIDT)Ko9W>FVR=o zMGkZ<)S%tZ719xIqoVH9lR1202u6~gUJvScn+cHE2w>}nvq@8d0Yw{us4Q$k6rHS8 zeplmCA*&thiTIZq06SF-j1KQd6bZjOoPqcP7Yrc&-wmgKjvQZ`>OrQ<^gnHTM1MLi z1;CLRtD76cS@!~vDL@D|4a4u(1b$BiP{IFhX7PXDNK{q)M2b;7iSrlXtpN8XEnCDE zBZePW8TewQ^If2h$R#t0thV_mXdl?cAp-9`69Gc$Zxo{QIvJUW*4LLu1gfI#lqX>Uff}^lVw~=Y#XKRYo}PbYs;n^wxLbe!{xtx5n^nAboXc zeR(*9FN0pUi4=wJVk0NZxUzqracUI~;AEjiptKsCC|DY|u*HzV5dB)d0@I2b0O%>3 z*Nxp7g!+Rca=Z6XPI@jdD{KxRucExjcLVj2H{o;>cqs~0=!|?wJb>Abcfgd8Pu_P< zVxc@gdYkTabuuOS0R*atR=$~qMZRW*ff3P@b;KL5^xc_VN;ZIBGWfF4Om6KNk`yM8|G7$A(!U4Dv9qg1^28!$6lxe?>Tp5_)@eoniVUrHK0U&Ur z=v9kzb?Y5+`$EJ!FQT0W_JL0o8_foFibRm6SWgxcoDKuKB?ds+Vl7n|v=RdK;6J~5 z0^w2FfMZmq$4=UgCCy!}5-TjCUO8Ew06Q&CYF0srS+2QsdXMuF5&D#qOLhIo=n@(Si?F zQN+9xSJwfEq-?f{7nhd`ac`r@sKsFs-m!h7pvdC=N-J%1Po&fxcL!7(IouA^#?TXu z<^!)MH@oSpfvhYrcz5aRC_KogNycuaC5@kI-3qlpE6S1b*fc@Z)8r{Q=>!#qhN6SJ znkQ>J4V;|-EIy34X*sG|nb;e(DVC(6s;a7;*K`28DQ(U5{U&dcGjK}+v*Acp@0PJn zT0^!%V9CsZ$xl(9 zu%TVccvDpq5`?9gFo>fMDC$%pZ@f4{thGt*RyvIYrjV!qY5}V}Y&z>e(FRTlbe+gs z2#p zEIIex4;WA@($_~zP=e4K!qTXPOX4p*-XnXAEz-Ua7ScsKe$(Fntx?7|{nxUP#A&M6H7YqaFx_C}Nu)hT>!sq>4!_EED=R zB}+2M)&vkE2)3{AS)TR3~_5S|85dnHf)UA4$sv3sC85GZUPtRD}1>4Al;#mft zo++pCUpP+diEhkaz#|zC9UL^zK&^K)==SMpOttEmpq6Bf^JEc#3s( z8Ag|}l{o-Inz05rsZ)hSktK%y6bvh!Bn z>*TfqCXuM0ryhEIJ6*9~@!nX}^-hSi26(fq(gGifojSHRG(+zr_z%~okRkPZGDZTc zOI1j?G4w-nKo-Gq_lteAWgDO|!x?(iZKTC`I%BcSW{xe6H#nQh1Nu6(iiY6n4XMW# zR!zgK?C#-VvIA4I)4Hgh@BOxhi`J1ftcmq}uww(3m?H(&IxuHu!)X~OB%AnKpwDG@ z$g1H+pk?v-w4Wlz1qW<*k~6UKcSj(Jvv@1JsH+IIcxDYiLMRl>n+_xI9JX)?GcF-evPS^}PeTjgZ}tAT4k27R%aEw#&0& zww!Pp@rg$@;4y{m0+-x2D(&1~+6FXsQm)&VBVfI+`_6tZZk1 zr@Ll5Pc67Um!!N9oI|~qZ|=Etx03~t`pHm<^j%jCo_50Gf5!3_7LsFfAUVkvNyU(U znlx;?@3t-%ZlzL(mj7wz5_NOslpcOPDW`_(b7{wcZMR-h5!^)t4C$t8al<|S4?*RB zcpo3R0h;9iTGspjC@I2JYZH{OT?o)Dd*wgbzX*C`IyD7)1ps47$rdAM1BH{wV|CBO z64WQ$-*cvCW!QS=S+H<}np9oB1TqqHbR=(%v+690D ztx^Ib25VK7|NZM{R3+&5#teW>)BZOtu0ij{Rvkz|0m6k-jzEQpi|$yFuZK`hJgVS6 zI4;y38r3}XmcELWL@ejthJ(;ebb7~%?fLWWloo~Q-70G>?~LqOElE=ay0Tx7bcu@`_xyvr}EfSW`0koHR))M~k(_VUlak zj!?oLu?YR-H+IVN!vi1rtY)KpCCk5A{G>`}syB4%TbDK>B3xT?tMl&591J;9tA4vV zf8EiXDT20%RrnW_T=FxaB3FVeefpwE2D>?mn=z-v{a2w^hrex6O!gQ=cb_C8z7Q(? zWS_=~8j_{|=%&2&z`*~jrLFE{>GyF-?Hq~(JvY+uHW;>$m-K~+%!Kd6Df z!0}-=B_wVb<(~nN>6>6e7Y%h7)hwQk_Abx;VTHZWuX@db20l>tcJsC^Gb01Q~3mU7x7SmnjGjTGynOe_Wx<>ETF1r zySGmq;n0Urx{;7>kUDfpgCHO&-QB6Qgmi~=cXy+dbayvMNb?Oo&-4DjwOq^P2s8K0 z+_CRH`}$o$m0{>HwzRpdj8O&w^yL0^HFH)Pjb^ycCy|{8#YA}LxAPfEXw7YTrlWcv zbydZsFq9yeAOk$uGU+wFtV8GfMq~Cm(*%3eZY6^mhx6a84kNl6?M6Y=e95Og>#M<$ zlBwOWDI~L&$pENDrX;&Z>|^{@@I-pHCoO|^EfU|K(4Y=dW6$QDyA@o$g)*-`gqqKQ z)5v`qH}F8`;R#fHwnRzF7v3wf%p`=*%)GLkY7%+$r06)Xkf1GRUMi9cdv>h%!xMwj zdGRqpfL}tdxoU6~^^7lB_C3^go0>ka(Wv%jryfoWK+|&RLM=<)?dhl4g^mAg$sbIL zgu;=Rz6FOypX;b(gkYYsWWDdu71&5Wy>a4{BAg)feW$!j;6tS|d|Ns%;=*MOgEab9 zrT|fe#k%RC(pvmabwA~zM1eR)^sx6faOKSCr(4CmZ)HojFFCzlaRu()Rw-hS8A5i%GPC>zARkasQBw$#!`jVn7*?xWnioTKtuWB1YXZ74BVFZ6rmg1!=zJLZy4q(9 zHtNy_hJG>)kUdKcLq+ASgfjabU4u(wo@s8Gc64cYDd{)@OM?avkp zEB9Y8+SBm~kh0x{Qf}$JuMIIDZ+CPL2Zs<4RnRqBFlne?Q?k-Y_rEq*h=eElB(2Ib z@V+NcrtwIB;tDW6vF)+&005Cui8%|ldJk6uiM6gTsh_GcWe)BBe2!deRNqhG8U6tu!7OSd^S`X1nrsCK)XSee;4!Uu= zx;18M+N0B#wXRb>vl($JrlTM$QQet@C1XkPa%KY6e|tR<;D?j+eoapwK~v5(dZ=Th zQvhGu-Itr2(o0n4m)V8AB9Z&A5DEPi+Cz))$Ls+Q3NrH3pZXb*+%v;x6msp{lLyZO zOJYUDpIjYG()vi69>td48{o}$mxas%(s9K(u6#z?8cFi8v7MX%X=Qt4tc%Kg0geS0 zW5puRtARYiACrn_;mU6q%FB&VObpK!SGu|YpTQCSku#9j2+ir^_i|PplqW-zV`S~!GL4NG`A0ssc*_)9fRbgWH(G&q`HBS+Ktc%R3oCT&y(S(1!L(LEsWJgXkUR8$?CsMn>&P-ezhvMVjcOJQU{y#VN=T# zLx4w-*+u{#7ul|--(q<23HM&GI~6etAdROz-X`XZ4uir&&iHxZX!s9%x8Yyw(#Sf4 zY{=V{L*@LhHYbgwXA;`mZo6_R?0iNZdv|+=7j?Z$*gUG*4<%{K%5(X`=1!rXVn{S) z#UR1@pwt1~ouvn%dfet;t<~53?~7LZO8&I)Iza2KM~F1AP>>XV3o9tdgtmQ<$e=Q_ z7bWkc#aZ%UZ`kk5Xo&g>p~;OUrxg?~h2|*#j5Q|YY9>ZM@^jer6VSo<-DWB56(jm7 z(#>7*-fO;Ig4BAt{04D>tGt|Jq1q;1<7$=ngDHj_vXwJmaGY|Hs>gjbAE}4E_F<^* zjfXnPu;@DNq^;^Jp{y7T&kCsTV@KoLi0STJCQD}%XJ)Fmu+n|a%k@fxN{e0 z%{bv7g^t>Zhz1zV4fETcZD{aBe$axykiymR@9^7{dQajuyJ%z_ z+k{^3#`-&Yks01kr;WeFNf( z-g?|$9H}QhUgGw0d~CMIf7Ggli!<_>@5D-JEf6S3Rkr?$$0WVmd9${X8eN5xH@p-b zHu^{>==#c-)&xpdUnaBHDp+pm%m@5Aymhalify>9qG=Y<3aa`z+EnUoZ&Qt1o3Bie z0GFj>6vrCIR>3LCP8#XoqQEr$M>a(=74*Ejgaa&=!q4A(bQM|NSCLl`HoJTnHT?KT z_;)t?a&YXpzE?FD6`AIrLqnwX5EY|{`{s!~f{4@PWR;ba53@Ul5I%W?;v za4#oD{yZUU_c1H~8ue>4+dV7aBvh-}IfIvr6H`Z+p12@uFz!{>cDpmBWW=z@ABD|S ze>y+gCEVadG7sXUkKb!3;${8`$3L^f&+j4hv-;PQ?9ox<)1L>83dVW{xp+DoquCg% zlCvtBOync!=JD+z^_Tw0_jYKbr9wxS(yorRgDA%_kn!xXs3(7D4rOL)!;(7bvUX}n z{x)gHd@CaEr`w-2cK*K1pxv>?-&ab>i#3;Vmi&T@wTJ^I28m+FqfTqpaUU8scD!CT zq4O|a&8EUP*!AhOG_b&vKBXD$8!dgK;v6CHyQzzp_>(kG*upqr)^*rj#`OTz=fT>X zqkZZ7UoPPD*6kzL2@KPdH-^p~efDf@yc6=9ozA=LC=!&HfR6~~*N%010?$(Ih6#1t zZOf6~VBITxw~s4$eHJcWRExjF`cDZ}6OISqUoTpn7gF=uFc0^LR$mz=l0e+FF9b+* z)n)YTwCR5j_7MT4g9qWCk{SgO7uZsRCk5YWr-k!s*@v~}Zkb8{1<9{J+dB2!>%as% zf?i=*oKi8{`aERT2iZ7#m3_SY<{pFHT3zJmt69a45o=oyFFjXpQC+DK!{IaYxkpmy zA71^O3b{bKsgwpJ*cRmKXQ6JbyA*C<;pv$A9Kiuy_7y~9LeeTY(70{hPwXqWC`->{{|LohivUf*v;?sh0Tcjox$*f8x4+(|?UDtJu z4-z`RZ)^-|(7wU_HC4O?iwQ<3`>hXYcbRx6gPJa?t;f2sUKa>Y0Sz@t2FS9amQgMc-d*|YrvM?o(6Kc|Cz0!xLGLEN8{ zCnSbu!hhTO_rJPeo;UD%Af@MH_mpIGe@_BJ0giTxDDVH}dj8X*3JIW<8Yz;o=aIfS z|I#@DeT^t^bnY~I@&7Ik$pVWJ?}aGx1<(I~2MwODji*=mys!CtM+KiiIlMwZJI~<1 ziUG0ZKRyNiP)ER+f~M(^uJ!M=JA~k(DZo8Ez_T>C2Sounz<+V>pWr+a| z0%5)@l=*vG|2}6`PM}3a^Kj#BWDp9_+qULL>$^(AQS1LKGK#QJ?NtuAR_rcbi-Mkt zI(2RTMDmTwre}N$RcfwGIkw<--iQOdF(zOCS}2H0hkip=5-bGDhq&N~mv75O0e=g@ z(NPC0JG#pN*)=4_Y%!LiH!K4RC1d>DwU0(>V|6tlO8&4CH{HHFuSXSp_SQ%+0uZw% z4{Y`8+IAi$oDcIBWSTR86%~zK8W%(X_N&|A(%EwCeJE5Dl>ED61I9ZR1RNMq8r!9E z)Musr>-f^=!QC6US9tS6Q3x0wG#|Ne-Qw@gh^mVD@}CYu0h;_)(f_dcSSlyrNk^8` zkNXCT1}ugLcX8T~X&uT^EB;Y9^Am_l4MK|nC-b^N`+BpYasjCA!yVrU4<-Vp%s`l# zQ`)mrvBW8{kHAX=v%)zM4|sJoqmc_N2M<(|LG-~qAMLU!-))5!(Qg6kC=^2b5;j2@ zx8BR4TPYns;KKDgxxO%27i869Pt)i_O^GnDQatxmS70MVu!~QV(~pgYB*_KGTF}Zq z_BwQVp?yDE`&L7%9k%^9^J}g$gD@rz%#ZslkNf|zVI5s1^ zr!+~v3Wt7vsLBvUGWrO7;tS>iDSs~&9nYwuJpF|T-?Lx z_%Jyz!s$K+JFWEHQ@!!_Mrk`b-i?J;*-F(EHV%My{5oqCdlsg$MJ;6^29=lmPWF#y z4G!7rq-XxQhnDS)3m=MygZa7GY)y5*a;96tH2ZR9K*ChNA&nZh8=gY>FAtOHo`wl? zgSsn7Zr{SGL`JfPZ4#f*ALh#<*lD2(IX2oUY)exm0rZ%W!f^4Xw)UEQv*Xv7EG44I z=|Z`Ig()fcxRWmqOs?;{qt5_83Y|ispvis{lPM9-rRgL_Y`OG|T9@4=c5{ETc5PK$ zFRj;=iJ0=mO5AnbSAs{ngFSb}6I4GXAg3ZwsYqNhd)mKmBZsnrvHQbp06#GRb#h8w zdW+S)@yHOdE2xL&i0gGhOC zIRUG_w-%-+zs4@t(WGT(a`q#b%<`_i`roswm|L>btORI(ygt=Lk5$d5qa_sXK!Ht} zsU-UMgRB@WT(X1S{*4ohKGbRg{^+{Xgr2RYpK6SVdFfjiokdjz_kvkOkZZ}!TForV z`Jauk4<2JR$xAsq=Kic+AGw%PYv5f*W)0W*xi79xU0vd3>tjOL+hzmRagY1ugpLhr zzL8{Dir4?C*K^HRb!ed<3^}Pmr+045?|0{RIOr4G_gI(Ik|X9Xi~Gb5+AR@XBq5E? zl|QkDZT(>A$mcit!(9vn`@B-T!m4^+(t&zXyh1R?B)~AU-^FxWooUr*XC^&!u0IJl z@UWgte;HO%^GD-ri<(D}j&2PpDZ_Bb^%j2K9Rs(jg1VQJvsG%YfH?KI;dy_arGqNX zT;M{j`u2juL8e+b5B5%LVS)j-(#5u7P~E&rckq1jtgV8b*|ey#n0=q2OscVch$HLX z=aU(uz0$j<#20s%QfbGFRWCt{z$9z8L8kS0E~g-YO*roC2;uv+Q*Fhg=^?heHKsJ+ zVvpk4$c7C#A8fx$+ez2GYQS!(tLEBT9k+2_-?^L{V9>zx(hL)0XWUM@+~d8oeJb~; zu(c@raFTt4RL0wNG*&vIKRf8t%Ho*}UVav2$N zYBIfS+I!x)ey-=`Y~j)9xE1Gl895dAO~-PV<}y8r$d3=J+e++)o!2_o__J?pg_hr8 zeY~l|ZipqorQLI{8o59FZ4V>>eP^)r%59x>3q>HDt3Zxz`tS!mm1HWlRt+OAmEO>~ z_e%10feoW)77}h`ih5XgBH+vRhjr@oF{$=+=*QkyCZ$J)Ul|8q+a|3dPIOU7-&c%a z5ytiuJg;Yy$?xA%KaUz;LRfc|$4Rj-G1?dLL^HIo((XS^FOT_M5Xz4NA8ra#ED@!Z ztIeIOZLd35uH3ia*c?8t`ma}WCasHna@Pq|Sa^YzVfJKXhLz&GK;KfTT>fno9Z-ZnpAE9CQ7R}|be!~1c{vMTYkrK_G-G2mOsP|BWfZ*w3+62)P*A-v{@1F$FUMT}~vde3A)#EeZWE zrhM}fXmK2JJ;y)q`|nBAp1)fai7fjx1A*87;yiLF&@;f$xHtcI@k|Qvm%Ngw^k0D2 z`@d5b7*0P38om|NC7=IORZ2?1=sTko5}cYZj1OJ2T@kU|gjf;WXMmJuT_tylF@B@| zlIv?8*Mv(c^n6N}aLw(fcpRtMsV#E{bw&n%@*|cJ z@Pq5bb@9zwuPh3NeJGEY^tT(Hx02UrxROIRym=;^icI_*WB2jeWG>R=0)ClPZh$YU z=<0Va>4tW#H*Y7WtpmXmt)BaV3WX}SX_2JV-l5;r(R%>Q7-uMe=>ysDU;4(6nYw9c zVbc%_XTE`~-pu^2aL(JC@?mDZlUn|@;BZAA;wm9DdnR07(+2)8QbP6X45C>piATZ& zxY&h*G{#rKn?dklwI)Q;n13jMd@K3t0nsM!0exGMBZEaV=cVe*(nsa7@5!w_-vPJe zFOpc4#C{qRPX%w$FD%Hv-}ysjkE|>|tR96>bF6b@H^1fVL2S@;%zyXm=?<(z)HDgwV?;CRdU2^JUH2jcLalBM{6DcX_ z(YBqnSnr)IlNAS1<@WM6*Zu&wON7G5lYmDRk*ttOI-o<6i~63=kr(qL(_gjS1g<{v4iwzA0j!79EObz(zN~HA#5o&Rck(L~fHWdnhL`$DV+STsi__(?ZuV)1~P;&qd9JsCs}EM}_9Q=qtOEmUGnv7gTy zg=Hg&L}DwpuiHYRXr9OOtH_y6b5aJBkNrFC#RL+G3i7x4cGK~c9jdztswKa-g~_?U z$pWdy^d%46%?e(XMiVM@wcplq61umU@Np zn;rU>DoU-?=WeX1m$0|QCPAs+z9j-`CdzQu zDRcToK3)M4FoY9qtEg{6VDA-{{?mXbKG*59V^60U!ppL(Q%?`-c)P;Tw)4fDNomY3 z!?ldmRp{sakb$w~^p-_!o{#cS1&0rNor^&c7a$ecLfPl7pC21VRI=V@erZxrsoijF zmvFD9P^T(-$6}Z&3EUL+(dsSzfG#;4nt2|1!ZL}R`|tDLt2b8PyWR;uPt|b2$^k(C z`ho#R)I(Qmuqu~Wm8nA`@B+yh*S=I(Tu5$WLnZz#mCYRHDMROZw1~(tKC?atBh8&Xb%kjWLZ1qrN>SLa_PX~J7NJ}Wr$hrB(BM{Ib zoTxn3lj35h^nT>Rxm2b#ynJDU=XO1NV6^1i-sLcq|RZmJQGI+w7o&Z z&UolnQ>YlrEHH@P?vT+%duoIWL4*f|`zUPSCq<&8!a-dAm+O=^6mNFpJl% zum7cY#bC^1}A4uqOlEyC|p_Wyj@P z1;HzD+1@qt@p01U7){u4&TrDPAgpy?Xuju7iX-|ksxlEYjcRqbsl&+X_o-!mTH@8x zC(ETK&K#Z(JFov(4$QNEC9`y#@mCB}CI2TjQVjO(Uh6<%Zt;zgCk;gHUrXe<;hQW} z$!BSO15YHzpZmt?Tixd%n0Dh9!yR-^mwG1o)>BeNW?Ci!D1#(SxQEx3-As12gU`ZfB>5l6Z7!l;>=IWgxGN<-eEM-~3~`i-AVbkN(Y zMZN!I0B-u|#j8Cwl^Ix!5d;Le7kTCsFFv+UspcF9T!swY>8a@ae~L${VO&3<+wL%T z!T74C$k?o+%PxS|I8Ue%WI}|cMg*7NUIJF|bA{NoW z$DAN~d&tCO-ubEr!Kx6jS)jX{f z{{Rf`89p}QZ1jb9tEqo93LXRm3@mQHKZ(X8V32$T<^ptpkI-B8vAIR&zziuLTOG9- z^&w)`m!|w{KV^2{=TF5N5+M-4&4Y}aRHGz6*P0N;^8#Cu9nEwCkEagJcKNL1wAwca z0e(~msf8cab&Y7X(z_#A#doj?MgSf5Etey+zx-EGjv>>|a|NkL8Un0{7oeO-z@8hj z8no(L?tQ!HONY?=NORrGz`)u8(>eEFOX8rX| z8~dl53&#Wjzh`%blDvI*~xNEe2u@F7O@ep3WD565-?Xo;9e|pYJwo%{Fl(0TO&v zFT~t{0w@_TFTSJ`FVdgZd=@beD{mhxo-HuwzUZyY^+F2<9v{kp)1(McBqlq6|0pfu z&OrF%pX@X#n2MU(V2HkaJvhb&noSvKaBqUm;<&3Qswojc6e1q>O8^87lOI%LlZd}@t5_D~fz7D|xg_36iqJdYXtVZH;7p?_wt*0im&L3f4l^}2(!&KSB zxLbt2ya*j|f#XAm8LWd@VS+Cs!63SP$4_!yh+v6SxXNA75-K*C6_p;$mOx7nJp8zD z7@Oa6$sE0x+>2jQY#NCHy9IbAF7KT*m!W!>V}Mh0|L_O-g69Uumi#wR+8Sh0)`VQY zO?40KuBG0FrM+bQXlP%_xAv$-PF{~ z+7+Kfrf5(^aAaip;jxSdW+>Fyn0oo))Nm8c6ZNkA297;>C4jKqEHXWEN}_)uX6#;u zFQNr$_X%RV6*jMRLv1^Q*g=f#cOVGQC zg}+|P=yj1h?)0#m*@*i(cy=FwayDKkh*#fE+E#&Q<^Nl1@Qhvqye4C`x@Qsq`;i+Y~l+EX4pXv|8Q;nCt%@m-d zI-$RaHt&c_L7K^XZToQfQrltW#pB~Eo|581N-SGiX-RT{*IATie^bsNU#PP@x{ikt z>TRksfsXeU=Y?P`#x*iuNYuBlKy+0>>hb5exBXyxZAx87A}~DyoN4}p0u1`<8>#>` z&(|@veW*6IT`Mh^s-z#+_W0ItZPDX(Nj6F2BJ6dONi7-)t1Eq!fpmg*FwqV%-qU@m!nv%xO zpp^e??m(eBfv(6&09VM_xyN!%wk=b5x@XDDfjO>%{wqhy3@p_|2GIhaW?S*j&AA>7 ztJ^K9iB|4s#PJkLDx|vKCha=7>t68W;zsZ{vF}e8V>BmE!@^MH)6`VMqSD{M=_CVc5WihvGImOMU2j2> z{)}1T^0phM+tj>#)C=rNISdh;TuVh6a%N`SgXywP?igx=lVyQ1c;AbhpO~xu*TOsL z0gR)&dlQr9rjI>;q>kL*YLDC+ERaTnDW;_}B8itN2UEKvL}Jk!JKg;dv*m1m5by4m z-t}>h#&)Nadwt!{&X7KD6`lKL+fAig5( zb&hjrqvJPkqZ=rQ&%QRah}cG;%PD{=Uo7J8|2cc|IZvk)0b_IJ=H_NFy5I$gy{gd|?$XW5!I*rsdUJb<7)^JV1 zRvGyiwuY3Ebx`g?v9~u-VP`5^LbQlgTz>Smwm!q(=VUL8@re+;(_pdc`C!kZ+W;Bq zmk&DX#2zzUgr;6Ev^EGD@(UhTfMl75`eJBc8t(ue$JG(}SbNo*m*XlQq-6P?H}c=W zQM>nm!UxZO?lqq07!-g4<~IPLfZd!?!rC)J5D@nG0X6u(6B_M9se#NwcMz>Q%Pys~ zrnPHqg+3&jOR*j6{;W&=plqd$yn+wauhy}#6iYQZTWIb5|cEg^mUPC;;fT%d!#aS-X&;*s~;Ai=gCL?Zdl532% zLtfGo=bM){PS-CoYLbFNB<}<8Y0A3BVHYYNe)2QS7_|uu21rIYWjQ&mrWrxor8`C# z@C-^VR^68WkR+>Gn%{mzWY(!53Wx;007JRslxQ! zIFWnDW#Os2s{J8cw+-^&Q9j%-G0Y;gwBj`UM$GI+?C79tDsevM z=YlE7KM04=-WSp3^fPk+A0>fI1!=rl;<}Ez8ajG;CJ6{X&Dk!vemx1SmX!NBw81i^BBS15HWe(u+(L}# zRIIY;d<`9m$Dxwv*^NoVQ9R+;aYg*V=yI5w&rpv`OnXP$$CR-eeJj+~LkiFPF+{xc z--A5+1C-(114YlfJ1aht&)n1{{Vwe`{mX}{=h(RKa4|t};$+OE4Qpzv>-oOD2firs za3nLETg7*NHl(129cEQeHmvJiXSs;LrXRz&>TogTux%5+_g{2e(!fb_!xH4fPhrDK z;y_3YOgALNp7U9-!X4ajKYsjh1qOemc-j};C#x_Z5D(ehj5SEQ;nTj{pArRh8n!^p zXfTw>+Hf^*F_taq(o!Nl^1SWQ>wp2|Ghzt}Oz(B*0)PMu8&TO~Bc*rv>{e?doV)Pv zPUoH?^PP-5Nrk0Ag+3zc2kEJt+`uas&H|*G0*o3n)EbMt{PJYDBSM&<8F=(UG!AJ* z^F5X3YuV>BL^sWyY4z(E$@dodt*j{fW2t}4yb`7-}z|%IS?Iwn-1(4 z{8f~*OjC3A#w1C50kP<3fU@bUVv=Plx&KuVVzBuGXvG3StUzFOQd~Y-|JfhcH zF$GT-vFdg7B+}B-!J9%_RP@YEe~U~YW#CgQ0w$e27NRouP@OS9Xw{Vzdb<-Gjqd3wA&p5}LUAw*o2?2P9<=tQq0>?8bU~y zAFn;v9T`TC!VXrfL(enh`@?Oh*Gfr=uODm(AE!aam&STa?^oN8I@|>wYQ4En%dgf; z=8*2QHy#&rPJ4Cj@GiY5ZrjoV!`e-KT^^6V@{tgSnPm8278bgv4<*21V$tN#h@ieU ze~yth$vQC5(23bV5v@Ym9w|$Bzn&aRblU~(-$Krk`-~B#JkfbKA)dc~xDH*raV>lL zym@=&1{ShBjwCOy7aJX`t(kX*FbGy_eH6sB z^VeKWhjy-S`&UjMA}2a8O~1*zy1obRkt0+56F*|Y=ChOfFy6n2T$vux}}6$tPw^?HR4SS*&=-legU>UwdbWcZx( zwWZ!7wk5IR3XMLZge8=B0f@;UK*+UL*-s)0Xuii<+#Jr$UiesvYqmtCOI0WCKJS{g zBr>az-x!IeA(Wo>)}SR;yCT*d)*YDn(Oy?+8Nt#Xfrx>Pud=c-l&yz3nACYzp9fHx z4*TB#>ft0C@!b6U&$_Q9ah{O&LJT%!W`GfvX%1Pf_geOJAo9Me=j`)L2<2XJCk;>G zC?qh-Q3Lui?Q_WxISy9vM^Mg=Khzd;^+E(#0?&pV%1yh@VIzbddkT^%z)YITDP)Rn zKq9%2za;ndb8?6r@RI<%JlTa92#QW_dmyRfYQkhd&BGoYtc3LcS5LMp3|!%2R@wc3 z-}FF)eg#DeQVOa`DsL&D=jeY5upWUDvkeUVkiR|jx$fz?*b6fl_$CPENG|wW+w#v3 z8c70YoMVl_0)BCo6ju5l3uw#dkCb(Jn9teZzjb3kG9~dj^G%(soZticzw)Vq=YlZR zO4uB?|9%b_(nO%5KE0dG~fH0ARMzzy{O*zEkGR;Q3b83Jxg2h?{M2xtUfCMQ)V zi`6kW%_sjdS_m|&jnU)x0M6=ciyOPWz5OqM+(<=51sESX4Gau)(3iLP1GG{SQqNOA*pWTQWG@bDpdc+< zEmz?==HUSGz&vx56Zu@2wue)KN=g_QwCYfSU+zxjb?~2#C=UgyAc5*9fFyc-dr)o% z5Kl7!7G;4-KKiqudJ$k(03vhdif5YW!_~s`k_2!jpra#<^^5+1Iy^4FG58H-4$b$W z*FT>p03%8kvvI18F*g9JV+$zJQ)o7UNpuxpG55Sw*Y>+P-`V(rE#Cp07BM4C zuvo1a0Z>UuTmx9+@OeNp%ovD4YW*AVP=fZ*Sj7}@lX_iXqVpZHPy%qC%7|}3q3s-I zCT>0;PsS5)=UDc6^0J(-DXfTYf4oHjAd>t*(4vdi4>S5Pntb&9+u0cPKaW2H4+?G4 zNCHPq=H%wC0T58SX@-nw04WMsIz3E9;mf<76*ifSrU!x;wHqLGbaZ&E24Co!J#XyK zbG(K*XMCylfsA)oPYAXg0XLv}?wC*z3eOS^S}!Ut6VcHj$p$0_Y?LhC_pZ+fW5~fX zs@Ui0@frZFQ~(Iw)7j=OU|XG3V6{+}5_A3{p2iY~Ob+C<9dA{x3+_9o#j$rJFa> z%#=tNA(7nQwVy=oM+1hJ&ElL=cQ(+f_39aOXl8@o>wAqq8*VgUg150LX9R3v3!04+ z_ZZz>uj^j6Lf`ZMKPg;TMBF@jI_WIB?%gP|j5vN^T@wPzwUy)_=IPrpEle5UUF8vjD9H zj-9?31Ws+HnT(cM?e7$`isHBEnNYrK-|O@Y3e?bPw9lm*?c4yU>D&j_@4n0gE|YG5 ztTcG>43=hZU5(21vMgRv`ly2fYLA2cNSb;F-bT84PtyR2ycqEN) zSZ}>pUQpk`JoGa{`(AhNkMx^sWY+fcbAV0muP_5(37SmorMmf?Pw0u>#Ud|tV2#U* z32!yCi^#h3$W1jlSv=>r0dcZ1tROCv(A{CRaq<<=`8jCoOvk$3wMP#)B**RWVDBES ziMY#8Y5oSrHap#?-zRxi1H*&dJ2VUG`>QvFlbyEWFM*0+B~b43SL-h?;ADtfSdF(g z$tk5&!1r9E^()?CK!lV9m{$PS1?KnUl|nJ!=?Q8!ghdQsERtqWUKEKVyzwLse*S@n#W zDriypMUHagR`hof^s>zka#2Ap}rKq5Wp<#UgwT<>~au>Qx4QB9x%nggA8-f>olqyP2iTE`L1O*LLpEJz zt;LF>H<~|=Ff)u_Wb@*RjSHAjFIy?y-g%LA4D}2-+FbFL+Hm}N?Mt>z#&h~Z;?2en zkroNqbMNSSt^}D}2_dWfwr|aUcE5chFU71fWWcuwk$ah6!faW^q&TSZ$&7&*1_n$g zEhelA!twK@_(iA5E^9~^ZgR87#>h}^Z2l^JRRq#W|DdZ@5hp=-PW@}c`hu_JiqtP} ztkU?1ekqA6irA15pD=87vgE+5u@=k{rb|uHP>!;K-{xW)8ALPRiE;KOAU&O=%aa4u z{<3%+KX1bX?+2ocRHg|NbsMZ;^s2Nr(t%SuGQoZI2bBwhk!fzZ zSD_a8X;?#0v+{?FqNWe@s((u0x_M02|2&HQ&Gn;cm*;hF0< z=_s^dwhqM3gd~>_-yc2O!BmfXZi4#C4lAoXOUy!ZHkFOM?Nv<@GYFD}^*+J;D=uO* zv^d~(MA#3b(UojHQ=k=&Mq%lfY9Jg~aXmy(;*HUCm&Sqe_O6^RadIZjXfn5*BVsN3 zq3zSJL=+}6-gH#r>s@JC#WSj38l95AC}6){lyibvP}ZY(CN_|e#4~+_WB|00k?2^Uov$4bWWE z2kWzYP8?2Y3n=`34|U>DI1~ao+}+m$%;n;s^$8(1;cA79`qKFiv~?7%rl=;Z9%rE_ zndzW-C<{1;<|FNUcobXKY31lW{cQ%OQX@}EP-0R^<(Jh6Hv_*(SyogtBZ2Q@cSg70 zeG->j9m5~bm6%%}I*r`#9+>T!PrRJt+z};A4Yn(1k76)6eP{ z$6Mn+{K9t6jvt>Z{&%R^u7X+A31vWzpqC(5kS9mc$`G^iiF)>hw}Q~6l%8Nn+3^avQi-^3(S3v#JoJfX$b^ z@-zmz!eB)*eA1L5Zfws)!;+$4qu-@DG}w5x5OFA`DIX}O({V1HYJwb%kziJlKr=ef z$yq<-IBv)6_ZoI`YEm4@E`yiA15W}Qxx0`nhXRT$Jx;@_5)}v&ggbjE28Y5XIKV(Q zn@7W1|8dEwL1c)*Q>6#5s_!jU=na_`_(wSkMIC1E#8k#(b#)JUls&4~2FSQyp%$kXfNOB! z9OBfM_K$Kc=xg-1(?TLI@|v5AgqcT0EHGN9>7QP%(2_lUnR&@`dGi>jVTOF=h zl>IhXsE)m`Ls@GlXIw@uD3x(1ybAZzn5EEI zlmIi3{|IGc$X81y>WfzyE@S754-5{^q~1pjBC@+{0`IDHK@Z+m{c*ykGB7QinQUR*y^nx=p{Kwx}2bOR33t>O(p9Kv*#c72?CJ{uT_J?+aUk7 zn=c2^i}2$35L)gJgKzPp?-DV?sf~WYO`FFTOhOF=r{^`nbLJR8|^QvI+yjFPJ{!f)d@>SNmaKgfsgGF}IrIDtNY;heWk|I>xfzC#FzvG>Kr6SpwQ*I~JM>GOHaj$a z1oqthex>oXv^s0~{oFEK@Uf{DDDl9vw!4lHwtdCxiMaGv?p^JiHMzi(Y=XtV5Aa5` z_F#W0TG zfG2dB;PyemI>+VBo^*EBK`0a*6OaF9LfGI|R`as=GWbzV^Sh9ar-ThU1ExC^?^d}m z${>mxRaN(Lu2k^U2mj~OpI>aP-dntBdml3`Ft~TldaU%_!tdG7ZU+OR(-RbTLn)$k zLDp&f7Z`cF!|o`j9O^3_K)2Dt3`R)YRnLtHGN)#tX;&GK zAO$CN2Wm5iBXH5hx&(gtp qqQJmBJ*nAy*2BQSAUp>R@Gv57mD{Gfw$;E97-?~Nu`&@o|NjRQdKa7k literal 0 HcmV?d00001