From 6ccd0aa0e89e75356fcf5a86def4b3a79eedfa73 Mon Sep 17 00:00:00 2001 From: leandrofars Date: Sat, 28 Oct 2023 16:00:27 -0300 Subject: [PATCH] feat(mtp): stomp server with custom usp spec --- backend/services/stomp/AUTHORS.md | 20 + backend/services/stomp/LICENSE.txt | 202 +++++ backend/services/stomp/README.md | 44 + backend/services/stomp/ack.go | 48 ++ backend/services/stomp/breaking_changes.md | 80 ++ backend/services/stomp/cmd/main.go | 10 +- backend/services/stomp/conn.go | 774 +++++++++++++++++ backend/services/stomp/conn_options.go | 327 ++++++++ backend/services/stomp/conn_test.go | 786 ++++++++++++++++++ backend/services/stomp/errors.go | 57 ++ backend/services/stomp/example_test.go | 242 ++++++ .../stomp/examples/client_test/main.go | 98 +++ backend/services/stomp/frame/ack.go | 8 + backend/services/stomp/frame/command.go | 26 + backend/services/stomp/frame/encode.go | 34 + backend/services/stomp/frame/encode_test.go | 15 + backend/services/stomp/frame/errors.go | 9 + backend/services/stomp/frame/frame.go | 38 + backend/services/stomp/frame/frame_test.go | 67 ++ backend/services/stomp/frame/header.go | 192 +++++ backend/services/stomp/frame/header_test.go | 69 ++ backend/services/stomp/frame/heartbeat.go | 44 + .../services/stomp/frame/heartbeat_test.go | 77 ++ backend/services/stomp/frame/reader.go | 157 ++++ backend/services/stomp/frame/reader_test.go | 140 ++++ backend/services/stomp/frame/writer.go | 100 +++ backend/services/stomp/frame/writer_test.go | 48 ++ backend/services/stomp/go.mod | 7 +- backend/services/stomp/go.sum | 34 +- backend/services/stomp/id.go | 17 + backend/services/stomp/id_test.go | 43 + .../services/stomp/internal/log/stdlogger.go | 51 ++ backend/services/stomp/logger.go | 13 + backend/services/stomp/message.go | 68 ++ backend/services/stomp/send_options.go | 55 ++ .../stomp/server/client/channel_test.go | 88 ++ .../services/stomp/server/client/client.go | 7 + .../stomp/server/client/client_test.go | 12 + .../services/stomp/server/client/config.go | 25 + backend/services/stomp/server/client/conn.go | 781 +++++++++++++++++ .../services/stomp/server/client/errors.go | 36 + backend/services/stomp/server/client/frame.go | 119 +++ .../stomp/server/client/frame_test.go | 82 ++ .../services/stomp/server/client/request.go | 32 + .../stomp/server/client/subscription.go | 84 ++ .../stomp/server/client/subscription_list.go | 107 +++ .../server/client/subscription_list_test.go | 113 +++ .../services/stomp/server/client/tx_store.go | 65 ++ .../stomp/server/client/tx_store_test.go | 81 ++ backend/services/stomp/server/client/util.go | 21 + .../services/stomp/server/client/util_test.go | 23 + backend/services/stomp/server/processor.go | 158 ++++ .../services/stomp/server/queue/manager.go | 23 + .../stomp/server/queue/manager_test.go | 21 + .../stomp/server/queue/memory_queue.go | 70 ++ .../stomp/server/queue/memory_queue_test.go | 64 ++ backend/services/stomp/server/queue/queue.go | 86 ++ .../services/stomp/server/queue/queue_test.go | 12 + .../services/stomp/server/queue/storage.go | 34 + .../services/stomp/server/queue_storage.go | 30 + backend/services/stomp/server/server.go | 89 ++ backend/services/stomp/server/server_test.go | 170 ++++ .../services/stomp/server/topic/manager.go | 24 + .../stomp/server/topic/manager_test.go | 21 + .../stomp/server/topic/subscription.go | 11 + .../stomp/server/topic/testing_test.go | 12 + backend/services/stomp/server/topic/topic.go | 73 ++ .../services/stomp/server/topic/topic_test.go | 63 ++ backend/services/stomp/stomp.go | 26 + backend/services/stomp/stomp_test.go | 18 + backend/services/stomp/stompd/main.go | 63 ++ backend/services/stomp/stompd/signals.go | 19 + backend/services/stomp/stompd/signals_unix.go | 17 + .../services/stomp/stompd/signals_windows.go | 13 + backend/services/stomp/stompd/stompd | Bin 0 -> 2679628 bytes backend/services/stomp/subscribe_options.go | 42 + backend/services/stomp/subscription.go | 183 ++++ backend/services/stomp/testutil/fake_conn.go | 113 +++ .../services/stomp/testutil/fake_conn_test.go | 61 ++ .../services/stomp/testutil/mock_logger.go | 150 ++++ backend/services/stomp/testutil/testutil.go | 5 + backend/services/stomp/transaction.go | 178 ++++ backend/services/stomp/validator.go | 21 + backend/services/stomp/version.go | 40 + backend/services/stomp/version_test.go | 79 ++ 85 files changed, 7655 insertions(+), 10 deletions(-) create mode 100644 backend/services/stomp/AUTHORS.md create mode 100644 backend/services/stomp/LICENSE.txt create mode 100644 backend/services/stomp/README.md create mode 100644 backend/services/stomp/ack.go create mode 100644 backend/services/stomp/breaking_changes.md create mode 100644 backend/services/stomp/conn.go create mode 100644 backend/services/stomp/conn_options.go create mode 100644 backend/services/stomp/conn_test.go create mode 100644 backend/services/stomp/errors.go create mode 100644 backend/services/stomp/example_test.go create mode 100644 backend/services/stomp/examples/client_test/main.go create mode 100644 backend/services/stomp/frame/ack.go create mode 100644 backend/services/stomp/frame/command.go create mode 100644 backend/services/stomp/frame/encode.go create mode 100644 backend/services/stomp/frame/encode_test.go create mode 100644 backend/services/stomp/frame/errors.go create mode 100644 backend/services/stomp/frame/frame.go create mode 100644 backend/services/stomp/frame/frame_test.go create mode 100644 backend/services/stomp/frame/header.go create mode 100644 backend/services/stomp/frame/header_test.go create mode 100644 backend/services/stomp/frame/heartbeat.go create mode 100644 backend/services/stomp/frame/heartbeat_test.go create mode 100644 backend/services/stomp/frame/reader.go create mode 100644 backend/services/stomp/frame/reader_test.go create mode 100644 backend/services/stomp/frame/writer.go create mode 100644 backend/services/stomp/frame/writer_test.go create mode 100644 backend/services/stomp/id.go create mode 100644 backend/services/stomp/id_test.go create mode 100644 backend/services/stomp/internal/log/stdlogger.go create mode 100644 backend/services/stomp/logger.go create mode 100644 backend/services/stomp/message.go create mode 100644 backend/services/stomp/send_options.go create mode 100644 backend/services/stomp/server/client/channel_test.go create mode 100644 backend/services/stomp/server/client/client.go create mode 100644 backend/services/stomp/server/client/client_test.go create mode 100644 backend/services/stomp/server/client/config.go create mode 100644 backend/services/stomp/server/client/conn.go create mode 100644 backend/services/stomp/server/client/errors.go create mode 100644 backend/services/stomp/server/client/frame.go create mode 100644 backend/services/stomp/server/client/frame_test.go create mode 100644 backend/services/stomp/server/client/request.go create mode 100644 backend/services/stomp/server/client/subscription.go create mode 100644 backend/services/stomp/server/client/subscription_list.go create mode 100644 backend/services/stomp/server/client/subscription_list_test.go create mode 100644 backend/services/stomp/server/client/tx_store.go create mode 100644 backend/services/stomp/server/client/tx_store_test.go create mode 100644 backend/services/stomp/server/client/util.go create mode 100644 backend/services/stomp/server/client/util_test.go create mode 100644 backend/services/stomp/server/processor.go create mode 100644 backend/services/stomp/server/queue/manager.go create mode 100644 backend/services/stomp/server/queue/manager_test.go create mode 100644 backend/services/stomp/server/queue/memory_queue.go create mode 100644 backend/services/stomp/server/queue/memory_queue_test.go create mode 100644 backend/services/stomp/server/queue/queue.go create mode 100644 backend/services/stomp/server/queue/queue_test.go create mode 100644 backend/services/stomp/server/queue/storage.go create mode 100644 backend/services/stomp/server/queue_storage.go create mode 100644 backend/services/stomp/server/server.go create mode 100644 backend/services/stomp/server/server_test.go create mode 100644 backend/services/stomp/server/topic/manager.go create mode 100644 backend/services/stomp/server/topic/manager_test.go create mode 100644 backend/services/stomp/server/topic/subscription.go create mode 100644 backend/services/stomp/server/topic/testing_test.go create mode 100644 backend/services/stomp/server/topic/topic.go create mode 100644 backend/services/stomp/server/topic/topic_test.go create mode 100644 backend/services/stomp/stomp.go create mode 100644 backend/services/stomp/stomp_test.go create mode 100644 backend/services/stomp/stompd/main.go create mode 100644 backend/services/stomp/stompd/signals.go create mode 100644 backend/services/stomp/stompd/signals_unix.go create mode 100644 backend/services/stomp/stompd/signals_windows.go create mode 100755 backend/services/stomp/stompd/stompd create mode 100644 backend/services/stomp/subscribe_options.go create mode 100644 backend/services/stomp/subscription.go create mode 100644 backend/services/stomp/testutil/fake_conn.go create mode 100644 backend/services/stomp/testutil/fake_conn_test.go create mode 100644 backend/services/stomp/testutil/mock_logger.go create mode 100644 backend/services/stomp/testutil/testutil.go create mode 100644 backend/services/stomp/transaction.go create mode 100644 backend/services/stomp/validator.go create mode 100644 backend/services/stomp/version.go create mode 100644 backend/services/stomp/version_test.go diff --git a/backend/services/stomp/AUTHORS.md b/backend/services/stomp/AUTHORS.md new file mode 100644 index 0000000..59921f3 --- /dev/null +++ b/backend/services/stomp/AUTHORS.md @@ -0,0 +1,20 @@ +## Authors + +* John Jeffery +* Hiram Jerónimo Pérez +* Alessandro Siragusa +* DaytonG +* Erik Benoist +* Evan Borgstrom +* Fernando Ribeiro +* Fredrik Rubensson +* Laurent Luce +* Oliver, Jonathan +* Paul P. Komkoff +* Raphael Tiersch +* Tom Lee +* Tony Le +* Voronkov Artem +* Whit Marbut +* hanjm +* yang.zhang4 diff --git a/backend/services/stomp/LICENSE.txt b/backend/services/stomp/LICENSE.txt new file mode 100644 index 0000000..343d70c --- /dev/null +++ b/backend/services/stomp/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2012 The go-stomp authors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/backend/services/stomp/README.md b/backend/services/stomp/README.md new file mode 100644 index 0000000..c1c37b7 --- /dev/null +++ b/backend/services/stomp/README.md @@ -0,0 +1,44 @@ +This STOMP implementation was forked from https://github.com/go-stomp/stomp and we customized it to accomplish with TR-369 protocol + +# stomp + +Go language implementation of a STOMP client library. + +![Build Status](https://github.com/go-stomp/stomp/actions/workflows/test.yml/badge.svg?branch=master) +[![Go Reference](https://pkg.go.dev/badge/github.com/go-stomp/stomp/v3.svg)](https://pkg.go.dev/github.com/go-stomp/stomp/v3) + +Features: + +* Supports STOMP Specifications Versions 1.0, 1.1, 1.2 (https://stomp.github.io/) +* Protocol negotiation to select the latest mutually supported protocol +* Heart beating for testing the underlying network connection +* Tested against RabbitMQ v3.0.1 + +## Usage Instructions + +``` +go get github.com/go-stomp/stomp/v3 +``` + +For API documentation, see https://pkg.go.dev/github.com/go-stomp/stomp/v3 + + +Breaking changes between this previous version and the current version are +documented in [breaking_changes.md](breaking_changes.md). + + +## License +Copyright 2012 - Present The go-stomp authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + diff --git a/backend/services/stomp/ack.go b/backend/services/stomp/ack.go new file mode 100644 index 0000000..ede59c0 --- /dev/null +++ b/backend/services/stomp/ack.go @@ -0,0 +1,48 @@ +package stomp + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// The AckMode type is an enumeration of the acknowledgement modes for a +// STOMP subscription. +type AckMode int + +// String returns the string representation of the AckMode value. +func (a AckMode) String() string { + switch a { + case AckAuto: + return frame.AckAuto + case AckClient: + return frame.AckClient + case AckClientIndividual: + return frame.AckClientIndividual + } + panic("invalid AckMode value") +} + +// ShouldAck returns true if this AckMode is an acknowledgement +// mode which requires acknowledgement. Returns true for all values +// except AckAuto, which returns false. +func (a AckMode) ShouldAck() bool { + switch a { + case AckAuto: + return false + case AckClient, AckClientIndividual: + return true + } + panic("invalid AckMode value") +} + +const ( + // No acknowledgement is required, the server assumes that the client + // received the message. + AckAuto AckMode = iota + + // Client acknowledges messages. When a client acknowledges a message, + // any previously received messages are also acknowledged. + AckClient + + // Client acknowledges message. Each message is acknowledged individually. + AckClientIndividual +) diff --git a/backend/services/stomp/breaking_changes.md b/backend/services/stomp/breaking_changes.md new file mode 100644 index 0000000..b60209f --- /dev/null +++ b/backend/services/stomp/breaking_changes.md @@ -0,0 +1,80 @@ +# Breaking Changes + +This document provides a list of breaking changes since the V1 release +of the stomp client library. + +## v2 and v3 + +### Module support + +Version 2 was released before module support was present in golang, and changes were tagged wit that version. +Therefore we had to update again the import path. + +The API it's stable the only breaking change is the import path. + +Version 3: +```go +import ( + "github.com/go-stomp/stomp/v3" +) +``` + +## v1 and v2 + +### 1. No longer using gopkg.in + +Version 1 of the library used Gustavo Niemeyer's `gopkg.in` facility for versioning Go libraries. +For a number of reasons, the `stomp` library no longer uses this facility. For this reason the +import path has changed. + +Version 1: +```go +import ( + "gopkg.in/stomp.v1" +) +``` + +Version 2: +```go +import ( + "github.com/go-stomp/stomp" +) +``` + +### 2. Frame types moved to frame package + +Version 1 of the library included a number of types to do with STOMP frames in the `stomp` +package, and the `frame` package consisted of just a few constant definitions. + +It was decided to move the following types out of the `stomp` package and into the `frame` package: + +* `stomp.Frame` -> `frame.Frame` +* `stomp.Header` -> `frame.Header` +* `stomp.Reader` -> `frame.Reader` +* `stomp.Writer` -> `frame.Writer` + +This change was considered worthwhile for the following reasons: + +* This change reduces the surface area of the `stomp` package and makes it easier to learn. +* Ideally, users of the `stomp` package do not need to directly reference the items in the `frame` +package, and the types moved are not needed in normal usage of the `stomp` package. + +### 3. Use of functional options + +Version 2 of the stomp library makes use of functional options to provide a clean, flexible way +of specifying options in the following API calls: + +* [Dial()](http://godoc.org/github.com/go-stomp/stomp#Dial) +* [Connect()](http://godoc.org/github.com/go-stomp/stomp#Connect) +* [Conn.Send()](http://godoc.org/github.com/go-stomp/stomp#Conn.Send) +* [Transaction.Send()](http://godoc.org/github.com/go-stomp/stomp#Transaction.Send) +* [Conn.Subscribe()](http://godoc.org/github.com/go-stomp/stomp#Conn.Subscribe) + +The idea for this comes from Dave Cheney's very excellent blog post, +[Functional Options for Friendly APIs](http://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis). + +While these new APIs are a definite improvement, they do introduce breaking changes with Version 1. + + + + diff --git a/backend/services/stomp/cmd/main.go b/backend/services/stomp/cmd/main.go index f634f86..eb12e48 100644 --- a/backend/services/stomp/cmd/main.go +++ b/backend/services/stomp/cmd/main.go @@ -5,7 +5,7 @@ import ( "net" "os" - stomp_server "github.com/go-stomp/stomp/server" + "github.com/go-stomp/stomp/v3/server" "github.com/joho/godotenv" ) @@ -47,14 +47,14 @@ func main() { Passwd: os.Getenv("STOMP_PASSWORD"), } - l, err := net.Listen("tcp", stomp_server.DefaultAddr) + l, err := net.Listen("tcp", server.DefaultAddr) if err != nil { log.Println("Error to open tcp port: ", err) } - s := stomp_server.Server{ - Addr: stomp_server.DefaultAddr, - HeartBeat: stomp_server.DefaultHeartBeat, + s := server.Server{ + Addr: server.DefaultAddr, + HeartBeat: server.DefaultHeartBeat, Authenticator: &creds, } diff --git a/backend/services/stomp/conn.go b/backend/services/stomp/conn.go new file mode 100644 index 0000000..a1b4bca --- /dev/null +++ b/backend/services/stomp/conn.go @@ -0,0 +1,774 @@ +package stomp + +import ( + "errors" + "io" + "net" + "strconv" + "sync" + "time" + + "github.com/go-stomp/stomp/v3/frame" +) + +// Default time span to add to read/write heart-beat timeouts +// to avoid premature disconnections due to network latency. +const DefaultHeartBeatError = 5 * time.Second + +// Default send timeout in Conn.Send function +const DefaultMsgSendTimeout = 10 * time.Second + +// Default receipt timeout in Conn.Send function +const DefaultRcvReceiptTimeout = 30 * time.Second + +// Default receipt timeout in Conn.Disconnect function +const DefaultDisconnectReceiptTimeout = 30 * time.Second + +// Reply-To header used for temporary queues/RPC with rabbit. +const ReplyToHeader = "reply-to" + +// A Conn is a connection to a STOMP server. Create a Conn using either +// the Dial or Connect function. +type Conn struct { + conn io.ReadWriteCloser + readCh chan *frame.Frame + writeCh chan writeRequest + version Version + session string + server string + readTimeout time.Duration + writeTimeout time.Duration + msgSendTimeout time.Duration + rcvReceiptTimeout time.Duration + disconnectReceiptTimeout time.Duration + hbGracePeriodMultiplier float64 + closed bool + closeMutex *sync.Mutex + options *connOptions + log Logger +} + +type writeRequest struct { + Frame *frame.Frame // frame to send + C chan *frame.Frame // response channel +} + +// Dial creates a network connection to a STOMP server and performs +// the STOMP connect protocol sequence. The network endpoint of the +// STOMP server is specified by network and addr. STOMP protocol +// options can be specified in opts. +func Dial(network, addr string, opts ...func(*Conn) error) (*Conn, error) { + c, err := net.Dial(network, addr) + if err != nil { + return nil, err + } + + host, _, err := net.SplitHostPort(c.RemoteAddr().String()) + if err != nil { + c.Close() + return nil, err + } + + // Add option to set host and make it the first option in list, + // so that if host has been explicitly specified it will override. + opts = append([]func(*Conn) error{ConnOpt.Host(host)}, opts...) + + return Connect(c, opts...) +} + +// Connect creates a STOMP connection and performs the STOMP connect +// protocol sequence. The connection to the STOMP server has already +// been created by the program. The opts parameter provides the +// opportunity to specify STOMP protocol options. +func Connect(conn io.ReadWriteCloser, opts ...func(*Conn) error) (*Conn, error) { + reader := frame.NewReader(conn) + writer := frame.NewWriter(conn) + + c := &Conn{ + conn: conn, + closeMutex: &sync.Mutex{}, + } + + options, err := newConnOptions(c, opts) + if err != nil { + return nil, err + } + + c.log = options.Logger + + if options.ReadBufferSize > 0 { + reader = frame.NewReaderSize(conn, options.ReadBufferSize) + } + + if options.WriteBufferSize > 0 { + writer = frame.NewWriterSize(conn, options.ReadBufferSize) + } + + readChannelCapacity := 20 + writeChannelCapacity := 20 + + if options.ReadChannelCapacity > 0 { + readChannelCapacity = options.ReadChannelCapacity + } + + if options.WriteChannelCapacity > 0 { + writeChannelCapacity = options.WriteChannelCapacity + } + + c.hbGracePeriodMultiplier = options.HeartBeatGracePeriodMultiplier + + c.readCh = make(chan *frame.Frame, readChannelCapacity) + c.writeCh = make(chan writeRequest, writeChannelCapacity) + + if options.Host == "" { + // host not specified yet, attempt to get from net.Conn if possible + if connection, ok := conn.(net.Conn); ok { + host, _, err := net.SplitHostPort(connection.RemoteAddr().String()) + if err == nil { + options.Host = host + } + } + // if host is still blank, use default + if options.Host == "" { + options.Host = "default" + } + } + + connectFrame, err := options.NewFrame() + if err != nil { + return nil, err + } + + err = writer.Write(connectFrame) + if err != nil { + return nil, err + } + + response, err := reader.Read() + if err != nil { + return nil, err + } + if response == nil { + return nil, errors.New("unexpected empty frame") + } + + if response.Command != frame.CONNECTED { + return nil, newError(response) + } + + c.server = response.Header.Get(frame.Server) + c.session = response.Header.Get(frame.Session) + + if versionString := response.Header.Get(frame.Version); versionString != "" { + version := Version(versionString) + if err = version.CheckSupported(); err != nil { + return nil, Error{ + Message: err.Error(), + Frame: response, + } + } + c.version = version + } else { + // no version in the response, so assume version 1.0 + c.version = V10 + } + + if heartBeat, ok := response.Header.Contains(frame.HeartBeat); ok { + readTimeout, writeTimeout, err := frame.ParseHeartBeat(heartBeat) + if err != nil { + return nil, Error{ + Message: err.Error(), + Frame: response, + } + } + + c.readTimeout = readTimeout + c.writeTimeout = writeTimeout + + if c.readTimeout > 0 { + // Add time to the read timeout to account for time + // delay in other station transmitting timeout + c.readTimeout += options.HeartBeatError + } + if c.writeTimeout > options.HeartBeatError { + // Reduce time from the write timeout to account + // for time delay in transmitting to the other station + c.writeTimeout -= options.HeartBeatError + } + } + + c.msgSendTimeout = options.MsgSendTimeout + c.rcvReceiptTimeout = options.RcvReceiptTimeout + c.disconnectReceiptTimeout = options.DisconnectReceiptTimeout + + if options.ResponseHeadersCallback != nil { + options.ResponseHeadersCallback(response.Header) + } + + go readLoop(c, reader) + go processLoop(c, writer) + + return c, nil +} + +// Version returns the version of the STOMP protocol that +// is being used to communicate with the STOMP server. This +// version is negotiated with the server during the connect sequence. +func (c *Conn) Version() Version { + return c.version +} + +// Session returns the session identifier, which can be +// returned by the STOMP server during the connect sequence. +// If the STOMP server does not return a session header entry, +// this value will be a blank string. +func (c *Conn) Session() string { + return c.session +} + +// Server returns the STOMP server identification, which can +// be returned by the STOMP server during the connect sequence. +// If the STOMP server does not return a server header entry, +// this value will be a blank string. +func (c *Conn) Server() string { + return c.server +} + +// readLoop is a goroutine that reads frames from the +// reader and places them onto a channel for processing +// by the processLoop goroutine +func readLoop(c *Conn, reader *frame.Reader) { + for { + f, err := reader.Read() + if err != nil { + close(c.readCh) + return + } + c.readCh <- f + } +} + +// processLoop is a goroutine that handles io with +// the server. +func processLoop(c *Conn, writer *frame.Writer) { + channels := make(map[string]chan *frame.Frame) + + var readTimeoutChannel <-chan time.Time + var readTimer *time.Timer + var writeTimeoutChannel <-chan time.Time + var writeTimer *time.Timer + + defer c.MustDisconnect() + + for { + if c.readTimeout > 0 && readTimer == nil { + readTimer = time.NewTimer(time.Duration(float64(c.readTimeout) * c.hbGracePeriodMultiplier)) + readTimeoutChannel = readTimer.C + } + if c.writeTimeout > 0 && writeTimer == nil { + writeTimer = time.NewTimer(c.writeTimeout) + writeTimeoutChannel = writeTimer.C + } + + select { + case <-readTimeoutChannel: + // read timeout, close the connection + err := newErrorMessage("read timeout") + sendError(channels, err) + return + + case <-writeTimeoutChannel: + // write timeout, send a heart-beat frame + err := writer.Write(nil) + if err != nil { + sendError(channels, err) + return + } + writeTimer = nil + writeTimeoutChannel = nil + + case f, ok := <-c.readCh: + // stop the read timer + if readTimer != nil { + readTimer.Stop() + readTimer = nil + readTimeoutChannel = nil + } + + if !ok { + err := newErrorMessage("connection closed") + sendError(channels, err) + return + } + + if f == nil { + // heart-beat received + continue + } + + switch f.Command { + case frame.RECEIPT: + if id, ok := f.Header.Contains(frame.ReceiptId); ok { + if ch, ok := channels[id]; ok { + ch <- f + delete(channels, id) + close(ch) + } + } else { + err := &Error{Message: "missing receipt-id", Frame: f} + sendError(channels, err) + return + } + + case frame.ERROR: + c.log.Error("received ERROR; Closing underlying connection") + for _, ch := range channels { + ch <- f + close(ch) + } + + c.closeMutex.Lock() + defer c.closeMutex.Unlock() + c.closed = true + c.conn.Close() + + return + + case frame.MESSAGE: + if id, ok := f.Header.Contains(frame.Subscription); ok { + if ch, ok := channels[id]; ok { + ch <- f + } else { + c.log.Infof("ignored MESSAGE for subscription: %s", id) + } + } + } + + case req, ok := <-c.writeCh: + // stop the write timeout + if writeTimer != nil { + writeTimer.Stop() + writeTimer = nil + writeTimeoutChannel = nil + } + if !ok { + sendError(channels, errors.New("write channel closed")) + return + } + if req.C != nil { + if receipt, ok := req.Frame.Header.Contains(frame.Receipt); ok { + // remember the channel for this receipt + channels[receipt] = req.C + } + } + + // default is to always send a frame. + var sendFrame = true + + switch req.Frame.Command { + case frame.SUBSCRIBE: + id, _ := req.Frame.Header.Contains(frame.Id) + channels[id] = req.C + + // if using a temp queue, map that destination as a known channel + // however, don't send the frame, it's most likely an invalid destination + // on the broker. + if replyTo, ok := req.Frame.Header.Contains(ReplyToHeader); ok { + channels[replyTo] = req.C + sendFrame = false + } + + case frame.UNSUBSCRIBE: + id, _ := req.Frame.Header.Contains(frame.Id) + // is this trying to be too clever -- add a receipt + // header so that when the server responds with a + // RECEIPT frame, the corresponding channel will be closed + req.Frame.Header.Set(frame.Receipt, id) + + } + + // frame to send, if enabled + if sendFrame { + err := writer.Write(req.Frame) + if err != nil { + sendError(channels, err) + return + } + } + } + } +} + +// Send an error to all receipt channels. +func sendError(m map[string]chan *frame.Frame, err error) { + frame := frame.New(frame.ERROR, frame.Message, err.Error()) + for _, ch := range m { + ch <- frame + } +} + +// Disconnect will disconnect from the STOMP server. This function +// follows the STOMP standard's recommended protocol for graceful +// disconnection: it sends a DISCONNECT frame with a receipt header +// element. Once the RECEIPT frame has been received, the connection +// with the STOMP server is closed and any further attempt to write +// to the server will fail. +func (c *Conn) Disconnect() error { + c.closeMutex.Lock() + defer c.closeMutex.Unlock() + if c.closed { + return nil + } + + ch := make(chan *frame.Frame) + c.writeCh <- writeRequest{ + Frame: frame.New(frame.DISCONNECT, frame.Receipt, allocateId()), + C: ch, + } + + err := readReceiptWithTimeout(ch, c.disconnectReceiptTimeout, ErrDisconnectReceiptTimeout) + if err == nil { + c.closed = true + return c.conn.Close() + } + + if err == ErrDisconnectReceiptTimeout { + c.closed = true + _ = c.conn.Close() + } + + return err +} + +// MustDisconnect will disconnect 'ungracefully' from the STOMP server. +// This method should be used only as last resort when there are fatal +// network errors that prevent to do a proper disconnect from the server. +func (c *Conn) MustDisconnect() error { + c.closeMutex.Lock() + defer c.closeMutex.Unlock() + if c.closed { + return nil + } + + // just close writeCh + close(c.writeCh) + + c.closed = true + return c.conn.Close() +} + +// Send sends a message to the STOMP server, which in turn sends the message to the specified destination. +// If the STOMP server fails to receive the message for any reason, the connection will close. +// +// The content type should be specified, according to the STOMP specification, but if contentType is an empty +// string, the message will be delivered without a content-type header entry. The body array contains the +// message body, and its content should be consistent with the specified content type. +// +// Any number of options can be specified in opts. See the examples for usage. Options include whether +// to receive a RECEIPT, should the content-length be suppressed, and sending custom header entries. +func (c *Conn) Send(destination, contentType string, body []byte, opts ...func(*frame.Frame) error) error { + c.closeMutex.Lock() + defer c.closeMutex.Unlock() + if c.closed { + return ErrAlreadyClosed + } + + f, err := createSendFrame(destination, contentType, body, opts) + if err != nil { + return err + } + + if _, ok := f.Header.Contains(frame.Receipt); ok { + // receipt required + request := writeRequest{ + Frame: f, + C: make(chan *frame.Frame), + } + + err := sendDataToWriteChWithTimeout(c.writeCh, request, c.msgSendTimeout) + if err != nil { + return err + } + + err = readReceiptWithTimeout(request.C, c.rcvReceiptTimeout, ErrMsgReceiptTimeout) + if err != nil { + return err + } + } else { + // no receipt required + request := writeRequest{Frame: f} + + err := sendDataToWriteChWithTimeout(c.writeCh, request, c.msgSendTimeout) + if err != nil { + return err + } + } + + return nil +} + +func readReceiptWithTimeout(responseChan chan *frame.Frame, timeout time.Duration, timeoutErr error) error { + var timeoutChan <-chan time.Time + if timeout > 0 { + timeoutChan = time.After(timeout) + } + + select { + case <-timeoutChan: + return timeoutErr + case response := <-responseChan: + if response.Command != frame.RECEIPT { + return newError(response) + } + return nil + } +} + +func sendDataToWriteChWithTimeout(ch chan writeRequest, request writeRequest, timeout time.Duration) error { + if timeout <= 0 { + ch <- request + return nil + } + + timer := time.NewTimer(timeout) + select { + case <-timer.C: + return ErrMsgSendTimeout + case ch <- request: + timer.Stop() + return nil + } +} + +func createSendFrame(destination, contentType string, body []byte, opts []func(*frame.Frame) error) (*frame.Frame, error) { + // Set the content-length before the options, because this provides + // an opportunity to remove content-length. + f := frame.New(frame.SEND, frame.ContentLength, strconv.Itoa(len(body))) + f.Body = body + f.Header.Set(frame.Destination, destination) + if contentType != "" { + f.Header.Set(frame.ContentType, contentType) + } + + for _, opt := range opts { + if opt == nil { + continue + } + if err := opt(f); err != nil { + return nil, err + } + } + + return f, nil +} + +func (c *Conn) sendFrame(f *frame.Frame) error { + // Lock our mutex, but don't close it via defer + // If the frame requests a receipt then we want to release the lock before + // we block on the response, otherwise we can end up deadlocking + c.closeMutex.Lock() + if c.closed { + c.closeMutex.Unlock() + c.conn.Close() + return ErrClosedUnexpectedly + } + + if _, ok := f.Header.Contains(frame.Receipt); ok { + // receipt required + request := writeRequest{ + Frame: f, + C: make(chan *frame.Frame), + } + + c.writeCh <- request + + // Now that we've written to the writeCh channel we can release the + // close mutex while we wait for our response + c.closeMutex.Unlock() + + var response *frame.Frame + + if c.writeTimeout > 0 { + select { + case response, ok = <-request.C: + case <-time.After(c.writeTimeout): + ok = false + } + } else { + response, ok = <-request.C + } + + if ok { + if response.Command != frame.RECEIPT { + return newError(response) + } + } else { + return ErrClosedUnexpectedly + } + } else { + // no receipt required + request := writeRequest{Frame: f} + c.writeCh <- request + + // Unlock the mutex now that we're written to the write channel + c.closeMutex.Unlock() + } + + return nil +} + +// Subscribe creates a subscription on the STOMP server. +// The subscription has a destination, and messages sent to that destination +// will be received by this subscription. A subscription has a channel +// on which the calling program can receive messages. +func (c *Conn) Subscribe(destination string, ack AckMode, opts ...func(*frame.Frame) error) (*Subscription, error) { + c.closeMutex.Lock() + defer c.closeMutex.Unlock() + if c.closed { + c.conn.Close() + return nil, ErrClosedUnexpectedly + } + + ch := make(chan *frame.Frame) + + subscribeFrame := frame.New(frame.SUBSCRIBE, + frame.Destination, destination, + frame.Ack, ack.String()) + + for _, opt := range opts { + if opt == nil { + continue + } + err := opt(subscribeFrame) + if err != nil { + return nil, err + } + } + + // If the option functions have not specified the "id" header entry, + // create one. + id, ok := subscribeFrame.Header.Contains(frame.Id) + if !ok { + id = allocateId() + subscribeFrame.Header.Add(frame.Id, id) + } + + request := writeRequest{ + Frame: subscribeFrame, + C: ch, + } + + closeMutex := &sync.Mutex{} + sub := &Subscription{ + id: id, + destination: destination, + conn: c, + ackMode: ack, + C: make(chan *Message, 16), + closeMutex: closeMutex, + closeCond: sync.NewCond(closeMutex), + } + go sub.readLoop(ch) + + // TODO is this safe? There is no check if writeCh is actually open. + c.writeCh <- request + return sub, nil +} + +// TODO check further for race conditions + +// Ack acknowledges a message received from the STOMP server. +// If the message was received on a subscription with AckMode == AckAuto, +// then no operation is performed. +func (c *Conn) Ack(m *Message) error { + f, err := c.createAckNackFrame(m, true) + if err != nil { + return err + } + + if f != nil { + return c.sendFrame(f) + } + return nil +} + +// Nack indicates to the server that a message was not received +// by the client. Returns an error if the STOMP version does not +// support the NACK message. +func (c *Conn) Nack(m *Message) error { + f, err := c.createAckNackFrame(m, false) + if err != nil { + return err + } + + if f != nil { + return c.sendFrame(f) + } + return nil +} + +// Begin is used to start a transaction. Transactions apply to sending +// and acknowledging. Any messages sent or acknowledged during a transaction +// will be processed atomically by the STOMP server based on the transaction. +func (c *Conn) Begin() *Transaction { + t, _ := c.BeginWithError() + return t +} + +// BeginWithError is used to start a transaction, but also returns the error +// (if any) from sending the frame to start the transaction. +func (c *Conn) BeginWithError() (*Transaction, error) { + id := allocateId() + f := frame.New(frame.BEGIN, frame.Transaction, id) + err := c.sendFrame(f) + return &Transaction{id: id, conn: c}, err +} + +// Create an ACK or NACK frame. Complicated by version incompatibilities. +func (c *Conn) createAckNackFrame(msg *Message, ack bool) (*frame.Frame, error) { + if !ack && !c.version.SupportsNack() { + return nil, ErrNackNotSupported + } + + if msg.Header == nil || msg.Subscription == nil || msg.Conn == nil { + return nil, ErrNotReceivedMessage + } + + if msg.Subscription.AckMode() == AckAuto { + if ack { + // not much point sending an ACK to an auto subscription + return nil, nil + } else { + // sending a NACK for an ack:auto subscription makes no + // sense + return nil, ErrCannotNackAutoSub + } + } + + var f *frame.Frame + if ack { + f = frame.New(frame.ACK) + } else { + f = frame.New(frame.NACK) + } + + switch c.version { + case V10, V11: + f.Header.Add(frame.Subscription, msg.Subscription.Id()) + if messageId, ok := msg.Header.Contains(frame.MessageId); ok { + f.Header.Add(frame.MessageId, messageId) + } else { + return nil, missingHeader(frame.MessageId) + } + case V12: + // message frame contains ack header + if ack, ok := msg.Header.Contains(frame.Ack); ok { + // ack frame should reference it as id + f.Header.Add(frame.Id, ack) + } else { + return nil, missingHeader(frame.Ack) + } + } + + return f, nil +} diff --git a/backend/services/stomp/conn_options.go b/backend/services/stomp/conn_options.go new file mode 100644 index 0000000..9daddf7 --- /dev/null +++ b/backend/services/stomp/conn_options.go @@ -0,0 +1,327 @@ +package stomp + +import ( + "fmt" + "strings" + "time" + + "github.com/go-stomp/stomp/v3/frame" + "github.com/go-stomp/stomp/v3/internal/log" +) + +// ConnOptions is an opaque structure used to collection options +// for connecting to the other server. +type connOptions struct { + FrameCommand string + Host string + ReadTimeout time.Duration + WriteTimeout time.Duration + HeartBeatError time.Duration + MsgSendTimeout time.Duration + RcvReceiptTimeout time.Duration + DisconnectReceiptTimeout time.Duration + HeartBeatGracePeriodMultiplier float64 + Login, Passcode string + AcceptVersions []string + Header *frame.Header + ReadChannelCapacity, WriteChannelCapacity int + ReadBufferSize, WriteBufferSize int + ResponseHeadersCallback func(*frame.Header) + Logger Logger +} + +func newConnOptions(conn *Conn, opts []func(*Conn) error) (*connOptions, error) { + co := &connOptions{ + FrameCommand: frame.CONNECT, + ReadTimeout: time.Minute, + WriteTimeout: time.Minute, + HeartBeatGracePeriodMultiplier: 1.0, + HeartBeatError: DefaultHeartBeatError, + MsgSendTimeout: DefaultMsgSendTimeout, + RcvReceiptTimeout: DefaultRcvReceiptTimeout, + DisconnectReceiptTimeout: DefaultDisconnectReceiptTimeout, + Logger: log.StdLogger{}, + } + + // This is a slight of hand, attach the options to the Conn long + // enough to run the options functions and then detach again. + // The reason we do this is to allow for future options to be able + // to modify the Conn object itself, in case that becomes desirable. + conn.options = co + defer func() { conn.options = nil }() + + // compatibility with previous version: ignore nil options + for _, opt := range opts { + if opt != nil { + err := opt(conn) + if err != nil { + return nil, err + } + } + } + + if len(co.AcceptVersions) == 0 { + co.AcceptVersions = append(co.AcceptVersions, string(V10), string(V11), string(V12)) + } + + return co, nil +} + +func (co *connOptions) NewFrame() (*frame.Frame, error) { + f := frame.New(co.FrameCommand) + if co.Host != "" { + f.Header.Set(frame.Host, co.Host) + } + + // heart-beat + { + send := co.WriteTimeout / time.Millisecond + recv := co.ReadTimeout / time.Millisecond + f.Header.Set(frame.HeartBeat, fmt.Sprintf("%d,%d", send, recv)) + } + + // login, passcode + if co.Login != "" || co.Passcode != "" { + f.Header.Set(frame.Login, co.Login) + f.Header.Set(frame.Passcode, co.Passcode) + } + + // accept-version + f.Header.Set(frame.AcceptVersion, strings.Join(co.AcceptVersions, ",")) + + // custom header entries -- note that these do not override + // header values already set as they are added to the end of + // the header array + f.Header.AddHeader(co.Header) + + return f, nil +} + +// Options for connecting to the STOMP server. Used with the +// stomp.Dial and stomp.Connect functions, both of which have examples. +var ConnOpt struct { + // Login is a connect option that allows the calling program to + // specify the "login" and "passcode" values to send to the STOMP + // server. + Login func(login, passcode string) func(*Conn) error + + // Host is a connect option that allows the calling program to + // specify the value of the "host" header. + Host func(host string) func(*Conn) error + + // UseStomp is a connect option that specifies that the client + // should use the "STOMP" command instead of the "CONNECT" command. + // Note that using "STOMP" is only valid for STOMP version 1.1 and later. + UseStomp func(*Conn) error + + // AcceptVersoin is a connect option that allows the client to + // specify one or more versions of the STOMP protocol that the + // client program is prepared to accept. If this option is not + // specified, the client program will accept any of STOMP versions + // 1.0, 1.1 or 1.2. + AcceptVersion func(versions ...Version) func(*Conn) error + + // HeartBeat is a connect option that allows the client to specify + // the send and receive timeouts for the STOMP heartbeat negotiation mechanism. + // The sendTimeout parameter specifies the maximum amount of time + // between the client sending heartbeat notifications from the server. + // The recvTimeout paramter specifies the minimum amount of time between + // the client expecting to receive heartbeat notifications from the server. + // If not specified, this option defaults to one minute for both send and receive + // timeouts. + HeartBeat func(sendTimeout, recvTimeout time.Duration) func(*Conn) error + + // HeartBeatError is a connect option that will normally only be specified during + // testing. It specifies a short time duration that is larger than the amount of time + // that will take for a STOMP frame to be transmitted from one station to the other. + // When not specified, this value defaults to 5 seconds. This value is set to a much + // shorter time duration during unit testing. + HeartBeatError func(errorTimeout time.Duration) func(*Conn) error + + // MsgSendTimeout is a connect option that allows the client to specify + // the timeout for the Conn.Send function. + // The msgSendTimeout parameter specifies maximum blocking time for calling + // the Conn.Send function. + // If not specified, this option defaults to 10 seconds. + // Less than or equal to zero means infinite + MsgSendTimeout func(msgSendTimeout time.Duration) func(*Conn) error + + // RcvReceiptTimeout is a connect option that allows the client to specify + // how long to wait for a receipt in the Conn.Send function. This helps + // avoid deadlocks. If this is not specified, the default is 30 seconds. + RcvReceiptTimeout func(rcvReceiptTimeout time.Duration) func(*Conn) error + + // DisconnectReceiptTimeout is a connect option that allows the client to specify + // how long to wait for a receipt in the Conn.Disconnect function. This helps + // avoid deadlocks. If this is not specified, the default is 30 seconds. + DisconnectReceiptTimeout func(disconnectReceiptTimeout time.Duration) func(*Conn) error + + // HeartBeatGracePeriodMultiplier is used to calculate the effective read heart-beat timeout + // the broker will enforce for each client’s connection. The multiplier is applied to + // the read-timeout interval the client specifies in its CONNECT frame + HeartBeatGracePeriodMultiplier func(multiplier float64) func(*Conn) error + + // Header is a connect option that allows the client to specify a custom + // header entry in the STOMP frame. This connect option can be specified + // multiple times for multiple custom headers. + Header func(key, value string) func(*Conn) error + + // ReadChannelCapacity is the number of messages that can be on the read channel at the + // same time. A high number may affect memory usage while a too low number may lock the + // system up. Default is set to 20. + ReadChannelCapacity func(capacity int) func(*Conn) error + + // WriteChannelCapacity is the number of messages that can be on the write channel at the + // same time. A high number may affect memory usage while a too low number may lock the + // system up. Default is set to 20. + WriteChannelCapacity func(capacity int) func(*Conn) error + + // ReadBufferSize specifies number of bytes that can be used to read the message + // A high number may affect memory usage while a too low number may lock the + // system up. Default is set to 4096. + ReadBufferSize func(size int) func(*Conn) error + + // WriteBufferSize specifies number of bytes that can be used to write the message + // A high number may affect memory usage while a too low number may lock the + // system up. Default is set to 4096. + WriteBufferSize func(size int) func(*Conn) error + + // ResponseHeaders lets you provide a callback function to get the headers from the CONNECT response + ResponseHeaders func(func(*frame.Header)) func(*Conn) error + + // Logger lets you provide a callback function that sets the logger used by a connection + Logger func(logger Logger) func(*Conn) error +} + +func init() { + ConnOpt.Login = func(login, passcode string) func(*Conn) error { + return func(c *Conn) error { + c.options.Login = login + c.options.Passcode = passcode + return nil + } + } + + ConnOpt.Host = func(host string) func(*Conn) error { + return func(c *Conn) error { + c.options.Host = host + return nil + } + } + + ConnOpt.UseStomp = func(c *Conn) error { + c.options.FrameCommand = frame.STOMP + return nil + } + + ConnOpt.AcceptVersion = func(versions ...Version) func(*Conn) error { + return func(c *Conn) error { + for _, version := range versions { + if err := version.CheckSupported(); err != nil { + return err + } + c.options.AcceptVersions = append(c.options.AcceptVersions, string(version)) + } + return nil + } + } + + ConnOpt.HeartBeat = func(sendTimeout, recvTimeout time.Duration) func(*Conn) error { + return func(c *Conn) error { + c.options.WriteTimeout = sendTimeout + c.options.ReadTimeout = recvTimeout + return nil + } + } + + ConnOpt.HeartBeatError = func(errorTimeout time.Duration) func(*Conn) error { + return func(c *Conn) error { + c.options.HeartBeatError = errorTimeout + return nil + } + } + + ConnOpt.MsgSendTimeout = func(msgSendTimeout time.Duration) func(*Conn) error { + return func(c *Conn) error { + c.options.MsgSendTimeout = msgSendTimeout + return nil + } + } + + ConnOpt.RcvReceiptTimeout = func(rcvReceiptTimeout time.Duration) func(*Conn) error { + return func(c *Conn) error { + c.options.RcvReceiptTimeout = rcvReceiptTimeout + return nil + } + } + + ConnOpt.DisconnectReceiptTimeout = func(disconnectReceiptTimeout time.Duration) func(*Conn) error { + return func(c *Conn) error { + c.options.DisconnectReceiptTimeout = disconnectReceiptTimeout + return nil + } + } + + ConnOpt.HeartBeatGracePeriodMultiplier = func(multiplier float64) func(*Conn) error { + return func(c *Conn) error { + c.options.HeartBeatGracePeriodMultiplier = multiplier + return nil + } + } + + ConnOpt.Header = func(key, value string) func(*Conn) error { + return func(c *Conn) error { + if c.options.Header == nil { + c.options.Header = frame.NewHeader(key, value) + } else { + c.options.Header.Add(key, value) + } + return nil + } + } + + ConnOpt.ReadChannelCapacity = func(capacity int) func(*Conn) error { + return func(c *Conn) error { + c.options.ReadChannelCapacity = capacity + return nil + } + } + + ConnOpt.WriteChannelCapacity = func(capacity int) func(*Conn) error { + return func(c *Conn) error { + c.options.WriteChannelCapacity = capacity + return nil + } + } + + ConnOpt.ReadBufferSize = func(size int) func(*Conn) error { + return func(c *Conn) error { + c.options.ReadBufferSize = size + return nil + } + } + + ConnOpt.WriteBufferSize = func(size int) func(*Conn) error { + return func(c *Conn) error { + c.options.WriteBufferSize = size + return nil + } + } + + ConnOpt.ResponseHeaders = func(callback func(*frame.Header)) func(*Conn) error { + return func(c *Conn) error { + c.options.ResponseHeadersCallback = callback + return nil + } + } + + ConnOpt.Logger = func(log Logger) func(*Conn) error { + return func(c *Conn) error { + if log != nil { + c.options.Logger = log + } + + return nil + } + } +} diff --git a/backend/services/stomp/conn_test.go b/backend/services/stomp/conn_test.go new file mode 100644 index 0000000..cbb5a9d --- /dev/null +++ b/backend/services/stomp/conn_test.go @@ -0,0 +1,786 @@ +package stomp + +import ( + "fmt" + "io" + "time" + + "github.com/go-stomp/stomp/v3/frame" + "github.com/go-stomp/stomp/v3/testutil" + + "github.com/golang/mock/gomock" + . "gopkg.in/check.v1" +) + +type fakeReaderWriter struct { + reader *frame.Reader + writer *frame.Writer + conn io.ReadWriteCloser +} + +func (rw *fakeReaderWriter) Read() (*frame.Frame, error) { + return rw.reader.Read() +} + +func (rw *fakeReaderWriter) Write(f *frame.Frame) error { + return rw.writer.Write(f) +} + +func (rw *fakeReaderWriter) Close() error { + return rw.conn.Close() +} + +func (s *StompSuite) Test_conn_option_set_logger(c *C) { + fc1, fc2 := testutil.NewFakeConn(c) + go func() { + + defer func() { + fc2.Close() + fc1.Close() + }() + + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + f2 := frame.New("CONNECTED") + err = writer.Write(f2) + c.Assert(err, IsNil) + }() + + ctrl := gomock.NewController(s.t) + mockLogger := testutil.NewMockLogger(ctrl) + + conn, err := Connect(fc1, ConnOpt.Logger(mockLogger)) + c.Assert(err, IsNil) + c.Check(conn, NotNil) + + c.Assert(conn.log, Equals, mockLogger) +} + +func (s *StompSuite) Test_unsuccessful_connect(c *C) { + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + go func() { + defer func() { + fc2.Close() + close(stop) + }() + + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + f2 := frame.New("ERROR", "message", "auth-failed") + err = writer.Write(f2) + c.Assert(err, IsNil) + }() + + conn, err := Connect(fc1) + c.Assert(conn, IsNil) + c.Assert(err, ErrorMatches, "auth-failed") +} + +func (s *StompSuite) Test_successful_connect_and_disconnect(c *C) { + testcases := []struct { + Options []func(*Conn) error + NegotiatedVersion string + ExpectedVersion Version + ExpectedSession string + ExpectedHost string + ExpectedServer string + }{ + { + Options: []func(*Conn) error{ConnOpt.Host("the-server")}, + ExpectedVersion: "1.0", + ExpectedSession: "", + ExpectedHost: "the-server", + ExpectedServer: "some-server/1.1", + }, + { + Options: []func(*Conn) error{}, + NegotiatedVersion: "1.1", + ExpectedVersion: "1.1", + ExpectedSession: "the-session", + ExpectedHost: "the-server", + }, + { + Options: []func(*Conn) error{ConnOpt.Host("xxx")}, + NegotiatedVersion: "1.2", + ExpectedVersion: "1.2", + ExpectedSession: "the-session", + ExpectedHost: "xxx", + }, + } + + for _, tc := range testcases { + resetId() + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + go func() { + defer func() { + fc2.Close() + close(stop) + }() + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + host, _ := f1.Header.Contains("host") + c.Check(host, Equals, tc.ExpectedHost) + connectedFrame := frame.New("CONNECTED") + if tc.NegotiatedVersion != "" { + connectedFrame.Header.Add("version", tc.NegotiatedVersion) + } + if tc.ExpectedSession != "" { + connectedFrame.Header.Add("session", tc.ExpectedSession) + } + if tc.ExpectedServer != "" { + connectedFrame.Header.Add("server", tc.ExpectedServer) + } + err = writer.Write(connectedFrame) + c.Assert(err, IsNil) + + f2, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f2.Command, Equals, "DISCONNECT") + receipt, _ := f2.Header.Contains("receipt") + c.Check(receipt, Equals, "1") + + err = writer.Write(frame.New("RECEIPT", frame.ReceiptId, "1")) + c.Assert(err, IsNil) + + }() + + client, err := Connect(fc1, tc.Options...) + c.Assert(err, IsNil) + c.Assert(client, NotNil) + c.Assert(client.Version(), Equals, tc.ExpectedVersion) + c.Assert(client.Session(), Equals, tc.ExpectedSession) + c.Assert(client.Server(), Equals, tc.ExpectedServer) + + err = client.Disconnect() + c.Assert(err, IsNil) + + <-stop + } +} + +func (s *StompSuite) Test_successful_connect_get_headers(c *C) { + var respHeaders *frame.Header + + testcases := []struct { + Options []func(*Conn) error + Headers map[string]string + }{ + { + Options: []func(*Conn) error{ConnOpt.ResponseHeaders(func(f *frame.Header) { respHeaders = f })}, + Headers: map[string]string{"custom-header": "test", "foo": "bar"}, + }, + } + + for _, tc := range testcases { + resetId() + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + go func() { + defer func() { + fc2.Close() + close(stop) + }() + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + connectedFrame := frame.New("CONNECTED") + for key, value := range tc.Headers { + connectedFrame.Header.Add(key, value) + } + err = writer.Write(connectedFrame) + c.Assert(err, IsNil) + + f2, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f2.Command, Equals, "DISCONNECT") + receipt, _ := f2.Header.Contains("receipt") + c.Check(receipt, Equals, "1") + + err = writer.Write(frame.New("RECEIPT", frame.ReceiptId, "1")) + c.Assert(err, IsNil) + + }() + + client, err := Connect(fc1, tc.Options...) + c.Assert(err, IsNil) + c.Assert(client, NotNil) + c.Assert(respHeaders, NotNil) + for key, value := range tc.Headers { + c.Assert(respHeaders.Get(key), Equals, value) + } + err = client.Disconnect() + c.Assert(err, IsNil) + + <-stop + } +} + +func (s *StompSuite) Test_successful_connect_with_nonstandard_header(c *C) { + resetId() + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + go func() { + defer func() { + fc2.Close() + close(stop) + }() + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + c.Assert(f1.Header.Get("login"), Equals, "guest") + c.Assert(f1.Header.Get("passcode"), Equals, "guest") + c.Assert(f1.Header.Get("host"), Equals, "/") + c.Assert(f1.Header.Get("x-max-length"), Equals, "50") + connectedFrame := frame.New("CONNECTED") + connectedFrame.Header.Add("session", "session-0voRHrG-VbBedx1Gwwb62Q") + connectedFrame.Header.Add("heart-beat", "0,0") + connectedFrame.Header.Add("server", "RabbitMQ/3.2.1") + connectedFrame.Header.Add("version", "1.0") + err = writer.Write(connectedFrame) + c.Assert(err, IsNil) + + f2, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f2.Command, Equals, "DISCONNECT") + receipt, _ := f2.Header.Contains("receipt") + c.Check(receipt, Equals, "1") + + err = writer.Write(frame.New("RECEIPT", frame.ReceiptId, "1")) + c.Assert(err, IsNil) + }() + + client, err := Connect(fc1, + ConnOpt.Login("guest", "guest"), + ConnOpt.Host("/"), + ConnOpt.Header("x-max-length", "50")) + c.Assert(err, IsNil) + c.Assert(client, NotNil) + c.Assert(client.Version(), Equals, V10) + c.Assert(client.Session(), Equals, "session-0voRHrG-VbBedx1Gwwb62Q") + c.Assert(client.Server(), Equals, "RabbitMQ/3.2.1") + + err = client.Disconnect() + c.Assert(err, IsNil) + + <-stop +} + +func (s *StompSuite) Test_connect_not_panic_on_empty_response(c *C) { + resetId() + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + go func() { + defer func() { + fc2.Close() + close(stop) + }() + reader := frame.NewReader(fc2) + _, err := reader.Read() + c.Assert(err, IsNil) + _, err = fc2.Write([]byte("\n")) + c.Assert(err, IsNil) + }() + + client, err := Connect(fc1, ConnOpt.Host("the_server")) + c.Assert(err, NotNil) + c.Assert(client, IsNil) + + fc1.Close() + <-stop +} + +func (s *StompSuite) Test_successful_disconnect_with_receipt_timeout(c *C) { + resetId() + fc1, fc2 := testutil.NewFakeConn(c) + + defer func() { + fc2.Close() + }() + + go func() { + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + connectedFrame := frame.New("CONNECTED") + err = writer.Write(connectedFrame) + c.Assert(err, IsNil) + }() + + client, err := Connect(fc1, ConnOpt.DisconnectReceiptTimeout(1 * time.Nanosecond)) + c.Assert(err, IsNil) + c.Assert(client, NotNil) + + err = client.Disconnect() + c.Assert(err, Equals, ErrDisconnectReceiptTimeout) + c.Assert(client.closed, Equals, true) +} + +// Sets up a connection for testing +func connectHelper(c *C, version Version) (*Conn, *fakeReaderWriter) { + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + + go func() { + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + f2 := frame.New("CONNECTED", "version", version.String()) + err = writer.Write(f2) + c.Assert(err, IsNil) + close(stop) + }() + + conn, err := Connect(fc1) + c.Assert(err, IsNil) + c.Assert(conn, NotNil) + <-stop + return conn, &fakeReaderWriter{ + reader: reader, + writer: writer, + conn: fc2, + } +} + +func (s *StompSuite) Test_subscribe(c *C) { + ackModes := []AckMode{AckAuto, AckClient, AckClientIndividual} + versions := []Version{V10, V11, V12} + + for _, ackMode := range ackModes { + for _, version := range versions { + subscribeHelper(c, ackMode, version) + subscribeHelper(c, ackMode, version, + SubscribeOpt.Header("id", "client-1"), + SubscribeOpt.Header("custom", "true")) + } + } +} + +func subscribeHelper(c *C, ackMode AckMode, version Version, opts ...func(*frame.Frame) error) { + conn, rw := connectHelper(c, version) + stop := make(chan struct{}) + + go func() { + defer func() { + rw.Close() + close(stop) + }() + + f3, err := rw.Read() + c.Assert(err, IsNil) + c.Assert(f3.Command, Equals, "SUBSCRIBE") + + id, ok := f3.Header.Contains("id") + c.Assert(ok, Equals, true) + + destination := f3.Header.Get("destination") + c.Assert(destination, Equals, "/queue/test-1") + ack := f3.Header.Get("ack") + c.Assert(ack, Equals, ackMode.String()) + + for i := 1; i <= 5; i++ { + messageId := fmt.Sprintf("message-%d", i) + bodyText := fmt.Sprintf("Message body %d", i) + f4 := frame.New("MESSAGE", + frame.Subscription, id, + frame.MessageId, messageId, + frame.Destination, destination) + if version == V12 && ackMode.ShouldAck() { + f4.Header.Add(frame.Ack, messageId) + } + f4.Body = []byte(bodyText) + err = rw.Write(f4) + c.Assert(err, IsNil) + + if ackMode.ShouldAck() { + f5, _ := rw.Read() + c.Assert(f5.Command, Equals, "ACK") + if version == V12 { + c.Assert(f5.Header.Get(frame.Id), Equals, messageId) + } else { + c.Assert(f5.Header.Get("subscription"), Equals, id) + c.Assert(f5.Header.Get("message-id"), Equals, messageId) + } + } + } + + f6, _ := rw.Read() + c.Assert(f6.Command, Equals, "UNSUBSCRIBE") + c.Assert(f6.Header.Get(frame.Receipt), Not(Equals), "") + c.Assert(f6.Header.Get(frame.Id), Equals, id) + err = rw.Write(frame.New(frame.RECEIPT, frame.ReceiptId, f6.Header.Get(frame.Receipt))) + c.Assert(err, IsNil) + + f7, _ := rw.Read() + c.Assert(f7.Command, Equals, "DISCONNECT") + err = rw.Write(frame.New(frame.RECEIPT, frame.ReceiptId, f7.Header.Get(frame.Receipt))) + c.Assert(err, IsNil) + }() + + var sub *Subscription + var err error + sub, err = conn.Subscribe("/queue/test-1", ackMode, opts...) + + c.Assert(sub, NotNil) + c.Assert(err, IsNil) + + for i := 1; i <= 5; i++ { + msg := <-sub.C + messageId := fmt.Sprintf("message-%d", i) + bodyText := fmt.Sprintf("Message body %d", i) + c.Assert(msg.Subscription, Equals, sub) + c.Assert(msg.Body, DeepEquals, []byte(bodyText)) + c.Assert(msg.Destination, Equals, "/queue/test-1") + c.Assert(msg.Header.Get(frame.MessageId), Equals, messageId) + if version == V12 && ackMode.ShouldAck() { + c.Assert(msg.Header.Get(frame.Ack), Equals, messageId) + } + + c.Assert(msg.ShouldAck(), Equals, ackMode.ShouldAck()) + if msg.ShouldAck() { + err = msg.Conn.Ack(msg) + c.Assert(err, IsNil) + } + } + + err = sub.Unsubscribe(SubscribeOpt.Header("custom", "true")) + c.Assert(err, IsNil) + + err = conn.Disconnect() + c.Assert(err, IsNil) +} + +func (s *StompSuite) TestTransaction(c *C) { + + ackModes := []AckMode{AckAuto, AckClient, AckClientIndividual} + versions := []Version{V10, V11, V12} + aborts := []bool{false, true} + nacks := []bool{false, true} + + for _, ackMode := range ackModes { + for _, version := range versions { + for _, abort := range aborts { + for _, nack := range nacks { + subscribeTransactionHelper(c, ackMode, version, abort, nack) + } + } + } + } +} + +func subscribeTransactionHelper(c *C, ackMode AckMode, version Version, abort bool, nack bool) { + conn, rw := connectHelper(c, version) + stop := make(chan struct{}) + + go func() { + defer func() { + rw.Close() + close(stop) + }() + + f3, err := rw.Read() + c.Assert(err, IsNil) + c.Assert(f3.Command, Equals, "SUBSCRIBE") + id, ok := f3.Header.Contains("id") + c.Assert(ok, Equals, true) + destination := f3.Header.Get("destination") + c.Assert(destination, Equals, "/queue/test-1") + ack := f3.Header.Get("ack") + c.Assert(ack, Equals, ackMode.String()) + + for i := 1; i <= 5; i++ { + messageId := fmt.Sprintf("message-%d", i) + bodyText := fmt.Sprintf("Message body %d", i) + f4 := frame.New("MESSAGE", + frame.Subscription, id, + frame.MessageId, messageId, + frame.Destination, destination) + if version == V12 && ackMode.ShouldAck() { + f4.Header.Add(frame.Ack, messageId) + } + f4.Body = []byte(bodyText) + err = rw.Write(f4) + c.Assert(err, IsNil) + + beginFrame, err := rw.Read() + c.Assert(err, IsNil) + c.Assert(beginFrame, NotNil) + c.Check(beginFrame.Command, Equals, "BEGIN") + tx, ok := beginFrame.Header.Contains(frame.Transaction) + + c.Assert(ok, Equals, true) + + if ackMode.ShouldAck() { + f5, _ := rw.Read() + if nack && version.SupportsNack() { + c.Assert(f5.Command, Equals, "NACK") + } else { + c.Assert(f5.Command, Equals, "ACK") + } + if version == V12 { + c.Assert(f5.Header.Get(frame.Id), Equals, messageId) + } else { + c.Assert(f5.Header.Get("subscription"), Equals, id) + c.Assert(f5.Header.Get("message-id"), Equals, messageId) + } + c.Assert(f5.Header.Get("transaction"), Equals, tx) + } + + sendFrame, _ := rw.Read() + c.Assert(sendFrame, NotNil) + c.Assert(sendFrame.Command, Equals, "SEND") + c.Assert(sendFrame.Header.Get("transaction"), Equals, tx) + + commitFrame, _ := rw.Read() + c.Assert(commitFrame, NotNil) + if abort { + c.Assert(commitFrame.Command, Equals, "ABORT") + } else { + c.Assert(commitFrame.Command, Equals, "COMMIT") + } + c.Assert(commitFrame.Header.Get("transaction"), Equals, tx) + } + + f6, _ := rw.Read() + c.Assert(f6.Command, Equals, "UNSUBSCRIBE") + c.Assert(f6.Header.Get(frame.Receipt), Not(Equals), "") + c.Assert(f6.Header.Get(frame.Id), Equals, id) + err = rw.Write(frame.New(frame.RECEIPT, frame.ReceiptId, f6.Header.Get(frame.Receipt))) + c.Assert(err, IsNil) + + f7, _ := rw.Read() + c.Assert(f7.Command, Equals, "DISCONNECT") + err = rw.Write(frame.New(frame.RECEIPT, frame.ReceiptId, f7.Header.Get(frame.Receipt))) + c.Assert(err, IsNil) + }() + + sub, err := conn.Subscribe("/queue/test-1", ackMode) + c.Assert(sub, NotNil) + c.Assert(err, IsNil) + + for i := 1; i <= 5; i++ { + msg := <-sub.C + messageId := fmt.Sprintf("message-%d", i) + bodyText := fmt.Sprintf("Message body %d", i) + c.Assert(msg.Subscription, Equals, sub) + c.Assert(msg.Body, DeepEquals, []byte(bodyText)) + c.Assert(msg.Destination, Equals, "/queue/test-1") + c.Assert(msg.Header.Get(frame.MessageId), Equals, messageId) + + c.Assert(msg.ShouldAck(), Equals, ackMode.ShouldAck()) + tx := msg.Conn.Begin() + c.Assert(tx.Id(), Not(Equals), "") + if msg.ShouldAck() { + if nack && version.SupportsNack() { + err = tx.Nack(msg) + c.Assert(err, IsNil) + } else { + err = tx.Ack(msg) + c.Assert(err, IsNil) + } + } + err = tx.Send("/queue/another-queue", "text/plain", []byte(bodyText)) + c.Assert(err, IsNil) + if abort { + err = tx.Abort() + c.Assert(err, IsNil) + } else { + err = tx.Commit() + c.Assert(err, IsNil) + } + } + + err = sub.Unsubscribe() + c.Assert(err, IsNil) + + err = conn.Disconnect() + c.Assert(err, IsNil) +} + +func (s *StompSuite) TestHeartBeatReadTimeout(c *C) { + conn, rw := createHeartBeatConnection(c, 100, 10000, time.Millisecond) + + go func() { + f1, err := rw.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "SUBSCRIBE") + messageFrame := frame.New("MESSAGE", + "destination", f1.Header.Get("destination"), + "message-id", "1", + "subscription", f1.Header.Get("id")) + messageFrame.Body = []byte("Message body") + err = rw.Write(messageFrame) + c.Assert(err, IsNil) + }() + + sub, err := conn.Subscribe("/queue/test1", AckAuto) + c.Assert(err, IsNil) + c.Check(conn.readTimeout, Equals, 101*time.Millisecond) + //println("read timeout", conn.readTimeout.String()) + + msg, ok := <-sub.C + c.Assert(msg, NotNil) + c.Assert(ok, Equals, true) + + msg, ok = <-sub.C + c.Assert(msg, NotNil) + c.Assert(ok, Equals, true) + c.Assert(msg.Err, NotNil) + c.Assert(msg.Err.Error(), Equals, "read timeout") + + msg, ok = <-sub.C + c.Assert(msg, IsNil) + c.Assert(ok, Equals, false) +} + +func (s *StompSuite) TestHeartBeatWriteTimeout(c *C) { + c.Skip("not finished yet") + conn, rw := createHeartBeatConnection(c, 10000, 100, time.Millisecond*1) + + go func() { + f1, err := rw.Read() + c.Assert(err, IsNil) + c.Assert(f1, IsNil) + + }() + + time.Sleep(250) + err := conn.Disconnect() + c.Assert(err, IsNil) +} + +func createHeartBeatConnection( + c *C, + readTimeout, writeTimeout int, + readTimeoutError time.Duration) (*Conn, *fakeReaderWriter) { + fc1, fc2 := testutil.NewFakeConn(c) + stop := make(chan struct{}) + + reader := frame.NewReader(fc2) + writer := frame.NewWriter(fc2) + + go func() { + f1, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(f1.Command, Equals, "CONNECT") + c.Assert(f1.Header.Get("heart-beat"), Equals, "1,1") + f2 := frame.New("CONNECTED", "version", "1.2") + f2.Header.Add("heart-beat", fmt.Sprintf("%d,%d", readTimeout, writeTimeout)) + err = writer.Write(f2) + c.Assert(err, IsNil) + close(stop) + }() + + conn, err := Connect(fc1, + ConnOpt.HeartBeat(time.Millisecond, time.Millisecond), + ConnOpt.HeartBeatError(readTimeoutError)) + c.Assert(conn, NotNil) + c.Assert(err, IsNil) + <-stop + return conn, &fakeReaderWriter{ + reader: reader, + writer: writer, + conn: fc2, + } +} + +// Testing Timeouts when receiving receipts +func sendFrameHelper(f *frame.Frame, c chan *frame.Frame) { + c <- f +} + +//// GIVEN_TheTimeoutIsExceededBeforeTheReceiptIsReceived_WHEN_CallingReadReceiptWithTimeout_THEN_ReturnAnError +func (s *StompSuite) Test_TimeoutTriggers(c *C) { + const timeout = 1 * time.Millisecond + f := frame.Frame{} + request := writeRequest{ + Frame: &f, + C: make(chan *frame.Frame), + } + + err := readReceiptWithTimeout(request.C, timeout, ErrMsgReceiptTimeout) + + c.Assert(err, NotNil) +} + +//// GIVEN_TheChannelReceivesTheReceiptBeforeTheTimeoutExpires_WHEN_CallingReadReceiptWithTimeout_THEN_DoNotReturnAnError +func (s *StompSuite) Test_ChannelReceviesReceipt(c *C) { + const timeout = 1 * time.Second + f := frame.Frame{} + request := writeRequest{ + Frame: &f, + C: make(chan *frame.Frame), + } + receipt := frame.Frame{ + Command: frame.RECEIPT, + } + + go sendFrameHelper(&receipt, request.C) + err := readReceiptWithTimeout(request.C, timeout, ErrMsgReceiptTimeout) + + c.Assert(err, IsNil) +} + +//// GIVEN_TheChannelReceivesMessage_AND_TheMessageIsNotAReceipt_WHEN_CallingReadReceiptWithTimeout_THEN_ReturnAnError +func (s *StompSuite) Test_ChannelReceviesNonReceipt(c *C) { + const timeout = 1 * time.Second + f := frame.Frame{} + request := writeRequest{ + Frame: &f, + C: make(chan *frame.Frame), + } + receipt := frame.Frame{ + Command: "NOT A RECEIPT", + } + + go sendFrameHelper(&receipt, request.C) + err := readReceiptWithTimeout(request.C, timeout, ErrMsgReceiptTimeout) + + c.Assert(err, NotNil) +} + +//// GIVEN_TheTimeoutIsSetToZero_AND_TheMessageIsReceived_WHEN_CallingReadReceiptWithTimeout_THEN_DoNotReturnAnError +func (s *StompSuite) Test_ZeroTimeout(c *C) { + const timeout = 0 * time.Second + f := frame.Frame{} + request := writeRequest{ + Frame: &f, + C: make(chan *frame.Frame), + } + receipt := frame.Frame{ + Command: frame.RECEIPT, + } + + go sendFrameHelper(&receipt, request.C) + err := readReceiptWithTimeout(request.C, timeout, ErrMsgReceiptTimeout) + + c.Assert(err, IsNil) +} diff --git a/backend/services/stomp/errors.go b/backend/services/stomp/errors.go new file mode 100644 index 0000000..36bee38 --- /dev/null +++ b/backend/services/stomp/errors.go @@ -0,0 +1,57 @@ +package stomp + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// Error values +var ( + ErrInvalidCommand = newErrorMessage("invalid command") + ErrInvalidFrameFormat = newErrorMessage("invalid frame format") + ErrUnsupportedVersion = newErrorMessage("unsupported version") + ErrCompletedTransaction = newErrorMessage("transaction is completed") + ErrNackNotSupported = newErrorMessage("NACK not supported in STOMP 1.0") + ErrNotReceivedMessage = newErrorMessage("cannot ack/nack a message, not from server") + ErrCannotNackAutoSub = newErrorMessage("cannot send NACK for a subscription with ack:auto") + ErrCompletedSubscription = newErrorMessage("subscription is unsubscribed") + ErrClosedUnexpectedly = newErrorMessage("connection closed unexpectedly") + ErrAlreadyClosed = newErrorMessage("connection already closed") + ErrMsgSendTimeout = newErrorMessage("msg send timeout") + ErrMsgReceiptTimeout = newErrorMessage("msg receipt timeout") + ErrDisconnectReceiptTimeout = newErrorMessage("disconnect receipt timeout") + ErrNilOption = newErrorMessage("nil option") +) + +// StompError implements the Error interface, and provides +// additional information about a STOMP error. +type Error struct { + Message string + Frame *frame.Frame +} + +func (e Error) Error() string { + return e.Message +} + +func missingHeader(name string) Error { + return newErrorMessage("missing header: " + name) +} + +func newErrorMessage(msg string) Error { + return Error{Message: msg} +} + +func newError(f *frame.Frame) Error { + e := Error{Frame: f} + + if f.Command == frame.ERROR { + if message := f.Header.Get(frame.Message); message != "" { + e.Message = message + } else { + e.Message = "ERROR frame, missing message header" + } + } else { + e.Message = "Unexpected frame: " + f.Command + } + return e +} diff --git a/backend/services/stomp/example_test.go b/backend/services/stomp/example_test.go new file mode 100644 index 0000000..4f095d9 --- /dev/null +++ b/backend/services/stomp/example_test.go @@ -0,0 +1,242 @@ +package stomp_test + +import ( + "fmt" + "net" + "time" + + "github.com/go-stomp/stomp/v3" + "github.com/go-stomp/stomp/v3/frame" +) + +func ExampleConn_Send(c *stomp.Conn) error { + // send with receipt and an optional header + err := c.Send( + "/queue/test-1", // destination + "text/plain", // content-type + []byte("Message number 1"), // body + stomp.SendOpt.Receipt, + stomp.SendOpt.Header("expires", "2049-12-31 23:59:59")) + if err != nil { + return err + } + + // send with no receipt and no optional headers + err = c.Send("/queue/test-2", "application/xml", + []byte("hello")) + if err != nil { + return err + } + + return nil +} + +// Creates a new Header. +func ExampleNewHeader() { + /* + Creates a header that looks like the following: + + login:scott + passcode:tiger + host:stompserver + accept-version:1.1,1.2 + */ + h := frame.NewHeader( + "login", "scott", + "passcode", "tiger", + "host", "stompserver", + "accept-version", "1.1,1.2") + doSomethingWith(h) +} + +// Creates a STOMP frame. +func ExampleNewFrame() { + /* + Creates a STOMP frame that looks like the following: + + CONNECT + login:scott + passcode:tiger + host:stompserver + accept-version:1.1,1.2 + + ^@ + */ + f := frame.New("CONNECT", + "login", "scott", + "passcode", "tiger", + "host", "stompserver", + "accept-version", "1.1,1.2") + doSomethingWith(f) +} + +func doSomethingWith(f ...interface{}) { + +} + +func doAnotherThingWith(f interface{}, g interface{}) { + +} + +func ExampleConn_Subscribe_1() error { + conn, err := stomp.Dial("tcp", "localhost:61613") + if err != nil { + return err + } + + sub, err := conn.Subscribe("/queue/test-2", stomp.AckClient) + if err != nil { + return err + } + + // receive 5 messages and then quit + for i := 0; i < 5; i++ { + msg := <-sub.C + if msg.Err != nil { + return msg.Err + } + + doSomethingWith(msg) + + // acknowledge the message + err = conn.Ack(msg) + if err != nil { + return err + } + } + + err = sub.Unsubscribe() + if err != nil { + return err + } + + return conn.Disconnect() +} + +// Example of creating subscriptions with various options. +func ExampleConn_Subscribe_2(c *stomp.Conn) error { + // Subscribe to queue with automatic acknowledgement + sub1, err := c.Subscribe("/queue/test-1", stomp.AckAuto) + if err != nil { + return err + } + + // Subscribe to queue with client acknowledgement and a custom header value + sub2, err := c.Subscribe("/queue/test-2", stomp.AckClient, + stomp.SubscribeOpt.Header("x-custom-header", "some-value")) + if err != nil { + return err + } + + doSomethingWith(sub1, sub2) + + return nil +} + +func ExampleTransaction() error { + conn, err := stomp.Dial("tcp", "localhost:61613") + if err != nil { + return err + } + defer conn.Disconnect() + + sub, err := conn.Subscribe("/queue/test-2", stomp.AckClient) + if err != nil { + return err + } + + // receive 5 messages and then quit + for i := 0; i < 5; i++ { + msg := <-sub.C + if msg.Err != nil { + return msg.Err + } + + tx := conn.Begin() + + doAnotherThingWith(msg, tx) + + tx.Send("/queue/another-one", "text/plain", + []byte(fmt.Sprintf("Message #%d", i)), nil) + + // acknowledge the message + err = tx.Ack(msg) + if err != nil { + return err + } + + err = tx.Commit() + if err != nil { + return err + } + } + + err = sub.Unsubscribe() + if err != nil { + return err + } + + return nil +} + +// Example of connecting to a STOMP server using an existing network connection. +func ExampleConnect() error { + netConn, err := net.DialTimeout("tcp", "stomp.server.com:61613", 10*time.Second) + if err != nil { + return err + } + + stompConn, err := stomp.Connect(netConn) + if err != nil { + return err + } + + defer stompConn.Disconnect() + + doSomethingWith(stompConn) + return nil +} + +// Connect to a STOMP server using default options. +func ExampleDial_1() error { + conn, err := stomp.Dial("tcp", "192.168.1.1:61613") + if err != nil { + return err + } + + err = conn.Send( + "/queue/test-1", // destination + "text/plain", // content-type + []byte("Test message #1")) // body + if err != nil { + return err + } + + return conn.Disconnect() +} + +// Connect to a STOMP server that requires authentication. In addition, +// we are only prepared to use STOMP protocol version 1.1 or 1.2, and +// the virtual host is named "dragon". In this example the STOMP +// server also accepts a non-standard header called 'nonce'. +func ExampleDial_2() error { + conn, err := stomp.Dial("tcp", "192.168.1.1:61613", + stomp.ConnOpt.Login("scott", "leopard"), + stomp.ConnOpt.AcceptVersion(stomp.V11), + stomp.ConnOpt.AcceptVersion(stomp.V12), + stomp.ConnOpt.Host("dragon"), + stomp.ConnOpt.Header("nonce", "B256B26D320A")) + if err != nil { + return err + } + + err = conn.Send( + "/queue/test-1", // destination + "text/plain", // content-type + []byte("Test message #1")) // body + if err != nil { + return err + } + + return conn.Disconnect() +} diff --git a/backend/services/stomp/examples/client_test/main.go b/backend/services/stomp/examples/client_test/main.go new file mode 100644 index 0000000..7fd61c8 --- /dev/null +++ b/backend/services/stomp/examples/client_test/main.go @@ -0,0 +1,98 @@ +package main + +import ( + "flag" + "fmt" + "os" + + "github.com/go-stomp/stomp/v3" +) + +const defaultPort = ":61613" + +var serverAddr = flag.String("server", "localhost:61613", "STOMP server endpoint") +var messageCount = flag.Int("count", 10, "Number of messages to send/receive") +var queueName = flag.String("queue", "/queue/client_test", "Destination queue") +var helpFlag = flag.Bool("help", false, "Print help text") +var stop = make(chan bool) + +// these are the default options that work with RabbitMQ +var options []func(*stomp.Conn) error = []func(*stomp.Conn) error{ + stomp.ConnOpt.Login("guest", "guest"), + stomp.ConnOpt.Host("/"), +} + +func main() { + flag.Parse() + if *helpFlag { + fmt.Fprintf(os.Stderr, "Usage of %s\n", os.Args[0]) + flag.PrintDefaults() + os.Exit(1) + } + + subscribed := make(chan bool) + go recvMessages(subscribed) + + // wait until we know the receiver has subscribed + <-subscribed + + go sendMessages() + + <-stop + <-stop +} + +func sendMessages() { + defer func() { + stop <- true + }() + + conn, err := stomp.Dial("tcp", *serverAddr, options...) + if err != nil { + println("cannot connect to server", err.Error()) + return + } + + for i := 1; i <= *messageCount; i++ { + text := fmt.Sprintf("Message #%d", i) + err = conn.Send(*queueName, "text/plain", + []byte(text), nil) + if err != nil { + println("failed to send to server", err) + return + } + } + println("sender finished") +} + +func recvMessages(subscribed chan bool) { + defer func() { + stop <- true + }() + + conn, err := stomp.Dial("tcp", *serverAddr, options...) + + if err != nil { + println("cannot connect to server", err.Error()) + return + } + + sub, err := conn.Subscribe(*queueName, stomp.AckAuto) + if err != nil { + println("cannot subscribe to", *queueName, err.Error()) + return + } + close(subscribed) + + for i := 1; i <= *messageCount; i++ { + msg := <-sub.C + expectedText := fmt.Sprintf("Message #%d", i) + actualText := string(msg.Body) + if expectedText != actualText { + println("Expected:", expectedText) + println("Actual:", actualText) + } + } + println("receiver finished") + +} diff --git a/backend/services/stomp/frame/ack.go b/backend/services/stomp/frame/ack.go new file mode 100644 index 0000000..f36de4a --- /dev/null +++ b/backend/services/stomp/frame/ack.go @@ -0,0 +1,8 @@ +package frame + +// Valid values for the "ack" header entry. +const ( + AckAuto = "auto" // Client does not send ACK + AckClient = "client" // Client sends ACK/NACK + AckClientIndividual = "client-individual" // Client sends ACK/NACK for individual messages +) diff --git a/backend/services/stomp/frame/command.go b/backend/services/stomp/frame/command.go new file mode 100644 index 0000000..f1ef76f --- /dev/null +++ b/backend/services/stomp/frame/command.go @@ -0,0 +1,26 @@ +package frame + +// STOMP frame commands. Used upper case naming +// convention to avoid clashing with STOMP header names. +const ( + // Connect commands. + CONNECT = "CONNECT" + STOMP = "STOMP" + CONNECTED = "CONNECTED" + + // Client commands. + SEND = "SEND" + SUBSCRIBE = "SUBSCRIBE" + UNSUBSCRIBE = "UNSUBSCRIBE" + ACK = "ACK" + NACK = "NACK" + BEGIN = "BEGIN" + COMMIT = "COMMIT" + ABORT = "ABORT" + DISCONNECT = "DISCONNECT" + + // Server commands. + MESSAGE = "MESSAGE" + RECEIPT = "RECEIPT" + ERROR = "ERROR" +) diff --git a/backend/services/stomp/frame/encode.go b/backend/services/stomp/frame/encode.go new file mode 100644 index 0000000..ecd187c --- /dev/null +++ b/backend/services/stomp/frame/encode.go @@ -0,0 +1,34 @@ +package frame + +import ( + "strings" + "unsafe" +) + +var ( + replacerForEncodeValue = strings.NewReplacer( + "\\", "\\\\", + "\r", "\\r", + "\n", "\\n", + ":", "\\c", + ) + replacerForUnencodeValue = strings.NewReplacer( + "\\r", "\r", + "\\n", "\n", + "\\c", ":", + "\\\\", "\\", + ) +) + +// Reduce one allocation on copying bytes to string +func bytesToString(b []byte) string { + /* #nosec G103 */ + return *(*string)(unsafe.Pointer(&b)) +} + +// Unencodes a header value using STOMP value encoding +// TODO: return error if invalid sequences found (eg "\t") +func unencodeValue(b []byte) (string, error) { + s := replacerForUnencodeValue.Replace(bytesToString(b)) + return s, nil +} diff --git a/backend/services/stomp/frame/encode_test.go b/backend/services/stomp/frame/encode_test.go new file mode 100644 index 0000000..99a1ab9 --- /dev/null +++ b/backend/services/stomp/frame/encode_test.go @@ -0,0 +1,15 @@ +package frame + +import ( + . "gopkg.in/check.v1" +) + +type EncodeSuite struct{} + +var _ = Suite(&EncodeSuite{}) + +func (s *EncodeSuite) TestUnencodeValue(c *C) { + val, err := unencodeValue([]byte(`Contains\r\nNewLine and \c colon and \\ backslash`)) + c.Check(err, IsNil) + c.Check(val, Equals, "Contains\r\nNewLine and : colon and \\ backslash") +} diff --git a/backend/services/stomp/frame/errors.go b/backend/services/stomp/frame/errors.go new file mode 100644 index 0000000..672b918 --- /dev/null +++ b/backend/services/stomp/frame/errors.go @@ -0,0 +1,9 @@ +package frame + +import ( + "errors" +) + +var ( + ErrInvalidHeartBeat = errors.New("invalid heart-beat") +) diff --git a/backend/services/stomp/frame/frame.go b/backend/services/stomp/frame/frame.go new file mode 100644 index 0000000..a94b5f1 --- /dev/null +++ b/backend/services/stomp/frame/frame.go @@ -0,0 +1,38 @@ +/* +Package frame provides functionality for manipulating STOMP frames. +*/ +package frame + +// A Frame represents a STOMP frame. A frame consists of a command +// followed by a collection of header entries, and then an optional +// body. +type Frame struct { + Command string + Header *Header + Body []byte +} + +// New creates a new STOMP frame with the specified command and headers. +// The headers should contain an even number of entries. Each even index is +// the header name, and the odd indexes are the assocated header values. +func New(command string, headers ...string) *Frame { + f := &Frame{Command: command, Header: &Header{}} + for index := 0; index < len(headers); index += 2 { + f.Header.Add(headers[index], headers[index+1]) + } + return f +} + +// Clone creates a deep copy of the frame and its header. The cloned +// frame shares the body with the original frame. +func (f *Frame) Clone() *Frame { + fc := &Frame{Command: f.Command} + if f.Header != nil { + fc.Header = f.Header.Clone() + } + if f.Body != nil { + fc.Body = make([]byte, len(f.Body)) + copy(fc.Body, f.Body) + } + return fc +} diff --git a/backend/services/stomp/frame/frame_test.go b/backend/services/stomp/frame/frame_test.go new file mode 100644 index 0000000..1f31a1e --- /dev/null +++ b/backend/services/stomp/frame/frame_test.go @@ -0,0 +1,67 @@ +package frame + +import ( + "testing" + + . "gopkg.in/check.v1" +) + +func TestFrame(t *testing.T) { + TestingT(t) +} + +type FrameSuite struct{} + +var _ = Suite(&FrameSuite{}) + +func (s *FrameSuite) TestNew(c *C) { + f := New("CCC") + c.Check(f.Header.Len(), Equals, 0) + c.Check(f.Command, Equals, "CCC") + + f = New("DDDD", "abc", "def") + c.Check(f.Header.Len(), Equals, 1) + k, v := f.Header.GetAt(0) + c.Check(k, Equals, "abc") + c.Check(v, Equals, "def") + c.Check(f.Command, Equals, "DDDD") + + f = New("EEEEEEE", "abc", "def", "hij", "klm") + c.Check(f.Command, Equals, "EEEEEEE") + c.Check(f.Header.Len(), Equals, 2) + k, v = f.Header.GetAt(0) + c.Check(k, Equals, "abc") + c.Check(v, Equals, "def") + k, v = f.Header.GetAt(1) + c.Check(k, Equals, "hij") + c.Check(v, Equals, "klm") +} + +func (s *FrameSuite) TestClone(c *C) { + f1 := &Frame{ + Command: "AAAA", + } + + f2 := f1.Clone() + c.Check(f2.Command, Equals, f1.Command) + c.Check(f2.Header, IsNil) + c.Check(f2.Body, IsNil) + + f1.Header = NewHeader("aaa", "1", "bbb", "2", "ccc", "3") + + f2 = f1.Clone() + c.Check(f2.Header.Len(), Equals, f1.Header.Len()) + for i := 0; i < f1.Header.Len(); i++ { + k1, v1 := f1.Header.GetAt(i) + k2, v2 := f2.Header.GetAt(i) + c.Check(k1, Equals, k2) + c.Check(v1, Equals, v2) + } + + f1.Body = []byte{1, 2, 3, 4, 5, 6, 5, 4, 77, 88, 99, 0xaa, 0xbb, 0xcc, 0xff} + f2 = f1.Clone() + c.Check(len(f2.Body), Equals, len(f1.Body)) + for i := 0; i < len(f1.Body); i++ { + c.Check(f1.Body[i], Equals, f2.Body[i]) + } +} diff --git a/backend/services/stomp/frame/header.go b/backend/services/stomp/frame/header.go new file mode 100644 index 0000000..6eb60e2 --- /dev/null +++ b/backend/services/stomp/frame/header.go @@ -0,0 +1,192 @@ +package frame + +import ( + "strconv" +) + +// STOMP header names. Some of the header +// names have commands with the same name +// (eg Ack, Message, Receipt). Commands use +// an upper-case naming convention, header +// names use pascal-case naming convention. +const ( + ContentLength = "content-length" + ContentType = "content-type" + Receipt = "receipt" + AcceptVersion = "accept-version" + Host = "host" + Version = "version" + Login = "login" + Passcode = "passcode" + HeartBeat = "heart-beat" + Session = "session" + Server = "server" + Destination = "destination" + Id = "id" + Ack = "ack" + Transaction = "transaction" + ReceiptId = "receipt-id" + Subscription = "subscription" + MessageId = "message-id" + Message = "message" + /* TR-369 section 4.4.2.1 [Subscribing a USP Endpoint to a STOMP Destination] */ + /* + R-STOMP.14: USP Agents that receive a subscribe-dest STOMP Header in the CONNECTED + frame MUST use that STOMP destination in the destination STOMP header when sending a + SUBSCRIBE frame. + */ + SubscribeDest = "subscribe-dest" +) + +// A Header represents the header part of a STOMP frame. +// The header in a STOMP frame consists of a list of header entries. +// Each header entry is a key/value pair of strings. +// +// Normally a STOMP header only has one header entry for a given key, but +// the STOMP standard does allow for multiple header entries with the same +// key. In this case, the first header entry contains the value, and any +// subsequent header entries with the same key are ignored. +// +// Example header containing 6 header entries. Note that the second +// header entry with the key "comment" would be ignored. +// +// login:scott +// passcode:tiger +// host:stompserver +// accept-version:1.0,1.1,1.2 +// comment:some comment +// comment:another comment +type Header struct { + slice []string +} + +// NewHeader creates a new Header and populates it with header entries. +// This function expects an even number of strings as parameters. The +// even numbered indices are keys and the odd indices are values. See +// the example for more information. +func NewHeader(headerEntries ...string) *Header { + h := &Header{} + h.slice = append(h.slice, headerEntries...) + if len(h.slice)%2 != 0 { + h.slice = append(h.slice, "") + } + return h +} + +// Add adds the key, value pair to the header. +func (h *Header) Add(key, value string) { + h.slice = append(h.slice, key, value) +} + +// AddHeader adds all of the key value pairs in header to h. +func (h *Header) AddHeader(header *Header) { + if header != nil { + for i := 0; i < header.Len(); i++ { + key, value := header.GetAt(i) + h.Add(key, value) + } + } +} + +// Set replaces the value of any existing header entry with the specified key. +// If there is no existing header entry with the specified key, a new +// header entry is added. +func (h *Header) Set(key, value string) { + if i, ok := h.index(key); ok { + h.slice[i+1] = value + } else { + h.slice = append(h.slice, key, value) + } +} + +// Get gets the first value associated with the given key. +// If there are no values associated with the key, Get returns "". +func (h *Header) Get(key string) string { + value, _ := h.Contains(key) + return value +} + +// GetAll returns all of the values associated with a given key. +// Normally there is only one header entry per key, but it is permitted +// to have multiple entries according to the STOMP standard. +func (h *Header) GetAll(key string) []string { + var values []string + for i := 0; i < len(h.slice); i += 2 { + if h.slice[i] == key { + values = append(values, h.slice[i+1]) + } + } + return values +} + +// Returns the header name and value at the specified index in +// the collection. The index should be in the range 0 <= index < Len(), +// a panic will occur if it is outside this range. +func (h *Header) GetAt(index int) (key, value string) { + index *= 2 + return h.slice[index], h.slice[index+1] +} + +// Contains gets the first value associated with the given key, +// and also returns a bool indicating whether the header entry +// exists. +// +// If there are no values associated with the key, Get returns "" +// for the value, and ok is false. +func (h *Header) Contains(key string) (value string, ok bool) { + var i int + if i, ok = h.index(key); ok { + value = h.slice[i+1] + } + return +} + +// Del deletes all header entries with the specified key. +func (h *Header) Del(key string) { + for i, ok := h.index(key); ok; i, ok = h.index(key) { + h.slice = append(h.slice[:i], h.slice[i+2:]...) + } +} + +// Len returns the number of header entries in the header. +func (h *Header) Len() int { + return len(h.slice) / 2 +} + +// Clone returns a deep copy of a Header. +func (h *Header) Clone() *Header { + hc := &Header{slice: make([]string, len(h.slice))} + copy(hc.slice, h.slice) + return hc +} + +// ContentLength returns the value of the "content-length" header entry. +// If the "content-length" header is missing, then ok is false. If the +// "content-length" entry is present but is not a valid non-negative integer +// then err is non-nil. +func (h *Header) ContentLength() (value int, ok bool, err error) { + text, ok := h.Contains(ContentLength) + if !ok { + return 0, false, nil + } + + n, err := strconv.ParseUint(text, 10, 32) + if err != nil { + return 0, true, err + } + + value = int(n) + ok = true + return value, ok, nil +} + +// Returns the index of a header key in Headers, and a bool to indicate +// whether it was found or not. +func (h *Header) index(key string) (int, bool) { + for i := 0; i < len(h.slice); i += 2 { + if h.slice[i] == key { + return i, true + } + } + return -1, false +} diff --git a/backend/services/stomp/frame/header_test.go b/backend/services/stomp/frame/header_test.go new file mode 100644 index 0000000..11330db --- /dev/null +++ b/backend/services/stomp/frame/header_test.go @@ -0,0 +1,69 @@ +package frame + +import ( + . "gopkg.in/check.v1" +) + +func (s *FrameSuite) TestHeaderGetSetAddDel(c *C) { + h := &Header{} + c.Assert(h.Get("xxx"), Equals, "") + h.Add("xxx", "yyy") + c.Assert(h.Get("xxx"), Equals, "yyy") + h.Add("xxx", "zzz") + c.Assert(h.GetAll("xxx"), DeepEquals, []string{"yyy", "zzz"}) + h.Set("xxx", "111") + c.Assert(h.Get("xxx"), Equals, "111") + h.Del("xxx") + c.Assert(h.Get("xxx"), Equals, "") +} + +func (s *FrameSuite) TestHeaderClone(c *C) { + h := Header{} + h.Set("xxx", "yyy") + h.Set("yyy", "zzz") + + hc := h.Clone() + h.Del("xxx") + h.Del("yyy") + c.Assert(hc.Get("xxx"), Equals, "yyy") + c.Assert(hc.Get("yyy"), Equals, "zzz") +} + +func (s *FrameSuite) TestHeaderContains(c *C) { + h := NewHeader("xxx", "yyy", "zzz", "aaa", "xxx", "ccc") + v, ok := h.Contains("xxx") + c.Assert(v, Equals, "yyy") + c.Assert(ok, Equals, true) + + v, ok = h.Contains("123") + c.Assert(v, Equals, "") + c.Assert(ok, Equals, false) +} + +func (s *FrameSuite) TestContentLength(c *C) { + h := NewHeader("xxx", "yy", "content-length", "202", "zz", "123") + cl, ok, err := h.ContentLength() + c.Assert(cl, Equals, 202) + c.Assert(ok, Equals, true) + c.Assert(err, Equals, nil) + + h.Set("content-length", "twenty") + cl, ok, err = h.ContentLength() + c.Assert(cl, Equals, 0) + c.Assert(ok, Equals, true) + c.Assert(err, NotNil) + + h.Del("content-length") + cl, ok, err = h.ContentLength() + c.Assert(cl, Equals, 0) + c.Assert(ok, Equals, false) + c.Assert(err, IsNil) +} + +func (s *FrameSuite) TestLit(c *C) { + _ = Frame{ + Command: "CONNECT", + Header: NewHeader("login", "xxx", "passcode", "yyy"), + Body: []byte{1, 2, 3, 4}, + } +} diff --git a/backend/services/stomp/frame/heartbeat.go b/backend/services/stomp/frame/heartbeat.go new file mode 100644 index 0000000..2f0eb86 --- /dev/null +++ b/backend/services/stomp/frame/heartbeat.go @@ -0,0 +1,44 @@ +package frame + +import ( + "math" + "regexp" + "strconv" + "strings" + "time" +) + +var ( + // Regexp for heart-beat header value + heartBeatRegexp = regexp.MustCompile("^[0-9]+,[0-9]+$") +) + +const ( + // Maximum number of milliseconds that can be represented + // in a time.Duration. + maxMilliseconds = math.MaxInt64 / int64(time.Millisecond) +) + +// ParseHeartBeat parses the value of a STOMP heart-beat entry and +// returns two time durations. Returns an error if the heart-beat +// value is not in the correct format, or if the time durations are +// too big to be represented by the time.Duration type. +func ParseHeartBeat(heartBeat string) (time.Duration, time.Duration, error) { + if !heartBeatRegexp.MatchString(heartBeat) { + return 0, 0, ErrInvalidHeartBeat + } + slice := strings.Split(heartBeat, ",") + value1, err := strconv.ParseInt(slice[0], 10, 64) + if err != nil { + return 0, 0, ErrInvalidHeartBeat + } + value2, err := strconv.ParseInt(slice[1], 10, 64) + if err != nil { + return 0, 0, ErrInvalidHeartBeat + } + if value1 > maxMilliseconds || value2 > maxMilliseconds { + return 0, 0, ErrInvalidHeartBeat + } + return time.Duration(value1) * time.Millisecond, + time.Duration(value2) * time.Millisecond, nil +} diff --git a/backend/services/stomp/frame/heartbeat_test.go b/backend/services/stomp/frame/heartbeat_test.go new file mode 100644 index 0000000..6dff501 --- /dev/null +++ b/backend/services/stomp/frame/heartbeat_test.go @@ -0,0 +1,77 @@ +package frame + +import ( + "time" + + . "gopkg.in/check.v1" +) + +func (s *FrameSuite) TestParseHeartBeat(c *C) { + testCases := []struct { + Input string + ExpectedDuration1 time.Duration + ExpectedDuration2 time.Duration + ExpectError bool + ExpectedError error + }{ + { + Input: "0,0", + ExpectedDuration1: 0, + ExpectedDuration2: 0, + }, + { + Input: "20000,60000", + ExpectedDuration1: 20 * time.Second, + ExpectedDuration2: time.Minute, + }, + { + Input: "86400000,31536000000", + ExpectedDuration1: 24 * time.Hour, + ExpectedDuration2: 365 * 24 * time.Hour, + }, + { + Input: "20r000,60000", + ExpectedDuration1: 0, + ExpectedDuration2: 0, + ExpectedError: ErrInvalidHeartBeat, + }, + { + Input: "99999999999999999999,60000", + ExpectedDuration1: 0, + ExpectedDuration2: 0, + ExpectedError: ErrInvalidHeartBeat, + }, + { + Input: "60000,99999999999999999999", + ExpectedDuration1: 0, + ExpectedDuration2: 0, + ExpectedError: ErrInvalidHeartBeat, + }, + { + Input: "-60000,60000", + ExpectedDuration1: 0, + ExpectedDuration2: 0, + ExpectedError: ErrInvalidHeartBeat, + }, + { + Input: "60000,-60000", + ExpectedDuration1: 0, + ExpectedDuration2: 0, + ExpectedError: ErrInvalidHeartBeat, + }, + } + + for _, tc := range testCases { + d1, d2, err := ParseHeartBeat(tc.Input) + c.Check(d1, Equals, tc.ExpectedDuration1) + c.Check(d2, Equals, tc.ExpectedDuration2) + if tc.ExpectError || tc.ExpectedError != nil { + c.Check(err, NotNil) + if tc.ExpectedError != nil { + c.Check(err, Equals, tc.ExpectedError) + } + } else { + c.Check(err, IsNil) + } + } +} diff --git a/backend/services/stomp/frame/reader.go b/backend/services/stomp/frame/reader.go new file mode 100644 index 0000000..ded3dfe --- /dev/null +++ b/backend/services/stomp/frame/reader.go @@ -0,0 +1,157 @@ +package frame + +import ( + "bufio" + "bytes" + "errors" + "io" +) + +const ( + bufferSize = 4096 + newline = byte(10) + cr = byte(13) + colon = byte(58) + nullByte = byte(0) +) + +var ( + ErrInvalidCommand = errors.New("invalid command") + ErrInvalidFrameFormat = errors.New("invalid frame format") +) + +// The Reader type reads STOMP frames from an underlying io.Reader. +// The reader is buffered, and the size of the buffer is the maximum +// size permitted for the STOMP frame command and header section. +// A STOMP frame is rejected if its command and header section exceed +// the buffer size. +type Reader struct { + reader *bufio.Reader +} + +// NewReader creates a Reader with the default underlying buffer size. +func NewReader(reader io.Reader) *Reader { + return NewReaderSize(reader, bufferSize) +} + +// NewReaderSize creates a Reader with an underlying bufferSize +// of the specified size. +func NewReaderSize(reader io.Reader, bufferSize int) *Reader { + return &Reader{reader: bufio.NewReaderSize(reader, bufferSize)} +} + +// Read a STOMP frame from the input. If the input contains one +// or more heart-beat characters and no frame, then nil will +// be returned for the frame. Calling programs should always check +// for a nil frame. +func (r *Reader) Read() (*Frame, error) { + commandSlice, err := r.readLine() + if err != nil { + return nil, err + } + + if len(commandSlice) == 0 { + // received a heart-beat newline char (or cr-lf) + return nil, nil + } + + f := New(string(commandSlice)) + //println("RX:", f.Command) + switch f.Command { + // TODO(jpj): Is it appropriate to perform validation on the + // command at this point. Probably better to validate higher up, + // this way this type can be useful for any other non-STOMP protocols + // which happen to use the same frame format. + case CONNECT, STOMP, SEND, SUBSCRIBE, + UNSUBSCRIBE, ACK, NACK, BEGIN, + COMMIT, ABORT, DISCONNECT, CONNECTED, + MESSAGE, RECEIPT, ERROR: + // valid command + default: + return nil, ErrInvalidCommand + } + + // read headers + for { + headerSlice, err := r.readLine() + if err != nil { + return nil, err + } + + if len(headerSlice) == 0 { + // empty line means end of headers + break + } + + index := bytes.IndexByte(headerSlice, colon) + if index <= 0 { + // colon is missing or header name is zero length + return nil, ErrInvalidFrameFormat + } + + name, err := unencodeValue(headerSlice[0:index]) + if err != nil { + return nil, err + } + value, err := unencodeValue(headerSlice[index+1:]) + if err != nil { + return nil, err + } + + //println(" ", name, ":", value) + + f.Header.Add(name, value) + } + + // get content length from the headers + if contentLength, ok, err := f.Header.ContentLength(); err != nil { + // happens if the content is malformed + return nil, err + } else if ok { + // content length specified in the header, so use that + f.Body = make([]byte, contentLength) + for bytesRead := 0; bytesRead < contentLength; { + n, err := r.reader.Read(f.Body[bytesRead:contentLength]) + if err != nil { + return nil, err + } + bytesRead += n + } + + // read the next byte and verify that it is a null byte + terminator, err := r.reader.ReadByte() + if err != nil { + return nil, err + } + if terminator != 0 { + return nil, ErrInvalidFrameFormat + } + } else { + f.Body, err = r.reader.ReadBytes(nullByte) + if err != nil { + return nil, err + } + // remove trailing null + f.Body = f.Body[0 : len(f.Body)-1] + } + + // pass back frame + return f, nil +} + +// read one line from input and strip off terminating LF or terminating CR-LF +func (r *Reader) readLine() (line []byte, err error) { + line, err = r.reader.ReadBytes(newline) + if err != nil { + return + } + + switch { + case bytes.HasSuffix(line, crlfSlice): + line = line[0 : len(line)-len(crlfSlice)] + case bytes.HasSuffix(line, newlineSlice): + line = line[0 : len(line)-len(newlineSlice)] + } + + return +} diff --git a/backend/services/stomp/frame/reader_test.go b/backend/services/stomp/frame/reader_test.go new file mode 100644 index 0000000..d3baabf --- /dev/null +++ b/backend/services/stomp/frame/reader_test.go @@ -0,0 +1,140 @@ +package frame + +import ( + "io" + "strings" + "testing/iotest" + + . "gopkg.in/check.v1" +) + +type ReaderSuite struct{} + +var _ = Suite(&ReaderSuite{}) + +func (s *ReaderSuite) TestConnect(c *C) { + reader := NewReader(strings.NewReader("CONNECT\nlogin:xxx\npasscode:yyy\n\n\x00")) + + frame, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(frame, NotNil) + c.Assert(len(frame.Body), Equals, 0) + + // ensure we are at the end of input + frame, err = reader.Read() + c.Assert(frame, IsNil) + c.Assert(err, Equals, io.EOF) +} + +func (s *ReaderSuite) TestMultipleReads(c *C) { + text := "SEND\ndestination:xxx\n\nPayload\x00\n" + + "SEND\ndestination:yyy\ncontent-length:12\n" + + "dodgy\\c\\n\\cheader:dodgy\\c\\n\\r\\nvalue\\ \\\n\n" + + "123456789AB\x00\x00" + + ioreaders := []io.Reader{ + strings.NewReader(text), + iotest.DataErrReader(strings.NewReader(text)), + iotest.HalfReader(strings.NewReader(text)), + iotest.OneByteReader(strings.NewReader(text)), + } + + for _, ioreader := range ioreaders { + // uncomment the following line to view the bytes being read + //ioreader = iotest.NewReadLogger("RX", ioreader) + reader := NewReader(ioreader) + frame, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(frame, NotNil) + c.Assert(frame.Command, Equals, "SEND") + c.Assert(frame.Header.Len(), Equals, 1) + v := frame.Header.Get("destination") + c.Assert(v, Equals, "xxx") + c.Assert(string(frame.Body), Equals, "Payload") + + // now read a heart-beat from the input + frame, err = reader.Read() + c.Assert(err, IsNil) + c.Assert(frame, IsNil) + + // this frame has content-length + frame, err = reader.Read() + c.Assert(err, IsNil) + c.Assert(frame, NotNil) + c.Assert(frame.Command, Equals, "SEND") + c.Assert(frame.Header.Len(), Equals, 3) + v = frame.Header.Get("destination") + c.Assert(v, Equals, "yyy") + n, ok, err := frame.Header.ContentLength() + c.Assert(n, Equals, 12) + c.Assert(ok, Equals, true) + c.Assert(err, IsNil) + k, v := frame.Header.GetAt(2) + c.Assert(k, Equals, "dodgy:\n:header") + c.Assert(v, Equals, "dodgy:\n\r\nvalue\\ \\") + c.Assert(string(frame.Body), Equals, "123456789AB\x00") + + // ensure we are at the end of input + frame, err = reader.Read() + c.Assert(frame, IsNil) + c.Assert(err, Equals, io.EOF) + } +} + +func (s *ReaderSuite) TestSendWithContentLength(c *C) { + reader := NewReader(strings.NewReader("SEND\ndestination:xxx\ncontent-length:5\n\n\x00\x01\x02\x03\x04\x00")) + + frame, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(frame, NotNil) + c.Assert(frame.Command, Equals, "SEND") + c.Assert(frame.Header.Len(), Equals, 2) + v := frame.Header.Get("destination") + c.Assert(v, Equals, "xxx") + c.Assert(frame.Body, DeepEquals, []byte{0x00, 0x01, 0x02, 0x03, 0x04}) + + // ensure we are at the end of input + frame, err = reader.Read() + c.Assert(frame, IsNil) + c.Assert(err, Equals, io.EOF) +} + +func (s *ReaderSuite) TestInvalidCommand(c *C) { + reader := NewReader(strings.NewReader("sEND\ndestination:xxx\ncontent-length:5\n\n\x00\x01\x02\x03\x04\x00")) + + frame, err := reader.Read() + c.Check(frame, IsNil) + c.Assert(err, NotNil) + c.Check(err.Error(), Equals, "invalid command") +} + +func (s *ReaderSuite) TestMissingNull(c *C) { + reader := NewReader(strings.NewReader("SEND\ndeestination:xxx\ncontent-length:5\n\n\x00\x01\x02\x03\x04\n")) + + f, err := reader.Read() + c.Check(f, IsNil) + c.Assert(err, NotNil) + c.Check(err.Error(), Equals, "invalid frame format") +} + +func (s *ReaderSuite) TestSubscribeWithoutId(c *C) { + c.Skip("TODO: implement validate") + + reader := NewReader(strings.NewReader("SUBSCRIBE\ndestination:xxx\nIId:7\n\n\x00")) + + frame, err := reader.Read() + c.Check(frame, IsNil) + c.Assert(err, NotNil) + c.Check(err.Error(), Equals, "missing header: id") +} + +func (s *ReaderSuite) TestUnsubscribeWithoutId(c *C) { + c.Skip("TODO: implement validate") + + reader := NewReader(strings.NewReader("UNSUBSCRIBE\nIId:7\n\n\x00")) + + frame, err := reader.Read() + c.Check(frame, IsNil) + c.Assert(err, NotNil) + c.Check(err.Error(), Equals, "missing header: id") +} diff --git a/backend/services/stomp/frame/writer.go b/backend/services/stomp/frame/writer.go new file mode 100644 index 0000000..7c6e83e --- /dev/null +++ b/backend/services/stomp/frame/writer.go @@ -0,0 +1,100 @@ +package frame + +import ( + "bufio" + "io" +) + +// slices used to write frames +var ( + colonSlice = []byte{58} // colon ':' + crlfSlice = []byte{13, 10} // CR-LF + newlineSlice = []byte{10} // newline (LF) + nullSlice = []byte{0} // null character +) + +// Writes STOMP frames to an underlying io.Writer. +type Writer struct { + writer *bufio.Writer +} + +// Creates a new Writer object, which writes to an underlying io.Writer. +func NewWriter(writer io.Writer) *Writer { + return NewWriterSize(writer, 4096) +} + +func NewWriterSize(writer io.Writer, bufferSize int) *Writer { + return &Writer{writer: bufio.NewWriterSize(writer, bufferSize)} +} + +// Write the contents of a frame to the underlying io.Writer. +func (w *Writer) Write(f *Frame) error { + var err error + + if f == nil { + // nil frame means send a heart-beat LF + _, err = w.writer.Write(newlineSlice) + if err != nil { + return err + } + } else { + _, err = w.writer.Write([]byte(f.Command)) + if err != nil { + return err + } + + _, err = w.writer.Write(newlineSlice) + if err != nil { + return err + } + + //println("TX:", f.Command) + if f.Header != nil { + for i := 0; i < f.Header.Len(); i++ { + key, value := f.Header.GetAt(i) + //println(" ", key, ":", value) + _, err = replacerForEncodeValue.WriteString(w.writer, key) + if err != nil { + return err + } + _, err = w.writer.Write(colonSlice) + if err != nil { + return err + } + _, err = replacerForEncodeValue.WriteString(w.writer, value) + if err != nil { + return err + } + _, err = w.writer.Write(newlineSlice) + if err != nil { + return err + } + } + } + + _, err = w.writer.Write(newlineSlice) + if err != nil { + return err + } + + if len(f.Body) > 0 { + _, err = w.writer.Write(f.Body) + if err != nil { + return err + } + } + + // write the final null (0) byte + _, err = w.writer.Write(nullSlice) + if err != nil { + return err + } + } + + err = w.writer.Flush() + if err != nil { + return err + } + + return nil +} diff --git a/backend/services/stomp/frame/writer_test.go b/backend/services/stomp/frame/writer_test.go new file mode 100644 index 0000000..ea5a1f5 --- /dev/null +++ b/backend/services/stomp/frame/writer_test.go @@ -0,0 +1,48 @@ +package frame + +import ( + "bytes" + "strings" + + . "gopkg.in/check.v1" +) + +type WriterSuite struct{} + +var _ = Suite(&WriterSuite{}) + +func (s *WriterSuite) TestWrites(c *C) { + var frameTexts = []string{ + "CONNECT\nlogin:xxx\npasscode:yyy\n\n\x00", + + "SEND\n" + + "destination:/queue/request\n" + + "tx:1\n" + + "content-length:5\n" + + "\n\x00\x01\x02\x03\x04\x00", + + "SEND\ndestination:x\n\nABCD\x00", + + "SEND\ndestination:x\ndodgy\\nheader\\c:abc\\n\\c\n\n123456\x00", + } + + for _, frameText := range frameTexts { + writeToBufferAndCheck(c, frameText) + } +} + +func writeToBufferAndCheck(c *C, frameText string) { + reader := NewReader(strings.NewReader(frameText)) + + frame, err := reader.Read() + c.Assert(err, IsNil) + c.Assert(frame, NotNil) + + var b bytes.Buffer + var writer = NewWriter(&b) + err = writer.Write(frame) + c.Assert(err, IsNil) + newFrameText := b.String() + c.Check(newFrameText, Equals, frameText) + c.Check(b.String(), Equals, frameText) +} diff --git a/backend/services/stomp/go.mod b/backend/services/stomp/go.mod index 6c5dc46..13788ca 100644 --- a/backend/services/stomp/go.mod +++ b/backend/services/stomp/go.mod @@ -1,8 +1,9 @@ -module github.com/leandrofars/stomp +module github.com/go-stomp/stomp/v3 -go 1.21.3 +go 1.15 require ( - github.com/go-stomp/stomp v2.1.4+incompatible // indirect + github.com/golang/mock v1.6.0 github.com/joho/godotenv v1.5.1 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c ) diff --git a/backend/services/stomp/go.sum b/backend/services/stomp/go.sum index 0df3975..5d3b5df 100644 --- a/backend/services/stomp/go.sum +++ b/backend/services/stomp/go.sum @@ -1,4 +1,34 @@ -github.com/go-stomp/stomp v2.1.4+incompatible h1:D3SheUVDOz9RsjVWkoh/1iCOwD0qWjyeTZMUZ0EXg2Y= -github.com/go-stomp/stomp v2.1.4+incompatible/go.mod h1:VqCtqNZv1226A1/79yh+rMiFUcfY3R109np+7ke4n0c= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/backend/services/stomp/id.go b/backend/services/stomp/id.go new file mode 100644 index 0000000..cd84748 --- /dev/null +++ b/backend/services/stomp/id.go @@ -0,0 +1,17 @@ +package stomp + +import ( + "strconv" + "sync/atomic" +) + +var _lastId uint64 + +// allocateId returns a unique number for the current +// process. Starts at one and increases. Used for +// allocating subscription ids, receipt ids, +// transaction ids, etc. +func allocateId() string { + id := atomic.AddUint64(&_lastId, 1) + return strconv.FormatUint(id, 10) +} diff --git a/backend/services/stomp/id_test.go b/backend/services/stomp/id_test.go new file mode 100644 index 0000000..074ce6b --- /dev/null +++ b/backend/services/stomp/id_test.go @@ -0,0 +1,43 @@ +package stomp + +import ( + . "gopkg.in/check.v1" + "runtime" +) + +// only used during testing, does not need to be thread-safe +func resetId() { + _lastId = 0 +} + +func (s *StompSuite) SetUpSuite(c *C) { + resetId() + runtime.GOMAXPROCS(runtime.NumCPU()) +} + +func (s *StompSuite) TearDownSuite(c *C) { + runtime.GOMAXPROCS(1) +} + +func (s *StompSuite) TestAllocateId(c *C) { + c.Assert(allocateId(), Equals, "1") + c.Assert(allocateId(), Equals, "2") + + ch := make(chan bool, 50) + for i := 0; i < 50; i++ { + go doAllocate(100, ch) + } + + for i := 0; i < 50; i++ { + <-ch + } + + c.Assert(allocateId(), Equals, "5003") +} + +func doAllocate(count int, ch chan bool) { + for i := 0; i < count; i++ { + _ = allocateId() + } + ch <- true +} diff --git a/backend/services/stomp/internal/log/stdlogger.go b/backend/services/stomp/internal/log/stdlogger.go new file mode 100644 index 0000000..784c6f0 --- /dev/null +++ b/backend/services/stomp/internal/log/stdlogger.go @@ -0,0 +1,51 @@ +package log + +import ( + "fmt" + stdlog "log" +) + +var ( + debugPrefix = "DEBUG: " + infoPrefix = "INFO: " + warnPrefix = "WARN: " + errorPrefix = "ERROR: " +) + +func logf(prefix string, format string, value ...interface{}) { + _ = stdlog.Output(3, fmt.Sprintf(prefix+format+"\n", value...)) +} + +type StdLogger struct{} + +func (s StdLogger) Debugf(format string, value ...interface{}) { + logf(debugPrefix, format, value...) +} + +func (s StdLogger) Debug(message string) { + logf(debugPrefix, "%s", message) +} + +func (s StdLogger) Infof(format string, value ...interface{}) { + logf(infoPrefix, format, value...) +} + +func (s StdLogger) Info(message string) { + logf(infoPrefix, "%s", message) +} + +func (s StdLogger) Warningf(format string, value ...interface{}) { + logf(warnPrefix, format, value...) +} + +func (s StdLogger) Warning(message string) { + logf(warnPrefix, "%s", message) +} + +func (s StdLogger) Errorf(format string, value ...interface{}) { + logf(errorPrefix, format, value...) +} + +func (s StdLogger) Error(message string) { + logf(errorPrefix, "%s", message) +} diff --git a/backend/services/stomp/logger.go b/backend/services/stomp/logger.go new file mode 100644 index 0000000..4651d46 --- /dev/null +++ b/backend/services/stomp/logger.go @@ -0,0 +1,13 @@ +package stomp + +type Logger interface { + Debugf(format string, value ...interface{}) + Infof(format string, value ...interface{}) + Warningf(format string, value ...interface{}) + Errorf(format string, value ...interface{}) + + Debug(message string) + Info(message string) + Warning(message string) + Error(message string) +} diff --git a/backend/services/stomp/message.go b/backend/services/stomp/message.go new file mode 100644 index 0000000..e53f042 --- /dev/null +++ b/backend/services/stomp/message.go @@ -0,0 +1,68 @@ +package stomp + +import ( + "io" + "github.com/go-stomp/stomp/v3/frame" +) + +// A Message represents a message received from the STOMP server. +// In most cases a message corresponds to a single STOMP MESSAGE frame +// received from the STOMP server. If, however, the Err field is non-nil, +// then the message corresponds to a STOMP ERROR frame, or a connection +// error between the client and the server. +type Message struct { + // Indicates whether an error was received on the subscription. + // The error will contain details of the error. If the server + // sent an ERROR frame, then the Body, ContentType and Header fields + // will be populated according to the contents of the ERROR frame. + Err error + + // Destination the message has been sent to. + Destination string + + // MIME content type. + ContentType string // MIME content + + // Connection that the message was received on. + Conn *Conn + + // Subscription associated with the message. + Subscription *Subscription + + // Optional header entries. When received from the server, + // these are the header entries received with the message. + Header *frame.Header + + // The message body, which is an arbitrary sequence of bytes. + // The ContentType indicates the format of this body. + Body []byte // Content of message +} + +// ShouldAck returns true if this message should be acknowledged to +// the STOMP server that sent it. +func (msg *Message) ShouldAck() bool { + if msg.Subscription == nil { + // not received from the server, so no acknowledgement required + return false + } + + return msg.Subscription.AckMode() != AckAuto +} + +func (msg *Message) Read(p []byte) (int, error) { + if len(msg.Body) == 0 { + return 0, io.EOF + } + n := copy(p, msg.Body) + msg.Body = msg.Body[n:] + return n, nil +} + +func (msg *Message) ReadByte() (byte, error) { + if len(msg.Body) == 0 { + return 0, io.EOF + } + n := msg.Body[0] + msg.Body = msg.Body[1:] + return n, nil +} diff --git a/backend/services/stomp/send_options.go b/backend/services/stomp/send_options.go new file mode 100644 index 0000000..bd81b00 --- /dev/null +++ b/backend/services/stomp/send_options.go @@ -0,0 +1,55 @@ +package stomp + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// SendOpt contains options for for the Conn.Send and Transaction.Send functions. +var SendOpt struct { + // Receipt specifies that the client should request acknowledgement + // from the server before the send operation successfully completes. + Receipt func(*frame.Frame) error + + // NoContentLength specifies that the SEND frame should not include + // a content-length header entry. By default the content-length header + // entry is always included, but some message brokers assign special + // meaning to STOMP frames that do not contain a content-length + // header entry. (In particular ActiveMQ interprets STOMP frames + // with no content-length as being a text message) + NoContentLength func(*frame.Frame) error + + // Header provides the opportunity to include custom header entries + // in the SEND frame that the client sends to the server. This option + // can be specified multiple times if multiple custom header entries + // are required. + Header func(key, value string) func(*frame.Frame) error +} + +func init() { + SendOpt.Receipt = func(f *frame.Frame) error { + if f.Command != frame.SEND { + return ErrInvalidCommand + } + id := allocateId() + f.Header.Set(frame.Receipt, id) + return nil + } + + SendOpt.NoContentLength = func(f *frame.Frame) error { + if f.Command != frame.SEND { + return ErrInvalidCommand + } + f.Header.Del(frame.ContentLength) + return nil + } + + SendOpt.Header = func(key, value string) func(*frame.Frame) error { + return func(f *frame.Frame) error { + if f.Command != frame.SEND { + return ErrInvalidCommand + } + f.Header.Add(key, value) + return nil + } + } +} diff --git a/backend/services/stomp/server/client/channel_test.go b/backend/services/stomp/server/client/channel_test.go new file mode 100644 index 0000000..083a600 --- /dev/null +++ b/backend/services/stomp/server/client/channel_test.go @@ -0,0 +1,88 @@ +package client + +import ( + . "gopkg.in/check.v1" +) + +// Test suite for testing that channels work the way I expect. +type ChannelSuite struct{} + +var _ = Suite(&ChannelSuite{}) + +func (s *ChannelSuite) TestChannelWhenClosed(c *C) { + + ch := make(chan int, 10) + + ch <- 1 + ch <- 2 + + select { + case i, ok := <-ch: + c.Assert(i, Equals, 1) + c.Assert(ok, Equals, true) + default: + c.Error("expected value on channel") + } + + select { + case i := <-ch: + c.Assert(i, Equals, 2) + default: + c.Error("expected value on channel") + } + + select { + case _ = <-ch: + c.Error("not expecting anything on the channel") + default: + } + + ch <- 3 + close(ch) + + select { + case i := <-ch: + c.Assert(i, Equals, 3) + default: + c.Error("expected value on channel") + } + + select { + case _, ok := <-ch: + c.Assert(ok, Equals, false) + default: + c.Error("expected value on channel") + } + + select { + case _, ok := <-ch: + c.Assert(ok, Equals, false) + default: + c.Error("expected value on channel") + } +} + +func (s *ChannelSuite) TestMultipleChannels(c *C) { + + ch1 := make(chan int, 10) + ch2 := make(chan string, 10) + + ch1 <- 1 + + select { + case i, ok := <-ch1: + c.Assert(i, Equals, 1) + c.Assert(ok, Equals, true) + case _ = <-ch2: + default: + c.Error("expected value on channel") + } + + select { + case _ = <-ch1: + c.Error("not expected") + case _ = <-ch2: + c.Error("not expected") + default: + } +} diff --git a/backend/services/stomp/server/client/client.go b/backend/services/stomp/server/client/client.go new file mode 100644 index 0000000..33cf590 --- /dev/null +++ b/backend/services/stomp/server/client/client.go @@ -0,0 +1,7 @@ +/* +Package client implements client connectivity in the STOMP server. + +The key abstractions include a connection, a subscription and +a client request. +*/ +package client diff --git a/backend/services/stomp/server/client/client_test.go b/backend/services/stomp/server/client/client_test.go new file mode 100644 index 0000000..034e86d --- /dev/null +++ b/backend/services/stomp/server/client/client_test.go @@ -0,0 +1,12 @@ +package client + +import ( + "gopkg.in/check.v1" + "testing" +) + +// Runs all gocheck tests in this package. +// See other *_test.go files for gocheck tests. +func TestClient(t *testing.T) { + check.TestingT(t) +} diff --git a/backend/services/stomp/server/client/config.go b/backend/services/stomp/server/client/config.go new file mode 100644 index 0000000..1050090 --- /dev/null +++ b/backend/services/stomp/server/client/config.go @@ -0,0 +1,25 @@ +package client + +import ( + "time" + + "github.com/go-stomp/stomp/v3" +) + +// Contains information the client package needs from the +// rest of the STOMP server code. +type Config interface { + // Method to authenticate a login and associated passcode. + // Returns true if login/passcode is valid, false otherwise. + Authenticate(login, passcode string) bool + + // Default duration for read/write heart-beat values. If this + // returns zero, no heart-beat will take place. If this value is + // larger than the maximu permitted value (which is more than + // 11 days, but less than 12 days), then it is truncated to the + // maximum permitted values. + HeartBeat() time.Duration + + // Logger provides the logger for a client + Logger() stomp.Logger +} diff --git a/backend/services/stomp/server/client/conn.go b/backend/services/stomp/server/client/conn.go new file mode 100644 index 0000000..9fb7e45 --- /dev/null +++ b/backend/services/stomp/server/client/conn.go @@ -0,0 +1,781 @@ +package client + +import ( + "fmt" + "io" + "net" + "strconv" + "time" + + "github.com/go-stomp/stomp/v3" + "github.com/go-stomp/stomp/v3/frame" +) + +// Maximum number of pending frames allowed to a client. +// before a disconnect occurs. If the client cannot keep +// up with the server, we do not want the server to backlog +// pending frames indefinitely. +const maxPendingWrites = 16 + +// Maximum number of pending frames allowed before the read +// go routine starts blocking. +const maxPendingReads = 16 + +// Represents a connection with the STOMP client. +type Conn struct { + config Config + rw net.Conn // Network connection to client + writer *frame.Writer // Writes STOMP frames directly to the network connection + requestChannel chan Request // For sending requests to upper layer + subChannel chan *Subscription // Receives subscription messages for client + writeChannel chan *frame.Frame // Receives unacknowledged (topic) messages for client + readChannel chan *frame.Frame // Receives frames from the client + stateFunc func(c *Conn, f *frame.Frame) error // State processing function + writeTimeout time.Duration // Heart beat write timeout + version stomp.Version // Negotiated STOMP protocol version + closed bool // Is the connection closed + txStore *txStore // Stores transactions in progress + lastMsgId uint64 // last message-id value + subList *SubscriptionList // List of subscriptions requiring acknowledgement + subs map[string]*Subscription // All subscriptions, keyed by id + validator stomp.Validator // For validating STOMP frames + log stomp.Logger +} + +// Creates a new client connection. The config parameter contains +// process-wide configuration parameters relevant to a client connection. +// The rw parameter is a network connection object for communicating with +// the client. All client requests are sent via the ch channel to the +// upper layer. +func NewConn(config Config, rw net.Conn, ch chan Request) *Conn { + c := &Conn{ + config: config, + rw: rw, + requestChannel: ch, + subChannel: make(chan *Subscription, maxPendingWrites), + writeChannel: make(chan *frame.Frame, maxPendingWrites), + readChannel: make(chan *frame.Frame, maxPendingReads), + txStore: &txStore{}, + subList: NewSubscriptionList(), + subs: make(map[string]*Subscription), + log: config.Logger(), + } + go c.readLoop() + go c.processLoop() + return c +} + +// Write a frame to the connection without requiring +// any acknowledgement. +func (c *Conn) Send(f *frame.Frame) { + // Place the frame on the write channel. If the + // write channel is full, the caller will block. + c.writeChannel <- f +} + +// Send and ERROR message to the client. The client +// connection will disconnect as soon as the ERROR +// message has been transmitted. The message header +// will be based on the contents of the err parameter. +func (c *Conn) SendError(err error) { + f := frame.New(frame.ERROR, frame.Message, err.Error()) + c.Send(f) // will close after successful send +} + +// Send an ERROR frame to the client and immediately. The error +// message is derived from err. If f is non-nil, it is the frame +// whose contents have caused the error. Include the receipt-id +// header if the frame contains a receipt header. +func (c *Conn) sendErrorImmediately(err error, f *frame.Frame) { + errorFrame := frame.New(frame.ERROR, + frame.Message, err.Error()) + + // Include a receipt-id header if the frame that prompted the error had + // a receipt header (as suggested by the STOMP protocol spec). + if f != nil { + if receipt, ok := f.Header.Contains(frame.Receipt); ok { + errorFrame.Header.Add(frame.ReceiptId, receipt) + } + } + + // send the frame to the client, ignore any error condition + // because we are about to close the connection anyway + _ = c.sendImmediately(errorFrame) +} + +// Sends a STOMP frame to the client immediately, does not push onto the +// write channel to be processed in turn. +func (c *Conn) sendImmediately(f *frame.Frame) error { + return c.writer.Write(f) +} + +// Go routine for reading bytes from a client and assembling into +// STOMP frames. Also handles heart-beat read timeout. All read +// frames are pushed onto the read channel to be processed by the +// processLoop go-routine. This keeps all processing of frames for +// this connection on the one go-routine and avoids race conditions. +func (c *Conn) readLoop() { + reader := frame.NewReader(c.rw) + expectingConnect := true + readTimeout := time.Duration(0) + for { + if readTimeout == time.Duration(0) { + // infinite timeout + c.rw.SetReadDeadline(time.Time{}) + } else { + c.rw.SetReadDeadline(time.Now().Add(readTimeout * 2)) + } + f, err := reader.Read() + if err != nil { + if err == io.EOF { + c.log.Errorf("connection closed: %s", c.rw.RemoteAddr()) + } else { + c.log.Errorf("read failed: %v : %s", err, c.rw.RemoteAddr()) + } + + // Close the read channel so that the processing loop will + // know to terminate, if it has not already done so. This is + // the only channel that we close, because it is the only one + // we know who is writing to. + close(c.readChannel) + return + } + + if f == nil { + // if the frame is nil, then it is a heartbeat + continue + } + + // If we are expecting a CONNECT or STOMP command, extract + // the heart-beat header and work out the read timeout. + // Note that the processing loop will duplicate this to + // some extent, but letting this go-routine work out its own + // read timeout means no synchronization is necessary. + if expectingConnect { + // Expecting a CONNECT or STOMP command, get the heart-beat + cx, _, err := getHeartBeat(f) + + // Ignore the error condition and treat as no read timeout. + // The processing loop will handle the error again and + // process correctly. + if err == nil { + // Minimum value as per server config. If the client + // has requested shorter periods than this value, the + // server will insist on the longer time period. + min := asMilliseconds(c.config.HeartBeat(), maxHeartBeat) + + // apply a minimum heartbeat + if cx > 0 && cx < min { + cx = min + } + + readTimeout = time.Duration(cx) * time.Millisecond + + expectingConnect = false + } + } + + // Add the frame to the read channel. Note that this will block + // if we are reading from the client quicker than the server + // can process frames. + c.readChannel <- f + } +} + +// Go routine that processes all read frames and all write frames. +// Having all processing in one go routine helps eliminate any race conditions. +func (c *Conn) processLoop() { + defer c.cleanupConn() + + c.writer = frame.NewWriter(c.rw) + c.stateFunc = connecting + + var timerChannel <-chan time.Time + var timer *time.Timer + for { + if c.writeTimeout > 0 && timer == nil { + timer = time.NewTimer(c.writeTimeout) + timerChannel = timer.C + } + + select { + case f, ok := <-c.writeChannel: + if !ok { + // write channel has been closed, so + // exit go-routine (after cleaning up) + return + } + + // have a frame to the client with + // no acknowledgement required (topic) + + // stop the heart-beat timer + if timer != nil { + timer.Stop() + timer = nil + } + + c.allocateMessageId(f, nil) + + // write the frame to the client + err := c.writer.Write(f) + if err != nil { + // if there is an error writing to + // the client, there is not much + // point trying to send an ERROR frame, + // so just exit go-routine (after cleaning up) + return + } + + // if the frame just sent to the client is an error + // frame, we disconnect + if f.Command == frame.ERROR { + // sent an ERROR frame, so disconnect + return + } + + case f, ok := <-c.readChannel: + if !ok { + // read channel has been closed, so + // exit go-routine (after cleaning up) + return + } + + // Just received a frame from the client. + // Validate the frame, checking for mandatory + // headers and prohibited headers. + if c.validator != nil { + err := c.validator.Validate(f) + if err != nil { + c.log.Warningf("validation failed for %s frame: %v", f.Command, err) + c.sendErrorImmediately(err, f) + return + } + } + + // Pass to the appropriate function for handling + // according to the current state of the connection. + err := c.stateFunc(c, f) + if err != nil { + c.sendErrorImmediately(err, f) + return + } + + case sub, ok := <-c.subChannel: + if !ok { + // subscription channel has been closed, + // so exit go-routine (after cleaning up) + return + } + + // have a frame to the client which requires + // acknowledgement to the upper layer + + // stop the heart-beat timer + if timer != nil { + timer.Stop() + timer = nil + } + + // there is the possibility that the subscription + // has been unsubscribed just prior to receiving + // this, so we check + if _, ok = c.subs[sub.id]; ok { + // allocate a message-id, note that the + // subscription id has already been set + c.allocateMessageId(sub.frame, sub) + + // write the frame to the client + err := c.writer.Write(sub.frame) + if err != nil { + // if there is an error writing to + // the client, there is not much + // point trying to send an ERROR frame, + // so just exit go-routine (after cleaning up) + return + } + + if sub.ack == frame.AckAuto { + // subscription does not require acknowledgement, + // so send the subscription back the upper layer + // straight away + sub.frame = nil + c.requestChannel <- Request{Op: SubscribeOp, Sub: sub} + } else { + // subscription requires acknowledgement + c.subList.Add(sub) + } + } else { + // Subscription no longer exists, requeue + c.requestChannel <- Request{Op: RequeueOp, Frame: sub.frame} + } + + case _ = <-timerChannel: + // stop the heart-beat timer + if timer != nil { + timer.Stop() + timer = nil + } + // write a heart-beat + err := c.writer.Write(nil) + if err != nil { + return + } + } + } +} + +// Called when the connection is closing, and takes care of +// unsubscribing all subscriptions with the upper layer, and +// re-queueing all unacknowledged messages to the upper layer. +func (c *Conn) cleanupConn() { + // clean up any pending transactions + c.txStore.Init() + + c.discardWriteChannelFrames() + + // Unsubscribe every subscription known to the upper layer. + // This should be done before cleaning up the subscription + // channel. If we requeued messages before doing this, + // we might end up getting them back again. + for _, sub := range c.subs { + // Note that we only really need to send a request if the + // subscription does not have a frame, but for simplicity + // all subscriptions are unsubscribed from the upper layer. + c.requestChannel <- Request{Op: UnsubscribeOp, Sub: sub} + } + + // Clear out the map of subscriptions + c.subs = nil + + // Every subscription requiring acknowledgement has a frame + // that needs to be requeued in the upper layer + for sub := c.subList.Get(); sub != nil; sub = c.subList.Get() { + c.requestChannel <- Request{Op: RequeueOp, Frame: sub.frame} + } + + // empty the subscription and write queue + c.discardWriteChannelFrames() + c.cleanupSubChannel() + + // Tell the upper layer we are now disconnected + c.requestChannel <- Request{Op: DisconnectedOp, Conn: c} + + // empty the subscription and write queue one more time + c.discardWriteChannelFrames() + c.cleanupSubChannel() + + // Should not hurt to call this if it is already closed? + c.rw.Close() +} + +// Discard anything on the write channel. These frames +// do not get acknowledged, and are either topic MESSAGE +// frames or ERROR frames. +func (c *Conn) discardWriteChannelFrames() { + for finished := false; !finished; { + select { + case _, ok := <-c.writeChannel: + if !ok { + finished = true + } + + default: + finished = true + } + } +} + +func (c *Conn) cleanupSubChannel() { + // Read the subscription channel until it is empty. + // Each frame should be requeued to the upper layer. + for finished := false; !finished; { + select { + case sub, ok := <-c.subChannel: + if !ok { + finished = true + } else { + c.requestChannel <- Request{Op: RequeueOp, Frame: sub.frame} + } + + default: + finished = true + } + } +} + +// Send a frame to the client, allocating necessary headers prior. +func (c *Conn) allocateMessageId(f *frame.Frame, sub *Subscription) { + if f.Command == frame.MESSAGE || f.Command == frame.ACK { + // allocate the value of message-id for this frame + c.lastMsgId++ + messageId := strconv.FormatUint(c.lastMsgId, 10) + f.Header.Set(frame.MessageId, messageId) + f.Header.Set(frame.Id, messageId) + + // if there is any requirement by the client to acknowledge, set + // the ack header as per STOMP 1.2 + if sub == nil || sub.ack == frame.AckAuto { + f.Header.Del(frame.Ack) + } else { + f.Header.Set(frame.Ack, messageId) + } + } +} + +// State function for expecting connect frame. +func connecting(c *Conn, f *frame.Frame) error { + switch f.Command { + case frame.CONNECT, frame.STOMP: + return c.handleConnect(f) + } + return notConnected +} + +// State function for after connect frame received. +func connected(c *Conn, f *frame.Frame) error { + switch f.Command { + case frame.CONNECT, frame.STOMP: + return unexpectedCommand + case frame.DISCONNECT: + return c.handleDisconnect(f) + case frame.BEGIN: + return c.handleBegin(f) + case frame.ABORT: + return c.handleAbort(f) + case frame.COMMIT: + return c.handleCommit(f) + case frame.SEND: + return c.handleSend(f) + case frame.SUBSCRIBE: + return c.handleSubscribe(f) + case frame.UNSUBSCRIBE: + return c.handleUnsubscribe(f) + case frame.ACK: + return c.handleAck(f) + case frame.NACK: + return c.handleNack(f) + case frame.MESSAGE, frame.RECEIPT, frame.ERROR: + // should only be sent by the server, should not come from the client + return unexpectedCommand + } + return unknownCommand +} + +func (c *Conn) handleConnect(f *frame.Frame) error { + var err error + + if _, ok := f.Header.Contains(frame.Receipt); ok { + // CONNNECT and STOMP frames are not allowed to have + // a receipt header. + return receiptInConnect + } + + // if either of these fields are absent, pass nil to the + // authenticator function. + login, _ := f.Header.Contains(frame.Login) + passcode, _ := f.Header.Contains(frame.Passcode) + if !c.config.Authenticate(login, passcode) { + // sleep to slow down a rogue client a little bit + c.log.Error("authentication failed") + time.Sleep(time.Second) + return authenticationFailed + } + + c.version, err = determineVersion(f) + if err != nil { + c.log.Error("protocol version negotiation failed") + return err + } + c.validator = stomp.NewValidator(c.version) + + if c.version == stomp.V10 { + // don't want to handle V1.0 at the moment + // TODO: get working for V1.0 + c.log.Errorf("unsupported version %s", c.version) + return unsupportedVersion + } + + cx, cy, err := getHeartBeat(f) + if err != nil { + c.log.Error("invalid heart-beat") + return err + } + + // Minimum value as per server config. If the client + // has requested shorter periods than this value, the + // server will insist on the longer time period. + min := asMilliseconds(c.config.HeartBeat(), maxHeartBeat) + + // apply a minimum heartbeat + if cx > 0 && cx < min { + cx = min + } + if cy > 0 && cy < min { + cy = min + } + + // the read timeout has already been processed in the readLoop + // go-routine + c.writeTimeout = time.Duration(cy) * time.Millisecond + + /* TR-369 section 4.4.1.1 [Connecting a USP Endpoint to the STOMP Server] */ + /* + R-STOMP.4: USP Endpoints sending a STOMP frame MUST include (in addition to other + mandatory STOMP headers) an endpoint-id STOMP header containing the + Endpoint ID of the USP Endpoint sending the frame. + */ + endpointId := f.Header.Get("endpoint-id") + + response := frame.New(frame.CONNECTED, + frame.Version, string(c.version), + frame.Server, "stompd/x.y.z", // TODO: get version + frame.HeartBeat, fmt.Sprintf("%d,%d", cy, cx), + frame.SubscribeDest, "oktopus/v1/agent/"+endpointId, + ) + + c.sendImmediately(response) + c.stateFunc = connected + + // tell the upper layer we are connected + c.requestChannel <- Request{Op: ConnectedOp, Conn: c} + + return nil +} + +// Sends a RECEIPT frame to the client if the frame f contains +// a receipt header. If the frame does contain a receipt header, +// it will be removed from the frame. +func (c *Conn) sendReceiptImmediately(f *frame.Frame) error { + if receipt, ok := f.Header.Contains(frame.Receipt); ok { + // Remove the receipt header from the frame. This is handy + // for transactions, because the frame has its receipt + // header removed prior to entering the transaction store. + // When the frame is processed upon transaction commit, it + // will not have a receipt header anymore. + f.Header.Del(frame.Receipt) + return c.sendImmediately(frame.New(frame.RECEIPT, + frame.ReceiptId, receipt)) + } + return nil +} + +func (c *Conn) handleDisconnect(f *frame.Frame) error { + // As soon as we receive a DISCONNECT frame from a client, we do + // not want to send any more frames to that client, with the exception + // of a RECEIPT frame if the client has requested one. + // Ignore the error condition if we cannot send a RECEIPT frame, + // as the connection is about to close anyway. + _ = c.sendReceiptImmediately(f) + return nil +} + +func (c *Conn) handleBegin(f *frame.Frame) error { + // the frame should already have been validated for the + // transaction header, but we check again here. + if transaction, ok := f.Header.Contains(frame.Transaction); ok { + // Send a receipt and remove the header + err := c.sendReceiptImmediately(f) + if err != nil { + return err + } + + return c.txStore.Begin(transaction) + } + return missingHeader(frame.Transaction) +} + +func (c *Conn) handleCommit(f *frame.Frame) error { + // the frame should already have been validated for the + // transaction header, but we check again here. + if transaction, ok := f.Header.Contains(frame.Transaction); ok { + // Send a receipt and remove the header + err := c.sendReceiptImmediately(f) + if err != nil { + return err + } + return c.txStore.Commit(transaction, func(f *frame.Frame) error { + // Call the state function (again) for each frame in the + // transaction. This time each frame is stripped of its transaction + // header (and its receipt header as well, if it had one). + return c.stateFunc(c, f) + }) + } + return missingHeader(frame.Transaction) +} + +func (c *Conn) handleAbort(f *frame.Frame) error { + // the frame should already have been validated for the + // transaction header, but we check again here. + if transaction, ok := f.Header.Contains(frame.Transaction); ok { + // Send a receipt and remove the header + err := c.sendReceiptImmediately(f) + if err != nil { + return err + } + return c.txStore.Abort(transaction) + } + return missingHeader(frame.Transaction) +} + +func (c *Conn) handleSubscribe(f *frame.Frame) error { + id, ok := f.Header.Contains(frame.Id) + if !ok { + return missingHeader(frame.Id) + } + + dest, ok := f.Header.Contains(frame.Destination) + if !ok { + return missingHeader(frame.Destination) + } + + ack, ok := f.Header.Contains(frame.Ack) + if !ok { + ack = frame.AckAuto + } + + sub, ok := c.subs[id] + if ok { + return subscriptionExists + } + + sub = newSubscription(c, dest, id, ack) + c.subs[id] = sub + + // send information about new subscription to upper layer + c.requestChannel <- Request{Op: SubscribeOp, Sub: sub} + return nil +} + +func (c *Conn) handleUnsubscribe(f *frame.Frame) error { + id, ok := f.Header.Contains(frame.Id) + if !ok { + return missingHeader(frame.Id) + } + + sub, ok := c.subs[id] + if !ok { + return subscriptionNotFound + } + + // remove the subscription + delete(c.subs, id) + + // tell the upper layer of the unsubscribe + c.requestChannel <- Request{Op: UnsubscribeOp, Sub: sub} + return nil +} + +func (c *Conn) handleAck(f *frame.Frame) error { + var err error + var msgId string + + if ack, ok := f.Header.Contains(frame.Ack); ok { + msgId = ack + } else if msgId, ok = f.Header.Contains(frame.MessageId); !ok { + return missingHeader(frame.MessageId) + } + + // expecting message id to be a uint64 + msgId64, err := strconv.ParseUint(msgId, 10, 64) + if err != nil { + return err + } + + // Send a receipt and remove the header + err = c.sendReceiptImmediately(f) + if err != nil { + return err + } + + if tx, ok := f.Header.Contains(frame.Transaction); ok { + // the transaction header is removed from the frame + err = c.txStore.Add(tx, f) + if err != nil { + return err + } + } else { + // handle any subscriptions that are acknowledged by this msg + c.subList.Ack(msgId64, func(s *Subscription) { + // remove frame from the subscription, it has been delivered + s.frame = nil + + // let the upper layer know that this subscription + // is ready for another frame + c.requestChannel <- Request{Op: SubscribeOp, Sub: s} + }) + } + + return nil +} + +func (c *Conn) handleNack(f *frame.Frame) error { + var err error + var msgId string + + if ack, ok := f.Header.Contains(frame.Ack); ok { + msgId = ack + } else if msgId, ok = f.Header.Contains(frame.MessageId); !ok { + return missingHeader(frame.MessageId) + } + + // expecting message id to be a uint64 + msgId64, err := strconv.ParseUint(msgId, 10, 64) + if err != nil { + return err + } + + // Send a receipt and remove the header + err = c.sendReceiptImmediately(f) + if err != nil { + return err + } + + if tx, ok := f.Header.Contains(frame.Transaction); ok { + // the transaction header is removed from the frame + err = c.txStore.Add(tx, f) + if err != nil { + return err + } + } else { + // handle any subscriptions that are acknowledged by this msg + c.subList.Nack(msgId64, func(s *Subscription) { + // send frame back to upper layer for requeue + c.requestChannel <- Request{Op: RequeueOp, Frame: s.frame} + + // remove frame from the subscription, it has been requeued + s.frame = nil + + // let the upper layer know that this subscription + // is ready for another frame + c.requestChannel <- Request{Op: SubscribeOp, Sub: s} + }) + } + return nil +} + +// Handle a SEND frame received from the client. Note that +// this method is called after a SEND message is received, +// but also after a transaction commit. +func (c *Conn) handleSend(f *frame.Frame) error { + // Send a receipt and remove the header + err := c.sendReceiptImmediately(f) + if err != nil { + return err + } + + if tx, ok := f.Header.Contains(frame.Transaction); ok { + // the transaction header is removed from the frame + err = c.txStore.Add(tx, f) + if err != nil { + return err + } + } else { + // not in a transaction + // change from SEND to MESSAGE + f.Command = frame.MESSAGE + c.requestChannel <- Request{Op: EnqueueOp, Frame: f} + } + + return nil +} diff --git a/backend/services/stomp/server/client/errors.go b/backend/services/stomp/server/client/errors.go new file mode 100644 index 0000000..0488c37 --- /dev/null +++ b/backend/services/stomp/server/client/errors.go @@ -0,0 +1,36 @@ +package client + +const ( + notConnected = errorMessage("expected CONNECT or STOMP frame") + unexpectedCommand = errorMessage("unexpected frame command") + unknownCommand = errorMessage("unknown command") + receiptInConnect = errorMessage("receipt header prohibited in CONNECT or STOMP frame") + authenticationFailed = errorMessage("authentication failed") + txAlreadyInProgress = errorMessage("transaction already in progress") + txUnknown = errorMessage("unknown transaction") + unsupportedVersion = errorMessage("unsupported version") + subscriptionExists = errorMessage("subscription already exists") + subscriptionNotFound = errorMessage("subscription not found") + invalidFrameFormat = errorMessage("invalid frame format") + invalidCommand = errorMessage("invalid command") + unknownVersion = errorMessage("incompatible version") + notConnectFrame = errorMessage("operation valid for STOMP and CONNECT frames only") + invalidHeartBeat = errorMessage("invalid format for heart-beat") + invalidOperationForFrame = errorMessage("invalid operation for frame") + exceededMaxFrameSize = errorMessage("exceeded max frame size") + invalidHeaderValue = errorMessage("invalid header value") +) + +type errorMessage string + +func (e errorMessage) Error() string { + return string(e) +} + +func missingHeader(name string) errorMessage { + return errorMessage("missing header: " + name) +} + +func prohibitedHeader(name string) errorMessage { + return errorMessage("prohibited header: " + name) +} diff --git a/backend/services/stomp/server/client/frame.go b/backend/services/stomp/server/client/frame.go new file mode 100644 index 0000000..ce967b6 --- /dev/null +++ b/backend/services/stomp/server/client/frame.go @@ -0,0 +1,119 @@ +package client + +import ( + "regexp" + "sort" + "strconv" + "strings" + + "github.com/go-stomp/stomp/v3" + "github.com/go-stomp/stomp/v3/frame" +) + +const ( + // Maximum permitted heart-beat timeout, about 11.5 days. + // Any client CONNECT frame with a larger value than this + // will be rejected. + maxHeartBeat = 999999999 +) + +var ( + // Regexp for heart-beat header value + heartBeatRegexp = regexp.MustCompile("^[0-9]{1,9},[0-9]{1,9}$") +) + +// Determine the most acceptable version based on the accept-version +// header of a CONNECT or STOMP frame. +// +// Returns stomp.V10 if a CONNECT frame and the accept-version header is missing. +// +// Returns an error if the frame is not a CONNECT or STOMP frame, or +// if the accept-header is malformed or does not contain any compatible +// version numbers. Also returns an error if the accept-header is missing +// for a STOMP frame. +// +// Otherwise, returns the highest compatible version specified in the +// accept-version header. Compatible versions are V1_0, V1_1 and V1_2. +func determineVersion(f *frame.Frame) (version stomp.Version, err error) { + // frame can be CONNECT or STOMP with slightly different + // handling of accept-verion for each + isConnect := f.Command == frame.CONNECT + + if !isConnect && f.Command != frame.STOMP { + err = notConnectFrame + return + } + + // start with an error, and remove if successful + err = unknownVersion + + if acceptVersion, ok := f.Header.Contains(frame.AcceptVersion); ok { + // sort the versions so that the latest version comes last + versions := strings.Split(acceptVersion, ",") + sort.Strings(versions) + for _, v := range versions { + switch stomp.Version(v) { + case stomp.V10: + version = stomp.V10 + err = nil + case stomp.V11: + version = stomp.V11 + err = nil + case stomp.V12: + version = stomp.V12 + err = nil + } + } + } else { + // CONNECT frames can be missing the accept-version header, + // we assume V1.0 in this case. STOMP frames were introduced + // in V1.1, so they must have an accept-version header. + if isConnect { + // no "accept-version" header, so we assume 1.0 + version = stomp.V10 + err = nil + } else { + err = missingHeader(frame.AcceptVersion) + } + } + return +} + +// Determine the heart-beat values in a CONNECT or STOMP frame. +// +// Returns 0,0 if the heart-beat header is missing. Otherwise +// returns the cx and cy values in the frame. +// +// Returns an error if the heart-beat header is malformed, or if +// the frame is not a CONNECT or STOMP frame. In this implementation, +// a heart-beat header is considered malformed if either cx or cy +// is greater than MaxHeartBeat. +func getHeartBeat(f *frame.Frame) (cx, cy int, err error) { + if f.Command != frame.CONNECT && + f.Command != frame.STOMP && + f.Command != frame.CONNECTED { + err = invalidOperationForFrame + return + } + if heartBeat, ok := f.Header.Contains(frame.HeartBeat); ok { + if !heartBeatRegexp.MatchString(heartBeat) { + err = invalidHeartBeat + return + } + + // no error checking here because we are confident + // that everything will work because the regexp matches. + slice := strings.Split(heartBeat, ",") + value1, _ := strconv.ParseUint(slice[0], 10, 32) + value2, _ := strconv.ParseUint(slice[1], 10, 32) + cx = int(value1) + cy = int(value2) + } else { + // heart-beat header not present + // this else clause is not necessary, but + // included for clarity. + cx = 0 + cy = 0 + } + return +} diff --git a/backend/services/stomp/server/client/frame_test.go b/backend/services/stomp/server/client/frame_test.go new file mode 100644 index 0000000..508e6cb --- /dev/null +++ b/backend/services/stomp/server/client/frame_test.go @@ -0,0 +1,82 @@ +package client + +import ( + "github.com/go-stomp/stomp/v3" + "github.com/go-stomp/stomp/v3/frame" + . "gopkg.in/check.v1" +) + +type FrameSuite struct{} + +var _ = Suite(&FrameSuite{}) + +func (s *FrameSuite) TestDetermineVersion_V10_Connect(c *C) { + f := frame.New(frame.CONNECT) + version, err := determineVersion(f) + c.Check(err, IsNil) + c.Check(version, Equals, stomp.V10) +} + +func (s *FrameSuite) TestDetermineVersion_V10_Stomp(c *C) { + // the "STOMP" command was introduced in V1.1, so it must + // have an accept-version header + f := frame.New(frame.STOMP) + _, err := determineVersion(f) + c.Check(err, Equals, missingHeader(frame.AcceptVersion)) +} + +func (s *FrameSuite) TestDetermineVersion_V11_Connect(c *C) { + f := frame.New(frame.CONNECT) + f.Header.Add(frame.AcceptVersion, "1.1") + version, err := determineVersion(f) + c.Check(version, Equals, stomp.V11) + c.Check(err, IsNil) +} + +func (s *FrameSuite) TestDetermineVersion_MultipleVersions(c *C) { + f := frame.New(frame.CONNECT) + f.Header.Add(frame.AcceptVersion, "1.2,1.1,1.0,2.0") + version, err := determineVersion(f) + c.Check(version, Equals, stomp.V12) + c.Check(err, IsNil) +} + +func (s *FrameSuite) TestDetermineVersion_IncompatibleVersions(c *C) { + f := frame.New(frame.CONNECT) + f.Header.Add(frame.AcceptVersion, "0.2,0.1,1.3,2.0") + version, err := determineVersion(f) + c.Check(version, Equals, stomp.Version("")) + c.Check(err, Equals, unknownVersion) +} + +func (s *FrameSuite) TestHeartBeat(c *C) { + f := frame.New(frame.CONNECT, + frame.AcceptVersion, "1.2", + frame.Host, "XX") + + // no heart-beat header means zero values + x, y, err := getHeartBeat(f) + c.Check(x, Equals, 0) + c.Check(y, Equals, 0) + c.Check(err, IsNil) + + f.Header.Add("heart-beat", "123,456") + x, y, err = getHeartBeat(f) + c.Check(x, Equals, 123) + c.Check(y, Equals, 456) + c.Check(err, IsNil) + + f.Header.Set(frame.HeartBeat, "invalid") + x, y, err = getHeartBeat(f) + c.Check(x, Equals, 0) + c.Check(y, Equals, 0) + c.Check(err, Equals, invalidHeartBeat) + + f.Header.Del(frame.HeartBeat) + _, _, err = getHeartBeat(f) + c.Check(err, IsNil) + + f.Command = frame.SEND + _, _, err = getHeartBeat(f) + c.Check(err, Equals, invalidOperationForFrame) +} diff --git a/backend/services/stomp/server/client/request.go b/backend/services/stomp/server/client/request.go new file mode 100644 index 0000000..3b6aa40 --- /dev/null +++ b/backend/services/stomp/server/client/request.go @@ -0,0 +1,32 @@ +package client + +import ( + "strconv" + + "github.com/go-stomp/stomp/v3/frame" +) + +// Opcode used in client requests. +type RequestOp int + +func (r RequestOp) String() string { + return strconv.Itoa(int(r)) +} + +// Valid value for client request opcodes. +const ( + SubscribeOp RequestOp = iota // subscription ready + UnsubscribeOp // subscription not ready + EnqueueOp // send a message to a queue + RequeueOp // re-queue a message, not successfully sent + ConnectedOp // connection established + DisconnectedOp // connection disconnected +) + +// Client requests received to be processed by main processing loop +type Request struct { + Op RequestOp // opcode for request + Sub *Subscription // SubscribeOp, UnsubscribeOp + Frame *frame.Frame // EnqueueOp, RequeueOp + Conn *Conn // ConnectedOp, DisconnectedOp +} diff --git a/backend/services/stomp/server/client/subscription.go b/backend/services/stomp/server/client/subscription.go new file mode 100644 index 0000000..a9f1757 --- /dev/null +++ b/backend/services/stomp/server/client/subscription.go @@ -0,0 +1,84 @@ +package client + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +type Subscription struct { + conn *Conn + dest string + id string // client's subscription id + ack string // auto, client, client-individual + msgId uint64 // message-id (or ack) for acknowledgement + subList *SubscriptionList // am I in a list + frame *frame.Frame // message allocated to subscription +} + +func newSubscription(c *Conn, dest string, id string, ack string) *Subscription { + return &Subscription{ + conn: c, + dest: dest, + id: id, + ack: ack, + } +} + +func (s *Subscription) Destination() string { + return s.dest +} + +func (s *Subscription) Ack() string { + return s.ack +} + +func (s *Subscription) Id() string { + return s.id +} + +func (s *Subscription) IsAckedBy(msgId uint64) bool { + switch s.ack { + case frame.AckAuto: + return true + case frame.AckClient: + // any later message acknowledges an earlier message + return msgId >= s.msgId + case frame.AckClientIndividual: + return msgId == s.msgId + } + + // should not get here + panic("invalid value for subscript.ack") +} + +func (s *Subscription) IsNackedBy(msgId uint64) bool { + // TODO: not sure about this, interpreting NACK + // to apply to an individual message + return msgId == s.msgId +} + +func (s *Subscription) SendQueueFrame(f *frame.Frame) { + s.setSubscriptionHeader(f) + s.frame = f + + // let the connection deal with the subscription + // acknowledgement + s.conn.subChannel <- s +} + +// Send a message frame to the client, as part of this +// subscription. Called within the queue when a message +// frame is available. +func (s *Subscription) SendTopicFrame(f *frame.Frame) { + s.setSubscriptionHeader(f) + + // topics are handled differently, they just go + // straight to the client without acknowledgement + s.conn.writeChannel <- f +} + +func (s *Subscription) setSubscriptionHeader(f *frame.Frame) { + if s.frame != nil { + panic("subscription already has a frame pending") + } + f.Header.Set(frame.Subscription, s.id) +} diff --git a/backend/services/stomp/server/client/subscription_list.go b/backend/services/stomp/server/client/subscription_list.go new file mode 100644 index 0000000..5630517 --- /dev/null +++ b/backend/services/stomp/server/client/subscription_list.go @@ -0,0 +1,107 @@ +package client + +import ( + "container/list" +) + +// Maintains a list of subscriptions. Not thread-safe. +type SubscriptionList struct { + // TODO: implement linked list locally, adding next and prev + // pointers to the Subscription struct itself. + subs *list.List +} + +func NewSubscriptionList() *SubscriptionList { + return &SubscriptionList{list.New()} +} + +// Add a subscription to the back of the list. Will panic if +// the subscription destination does not match the subscription +// list destination. Will also panic if the subscription has already +// been added to a subscription list. +func (sl *SubscriptionList) Add(sub *Subscription) { + if sub.subList != nil { + panic("subscription is already in a subscription list") + } + sl.subs.PushBack(sub) + sub.subList = sl +} + +// Gets the first subscription in the list, or nil if there +// are no subscriptions available. The subscription is removed +// from the list. +func (sl *SubscriptionList) Get() *Subscription { + if sl.subs.Len() == 0 { + return nil + } + front := sl.subs.Front() + sub := front.Value.(*Subscription) + sl.subs.Remove(front) + sub.subList = nil + return sub +} + +// Removes the subscription from the list. +func (sl *SubscriptionList) Remove(s *Subscription) { + for e := sl.subs.Front(); e != nil; e = e.Next() { + if e.Value.(*Subscription) == s { + sl.subs.Remove(e) + s.subList = nil + return + } + } +} + +// Search for a subscription with the specified id and remove it. +// Returns a pointer to the subscription if found, nil otherwise. +func (sl *SubscriptionList) FindByIdAndRemove(id string) *Subscription { + for e := sl.subs.Front(); e != nil; e = e.Next() { + sub := e.Value.(*Subscription) + if sub.id == id { + sl.subs.Remove(e) + return sub + } + } + return nil +} + +// Finds all subscriptions in the subscription list that are acked by the +// specified message-id (or ack) header. The subscription is removed from +// the list and the callback function called for that subscription. +func (sl *SubscriptionList) Ack(msgId uint64, callback func(s *Subscription)) { + for e := sl.subs.Front(); e != nil; { + next := e.Next() + sub := e.Value.(*Subscription) + if sub.IsAckedBy(msgId) { + sl.subs.Remove(e) + callback(sub) + } + e = next + } +} + +// Finds all subscriptions in the subscription list that are *nacked* by the +// specified message-id (or ack) header. The subscription is removed from +// the list and the callback function called for that subscription. Current +// understanding that all NACKs are individual, but not sure +func (sl *SubscriptionList) Nack(msgId uint64, callback func(s *Subscription)) { + for e := sl.subs.Front(); e != nil; { + next := e.Next() + sub := e.Value.(*Subscription) + if sub.IsNackedBy(msgId) { + sl.subs.Remove(e) + callback(sub) + } + e = next + } +} + +// Invoke a callback function for every subscription in the list. +func (sl *SubscriptionList) ForEach(callback func(s *Subscription, isLast bool)) { + for e := sl.subs.Front(); e != nil; { + next := e.Next() + sub := e.Value.(*Subscription) + callback(sub, next == nil) + e = next + } +} diff --git a/backend/services/stomp/server/client/subscription_list_test.go b/backend/services/stomp/server/client/subscription_list_test.go new file mode 100644 index 0000000..8d471e6 --- /dev/null +++ b/backend/services/stomp/server/client/subscription_list_test.go @@ -0,0 +1,113 @@ +package client + +import ( + . "gopkg.in/check.v1" +) + +type SubscriptionListSuite struct{} + +var _ = Suite(&SubscriptionListSuite{}) + +func (s *SubscriptionListSuite) TestAddAndGet(c *C) { + sub1 := newSubscription(nil, "/dest", "1", "client") + sub2 := newSubscription(nil, "/dest", "2", "client") + sub3 := newSubscription(nil, "/dest", "3", "client") + + sl := NewSubscriptionList() + sl.Add(sub1) + sl.Add(sub2) + sl.Add(sub3) + + c.Check(sl.Get(), Equals, sub1) + + // add the subscription again, should go to the back + sl.Add(sub1) + + c.Check(sl.Get(), Equals, sub2) + c.Check(sl.Get(), Equals, sub3) + c.Check(sl.Get(), Equals, sub1) + + c.Check(sl.Get(), IsNil) +} + +func (s *SubscriptionListSuite) TestAddAndRemove(c *C) { + sub1 := newSubscription(nil, "/dest", "1", "client") + sub2 := newSubscription(nil, "/dest", "2", "client") + sub3 := newSubscription(nil, "/dest", "3", "client") + + sl := NewSubscriptionList() + sl.Add(sub1) + sl.Add(sub2) + sl.Add(sub3) + + c.Check(sl.subs.Len(), Equals, 3) + + // now remove the second subscription + sl.Remove(sub2) + + c.Check(sl.Get(), Equals, sub1) + c.Check(sl.Get(), Equals, sub3) + c.Check(sl.Get(), IsNil) +} + +func (s *SubscriptionListSuite) TestAck(c *C) { + sub1 := &Subscription{dest: "/dest1", id: "1", ack: "client", msgId: 101} + sub2 := &Subscription{dest: "/dest3", id: "2", ack: "client-individual", msgId: 102} + sub3 := &Subscription{dest: "/dest4", id: "3", ack: "client", msgId: 103} + sub4 := &Subscription{dest: "/dest4", id: "4", ack: "client", msgId: 104} + + sl := NewSubscriptionList() + sl.Add(sub1) + sl.Add(sub2) + sl.Add(sub3) + sl.Add(sub4) + + c.Check(sl.subs.Len(), Equals, 4) + + var subs []*Subscription + callback := func(s *Subscription) { + subs = append(subs, s) + } + + // now remove the second subscription + sl.Ack(103, callback) + + c.Assert(len(subs), Equals, 2) + c.Assert(subs[0], Equals, sub1) + c.Assert(subs[1], Equals, sub3) + + c.Assert(sl.Get(), Equals, sub2) + c.Assert(sl.Get(), Equals, sub4) + c.Assert(sl.Get(), IsNil) +} + +func (s *SubscriptionListSuite) TestNack(c *C) { + sub1 := &Subscription{dest: "/dest1", id: "1", ack: "client", msgId: 101} + sub2 := &Subscription{dest: "/dest3", id: "2", ack: "client-individual", msgId: 102} + sub3 := &Subscription{dest: "/dest4", id: "3", ack: "client", msgId: 103} + sub4 := &Subscription{dest: "/dest4", id: "4", ack: "client", msgId: 104} + + sl := NewSubscriptionList() + sl.Add(sub1) + sl.Add(sub2) + sl.Add(sub3) + sl.Add(sub4) + + c.Check(sl.subs.Len(), Equals, 4) + + var subs []*Subscription + callback := func(s *Subscription) { + subs = append(subs, s) + } + + // now remove the second subscription + sl.Nack(103, callback) + + c.Assert(len(subs), Equals, 1) + c.Assert(subs[0], Equals, sub3) + + c.Assert(sl.Get(), Equals, sub1) + c.Assert(sl.Get(), Equals, sub2) + c.Assert(sl.Get(), Equals, sub4) + c.Assert(sl.Get(), IsNil) +} diff --git a/backend/services/stomp/server/client/tx_store.go b/backend/services/stomp/server/client/tx_store.go new file mode 100644 index 0000000..d2c4354 --- /dev/null +++ b/backend/services/stomp/server/client/tx_store.go @@ -0,0 +1,65 @@ +package client + +import ( + "container/list" + + "github.com/go-stomp/stomp/v3/frame" +) + +type txStore struct { + transactions map[string]*list.List +} + +// Initializes a new store or clears out an existing store +func (txs *txStore) Init() { + txs.transactions = nil +} + +func (txs *txStore) Begin(tx string) error { + if txs.transactions == nil { + txs.transactions = make(map[string]*list.List) + } + + if _, ok := txs.transactions[tx]; ok { + return txAlreadyInProgress + } + + txs.transactions[tx] = list.New() + return nil +} + +func (txs *txStore) Abort(tx string) error { + if list, ok := txs.transactions[tx]; ok { + list.Init() + delete(txs.transactions, tx) + return nil + } + return txUnknown +} + +// Commit causes all requests that have been queued for the transaction +// to be sent to the request channel for processing. Calls the commit +// function (commitFunc) in order for each request that is part of the +// transaction. +func (txs *txStore) Commit(tx string, commitFunc func(f *frame.Frame) error) error { + if list, ok := txs.transactions[tx]; ok { + for element := list.Front(); element != nil; element = list.Front() { + err := commitFunc(list.Remove(element).(*frame.Frame)) + if err != nil { + return err + } + } + delete(txs.transactions, tx) + return nil + } + return txUnknown +} + +func (txs *txStore) Add(tx string, f *frame.Frame) error { + if list, ok := txs.transactions[tx]; ok { + f.Header.Del(frame.Transaction) + list.PushBack(f) + return nil + } + return txUnknown +} diff --git a/backend/services/stomp/server/client/tx_store_test.go b/backend/services/stomp/server/client/tx_store_test.go new file mode 100644 index 0000000..eca2774 --- /dev/null +++ b/backend/services/stomp/server/client/tx_store_test.go @@ -0,0 +1,81 @@ +package client + +import ( + "github.com/go-stomp/stomp/v3/frame" + . "gopkg.in/check.v1" +) + +type TxStoreSuite struct{} + +var _ = Suite(&TxStoreSuite{}) + +func (s *TxStoreSuite) TestDoubleBegin(c *C) { + txs := txStore{} + + err := txs.Begin("tx1") + c.Assert(err, IsNil) + + err = txs.Begin("tx1") + c.Assert(err, Equals, txAlreadyInProgress) +} + +func (s *TxStoreSuite) TestSuccessfulTx(c *C) { + txs := txStore{} + + err := txs.Begin("tx1") + c.Check(err, IsNil) + + err = txs.Begin("tx2") + c.Assert(err, IsNil) + + f1 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/1") + + f2 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/2") + + f3 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/3") + + f4 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/4") + + err = txs.Add("tx1", f1) + c.Assert(err, IsNil) + err = txs.Add("tx1", f2) + c.Assert(err, IsNil) + err = txs.Add("tx1", f3) + c.Assert(err, IsNil) + err = txs.Add("tx2", f4) + + var tx1 []*frame.Frame + + txs.Commit("tx1", func(f *frame.Frame) error { + tx1 = append(tx1, f) + return nil + }) + c.Check(err, IsNil) + + var tx2 []*frame.Frame + + err = txs.Commit("tx2", func(f *frame.Frame) error { + tx2 = append(tx2, f) + return nil + }) + c.Check(err, IsNil) + + c.Check(len(tx1), Equals, 3) + c.Check(tx1[0], Equals, f1) + c.Check(tx1[1], Equals, f2) + c.Check(tx1[2], Equals, f3) + + c.Check(len(tx2), Equals, 1) + c.Check(tx2[0], Equals, f4) + + // already committed, so should cause an error + err = txs.Commit("tx1", func(f *frame.Frame) error { + c.Fatal("should not be called") + return nil + }) + c.Check(err, Equals, txUnknown) +} diff --git a/backend/services/stomp/server/client/util.go b/backend/services/stomp/server/client/util.go new file mode 100644 index 0000000..683a9da --- /dev/null +++ b/backend/services/stomp/server/client/util.go @@ -0,0 +1,21 @@ +package client + +import ( + "time" +) + +// Convert a time.Duration to milliseconds in an integer. +// Returns the duration in milliseconds, or max if the +// duration is greater than max milliseconds. +func asMilliseconds(d time.Duration, max int) int { + if max < 0 { + max = 0 + } + max64 := int64(max) + msec64 := int64(d / time.Millisecond) + if msec64 > max64 { + msec64 = max64 + } + msec := int(msec64) + return msec +} diff --git a/backend/services/stomp/server/client/util_test.go b/backend/services/stomp/server/client/util_test.go new file mode 100644 index 0000000..c577f61 --- /dev/null +++ b/backend/services/stomp/server/client/util_test.go @@ -0,0 +1,23 @@ +package client + +import ( + . "gopkg.in/check.v1" + "math" + "time" +) + +type UtilSuite struct{} + +var _ = Suite(&UtilSuite{}) + +func (s *UtilSuite) TestAsMilliseconds(c *C) { + d := time.Duration(30) * time.Millisecond + c.Check(asMilliseconds(d, math.MaxInt32), Equals, 30) + + // approximately one year + d = time.Duration(365) * time.Duration(24) * time.Hour + c.Check(asMilliseconds(d, math.MaxInt32), Equals, math.MaxInt32) + + d = time.Duration(365) * time.Duration(24) * time.Hour + c.Check(asMilliseconds(d, maxHeartBeat), Equals, maxHeartBeat) +} diff --git a/backend/services/stomp/server/processor.go b/backend/services/stomp/server/processor.go new file mode 100644 index 0000000..291845a --- /dev/null +++ b/backend/services/stomp/server/processor.go @@ -0,0 +1,158 @@ +package server + +import ( + "net" + "strings" + "time" + + "github.com/go-stomp/stomp/v3" + "github.com/go-stomp/stomp/v3/frame" + "github.com/go-stomp/stomp/v3/server/client" + "github.com/go-stomp/stomp/v3/server/queue" + "github.com/go-stomp/stomp/v3/server/topic" +) + +type requestProcessor struct { + server *Server + ch chan client.Request + tm *topic.Manager + qm *queue.Manager + stop bool // has stop been requested +} + +func newRequestProcessor(server *Server) *requestProcessor { + proc := &requestProcessor{ + server: server, + ch: make(chan client.Request, 128), + tm: topic.NewManager(), + } + + if server.QueueStorage == nil { + proc.qm = queue.NewManager(queue.NewMemoryQueueStorage()) + } else { + proc.qm = queue.NewManager(server.QueueStorage) + } + + return proc +} + +func (proc *requestProcessor) Serve(l net.Listener) error { + go proc.Listen(l) + + for { + r := <-proc.ch + switch r.Op { + case client.SubscribeOp: + if isQueueDestination(r.Sub.Destination()) { + queue := proc.qm.Find(r.Sub.Destination()) + // todo error handling + queue.Subscribe(r.Sub) + } else { + topic := proc.tm.Find(r.Sub.Destination()) + topic.Subscribe(r.Sub) + } + + case client.UnsubscribeOp: + if isQueueDestination(r.Sub.Destination()) { + queue := proc.qm.Find(r.Sub.Destination()) + // todo error handling + queue.Unsubscribe(r.Sub) + } else { + topic := proc.tm.Find(r.Sub.Destination()) + topic.Unsubscribe(r.Sub) + } + + case client.EnqueueOp: + destination, ok := r.Frame.Header.Contains(frame.Destination) + if !ok { + // should not happen, already checked in lower layer + panic("missing destination") + } + + if isQueueDestination(destination) { + queue := proc.qm.Find(destination) + queue.Enqueue(r.Frame) + } else { + topic := proc.tm.Find(destination) + topic.Enqueue(r.Frame) + } + + case client.RequeueOp: + destination, ok := r.Frame.Header.Contains(frame.Destination) + if !ok { + // should not happen, already checked in lower layer + panic("missing destination") + } + + // only requeue to queues, should never happen for topics + if isQueueDestination(destination) { + queue := proc.qm.Find(destination) + queue.Requeue(r.Frame) + } + } + } + // this is no longer required for go 1.1 + panic("not reached") +} + +func isQueueDestination(dest string) bool { + return strings.HasPrefix(dest, QueuePrefix) +} + +func (proc *requestProcessor) Listen(l net.Listener) { + config := newConfig(proc.server) + timeout := time.Duration(0) // how long to sleep on accept failure + for { + rw, err := l.Accept() + if err != nil { + if netErr, ok := err.(net.Error); ok && netErr.Temporary() { + if timeout == 0 { + timeout = 5 * time.Millisecond + } else { + timeout *= 2 + } + if max := 5 * time.Second; timeout > max { + timeout = max + } + proc.server.Log.Infof("stomp: Accept error: %v; retrying in %v", err, timeout) + time.Sleep(timeout) + continue + } + return + } + timeout = 0 + // TODO: need to pass Server to connection so it has access to + // configuration parameters. + _ = client.NewConn(config, rw, proc.ch) + } + // This is no longer required for go 1.1 + panic("not reached") +} + +type config struct { + server *Server +} + +func newConfig(s *Server) *config { + return &config{server: s} +} + +func (c *config) HeartBeat() time.Duration { + if c.server.HeartBeat == time.Duration(0) { + return DefaultHeartBeat + } + return c.server.HeartBeat +} + +func (c *config) Authenticate(login, passcode string) bool { + if c.server.Authenticator != nil { + return c.server.Authenticator.Authenticate(login, passcode) + } + + // no authentication defined + return true +} + +func (c *config) Logger() stomp.Logger { + return c.server.Log +} diff --git a/backend/services/stomp/server/queue/manager.go b/backend/services/stomp/server/queue/manager.go new file mode 100644 index 0000000..3e499df --- /dev/null +++ b/backend/services/stomp/server/queue/manager.go @@ -0,0 +1,23 @@ +package queue + +// Queue manager. +type Manager struct { + qstore Storage // handles queue storage + queues map[string]*Queue +} + +// Create a queue manager with the specified queue storage mechanism +func NewManager(qstore Storage) *Manager { + qm := &Manager{qstore: qstore, queues: make(map[string]*Queue)} + return qm +} + +// Finds the queue for the given destination, and creates it if necessary. +func (qm *Manager) Find(destination string) *Queue { + q, ok := qm.queues[destination] + if !ok { + q = newQueue(destination, qm.qstore) + qm.queues[destination] = q + } + return q +} diff --git a/backend/services/stomp/server/queue/manager_test.go b/backend/services/stomp/server/queue/manager_test.go new file mode 100644 index 0000000..d74bd54 --- /dev/null +++ b/backend/services/stomp/server/queue/manager_test.go @@ -0,0 +1,21 @@ +package queue + +import ( + . "gopkg.in/check.v1" +) + +type ManagerSuite struct{} + +var _ = Suite(&ManagerSuite{}) + +func (s *ManagerSuite) TestManager(c *C) { + mgr := NewManager(NewMemoryQueueStorage()) + + q1 := mgr.Find("/queue/1") + c.Assert(q1, NotNil) + + q2 := mgr.Find("/queue/2") + c.Assert(q2, NotNil) + + c.Assert(mgr.Find("/queue/1"), Equals, q1) +} diff --git a/backend/services/stomp/server/queue/memory_queue.go b/backend/services/stomp/server/queue/memory_queue.go new file mode 100644 index 0000000..ebd204e --- /dev/null +++ b/backend/services/stomp/server/queue/memory_queue.go @@ -0,0 +1,70 @@ +package queue + +import ( + "container/list" + + "github.com/go-stomp/stomp/v3/frame" +) + +// In-memory implementation of the QueueStorage interface. +type MemoryQueueStorage struct { + lists map[string]*list.List +} + +func NewMemoryQueueStorage() Storage { + m := &MemoryQueueStorage{lists: make(map[string]*list.List)} + return m +} + +func (m *MemoryQueueStorage) Enqueue(queue string, frame *frame.Frame) error { + l, ok := m.lists[queue] + if !ok { + l = list.New() + m.lists[queue] = l + } + l.PushBack(frame) + + return nil +} + +// Pushes a frame to the head of the queue. Sets +// the "message-id" header of the frame if it is not +// already set. +func (m *MemoryQueueStorage) Requeue(queue string, frame *frame.Frame) error { + l, ok := m.lists[queue] + if !ok { + l = list.New() + m.lists[queue] = l + } + l.PushFront(frame) + + return nil +} + +// Removes a frame from the head of the queue. +// Returns nil if no frame is available. +func (m *MemoryQueueStorage) Dequeue(queue string) (*frame.Frame, error) { + l, ok := m.lists[queue] + if !ok { + return nil, nil + } + + element := l.Front() + if element == nil { + return nil, nil + } + + return l.Remove(element).(*frame.Frame), nil +} + +// Called at server startup. Allows the queue storage +// to perform any initialization. +func (m *MemoryQueueStorage) Start() { + m.lists = make(map[string]*list.List) +} + +// Called prior to server shutdown. Allows the queue storage +// to perform any cleanup. +func (m *MemoryQueueStorage) Stop() { + m.lists = nil +} diff --git a/backend/services/stomp/server/queue/memory_queue_test.go b/backend/services/stomp/server/queue/memory_queue_test.go new file mode 100644 index 0000000..7037291 --- /dev/null +++ b/backend/services/stomp/server/queue/memory_queue_test.go @@ -0,0 +1,64 @@ +package queue + +import ( + "github.com/go-stomp/stomp/v3/frame" + . "gopkg.in/check.v1" +) + +type MemoryQueueSuite struct{} + +var _ = Suite(&MemoryQueueSuite{}) + +func (s *MemoryQueueSuite) Test1(c *C) { + mq := NewMemoryQueueStorage() + mq.Start() + + f1 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/test", + frame.MessageId, "msg-001", + frame.Subscription, "1") + + err := mq.Enqueue("/queue/test", f1) + c.Assert(err, IsNil) + + f2 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/test", + frame.MessageId, "msg-002", + frame.Subscription, "1") + + err = mq.Enqueue("/queue/test", f2) + c.Assert(err, IsNil) + + f3 := frame.New(frame.MESSAGE, + frame.Destination, "/queue/test2", + frame.MessageId, "msg-003", + frame.Subscription, "2") + + err = mq.Enqueue("/queue/test2", f3) + c.Assert(err, IsNil) + + // attempt to dequeue from a different queue + f, err := mq.Dequeue("/queue/other-queue") + c.Check(err, IsNil) + c.Assert(f, IsNil) + + f, err = mq.Dequeue("/queue/test2") + c.Check(err, IsNil) + c.Assert(f, Equals, f3) + + f, err = mq.Dequeue("/queue/test") + c.Check(err, IsNil) + c.Assert(f, Equals, f1) + + f, err = mq.Dequeue("/queue/test") + c.Check(err, IsNil) + c.Assert(f, Equals, f2) + + f, err = mq.Dequeue("/queue/test") + c.Check(err, IsNil) + c.Assert(f, IsNil) + + f, err = mq.Dequeue("/queue/test2") + c.Check(err, IsNil) + c.Assert(f, IsNil) +} diff --git a/backend/services/stomp/server/queue/queue.go b/backend/services/stomp/server/queue/queue.go new file mode 100644 index 0000000..6b7beab --- /dev/null +++ b/backend/services/stomp/server/queue/queue.go @@ -0,0 +1,86 @@ +/* +Package queue provides implementations of server-side queues. +*/ +package queue + +import ( + "github.com/go-stomp/stomp/v3/frame" + "github.com/go-stomp/stomp/v3/server/client" +) + +// Queue for storing message frames. +type Queue struct { + destination string + qstore Storage + subs *client.SubscriptionList +} + +// Create a new queue -- called from the queue manager only. +func newQueue(destination string, qstore Storage) *Queue { + return &Queue{ + destination: destination, + qstore: qstore, + subs: client.NewSubscriptionList(), + } +} + +// Add a subscription to a queue. The subscription is removed +// whenever a frame is sent to the subscription and needs to +// be re-added when the subscription decides that the message +// has been received by the client. +func (q *Queue) Subscribe(sub *client.Subscription) error { + // see if there is a frame available for this subscription + f, err := q.qstore.Dequeue(sub.Destination()) + if err != nil { + return err + } + if f == nil { + // no frame available, so add to the subscription list + q.subs.Add(sub) + } else { + // a frame is available, so send straight away without + // adding the subscription to the list + sub.SendQueueFrame(f) + } + return nil +} + +// Unsubscribe a subscription. +func (q *Queue) Unsubscribe(sub *client.Subscription) { + q.subs.Remove(sub) +} + +// Send a message to the queue. If a subscription is available +// to receive the message, it is sent to the subscription without +// making it to the queue. Otherwise, the message is queued until +// a message is available. +func (q *Queue) Enqueue(f *frame.Frame) error { + // find a subscription ready to receive the frame + sub := q.subs.Get() + if sub == nil { + // no subscription available, add to the queue + return q.qstore.Enqueue(q.destination, f) + } else { + // subscription is available, send it now without adding to queue + sub.SendQueueFrame(f) + } + return nil +} + +// Send a message to the front of the queue, probably because it +// failed to be sent to a client. If a subscription is available +// to receive the message, it is sent to the subscription without +// making it to the queue. Otherwise, the message is queued until +// a message is available. +func (q *Queue) Requeue(f *frame.Frame) error { + // find a subscription ready to receive the frame + sub := q.subs.Get() + if sub == nil { + // no subscription available, add to the queue + return q.qstore.Requeue(q.destination, f) + } else { + // subscription is available, send it now without adding to queue + sub.SendQueueFrame(f) + } + return nil +} diff --git a/backend/services/stomp/server/queue/queue_test.go b/backend/services/stomp/server/queue/queue_test.go new file mode 100644 index 0000000..8517172 --- /dev/null +++ b/backend/services/stomp/server/queue/queue_test.go @@ -0,0 +1,12 @@ +package queue + +import ( + "gopkg.in/check.v1" + "testing" +) + +// Runs all gocheck tests in this package. +// See other *_test.go files for gocheck tests. +func TestQueue(t *testing.T) { + check.TestingT(t) +} diff --git a/backend/services/stomp/server/queue/storage.go b/backend/services/stomp/server/queue/storage.go new file mode 100644 index 0000000..9d6eead --- /dev/null +++ b/backend/services/stomp/server/queue/storage.go @@ -0,0 +1,34 @@ +package queue + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// Interface for queue storage. The intent is that +// different queue storage implementations can be +// used, depending on preference. Queue storage +// mechanisms could include in-memory, and various +// persistent storage mechanisms (eg file system, DB, etc) +type Storage interface { + // Pushes a MESSAGE frame to the end of the queue. Sets + // the "message-id" header of the frame before adding to + // the queue. + Enqueue(queue string, frame *frame.Frame) error + + // Pushes a MESSAGE frame to the head of the queue. Sets + // the "message-id" header of the frame if it is not + // already set. + Requeue(queue string, frame *frame.Frame) error + + // Removes a frame from the head of the queue. + // Returns nil if no frame is available. + Dequeue(queue string) (*frame.Frame, error) + + // Called at server startup. Allows the queue storage + // to perform any initialization. + Start() + + // Called prior to server shutdown. Allows the queue storage + // to perform any cleanup. + Stop() +} diff --git a/backend/services/stomp/server/queue_storage.go b/backend/services/stomp/server/queue_storage.go new file mode 100644 index 0000000..d922597 --- /dev/null +++ b/backend/services/stomp/server/queue_storage.go @@ -0,0 +1,30 @@ +package server + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// QueueStorage is an interface that abstracts the queue storage mechanism. +// The intent is that different queue storage implementations can be +// used, depending on preference. Queue storage mechanisms could include +// in-memory, and various persistent storage mechanisms (eg file system, DB, etc). +type QueueStorage interface { + // Enqueue adds a MESSAGE frame to the end of the queue. + Enqueue(queue string, frame *frame.Frame) error + + // Requeue adds a MESSAGE frame to the head of the queue. + // This will happen if a client fails to acknowledge receipt. + Requeue(queue string, frame *frame.Frame) error + + // Dequeue removes a frame from the head of the queue. + // Returns nil if no frame is available. + Dequeue(queue string) (*frame.Frame, error) + + // Start is called at server startup. Allows the queue storage + // to perform any initialization. + Start() + + // Stop is called prior to server shutdown. Allows the queue storage + // to perform any cleanup, such as flushing to disk. + Stop() +} diff --git a/backend/services/stomp/server/server.go b/backend/services/stomp/server/server.go new file mode 100644 index 0000000..dacde5a --- /dev/null +++ b/backend/services/stomp/server/server.go @@ -0,0 +1,89 @@ +/* +Package server contains a simple STOMP server implementation. +*/ +package server + +import ( + "net" + "time" + + "github.com/go-stomp/stomp/v3" + "github.com/go-stomp/stomp/v3/internal/log" +) + +// The STOMP server has the concept of queues and topics. A message +// sent to a queue destination will be transmitted to the next available +// client that has subscribed. A message sent to a topic will be +// transmitted to all subscribers that are currently subscribed to the +// topic. +// +// Destinations that start with this prefix are considered to be queues. +// Destinations that do not start with this prefix are considered to be topics. +const QueuePrefix = "/queue" + +// Default server parameters. +const ( + // Default address for listening for connections. + DefaultAddr = ":61613" + + // Default read timeout for heart-beat. + // Override by setting Server.HeartBeat. + DefaultHeartBeat = time.Minute +) + +// Interface for authenticating STOMP clients. +type Authenticator interface { + // Authenticate based on the given login and passcode, either of which might be nil. + // Returns true if authentication is successful, false otherwise. + Authenticate(login, passcode string) bool +} + +// A Server defines parameters for running a STOMP server. +type Server struct { + Addr string // TCP address to listen on, DefaultAddr if empty + Authenticator Authenticator // Authenticates login/passcodes. If nil no authentication is performed + QueueStorage QueueStorage // Implementation of queue storage. If nil, in-memory queues are used. + HeartBeat time.Duration // Preferred value for heart-beat read/write timeout, if zero, then DefaultHeartBeat. + Log stomp.Logger +} + +// ListenAndServe listens on the TCP network address addr and then calls Serve. +func ListenAndServe(addr string) error { + s := &Server{Addr: addr} + return s.ListenAndServe() +} + +// Serve accepts incoming TCP connections on the listener l, creating a new +// STOMP service thread for each connection. +func Serve(l net.Listener) error { + s := &Server{} + return s.Serve(l) +} + +// ListenAndServe listens on the TCP network address s.Addr and +// then calls Serve to handle requests on the incoming connections. +// If s.Addr is blank, then DefaultAddr is used. +func (s *Server) ListenAndServe() error { + addr := s.Addr + if addr == "" { + addr = DefaultAddr + } + l, err := net.Listen("tcp", addr) + if err != nil { + return err + } + + return s.Serve(l) +} + +// Serve accepts incoming connections on the Listener l, creating a new +// service thread for each connection. The service threads read +// requests and then process each request. +func (s *Server) Serve(l net.Listener) error { + if s.Log == nil { + s.Log = log.StdLogger{} + } + + proc := newRequestProcessor(s) + return proc.Serve(l) +} diff --git a/backend/services/stomp/server/server_test.go b/backend/services/stomp/server/server_test.go new file mode 100644 index 0000000..9ab099e --- /dev/null +++ b/backend/services/stomp/server/server_test.go @@ -0,0 +1,170 @@ +package server + +import ( + "fmt" + "net" + "runtime" + "testing" + "time" + + "github.com/go-stomp/stomp/v3" + . "gopkg.in/check.v1" +) + +func TestServer(t *testing.T) { + TestingT(t) +} + +type ServerSuite struct{} + +var _ = Suite(&ServerSuite{}) + +func (s *ServerSuite) SetUpSuite(c *C) { + runtime.GOMAXPROCS(runtime.NumCPU()) +} + +func (s *ServerSuite) TearDownSuite(c *C) { + runtime.GOMAXPROCS(1) +} + +func (s *ServerSuite) TestConnectAndDisconnect(c *C) { + addr := ":59091" + l, err := net.Listen("tcp", addr) + c.Assert(err, IsNil) + defer func() { l.Close() }() + go Serve(l) + + conn, err := net.Dial("tcp", "127.0.0.1"+addr) + c.Assert(err, IsNil) + + client, err := stomp.Connect(conn) + c.Assert(err, IsNil) + + err = client.Disconnect() + c.Assert(err, IsNil) + + conn.Close() +} + + +func (s *ServerSuite) TestHeartBeatingTolerance(c *C) { + // Heart beat should not close connection exactly after not receiving message after cx + // it should add a pretty decent amount of time to counter network delay of other timing issues + l, err := net.Listen("tcp", `127.0.0.1:0`) + c.Assert(err, IsNil) + defer func() { l.Close() }() + serv := Server{ + Addr: l.Addr().String(), + Authenticator: nil, + QueueStorage: nil, + HeartBeat: 5 * time.Millisecond, + } + go serv.Serve(l) + + conn, err := net.Dial("tcp", l.Addr().String()) + c.Assert(err, IsNil) + defer conn.Close() + + client, err := stomp.Connect(conn, + stomp.ConnOpt.HeartBeat(5 * time.Millisecond, 5 * time.Millisecond), + ) + c.Assert(err, IsNil) + defer client.Disconnect() + + time.Sleep(serv.HeartBeat * 20) // let it go for some time to allow client and server to exchange some heart beat + + // Ensure the server has not closed his readChannel + err = client.Send("/topic/whatever", "text/plain", []byte("hello")) + c.Assert(err, IsNil) +} + +func (s *ServerSuite) TestSendToQueuesAndTopics(c *C) { + ch := make(chan bool, 2) + println("number cpus:", runtime.NumCPU()) + + addr := ":59092" + + l, err := net.Listen("tcp", addr) + c.Assert(err, IsNil) + defer func() { l.Close() }() + go Serve(l) + + // channel to communicate that the go routine has started + started := make(chan bool) + + count := 100 + go runReceiver(c, ch, count, "/topic/test-1", addr, started) + <-started + go runReceiver(c, ch, count, "/topic/test-1", addr, started) + <-started + go runReceiver(c, ch, count, "/topic/test-2", addr, started) + <-started + go runReceiver(c, ch, count, "/topic/test-2", addr, started) + <-started + go runReceiver(c, ch, count, "/topic/test-1", addr, started) + <-started + go runReceiver(c, ch, count, "/queue/test-1", addr, started) + <-started + go runSender(c, ch, count, "/queue/test-1", addr, started) + <-started + go runSender(c, ch, count, "/queue/test-2", addr, started) + <-started + go runReceiver(c, ch, count, "/queue/test-2", addr, started) + <-started + go runSender(c, ch, count, "/topic/test-1", addr, started) + <-started + go runReceiver(c, ch, count, "/queue/test-3", addr, started) + <-started + go runSender(c, ch, count, "/queue/test-3", addr, started) + <-started + go runSender(c, ch, count, "/queue/test-4", addr, started) + <-started + go runSender(c, ch, count, "/topic/test-2", addr, started) + <-started + go runReceiver(c, ch, count, "/queue/test-4", addr, started) + <-started + + for i := 0; i < 15; i++ { + <-ch + } +} + +func runSender(c *C, ch chan bool, count int, destination, addr string, started chan bool) { + conn, err := net.Dial("tcp", "127.0.0.1"+addr) + c.Assert(err, IsNil) + + client, err := stomp.Connect(conn) + c.Assert(err, IsNil) + + started <- true + + for i := 0; i < count; i++ { + client.Send(destination, "text/plain", + []byte(fmt.Sprintf("%s test message %d", destination, i))) + //println("sent", i) + } + + ch <- true +} + +func runReceiver(c *C, ch chan bool, count int, destination, addr string, started chan bool) { + conn, err := net.Dial("tcp", "127.0.0.1"+addr) + c.Assert(err, IsNil) + + client, err := stomp.Connect(conn) + c.Assert(err, IsNil) + + sub, err := client.Subscribe(destination, stomp.AckAuto) + c.Assert(err, IsNil) + c.Assert(sub, NotNil) + + started <- true + + for i := 0; i < count; i++ { + msg := <-sub.C + expectedText := fmt.Sprintf("%s test message %d", destination, i) + c.Assert(msg.Body, DeepEquals, []byte(expectedText)) + //println("received", i) + } + ch <- true +} diff --git a/backend/services/stomp/server/topic/manager.go b/backend/services/stomp/server/topic/manager.go new file mode 100644 index 0000000..0b9611d --- /dev/null +++ b/backend/services/stomp/server/topic/manager.go @@ -0,0 +1,24 @@ +package topic + +// Manager is a struct responsible for finding topics. Topics are +// not created by the package user, rather they are created on demand +// by the topic manager. +type Manager struct { + topics map[string]*Topic +} + +// NewManager creates a new topic manager. +func NewManager() *Manager { + tm := &Manager{topics: make(map[string]*Topic)} + return tm +} + +// Finds the topic for the given destination, and creates it if necessary. +func (tm *Manager) Find(destination string) *Topic { + t, ok := tm.topics[destination] + if !ok { + t = newTopic(destination) + tm.topics[destination] = t + } + return t +} diff --git a/backend/services/stomp/server/topic/manager_test.go b/backend/services/stomp/server/topic/manager_test.go new file mode 100644 index 0000000..2fa76df --- /dev/null +++ b/backend/services/stomp/server/topic/manager_test.go @@ -0,0 +1,21 @@ +package topic + +import ( + . "gopkg.in/check.v1" +) + +type ManagerSuite struct{} + +var _ = Suite(&ManagerSuite{}) + +func (s *ManagerSuite) TestManager(c *C) { + mgr := NewManager() + + t1 := mgr.Find("topic1") + c.Assert(t1, NotNil) + + t2 := mgr.Find("topic2") + c.Assert(t2, NotNil) + + c.Assert(mgr.Find("topic1"), Equals, t1) +} diff --git a/backend/services/stomp/server/topic/subscription.go b/backend/services/stomp/server/topic/subscription.go new file mode 100644 index 0000000..956c347 --- /dev/null +++ b/backend/services/stomp/server/topic/subscription.go @@ -0,0 +1,11 @@ +package topic + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// Subscription is the interface that wraps a subscriber to a topic. +type Subscription interface { + // Send a message frame to the topic subscriber. + SendTopicFrame(f *frame.Frame) +} diff --git a/backend/services/stomp/server/topic/testing_test.go b/backend/services/stomp/server/topic/testing_test.go new file mode 100644 index 0000000..21ec5c6 --- /dev/null +++ b/backend/services/stomp/server/topic/testing_test.go @@ -0,0 +1,12 @@ +package topic + +import ( + "gopkg.in/check.v1" + "testing" +) + +// Runs all gocheck tests in this package. +// See other *_test.go files for gocheck tests. +func Test(t *testing.T) { + check.TestingT(t) +} diff --git a/backend/services/stomp/server/topic/topic.go b/backend/services/stomp/server/topic/topic.go new file mode 100644 index 0000000..afe4c85 --- /dev/null +++ b/backend/services/stomp/server/topic/topic.go @@ -0,0 +1,73 @@ +/* +Package topic provides implementations of server-side topics. +*/ +package topic + +import ( + "container/list" + + "github.com/go-stomp/stomp/v3/frame" +) + +// A Topic is used for broadcasting to subscribed clients. +// In contrast to a queue, when a message is sent to a topic, +// that message is transmitted to all subscribed clients. +type Topic struct { + destination string + subs *list.List +} + +// Create a new topic -- called from the topic manager only. +func newTopic(destination string) *Topic { + return &Topic{ + destination: destination, + subs: list.New(), + } +} + +// Subscribe adds a subscription to a topic. Any message sent to the +// topic will be transmitted to the subscription's client until +// unsubscription occurs. +func (t *Topic) Subscribe(sub Subscription) { + t.subs.PushBack(sub) +} + +// Unsubscribe causes a subscription to be removed from the topic. +func (t *Topic) Unsubscribe(sub Subscription) { + for e := t.subs.Front(); e != nil; e = e.Next() { + if sub == e.Value.(Subscription) { + t.subs.Remove(e) + return + } + } +} + +// Enqueue send a message to the topic. All subscriptions receive a copy +// of the message. +func (t *Topic) Enqueue(f *frame.Frame) { + switch t.subs.Len() { + case 0: + // no subscription, so do nothing + + case 1: + // only one subscription, so can send the frame + // without copying + sub := t.subs.Front().Value.(Subscription) + sub.SendTopicFrame(f) + + default: + // more than one subscription, send clone for + // all subscriptions except the last, which can + // have the frame without copying + for e := t.subs.Front(); e != nil; e = e.Next() { + sub := e.Value.(Subscription) + if e.Next() == nil { + // the last in the list, send the frame + // without copying + sub.SendTopicFrame(f) + } else { + sub.SendTopicFrame(f.Clone()) + } + } + } +} diff --git a/backend/services/stomp/server/topic/topic_test.go b/backend/services/stomp/server/topic/topic_test.go new file mode 100644 index 0000000..863c0d1 --- /dev/null +++ b/backend/services/stomp/server/topic/topic_test.go @@ -0,0 +1,63 @@ +package topic + +import ( + "github.com/go-stomp/stomp/v3/frame" + . "gopkg.in/check.v1" +) + +type TopicSuite struct{} + +var _ = Suite(&TopicSuite{}) + +func (s *TopicSuite) TestTopicWithoutSubscription(c *C) { + topic := newTopic("destination") + + f := frame.New(frame.MESSAGE, + frame.Destination, "destination") + + topic.Enqueue(f) +} + +func (s *TopicSuite) TestTopicWithOneSubscription(c *C) { + sub := &fakeSubscription{} + + topic := newTopic("destination") + topic.Subscribe(sub) + + f := frame.New(frame.MESSAGE, + frame.Destination, "destination") + + topic.Enqueue(f) + + c.Assert(len(sub.Frames), Equals, 1) + c.Assert(sub.Frames[0], Equals, f) +} + +func (s *TopicSuite) TestTopicWithTwoSubscriptions(c *C) { + sub1 := &fakeSubscription{} + sub2 := &fakeSubscription{} + + topic := newTopic("destination") + topic.Subscribe(sub1) + topic.Subscribe(sub2) + + f := frame.New(frame.MESSAGE, + frame.Destination, "destination", + "xxx", "yyy") + + topic.Enqueue(f) + + c.Assert(len(sub1.Frames), Equals, 1) + c.Assert(len(sub2.Frames), Equals, 1) + c.Assert(sub1.Frames[0], Not(Equals), f) + c.Assert(sub2.Frames[0], Equals, f) +} + +type fakeSubscription struct { + // frames received by the subscription + Frames []*frame.Frame +} + +func (s *fakeSubscription) SendTopicFrame(f *frame.Frame) { + s.Frames = append(s.Frames, f) +} diff --git a/backend/services/stomp/stomp.go b/backend/services/stomp/stomp.go new file mode 100644 index 0000000..bbe0863 --- /dev/null +++ b/backend/services/stomp/stomp.go @@ -0,0 +1,26 @@ +/* +Package stomp provides operations that allow communication with a message broker that supports the STOMP protocol. +STOMP is the Streaming Text-Oriented Messaging Protocol. See http://stomp.github.com/ for more details. + +This package provides support for all STOMP protocol features in the STOMP protocol specifications, +versions 1.0, 1.1 and 1.2. These features including protocol negotiation, heart-beating, value encoding, +and graceful shutdown. + +Connecting to a STOMP server is achieved using the stomp.Dial function, or the stomp.Connect function. See +the examples section for a summary of how to use these functions. Both functions return a stomp.Conn object +for subsequent interaction with the STOMP server. + +Once a connection (stomp.Conn) is created, it can be used to send messages to the STOMP server, or create +subscriptions for receiving messages from the STOMP server. Transactions can be created to send multiple +messages and/ or acknowledge multiple received messages from the server in one, atomic transaction. The +examples section has examples of using subscriptions and transactions. + +The client program can instruct the stomp.Conn to gracefully disconnect from the STOMP server using the +Disconnect method. This will perform a graceful shutdown sequence as specified in the STOMP specification. + +Source code and other details for the project are available at GitHub: + + https://github.com/go-stomp/stomp + +*/ +package stomp diff --git a/backend/services/stomp/stomp_test.go b/backend/services/stomp/stomp_test.go new file mode 100644 index 0000000..f8feca0 --- /dev/null +++ b/backend/services/stomp/stomp_test.go @@ -0,0 +1,18 @@ +package stomp + +import ( + "testing" + + "gopkg.in/check.v1" +) + +// Runs all gocheck tests in this package. +// See other *_test.go files for gocheck tests. +func TestStomp(t *testing.T) { + check.Suite(&StompSuite{t}) + check.TestingT(t) +} + +type StompSuite struct { + t *testing.T +} diff --git a/backend/services/stomp/stompd/main.go b/backend/services/stomp/stompd/main.go new file mode 100644 index 0000000..8be250f --- /dev/null +++ b/backend/services/stomp/stompd/main.go @@ -0,0 +1,63 @@ +/* +A simple, stand-alone STOMP server. + +TODO: graceful shutdown + +TODO: UNIX daemon functionality + +TODO: Windows service functionality (if possible?) + +TODO: Logging options (syslog, windows event log) +*/ +package main + +import ( + "flag" + "fmt" + "log" + "net" + "os" + + "github.com/go-stomp/stomp/v3/server" +) + +// TODO: experimenting with ways to gracefully shutdown the server, +// at the moment it just dies ungracefully on SIGINT. + +/* + +func main() { + // create a channel for listening for termination signals + stopChannel := newStopChannel() + + for { + select { + case sig := <-stopChannel: + log.Println("received signal:", sig) + break + } + } + +} +*/ + +var listenAddr = flag.String("addr", ":61613", "Listen address") +var helpFlag = flag.Bool("help", false, "Show this help text") + +func main() { + flag.Parse() + if *helpFlag { + fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0]) + flag.PrintDefaults() + os.Exit(1) + } + + l, err := net.Listen("tcp", *listenAddr) + if err != nil { + log.Fatalf("failed to listen: %s", err.Error()) + } + defer func() { l.Close() }() + + log.Println("listening on", l.Addr().Network(), l.Addr().String()) + server.Serve(l) +} diff --git a/backend/services/stomp/stompd/signals.go b/backend/services/stomp/stompd/signals.go new file mode 100644 index 0000000..1b1abd1 --- /dev/null +++ b/backend/services/stomp/stompd/signals.go @@ -0,0 +1,19 @@ +package main + +import ( + "os" + "os/signal" +) + +// newStopChannel creates a channel for receiving signals +// for stopping the program. Calls an os-dependent setupStopSignals +// function. +func newStopChannel() chan os.Signal { + c := make(chan os.Signal, 2) + signal.Notify(c, os.Interrupt) + + // os dependent between windows and unix + setupStopSignals(c) + + return c +} diff --git a/backend/services/stomp/stompd/signals_unix.go b/backend/services/stomp/stompd/signals_unix.go new file mode 100644 index 0000000..4c060ca --- /dev/null +++ b/backend/services/stomp/stompd/signals_unix.go @@ -0,0 +1,17 @@ +package main + +import ( + "os" + "os/signal" + "syscall" +) + +// setupStopSignals sets up UNIX-specific signals for terminating +// the program +func setupStopSignals(signalChannel chan os.Signal) { + // TODO: not sure whether SIGHUP should be used here, only if not in + // daemon mode + signal.Notify(signalChannel, syscall.SIGHUP) + + signal.Notify(signalChannel, syscall.SIGTERM) +} diff --git a/backend/services/stomp/stompd/signals_windows.go b/backend/services/stomp/stompd/signals_windows.go new file mode 100644 index 0000000..1454a92 --- /dev/null +++ b/backend/services/stomp/stompd/signals_windows.go @@ -0,0 +1,13 @@ +package main + +import ( + "os" +) + +func signals(signalChannel chan os.Signal) { + // Windows has no other signals other than os.Interrupt + + // TODO: What might be good here is to simulate a signal + // if running as a Windows service and the stop request is + // received. Not sure how to do this though. +} diff --git a/backend/services/stomp/stompd/stompd b/backend/services/stomp/stompd/stompd new file mode 100755 index 0000000000000000000000000000000000000000..6a48d26052b4db35509cccf9769403f48067bd83 GIT binary patch literal 2679628 zcmeFa3w&Hvx%WS5(=wFM2~aRVfdNuYq+p5_5-Bk01$Np15h?^Ihd{XmsTkX&6fBrB zDRetjQBmO>)Ox%eJfd)Xu}ncFX=qdKg$foCE$Gobq-ePa1rFx_{XJ{%naLyt{J-z# zfBAewo7sEqwVwNW*0Y|q_S%oX_0r#Wi^a;u#$vHC{Hx$!r3(1ffBW;#%wUx>FeHi539I1Y}P%_ z-A7R3<*{yEj}HsPXFb9@|NPmF^BcoL{p@i3-SWT~$4bawe19it@hKhXpZ+`l{EIH= zyue+%`_bXGSGo3)yb3LbU!8yc74Ya-?dV)Qg1+|nA=Y3`*sOi$!FidhNc`;+KGV2~@NW81S){t6+6DWH3JZ4D+;r-^IkTH08|h72`{qb6+iI*ybRWsB z7|teIApf%(Pd_Ot9_823ci7Xr4|^65?~wn+7j|8G{sk9axcK6wyN35jzO{pwzb(0l z;4QlBii`DVSM)9JbozWG_Ws~qviO2e3*fHcZC&Z$ozRsO+Fkw^(RbMumwZN*b_MU+ zU%3vn-`j`o5|(T4&i$?@=K^uRZnd@Z|Hd{FAgl9Jcv? z^XKkwI6b`=4eG2_szg8i06!Hk)WlLWmDg-hdC`B7znfH4R(jd-d`;{_rG?y2&uCFW_+P#*_0PC!N$16%K5FJsw7cv=S3xvs z$hhf|{bFA@d%XE$-6ubIQ0(tg$Up!4rv&~ffqzQipAz_|1pX<3e@fv0=MuQs%T!ER z!>q?!-BaB+quq6o)VvMNbCy-cE24<^t=ey-sVewdb^YGJnOz;fX=lPnYK0`vUr=2c>|SU# zquT0&XY1?x7@3u>U_o`#%iQ6B`bTgja{bHWT!~u$@`@n2r7RZA@XKOgqbL?^nl#Qx z?wu}BA?VEXDV4$u(FQvB)vw2JXYh~k{6*ECm$^Kyix!pEc^OLYsJ=x~vj=xnuhI4D z+gw@tIAr?E;u5Phwc5)Z=w;4L4s8*bcynfKW=ULfi9=gn^tah9BEJg=BAUy)!%Ip3 zb^*>yUvT`f{*rjGV39}&C2f^LNh7(IGbZsYk|Y9_;H-`bPMDnFgh+yW@qQ-(&+{i& zx3^4*#Xc1eCchSooqe{qvNy3Z5XCSNN+x2hCS=Vdw5Yl@l3SbVhIdijNDQGgcY+x) zAy+Z|-msTNqVJ}ms)q#;_+g~nQLR|tf$z2YKd;`TU+jILPsxy1W%ajNA@aV75=|Yr zyg9s-=vQ%F5IqKYki@z?H1%gcB|<_4Sk;25yRL$=BzUpvnc&4Lf)Cb=)-*lf482&_ zYA#k>^Ioph{DRS&CtW|8jNRSgXg8!{&S_h`N!vI7LfTfnMQGGNLccAZAlLoJm{_px z6%ej?K;EOj;9!nBl>UBX2mL+0z5Wa3Q|5di8C%tlKk3{{KV!PadFco0`-5|aVzG_x zaar(E`?y#TujbEBKfs^g-Bun8#{Uu=pS_(w=YE4f$9x}<*lhjvMO~EposGkK|MV%# z{^AOZ&7kH>@;vID{^YPbPoL7erT}B(?CMGboPEu;tCDzvyH}~*?CKiNFE^hU(mKYd zFJbo^pD}i893r`aMR+#r-HY%>SYdbKd=bxlM!Q*Qb$RA=_d%)=4&d+Gkl%(?OO+p(@oFb`!FB(j}fFS18RjlYji3!YUy z?6|HmqwqI+>5UM)yt>|`Q1vfPdT8I7Ig)JQQnmsE%laMCI)^l|@&?L5te*2;h-1f& zKwOzetj0Abx(Z$iWvxcpwdXm?+KVXbD5h+eWEhWz$~0|47)eV(2&%9(7(q*&h;_8Q zvfw>vDKVEDKW*mH=4Cn=TQl>kJG@M@995`c#=ayHjPYBeUk!$JVL^RVkO~XDsGub* zXtjcAFL@1r=}dT;qhyT9%oTBdYCILcsNxT+xGwW471vvFPQ|q8K~tLlAd3~PmSLm4=qupbh{(?smE!!(xggLu2ilhG$57Y zT2!}HrJ&gHiM{Y=Ko4%cSmxBJ;pykjVJT8bKhRd%SE?3`>_7WaCRYSRWvxt`M~~PS8~7SgylpBJ)7ecPMVtp)$yd1{AhR6i9rYu6|2Ym6 z7O?<}Foaw!(^XsKhFg)5WYuPF_&$=jRH>xKbRmYq<6>R-Ya3Oq+4L!~qh-5pkPn`J z6iU($wD*hNn`X%Kh4c=GJjI3%^IPW4>b=mLrM|GBx@OhZ?wzsD4~r!p{0mCdAaRVB zS(+SrTBW#_5Mc)h2UnYPrV-7Jj_sbyB%cB{FT&PRz;>kI^59*ujR9M3GVv`En7-oe zyB7>?>pDfqiw0U*aIp|Cx+IT$kIbyNVf;<^Td~ebCUk!fe^xyBAu9m6{=Y|n-}>ws zZ*r*szscoih0132_N(7*c5&``lOt)5-I)lCcj){afD*nYdZ zOXkMvUVd>+oA`lYEu^Ru)i;jpM0Z$l3Z-EQx@T)HwsXwe^Kc1&j>vrS<-`Q15a)+@k8r(i&e?jr8^!g_pCdQ{a-1 zcOD!|!DXl)nS8LQ;JgFGgN5b$fD=!f^!)kNDL~6Hw$PDBIFWrFipt>9w_qq!Q7!+R zrngS?{AO%XFwzfH_G1=PvVTILVYK3Sa?c7jVZmJ6C5~z@Q$D5T<%440@g3ylJ6nj1 zs)IJnB6#URaA6xN4^CCd#D`po>v!nqn0;YoIgUZW)h3p2hKv917bzKqoj+b&79)uK zL_Ubz(*==b{lWf!vj9?$%7P~PJQ131#*|8Z4@ZBMB#QtMF+z`5B7Bt~bR-;HFu~pK zs)Cm$POJ<*{(h<@gMHplwYp$Coe8c-Ski@XEjtl?DKGO;MR#1{{r15_HS{G`o?w$9 z!b!g?=AS|rz}h_jlQDlzJUIH3W%4^o!obAJeO1xG5E~YQvfBvU3lhfa(ZT&;ei68J zq0~}@n#tkdxQ)PF|1RKeE`aO0Afl{pI4Eu%sIH@TMb#-qVD=Q4x{YJY%!0xjXHM_) zro`e07MlDaLw!*((_q)Jax<&$Ex2dhC%@)gQkZ&}KBe_lSKuZe-+oK}U4vxgrsusu zN&11hQX9SW|2D?TQ;RVkIRfKLuY=J!5e;wh0x7(JHyRbsUl`e)4eSck?mP4cXMXBC zS9BrHzsHtNPpq92^Ac-&J^vYRTA$}{^48tI@Jshy{@2rEf*kkWxQIW@M20qaLyxJ= zm5(Sytn;Q-nRZGfz06_6cIG1`qTrO|RpT{0)D_=2UJ6Yz$JpZek9z(SszlgbKEdYfRg_#<%5h;U^bs?6^12hls{ zkKkxG;c=KU6Gr0sm9>B;FGS>JcK6;7s;`Vh#mpv;3rq4wV!Ol|S^mH>jiBU zU3fVheddffH=Pp*A<&4lW-1(fxkPdM85j$x=Sy)|TctOk84x4&%(&w>vxnzT@GN&Q zcZ7JKv$;Pp!>ftPGP4;jc269&sTldyuQ~L8EkVB~YWzynn2X&nd7rH>RO|G11g`NJ z^CMt<0_KysCwL{~PK~bLUHw}}+^3xvQUb2%auMaI2CNHh#;Y`I{iEjDNu;iL-k7eKc`Y&^ecj z4esWpu8&?l4VyAQiH%L$wC;yr{QQ6F_tB;It}k+|s2oq~#<}1c@~-kY16SYeO?z;# zw}gmEjtJz}jJNkUL3bJdj0k=og@vH=Os+PBcQ19FaPrM2EL7@BVc&imL}W z$`M6%{lVa?j-p>&eY+@HTSC!w%9EtGC!M$T%UvL5CTS=cmMVk)vN@65@yH74UKFfK zH>#4{eF=u-`@!(5cg28;h2hR!VEAR28NfE9ezjlNuflFMFtehlchR~0x$(@r3V&`z zDYc6Q%j6*;A_C(%(-`*_GL+!ly-b;-X8z96`E76zXsq-Jy`@!TrEnA$Co(LO!Bx7| z^BGkZGGH52#&9v|Ww3bsT5zcYUtdb#rgNfxs1ZxVpfk}YFu~V;fwtB6N|f+#Y6UGt zB1#Mw5re2akCRPl^96aN8tvsHD?mCIq#7qLI2WWCUD9=f5ytvqBAlAthD8zb|l<)R_kwF%kQkKn|C}Kj?tZa739HM+#!iIqxorihS$Q z1aast1QE3U>nX+b%ctDVaOw?p zuc6zsnowO-nCad|Az@^!YiYh}p}Y92^w=I~an>FfFn`q=9%PrCKx6t^JrmX>1%;|! zCdGV@9D?SuHB5eogt;sa%3G~2;(L|B)W?AV&#e-iF4|o0y$^namq@g9FNfsL;|fg$ z+L{yN)T%|jcf2U+np{-J1~$O&3spFQmi}yeB$xmEZ&H50GG@e;XGw$u&nzpF%Yeyc zI7b5}K$VrMrk=K_hCU!#;5unstEz|iyYF>s^2lJpvs_a$@8U<9YrW0<7;vq5Zj4lu zd#0&_$gXo@_NIuL=l&Rr1sjoJcISzplgK4;;m)^@l;Mf2x=ssp+$X)W9&VqGTK)A8AzMxwqNl={x59#^q@n}gOM+`e*SpQZZgJUZxMC>kNO`_y zlIeG1%PYKv8@z@f(F3iqZ0gmpYyAd{Zi=j|_I(}?{jKS3yD4Q=G1MPjcfBTQ;h#^c z^xpVyq8`bu##^|>D|<*|TaY{o*6=de$9f{#%1eBYUOo?d@G28)=N+`lW0Kcg-R67c z=^0ZhwQs%igzSQl45ihmKFj(PYMNzs#AIpKL7?S^5g;?Ooa^df>5oORh6I1JS-uek zy@~6ONB3UlOrXq%xPe}o!n7y7H*7|`A#uYv?sHZAF}W5x$7N@jUhwqRYc<|U^)}#r zO{NUuI&h5`?HXJ|M6LBBJXCwEYlg?-AS1s(ViI|ix?~{LQC_gHb>B7KS9K%t;0F(d z283)n$)UwM#|2-ZEHA2g*=!^#1n*2YSagRZ(Oli0xQCd)=EBajJ3`ZLM3kw@q0QMR zB6a`mM`|Jn>0XQjSAH1lRkE3OQVSDi#F%>fLH^;>XJad6uZ6bqljlP!GjqyK-fNgk zxn^AtX6D2)r<6BrN?i9dIFc-u#X1iv2Id1yxR-4V!Q@5bFNV*qGv@s1&qAP?xM}n^!+AKS5ADUT};s0|HPSmi&#NyRmPJ6|m3dr@NL+W#3E%03r$yAS*>e4P6h<&j^g za9hG`eBODgxuCWp2k>S3N!|feWvjw&n3qUAxcqj&BE^naSCg0id3Co0(24E!*rn@d zZM$|sM;J)wf)0;rJNS{^jSU&=$b^0V$K){R>+1hEoSyIhomYnDSYjV&(isT)QpO)4 z75c^^G@GZI;US_L^KdIku}&*pMLSVf|OUcp0)NaQ#5uKwp!1+h7t^kQd8^~P*)3Q^f`F|J08LGJ^l#os?&CCDL^==DFb zX|MUtvxfJyydRMsExw>0eBI6{bi%T2>^#$KpY}Tl=AfS_so~WOM zJpe~!ovdZJJ&!Qs_w`A>26%O?xul1B?U6SXV6Btv0%PdUD7Pi7R_5+ z8>`8J-E0Mr#ck9$X^k(?B2Jow8jU^C+M?=hT2{%Nk|GXgepVh=ck@}YgN|0~_AW$- zNKo{c4EA%NJb_9HidC)GXb9vc14idq7Y8v7%7bq{BmR|fE!!M+Xy|mLw}fbv_@Z)E zaK+z@(9}pS!>Z60N+v>0j2m*E46b@J8@L89B zLrIyrz(c+ASEn8dAtJ&Q4Y`ANiiR?wsh1>j%ZM3eU+c=b8>Yoy{~AFp+yssaY_ty= z>V0&GIO4%LDw}ncF#haG#&|tKPfdF={dU>4<^FGm9`c{)dw#6{n=-o?<1We`O!u{V z3m-H(e~@H-SWAU||0RA6Q4a&OxA0M~@A>g&rs>`)&u3<}aD(P$6d@N9>Cl8>RpkSW z4`i0Ef*OYw%9Nhx3|?hhBw zG0k9-Y(`7mGi!{$K5@_3hV>Zs?8P6*J|6k5X}=;gqRi^~PYm^4;?Eo7Eqo|c#U6M~ zR6);S9?ZPBMi;G`&-1&C3G>k?uMUZGOAqtts?E4s->c6n>B#Jh#Y)2dYeLD+OzMIe z%gm$sO$IIBGSzvdyeyh+ywu69v9$jBv}cJ2#x(RVN#fgN9nWZB)(Ab$YuM4180vS= z7jHA0#WbcCR}`-NVDRfE5#LFPfFrD_BNjzoniZmFQJ)I+iF?i+<8K{$7=%kta=P0-5=V3A^iAQRu$eAa) z&}8vO)9$df3~KFkTd|H8y(_jyVdPB$q}`ZzRCjZk57ze#{&=sRx!$(&%VU3%1e9jmx@45^c$BfB#E;uto2zIb|HItFvLJ1yNQra zd(wYws1Nx}CEYRA|8-Q~%Y2g2uHxzh3&B3!UYk|QucGC0ZihBH6pOz(O|#!I4FgMN z`fr-Ox*)PSldAXsuB`_mQ}*#PPJd@}LvMm4k+^Y%&3D%Rh_>)3^=BnssiF=xkCUf$j!ZK5? z?QYPhnQ>8;j3u~oFRXyZDOUUSThC54nMD7z*A4B)CFeU889$~X$4j0OhL-kZ!L9i5 z{B@>j8L6^7dyk@bWA9sBNIh`1aq)MkUhZa#?={W+j9Hw`=}ZKlW5OAnl$ENAIQo-< zt57=y*b3PYO-o))Em9L(P25=GlyaQX21k0C7G@#RNm*j$6Uf4asdXl=?N|nV5(PW` z=e2W}8$Wop$rRJ9!Bx&K^9i&(zq*wipFBY_yEN=K!E=v^avnLa7y`^Y#G|t}<$IWR zw*jP5AaR6^b+D2QPQFzD42dH~Pe9VO7b|I`M)7pJ=}M}V$;?ACxhHL|uo)wSE)3wn z5{7ag*3fVBQRCQ#%-~Gbvaaed0|94g9NFAcmVW9s}h(#HIQO)DM(g1ULf$Lq&;}LDp zL%z;D`u+m}&e0r7=5ZI#a>v@8xUhUR`nLk<- zqsNG)h||1^b6FV~DOKY=N^LA<1S*D>Bh_qnjw+41%4B zUVF31FL=UI=ap%6mUHB=+=NPv7vNx*{ibC8!D)>wLmU(V`w+ma?#7uD@Y#hl`d>8+p;z7vfE$2^ znI|S=uKWX1e*x*vl**MPAkG|UbkkdTo4Ma7adcm4>2yjB@8B0o82>dMtLlwf3#%M_y`=sZRX^OgTqjSY z4TEuw8IH}l_=7z%GvnH6Ig?*@RS@E_|n)JObCc;lL~tBA`wCP|m`|IdRkqhkh#{bi>{PbxYPl z6E~hihxLP7(=Y5+wwXA#cC);}%Gs1^=FF_UU7e;r{mw<#?w!3V+RN|>9Ed>NHwl%c z-$^FEG{NAM^*Ts>JI9vwr~50?{qeFvf9r7Yo%;X#AiX6{d$vUp~m2vK>S zzm>hY8)Ny46;a7{-fT(tBlwaE#PJ{HL43pmKPvgN31J;{Ona~)cg_A$c^=32(|z%V z-10w5PiCS1e`wy@2N@6dKI5-el|A^K7U%JXkt6W26e9Rr7H1o(z zozk%uPs`~6%lOs1sZ}iXcUE`}TRV5N&YujoslLX;YuU~kbWO+-e@JRc?K^&hs-;CG z^d9X<06Fy5ITC7ZU}LV6o4(@tAp+YKZ|ZN?K}D7Dad9xk0#%mVa1_-<6qTU))kjS% z^#szM`gkg__S|xm=fCW4-LlPJ?>~3>O9@~m6ToZ;u1WY$`7awUJf+wV7@DhVx0bE< zpTL9FrTggr^sUeDN#E+^l}mC~tK$4^Uga^FV;@aoZBzLwZw!~oRo+;Bs>#KadkcA! zu7bAgV*qXqgAq5xV)VFpaKy*tfvlL_eI+a$;8?&rg}IQbY0uu9gk0tNC;QKoJz+gM z@V4xf!|EJUw&jVp(wN#@bLXj^*u%pWoX**su=R$y;V91LG@z zJQ$$FXG-Y!%F!muIyzq}{Z{;%ara6Q{-mOG^HFT8hr5)ZV$HC(dNvszikO*;J+3N) z$+9$i6^6w0s&mSbQO&Bk;~1;Uv9Nuz_0iD$kv>ccboD$M$3(G)hbKo5_bz(KG%vnn z57jz;2%5TPx~haIF$)6RT_u93>(8DUA^Kr& zNX6g}OC-`g%_Pz>JM+D8Y0ze=Zb^pSCS%gQ@kYPb?`url`G_eABhdQ}8=BcHNrke+ z+C9oPHQtwkqQ=_(*?8~y6shV!uXU&`+q@xVG8-{fg;s|-6(X$6I6kE16H$2)5`>lx^nyqNiUtZnJzp2d)4`0bvbR3d~ ztTFbGMShJUwK*gC?&@x+vq1q!8q4eXR~f9w9A=~EMX0jb1PRsAa+GmNx`pA!-+BZ# zP-X@p=Xo4tT*>w$mZ*rWK1&s^_L;#9*ifLV91cpY|NoW=vp0a z*id-fHaY>2H=}GoqFDJi7eaOPdkdSZ=X+ZMTC|A4LlN)8Uaf@e_vMygn@#F3K@*u) zJ$sxzTZtR~M03e{bvavI`-cW3zuf&48vSqD?Xk2iSP1sM*=7AYKZ2R8*nSscY-XKq zlf;?1yLubHjfu5oecQ%Rx|zGOK7Uhs(-^;}`VQ_g?x%0(m~|;`Yy12g-Dw^R!(X=} z$-_iwv4$$mH0kAcPGW7Uyivx-dm*7S8`?yr9v(I=?DhOtyjnJ*Khf-OGDp;~u@fU8 zWP1}M_?xCw{@K7?6nc7Cz}6y18lLR%eRj z7l=Pe@HVZUjNSBC&W0JXpD=^@J5iz<-tFlVf;MIS4!_xCVu>JSSXT*b!*feKcmpG~Q6%2g7r1nvV z6IZWJTNzvrwq4_Jv^r~prH#gZPL>A8)DYK1dDYW8}(FQ+7=Bof*xpJEx#r2@ZTYaO;adJ}^jA1O$ z;4?9MapX5YYx{J1!b*$<$ZMNWVwfg$74%XdYc;Wa<|rvau^mrbH%VcGSgNC3Qa!+4 zez`z3Orr+O0gqrgjsE(`_m;6V4(ECi2an>VA3TwpSS}+GVH1I0TbQfJZKhzDcMI1vdOmF4&6Gj!y~UUhdqjpkm*il3apr%8q8!m7`_)!J(hOO#&{VAPd>prj)N8w zHw^GN8qj*aV>gkZ;<>=LMr9angqusO9k(7@yK%q`)@~zVJ2TnH|iMC4szffL{Z{L-G+;HMW3a<*QBC%9l`!?-uZ_r1=Q!KCT2qzN3=TT#BW@&Mg zixGfnbQVk_cZ`hUxK4zbKEeW(C?LsA;8qeQ+Tq>*+?VLi(|U8)@Ka(dk9_d|W46-w z|D>(V0htBF?`klzsP`}!H|zX=#zHQUg}DBl8qc2U56X+V`=;Hz#9C+d<|6SEI!GZj zxX2eV)Hs{6QTEtZoo5k*p)2cPr=r3DuJTk z3E6tk1YT{x2Aofe<^#R{#@RlT zlH2THxX=l?)mL+m9TG5q#xj+Q98uSy3J}cWJK_>+cO$efb6n+gq=o0Zji`zHPjlXi zSf>NGKcUHA-^?5ExGZvKB;!`jAqH0oA-QgUFM_!}q*q(vv)NuR?3T0_7Mt{%c`J)uyHneVyz&rx7_DZ^sYfM z6DkIwStnjloBV)S6a4m-Q6L^Eh!&3f&)}Dr^RKzNf!PV6U?)2T%G9>CnRiz4)rsq# zHXfd9#EVaR-OHRzh`8ZOUVL_^8g!i_Nf9Yp`BDx}+>+}R0>*-_S2VY?ah4%k-9jmn z+O6U{c=>PzjG&AxRO`*^BsNgzmJ3E`JQ_esjE2E#s89A&%M@f&V(n>Tt!FZKOfNFk z?}!W~(Q~f(?uVmc&EL>C)SLS#g&TXSzY0Qz9Cs0EYK>8mN(~#HH>psRhdWtX@}o~) zI~i+&{51+iie%_nt}&Zg&aRm4{<)*0^H71()YL`F#lzEz2h8NiEOaG8n+dz_DJq-o z2C;>`>arT#we`({%|2ot)JsCbb-%<7m8O5>!MZxsHOmHaZypyr>DYmX!#=h&lvF5_h#dtuw%_`kW_19=BoH9nNL(TYBwS_ zdijG@O{>dy$6)Gl=!v!C@pff>zeqt=?W2jc6AMn0zzjug#@h2?Su<-Z{+oHHI1wnA z;0Dis86LTsN0(!Rp!R)*v;L!+>7ba>9EzADj%#k%eC6KCtb}nL`LKo!OMkC3vCwx`x)n&P|-*ksG!Zy-WOnQ$?y9XR&fKeb}uB&QyqRgla{Xu~aX=Jgi% zvQ~ketwpA3Lzz<}nPT6PhGfdNuI7wh5!3{B180x05+BavYai0w8pp8m>%+_ z%r%H+D3<8?tSd@fFUP~{aUya-V(m$jX2iN0H=ZPxW%ABP2EEXK3iu3b%^a-am9|<-0METcBoSaPaG?yh58DMH;ZsY39@<>|BYs zINicOwF><;E!~_<@+tJIY47E|i6;NW zrrPzEF?*3|aC7Egn6l4`H#MwZQr^tj9nB3-DSrRBbk{kqsp0J<~Y!08Gs8jEp5mq{zWQ zNp%{ZrJDy{Rf|Px!E%l5pmn}QGvecWskU_YjWfrW-50kOwngHU%2jiBOTQf_WSGAk zPj*TrkP6%EkNHnJE008a>#CW%Nm67!c9U0?&liCmHdY7!@h5qY`5|`pY)rD3S7&4o zdn4T2N!?b}r4`#MxIlVtu8!*5##|U}L?sHS)-Dz|YLe!CmF#m7*DY|J`vYcHVpoq; znUn!#84jgHY+ox>2A9iFfm#Qw5ih5H-!(*PmOk`Qi25uu{?-@=dl`uu8#QDa^@V{B zS}_?7iiknmX5{5zJ$g6w^)FFI^%Me!8OzBz!VrXsFU-5JX~a~AI4U=|mJF!rABim2J1Ma?h(<%nD} z6C;M&s8UHluLrM+nmzp)O~D{~6@=_u0wFg=k95|lnSnM^h%qx7pePSJnzXk3KwNdI z-w?WbWjkz;J%!s5@6VXvx})RV@3Jh_1s$7s3MuG@rGM zXFrOb?Pkx6z~RF4Mibsoqh_105Xe!QHxLzXXJ)2MTY9PH^F=mEUu#!i(;FzzhI5rpRjVP?1(O&#`+_TyDOC%2rKqJ-`f9Njqh<$5DzVzxix z^oH+}6DatKhcaSZo3gt;B#_A7nIfpnfzj!J- zks#0hyOU=Vqi0{!v$Wm~%FF{{_$t-d?P_5uRXiEl4VMJN+yrAnPRDja zAbNJ8J<}*zqFR8DRPDm3*%4}%9=ZACPWF(QEKT07bMBM9IBNFdw?&DmBJ2-xBA*Cl zthf4{ov4&Etr@l5Gfl1tPvwK3BmitcN7O(E1wB3ZvfduF>S#S!|8oAWEHCYgvpo@ym6thbBS54* zTW!|;t04P<4J8%G786@soO-9=QeW=#VDYRA5imOmmc)2e_KnT~qSq9%9kZ z)dJqVOym2M6w8pYe{8}lw4lI^aW!@YN*QF-`xI#@s5XBs;AMkZnT$91N{Q92*b`|Y zIwrJijoTf9Y#x^1bW3+>6<2M%)KVuD?NS~6z`YHMyagB9<`x{y-@b{I#)j0S!q$dB z7F*x7Pj=Fqp*KB%68vc$?H!W%xXVo$p8|Wj`KKK5(%pk7BF0iD0sGqh~(~pS1{l@OwS`MD*-S zdX{#F-&7PIa>4c{gq_T0e^r<|)#S-CvMYnHxz;1*ruRmzd*7|~StDDc(QR&HPq#p< z*p6c-8}U7NS~@x7+quu2Z26^wvztQb!G-@ivKC*S(R#f8YeF#0yQ23{R;DTAw1TXj zac+g>_}6faU7yD5)8*BAphgkHC))+;3FEVR2_hMs_D#l+pF1?{&e+Lp(?mRXZ>J2Z z73(v2^NW-huw~97X-Mbx`}&?QFY7CND6@Xrlj~k)dE$+ivEt4-)1GWhzcpqyJ2b?} zHCJ<|T_AZpd(k;?&z%H2Pwl7|a{SFnKP598N^CZp2Gms9c1ccgJ?EQt9-`%yhMhVn zbry-1ZHb<*THJLmotWcKpKlymUyOPA^_kOnv21L*FR2WtusrfiLE@uf@l8an&3;?l z^Z(ALQd$6^+^F(+P0HadVq{8hz@&*Ylxw^EL5#}QqMQ7_=7!%bsU;bT<&(fW6B-{) zT<60rz?EGEwE^wP+*Pd13m;VzuJM$T3fP9_r0yh?B(tnx>lu+WW`DS{vE zUdEYak@8j}R1ww6s=g+@!|a1ST`L|~14rX%-B#&<(q?hHBF%p4Mv zo4fvEvSvlx42d0GJ4s;P<=rZWnp6~`ZC!M53t8CnQ%)xT6z;tw@~X=1)QAItt(;dO zLiY2fJ!|&`8GMH-W)%Ar=zla3GOtu`NNkCh)%USn;9)`9Cy;Uzc$KS2zZJjoaL+HD zpWr&28&be+aTo@Qih0%NiRZ!RcyRU(95iY1e;9oLUn0ooDRALdCqDSUN+|onZbljY zS95o>5f=gR=0WCkAQMi^zEj12~^r(079LrT5;Ahf{N z^upMcY)L4ST~jf~UT|9^Iu-nt1-$!j!JM(22V3I;62drz#E!X9gI~xC)hG8A9cnOQ zD|FR(6Mc)=Y8A_E8iU2Q#~T2lQMVKBK<`ah$l&z75-ke;lQNdpIjL|J={*>;*B+f0BOHG?}!fc%NQ-KdwQI#rSOo*>bQeA1*=HJse$#q;rk~+lg<~%rAr& z?OLr2zHR{5i#4s8<*5`A1m$gP{?$P`P}*vgMkMQ5Z19B=B64NMGq$2Vr7&p${ivS8 zMBzf|!nr@PfY4pUZywzqA6n_$1-7ovi)CUcI;&FoJ{b{|$Dz`u2*Eu%VTVT@o-a;D zWbf)7!8HPg+jfr0C;(y@a#!lgl*j%IH)R@eTJf7PWBfhfz+DLE0q3Vjz`57KNvaR? z3g%=t>4F_El71>Qm?Q>c>j<#S1;jJB7WDc{&A2fXOpOK2%HePZ@7F#4HI%kD_>&Sv zP81z0ws(U}n_6ztuO?q%+@o^v^VYwmh)llobzZ<2w;GgK`EP0gzb4e|I~Ih=^Q~7Z ziSkq=Y$}8u-o%cuLv)!Yq-h&bs%!wDS~7UVGEqg%O`dT31YR{EL6d%}81?iECNT<3sa2<)YL}~2| zsB!Q3XJ)W+P@=W{p3*E&TB{iR-_qKCYL2nxl|DjifBN$1TKnw^wG4N5bYQh-IgMFt zbJj48NjFYoMe4(JX0j7UYa(aS|CgEairS&PLc1bOhV2G7mh_AGJ0Qs)!Ou4J`uq!e z(r!(x_$9osU%Czo?-u>4&xV?=478IEvPMjmzw}2Mfd&NiL+nWAA?PawE~oHb!%xeoO{xk8Rl3t}llFI^HW` z;1FfEYY#vEqpm>Svc~s8fWHQ~Ld~ID8Vf_ZJ8$;FSILC??z;-?=B~6< zLB#Wy)@T&Z^PA{V{E_<tL%tO1)an#^PNdMeVa)BsI#no`Q*);% zu&k@b^QWTcym|}AXawhgMcni`8%u9P7}OQ-^1SqaCmIv|kzwVV#X3OY^i((CoMnthXRQ|x|91YCDMK4bt6FsK#gYE|3RC);5}#Aq7SBvdQ4FbS>{AXAe)#? zJf!k z?TKnI%5al({G}wGme@7>h$PRG#^m*Bk&;qIWBm??a#*Jp>$KiA>-&I?-F3#fXWJHy z^E)HXe~9T0M_S7HoVBr7kdw{Rw_9wj&_YczPnZ1IM6~>ad5Q~-3z8@YfT0M!8$zig z>yWtd2MG9G8$SFqAq^P}{(77B&wLABo$H#Cf9yI2p3KcfCi9*EFB7QqXyX5ty4pY= zeVHzfRsZ-7BOKTJSR{xwidj`VTlQ?|jaO5Y`<&X;uFvhkFSv_S^q0P-ChUh{iylKt zCok$QVoc!F3DU{rFcQjW&|6YY?!%b!{xob_GG1S~nOEV}-eXnVd*;|_d#v*V>@bfnWgj{L zEZDmaiayX)cF$IU8@geeer)ruHo016j{Fb%RN_Icy|obu$;OBg(cWIK(www|Ub-?d zLOntydHWkXFoQJj-a~yHknx72JH%gm`3Uma^uF-%#GU1M`m!W!M8}aUIYVAl z@XCH+XlsArq_kR6BD6Z5IbUq?l!8lN_*kZVwW%KyMrf0Q-^v{z3CwGy!8kq^OU4#o zG40v(+s9vXsop7*ndNb3yb5NG*EXi#EW0-0Z(6}<80$`N9eQFXnKXZ@4IOUm)Q~~& zGlPGVg02V+q|Y$bkhow2<`9P{9KZb5(S$MoWfO*lR4GSJb16B(r*VQmHSo)iefil? zjtNnwKsnu9@<6HrYB`xuIPV7Mh~#K)hvBSL^(t&SsXT=3&Bk;7Wi}7>fRc9erN33l zC~@nL92iJfx0KgCRY@5DrrhRPoI}+dK_jW7G3_HBv0(6dnMGLC#Ytim{h2eJ1cl`) zk?vlqQwE%8S8*@Zfx%oQ@<$B!SwzX_m3fuZyN1s_Oy#tud`(EGK^~K>cTEi!`D?$~ zs|u=lWgZ_j(PJFkRJQn&0L-Bn>L2`8iIe(|zXBjXq}v{Lc$|)W#9p{XT#@u_WzJeE zhi2A!88+RbsieI)I+sv`G_X27!kDj-78d_~mRMAqP~^Jd5jqdbOdV>kcZLWBN=W)( zo+P#RQNn}ao&}2MT8cmKtBPp#X0 zL=q|DWog~wfZg(Oo>>^i4|F7Yc!ij*SqGzuoglMIvmw%%*)+g9O8 z1ewO9yB5O6kBAtpPQX#2-hkW+aY|ziKU8o{raeieskU&a0Z_GCv#*Y znY*l$kr0_yz>*(LyCf@P9YTW1+CXL_094;Tg=s2GI7KqKbw`DN^fr$Ssjv3aHiQ1 zcXBtdv08mo_Nc1`x?&fcEi>RKf>ws}yjg%|K`5TMaCVS1kds6JlO)KX{%ElI1J((6 zWh+9tH+u+JO-^g;f4Uc)Z{WqOP-8aoC#l+|A&4^`Af``ElZrG{=dWEXUzUxea!ADYTSuoQQue`YQvl1OQD(j^66^wu_ zzmukP9F)WkiJS#cla_V6aV4Ry8$*c3#iVtpV2Fz<#5`H`f<zT)bz-~ z;I}UtwxrlV>P{k#)a*E+K^(zLW_BaPbXtEA`}ueQRG3M3Q*BnXNJar00kGkgnO zTWobiA}8uB@50_{b4MdnI(s^(COnoKL*aoU<@xxm;nLfCm(n{*;I(SD(>_2|$AWy# zlVNnYei_e}2_&&`>>bz)948HN9B6T|8^To7x2>Gom0sB<(Z_ILacZGdVz9AZ z+ue#m2=Y+ZxS@HI2fsJ8fe>yoRPt`#_-QZcW@w`$>BdiEW!c-KQ^wX^iIeBCoM%n0 zoo6MM{FT7*-Hb(~6z-5}ND2DA6OasEWJ~MZ6LtkR`-3+-<$~d!$ zJ|~cExiuq);k*7DjvR(bE4%`TQixnGprMVxseZb9k!a3H@-c|F4oSZ-w(JScUn$$f zyI~D|%Xx#1R!1vO4;vuYLajsri|8{988nu*Qc@NCSqJ923gy+&7#a_}4;54YTclE; zzQmu*{G*8-A%$XZ{YS(OVTk=dbE3kmj`2X&X0AA~7E3d6v%9}eMODF3EVDDrpPVN; zI05RkCUbJZf3;Y+-!4crGrl$c*ZcVc6GklFw*A4_!1Jfy+AFbI$uY(yoK^J2hR{-= z_J0EGQ7+aJA>+NwZ$FkdVdM62 z@gE{!d6NXuMK6K~B8JwBrW+T@4{8=5TdcA33vfy(uYPEA-sKPes6;UlyQsHW7{Xn3_e?vwgC++#8Pf zPj)!2>WoBMYf7g#yoC8MuHX>i*d$LqSI-2}CVfVwh@r`ZTHd=1DYMz!hy|(Bo)@b8 z0khPt)oYnBWK*ExaRX;~yW3oPfEumXz7=WdqYT^Zx2HPL?{V%ou~G+_>!VgG<;BQx z+%|J=r$@@HnbRvaS)=kPEtW!aCq87#r_}7_JXUMCTd)3fhn^#r8QO$9n8} zT_tMy&&#;$JU{8Xt<;@vqSK7-vipjMnj4;3e2sUUJI`Xt5}kOE-nO&J@AWtcZZnmd zYqxrwtg7j1Ur^3KKepNby;sY8WMHS4ej(vycB3P*Yg2EsGYOeerY!}iI??lmF;GHA z3`%biI&;zHX%7X9z76r5iibj4OKHBY**X=6OPo&Zajd=sfXfW*a~3NekoxFt6np|P z>C6+;iT1b>E5%vFcQrB{7#R5)8%I``gSfYnQ$d>2>vx)Fn%K)Q^q5l)$ zZn~-^t2XJW`krJgGjqD&G6ACt*|gZHA=jx9aPIVQ9xc~`-~x!tox>9iQ>}b?;kRNG zf0gCe&67D?aCi0q1>O`Dn7~%PY%Ts?zH|cCF%?^iU3satk*crMb0+hOzyBTaEt$-@ z0npED)>sx_^zeo@8vQx@CcL)zG7>Y3k#JIGxK21a#ZW2@Q^Rz369u+8_+t-@mBQHd z#eCa`iv(NTRw7+pz9Vd&J4b5Dd}IWB81tdb2z2scl^ElUmNkZb2AzKq{hqDOH>m)* z+{?uzY`j&^OT?QITwfYO}#%A6Be%Lv{~2QgD& zqu(gjqAgL0p2KXY$K5q-NL;sXbc0xG$(U_2H>Fcd-X^rj%&b?JS@~BBGiYKawjs2- z6Px@1j1fWauS>fAnA3MfFxr+TeG29#p~6@z!u<4u;-fau9O7j&UBwBQ@Egx-3X+8L z=GEn62GbT{RpvV&&Qale>Qv`Jp3uC#QE1;FR@Hv@LQe# zZqFB=rIPz@Pxf*_KBsO5&5f5iMH|8(&c84 za60CO!Mi|DXkgySp2#}^gzi8eY;{c_E^5-1%07^{gS)G{^+c;JPI{}$*E@q)^3l9R zSjf>?pH>qQw+eKT=lhL02zG9A8b&bqym9%E#jkK+V5a}#f&NK^2(JM=oE5V?v7jG&=ZfCEEr@aB7kiwAPlizET_s_;cnF4 zTQM~ctAORU-%G$mow>y_0?|J`8;@xC@pF0#o1?H)sMQLLY*p0eDr*yRhgr)MsTy=^Nfn-x^?vdvH|Xi6q@am+o)!7wNZxsJ0TPIY4AQs6NZvlR zo>8E!0Oxwsp+*4BX$s|6P_FGW#WZwvLy$;5&c(mc(LZ(l#6D9eT$9Kuk1dOy4(`ET zl}@^5x8Q`YbNAEiMd8Cw{D#}_7Em2Mj1>eQ^{HLa{G=&(B+d6yp8NVpqnhxPsg&;t zmsdkWEZFydqzzj+BkUs=^8|~zy#$oxHfl+v@uQiU^NBTzexxMJvDrfCL#_yY`CAFt zrV}b7^2*>9*v^D+X_ql&m~cpu#^(J-NG+;~7|c73f-qi}Fn|Hpks0Z^zcNPJRH4Jm zwBm*Bq7oY}cW?DIP>@*p09-0#)5lwu=;D zt|lYeLlG9WGDUQiQsG65mm9=FjQopzf;c}Ke2&@9MvsEgi&aoZSoUgG{n zj*S_c_!3`cMEo4O#EvGWe2Q`GbATHWX7-YhD2cH~O-vTY9l@h(BYLlE6TM1!PEABB?i(>Bp;WA{)jG z@!;vdI@`cz;)Z}MwsQ*7x*MN`5gyGSmPZKB0O8>3qJBnT521Wb;iicC2hPt^FPcL_ z;=!@zZK#}^5?W^dVU2*qLw}?iW2uqeS>E|fdgu7WN-cBdbaH5krOw<8CLQ{MtXgHD zQA*V8lRmCahq27oRaLN=+#JbFoiJpZ>dUKLb~M;q1cybsXmbYo9Eoj9ceeCr*F^72 z-uRRxH+jnKD#%Qla+67(8R%J=S(TZ2lX#8j6s@q3HFvLn@_`qr!?hUFX?D$YZFUqu z7pI1Ww0rRainpFFWH?D4YV`k@5>g6jU^4j2ABsru*AJv7{ZM`(G6PbKij0gt_78Dw zH2UXoy(QO%WD8=%H|}sbqMIKB#ER`V8Kf}u#xz@l1?qlWA?5NZEgGohb(C&U-Trk} z1X(6C%?}jolYn5XK>R`Maoyc!rR)*AH#3WQUs)Hgxz0*CKedFJjg`i_Zllzu2&7{& zXH19l#L9ztOmUclu=zm;iJxw;(6RJ}tS%Sq20cWPFg z{%>}REy6g-k`l$Iyv+FFbBC^qp&JcuQ`yeJ+ca3%96|`gIYcLc_oKtJ8yp09==ec0 z6Qj*I<3szq`0rWbFF8tP6`&-15p@}|)THYnyAb68Fv z+?&x~6P@7*2Ui!^vH8$G_=@6crXwjVZ%K)j$~NVGD2f(7R5U~4rrh>CXr{Ta*Ugmx z+M&?K*-dWX9rYmFoiZ<#`#g7rE@3mC>mP;-UTn#x!pJnZ`3X8@{_dmxuLge*OBef;@{jL4*V z{w>ik^da+gUS@@}7{-V@o)NQ(I5Mj=-!*^Ffxjac>u+)ZQyK%3)GVw96{AS>kitO6 zwtkE|+VL&!=wK-4dM1io6M=9{J9I_&Y*H}%KM_&3hb^&srK*Ojui>`3Om~&6heEl| zvhqEXA550k8L&FEEq#!2rdMcOGg@Prr~b3eZ;2Z}XCu)UBe5h_Mnh9lezRBGDok?R zY|>5IZ5Xa_K_=dFlk=W;J_tQ4whK=8j46}A9P6Bv@4uPu9vwaSOHFACr_oNCd z@23KjW;ovKyEx2kW|r99!Bx+V1TJ=Mv0Js*fn|LvXgfl1b(Xh;V0%{dm%a2 zwVy_Sn%Tnz1Kr)+%3TD9v$-i)Y27b`MMDiF zg553HN0d)lrQfix7W&-Yj}`Z)a_$(uKO=5!N(>A*S%y%{uARu0y>^lKQU^YaDwbQO z3YY4C`mX@le;mk9*t$17|CRk&!6kA4kZ?N{MOs~tNOA*Up;NceF!%{4Zh_B;;M;Hc zZu{lUJUlprvj#Z947z`?ia!bY-LJ@U|EzXwQxJrP`Zay(~CX{)GI}T{N>4eEF2v!ATZ)0=TNAlkjOadsO~t zrOKInk&9-=80T)N+^W!>_O4Q01PIeOg zGhLXzWOqg`D=$B;BSd(N2ZcWH;v?7!5%^~;a6Ri|cmXH!Tsz&MK;*yv2)aU?8kq5K zxWRYMa!!gak~8nHt z+?rTU{idkU>mmLIYAU*_bKxwT$@SGC^2hu})0^GLtGbt=Ht0wey~yw&9gXspp%MB)a9SVkVVBAvMIKHaIim5;tmFg;u* z7#8zq4jwH8=VK`@1jlGR z5}xNPslR|6i7n>E#1+vIy%y-a9Q2eOCZC;bW<}5XT8k>ca_&fkS|XD+sl{fvqsxSD zQzR4Y;$3AjeCfoNvd?4iVUf0EQc{qJcA!(CcxIC4n~fB6pw1XyB*v#kjLV{SGmBDt z827~Z;7!?MBd))FTEz9dkz9WYDO*QoQqnHjwBdL6=yp?yI%MU3S#;wDIka-Uw zlo$pHj%^8LNWv)~>$h(Cs56y4J)|~N=W5iv7{vtmid8r-9j<-PAM2I9Q$Tg)*Wi#G-WMXy zH=N=$o6?lhF_!z}NF86#wtRHVfM@Phf>>RCM1fa)IhO4#HgVn0jMoyDh=??+kp2|d zR%O>lG&C9w+F4{0MqlAh4h@nc;V%T3>tn*xrFyvDn9KNK= zPWvK9iNpBh=ng~M9-jWW1W8&P-b?h1wS9f7LG2 zBl7^qxppbZ2`{|K8&|&yhDF&xFU@H$#{v=NVk)!OJmbpnWKa{dZgnJjNUG2<*lk2Z z%^a#^WcdU^FqyW~o?P*kW_L@D!aL5e;HFjNd-Q0&I@F6#W1PE()D(p?hSs~=x)Xq`<`t(Cr;h?SE!Sw2med zbxZ4;P1fp9GYa2sPcw7eW|z!q{PJFq_MOHf z5m}752pisi+z2rum#`(~z_@l~z5wHw(A*vxx^!>?CR3sWxM=fF;YClj2oOr-U6nDh zkzJb24gE_#0HFu-k8HZ5f2g10#W_U{X?-?ls6Vp3>w1)|@uynPXjPAh2md1Np$@1^ zth~#TIhtOWz@zQb!JAYf>I+{j0w$D|)?suD{CK z(rk>7;`MnN9_!5~$cbMt>bou$sRGoneku81 zcU=IX{DDS*;FAWzAX;!B$<=p#DEn5}#SM{1cHtK5M2h17T|T+j83pf3*#m=I)LB3G zq&ln3N9m%had#BDqwAuS?YfJ~Ioi&`aF9wxcYNMmKHBxr1?r)fkJ2$WV8?&){99Z< zL_uLP*}CE_>WTxioL{m|r-9>pI2@ak8eb*4dP#Xe+w7z_DB%@|#Y29d*O#jRCo1nY zoU)M;7(a9{Fc>)^Y^_E;E8iD+kL0==%=9Vjjv|b{B}+AUn zEZ=>)$suPu4qN!O<+49|jgMEiRKOToi#|4m+b);9;I>>cT{VSLOOc#j^a}4wn0V=@ zCJ1DpTt2=hxG7sYcD}|L3u2OP)R=er;fPpANM2lQL*Y<`8zCc@&Y|ohVMIm2TfD0X zVO6D4J;M>yB7|)=df|R9XOQD~ZgWNFYru;LVQALqGtgL%wi$F9Q~c=H4L&}j%sk7C zgriJb(b}Vz`5f{q6+b(`hhj^4APv0bW$rRRZ{LMYY6#OJCBqn*S{(YMJR5u=bCUMb zl6&IIVCDxh@uuD5_A#w80B26+J;!-oDKWlv4&^NBJ-SA4JVTL0TaU;{nsY7xREQraFme$s9#r1|i^%px z_DPJ}j8u9#Fcf{*+w-JfSN=Xo|0yd58Z3b*P{!Rq#KeJ0WgY*V3zpodlYeC#Ux`KH zWvehoekKR)yW?a!!rH-|CpZe*a{6pgp{K2$UA@^YA?X%4wm$lP{*|Zg|p|BouR&3o(h7XzCk0rkuL_5J@d!{^VRC^Cg7GpkCRFuzQ+mLc2E+Ocx;W>%x z+tpO4F1?%5!_{4(Y?VsMMOf;ey~o|$FFku${rK9VB;jp;lzkLI+h5S0`mX{srkrPS zKy>zBL+PSQ+j14Wra22tw1I-D#EQ4e=$A`cTo_Hz+>uEC8zp!~bv8E68^!rq3jQ_x z>bTEd#cL50_R&Eo-NPmZmJA)d#di&(uK8yo7ms9AC3^mis+xH(JuLg<68fBbx6D6h zt3hjaLum~LU%5|40as0Z7d(ZxVC!0EZnAa3 z9$O{xGJNjbv7P9tqMtH&q|9ts@8c>HzCy!T!rRQtt{g{vq_1cw9GYtz<-&=O#rCZ8 zw%LH=^Gu_V#W!+S{}*xZ10PpW_5UYrT0$GTp%e*F=mIIGwn!?7iEUx~2e>T-gH((N z8ZCdSRH<#!R!rN3O(4s*P!T~85Pj6gM|l+g)h&o5jcrO1EJd`GKNe8AG5jf1X#g?b z_vg&LcQ?B!;^Xi2`c=u^duQg%nRCvZIdkUB%#D?IiZan|5*Z{nFdq_$#R{eN5$6;z zrFD}uU9WD?<9f{xn-RJ-N7j2|gZhz~c+>7u1=?Na4%1=hSSe8XX3=+SDdPbp!)~db zSyf804O{v-*}XYKp=VY?uVnJ{n?DY1(qe_G>6xYYe1v?gm-=vNezvcN*=RHKeViH$ z)WeLj6YUe5w^F70l$P6`9Xlbq4*TwWfb$HXj9nsF2@x1+omdA1yqQ%fMuLXH*w05mwb*Srg z_F3t;j`$G@I>O3IJ(BD?pzC#QV&-$**x++spq@G7; zwra#ib;9K9@zo+nw@(L4Z{ZGG)PZ4+pXGs{Uemr<`^ThJjWf#Jdl|2-Z?%9?^C2n!mgKVs z6mKUiZDy*o_kYn{$+ya5YroCI%#0?ky|)zVvrqrGNpf7urb=BFNoP1fHl;;kZQrF_ z_EWkA$^U%4Nn zlYvzZMyw$eTYOPec+z^ovMMuTQ4WxD{|f7+g)vB%&?r=wsp`0w!i@RTmrZoX$ztP6 zNhQDI%=man1Wz(iFkOc!g&}LFzM#;AuzVFG90~=_){(9rPpYs^S=q5__f4P|nJ~wG zr4#Lr4xf|#6A7(l>`a7TaBVzm&#+!|0y!g;JPGORH0(}v*va#u1hR1oRbjSLWn&Pm zcHpsIsz8|m#$l1{za)13w;^AwO{wf$J)_}cCLTG!o&kESt&6_^TeGzB(*S8aBiTQv@uXz`d3Z5Frb^QbC?T>8boCB1 zvjFuERc(CG;Qb>Em_D4i_Sydewng8sgSTv^3!p!HErU!O^!ANpe|;lCjGt;eG}(V~ z(|Xbtb_%qAf?%{1z*x^}PVc2z6#NC`vo)oHtP8(JOyD%B!2V@xE^a(G*?(zcZL;eA2e;gm2YeuW5hg_w_dx(3+KxK z;-S`SA1c}<*TH|vw`dCL0^>W*aW0un!AUzAYplfddu+rsC6Va~)8LKfga?j1S|MRSTMq^Y^Z|J zO$Rk$9a9j9_$RFR?+c1Q^tv^zuKPZ^BIEef9hb&F+DVazE{(m{kF^i*HFoXm{AFf1 zeX_Q0jnLBxQ(vonY1Ic_jZJwhwLRHc?Jaz`V@}zrug2c9jlx|5@M`SBt?v0_L>>`z z!;3$#rS_%f2NX*uL)@ zt}|qw2t`HhG=hAK0}TPp2Q$W+5!+C9SVyVX^-_uQ ztavi{*2PWbgEDR@s?K{~nfESY4N0FJ1gVDf$)mz?!q^Cggho%x*8nZ4XH|M9P1;gof$7Cjj)4v#YHh-YaLzwCA-vE~p!BbAZyu`M zw-~DBneQ1pLGqDrnD`WQgIiqAxEL4@LTNdD$h`=57Q`pN2?!*Os3T%)aQkfaMtqMP z#;v2iW$+6Gt`_)4bj{opUOIx799-yE`mDnPvzz7a*!{D#n{ds!jV2G%wN%e4$FRoA zjW-}InVW(uEz`5i^(ktW`+wtzO!!&dz3~eq_wCxaNI#EmT&SPlZ2Y2rIL^AHu`Jm? zqG`j%ls^2-OJCKZHc0MpQC+K-zB@LyD)Ht#s%}B3kanC(Ia?n;BhO%>v0g}2yKRso z8|P)d4*(;~MM6vc%icyx8$mIWxC*`g5KQ56KMbq$SP8(4?-VOXJ|{^7MnO`hUGF$mXT4 z+NqCe_appzvOBCY-_^VoWV0Jzv%xU2pQ~kxRY+g8T`-_%)4~3+muEribJ&$N9*)>! z2+;UUoF@VH|JD%Zr!}^*Cv|Ox#Eg3eAzKiBj&ML@b{>ni-K6g?RIxeH^xO6>KQ<8! zhm(bPdw$vR?9N53>dxvq9DJ!q2D;#2nO_ZL>AU+3Q&SLmb=>djaH2|U?*u(jg}@fd zjrBicJcbgALqQ#goYqg2yfl1CxA;oZx3e-22GSBFrV}eoB!Y4-tJ_*#=48IyAHiM2 znZJfoHh-e3an!fEQtKUf`h(YVRR>k+pTgfeO|zWlaaM&M^}Cf{`u}!*5FY)Ad52}( zV1RK#(H3FkpKWayQ1Yvoms&62eHqEPlW1emcQK=eV$h_o=3;TUk=6!@bjl%&4|4d_ zPR_;`)c!ou_uZ({FEGxPIpn2@KCK=T_tLFGggzCdge~P7YlkYSMJ&Opc|l{<%JDrNejPr=xg@9$8xE{f^djdH33dBUYAYWZ4|t=lZ@hn zUSWXGPj_C+=ed@b3oWOBiOOibQw7xuBGv9b@!Ii<P&iappOUglS@^Ez|n8-YswBx9o0S#UV;gEth8 zEahR#*pigfvTD5zMF>EM5FRFy4T$inBCsM{LsQq@P2Jl0bew}YM6F|8tKZXqW=g1u>x{ zy0214*^fQ;Q3(2PX;NcdHHgBC%IyxI#oCUe@1iKwQHmPR^X10M!ur2ed-b4dZ5NI< z%Ej6*qMuWjY&70J#9QXPu)QndxfN#{5h2slA|6OnM4xg@lF#149zdtUkhHP2cosHw z`9~AtF0LJs8e(jSUHxAG^LH{!8VcgQK#aaer%*Ib_V4+1PJ%N&fs!RT$_y$37fDRTATordn7+RJ&-iLk9V9E}j8K+x%tI+GvPy#Pnrz0^M+MbWn|=!gCX zG=IvK;#{}bgzMEU%m&atNED;Y`PxTT4`U7O^%AW75_mJ93!^Hs*6rOlVqOQwg9CXy z5ug>^nG;&vpEGY2nzkle#QQM-!FO1oo6x1pX{0w@Af|pS+W!kWTo%vyxRU7ogoF!=Mq~_vUF#I9LP!qN0xst zZ1mrWL$Q1=nR1~h9bw>TT37X2C^ByV=<>_{C9cuVF z&|&A+mQ-sx(M-3AwYSjt2$gh;Uisd%*#A0|uwM8I@y6Rb^)OQ|f1ro=-Dr@FT(%Bpey94h8p1gwJzeW% z^J!GS_2YV&L$r~2Hx~vmqaDV+>Y~QaN*}Gihfa^e`)!EOI%dKfML(536{ADgQJUoy zJ0g}}7PvCc>&kGR5@MZz2);a^Os-^|z9n4fydH?wb#E++YcgNyzj$CSz;U$8;9-Fg ze!$H+lr4{7SNLC?BYQTlncLv2l!|`?c6Zd_V{Na9k3Fq2ee@6eQbSqPNnE3(zz#9o zP!!p*efc4ozK{ax!-Zosh2-d*Cjn<#_%HS_BG&erJ&bhgSFsIdW5M}yXKgvse+;(! z-!P7D+S0<1;AY*!va&;--JebA$|=vxp9HkcfC~l_Mh49u5MY z@sT&-;L*;j88MGcHFW~kh)5Bwup7MT8-C`a}GYP2ddkwG?3EDx%NalfPS z$d!Jq$KA@%6?WI_L+G)8#h0-EgnFzaNpT2<<~JOp>U5e8%DZ7dG+4JTjb zD7Ns5r~WBdLmru{68#9%?A2@T#=3Q04(v!pu5ZuzYBieDNY6zeyu@H!f)u)<=WN*s zOP4~hj^{;10h+;e+@jIZALf> zozTW$Gnv|4hjO;Ao31;X@DBKw9fZGl9ZGy-=E{)QhaHOeXn8wJ6I1E!a83-5aLlgf zoejX$Cd0&unp6btb19Cdp@}j%!rSSiV*ebsl<7uauP0Gsy;M3O$|@EII?E&=$dp$x zU1D|i_P>#5n6TzXJ1{itcI!1ihE%NA+(}gt5HGz5O}JRjxQh@y_O@_c4jXzl;%+Va z$KLOtj#pyUEkD|uq&*G{GO|YH7?;2CKvQ#8dX61@rvt=0)Re}F>{P+7Ga*!&beknO z^>}0hm=GvMtqM{|an>LYb=te0gIUlIOg)DbqBRW;2Ms9aU8NTN`c5ho-2(A92L3uJ zO1!W#f|stZ2Jgn~`;wE1A6^o@ixN36990Wh>e$&s4PjqeHZOBcAUSziQTn+JW;FFL zdkQ`EqfpR(2tf&~Xk<6T5;eUpwa0}7C3hb%X}i?<37Ln2%-~h(SE=|v!{S%u7f-&) z{H2SY?d;mF7EEt07ST`TVBEMikD!!f=hv()^!95mrC9Oa*6yMbi|a!FuNrZ$0@jk< zMWPYG0{(RuxtO*r!d%HTccD&_D+O4Fz=gSlr*Ynvu3XXHe^Dwmn!3jYcjRghg3dc5 zQZ&V}UK%q~v(<$|#XGm0g4L;IRr6D`oz4q*4Jx@Z+LMUqe_*&|vbw)?u#M()w>46=Ekb0cOx7Ejc3%3MYG7&eKb+Zv=mKeth#X#u0o#d8X1ma?!BLZi=P>8 zu*;R-i&_ODjDt$gT?E$t>oO`a3nA#NMY)DYG_=nI32H7_A{*ntRb!&=HbMbyUmYST ze<|o!5ggF`SwmOKCWlEjI$j_n`Ab%NqfBNF0slPRwKt;l7z3pExIQl0JcP~FNXR(| z#TihC?%&hN00~D#s1EhoGpFqS4V7J>*5N{TKXQwnWk(i=vNCGxe(vqoO- z&7`K`Ty#df0hb5NC@Nz};FQ?aV=_nnBe3Z1W9O8==+BsmS77r!E9iju;-S!&OoYRqMNMHM%Of5se%#` z-vvqXO{RJAjWSz#prs$SuMlcpy^Wxfc#`+4zgp1pVYiYPeSl54pH>) zwGe$7kV*F3Zj|Z}u{#*lObgp08V$ygeJG{eA({N%NkXqCiC$`EL*I)qty*X$yEtUx z0pr)gbA+$L&Qe~5F-{o>lZK<#Mt^aOYZ3T!!-iwDJES(*$u}`r5zHdOFeAamVF43r z8%opCJoBWAf&n;HSMGK};nhcyvI#oJP|c88li=J5L`JOC+H&o7yB3_UHbH|p=3EvM zRPHfA)})IK1Cttz1p2k6`3`mWW5_n&F1pb=b_9A3(8(Kdx3%#8b9Q5D@<@c z?v|x23UZVUdn0QyUkLzd+Yr4w%%o;oCLSvM&;6dE>+Z11pJ}#X)JsqHS~okh^zSPI zpj(z+=i=Wrf)Eft8j{p##vW_?gbB(NF%;HAQ~$Y-=3?JFqtI?UzS$_jXk-3(ZgkYp z%K76wAshZf6v=dksQvme-Zq7A8+Z%K6+1zK%U18=a-|SU5ZjQ5Yh`RqW?NXQMKJyl zzAY7uA@uLf3<+?ELv_2V=wc@8SARqgo8)N#HWFW~U*v0MX_mj~xgb8TBKHGG&C9xO zBz;v(Xq6?9W-b=BQ$wftUqSWce3wxJ5wu*d zYYKa9rufKUw7701w$S4tA5JrW2O0{Fsbj_3pQ6#CFI@=|oC^5fZH2?`U(^WfeixCO zJ`brDH8{`}qe!HVLk1WiXeXC?MU%G8Rg)A~OH5-h ze_>$6UO)^4ux*7ZXAS@cz<`tyb-eTv2u9C5C$`}XQMc*zoV5DV^lTVn8$N5dEq#wy z`{>e%Y?lS0w-ly;wUa)J41e_|ZIj;mU~I$egn%5T#p`Miz*)esXb(w(vbUTOhu-tWdPA=Kk48e5schoij4F&c9oGDD z?loDsD)*)lMZkk1ax!z{L$uWC;A{oEg4MbEDQjdhyV5x!N8yL-r|P1nlcJ<-dr}>{ z!N(E?+d-+0J4xs!$VFi(#rYceBX3*Nq^PDG_e@j?-vnF#Lih#KnZGZ`R&zlO`Bm>C zNz~6A@m64Z%o?dLh2*$9%z0XvvtmCv-*7qWmT}2Md>R}U48dezd$!(RtP1Ou7c|RW6W4LBaq;l{2PB+`clP$K zDeoEn)<7_&GHH)(7@68MqXiUJm8A}`sg`}$Mx96LiN)_%TB>VeCqEi#3Lvz;v74k- z6IJ^@ihMKc6!bvuxTlOcdKJa(Nz#eg*2LD~{RinV`~gw{9u$sAj!^S5##3hW-h zP5>;hW7oZh3_O;zTWW&x4!789t0j-HKWTK5D0)`V&Ev^8)~qP&i0D?{-TH=5U119> zBM<5XfsWyjN!%IjcA%hUKNwVgKDW$Z7+N07A``W=K(So9%vu`XSo4JX9JcSJ>PgPXZ+w?K zuC>vr{SQd#Np)t$Cy#Cw4w@Stolj{!*qY^%nPW9DWF3a>VvW-HH4GUx1)}Ud=H%8m zlF^~E>XKHM4Jvm4JhQ|sa>_k~bb(C4{P3lv)}R`LDb43Ru0o+9Qy-v^mniVjCtS3h zAfOQ=YdP?7Yw$65>~Gl~e2n|Eej{H!<1jVF+J4IS2qF)mqrldrnlfJsNl`|rD4%Jd zAMd1HOa>Ch3{Qe+V^{R)oZu59dtd|TfiY253~HyGs-@8jEeyCzk5S%cdhx z{d#iolQxYIBc7zQ*O7#IlT z@z#wB1KnO(Vm#vfrjQOBC;>MM#Iq;NxjxLvlG>0tZx3_+Da<)yKRJKna#r}Ky#=m^ zJ?X|85ixE=^jB=lT9tQ@hgD2K**_;t^g{8w!U1>F7S{t>C@Gp9pE)+Ct~yuO zXzI$G5PbKwo~o%Ch`8xekn2QzSOJ3Wd%$kz#DV9&S3*geP!pC!eq@QA>LQK3{GsFV zD;x{7+Y?D@mbued8K3&Z9FE_>sw$a~=-8ZkoQI=3x)QMsn`^c%8@1n+9fWg&`^wzU0)A*rbv}YW|6G9J$w6bL zSS4)vqsE25*WJ(I!78kVO72Pqy8E7G&nOqPvr!Q~-qn6zrwXAfEwXEFzjN@mhmYwWc=Bb#;y{J;@|FB+1Lt#Lrw#>(H z6s$QQAYfBpoKySQs>8LlfR@e0q00(z?VdHUfz2c|Kkqyt>{|>nq^Fm{wY{s@nf%~P zMEgK~KUflL+72i7Hgi?r!+eY-`)4%$if7mv(~hkq=SZ0fH&tnd*A0t}2~`_sSkGnD zv0bk#jh|Z7v3@GXDr_ zC$?ZrW=^Pgc43sTC8BZ|{(!mR$IW~cIDG4zqY;9WR#n?JVkYRJ%zu!oS-BpQIVUWc z4#1W0@x1Wkaz1K&N=S*=j-3R58R*!Av^CZ?9<1}fHkDsFCbKXE@csZm4TEehfEov2 z6Zqr+u&)N-OCf;2y>1PfF9h~#3(^!%@p&Jt zJIxiZCIe1dLb`o~HIp zeVFiWB|ONdJV6-ySrY_8ID*qd=sNYtfjCHq66b7q)~eTnlQc37TQwO^_r$GIIJ!}6 z4wIQ+%ZbE^DY0$4YnCLt`419~$p7UiYI25R6T0smKq&6}r8+moZSiXXE+Sh~u^P3g z!rGfMH0Y^D;{@NRsaZ9lSIBN&e%ws6S?=Am{7?(j;z+ug32(-==M~%Wu_#;T;VAVF zI1(A932g9dF7BNU8S|+1z#^lTjY&9msH@ysr6G8Tk)$Tb4ip#omtKDx)G6MP+Ab5J zMe25B>#Hwc*U=GWNm&+)9V-|YXF7NlnV%Fve5nmuAGbpRHF&?osUn$Q4NeNx?GB}F z%S$U4;Y$4tO8b3Y8qHJMtx9_~FD>rURx9nLyfkA=ssCxEy^)t@oGkUvP}<1iK~3Q5 z46E-wN*kM(mT+lfly-Dpn&;A9?Ii6zd1-Yn?e|JMB`>YsrQM^nS$SzDP^JDIN;@Yn zZILT?mC`QAOIza7E>+s4d1)(M+B~H#9h}zEf-tz`$x2?Gm)sF0mnr$$yyW#!@{9MA zd{bWX*P`TymHe%|r9s$`Z`l?#8h>9}*s4Y*C>B*T_`{#pF2fbVoB1t+iM9pLhw)w?l)gOcCA6 z{zsYLM5v(_xVTRpXiT~|xm!;zgxGzJwM}AxP)f0-;4HN_22T8f(Tw9~m#GyvS(LMc zv;Z~#JYo(}9*Zy*V{3b8Yx0eFY~8PT$ZQM=$g-WV;;Q+6!%E%d@?SyX`@$U12OX5d z-uX)293=av^5%a%h$%DM>m1yBS(?mreIiSfbX%oM)gl!Q)nY43_ND+wINqS)^xo!UgzKyZeLfR$BK+T~M=8 z${3$$i?R#PAQ_8);vT*w`x8y?#^&dJ#%sJcj?vRTo?`7^0RNuTOK~<7*`0x;un)iK zcVzGTEuxoeNFBIP@U@G})*VouMz4jP5~wOhuWF#!DPVCAB8u{*`re& zKwE-E^QlN@g+Q1xyBQxIAg0gc3&E@PY(r1Zube)NZyL4-GOvG4&DIbH9;U6TB7}g2 zb?DS-Bm#c9<7B}~*h8N(M5=YXOnlYZT2mg}WzsgOJVAn9EZ1=a{n-JL;9!aK$>{-Pic6;ykbL8AH!^ot8-jx=RS+)D6iesSmuhpU_}d%5#5U% z9*w_$8$7N@>{Nkp5ryK(_{)9Y$>Zr1hlzzKge-_hEEosJ>ELx*%bXeZhoJ~N23~C` zsVwsEJtoJ)q@t;g8wD<@^I_p!6))VO!zC%V?0Y@row3Qps#^R^yj@M-1|@S0=!A^3 zsjY8)UXzL%jF}aggQ&`cDv(1Alky^eB~Au^x`}e3ww~$AB2kNR3YiteT1af|@M2&t z-0anIK7u-qSKHUjJz?Fflg8S<$%o9izXWdd`j@3hqT&!9MT9sm+$^c43_qL%8c1xp zznRiF!7G>m7d0-(R0nXRSRqNYGr2T06EUBH?pL8FPZW#$)f=7qq8m^b-|Jl`x|Sa3 z#E5UeOVFwW>wGBus~Zs1uo^y}YokyVeNes29aU7tfD^lB0`I-=<4>ml&p|7fGPYz} z*((*7$A&+B!q@;Qn~}jrj<?hPa5+Fs+?;&TWQlWF zW7N_muBGjC7$Ad)t{n?}H33$Xqu3&A##=~jmcaYV!Vq$6T0n%-f$f>Y8_N^RugM~!gwW-NY6$7_Al*PvQpj1&d^PDec1SF ze2M!vQzYucOENzQuyGPNR3G+Rem-=6-BltZDJpNu1A6&&L4GQ9NEw|={qK|C=$5%Y zB*7oJPf)6>ruP)O>>$>U@Eh=onahm>(&5j1Y4(d*0;at+0?n^67HMFn7l>22AGbwo zEyme3*rs6;mQj;e0HIn$)!bff{5{J06n(h0xzbbQ;Ih)<2WlU0-qW`>wUtoD;X2)H zSaDZh-ylST9yuR37uZ%)>!p#e;8?Og}$;!dRTAsaat3#MjXeLhfl>7P1=#YH9m{$HXD zM+f&e`&R^MRhD-9y`+r|)6NUhsx7TmX%%7G2ZA)Cynl((jtD0 z3DR7XeyFr(!nBKnG}ojXl=gg><^^f4Nz0YCCrq0{n!osYwW|@cZ7{2Q-^cK><#bHc z!wSclo9j(RkPP}Z`XIqQ*Zfpt-2RB>Vsq5-6Lrs6o9vNHbx5V3{@Bsd8tNepv`QWB zTm&eS2y?9qa#^#Ki#90NWaT;|%yn6i%lP7dl_5Fvp)l<%(kO@Dx6?SfLaFD6sVAsp zQh^e5$XJ_>uu>(|Q74qxQdhUER8RUs>*|V|Mv}F-ak7w!a0fl7T&-@3tZdl-n z1%0m!>fvJyU+* zRvw0RJyU8A!w=l5wpoPE#1@()V`Q76@FuQ-Wtjh(&5zJ*9vbtO?7y<{{NU+=#`!Wt zutH0VG$tV>7eb~}{~~mObCsP~#$L~^61fiR0z13Jlx>6V4G)}hb-lBx%)Hdh|IKl#B8)oXE5n1UP*7vCW{YD-W-lKRji(NW-;&xlHnKE%FzqtKRwpT)r z2>iiEusC-8vB-Plnq>d{#w(Nk3mThrQl8tpA$8ou@GzVyW3|dLwdGcW=M?QX1Fv1t z(n*;y!Pz|eCPDSD{2^?d5`6W$?1pMPL6D27I_W7a)CgAJ?f4+EdztN)JlwaQBgs+W zc-u>@q%+gbgj>@g(AA zAsc>`GX<8l9GNkEXNWipOLP{*nBRDidsrN6f0K^XGkZZlHT1sBbF%+)jhAzPold1| zjI}?>Cp(o+{*db)=FN>-I{HtuyUQPF$R6Q-r@Xw-r^_EE#-<6f6(zf3$*(GVHbvx_ zRo}aYuLgH{1b1;ETu8U@fnx7(y>+DJ3Ba`TOaRnG_!oqNHUM*tII9JnZH$gYC5SWx zaMo}JVr;|kK)`03fE~?;uHCGuoK;L0Np`bM5c`YmEn;7D2xqGnvz&~%RXS5#el3fA zHm(yOzHlpbjTZM&G}X(tc+)UcmLtfsq3VfE9~4})96o2Kd61%%&z6hCKqvT>`~SPZ z!D=8mAqHbu)|i(@*1$mbmZB5;?#&}W)rXA$m@r&&;h4H0*7g*lF7~zk&K|BbIj_M! zg)jZu1y1+RlpgK;uy*OSL)&m2Dw&#Z($eWTG3N7B0)a=OKs)ol`v7VT;YwFLz-M}=zOic{0j_U zVKOYzCt!@~pekX@${e?;23<)`chw|@b9BaV*DtHcM*pIEE71N&+UlAYTlZ)rfctCK zd8mZkdL7t+6ddTQ7N)ijYzj!_dTP)*>4AXJwnOwYGcJp<2(S0{ofvRFFQqu6FC{lR1LeyL<;kC_B`6E904)cx=Jv^r~zT zF>TW6b-lO34i=DqkSCz;{g4T$m?ZTzp940e=rVDQVKa_?`6v`#o1_%|()J}DGN-_^ zWdHkPZQ9vA)BGj(D)-ELlzV>aDMycn`Kev3AC4;iMgqdSIhy2%KRk}JIQ8g_Z?T{bG@#flX)cE#cPHqLRRDG_jkPB z?dY=U<~X!?xKL{0cNx9gb^$*u-z2^4`p`FK;df}u|~E^`W=Ue}eBZfrSp zG;q8GAOySX8C0Pw`07OU2@Zhba}E;On!iBJ{_#wrGxyI5kog3kAXtEZc&J{%s%82t zYdXdUZnP-BJKLZsH}Z8>&~mF{10gi~=1p?Q;Txl`b3 zdzRv3m%hxVSar*eN<9tqHQ&md85)I$e49RHfljmme~t{cq>Q%BshtCzleYAJULA8V zu%vv3L79zlu}|Ec_v$|x8K9!5)V_NX82v!it(cQF%Go%3p;Z&bWfPL6JWv z{6AYJbuJYPUhj3l%9H)SC~Dt=+ZQW(2`eVP>NKI5`fKc0C8IQ!=EQRa2^;W1kOecO z;)5ll8r^YgiuO|RW=`_oPjQYT*_T)UrLKN#8YYXeUmY;0!kX@>FHXZ5yXr^<>o}{Y z1Qipj+1f}rkCK}IZ1lrCS%+0jzhu->0Mo*!WFoR+Gmaw+4z_QU_a^-n8|>uNxuv>r zr`(qjY&A2FKbai^jo-H+h(24BAKmiYwpQO5992l&7K9jj{Gs!+_xuCHr8 zEMoz;z#(2rN`w7JT7tXhB9jtb1FHG0DmrQCjGv4$E^ryM)Q{^lmwfUa>aZ%8mFZ@c z>2D$ud!7rtL92M9qyH9%mi`NsQSNHljx()cRoOnACTR=Jr^)wiSMH@^ywUjL(mM?QdI@w-ZElnoHw6=8~m~1 zh5MrKA^|Sdho_NnC`$u6nVEgvNE*fO0!rC-kOWBU1Ic_K5T;JOFN}jJ)feW$ir?oc zp(jqwM7}IL4^?{bb?+^tY939~=A&749uY09&ljIVgz*_Wv6}Kaz~>#tbrSD-4slG) zs|&-RGgA;L$u!8!(KKAP`VQM>V|xo659*Bv;s#1e=<>A0(Dna`9-z?t5MTr*8x!nb z1w7m*^NUt}z`yii#F>@M%&`JqwMRlgdyZzoS>{uSRqzRnEN{S9;gnp>COs>;)i z5AlsfEha4fS?>I-K!{Q^y-3{9;J9a^Eu-i$E2Bw8<+C|MPgbTThV99CrWZvZ7*cKw z`HA%i#iNVS2vMdwqGFUu=UMbUp2vwDa~#f@j|Ht$r$WMA`>XgZ_rGultzR6rKJ%!x zKAzwDTOB0yfOV0wN`7n9Q}~_EZyCP{@rvI${Ep+-IL7aM-pBjDH?>&UQQqqyBQ0E@ z8j&!)ek*Oos%|>cf5ha2)SN>cQkLF2`VfwTNS#;K=tcveY( zUxV;Nd5wc;TI*I<8LwYIrh!b-irkxhQ`eoIr6x>Ic3sR)-%%NvnkE(LS%h0uHkGA^ zO{8Rt3LL>VrpyOsKz9KTca;6Du)X+bp~reDA!s>03o zXg$satR?tPj=`P0%1hD76#zi{N;e9Q8tm(IG@*BRvVRP#)ridsYT-HawO}2&AQRjv^%vfXHu!nC)cpP52HMI(f}_e0Xq<#2 zrj!lv&xJXkB4_Wr;Yemj_-PxT`ku<%8@}J8_uaYGZWnH}g%I5jg}H7dSLV|2?P`IY z3)tLZovzrhSo?{j^p4q2a$uqdsAuW0^pwn$0Ddl1%V0G4sPj3B*N(wA~G z=V1O^*m-u5G4n?F_8Z;`&b!}@ODSKo{zfji!rcI4PBWp5yR+jahH)7~ss0x2R!p9l6Qmb5?ect4yiM6 zzNZYT`I?iY@xN)Si0n{SLl+#rm@`~(F1B0haA)O8nDxRAlu zITN)H$H1|Y-wOZxH$}i*My8sZmLHYb6O|`+nCSXRtXs&yy^{QyzXyr_V%~bo=t$nc zw%+CXZGBUxsx&Q^#lTdC!%%Slg1No1T|FRrAuF@gJT6lc!Y?!I@}vMNgaBQ%Zw<#y zUflZ;4Yk}}Rt|rzKCeVnQASAPf81gY^TB9RWUz2zqfKIMN2^fspG-C1#0v0IzsJJ` zIl7mZrB7dg;)<=?q3>{@PWN5AZPRsLatn+C7~*gz%wWObHKb!;t-Toti@lDu@8q)! zghFgx!m4)_Q}G58-1}Api~GK!_ig16vs9wVryPkZciHdyin4bOO2QKd)-%M0MlJvx zB>#BVQa_9OQi5_tb~KIYDBC;D7*gBQv^DenfCV`zi6!n>?oz+$#vE(ZORvPp4v8D| zokE63@<3y(;z$I-Q*oSM#e!&iV(pWWCMexN`{F!iu6#R${`8eW2-TP7pj}r%Z|@HU zFDD^keWEV+3(^X9BDYABlQKjTd#}c*fcfRU=OTF=?sL2ZFw_Z+6KL=v1apzb=j z-3^?o=zU%#nSNtZPvHavlTM4&2&rhINxDK)Yb6ZyJ;|Nx`4Y;m*frH8WG)QI0@KN5 zUHtSwZ~XQKiwOgd>U5&McGIe}u!~VKiwOvB2z%J2WJ0$rmUo$7dW6<_P+2<}(Up*V zqa?QWS5PCfFf8*v%49whzE$!TnfH3|oTm6bK`kIunOPj6`1Y!3f&nr;H%JvNi^>mH zMK6CDG**UaJj0up&L^N4(7O`jYhY6^&ZGf`#S`h@o5iXDQ0={!C-v^me(?$C@KI!T zT|CzQ9z6%$+$AXPrevbm7T5Z%R-$*}+A2jyES)KluXBe*#@ctkPD!br4(rMxTERG` zyTGJyv~NawJJI{WH}&Lzu?AO11Pm3$#A_-s>4~hq@_P@N(>MfX=JokQUScQtj zy=i5}*4R}i4^x#|qvxYz1@V-86c2n_)HF6dv)H6XndH{y;CBUKdz@Bkopq~m4vXCj zFJZ617zn;PKKj}B7X))>`fwLU@b+cZ5u1E+(#PLEXUgRabIo|(YDvBsk6kaLW$KRF zU8_#`S3tgFK$4qEYj-ts3_{TUaWs#KrTU8~P+}DLSD-dJe9{LGLVm`8K93dXNAyIq zi0y!&&KaCTw*3&Z$AOKS*`;^-ks>leg74M0W21L;+XPfZSf_O{;TvnO zMm_L4%JAe~LH9b^kd3vEl^Rjk%f&b=mo~q<9wS+PIBC}g9M(G0nhPgwY|$LUvb&*I zyWeB&$6{kxs%?+96OoxQ)$MUMqJPdN)d{R9Pfwy5siP9S9tU_moAeSTdg+esN~9-v z-au==3>bGcZ|s_vB&-X!rRZlTb)c*_u_O@O25W?!*Z|fSAsrYtZNEF|`haVs<(2|T|_ibP9C~u&p0y_+a zvMAW1GF94zp%N{Co+@=IbT_y*krsp&Rk?rT6{-kCqSiwi8Xo}DUKkuOWfLnnof)t7 znyH|=*pAKNgyo~+Me6ST{4QfHMK#Ks5gwoP@@34+d@bms>$4bzm6!VIMpYgn%7c-k z)W2>V6R4XajF@zbAL*8I8Jlz=f|#5zI2o{1mJKF#C`0cBh-E9I#K39LyKZ$U%CAmu z{#9EwxI@0WVjb>Y$-QfGI!CT)Rg(I$!T1mbFi#$ru+qCY7ekj(@-%TE1`bfAk>H)~ zjoT+f0)#a7*NE_ap49-p~2048DvV)ZH=Hgj)S zNiCJAO$O9o_l1B`u??N{+3CiEblu4j%>p4*hfbh1V(q^W$&EW{tYW*$-QsNN*9pg= z9^%2sgGnRg=#82Te&BPe$Z(=__GE8Q^7qjdGftp1cuNMT%x$^hq1<2jC08^dw5z>I z9TE^o%1&tpt%$ew8YgR)jn4{m13bY&k9iBJd9~fc0D>%o0_ZI(`vaAfu5LKgNefv2T+?;OLL6)JdNwSV<9OT~kDejkG}WO#$(n zOpPdg%o8C&QC^g}$b6QBg6S|fW9a7eEH2|MYGNWWU^Semxo)G*;R{&q?wN#qq;$9xy#^@~C#9@(DS8c3+>lx_ zvB9P2HApc%OPNJ3MX#2UEDX2(qPF1ZdIL_&fUi@Dl({N<3LoMg8_cgA0x%IfHZ%M*z6g?>o))hbrp;(n$ZK z{5_laOIPmZCobt;9@8YLc)JXxYtBT@GhdSgj2IX=q{w4oWe=i4f5Be`Z0g|NPaDhB z=dMv5&Icz9Jch1ELjCzVs{%ora)-rtXGXk|bGU#Fd z+u?9$hD55>%)TB?NZhBFvd9H{JchYH9kzXSy9 z+D!-U?)@_MLtfwgeifO~d@=#iM^a_5cSJ{h5%^QN2kPxoe)Ht_8C1rQ=3rwg_eI1t#zR%MOk%yMu&;cr&Ct&Zlpx%M1ql{YvyYtu2AQLhFw?rT;- zgo%5Dw}*dX4`q9 zkQM1*Bht+T8)B}-+H{nI>RO`s`ubS=XxG@hCHYYrwWhr}cw zM=0)2K#u#jHU~?iQZ4{JBf(Kfccss$W2vg?+Z+*#vS*@9)0=LZ`eOQwhT6@`rg;lD zd+Bp<;FU0IC?_8OsN$WB$#R{{JF1oG|G>b$M~>Nwl2WYw!p`FEfz4KQ>E>kj0mBZ-xxaS0-Sl)w=Dv_0`icqF>qTsaumbKGE9A9>Wj61Uu9RBr%Qh8 z6{BT$GCGb5pZt;DR9aU1_vR;E%J3*2WyLuxpFR)=x$AS(|cG^+}rs5KdCE6+;RN>!i@KR2(dZt({GYFUadqvpv zbVC_>+B~yLtgI&HR(n<1(*_nEh_jSd_6Lm{G$94;ux?gbEgoY62Cbfx+Dq(AH>&NT zS`D1d$bs6V-r=8rcMgAKLs6a9MCm8(f0aa-_b`#Kqwgd}RC+$MGCUshhnyMZ5j^WE zhSKvm%DLJrW`99?9)=^wSf}SD_>J?6|6(3uGOHT8W0cOS34Rm7uV=sM50@H8He_o# zoXCcu6x~vXPeL6RqW0jE8Mkrc7e8=^NbWY+^935$5XZZ@=4KH`n`Vn`^zT=8w|t}n zNiYlAcY%RNtZ$vsk!@Y8km{n5e1wJtG7u@^bIp{eH^_*9X$y$?QJiH5k7HAXWaHK<6ahQgG*?GJ%L2;s zWn92=>pG7H5ICMM&<0-mNDH}YUx^A1KiUv(KCyLemGWn}TZ5h&52~#%)F5Ngu$pdB z1L$6>OSyhWN$Oh8if{q^j^b`GLxRxS8{-tQ-a3wblBu@JlPQ+%6DJ=_g^YJ(CK_<9 zrCKp^6?G^8ZHCsUn0E{$Fsjy8dL($o9-XC)urrZUW4z4w?=s`b0>10G97kJl<$V_C z+@XH&kw8HmL`}&yQ>!^<;^nq6TgQrHKn=xKCFK1l-{KA8G#&)5NSYc|?0MPjhYx|$ z5O&W64xb9CSJ*qJ5`T<8+zk_@tkl^sfqXJ+REDl+M$$bFT3K&8v%rvX7arm$mwr@O zS!_GHK5+ie#P-ce3q-K7B3YW81PI|8qSvr7B^%oEj~Ro=HbueQ@vn{9OsB*s5w z(?4YwEkD808$Lj_(o~l-GmxY*|6>$VWcjwx>7?sFVQhgr=b6I|dYwSkdw}w>&@A{- za=^4W`aaJF7nU@|0=UoQ`SJ;p1-(fn^2KTsGX5b(qY&mKbul1SiB40r@DvsxK}+PN z{@Ls}h20ZyxbCAtVsLTFBQJd1g!E!5}Wce9CR~(bfhnr6#*7EO)xo zSY^8=+1^2sxQh5wk9KHebAF1P5-Q;07Xc|Ew^FR0@0?(msW8fuIh8a_RpY6OYpvbh zbfHYD0%CquXor>Q0e*?dCkc70M4(p*w76nkQ{t&)0fXFjIdzhDgw5QFzH}Z*esq|T z1i24=DE}j<$wFsZdqK`SBtt{w{J6_m1!~nq>o1NmAaZcln{2BH#5Vb6eAVALqIOr; z8xxYxPAGn)>-7jgjf;Y; z;XoWs{`_B)SDo_4OuglS)Q=$teQkLZKAU{%@l&5rt3Nda?j`FIm?(vxV{R_;#CVV ziQtCOlunA3&n$sWfmzxiY1JC$LOb0589<<0rD)QHG*ts4Dh%a>mr%u(M5X#*n zUA-d?3`CUdKM1quA$XxfkS?_t+ZQ{xDcnWn4sB-p6}zk?raGzlMe`XI?753OAPHJo zhYi()BAJhowr*T-ZYw_5V#Xr6INe+mjnpHYs2$9aL}c+M6xuQrUNyUmKMlL8S} zYqXzDtlUyktZm0tY^bPxboqphday2nT|&Mx|FJ`iy>((QlOG{tOm=twpgIFQ@`zDS zF}Rgb32J3T(%}O*Cei&i?0~2CO%U_W_dvN}4*}bdEagG_RG2CuUs1gjrTG%F{nWdg z)4#H=(BSY)k!?UTYBCI%&NDzLa%(`rkopq`s0L{zNRs=Q8%eSkqjP_U+( z9IT&ab9g}x+F_t;>=rI-H0A4XyElMJsXr{g;S}V%@>s(!LKKX8a92W)t%RZMXap86 zt3Z|e?~~Mo80OQcCVx2Gd~nDc+^$n!v@L>ltImbp%-tUhjvpMu5!Sq6|cZy*YMb2yJ`FVwkH`}Jcy5=8cd5ymH53x~eF*Uvx)c85`VKb2))Vcrz zrcP;hE|TOhs>3bF2{*O-gAz_T!a=1z7nLYm@sWMB!=s72OFt ze?NQLeg(R{cJI>r09u8os%BMmGJi#P_-%DG=2bZ3u)vP?EjU75A}~GmK*y!?Iho-J zrKO(D6DLHW9HDNV4K8`zy4ArVdow+YM#iVUNNY~)=uY+W``!*t`s^Njg@Ap?wyB&D zvu>1Nq#Oq}_uZFQ%PB!E;50?Dfg)@kISn$dp6qwujwTDfryiX2Xb|tIIX%52)NV=a znA%60AK~=4`0AZ~59C$w*cjtjc?kS?0bdhGg5qxn(LY0#gHYdNc>tF>fM5}*w~U5b z&?)tg)GQE;>6S8rWmj^3gf!n3w-}+TVI_lRr)82phVTVUJi=8FR|W9SPD|5?Or`$4 zTKfWoeboaMIo*)px7>f1NoS$dZav6o5ClA3#g}J6S25`haaXu3I(|S(x5@I1n1Zy&)iYeL!#qQgsTp z=2H_6U~U9e?d&1;7CxqLQSBSq#eljw8M@UJcOkvs%#(#H2*5!dFiz4Ga^W>J11c#fl%@9|%U=HYbIxcZP&HL~Z1_$z9|TG2j3i0TSKP*M)}Ts8f!`F? zJ*Kpfx@uI)x1)CI`u-q_F#`oF$DJC-F?tn*NKEQAs%;>;pI5KAi`TloZ{_i+XH?Ju zz#TNIn-2wzgwTjMBxN61lzdEE8y((;6&TVRs& z2I!4|fe?MDQ{+F;Vs#Zr)H7&XTARq+9Ztz^Vpp65QqXqtk%-7A`H8K)5jgkAD4sUX zzN|Td97@tL66;DV`Xe}5VpHl7WPWfUp;VVDUIx#3ez7re%8XpA9I_K`xJJZqz_NsYNrczLB(JxfdVsMgp3S+pOe9&1X1%BgCqeUp z(>PlQ#F`Jy=D8DS<~vY7o@&jz!5Dd*fiN@HD!)uJtbX2I16h5utG;# zygQ(`>E;}$IhCYJwgp_Zv0^aTJZw@GXzuYT+%co*Jn(0{81P-5ds)oOpUOTy!e~*S z#qIgg%zXb#JqGcyqh`dkSoA zmC=J?{&e%A#;*ISnuFhPpY}-CCHFAam0FTo(uumlKq z?J$E3L4MGP%G^aF)mf~UnLt55Nxu-b@vT%(^f&}rPc_`S7-@+mqiBVWPzeMnm*0U< zX#IwTV#LLDL}ra)gM-7)LS!>)oRIAq2EZXBENclTLr=vuQ}8(1Mj(k@T>ZY(o@D2M z0?z`~(_`z4ngVSja+TFa)*Smlf|ZfEEWT`Qc5aF=*Z6JT!ryAON%^%h`Bz8~eoHCU zzLA<@a1L{(UQgAe{yCI@epy;ZcoK4;Ght>PDT@6zS~2Mx+|YCBg=&_KDa zgxMVU8qU~FWw;C+!gV%|2FWxho3tt;l+xoL4s!@WG6F88kEE46oWeGH$R4UvFZZq# zfj9Tv<)shs)_oF3$P4fGl7HIc8IvVb_b)jZCAjW3HkwHYCwQsLKnmS@H|~x0POf83 zy*{uV#WzQbgpJsnoWR31ss1f!y-PgKSCI$$I1|4TOYvstt?>X99&7@3*+kWG2_vTE zrRfvv$JqzBdP$)(rt?wx&e3;XpM8p>Epcg z$4dvElk8`+ z0G$#5y(I2GOgxA9GTeqEw|*C5Vnqz7pl44Y;01uHlWwWa9;%Nl=ar|9cvj0_&4dh3bsI4-AR6Bh{ubQ!lN_T$lw!`X#z10;+y zQ8I~vYJ0pPl2tU-wI|j!ym+g;5v6?TL_HT5j$P6_0ziOxk(hKXYBKO2vt4`VQ%S@j4+@KS3K#T=nS1>g;r3c$OpsS2$A zBeNBqUCS5p29VMhR}xEQN5jd)rJ;xjbCzty^4yN_ciazO(@jMK%K>*O8Jm{mRJfWC zpRe+gFC$HapTA6P2Y4woQR<_}^*{Ut-}|Qq{jgIk7CPi#XUMGvok6Y4X~*?v$n3W1 ze_#gJHk7VV-T9`usW9pH8K4rfLDAA7wY(B8e@59yic51&NuRDJN; z9h>TPJsT(XI0V&5@>*fw3)G0zif0a8XEFI)0_HQrqPn6 zuB*Jy>`)jwGNttv4AFvIpXs#oUR*v!bt_v`ox@_T;WxOx!CA!Aius1zdxu6Yk(C=K zr03sj(y$Ki)r71}3TO|6-cAQCG9< zd&NsR$LrJq9K}0MpSojiYIo)$D+ygS)&)2kdrOUAb9*|GgW|J^^zZ3hUxb9bBx zdO!{&D6m&72;w&uIFE059cBe{u^KNmnV&@J@>2iXV@ryzMR#=Uk_CX}LDbIWXgFU= zvpUi7SfXRH#LH7Jse?BKYbX~w=s3QbG2s~wf588Mm0&hmqrsQo>H77s*{T^uD?3+@ zraR+-OI$lS(Xkj?=`wb^d+XFVfK+?w(@-(r@zxO{7H6x(y6KhfT{;fLs~!F|;LqFi z)a7M<@yDbgV1-B`e6?h<2y_d=1n%!g>u>Jb-~{G!0IGus`YjB|z0MLwn*z z8yPLEtfkEHQzxR-Q%iOJMEFcs%fCUCL`y)F^kk+}rT&6f{zH^L8eJ2Hz4o%52>>A{C7%~n_he8g7VA>`=iRgBFfRO zmVbjN4XuL(Wip3h{zrXh^GDt(Ns@nm=OlS}%Kk|5F9l_ktLERJNl{3XNKg)a=|7~( zj~2XBs(el{`X~i7!(tSa>DCI=iQH>()Cj&El#(9uwZt(N-Om=bcdR<^G%cZxG!!Y7 zR`e&o=vs=B8mv1L?@)Jc#&&vVx-+@=ZTX*|iT>e}O5Dx8g-Y|)*ulf4oA<9a%UuQk z20>av6~S%6!>NE-hJQG>h5bi8;-@;W{~e7cU$A{PLl3P#J$QtT9_87Q)r}sEUp9Q~ ze@rcPU>S}VYnVSBvky<>)+qqAd3t(uT2oxs8ySFPu;wl$u4}85>%_&${z@BmT3;w- z0QSZ-4w?+~QAYbjAg>Q@`c@>0fp-&5Y)@%I)wK`Hu6r z(>+%5_#}@A_7r}ypf$RG8vSIzKowI%;3hsJj@a_iMc7*}a=l&S*=h>uxKn@d9Ld-= zh|Dj;+NOZhv`>~U9pSHCBV10q{E2eSNf3D!#inEnzXI&OZ@J<8E-S4rc$c9n3*j!q zR7OJAh?1goni{^u&uBDJ=%UyoRMH2fbygGCmRXSb3Z zX?XM9o2bLv3;ay&BvqdwMYXri6(IOomJIj(t!q~j8iM~$#;ap-KU}5KjVigVlGt(d zM?h8DVhq$!C~}hH?4s1^rT%Akihu#a4q2Vzq{3zpiF;JXGUto64?)t})sQqb{-uG= z0ExA7V5`X$6rs5aCIT6(oqI?zhiI*v7p*U)s!kxPD3{NX+nl7yGzIv=_ zztZ*ngw*3_05>kCInXMM%oJ$;Ee)v2M`>&xO3(q6 zru_ej(wAQhxEe{GT4vNT(Sw1aFugaLNId_TE5y+n?1g9qMdch#C%*ym_l`TkF zKJdFLJM`6h@_L?NrT>%PM^!w|oTaK`Cnt`z|F81d(3hQi=xEtGq*V%PfqumrPj$vS z==5-r!Fs4Fp8hjcFcGoA6lsbkB0G;CS2z*zT>I;!W;munI_B83)fRMyoFWL1kVC16BQrQRIMi!;(x9)*QKl6&PLN#k@ivDOFAaLhB9^`&?vyjv z`G%Z_f~CMN^1r%6)DLQ+EZvOkVYc*VVSH9LhM=t~Plyk3Kf&oPUQe4lk5Y*9EG+cT zNR&5$eV*+xnif-;aJhHaHhG%FMA`L8G^_nJY2(Rp%A;tKm0fC*dXnwDfZ6SG{tU) zpEl<<1-Dr9eRb_z(Z1EAqIA$*MXmE)sN722hOY5WUDrDSCB&rnz0fm{mzBMc7|0O* zqIlL6fra^cvCMMLM=3KeXC1tGn$xq@EOpd&ujV)~T%+AAb@|gSmz{9&3PC>d@)xla z`huaOg1&-S;yzh7eqvk(vBNR?o`>DlzFq$WJvPI zdY_F0bq;(z;Avb#hh)flCRHzTX-ib~UnDSLYgW?H3IYh;dz^sI4brwlazghhza1w6B&LK&6w=6!RS1aG z^1-2rH0tU9oJh~GxpTinTKlIgk?u@Fq=WAN_lP7Kpb7U!CjXt0X+(fVA(e6@>CPEL z6Y0-f-}j$N(l1B64UsN;E=#0D3L^O|DEvEp`u___diL1>i9#CXO482hLlddfy;;fFCw*43ihtb7BG>zzSIIl3JI1V-9Ol28X4984TL&GQpJeCkOZFS?A(ze zZ*am&9yCHoS2536%w64sFnJ{Chd{f{O$?Ix5vKtkuiPCHFl*LD0|*0UXw>K%w%4G6 zV@OR&Xo)qeMhzKa%nIrq7SxLyN@LET;RLr-QN*)M?a&hbw5IT((e{5FP=3x-XTQ3# z;g11jknp$$lxH^PFbvW-hFLp@9NMjE4d!DTdQj13FLeVzT=+Jm`oq%!B5$t>_Uy+7 z`uQLJb3&~}g7-_P4}|zZs71dyxX90B{yjqdC#qoGoXXwu+y!FwgQuvv^@Tfy@48^B zHfZ`+#q`hFN47$;$l0MwWHtD=fcrmwA>41Q>;yu3ZRJ)0GIK7_Br@Ew;f8RWIisE) zdY79aYT9rYm;3+#<=|4SuP$=EN*12$Bh+n9z;rm#l$Rx%8>S9n6Se=BEpQRMz6ZQ$ zF5jl3VP*F+({K-U_P~vW(cJ1`%ks8!tFM?V!oeOq$MS?A-sN9bwx|N8Sv_5h3PlR5 zfV}!h?F~e9>i1&(N|x(IPV*da%Ko6K)(=%x*lU^iIDbKy+cD-YBfe8;qQ6w@@`7^7 zo?rq-H$*LgsZG;Rq;8s4Gg}Ub{ApUfqrHrM3SBG@#NH2zbOFB1?=mA?K{q#i>v#W; zwzC1OvaI|6P_U`9GnI52+NlmX5^V_S5YU6pI^^t`k62Str>M=u$0eICodTWh&kl1+ zrA3eY3!mP|s4%H0sivr)n4wtWOG@wed8WyemP5k*Ki}VV-RIorWq>{XS8`w1eXjfZ zz5lM?^`7UuM|`@?t_HuoSekNv?Z_hlpJy|BC^PAJH6s9=G!jbtlTj(7Dg(wnH7K5H zebZ^dR&dHARJG{A6%?WO=)~)KW~r3vH(k%Hu2L)LpLwJB!n0tin>YH!t8zmPFy54U zSq=q35|dUXzGkVapmQ30!Udt>Hd50lzoiCi@A~*Jt7>T9O&|Y2?x`)*Kg6~7eSD+N z4YEliX!}r{2Q&tT!ZE4Pg_48=R8DE64Jz8=l*X7)wk!X4qdn4)E2%{<^~w?8VwUR3f+ls?FQ{a0qoej=M$dSQ zd>A@Y!lze;=|vCfYc$VB5YjhRR#0!^6V$6QHS?rR&Xa1xVKbG+x)0Na78I+=7ylcp zIw`*7oeOs!7wZ{fFMumLD%L$nMhl>F<%RY`t~_TK+b13K7!|g<_vyGK9LngM#?W2g zIaM5AHGfR-Q@+SNJp8z>08VAz;9>|Y&W(BCMCVs#POsW)O1(1SP80#Dr;a982ajwN z5$hZiL8nIY-wx)aHQzI&q&d}gNzboST@bcvmK6EEa3p|!DFeBEzuL@*#N?fcQ z6}e}6av!H$=7HfyxeFR{|A&JaAlDVl9LV7wBDWzi4fv6v9M?EWR<3O_wtI{@N$}Qn zCIyFZZlvgBhY=MWD_P8l^;}UYx|}-^`C`*5qh6d^53ksSMoUl~d~t)w^_3}VDRBRGoL$p^DZ{uh=N=Rn!)FO?)*(0Ey=a1J!??JoCrsE zbfx+yCN#dR@5AwBiP?=WPZ>Y3A~GHr-0=`=o6!Z?)y%xPG5WVZ6BIf1)6~v^8bn=g z1}7_T@p%~?uHFnThsUUnQ}=|&_76nyI4F-tth-$?IsUIDGEmxrt+xS6W=FE!Cxua~ zFvzutHkee7eZS*gJKrR(bKiLH3bUP)Va%Ndweq`>1~t{sM3dMlAR#-2huEp1dm%!) zDmX#wr21_@?m&&u=Xl2)ft-})2%@|a#x@R^VOjqzHl0E25f|OADSv>?_Kk#4Qo;se zJ87VrXW_b}F)>Zf7kgfhD#Vk$zez6Cp{FF^KdRmo<;K_#|@Hn zjX+WXogM$D4jFITG>s7JK2F#YLur!G#ZZjVgfWy}!vBCbbRU(}XtQMIi#5 z!HER5avy&zA`1IvgvhGY2*#EBv?#c01De{&PHR%H`DLz2UFQ%4Sb9U;#>3HACwqK@ zWdC{2-U}t*8MVrNWFA9gLjW2hsuhk+)2gRXgEZuAv)|<=Sf>0~=IbLD2bAJ4D-5RX zUEfvlNH9&sB`ipRbCX1alZgjU;S{{8joNd2D1DeRe&a*V^qii3_i6UIOvU8Tn~uv| zwC0=Io6o&xlz-9Kx38S}eDBOhwcyM*4F7WYah<$vM}{fNtMiSKEh}7ZS(K_00{Or6tI8*(UwT)fUnLw0URU_( z!uECUoARc<;+%4(E+C<)3y;v$g@~E@hqZtSd#Ux4aeFj%#Ap)B%?PrDLqKd&kSQn9 z-cFslJ9~8|FS}KftPh;Y;-+#_gJ6-jtPE!MiHZ4=s4X% zX<0H%zsx7a^k!AEXQTei#t75xo4q#b510G2z^GSw(y(h!o&3n{nvde=sW9dnL`4i*KPW>4=nzCfA5BO=Z}({Acl- zZd*OgT4nE6;Ykm}LiV^*e>R(Pj!nlC`YCQ}Q4ZIbLX)9FqS+E!wA(kcLHlcukk`el z65A_Ps}wWl6wooUhoRZDl@-A`SMQ5~0XaJ#XP6%1YR*quAmTb-RA7w?pQCw4dJjWC zZMy4UFKWV#>dPWF9Qv3Df|%rzt7^0yx@5xfwoS&UTDG<|9mHNj>l~~&-$l!;^q$Sj z;YU*ZoFZk;7Si#m`zmTale+@)W1+$I>PMxES7(d~zU+WhOWA6w4ygzp_`2}2;{cv^ ztvnqdYvs*b)3-y7oQ&d5MzxtwHt0-KzloxRj%fmc-hr8hovemxSA*6|QeQmN+E6%m zIwtt+qegvv$>{MXA0DshUB8g!YX|GGkDb*PUmyJJJVH_T^Qhq2Ib$k$@#5!}Xo z2EoDC^3V65;GYNCX=kmQIdw0Ud7GS2(IJbLs(c(f+QqLlhT>`ZX6qsD1DsUfiJ?f* zCHc>a;2!bRea}v5dbjtz@|adAxUR0pO!qFuBgFMLB(}N^?UABz(Mv0-Dn;LB*`pY% z9}IDwP-Z4aCv334Z;fjY3j)C(KltV_))3cvnD)a}MQ52R`oiJEV`UAk0K-Td5^a`X z-)U}y?QCcgz}<{&OtO)nMl~%BvK-Bz(nn(PN*6&DjrE56bFBwsK7eVlc7riBJ)MC8 z!p77>n!>OuI8U{^*0~EqENUgf;^~L$a*gX6H1Yir74YbNHi_=#eV z@D+72(=WA(yyjd3flq>u3KP^ilv~wQpsOGInAg>?yRdJR)>MS6yOHxOopk6V;p|2B zv)2nou6!T1(eu2Bd9XF2`R4t{J0j5_^S!Vesw%6c9lWWNic|+Ta&Y$U3Z&AQAcsTm zO|f`z`naP2xj!BJO5V(RWtUQ#+R|gxb=~lNkmFcLks0?SG zqHCoknvFlqb);iG?@~d&O=5L;o_tl74Xd+dL?cwU>jx6AR*_+W#v+Z+^!(VYOKoUe zF`({>eTdZ6oI^7h>$%l_ecW{;y+Aoe**g;(e-6$-A>~ZuWiJVFtSiKkti!S6gptU- z5d0)rjT>-WB@%sj-%-}?_zdk7jnH0Ziki%uAEff><5y^ef$f*ec(Ofisb#Ci_wt;? zQP4AQI)>%FQ+Kj7Xx2GuAdY6O(AKG2wEordN5pkv^vtejigojP>K9)tHzX};NdABY zI<3tclI#g!t&Zi+bC2`g;{x}X;~p2f$3^aOv3s->Lpf4V@`I$-nzp7=8HPdUDXvJD zu0z|0PjoQ6NQ42R82WEF!fB}|4d8?)@*hJ+v}Qtj_tbnI(lI3^-Iogkrp6r8YRKNCTmEG?7bk_qZvCu2 z;zee2`i+@4k6AmDytJt$)pw)XA`X+=+LuM`uNxDzpFKQ0leNjX={7Y^tZnMkBK0@5 zkvN%aMdZsB(KPURQv;jGiJgMUm!WGOuv}qns!!jrRt^Pe0^sxs&kCX2u5mJJE*A6j z2MqgGS!)|x3`Krw(lC&lCjA}e%$_tb=}9P=zT~`Su{+gwUK3W+o=jypa@vj2!|lpo zyLxD<#M&YH+g4K_J!Yz+yioYl4WM%wqOms3ZC-xTdwW(P54nz@Jh}wg@FD+telUKRju@se2zfiFX z4|SP>dqh;3=J)^p+*s-YIBsRAGaL@hjk3!|_UyMbX8t&n#^*fQ!BNVfIkVM- zn5bCFM^f9ro7wUE`=80=@gKAGJS+2iKI~LCvYwXiDQ0ygUHc@~{}5RQ=O>SX(#bjj z-F|xAHode`#T06&2qDM1-%s(Grj+cNzHTN0LZ5$K4 z)QD5g{6>fKvyb`pzs<@#(b(^d>5RUn%EqZrQfLE(&g!f9xBk(UXDq2`=xsO(?)ne7 zQ-Lbyf5%seLO1cn9j@9&OgRGP)MW~crQNC)VXCF71=xU;VP@L`=+ z$3ZQQ_*Xap$ZAs+7paQ(=RrN`e>}GEoBRChb4?nt?)?B&SmH~*#BpJ*?v{DwE(S)d zd)cU{d~eC*vWr;mU5z)sK751Q3645{G-GMfFXXO`Mmn+24YK{@G!g*)$x)k_4|*oEh4l0Zo7k(=7r3^jQmAJJW=`1Jka>E- zi;bf;r7|z1<~|$#9(+Xo_6g56WS*GtjQ#4zFmkR>;Z0pNyG2ExqbD4=gOGx*~yrwIgI&-DGpF=Hq1GJg%hG>*dH zj9NwjJeEFgckfX7#3+C3Mt;^mn{HPh&Sl zx%_=f_C^wNVinmFNfr6h;K%0AlZtUtOD>cLjdkCP;)G3LlWQ9^^BX+gF$QIqYSRez zoj03_(te#W*mvb@keMhupg1u*iDsVl7FgDXRn@tw>Zyt-pgP#+yQZ2o1RU+BQ*AAu zO_Zx!*3xW_*%oATn`f_W;OL!MEY}D zo@M8Izt9k_}Uzi`{xL_Sukmt^q`+%!KTlFP0FJOD>d-w*Px({e(?Ab^S!eoxyqG z_9I&c#gw*1>Sp1c7Yq;UBndVFviZ#TNKia8^XSas2hQSb`?=3NJo?Buena@CX3ZUR z+a9j|ka+k`SbeOWr|_3#@2dlYqm#Wal34irShDv8ebAij-Ia>{@MZT=ebGnr67=M( z(BJZf4lOA(*%7nPZi$hL48G0qWGOM3U#2&3eCaT>G%RUIoY2ra`p68P6c48SWXtc! zJUnxFeaPP1?y^u-edWBUw1f=a1)sGI)Wz%j#{?VcY@-rHwl-KEQHkbIC0a}+eyH#W z!ij?pWc7&aBQ!0!P>o@%+xpAq6&p3abD&~gDala{+S|@MbgTt?=k$!;EfRJMBDMi8 zhDjD4S1{&oN-h=C5K8!4t%ADXQX6TdMWQ+k*p$CeD_?SS>ZV%=T5_TJ$Ro|VoZ9xy zbQo##V$I-vkzd|j@JsPAwqMXNf^CNc^pa+)_d1K}u+z$!NK*P~25X8c%T>a)N#8=q zF6Ix9=m2?{a&^#kn&18pn{+4#zNWkgAGfW}h;Xl=P97QR@kZ=ydZ`}jU~iGL_|ckB zGiX8|9u-&rNCcIkRYsYo^`{#9wf>){)t19H+j7`ybU?daYM}8l$REd3jb}XA|8TLP zOA`xp9kJ^=Fq@*YdFqMulQ_W!sb4+QqFN(#*J%LhdnYpi%!ULCO^)sO7)PrnwH)ZX z{3s?4Z=&iXsRm0mh_m%9D-z@DQ<>>u3_njf^#_uQ#pfj&)E~H5`@z#Jo>t|@wSRTV z#U}Hb5DP7YdZ)wU;eC%CT)pICd9jX_Arcez28rx-rCxgCy~g-jIXArS7Q1i}#wVmw zOD?dG|HQsessTcU#wLut^=?N$tzPxzP^oV1SiY%A@=fp_*IVQk5Kbx@+*Bm!b>IKr z!8@Y_-uG$it!XF=ukn8g?}`$5r|lNr^Y;|d2g`@w0zW@d0`E!JRUCnz^Zu9cK3oFt z(%r)Q$7-W5F72*OWyU#$sLLzFr4Tz-%9B%wgI$HuNfsNpy~kCxTh%)`qI$1t4S)Ts zvGWJ=&l0u?lvAJ{F-N4{625}Jc4Qi(m$S)hgn^S(EB zN9Vc4Fw3ano?sTJqQU&|ZejkGc+&-Z-j)0lFbmYtU~bv5J36m+F!SnYN>W#-Bn2vI zmEPRWJ{-I49!s1N>)8+Zsmzqb ztFeRUF{<_l8KtPij;9kHx6e)WT}NOxcKmk6h8h^m9^%O?_CI(Oj*g{@N5^c`u{9iZ z{L)9MIUJEq`Qb5j724L@YJ&f`z>w|+F(Ew+(h-Dj{Wr8GJ#;y<|9NEB%f5tcmb&@% zih^JJLsGJJ_Uk8NJ;#uUeE(vu#M`aJhhsfs3QJ6qQ#T0Of?4D=j$Fl$>6iZhX~jDr z`d_IPG}2BhNJO<_>4;i^N0nCmn|l2JU$i34Sk>;e!jP8U3TdwuA;N`P;gLPTmhhEm zh5z-n+^;2C;Y*wr5}Pg23SVMru0$EFIP7lI3O0t*+W>6~N?VnPm7!xJPwOoKt+*yG0!+yE!%Y1v$o~9HWDPhh?ILwKR~O3WeZYWSQgt z&UV@j&S2sQ_%J&7 z0;3k9*;TvXTWIQ(^uwdIN~j)))(6ULQ~^c-Qgi>((0701)Q6b0``HJncIx2uf1mK1 z30qU6wxlwgQAxiTQ84gydX@M{hoCyR>=GNHRHtvssQZOUJ-;OpEkmBqgafbFP#sMk zzc3o*2M|h?*mzRpmT&lm=^9Nbz1viV0pg<@_N&kU06ERIS2A>v%KU=4_R7AitC(r; z|Bd+Ue$&+XIh7m?p;!;2gJdY_1>2YMU%p6rTA}o$`xoYBG-w zKN^046ksI=%uu|a7QT>=(J5bLX0l%`CzQq*N+_3cS9H|4?zIppQjdTCno(OPpOc)! zp3B~wg;bXaU}DWJhhj#_*3MDJH116vIRHXvz^{hsi;P*p(o!8 z2AB)1s4K=`!&eOh_&0I73TTa6 zqcGY%#z-uwH2(=C8YW?|)TXjBsDDvdhH3{gwZ+Js?2xIKh9-0NQMG7i1w6P}vv(Tn zF|(0rAe7UqxINgvaZ+GdG{ae08)|Z^pQem&d+0E5?*bk1rwZuRt^m#q@o9841QFs(aVtyT=w2 z{n4V&?g~F!zT3~@_8I6R0*<(O?}GQIhvFRvC6|2b>sA44LRgRSUVHPk+#C7|H5I%+ z*4}?L_dY#zoW1$4$eX&3C#Y>@?oE;Ie&H_DoV=w<>Xpb>_eWL+<45Seq}^w@E%wAy zH*JcG1C=HYz{j(I_TftT;uf8g+=?>H%Qeax{wf>Wvk=*>y7(!>Ot~nfUh<}r6oc=n zNspk7ZE8I_wJl~L08y!?LV+BxR&8`}^$Mdd8O2WNUVhZyq=Df37O|u0)QXXja3)i* zpil1@A)cpIj`GUd>dd2E18UD)1p?5EkAmKC4WqtDIX^TJXXX#;k{f}qQ}in=XVJ1- zli&*ajjR*`5mfYRpa#`bz^pUX=N5vbGX6C^{uW>iSa zQp=-0(^@IT-24qrT9Q}ZHi@GOsi-GCm8y)B41)P8AHdW?1UrRz-WuY)tqdA{6 zU?vBm9e$TJYejpJyYu_0b>Sh+HD-ckg`6|9#y~zR7vK>e(LlgoD_({8C?P&7c<2U) z_&;YBn3%H(?a=~%XAqwU6>ku&dW#p(KcqUHG|H&fhUG?Eeej5NvG!g7o{n9gE+>G7 zTX!#jtO46=0X%dk)h&8yp_I0NjWg(QM&;{R`U-x4)SBRi`^QkC9p{0gu@ymBB6(X! zWNy;s@vhEDG1HAt5FPVzdgs`Vb5uC`-xEbEq#kmeZ1=slrPRlTBnoH z>@efd+p)IVsT*Vc{k)ea;G9-}*xU6JBmtZC)E3^lYp*W+{o{qdPrd%E%$A?BExRK2 zz2CU4RC5O!rk$a4<0e|st1CXzKW|J$a>>;d$%QZ1aZBsVqXsk2!uGf@8f8l;gv>4T zaXS&xSjWHFt>gdq|1>eK28#A&t~I3Hjy2nca%H1GK7zroI7_KC_*Ki3!LNxtBK>DA z0V-%qYUr{wz>VDC*Yat=LK3xZcF8r6t*kZ|^z~bX!+8bvQ%D@xa z97sPb!ek3lq7626Y5iTN*5AE9%HL*bKEN2Mb$jkSb5DV}`DjAvrJ{^Ku~-pf85U37 z6N}pbEkOFdkhSH;C{8KiZ+VPD)yM~cDDHq$+@)VM#T_t!-NtbnL2b2;0J5(f&riX? z-(+*ky+p<(^uxRL!#9h5pv-38V>^{WU(s*+s8%0cYd<(>t`An@b|M~S1IYKY{~tlx z#JiTLzS4l&sSyiv8sKBCA{NXLHDA*V zecu|-n<@03gmD)h3)PYJTt_MFah(1+Dz_{j@i~LyJ`#~9N;H< zPhtpNpDw}>bGR~evyCP#k&N}EVc|U$y_@K&oQiut)mAg?Q^?oWTs66-;<;DgtlJ%^ zBgeaKYk9Z{HFRfkFs^alODkA~^j0+|u}Yb%~96M1XtYgIjVElx{g6><;D)`zh}@F@k=J zxryawxY=WX#d7ve9(j|q>B#ro&Np0$gV!Y5CA>_((cW>iI>4DK*Xu@PaYR=ceE2C9 zUDE>u zoPR6Sg5f(V0x|nj5=Kn_kkpnisUBcb(h8$@>06 zq~QImM1p&4DO~KlNm} zy!uHhINDVZ>p6!+8N@0_{=QA$b3P}CeX3)sF7xbqcWMz4c6G%9G(F0zV8e5i{XS*& z-uUrD3T9W>*Vo0m>8w*tXRPNjUuJiFF62-42`c(HpB0IFKXop{g-OXJE5p%`lafp5 zuO@r#g(iI=)W8wsI-z2wJR1|9G zy)qKaIq8tFI<+gw>Z56#k};G-<7D0%bkc%261{h*Pswg_IZi8G>FFS(gkzVZ=9i-bl<%Bl>v`FZ|bAQ z?ZX|175`fK0vfT6uS}Pq;f2J(K{?}WcEhX6h z^jrOuCwMBMVOfHG@z0=6#RU7GJ`4(F2=>2zNxzOv@U?wLa1GL><7qOUh^JuSi7_~Y zxL~H_{N5;&+qp4RGyYXbsycYxNt`k5H$K$9l`q{XEdoupWW6x)A7s{IF2 zfKRl47yftrx@@&-#Xo@$4VF{&;8%+z^ym^pIF59fdNUc-gRq52wPg^74IpgHs0QJh zU=Eswhl`g(_};(nEyB@iLAb^c9wj9%M)(Mau*M~E!i>d)*w)cXV@AX=AIR}RF)2MH zO3UPk_KV%$;Al^GD@ty;imMlm*y84cSk)SfOKaxgyc_+R@RWZzl6iUbOUEm%4uItGy7p=%wu_ z04sa!EE|RkjC<_zJUR% zHNGNu{F|CWU7lN$e)Cfcu1LSx%$DcOL?1{x0cb9{Q~>Mn|8&@d+j_ngQ%gS!8W7Xq zR{g|~Pi1iNcCwG8-!vJNDZUSt4t^{BW~W?P>F=fNJ5jAr2kcw8E-@C$S=6qmKb0Sd zTJ2Y1t#zxg))lS7T4O^RW&1&^sV?jX9b{u@j`x08ibDm(c8#2bCr|kEnHaIz$WOeM zgvf1nIh~(G?kRG1XOdpidtimM?+V(*I}N%s>76R7_-Dz4WbeGhsp>sx1@v-v(UNUq z?#R>p3H1c>G!J;1H#(XhE26obVT7>j9_{$`f=@{BxLU*;j=!~eDpf$EI|Cdbu5P#W z;rbS67J&mS^&?+Y=j)~)CV!wVD99xFyR?TvTurY|_x19X}Wk>SC1jN}ghn zDBxQKf_BA_SaS0wZjCcA|dWEGlVAYstEi+oR#}z3LzzD5K zX_ckyemRX_XBZg@ERRcQHhH|KUnpF+dR&#>7QwsopTYY8k2muRd%}BqnIX1vxMZ2Z zAI>9vN?e_hln_;-NePV$nn+65{_JsFu$je%;Q(YI(nUkAHYC`X*;KUnrx26uIjlsS zm3eYj`T@n0GcFL0%^|Wa4%yoi10-hkolv~~w0N9&a`8Cvx8LW+iS>P6Uzxc;S!+?3 z(p9K4;PTP4GAC#iYPbfq5TEQ%b{4e*folf_KV$8{GGJj60-4@%S?sox*ou?h(H!d; zmiaUC%iPLJ;gg>n`Sx1IF)+dO&^uy_wYf7rbV#hHOXW)o|9XQ49-Ymk)Fx;op&l>u zAeG`-S74^<%)v-E#Ce+zg%3aQL)^(S70-QM<8B%!adX1GLedtoa739Q9F9D`g|Te_ zg(EChwT*4t-tvzoBEHK;5a|%Nq;NDV1T5o5c5M{$7cYu}!XIiW6s)lyIJr_^z(MBu zh8TD>%sH?!{jiO&)%jVDdN<24y=0anRg5IF9Bw5+=xFbKPXyVNceD!)Y9U&N?@>Z) z(Syn;PR@=MISob&e?uP}T*$QWp|F%Gty|fKN)qDqfqFBLN z))ybwpGct!=mO>`=cUOEM2Maht5g8q#%cyxqpYWmg*w z+`7a$y{3P(xAKx8IvD>*h&qzj*sKZ)Ga4wXBk_ z1Y)Q-kG~79gwcc>1@CsQYSDw+D96U=^G8cz+@8O_qLq5V_NaY3VyCBY|M<+sU`};O@ptZcb@87 z<21y(jTUnoRpVQo+n876HrBYQu_E_|=ir!)27+-N+tPKks&(;^=j=N7nF3OOQbg~S zqs>X6d$_A2rozIJCT+ewM!ay9GXgi0dcx_}2?|bDi(>wiUh9(9@(++MBZED*{1>4f zf~W5b*BXv9| zxNH~Et)K3fDz%=V)ib&!AwT^UEM}BR=gU}I=IfNfyY_CLbV?1|yhJNDR+~Gk_&))} z*^&Z0il^XGw?_91>u<=c*W7qb>v!L=PsJzW!L)z8IegxEsh)vY&m5ep(6WV(YL|P@ z=lT`&Ph`pQR0o&OcMApc`0}$bU)Gn>uLsZx=@G2iPF&-CrfmyF2tQ z*8O+>b?QoA$9l3DZ*M3x6ZFEU)7rnlIE-7QQVjz#pE?X~SQmQBnT7MjQmPF1t@2F;5{ zrXu??nVIRKPsMJ#oDhl>!B?Y#DLXO}aUYt}scHRG%J>TFcbKigXj2$%@a3D{)b`eD zb4Xf)<*?BdZ}hb0Y0Ri8pfv0#66#PgpSPewU zg#h6qv{b_gC$fhrKKyIFg_kw)Otzm6fazEF-3TSy?bL04tou%vA~yM~OA(wbR*_5iC-30;8xq@Hd~!cq zl<{&BJC1cV4+ZMt{`V_-UAHII?*mLlB|S^{DZOKM`+JCh+K*B=XF=0{;kFQc*zWSrXc*fb+ZYmCwXD?xf6kOn~(h4Sway;6=? zw@nlRDKwql^&Aw#>_LH+ROhiA8{Ekaf!Rm#zcY^SpY(rXi{%%Ld$;T}{?i@TSi5%f zh)CRYwc{MqOlS-LZnxApP>LH$?Z-v=#w?SYYidYT<+)ZJO#LHBs8j5a=((4qAh(Q6 z{=PugkOpqf?#}QG__V%^FhDk1837d~eFXzQ*F;O5e zvw*g$p!#<}d6U-H`JtY9iUCB>O(Q~D$1%Fj)cJS2rQ*P=wOiY}k5vT`Zsz95@O63e zYJ&Iw0l+;1JR|tX=GfvVadk63_w+}88e9CkP@ndh`JMZ?LkV<}BlGt-(2*sIy>>m$ zILF-yQ7p7%sz{@Q_UFK0UtwTidp<={u;MyGv|rX*VnFwQvaAN3q%R{h?@og*BCg2x zzu`6Ln1THs|R${inZOkxdj|QA$bI&a# z4cy3P^8A$suEvbSX;G|uw!Vvi>)Tq)�Mv`ZqvbxdW(c<_vF(E%viI(`OuV{n}r3 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
>QYBP%M?2Srb+B53ElGGHL;q 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 z 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%0DSlOPh_*Le3Pl^q_@LUAf51yOg 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 z zG&G~5*$uhc(~@ayif0<7lJ-XQ?}#_Wx5i}~U9cZ=Q|{%B@j6*n2@7o0<~O#~$!bW0 zY%2;5K_2?2wON(RZ;wJAUKer`ljg6Qtq&_!RTs!~Eu0G#L2k-@#oD!N)(V=V9CA~> zE0PT}{aY>M#t%j=_21BgjIC$8#IH~)r88I*)w&mBfnkAC(n74Yi+@;dWPCz{tMCDv=43%kyW7cn5RL_3ML;D*WlG5bDV-#}Z&r6Ja znN9)@L2l}KD8G1@iRHmj$c^8)mSz;qubQp@MlMSYVU;LyE!&WTekT4CH!Uv%;oF7v!OT8k@v?t)Y7%H}&ljk*}13G?8iua?Nj3{W`tv5FE7ihb!T# z|FErJod*w;l4Z+>@!D zvJ?~gc@N}a`6gRu0>(aDf2w(ftg43=9e_OavxGVtIstj;w@|J{aKzT%JUiaVU2FNF zxnX9!x)AbEe{-YRN)sNXkcZ{ioSNzPsv~+Nki&0Do8Q`mS)z=8AUA%vv?0~J6(h=C z$jx;xZOE`X1p6)hMo#^skQ+Z=D&?3;YG62I>rb(kNdIs1Avck8{yO!8@!O@T%@R_z ze=Ca0SICq(Tp=ijJhU?<9UpR53%M!BOU0kt1kI6wJj`$F2jV6o8F^Pk-n_kaTOyS2 zwe-tA@U61dIy{CTH}z2DtxYNIxewZW+>0Gc{Sw54=dNL*}#%dLT>C?SMu53WxcJZg|l2)|Aag&-!KO%H^`SjN7q(l7!sU ztIJwBijw*tktZbuW)MO2;bykz+sP=DL^1o0{VFI&~U_++6o^8DDKf|8OWG z-xW`6sth$9wdD;vq;YKu+s6DWXZ>(_BHo;8Nrcxfg51=H%M<2KnI7ekn|xg^;}eL3 zTF8z4l~RD1t_2xOPo?zztZ-cs{w^&n`R!iFO}SLYja+9LLpHx5Eer8_<%5tLdny}R zT2w0iKjg;#%Es-RTXACEM$NDBn;Fx^n>Sr-PAz~uv|l!KFvCkB5A}z4u2oTGgx?|q zZk5+Z^c%TqYLDunIl&&tLpxJ-Gvn%gkem8kY2@gl57_!e9!?&GGhyqWUCs%PKpy5x z`1!T7^&ylakQYH7>W?SmyX4Od`pO{>^~W6=vdAPlD_uT@n)Q&IdbKLvCQGUEA353~5AE5U(#1EC z?}0q@L&J8n+a}ELKFC8qOS=|_hI$Uz`WrF{E`Uzha=AS&kI00_k*Hku8mK(?{pyEM ze`Ax#)z1rUd8*z7lJEzmkcakL>yy=xhxtu4&CC~)kcWOtHJR~wc&BAI0b= zzsaf(;Z6*-rwH=UKfB^h+j0M*9CG7_)#kxl9JLX-JV1dXW9eV5TeZS7T{hpkue3KJ zpIIIbh9EcgmceWejiy(X z^?%4iJ7qr01)~FyoAO<4=DA6|1v3G;Dc{vnPq;361oALnvP{VPp1E=LLukL*0F7fI z)wMg*?nx>-JS_+WR4g zJ!`^2o#-Ep^5qe|26^g4>ObTrzw(@A3d_U6QA^L7En8Z6-)H{j+4{d`>+B7iBFIgC z*CaPBPc&|8l>Y|hkehn7CRx8}r7UfkF1;3VQ(i`1CA(ovi_bXx>el9MhTjFb@xShL zlK;rD7jombHBIJ813iWy5A&6taer{o<~KL);==l2o8Kb0O>kyjo#r>RKO^&|O{?Ov zZ7Ns*x$(0&IZZz=g*?pH4w**C+KtRVf=bAZ{Z&@`t%ux{qdbSYscvg(Q?dNN{bl54 z?z9JTli#Yi>|YWz$3Do7J)sP+*277+oH-Pchqr=4{!z$7`xCOfx~VFxD)SpGKO|DJ4?)LdMUaQr z-L|zVtR$kT+?LO7_YP_y5A!v}PXTL2zgk4WG6N|;=>U=BF7cxZPEOO`7(Uep9PSI{*k+7vYrsG{4Iq%%vW=2 zE3aE=^JUqRdn4*05A!Q>jn-2CAvgJYUtMzMM(iHQjXm$HpY5Ob*?epKd;oHj-}jl# z|1fC6md|c03yxU&*REK;Vr5lz_>0`F>Ib7|txPZ&cNRi!>gX@~rB$W1w#Au<*;yH}%2rjl4zv-{tV7o`h@4dm#_=C43_{TbG9*5Ay~2`tqvapreQP zDGoy(mZR{^-ehykYt;NwkI2IfVGAG+{UCe{^Mj?3(|+!+sDzw$a;3Q*a$c7^8rmVJ z-#8E5W1+Q(gxm`nNPU;EusWME_PD3`l;DMC2ck73I(kLGB0C4{HDR zRHi{E*b5<7JGaY7O8KP`emW_uY2g}uHRPIKxi5(bbEw@@A~A?|kh*Z|rKdDtFh z4T=5O{)l|`{^qDHx9+PRvgKwMqnaNag*>#!$jfz)$oy^UhtPf_U#}CkBFIBOG|zT4 z<&cNvqEo@}3bl}j_KV!ad~;+V5B)51Oe=$~D1RpI@3r)=Td}%awMhN9`0J|Itdb@X z9tR`xhM9nO7;=-}b?Yx)w|wo&i&x11=Os12p*$|Lnnv9Lw*Yce|K)uXt<9LpErs0J zzb-B}&Sib9St4g8adAU{$FqF7daju3ECkyel~n83k7>153gI7N;hoM1Re?lJmP1XT)^dRH^ zh&+Q)os54V5B=GYVRsuGg*+_BhRkw(0!jM+CiR2q59JIvnE_zo`E)k7YZZ=!Jv`>}Rg ze(&neO zWHyzjGUg7|Zpg#yTI1wi$U{HK{kzae(X$`&u-r2;(ZagrDCFUFjU4NihaeB_&%|f; zjUR}S#2)X9VJc_Bezz##M{xNdxQRX#kexawe zE~85p3m}Ick(;;l$o((K!}4m~%&-TdPsDLIPR2iwhyF>(i4bI$W1?1osvZ}89kc~8G9fP>s52SsU=<) z-qP9!d3fDsJ|!jfAM()7X4zPS2T>*<5B=7>Yi$Fj3`e5!bux4j3uOGW!>a!>YG=b+ z2zhwj+39sqYVl>>HPc?Iqw<;dl7!skYyIlk5$JBnjsMr{qlU(upcitJuk~i@CwBhs zhuqjR6MW_WqmY|=Yvg>M_mCs!^SnnPH}%%=xq)E*&RIVgIX4g#K^|T=d}2s`C`UQu zp`9Y9BWfKv9g%V5X3gE`>4H48e|9+`*c*{cu-<0aGX96$)SvZD%@TZdhJEn=$aUs= zI3jO}Z^8U-UYq7OESIL1nI3upFN{5L3t+~mv1v7JAtj_BFeKs`xE&ilx_Avg7ELp+Jn zmHKb%Z>X2(s4a3o`pbWWss#D<;?FS(@^&~8l>Xca)3J$yaMQ)n$yz8uTH`he~SOEEq{mpverI4HQ zx>Dw$#y94ugxvUTqxC#*y`^8|Gtcw3TlzPyS-oQA>PyxbJ$o$uv%76%{BO&{C$9}# z`hQ!$$XAB7Q|7;rn{v6TIDD%`*!3NO-1z6JCB=HCMCyOL`XS^mDPC&cn<3(0A>^i9 zgnusIcu^XWpH&iGK|0-P$c^93>p-9;NJ6gHoq3H%up4r{?%9SPcHO-ZJu~J6`y>2w z__~f@G{QeOl#2<$|7Yw?;Nv`&{IE_kx#=6eX?rZsizO}ukrYHpG;D|BQ15XUBDo~= z-eyHT1jIKau^Iw=z(6GT@%bFz^bOziJ-+E1zUg~>BtdTEX70(&+{n$u`B&AyyQ{zN zgS7M8<%6pJUENh(-Cv*8vjT5)(d!lIR-P1|B+Pv$`vbz0pg1B0{!hA8nq>YXmn-p@0hXT(@m;UM#HM15o9Fnf(QM!EzUpDCW zCG7k>SMRx6!pV}p3q$B&XOVQ%OZC;8_sbstc5Ao_;^p{E^2mX8eht@9gkSE`N`7)%V=#cf}*5oJ*ujzx2tu z>?kW<&bgeyu%KtZ9h0v0crN?fQ_{8k@1Fh?`;2-)V&BWjVQ<0#=~~YBa=V_9uH}4B z}h~F>luC_wTL=eN?0G ztZ!@x{Ygo`HC)^LOz4x6zK$y`L!mz}>6IK47W!dH*WDY-{ABddglD>QYzR9mh*M8&tH*t=l5_ot_y4LUcZ$69)>=pQA z&hV^8r#Zv4q(^gx7X>|;GaME4WX^En7dihwA4`M&zn~{`hNXg@%o$b+dNOAimh@=O zFfQoHoZ)FfPv#8!q^p0PPv#5SgX1n;o=XK1I*U zo^QUSr$AAC(zSi%a8uzX=~|u~ZYqpOSAR%S;Qs|(Tf27LlO|m|?&qY-cq0Y5!rzCa zTY2Ej*8PWP?{E}>k)r+g3BUAi( zq>H|*7iHgP6=!V`|Acg@U(z+r3h83ERoQLjTI$ftuLcq-OMhce$1%*f@$-~)DgSCV zXV@oQ>U}kDLxls6-<8W6HV~YVF6CU4xEZ|B_=oAEkVm?z!v zqjZ6=Pr8hU*IZnSn_f~_3@_ndUGv(V#y z#9=9aGaf~INxIY{@b|a3MqBH+d))bDxxItFgBnw-p7iwL+V;Kfy6*8Wk}megNv9NN zW0`a<|8R&yL^zte1OF#o?K#BlVxDMwT*%R-A4tUbr@)U=D8*-_s~zMz9q!2vfS;1C z^`b$CR7`l`f#hJ1G6D+gq5V_DI+I-M*97v6o6ZG_~If>1vd>q^li9TesQmg&FCZuhOk) zzpCNc9frAIVRnf4bBl(bC!O+lBfd|%mLEGBxVo#hxLL?Cx&&Dqk*@aK9q~2=`hQ2a zn;@pxgmm#+#M$mjgOOwX&q6p8;ZBOU%~k2SDL=! zpP*w2aOw7kcfP8OWzt2jTN`W1AF6_WXHkXYpU0k_ z!y<+~(#8G~E-|hRJtJMq3HpFr%+nG-LRYDq120HdyGgW&&F=jToDMo7UFwk`3$;im zewEol{1$XX)U{uabk%G3cJ_bLwVb;<-2p=~u8^+sAH~%`?0*$>y@IP5jJW-Y{1JV*elYd{7V0RTU3~PVs;RH)8+{N zo-gS4yCCVWPrBusYgmkf|M4MWA(>Tvb*L*=| zcM=XsSH19|wq6Y5f6~RC>n^TH=U3-?U%#8Eeg$ z;LOMHr#aPP*9vVJSCvwJHxu zw{qUsGXhf3m!zxzr&I6f|9_q7tNw{?1f0f`-Scpgbd?i>bwJLdr|;%_4a=mf-SAzD z2em6luhzD4&s|D`{@=-Q+dg5hq(`?6&qx=4sN$g%{5>UI>{;PBEiM4yFRXu(F699| zov1w`UF=W|hAE!OiC>@l0bI{b?WIS$*rAGt+3@!g>0&pb$G9acq+5ADzp~5y<)N38 zPXFNiv&S<=DMW^+B|U}*2>YZ8%i`o$|3KDrd1 zH0WQ`CGiRATJI|7BfX#ayh;D6WPI3=^O4GV*~DKLeCIcszE1x43H@Y)e&vSH7fGl6 zQT}TyB51imzj0M8Q8nq;zYhB227TrGRzTk?>DUFq(F@R@dHU9+hl6#yx-}(T?Z0(R zmal+@|C6qI8U41mr!VbmbJYnqQ;1W}cBk`1U$yWx|kGfKNod5B1gl^<;;OQ>z&CJtX+?!WkzQn!h znxMJgWOk79$1$C7=1G_Ku5{FlXxArQ?5uREe3Nu7zl;rcL<+|L9xvC9G1wIP6OR`< z@e|TD--jEctDBc}r1{+AU7Val(xo18==W9(@%OUCr}#OY-)#CyJp#{F3HU$hs@KC2 zZ+*c3Nmu(wFk2}+e#@kbzNlWDY*KQloc!B4+);S!;qBc&4OF zId9{hHI7VFlJg7FMX%fLoad33FJmhK<9Fh>jWQEq@#o0kcoK>I=G@rv*72l=yg@C(KBf z`ntWbodP<%D&#!GF(?ZSI`><%KREM*dD5ld6FS4phd$|QAE9%?c9V3?*M_iC%rGKd z{4=j|!vE`ZPOvAWTfW!>`M^B-d7aKcMTewYd4ONB!#FQVS364>d!9M&{5I29;aMsFw2f9V z{we9{-0ut0)lcr_bH7KVt6$w4U6eYJ--+LDcA&o6-enD?*Fu-7St6bCFWasd{J+Gf zbGAd$X=nDH82^;?kMaG|ntxi#!Ct)u+}S6cc3!>2g`R^to&Gbc(Z5Rkt2&+dx!+-S zpr5SD8icGh%#%)iSJ&mS2K@S@$MURG&dnNqz8u3Mjvv)Xr+|%@ctP)B0D7A%9G<_jXhoB{8NFaq^n*o zUe-S8Y6s9?f1@id8V*R;_G@$<3eK8%+4KmnNLRfSZyC@1F6aM3*UhCj!aV6ozU2A_ z{J)OZLC_oFCh6MVMGi6rJdEmi(BD4$MtIUfKezZsn2;|1d1w6&;>=jRJSSc3d1pP3 zGY?4@yWLrrm#FObvXEnQT;X(ncdmCFcKraMYc;{ik{+*rg+T@=o7!k>>zp>USbTP|8LOk$mkO3QXa$GfNzC#@hi~p#B**#(ycr@ z>7K=ybg|D}7a#R$fyaOt3m?+B_es}sVtH)z<}D2y zlyob98s3H%q+9vp>m!)|mUMmv(f|K`vjg$`3c~+MH+}V(upU-jBHi*$&jE!M(#_5| zKFp)7L(;9j;;awjAJVmc5hgjt$$3h;_#3*&6t8T*PT$_uCl3xtxAI%8KB>rAA^&sC zMk*nPS6)tjwkXU^%nq9G)mnilWwCClxcw)~y zK8O1aQ_`h8!?c@@@ek?ZhuDtLW-2)!kuLQsbS(Vok(CiTL@tkvybj1&Dk1pP| z_>D`XYrZ!174cz(bn%C@*)4w;^xRIzUOr~Nd=4u-C0*<`)XO#a1HXOJEnj^?M(GEn zi$5Ur=U|)P#~JD3x0vFt4OeZd`>H|T#O3KhnEOL!2hCUTJ1RcRldkgd(H~TIl+ka{ zt>?Z;x|S1oiU}jq#h=|XU*SoC&+j-)3i-ITMbkYm=n`kFtK~T)-O8WimAxe0@)f%6 zL3aMI>8s_$uqb{2PLeMA-orj4!~KRu(#21Njtf7UWSMmF6Rg3*)HWuoNEd%V)Ribc zJTBy58H@{6d!$>w_v5x+ct*OE6G3j{_1`cpE~Z*jrs z#2?A^esAp|j>ID){CcE||J+-9bZdYvOE!g;JU%W00JB26*!iB)#d}fLq^n*oe%ILJ zjsB+O{nX3PpZ&03$dTcIdDa2xYUdRF3jIInYBy{WML&GyDK zq-*(I9I!s=ny-rkcGJtjbmy*#4$nH{8E$f-VCWrqKguI0?n28Jcl)ecIxvkof_y5%rz z&@Bqzm~^Rk$@eN_IX$h>Y@u@zM^ucZIUe zlOD^-J+06uJ=!_GCwQ|a2fFE1pixauoEJPHo#i?I+6D$wui^Z23;i7E&q-H5p==a0 z9ForZipv<`Wg+Lma{NSg{)E@}!F3EkHE!5R($)XtrZeO(l5Tc*I9lCVljy`@nRF|U z&DEqlRU!Z3=mG9Z$rtjm$Lp6@&{+Q`UE2HR@bV6iv4m${4(N7^3G1I;j&-#v=LP9n zFG9a(J6A_uzI~_^f8tM?9n@}Hxj;SAwOwr8!&cPx)@`I%B3;Y5bw8c2TPft^gKI<5 z)t-p1qM72Kv8TJZb5Fe-7k6%-bS=;By%gu|z~Qm^o&u)KJpHqDyequ&^!p5Ej`Ga? zDYJvrBcg9?cJaURn3wcMAj66L*;~AciE`G)5J#|HY z(xmH|)aRs&9o(~@;gED`NAB6r@RD>b=gvZGrlIqvO<(3Kblp-pNxI2@E3LRJk}iIN z`FxrfFFQQmt553#RYAurJtkf3jA*dwVWd6MrTn1p3@+MXqGzN_IhB41ch_;A zZA!ZMxzaD&80$rye$`?tAJyetAKaG_{fR%5{a@u&5Qtx|PUpVf66s=Og&feAb+{Csk}m#sKL%UF-}|1v&R}JrA9%Wt|3%H>8cm#2tS}Tb6Cj9@2|ZiUG0xy7ppgP_Dx^a3-Rb;z9&gne*+y0 zb~|$DY>{;Ff4usW;?XUac+hQOs3KjT+$E2(OfF7^dKP}~?gTniyYrgq;kZ?e{*2@FA$Z7_f zIr_Ko9&wC2{mRMDQM%Co|9P{6*k9?qP(4q&=;f9lLZ5W8r_vX`SEKFSBwfm*bWs++ z5$RI?Z|&yw#wSkxwp+)TkS_L@sT!YU4$n!Ke3gE~g2Wt>F8P9v`7-{%@1>U?J0;LN zf5G%s`R-uZNz$d9uDOIo(p5g1(Z#zW9qa$3Yk8C|F|CH7B34jxexQGKTJrMcDFsq>$=ZLSG!@gB?huT zBwg*Zd55h6{!hA=AMr+F|Iqo%rmxCJJi4wF62FtAYdM9^$9oq^S384lX!t+rDj)PS zUE@@wYdJyxfb;jqq-!~a&NJ?NC0?dSD(D&MT3>vIef8{Wn6}W@hIhh?QohJpxC2Q? zEp(ZWocJqd2Pa?q;vVT*&Ib>-_5XlhB3<;_SzApA zXYKR23>==4F8+X#-ex@5u}`{`Q|K{p+X3lPPNB#7`;2rgC+Hj=hF7FZ{R;ldu0_b6 zdv11!cn%xGJn6AK@w?ow(d7UKM24HBt6pjK4gOEMl@qISTw{7dy4nY;LUDm_Qqb4a z$?NB&iy!W|@!ny9AKr;Gm6rwnUOcuII)BylH92;6Ov-whad6`!6NBaPFwpC z{4(ikH(e9j5pt*sdXCrkxS)@0@dWri(zSjEBfP+TOImk$M!MFQ+jpLlu6D+Khq$oy z!sGACy+8Yk9eMdmx52`Rzh-vO`n|h5s(9t0=jj`F1rR{zU~SZ`_H?c;RUwhmR2hzwhNBe%%%OJca|(wZ2?jyP22o;@7?Mc%gIT zHTTz@9bou46qzSo^>T6Q`lPErY++$>plXGiq^n+xu_v67$LmDP@J~EmIszkyiKpwy zd}BQKa)hq6g7qKL)lY=ZlYK8qSNjP4mYsCy{0-AL;d#X3BsgVR%?3 zUG>eMmr#+;d`E*1aTo-`9+R$i1Af<O$gHnEq<2NJS>?4QC&Cy?Z`tGfZIIAJU)iC$B z%nq9G?kvHnB4mfywq>yxf_L-Z(B7XRENUF&@p(bI4ip#pv6@t=Q-r@?Uk!PE0G zs4yX2^96lj*~U80Nmspu&QRNjq-(xH=VJmdN!NOLgm;RWbLVfHzLXF8!ezNid6IO> z5xNe!7n}HN5(a&_Nxv<}(JIo_o-W?tW74&~JleS}wvpdniBIcP&r1Bg_+ZkMbkl1m z-E(h;*^D$dR~zazy9E-!nUieT1%ud+~RVbg_fbxr`K+NEbT@-J(dq z|4A4Bfi=_3$f1{mFuih8PwY7^@EhN|%e{f8UVc3M4E%l}M-N3Wh@1n`)y^(H;jEPZ z5D{GTfWj-%rCsj=FOdZ$*5};cH#?|(Hb2|MFi@R$o^-W;4lfbdjB|yTVlP~mmZtx}PqOZ`=W9`VD z)y}_={a@%i1DhM1Bwfn?z^w}{k}h_BkX{eP_@8vK+k?9}GtQl~ige9)ql(L@;jx#K zj}e7E(#4)`8818|UF@KAE<8<17k^Va_nu#nuH~2Iz)fQukuLS9c#iB&{EKD>EvLr8 zySgbaV)aN*a=6a3M7r4F2h*#N@PAKt_riuwj*(q|# z;Ku!~e000Yh5iM9rwgg`-Oa60scU)yn34Y@@b{@xIKYnW-G#Kv3;hpF z{}al`l3W@=OKRxv`91)ku|uDHvEL~K{Cm$LmBns2ROJ6?<9~VzXWV5l6^k$?UrK@W z8fgf7>sUm#d#969{-^rQ=Qmu6FfI5JP|x2gg8t;IexJBNYLXbg&cE#R{{#Vd4@0@&S}Rw=wx@-==$qiO*m8a`7NHuxUenY~hBPk+1%z>D52tXFqiQRnz}RivG%X zg96Zcc7Yz7swD)7w6x&+Xw$I z(u4oiEwelq@Mrb(H?Y_jFS$X#&cEjTAD7nB#W?Wf*CXHRNBF89rNjTpH~qoKSaDzh zi4{|kZ}tPwFaN zy6#t42AzN1>5uf*cr6BzAbRAh{>|<+^vPHK$Mb+cOvzXOi|JhfXXK~y`yg&8W9Q#A{k8o` zdLPUU{2uwKe(`a#`ZERlE&LRG0g$SNpMoubKPEqw&wu>DpOByGHy%8*?8B7&RDSX` z*a9%K7WpaY0{ERn)8FS0z6D96{MpALXYV*GmKtAFT0hJ}ytm_@v%6Z$^A@iBHy)7MZn)61eseD)=beR@m` zs)e*=tNBmJ*YS(;b+fmMs44ksU*&JRU0>)=zUq(FLD>Lbkk#J4-M8)hyQaU|FY?_( z_C4}VKGUbyXi@*AuzwaGrfuo57!^%CBfqGhoxI`I`S)A&-_Z`p^e3O?uTLLCpM2U!`Ivm_ z8!%#`s)euj25G-B`7EEN_xB1XF>+0&6wru zk?-~Q>)rh#Jr5>uk4yC@-~5mKkMhIrWAe5C!Pr^nw{oz7zX|zP{>aY(WT&nCd>?K` zzLh_wAEkZD&I{AO$X^an@Yf^X?9cSpK2%7b{6fA9@Kcdr=#SHZ+?EXEw)A)M1?ma; zh5mN2MoTy)zbK!(cr$BFpPFar{D-E0QGR#vrANN`2ldDL&w%#nlV9kE_7gYqDlgwI zi{PA5J~uFK;jhP_UdUrYzUptMkQZ$Ac-!p$eX^63aDuEC7SxBB5mG7jTJBTvX@`E&z%!3DaTwx!2?4U3L}??3s}-_q+6hy~2) z{3oV=!5`*}o;~to{<0B`{8M1NKKbS!Zi7~9AN@c1W*^~ScdsI&{u}&lcbX0UPrmuT ztsP#HxL;f$o7U3H+G4bw6k$fb*_Y{Mnd+h)Oz-@srhhD-r2o*xE9#LS^%K5s5L3TC z`Q{%cU-)qWuWCuJ8^%mOZb={4Mg=k<-A?RH>R0? z=RY(3efjlRil)Z+mwcZ;4zs6o`u&#ly1u<*8B`@7t3Sh`RFJ)Th5B#fU&gUco0_!>R(slUmWxbB=o^;^^9 zKnov;tlHAAV1UR6<;HF4T>$z?TY48*eoDU9pAH`S+~F|$&l-FjpjgwcQ30Kq>978y z>94Kf)=6qYJ@U1EDBr(2h5ny>Z6C_VB6*5#kM>W#_AkokAZNw)^T*_?{gv-`hv5I@ zn|``6Ud+Fy=@I7jZV~x*Q&d|C6uw ziG1bR4s`!mzHNb2CJ$rsr4(-sH*UQpS-&MdfG8zfZ-t5H@9u0XM$0&O zYvudj3R5p%`BMJ3?rcfs_|3?d@|`|&_U*-Y&b|BI`xidA*uV6l@H_vN>0k2KZmna8 zE&Lw&Qa@+Tynpue`)A*K|DAVEzx&>qv+sb`CtswTS$zNWnKS1Ad;7h`ch9|Z4v30; z@xL?goPFm#f*a}-vMZT1OX=4)^Y*e;C{BuNn7?UshFX0xr9JtWjjU6T~{e>GBFJE5$ z+Th`83QH8GUJRfc6dud~r{)3I}(Ot1#d~6kEnz-~A z_4s-Ug##|?pM22*{Iv=XZ?8%SEIbG$F|uali+vHhWc{=FqWO-bhW`JZ=`ZD%qCvmq z!RDP5ub@Z1q_1t=Nb=ApU)tZLD_55(?zTK=lUtKPO*5s$YvcpPD?3$rt-y z(m1YMxG;8@IKEzO`{2=K7uG3E$rt}3U%mlp1!7jD->fbShei6%%dG#0h&Ka%QGg!# zqF=$Mls@^Ezop;3l_PXir{u@-adw-E zFe6{=EBRw^kP8P|=f5}oWBDRK=FlTw(qrO!|2l#cV{}mAKlRsl{L61$?cU!)BSZ^| z{EB?Z<#PYV>Id-3?MJIu@jRGLF~{Uf|9<%%sE7@|dI5*D*6byqiI4_6i(Eb~Ic#kfiC_7AD z{tRl6V#^6)M!x9xk<43k@|a&d?fj3Xzm)Hz!C*AlSp8`2(cm*lE59E3qCb}HwzePX z^8SsuhTkvJ%c}1OkE8)=V*FE)FaC9PSYhOjPEslukECpZHYQ){|0=rI?bQoIyzPdE zu37&+z49;j)rJ!AA8DrKi~TG;_}JgKs65c0e9_eq_c`JZzA8~`p$wLFkAav!evj$ z7yl9djxNo2H+H&stp~Jejn6ZZ-3QxS`hv&I<$rzcL7cf>*ks`J&i`WiYyO!pJ&4}S z>X9%0>C#`uR{0`Gp?^GI&-7O0i~qUw=wj>u{+N8Rzx4fbaw9Q8oA~tL>*5;Eet;dO zwe+~ps$qGAC%+l_Vt<4>7$WjKK5^;u7&`x}>96)p{1hG~^vGBJ6F+|<`{b*98FCFO z>4xL-L#W7C{cQO-&8?+;W0zhcYpM^q71T+MucyKte@edCSJHoDV{{jfy{CJ$GxEiM zacGdEuXOz|bdF4aDIfUXGZ@^zFx*Jjk3x@prk5%z&ad^!xBNBgV;o^YBHBOsVjsxY z>hl7|^3^_$AG@Gw zk^a7fW81OFt(Jb~`HzNMqm9)oYj?Icj0^q$cUS+ly>Y?x$d~fVh9Kq$7=s`v0KK^H z_#fl2H9r5iAJWAV1S4eDfv==A8+2n+ST2);dkG-dIkS2znSOD`E;4xeP!o-JYU@TKTLno@9S$A zeTihJjRe0N2@^ben$J(~;^w;0D>e)ITln0WbkpSq@gn0onmhdEY2+(Mm^ull_w?{;Hl z>hp!PL(=)bOn=qy(|o`h#noSreAVyMcz`QbR`^@PN@%s)Q z!XA?^{&92RyH5Sw*WY;j$*14`&NqANeqlns_~$o2IsNAQpMKZ8{f_~rF8{iCkuY<7 z_N%L_a>V*Q+o0+Ezq$U&PhlGb(Ia2F@5^EV z6Csb?{BTUZ*dJSCm|Kqq+yK|Oyc3^(IMTI?6l@M@rk=m~2&8+N4X*BOecG+>(>JeogsQ>c#t=I0 z4#WS+m->No=n|!0z?iu7;LGawZ7gGTwQ%@nO1{|7R;T3~f&bTNlkk7?#lM=X*U&%A zsVK36=f^`By*j^khon!wmS0xKwToKe>Nm!J!I4g@g(DQa^}7 zJgnq_Bzy8v%RMDu^|SXiv4nRKIq7xwFe~`-KIWS+-^S+~l|5nI`G-t@@$YRcrZ*^Reul6;5u|GL(@&|G}A=-b^%->(X2~+a5{I)KmFCOh^ z=}`YZz3mKK!`3x6K@8COhfROg5220m)FT2Q=C}nt^2Pr#a*}B67$D1I*jNO`&FFqR z9|Hk3d^|0mkL7Xnik+ELgybb{ndZAwk4W=aR;zRzUq&rI~w44luWQV2k(=w?N9kK3(phu%FExz;_#a| zJcIquuCA`2{gW^HRcphQ<^KH}yLZ+{Ry*kbJl|5Pe?J6QX7Bl(yL;%{gH{wzi1eiJWR=#`ceK)as4dJ$d~#Z;MK(V;fO};{G+D7 zwBIy)#qc1m;Pl9s`qeLrE$^lUq(1p#KmGQt4W)yBB;Axmr?2Y#YHNU7r0B*K5XR(7 z`8B-^4!WbQt?p14@FwJo{gkgPM9t<3^OStiPmU!c%nx?1m_D1ZGf%xdy+fGIBB zX#IBn3DckD=h8kOHv^(azUq(n;_MR>qbWdt&(|?o**{d|YyEHAsmrw?j;P>cBJ0;< z^0oaSU;^H=dR<&>UZ1tX`%mPne~}Lti0m+JNw0iu;BSPP&)=s92-~xv^G~|^H~uNP z1{vS!>yfYJCtto^@tul3`L29CAAqISP4tQ6JN=6D1LLOrPtNKUWQ!;!Kt2fM=^4F~nt&ThYlRk>Q8>MpZ1QxsC3jn`Kf-`dy*Y0@?HLrzq9j3*SeYUv3#rLNvnLMr+uc! zq>mqnS%a^=H)CW#{~uxcXZxkzU9;$spX<+>Kc8I;ee$z@!e7Q0LM~~e{>e}M&ne-{ zNX|4EH}V%g{{O?i0wxXlvH43qz7eJ^e7)rKExCn=?;rWO{OB3Mk(m}@5%pL)62`9_N&NG z{x98&K5A@;G5M+fZ|g@YCJz(xlm620b*+Dv9Hw>o%8%Xw{mD=ECtoW8={rBh^iTew ze5+fL-y=VjU-{9yQ2*qY@@XWbugFjK)%5sBgyT1El@C6@U=#97{qrY$N`9&zB%O!v z##S^VKl!)v@eeDoGuPBVeOyq!9{E0hyw_@v&Vt`3-|H{@XrYRHZ$IIq1fqTzACn$@ z{l-to_xeftXn`sDzI^b$RK8h@eBsCPb$+br@5?WI7VqIbouiYdgLeh z9GylB_Q_A>Ppi9D{;DoNe!gV%D*D&uN50PBG5!~T}1!5^mMR_{N$f8JsZH7{AAzAXZ=l%;~Oqa$xrjh#B%~Gb9Y5JeiQPod?p`5I6S2(t7jPhkgxXV^^$4}r^h$Dy3ITzU+a(j zyYAiW&dFT=v3&7OPm$jvU&cp~Z`-%Rh5qFG^7#$$ihS|En4WySqBAC6%V)9miX)yA z^40z^_FfL}6{a8^FlBq$rt^weJLAr{`zm2H2Kau zQU6}PtVK?xT4gS`xA3z1g{%u0O_>bj3!v0iz#TWXMulB{k44iJT zhk>_{|Ew6zr;d9S{2dv|RrPyYh+6EOHdcUX71F;8UH#4E6-67~tzO=u1yG^bp11ibGjC`?QrMGR@}+;+#Fl7R4#CK05C?VSl3U-W$I!XBT!S=Kk-icBFO12T^2v}7cg!xy{=a69 zeVbae3s+A7@-95E1onBf0%s+AfJ}*?{$NHD)6-KbBjgQHX<$K^_ zZ%Y;v@}+-9`#Ara4es8QzDnNPoRUxfl!Nib5Pn9!mG8l28A8XmwnTpCpYi^0eCZ?O z4s)-C4+F>T$I$outuDH+7=A#cqy3XF-;d3$?v0h}mo9vS(fy8orE&g`eC=Pix^~11 zm!RZf#sNNIlah}iz-Ji6$<-*irwskcSNm>tw_#g3KGD64xs2pLEBQOS>vy}dbbwIf zp9{b9GhO{}b(J5}3cp9b+LwG5PuQVPzU9C9=H+XjFZvsdRg-_t^T*_C{o+=I9Ll*I z=OK_kAz%9koEll92{m*4GbP{3C;W1NJ0oB0i}!hP=~QM{I0UecD-QTZc3wCArG7GB zytL}VmZ3+!8}m8haaK>;T!Us*3)0#xN~=e7$$u9Yev4y8` zm9R&?v>)NixJj(j#ed7MPrk~R_fhnTuP$cFb_cfd^0yFo&kkSN;aa30`}FB%P#439 z5Bpv4C*({04LnuwVIM=RDfwz&44>rdEw?jcfU=oSkM~qJwsvta>;d+s;3#l_ z&MDJh%a3M_0g}d8j0b3X>fT1zp(huS0Kd+6<@PW9`u)Kk z`C@-e9C!5viq+f!^~u-rB|b*Tm}bflv?5>HM_k&J)2aOpYXIXSe+zHv!f%EN`Kn(t z{AQSvZ{@S}8rzLSj9D9BKad~l`RLAkuK!p*`+#cr&d?)Y>L>Eu@<-^CFZCb!(RV-! z75UQt6#RvYm_wreTk_ZR;NM4@$+78WqKo!VzSrNlWxtuQ;5Z#VoqZ#MO}^yr0= ze~M!R+q5rY+EkfVq*z{Hl(_{G`>lk}>9G@eQ&O%dv z7d|!g$d~>x)}Nf?jy}*Q-|HvqQ(Ht-#ALw3V_|z~V-}{#fpBknu z>0S8LFeBf$A16L^-ZK4t{w{oK=#lU1pSP6M1by?pnypsUr#m^>tj>$&A*h7*?9^- z8)i+u4?i0^XT1MwdLMo^^vJjR$^1A*?jOTPAF5;IihQ%brq7oLQ9onyUHSDhs+EU- zCghv_HGRHZ2>!Ief6Fh=h8g*0UrB$yD(z&PYCQcKHJGEAlOWc z?d+@QHzQyD&u$0W@Wqy=Lg#JMpXqh?D;@4e`X2dOe%>y0;d?`$eAS=)Rh+<%^QWqf zpTqNpG5M;0Og~EDdBcQ!^*{2he>KpwCA|y38)oEd`(}Dwnr8iV7EOPzp9{|$dgS}^ zx$wN9PrldRh35?w`M&%vJZ~7crO(}en6%{Y!t;hH`M&;ex<0M%&B*uqp?iUYTMc#I zY1ID;zCYXIJM!z1FZ#*Z=?}2B@9$^z$rt^026tpz$EH{sWd#0DzWCn`zWA5#VS0mG z<^y?L3%_xZUg82vkg{8YyKA3o|1lw7>Q6%F4Yn7)S59`tQS_92sUPw+I!;tz*5qSj zBd@P@&Sm{~^gUoZ`zK|SUypp%UvF&{;fF)t^Ci46hE4YEu=ExAV*i%#!(mLmmS10= zD#8zk3HegLc5*GRok_W zdh6lBqlF(d?a}|gXZlk5UH!**YP+x7MR9D9^vGBJ9<1H3 zEf0h~`6|B|-Z)fsei`04jLFyb#qh)~ym6S6>FeQ*!<2ljAEtNVjl-;&-mRXX{?D8K z>YtY0hc6DjCchYe^~rbnV|1Cq6Nid?wV%ny=PQLL4&$bLU51JM*Q6=mhaV2pW_m0G z+>xb2{mlx#h401GCx#ymouB3PH@*u$9D3xNe#XzY_p$y#zSW=caY!V`|7qd7@WWwD zzP3L`2XJwc!lWgAzC8>7C*PMZ26++#%-YiD@Wi3BWcvH`@&Sw?7<=S<{bKA9k>77g z@4^#@%B7dMoL#-dmIrua^2Psj@D-0HiE#WTb^fwkk(ZrE`%TFg|I+l=itxo@M!vL9 z<;RN!OyBw0roZ$*%8!#f4gz}Qi~hoe<9aw2nKVMdDaoQDU+UNRG05jG z?&x*HnEY5izc(Q1CqDnJtu79JJkqj60e$k-J~2J6{%*5;75Q4f&G5}(T*z;PZw?bLANR)wZ+&oW zrHd%9_r*H!fAZCSP>Sy$Gk5sE2ki~UjK_3+YROuqPUIeG``|DVn6AN+^XcML||dsrgxB1!0xZ{@S_v|`10{-{sB*~j>PeWfbo8z1{v zx=$tY$K;#+jqlGNO~^O<8eiH`SK470^-unffvniF;2qHq!i;-bdJcpYLU~8T{UpKJL&3X<8mtFqRH9Z=2q!O^T^uey?c2>K z`1-{CILQ0Tj%_XS3O05b@6u#h^WFtGCzgZ44i+s#(ITW8}&HehTgb8NEwp z7xBMBp044piswk6`mp@PxO8k_MBGmldAicK&=yuUJS9%;92egG#tzcUZ`z7;3(N)! zFNssTM0qU%8RkATebo;lF0BWzq=l&^;-r0~ci9lzsJ?++5m)FD$5=^P2v6E@aILgZ zPCfRCQ@@Jkiy!V>yzqiJtvBYkApBYY!_HStUn^hB0vYq2C(iOEF6Jv;5OFIW#|4=S z<&iN(KKA(%S1jyM-h?=9AH?x&bg_HoM5bmp=M=$CZd6Z6ro2j%Ao)RbhODoQ{ zZ^P8(8*!9Ggb92}ocOcgY!xtOnxS*wWBNv%Et5BKOT-CU;<~TkGf)I}w`@a2oal>% zmG~|hPB33vyF0`pFL6(Z6aTB@@G61@3kPqXIH|YGJ87|1X2rvgusaeXx4-b^%W>O1 zM04&eXMLBq?#RiP)vMb${!V>;CJSyn zc|@Gp?*`WM^-YnVIqG7#i@Q5Im^|MF@8m~j7pV`!rMX|4+kqAO#EHKcF5YsvJ9vmA zHg`5g0t-Xp#Gef(9}OGMA|$YWVI|`|;w1MQgTZI#u@I~C4vFTpGcaM`JwF!r0LPQp z|(~T1`hf^;>0eW zoH;GOPn%I6(f<)AQh`f>Tm9OZ$QyfkE`F=uBNE&*FYmo~QzTBmmMpkK;>7;Z=c)1BvE2q(M zKJ(`3vnyxbIe&Wb{ONbT|Ma`(PoI7*JS9%*!{T0k`^^0N-?7-2`e#q&O^K8Gh(q1l z&{T0RkHw{-sp96YnZ6>A)1qz+X@xsQSlLlnSn@dDXTrJ^E|B@#37G#8CsN(fc{zlr z(-4z}@gH$gZ#A5q*dlPBIB7?+(suFM$2J2*;UvD-?#RxCz93H8x!`n33$dvN5&%r2 z>?1-oc%APxeI?&pGBL){J&n&MgDjrm0xQgWoWzktv%qCHiGD=?OCGw;`ie@ablMWHzwD%`7{7@!r=oAz$b%_nafult{YErZX?8- zoQ41hzY{l1U-2u$$!S0=w#f7KDsr`tv&=w8^dDE7BRiC%d7WuwB4(IL)OZnzLHhsmfq8|7-n=GgB5^>%x ziqn5`87tzvT`~@TnY!T#apHePzW5}eYLYJd?Ksi4$oU0v(vF-w(H1xjO#lx1zptCV z?YMl=dY(A1uPoQdYNazvSRqdRl=Vh;kq2iJ^l?kRHC45I6XLudL|nFB2nWP@zlu2f zUo-SkOTKm`J(*bZJ^78MU20d$71t-umoMUc`G&{f-Yc^Wd&lGpTy`qt{G2#v=hiR7 zteNjA>4oa|L{EI5>FerOm%Hlsl@^I}ewvnl{O-z4;(YnyD9bPZjEQsYqZwo$`aUDh z*_q$1@;t~PajyLmSDxE=MV#~dQ+9A}q1fN<{c{aJI3*vih1x#kavQE?ziULC)Ay5> zu>0XDaZX=bExZw5o>KP<)26&==8O0g#$)E;Wm8_neOBv2z7gk--G-$m z&PE*N@tsf|hbxc4geSzg`e1eFied_wz273Q<=8@a(Zp%B)wY*I=M&R6)yF9f{2>u6 z_=j0$p19OLfRlEPc8P!WAMIdPh)e!g#*0gX-p9nH{;Gz9P|bL9j66Ffl;c<&93wB{ zqP!#GQoB6mN2#K;Y86i2G`l!G+-NrE+b7QHQQ%^}L*i1uQOno*XpH}e%XaqV%XWU= zC|{1=?LSDfM!qehS=8K#Pfg$Cf3Y`Zv~7N-!y<9Hd@>r-C&LjnH-+U1H;K!3DRI#* zW8!jsC=P6GmT6n%SrdmqTDR}P^)%vMjM#VB%s1j#wWi4{;zVm5AH=wRweL~yn`RfM zN0i55mdRWG5?mZfjEKv2h7P6&bdD&j{}GqlWy1N-d6*KH{Zw%G?_>B0d0Cm4#AW|8 zoFVd{Xl}Jl-~0E?^HNx;utZ#GKjQN6DpX&D%j$+F#5q4uJv3i8YTN%JoC_@V;#gc9 zoyce!@qhk#)3>yr#Aht+H&0wyKE<&cG^9o1A)%A@Y5Nr74n%Sk9FXYMB0skYK^ogt6CCQ`OL*h#R6Fun8 z%y^HuX89t{GJZ~6*^Zn%Gjo_V7QWSzjGZ%6b4|YNfx! zP2#d2Bwn(e6md*k)?dzL(^fW$N&kiOY7W;aJ2Gaaj++#i$QSTzE=c_LmYDHJ%ce?JPJ65NH1@ zHkRMZ)_gOL;f%vvW%@Sd#T-rE5^-huE?=8xzEP8kxLhArF0o+5h{PwvWk2vZ^LfGT z6Ia^r@->r}%lP7$d}Y4s^X&{w-~4^Ed<~~lF3C2`6Ia*QaFRw!fVFet>g5yr`abY+ zYra?SmtKYSKjN~VN?r+<6h3H`hiD)*Lmv@W)sONM^ln(xQ`y1p~wN_`V9>3iZ%o4yH`^j##b)EBs#zBh?0^-Z{> z@0hq!--Jv0J|nL5KiP0DJ^!#hU*O6Dz9O!yUy*0HSis(0vrDN5Rt0c~+57V{ab^2O z@e#*3ep96#jfgAjgSeO}a8HRV?V>pA#yOLkw&L~tBPuj2Z z1Ez2GXW}IMysNo+;V+`>B`*6xiHm{npMMF?a>f1!ak+k-Jn<|FJTWwVv%e%9+nWVMT_i5suZ}ZiZW7m$ zZ}dQ|-*J1sDT+gEzt4!veifIcG>~kXT^u&c$EXRMPcv@oE8<-JmN?c)@1EJEnJ?u5 zC$?TD&e^Y&N6#948P29>;VE&>UkZ6@Jp42L;_{^l@Jr%cy?J?7$B;L-+328Y;O+3Z-ZUZ3+ePIO7c1_7IPWitv)kfPTsUgV z<6*`Rv0Ib-=acsveo)}zN2yPoD<5(CF~6a^SIB+X!0|BS4ZYMFKSyD&k#GIhsQJ}% z;&T7ez-bei5tr+?Sf)<(d*WMleQP+@+ahr;Up;JDj+(IlOI-FBlV>;zLkY*k)ysFu zW|s;0>==2v(VeV^^Do5Z?}z0}9K96hUx>@~=5T3I0`uQ(vrAoH+jX(J5JN8$m;K)4 z87>PP5m(ojrw>wnJSDDPzJ%jgaY|g>&Iw12UmlY$w;@u#b35&RkZ`P#r50Rq`;`(a z;(UFSICazTLYKbWLTI# z4u@07ej>0!Tq9q>&3A3Yff7DGPF}6woe)>(E4N@Hj`e#$obx}^BjQ+ZN5qNNHf}F= z{Zc=9a@XwQ>doZE+p9$OiEG%;Zm}l68WPvAOT^Ki_lRrgVL0^ySzdllT*EFHj^Xxe zYM8T@^5L}1a3~J}Zf>RWo%p=r_dI+}9PPJAoY&Xn>8;uLISMz4^ZFXjZofw0n7I5M zOoys9+CZ$3XAOD9cAn}hhY=_7k71&=l33%U9z23o<47tK+^vaSIc(= zTg7oH9iI9|7!jBCRe6Tv*i?Fir^HF_=BEyqdU1^Zh|7Lj;?BV)@_R{K?#CUDHWA$1 zL({ia4^3h(do2-{>(|Lkf8uNwajp4stSk9GA+AM_Vx4fmJzw7H%{B6Zxa_A|C~lLb z=|bo{GJR`$7%qRd!aQ*`KZr*eP|fyazzT7>-q_`_>l0n&_n5eBXTjlNg4!vB3316^ z78c}*%(QeL+s8o*&Z^Z74v_B=amg+^t$U*zXH)Soz{wvpyQF;Ex5Y!BxTJ5wIj2It zL*kO1KlxPFw)A+3>^jST$fJ9EO?hoolt8xxn>N8F`_P2yg>_{%fmTz$}CJPQ5a zvH5a-!RS}7h;#Kud1bxz9-Cc~pEA4r#*nSF4eCd&h<}# zS_^(s&)4JPU>1I`Ph9c?8IKGH5Am93`j(5oylCW`aA^!7xX#ZreN(?nd2Y*DU}2uP zq^~);SR?gCf?FXj*-vpeq~N9(qVZ$ml3j?S*z_fw5SRQk9qvTVZlC>txMUZ_NqzAT zDI9)B#3er^+r}dqeDdd;UCMmxR>A%+amjwNEv*mu7G@5^22RH6?y*L5gRnquI>@Qk?RFNM7L)k6Q*ns4(c*(>6bzo zGq(<3{zMU%kH`7vBEpEcmz@9W3Cwg5$F9NnK?58CzR>)!` z;U;m(4{U%Nk7dN;7GX?Ws$av^k5PnY#3es9oEF4ddhFblY$m)7$9?J04oy%pPyu{JRO zt(ULB<$mL3y?g~OJO11+tNB5JOKuvLi1X#MxLj`(GrfwqRKM}lR&HB`C&VQ?N1Sb? zB!%~hOMVb>+>VN~ffvN3`l#Wez|Jo>eUFnDM^E#_HOiN_!PH+?h->JZaoSZrCNB9w zt$eXYCSQV!UFrdG$LS$B*+f73!t$l1*y6uv1(O(YRZ{MJ`5LUZb{;Zxa0=~E=zn$T+J?N8zQ#fX?yt+F7|*giOcn-_Di^E zzqu!-Z>~26{frl_=?P23IeBtV4FfSLS)N-|#5p~PgNNqk7M>92?Cf!>hGf0}MYuT7 z0`3KI&d!u)n#Qa{2c_g&}bbKQRB-_9=Pq5m&Px77$RnG{8guM_jGm;_N6kk1%U5U&KYX4<~-D>08r- z1LL$T6&8uB*(Kqkz?;PRcBJ<>p+@f2u>SXj`Npp=*8hmB)i3jfP*&U_aWy*=7fXln zA8`%)L6l5DqQu^>JKiqR+{Dn*E|-tPS(ZuV5pfOsMI1Y$P-@-wwyp{U)TR0*v>8tV#7i}y$pZtwxm(<=IE`C!5*Z%@s)Kzdp;!=O$ z08QcY^#Mu;!^vt&y|lY zr6Yu!#3g+tvqmq3{;!^|;G_eJ`(P4{8s&Rd&o|<@w1;;?^-Y;W;*y`5l9-esBf}XQ3GX{id2-OrB~|^nYzQ?h1L_h`6GBf-@&b1E;5LI80z15{7ys zOpnE#ic#-A#7c8`Nt|e-{aH|D~j9?s}Ax1LR z|9*?&7gLlJYR8ff(av81Q%qGTvUyeKXHgE^TNxjAJLp6CoVf;s&>0$W}a4-Y0 zsEQgn`CH8{Rv(5#8$;9<8d$YO|3{qHSKg+qV3PYI1Z*L0NSxK1$;Tp|1&?5hr%RNzzYHcb}^N+e)17KMVB4 zZ!>*G55ZY;{IoU;!2ZWExOBTsgyDCSII**rXP5ZnYyth>F}QLTfc}p-X>U%R`xBah zcSxMr*)iEmVpEZ!`CoaQ?#8?xZ#>%(MKe<9{dTj9>Oq`rapC{*(bw~4$O+>=;xyk@ zoQ)Jm#7TRzNXgg)gFLyh>%@hp$H+@Ks4FYM(;os(7GPc;lds%N_4&^I4%1iKr7vH? zalpGoTwULUX37OLY&sG!vQNdXcBP0rF^K|^@We{@ae-0e9^>7 zwsPUmWO0k3^VIZpdc+x?TttuPFi)KN0pIzSINe>u-CD!)cYJSrg*cI_8McT04Ue5X z!5tI!H%w~sjtTo44u})K5_vHeS}p8vIBJ(CLC}2I-*EDGWao@OUx>@G)rQ20 zogpuW^@AVtqa)pB*dva5wBR5Bzvp!vg7oR*wMm}gW+g7Z54^jH@K)#z^bK7>p7>p+ zuk?Qqg#hXg@Ws5ny>$=Y1$lPJ#DzuT#7}{p)^moU}K{yT>Q)5y6{pXlisf^nb*O|B0%ap*#d5A9D*7rX@Tq^R@SWab2j3FN{4} zV4>AsIeGazBm*5hl8dlp@d5eX?>4(gz9lZjir0LXi4(hc+yiMK2tId*Eo4NTNYx{q z@}8|eMte!W!YT~^JazdZIl2o8&?Pf~Z3O7LpCZ#uiIaNMY}W3@AyfCk_SR;6Xz?X+ z;#a`gJFXgaF2AKLdC&bG)3<>u)eTF;Nxx>_wAL`zp(0MoClS@&+}a#IvPVE{=p>oq z_k=jHAKqF0T&h*x%QCzihOsB*_K6dJi5=C~Wn6{#LN_nRwuJS+B42x#kvQAbl}z#L z{N7x@r93ALxOw8lE+y`xwfi}IY*-;qq}FiStAnh+$HX=Du(J^#Jd%fyG5$NYd{=hw z)2%6zYK)cc{nhk8Vu+1cAA;-EKVocw)emuC4Q?ql>c82=Gx_3P!unU?80 zBu@OLEFZ$AT+CInM_kj+z?ljv@Huf!I|FAbC~ihvQ(xd*)t&hLrf*XZ;7nDOw@6%5 zkB@bNDI357yh)tbqb1yW7`NmL!`deyAAbqYi1T{1gj)}X#Cf}5l-79n@x4(q+u64akH(nCv8t^6^#FgbNOm$UFl*FG_*@t7!hZB@V&E@$qtfrfQ{vSBxMd|ps)cV4Q=cz!QQuKIJ%sbmE??3R zDNm}QD@gwdc}$#^Z?uLF^py{9*mnVaJwh>yF#IMZ4hsh&2{k8^`8<3H2gGT;Ve*vT zu|w=z#ely~<-kSNQi1jD_u<7gby@7g`v3)8WLKylgO+&fUVWFp-!oLb5^B2LI9>Izx?)INEZY$G#N#%$ z5uMyZx0j<`?Eez?(~(X-RW?VL-dsLf>C2hc+GfO`1pd?)J>bG}%>6ObUml;vnPqu@ zr2FmeEuAg@tnNdX!?(ZF{SMkc@hZQi!TPo%S&WGP8Tk9s_3Kx!+q&1hy!yH$L;N@c zx{Gfj+;u|yPXqqSg^S-)cBJB}H&(8Gbgg@4;k1Ykhpzkg79|TiRn5 zA^SVeOka_IL*wCNcBP@~5%FDPWq;*iKE;RjPy9~>UbYx~ocOrzh>7%_(OoGG)_;i? zed~BEK{wvp+9O`U>y|&l3h~{9*U`q>Z4BwU zY`r^ocSm?=OV?w^#EbvG?29xJz4sKi6YWr9QE#Xbc-hk7XzbpE92+bB;A z`BI?a|HO+ulYE{L#36AjUt3;OZn4P8Ck2W zWpLDjN3S`rOA8CSxoEp|A{@WopECRS@)z^Bd;~!8E5tkd$8}{t29=YciXS)Sr+C6~ z9M7qU;`fP9_CXw0Jqly@w6H@aH;$kYM|?Bl<$Iy^b;^tqx7+-GNs_rg?fhSsw`*}( zUzhzq7mT@2d^gLNUTDGMu3Dk6y{A6gp*+ppp1OYm9{S6{t9Yxe0PFSAb(XSRN=DXb8m?L+)^`(9kdK8G1dN{{jH zaq@j@apl=3KKnykJlmYb?1v)Xwc)va)3+gCJvbd_Oe*w=&;G;mFm7%-(a0t+BEAdV z&7LZFXF>nx1`oF-@nO;^PZ>wIcHA%=5}*C2#Mh3)h0dQdeN+FRcl@yMgL6=^DNAMH zw@7@}*UOi_$I2e7tRg=3hlPClb5=L(5ug31l%LAO_BAEGrmu8sx;#^Q8^%BFbanjYuV}hHT$E5pIdCAG5#SweSgiKz$?05{4gWFW>2$t zO9pd)!St=+rCVq%P@njk{RQ759sNJ?HUCNYx&o7Cd9Yg=ucspyIV+RCF6jTi5MS@z z(EtC%hW|tUI`)PvfD`wozWp6@|FB5BvrojUGbeoP|B28233rd@Ie(U$tC~`FbJ713 z-^Jh7Kh*K%9n2~5&i*J5(x}XQ`SPkd>fFeARySLADxly9Rs5e+o=m)ray;cL<{ z|0UkFN0tX-lQZN@M#tjK>_nz7(&SjYHOV^ukoeNyWLMrUNyS{G!xMk&{1wx;9Z&PP zG4vwwrT?q^DBAuv`akidKS-SBc7NC-zO<*{+19-p$YV-;=?@97$@DbuxkatvBjQVc ztK-eKlA!n8>~l=L?exfZec|AqPQm*P<_ zoN|!OF)`8HUp0NRJ;9G{T(yn=VHMnO!>3l2YE6_7bA}P|**=gjttuA3_|G@Og!t^A zdeZ2UoyChGxA~ute@J{6e_Q`q;vqg&7a*bY*Xs4_@t9xu|Afkm#Ap9kz_N?~oeKl` z74g}g3EvbB{2uYSKX2eQFDbkHrp@xF_~G;2X0Vi_M)~D*2jXwrV#1{&s5j*I{<_(x zi@(jDZTRSI@c&kPj*DHtU^yl}+f(Gnc-Hc_EE>sb5DI|bKJnRq43FX?u66Tit{L&! zo*B>1!Hpi^|9_+I4<0Wo>I<@rm&P1@;_LDo7gMeHVMKfv|DEl5xpqn@pR=E|m#2Y` zHE>9L_BSa%7Nah}gm&hyFlgs*n!cs|)8dtNKF&gm#OLoRMJ?9U=U z<9(S%#MkVz`Pn8Ggs%)nazM*>LX+0=@N}CT=d4Ze4vEj-3&}m6hAU66$rr3MHGNAw z7FRXCck>CqMdC|;GrSwqr0-otd})6>{g}?YYb!%x@Y^Fkk2j?J_azHBYy7hn!aUymH61#N|HYD*`K)tj@sg1#k+r_hWxZ- zo{H{kU_yMhXTtLj3sfH4ivDQ&;QTad%(wi zUFo4W3DTL4Y#NhHHsf7WOHq;y%Qns3NG2qiYf{n@2gHC9Rv^FyhLUL0sYqu! z(wSH1b-s?*`8r-n!gQoFebSkZbf%p0oqNwM|Cxc{pGC~zeCM8a&+Ydnee?UidHR8r zudqj`jxHji0yrZF3qAhINxtUMGWVq$0E-@=u`eThL}#vK2rZ@UV6M< zcntbZ`}5G(oJI2Ye_vNTV7}3Y@oLU60DX@>YkwdU*iY+71=|CChrXDm;aa0j>cK2| z;NO`4XUQX#(YRCmKT>@=hJ2#&gvbG;$%!xVhH+LUq??qFn#wyU*{7? z?^>8c(AV-idKc5jo$~M=>q`94{{w0tm!F|;qIcqi0qAS_6TK5B>~-^xdse+c4?thr zpEp@;yO#&lq7%^9_VM&dgT+6n`quI0>5~S_ps)G!I!U@$73naHI{7pGS=#TRd#F*p z!nl*3f<_Z_=Cq?uc?x>O+`=DHee3#L(8EMao%D3tOeOIugyH=3j1K#tul*bOCufn1 z4?$nYXQWTgBKqS_c_`^Oi0WI{Uq|mWSO$HMuz7pu=$!^5(AWABQ`&4-Dli6pZBI|1 z6gcXZ$MH`JEd0@~`tJEB1(rZx+sE%#k!};4GYmmrx2HM1Nwg1oUmvsgLyAH3A?Uq* zGJ0E(7HKH{LGSaMqvs(!88h9B*FUP`zo2L1&=wZ~h5_ikzHNF9(ml|3$d4JOqPMCncQ(vP;omu>2GxRljIBXg8mHcuzop&A5(vz!?BhdT!7yAgk-Ab4MD+c*5}#)g)k6EA&+L=aXZAS+y{j*L8^YDE;64Po8-ZSRc@IZ_jzRD2 zqZ?=?HZRJfmp&l+e^%||@|)Xm+p}B!^p!QzcL4ex{SNzhdbeBmjax(#_CR0B!}lIZ z>?GST{Xv&JvY|I!BgEF^pqPN(*c~k;kW?W6)RnR`jeb&42!dDnHmMJ$;|a8b&1#1JHYa>AOz@T65y7AF}EEuvhVy zB@637x}7;%zyau!eS|)}+w@HKIZQyG^v(W`{_22aQ~ry8QT0vo3;mm`JG<+R<|{0N zKII3YXNI)WgvnvINH_w0kBZay@${4moyS7bxz4V`BPQ0)2zOTmDV`li@Ua%j7QM?t{KZWfk_p85I@H+S9`}{~?`TBl~mH zm~HF8-UswGd7q5qeg_F;NdEBKgb`Df6k&)$jhh0#S`xBNypY!Jn?Q9xQ7G9!F zN1#vjm-*@rU~Des*?h~oVGR0QU!u3zA+%qgI%@K#xir_|c;>AaVp3oDE2?iUPf7oY zNWU}}{ih@Sa31=&#s5s$2Ys$@ArH3hvVRZfrq>nG<9Xzv?F!g(5&C~s?K4##EIG40 z1JI{41_A-s9Mm9rol+DQ5TudBX}UMi$AhCq&f3G~tav5Av{Sa88p@$xeSy|WK0 zJO~TKekVQIhiUnLu7tx*c_O`|rt$AIdhTjx+$sP6jVc}>Km5gQg=>HZpm+XC^qkp> zhidjf-y>^@zohL+*%Pa%u|+xneT?Vn$IHT`HD(NN6sH2CSIoW0>l79&L=r5yhixc)iAMK;`W_gXa7!8#FK_Be{dh4WP z^Kk5e9yjIb%5D_@PYU}Gf9{qT|IzB`Yg8{|hi?G-m_LO+*7YL#DgT4s+XoLBizZqf z=vRpb8vlYm#+&dLQd2^L735(8`q)1)dgQe7y@JKR-O|@URrL+ap!fcg_(EK&!YrRk zGy;9DZ{jaa9d~h|z!>zoJ&oR!h~^JRQ{{nBi99U)9o0AHD`6eoi||PfUTV<0W~-VX z7=pe>`bd5w{!DKHt^Zo@lji?H@9in{I!Jz%7Rj>(l|#^b`=B4G&f*WEuR7ou^ge!E zzq2%d=>Of?K1|Qmm;coY2`xy+0qDKHuC>mNQxJLB1HG5u(OXQ*+A`B0Oy_U(u?|e8 z(Mvd_(wP6^-&1{){plSnxr(G|&ae#n6wiqsQ|$_8=JYcHeX5T}kJ!x4+f)9ZNw4$W zR>%?PdsLRjTmFvM4&4O(;VpVXmo9~3c^3YDt*@TlZ|l1Rdatk1Ltp*K%;{$cdatkD z4L~782YBSx65JO+@jsJZ^|e9{K_BCX`|jPxO~P@LzB*39VJ-6a|3MM|!oQ-|3P6Yf z=%c<&-?-e>YWyDPqdnaY*E2o$L8PJh2Yrt|i+>#n^|_a{Z)n_U{2+Kw54+y^f8~v_EOup`iy+Kio2g!g;7P14L|MerC|*E z*uGm0=M6$$VJL6}`k2p+UN=_cx4x4+3&%zL8@*%@>JI1ISHlwMD|w9m?TkSf&fw3} zp!$3*TZiHw^ga4r{F||>wxfo_8T1CX{a43x(p$pq|Dz)QjUn{SK9bCXIq9(-HSB>t z#Sh{^_@^l~Vl6)hppW@E6TtcdvHFGy=wp5;=#%}meO&y<)AUViJ2r>44EiqltygdI zk3ip}FKYiv8^F!Ibo&@H27Qg|N#uuC4MueTG1W6(Q)r3MjAaEc!4|Nm39Pttel z_K+|DeT+}pzH!MW>7)cLhP_MuAJ9kpbkPHJP|8zp5227qB}_mc^Lb5=&Kn;~p#IN4 zE8;<$TRh?56RuimxlJ$IL#&s}lM2?pj6mNb-6j5&e?f256#t-)`Mg0N%ORdeZTdLU zFSb8~g@4}Ew`==DSOR_WmuwFy=#xZ4(8qXI`LQL(@>Lp;?AP>ow@uDL@kyAhKYs}N z6mQrP)i^6g<_X83Pw^1xGt1hLq5m(`J~jWh-nOom(K7$R6ngb)CVtoheeC~OG&a_b znEyd1y<}R>onD+U0e!6Rk$;>>iMf{fFFsX$Yk4Al#(x>~wSA--GH;j7ss97|9+ido zhku3MOcZ4rgWkn|i$2P91bP>5iJq+!#nSd};a{r0E}nCGlL#d&fxeap9m`?@XxPc$ zS{A*;+l;gi`r2QGAnYvqIqa0j=tbdZpW{w>Waw+_t}%-G|4Qvs%fl^Q6>ebw`Z|7? zUe*DkEG+*X=qr1+ZjB@QgD(D(9^AQDW==m7(D&$f7jMPNTAIIF{MXHR=$!Ie?xL^O zB}DBo0)1hh)>Q>8ei(zkus?SU$)5Sxo#~H2-=p6%eYGZPQ1GY|1H6U6H@(tbs`USi zUgmvY;f;!4;QN?q3yxHnCD0f7QyW}2=W9+LPN$dPl>eZ{?}NU`C&u6CX{Mf~rugrY zpD0O932NIM!1TwUuk0!GyttqyVp{&`{{Xd5JaUlL(4!#e4b-xwDPFaAK)x3Z7Y$8uD98vla6M_**|!__@f_nzU8 zj2TU%x21Pz&Gh4nUMB*v1F6_OL-7y#3B-h)!!om+yeN%g(^t}B_?&{Nzwp}PJ zfj;?H37EFnn#1CUA?Q>4k{DX=$8P}I2YreMrLVT)@`>Vd00UzA>I1|2lip_!smo{sOfg1j)`n zL(s>3;`qz2`Szl)-ziT@CefJ0{}A-GeVW^a!ZGM$ee^=O=(iNq|Di=Za3YfhfMVb- z+EV|&MbFz|8op)79_VBI#BNdqu(x6dMM>E z|Db1mbNY?#wb7>BQ0|_83P+&l__T|_>E!7SZEdFuxYsu6_U@kKM*2JdEc|fQ*VAj^ z!us9y)t%9^*Xj8|B@auW=lpE^xAY!xex`6Fm+ANP1t>n_F>KJ2e*WrnegO)bKxzIH z^lG2??|tljlHm~a9RDVd(vueS;>PvewH|0C2s%s;)e$d#tY8*+LZ zTWT#jHz0rk=()br3Cy?RWzH0yINtZR^*tG|m+?>UE;eqp75)dH=XhZL8uf2Kb9-xJ zjW%zeqq+8X)(7cfkVzpA==m_R?f;Rv7hz8SS^SZzFZ);D7AS9kmaH9X%`)hFv*@YT z5J?z;UhIQ+{&WS%R@sz4)AG-_QyyIbvIqJsK^%3;Q_w@6g;NcE-3`zs|0U4(NVaI7 z7Crb6LC^ViD!n=;?1MhDPlG?Plb^%+_>(kxUhEk363=G;nm^ME|Nf6s`}F9O$&c97 zBWB_*8|_g32ff56_=6rdBAZ2peb@s%*LUMDL$6npy&J<{gu&cAX@`D1ijBEEKhvLRF|1;`X}sz zK8puW&v78#P#ppvg1)qWGi|v`?PnJ ze@3(D#b070p&x_3N1uGWMgAgv^6=3d{CS%r!G!<9k8k_8MKY^e^Z|c>2#F=)J!->7da$K5b;FHfl@p4|<;;N_yR-BMd_SC#ZdV{o0H- zjMfDVK=19-pf_`dJ&*;rzi$AHYZ@eM3(03X1 zrM@M-={o{_sc%Vd`i{Hh$>cYEk3e7QiyK&DZ8v=vezNLY#%H>L6$(S3CD2#=>BiHR zKts@1`j+$%XupHM-AI~CL-`-{rTwWwrFYY9a769JG3ZNuJw4mf>R11#sC`QLJ-w@r zVF3CvU!@y8%>^V3{p@w{w;Mf;+Eh3Iy>Blt;Zu?d|4BohlHOvC0gFFX_4W2F=`rOb z{Fg!R?UU1!b@g}yvl)YSI~^gWW!`b)$=-Jn_2 z--Vy1`ucco(Tf(ua|!f?z7>D7>9E0{=AVWBjM<1&|qi%Yf!B70T&o^$#gDqIE z(iKvXJp%5iL5~}HR@V7h;Rw(Qx$rYoU+*v72$N-V)Lx2z(0hFw^cMbM*vVgy-9>TW zuYJ(_cu@Wsz49jm9d^>kEl*jEKW@@zH)>=K=>N<*{%O5#?c5t%YnFku0PUdeM%*r|^^smnG2m z$RU>B?6k}!dXw5JB+*Mi3_+jUN0&tDiuHH-Q36o_fPK(=`@|(Pqjlqv!-o7qj~O~; zo;E2QH{_}5WAzICZ&mxac;>Onr8i^b=tqms0qC85n)LiW1Y`DQ^0!FS5)NkYx5BJH zJn5p>2P%qarvA^*uIf9wGkVW>7HlNaGU%OuTl7(h5$Ik0vW;M}CAsw1xaM#4vO_t# z0SX_1zDKelKHK!jw+sC${yXWpiC+S}t6yz;Xgr*kUgrhFKImP%HTi2aQ2w8ff1K|< z2K@~C$Pj?b=zmP@Geci&jyw|vpm+7RCBLPIum^eUe1F_||$r@eg`upK^zF3{eib5$K(Ly6DBlW6(SMXmRa(|jz%c{yXdi_xs+!JdT$?*r=*8G`=EF6iRO`dp>&~7`?(nFs9$JIV=d|}O`P@Ea#Iw&^!CI=^@Vn z=$(CpUUu9><{&1SCLR0-vLgoB+#S+gJX7f_{4;vkl2u*?y~|fMJ$%LVBhb6?NRuAJ zsW1k;t1mTuQa2odzO-j1zi<$Xg@tFT`d;&o-%$L6eyTjk<*e_pgFm+YR36(0J==%c z^7B2K_&HD8CFFga-Ywe3Ks!-on+S8K{11Aze@(B3>5cTRFQz{(>21>l`3UP+bg*vy zL#E}Q{&%Q-di1;S-`b{K6>IPIZrCjyRGP$@Bxzv;B#lpY!PrX^+b-+E%ef zPeiTD6^p#rVrPAKeH8XUFZyoxXwTa&9W3mvzQ4M$$-5Ysa%FJ!m6xwDciR8y<+)9} z+(?Ga-s;Xf^!wJRM~}MjyY9p7o2whLA!7o1uD`k~g?4K6RyTRy#~l)#-*g7FzMKye{nqw~w7zv~dxsyqzka6|x7;kxK~Dwpn^L4L#XsoTU({XRp@#DV*?AK8 z=;-bhh!e)3XZcCg(e~OlZTeZgxv_aiUZamv0dNF*wtu9ja&}qmt@U@dN3_|9f4@Nn zULS^qXH{Ref299lXB$B#TW+H8M6(2X=5G!4mDTswSNQgAHvQK2*0XZ;wFc=B^sH}1 zf4;Z5zSaA#-rB0%1xO@eAM{+m8uX+AiU0n3gdEOEPX#gia1463r}3AL!?`!$jf;9B zQ>ZEa&!u<({rMiws+zj8nP$Ydw^RIs-tj-*;}-#$*y>m9XZ!C`P9vt98`p{UPS3K?&5hlgd>d z?Hi*Hs0b4KHgDT=?aS(QO4ZDN;^o=qiZ|GPeSH*LRFoNO{Y$MaZSm`Uqjz0a|3BCJPbr+>sQ>($hO(oB^~h1bxP#;IRd@dljiBzyF8P|^-F&vL*2YRvKD^f zld3Prvj&caOOK{#wzjyh!JWPJRn4B1|3T08;cn6S9=UUu>1YQc_XT>x+dJCAh(trj zf3&^byRlBq-K}+=Qr^}5oU+rk_c6%74|=vI)8Aa(x(}?AX32ZGH2@FQ-DLB{*u}!lZPtu`p!B{ zfKu0t%=GQlIk?5`A7KWd7yFQwxKp~b$FT?c9${~9QGihgi9E#dD6-(xz+jseY+0lO z$KQH|m)_)FjCKw9$iT*pjrHMq=1B1mdTy^NUg*wJ;?9|YZg1%M4#;TxJu*UA{FLg; z@#Z(_^5i6UlceiFJ8S9B^0N&39(|%p$Ued*TI>C#TFHPB===2h^DlhjlS`j^@zbCA z?CSNk;rfkt-re}V_cm{CZQuI-o!!yx_dodX&es{kKM#QWcKZDj&p-d-v(LZq?DL=K zz3{2?&o7;S{!`~ZYd^hbpa1mp&-bpZ3eV-{TL1X`$E?442;8?3Zb0?%+-uv{ zU)kcVz+CfVJjq_=?Hf0^%Pl`oot$z6N;B7#Or*G_Ppe&6&TmbQ7}SpV-seAk{`u!Q z&+*SDaNj|{%YNVUJvw;Ik-kkv{eapws?lWN-4Sg#=P1(o+b{->CzG$ceX4q4%z$=q zTXL5Dz0?NKYz@&qc5-?g7fXE}%}^LESl^0ZVevDn-!t?(XF!gYwfCOeqW|<(&HQJj z>wRNq`)1E}_Fo2$<0V>sm&R*Sjpe!>R#kk?d5?bK;=&$qte=g>dH5(t6l|v9Yb%rn zs0Zr~#yl)>&phL|wffsWtlE94U^u{rkXiTpNysq9bx~G;Swi^i&cN($7&PC%0ctG(H}} zsh-5fZ)}!u>b&Zg$}4eP`U@}O0LTk33X0}Gfa7>kIVHN&ol()G%1`=YguM$K$4e7O zrN!gg1|r%6;JEl2mp1m6_bfh{ffLI&4(aqir*=vH^ZKb>TgQ8@0oS%m!dWbsiu=Ho z`swcdZv7qsSK8BXVouvjYlV>w7cP`>t@;^G<*R`gfOF-!?4z9?+rQhlAto)wgq%M-0F}z{Z0dUUmOv6>?%- zs1p|UfaCs>vx}Io8x_Js;0k-HIi>)Q+c@>t6x`XDYP)Q&l8?<8@oFghLOnRFakM*L zJ2&06J%szfIeR*sdA&I7PBuIOF2yx(z^DH^`K0bj%1ABesh2DL3|BM_^fAH0GH|JV zh~0aY--EyxQKf@LVIFbe4x% znR9SH0SwK+{^!*$F3upQWw2ac^?C@`fJ=E$4?>jsl`YFYaIQX3dAs_M1saqyGC$*Q zjSJxsaJfAl&cwCQL1tRGsQRVy(r$W$h#@4GvMu@N0&qz`kF&zcOF(G+2VBaZJoBNu z!Kc-S2bG+dG0|;W9k(4(`v+W#7l)ft;OS+xONHZO5$jvLkE~hdU=AEhz+$`Ze7FZ( zZWkK#TY0YEo3b^vf50XGG55IJxhW(2?`cy`;HKDR>6NlRNO^HLb60_zz@_-~xb6bS zz!mzTybhy~evdoLGlRArxcI8-SIg;e4F_HZE{_-9MQ*sZtb4$v{GxV|^}g420qqst z*rt_=oku?pfy?bei-lLOe(hyC1kYUbQ+B<7I0i0{GvHo+xf6Q!wN`yl+{M>lzVb>( znZqf#FI;;4)i*kD_kqj(;5BLkkATbVskkejZ)4b=r@qjNYv5k%#w`Pv`yIF``rVyY z-qr5%4yNJ0+KqcM1^4<&H?Dt4?UMQ-DYD)ibPIZI3U1|%&M*u6({NY6+$rdzDY(H` z2c5Wu?{4WwI=;Hxos=kEE&!L;Kj7Fze42^oiSQeTvHXmH%i{$&oA2T29-dTmiT(j_ zdA&`iDrl&}WeFn(3lrc{JI!PsM;#vR&p8e>|M^9=OX}A#?gPFkVdssl%{yJj8332; zg6)7^0NCYTRbGh`A$d%db$SnhOZr6|cl~&PiZAku>7D|Y@wM)uN z9>@J$EtdYvA0l?M!s*4zxJWs6jO~Ku@43Bxd!33L1DE1Oaq@R^dSlcovGy3aRBv;f zZX&D4(~DPBzZ7TIKVH!bEcjMcwM^PnOLATYF8RT5(yt~*WS?V)eh;`5FBu)5d&s^( zxP*tmB|l_j9Btx=>{|jK1DE`sQJi&MYd3nQ`Onw8?2^U}>3UlEPDC97m;6_hmwik{ z-UqJ3p2-Ipp2mN`b=Z@JW7&N+F)y8ZL-niWl*MXZxJc?@{{t(y3|wu`2F@;_CfwbV z;J9?LCe42WSKB3)hbm}>QScMsQa-c4JDh!`+R6y2|EAid#__HXC5(5x&?4E*ZTT`> z1Fo(|31`JQbB2B3YX8+ZXU_2G1UP5Tu<$*z^efD%doRKT;OhEkauzrgIs&ftU&5JP zoEyS}?((A1TLC%&F6BYvo}86%$)cyPs$J&8C5sM#Ys5>Gvt^lkz}5DoG^Vp5Y7P@0 zq8^?U2T`8_SI1dV9#5*!Vic-hSXxoL)c&KLJ}P0WI)qK&YP-}pdn}M^{TR5~4-sb; z@zp3io+W4D1cY^19H@SE9z=Ns&OCn^xY~aaXL72QF#oa#Ty0M>`V@OU1g^Gcjq~!TZVZAoX=-+vA>0?#2waM5;AmUijg2^#PH~2cbRW2s zcgtg9q7htgwU5Ssz$L%?)9HBqVvsf_n%_^oUHU!YC|0_r3&JvRDGxSq@hG}Xhe(lk zJIce1gwFA>T5b-7fd{~q`eit(c?B#y0nYhBj-eS&rT(%WlyKnw&#U~Na8u@Au1&|0 zgf27@;;i33aHTy(PL2}Z1_3c$n1x5cxp?t%S|v($Ma5nCn(EiIONz=^i`XShdjYtz zJiDbJ737RbxKT%WinB~+bv7C10dS>V4A-UL1h|x6)PxnziiCovf4k$7u2Cj^2yJfb+4Po(m+wT#FW-NJ5%exF*=|8_Mh$l?B z`r;_A0QWk|b19nEE)>UW##$P!|8F1GqgOX+>kZ{k16ood@DXs{?^>SWBvh#NegB+& z!?dS{s-O3t;$#aGFCH`tTn5h9cijvt8*8l+U>3!urD^;JoUadxGf4g~%oz@9T)NFf zYCHOze90x-1qOXm>!-Lk>HMR1ml$DBIPl#lg6yxWU7UXT?Iu)_JR@81xCWf_gU4}~ z!hepk?gQuI#nV+ds23j1Dov z{fvQ2dBT#O<%j&UdV$)%PMp!V7lIZyO8uCgcHQf{2Pr-=Lb4wHW#Do-2^ZT-m6sRv zgrlk#_JB)y7v)i@yx6;(8| zp7J*NVrV{$PG?wQ&xM<d20o0}4INhp8xTS5i%S?N!oH|@4NjHI;883>Xt$M5- zwSOnXy$0N4;P~S#|B+p;$W}d~UA(3G%`4|sly~`rxUT}YcQPDp)nlvB_z$?Lc>?iC z`teph!5yCr$6NITclP_|%oFOr722vNxZ%lgyj4$d_ko-02ikg-F3uHLI0BBjbo!le zE7}W=8ST`L>NmCC5-whJtHp)od2nv)m1;-hKj6|lN+ZAUDfx4959V-1ZeBPO4uG4Q zCv5#s7h$EyC%{dOmuyN~CGGF3U8a`Dr>R#r&*?1^I|950+|+(Sn$|G0gni(q`ayBg zckGHsz)iKM;{4P~SQx2(Q}Y>hU1h?6?gg0dQ=n&bXG&(wnP0yXz4;0dA^2-B83Far$;uAF3CoFx?Qx?kwj3xEN<|wce(x zk@tX$evpMop37)FZH3#A`3B{~P8@Zv7!F&$O3w+=<#FIj?O!ct6OawwNx!A{)h}zCdtF~$PAhmzM#W=J1(KO)K(YOr<*X6K4cwCpq z35JjA=A-apB6IPBNwpiasWhAuj_L^F&`){sXSI3x|!(>H?}?Ns77K zD9J0GHx->Jggh#lrpIV^%WqFe9<-MXbRP4zcWNWKy@2*>UkARE% zX(Q3t9*$T+qF?xi>KF5_;IxvTk>d-O-sDLfo4wJ$(EKNGF`o&}sMNTvd^Q3u#tRwE zg1R^3s2z#Fy!&4W284u!q3K_8~#!w`d^zV!)?eIIcjX zChFovx)AItU%V<2NDc1NH;ejUKYSZIlv^M}ACdnTMI zCw_P)ogZd7@0U2*MjIbHjaM0P+Rbl1I07!VW1O(Qq}Qju-hG@hoccwoU-Td2zIJg$ zn}WWk^0_a#kH|?k;fA4~(0Ayeb?37vlxTkN9?WDls-G z?rV|r32-qlS#ri!Pmfi<2rTq}vD&4=txP=*6s~pQc$*b0lCMB$dHcXcyO^922e5sQ z&hjJRq93xqQ($JFQ-5jUmlXBApp!m)+87(V<`;mg>>?E4FBh%t;QBw+Zv1%`D1Fn)Y zZu5`F3h4T-c$6X>cHyXT=8&N!Z4))aJuT&w?RA$dX?w$HACV1ACSBSq^2B`G^1>!? z(eFAJfvq52wU5SsZJcdeBdM%SvrMgie+*popO%MhWD+fLEP%#EfQ!GZ)NihBWZ^P! zG0$h^p@cO2urwI4t{Kz!i2Wwi8*?8O01|f4SNv=B1*% zE)9pk6@IVEvmUm3kJ`T)$J;|lFx!x>8{5l%)=@W3W`}I?y~LgR6{??;6Xm`2HaAT? z3Xlj(sZ&H%73if8J>3ON4UzC`i1y!>DQ=Tiue=?hs(wQ4BP~+ zvWqK^9Z~|vQ*n%tSQ9SJ4dF3xl|6MWW@SY8SM#X$8MijWaxUIe{i^sh(|^1@19}-a z*FI=m=Qup;nsVCSe7I`n^dWGuzhq9%%d^$+Sl}^mRa{40GNns{;q0$fyL6W)uCVZq zZvQdP4tOM4 zmx1e+(;VZYlg59*b^Ae@>j7;-ONEh~2h(xB9%fyNC)4FjcBLIm9JuTQ{^|evuKJ+c zB(bhiO^93ruCj|&a`V5;q*)fE^AErkakhJoUfg*7_9jiewr4jU0hj!z^6{=qQZ9Wc z_G2#m2GuX+Gi;C4*L^xW<`;mAaUI=djgWj%ZjTHj;9`769L-9~@76=h_c=ZQF6J|b zlSsDzV_kG{D zeuM6Wzw?|73!c-3^yhT;UF6&Zj^kw}PTC}ah4D#nvW}~`$G~y@BTKr6AbQX8o%MXN zHNPfgS6VBI+P~kN>Vw^^&0QXP0igH(>gMhB-p9UQ?(OeAD>swB58!3sI9_ zSpDtz9meJi-2;yOcT=AA`1mvahT-@?l5F;;fIu332psz%$LS7A;3OL2q%hGQx5{%j z)OMA3c3qGC6A;xhP*kx<4PT((kB&!y*tjvQW=&Q`M&P)NfJ! zIDeXcjm4vA9&06*yK$orxtB$KtZZpW{73B{a9p~TCx6;KC;zNSD^wL14jSdf>0r7^ zHzF{vk8lZ3fa5%G-KEj_2jD8ZPxr}AX6J%%L}7^fr5j{kNN5V%3>CD_7>nsQsG{$4l#^Y3$a8ec(#J z`|_+P{a0(!Bj8H^d7M=DWD<$cg@0>?ejV|70l3nCu{^DF*+e1Jj)2SB74mzI6Qg9; zd_MrLjO!+j%C-^p1h`Inikv7Cc&P}LTALc%AzF)vNOdxj_cm!N&Pr|wJpH79ajYUZM zZ3_4EA~l;?0-`AkN}E(15cJgGz;7VZM)^F&=9o5pbnF^YUtYF8l{=zuUq=7HDP^ z^81A;xM>QG=EGGAJ^;?=7q&Ue>B_4VoB-$Zpy4XVyMQ_UAF5r-dduZiI2SMj;7UKx zmN43D8m*b$O+tU^9&n|c87}rk7{s-Y#(%(-d5O;{rP8uSP;gIyEA2_Dyt-hM=1f@nkJK*HaApp-cRXwYSJsDg6L~C@d~dxMYX5*M>tBU)*PpY3kEfJJX@WM; zO2wtJwC^KEq5mxY$L;#Sfkn>+zS3@0sQm-3^g|ODTNRrB1kT$NHiwAO>Dh|-!-kwW zE~=J|i;scx_RMkk#2X6TkoxR@qIU6do#Rv~Tm3+|gduP~t_io|kKeUg`1`;Wa>nC# zh9NCucanX01f2H+l~>`Mmg4$T|7q>_7A__jK~eh$oR?FVlGpQ&BE|GIEe zAo`KlfUES|*?I?O8SBDG#eLv>-nA7NnO@3kV5~`xfXnn-zp+Wr>GA>%uH}w7CMM8@ z2MztYaipU9;R0|iIUD6gIY+?xdSv=Fa6BTT)e<`YH>EtH(K?_T9?>IFQ76Fp__Xr; zhRA3cXn6WRSG)MUG!+L82f$_VqBl3{hP7CbO?|69?*W&^OA{AODZoSEa{b&*o+uCd zc;z1kJ_RoKLklOf2D~^UmRb5Q)GoQ-r{EB2n{(n+yI5Qp12;=Q!&zWI25y#qhBK=! z{+F%#kZ#_T8&0DStu$)?fXnM&!rA?42+j!Hn}J)&*MTDLA#izoN_n_B6hhi|NlD6Q z!ZC1JoVlArqiV6{X?&jjuhcG?J*V6pYMFiroR<^Ftk-0m8Vi(`B`&4k2hRIl)|O?j zOa$pyxDS#gJp#_xzY13`|AkZkwdz-whponNoQHCG%fNZNXn7t-69yJ&(lMa+uM>wW zBdm2mf%+}&e*rGDr)*Kqa8_DOGEac>^;YF<;;cG^{(n>Zy%QHFH)#G7IA0$WmtFE? zTE@8E2d?%*69;S3`X6w$eob7|Z{fdH{c1V=F?ka+78fo6SIgPL#p1%KSzd9x-ik}G z@L&pVNKfA1T-}V70#o%Io?&uQ9Qr+{57aJsJyJQ#@|>7qZ~~m0ZVmT<%j;3AJT1+p zv<`vu^EO05x#fM@GUe@}rEz@l&(kTmcrT*)fuRZuOaEOfUbMUdhe=Z{aTB;KUhZtI zoxA##E4N4MA4ccVR;{&jvto1e~{vw5(}c9a^&7E~oy-y1om}U8iBy!6TQua4aMQj3fAz zKEqw$e0`AehO491sF-YevSX{_iUZ($zV5)$W+?AVV=mZ_0-P8xo(n3S_^2+Ar=c#riBj|fZ~e1v zfK&keEd0-^pRfOGL_xO{iWTc41F8#1^h zJ;-tyAYpXj&rQ0?O4vn?l8CO=AbUGJb?>Y$rWyD z|4Ch52TqHU=~I%k|9@0|w=Nv#_lq)1UN%OAy9S)o4>+1VeP`Wv&qN{3gZsd_dNdWs zw&b5jEgUY0mfP8)2cszkxA1?eey%*}PS`|5gcW)40&q@0!3|Qkhn51+^GVx#!U#AQ zXAPX0B{}c`aIXF}aH?BE(fAKI7oRmQKX@T_IsJdBU0nND0m~t9qTj~uE*;(Jt?s;Yo3D7KTczpMoLlRo4ZfYUw|#4UXO(tj zi=cy<@?yg?nT-Uw-M7#8VC%fc0nHgl@*7nx3*J+D; zPhKR0T{eMZzvsA%tDBqW=}5xnrhqp#rAx^YGju!y_rcD#*LZE4k_h7-cgp$ZHbvL^ z4i}~!%%14YAo^K6RQ+l>X><7$6)ywF@dEwM_ddTd+BJ);($mTBQh^(5J#M0VTp0cA z0mu0|;@Bj;4~U*TxZS(4{sFD!+`2uAj@_mGpTKdu*@3&cx^<@l9(UnZHaFJRP1yHI z+SMV6%9%}EarXbI>~g**howJ%=hD`2{X>INRMT^Ey^(f9!Vox)&nPEwudm*WB^I!7 zAGl0EhkKO-YZZ9}9OtuG-lg3yn?i_B)+@?Lq~X;6tNLX)y6;hnY!$>H`dJ2!>uoGg z0*r3N)RousJ=#4syu`{R1wuONpZi!=3dUcmP~xmo2I^Y;Zc!Ll0ODx!!Y( zox8+cUd{x&;fX6x<{{7bUS3;Uzcn%$Klc9TdOPc*ojaUCHnw^n(~~{@|4;40d4hbz z^GfG?8=IT!?~r;g-@3KFHN3PndhXTjotvv8`mJ}JZj2(@Yrt_m+P!^!cWr0mmSmyT z&7Jkt;ho;QtGm6`9v#o47+@|qbGQ#2`#~E%6|hHb+13`zhOS_5>-Np-I!8pL;Sq4` z2TqjddpD5{ZQ##JNtPk&EU%7ONcvg$|C4^RaRcH^b4-N0037>ow6nUg$)a7S168}5 ztGn;^R>`hg;_meiZ*dYuItwGY4+`JDK3d(_B7lB*dy53!-r+)T zY^-k%rBM1$|M#eUcmbM5`BJyP(c7R<(Y00gwkXGseu?v4y>HU{FTj72@GIoP6?&~= z{o8kYydKoseRuoz=8zf;3Y&Ft&ie3N?@MGB{_|CmDU5-Cf$(De*S4>}LKnac$-{gt zJk_WhyXzwfCkiG>Ruq{xH@0Y2kuVeBpEvv!x*ql2)y?l-dE@o-y*ulx)DYYr?QRUk z71B5Bz4iRr&(hD^1PT4$tNK4jzoR|u-B`W3v3Wg^G~-!TTB?JwQTXY9%Mi*jZf!znsE z+B&U8`UB7UPsi)(1XgY0OjZB)ss7JK{97-4macTARK<6RQbbVT)2r$3nFeJ+^!zgf zp5sr;k9|UUASZr`is(wMfayPD;Mx8K-XTOB+&z&`VNHNf`g7kY9`7W(VeU%J=|6GG z3;jo`e>dJera;`>C&3SaPyQ>*f9r+xsDdy^ABn>l_;XSJ1|GLFD%!4UWa-KOz$g3H zcn{Cfr2p?v^B2I5O68~1o$cTi;q4q zgZM$bNBaMPnf_0YKQM#zN&OG}6!|~x>~FuLbkct&UQTlex;*OY2_- z9G}F7{XaC1{))Kr`HX?QVK6)i{ZyAhFg1?&M`O5#vN$_9I@%%f?s|{4X`y?DDz<1YwKb^%4bWu-NFUbFY zRQ2!npHKercSuk5ANX$jyVWEr-hC1tW8hQ&gQpgD&wc(j-?u^X=(?fV~FXnifkRX&c z$JP(?pVa@rr}!)Iq;!(OeSio1f2^$kHJ*)T0>Fm)k$4P&@06drZVB!`ssDjb{lC0? z`6LrKiAgM+Y(AMGzsX%5X|hez{Xeeyca?AW%<$?J4!B9T5x>7+mKDgHX~$&JcEmel)yqKyAG-sI4KiGltShQQCVU*>pyY)&*7 z&sjd>GX?aEFabX0KRQ`Wr;lZh*jCncpm-egkKl}pYmrq6-Xt<;h(e|0~$vp!w~l~VGMlAAKYKC2Pl|?2BCIk6As?F z<%Tc;KE=P{wY^30W_11&FWox^{XebxPsO`~F6AQ$!zMmn12XW;JGt1BSq-_-FZXDy_QAt9HP6E_}BGCcvlo zlk#zDY_@o1k{?qW-@nwt2B*X;xRR5;qv%gXn=>PdH{a1H(R`2jK17&_g(cC;v+C=?JNPF|0sWf z_oY+)?<}9ETnqEp<_iw!x;F6{4v(1 z1>gkuI(|~DI(%ip{$Eo4Q~%Zc+{9NF90Fg*U&2!wYcb`_6vn_$)4vFyEC46KH~bgv zSKu=b^#5{K{CoLLe2qsD92H;)eC>box<9qnFafg|17FvlE`0973GlW4UHIIE{YjVp z1>Q_>k*ekL#!jsNz|YXXa6xk682CDVv+@f(`#~j`0AI&%fj9XJ7xw>3m;N&zW`F^P zz}Nl*etP-{W8iD~Bc2pV?PeCdB*Uarek@YD%Ab2)73lv})xVY>_!;sKfv@F{_^I-b zfv@Ao#d+#Q$ZkwhiATTk7TE;&y8j}(bBYEe)oHjd^#7XbU+13|-pOSC2fmKq7QXht z82CDWM*LI{On{%Fe^GZ*-D4H{f4$59uKXz;90K34pY$?jIbaNY!+tG%<$wwBb^PtN z@RbAlf1}g?5kJj#62x3Jihw@t@>xX*&XzdT{-}t@^j+Z{xlE zL*U!;8@^lqaaZ{`Pe2WUPyH8##0QYrRy6H{g-fuF(?4Mh zeDa^-^Ha?Rk6a^z3GhyT5!vIXY+nlfzgO0OE#IAT<`5K~@o<_mz_0^PoA5ShpWgP4 zK5F3A&*rbj4SasuR*EkU{H6e$0PpoL@l^W|xb-=={@<_l*POx41odHK!xg(>S^F~t zJ}aMc&ddiL5P;(vpP!C(&kX4wUX_==Eq*7!yZV!#T1^SWk{|NP4SG3(>i<7b{iopb zhNF02VhFs8-?Ds{zuur*akJvX82Hrx#ozVxY%RT|L)9isfKTmLfhRB4@0+Ih>HkC3 z-_>80-^$nK-d0fb6A}UYU}fbemkj2gG$}AuefV{ee&V%Sx9WuSu(2&97Ts1Ebmkgkl1Yl%nypOo>R@Nwe|UhL4%S@?t@@F{-+?-Z{B!DVgUgq8EB->8cIAyj+QmoPxOVxNLR$a)r!D;pd}|R3_8$U2wS3b>)_`7- zbK`)A@qGByXGK5O@RND)jV_hp`~R#J|AqeL`Y$hK!h%EKWBWl5HY3org(6>TLT_i_ zG4RoT#gctlbiVpX{x9V($J;adFa3Y6`p5WkwY_>1{(0(`9hv3$we@tP0pTgbm8CjEb*`q$-KlVkttzI~g| zu=0o9_+rwPa=gYWBA_Ubs$&oY5qGRBr{l!C6h4gGM-6{Jn?^mI3 z+xD9PAL9=mMi!P&#%u-qXZ!%9|1VYl94|1%N_UOQ_S+Dg3x~kR`Y$MMXZS@~`asaK zd|!vhz(@ZRM7A4P*a<%k3i*>TB?<)Kq#?g^UAAY5dVrhMp*#1A9-0#l{eM;K@9@I7fE6fz=cQsOZl_522s}eIy%Mw zzgGRD{|fvp0}N;2Gj?eiM_NL*z!>;wzYLHTJ_KOuMC()i2R`P%>GBh#bHdXLXZ_3awXZVo^huZiAMLMsgQ`k;*Vf815RY{Qkl;umbgusi=ld&8B%1o%RK zbRYb93t8VMe`3-9L8^bO|0X}h&)J^4Hi!&ST^3IGA@EiC%7;-hZb}1M*LVA8$^5A2U`2?F_+%6X4nZ)A0xd`p1P&=>O1E z|EJ(lIE7<@AI^s-6k($ZDgMU5bN!oAzD0AzVFEnI-yHa=0`z}am;N^UAszZ|{ekE9 zBQHP0i}7pgQT+#=``=UWDtCjyq$R&QK^5=!u|!b#um8gv`q%hw{ejQ)ukqdb1E1+% zB6h4X5#xls-ZuffXd$A?5zEyKk%9UCEmPOHXdaEG4MWq z`2<&bAG32FjolX}9r7o9(ez0E`afFr_xU3)pJ=5&f`7I3g+`=5@LBwk{PA7M z{P>r4irg4v41B4-!%OaxX^+&AiwaC;m2dqYiG+-cSfKx7RR1jgy!@&u7JuW+NbEli zf%o~7?HAuI%=NEYurctZ{UV+;^~;79N;U;B0p9nYWRi!M?kxNISs%IhFX|EcKUVdh zh9?msfO_zrTNncG^-m|@vg~!XS562~2#$gG_Se}n*L;xGT4OJXf8c%ouJBXpZ~w=s z{=WV)zI;!vOMoHpK7MO_w*X_{z5Q!^_bKoR@ZSEwa|C4X#kF+k|9I7ZE<7`4x3~`U z5ctymWWS>PI55ga;A7xR`{(bvbqBx%_|pD4zT5u&pP>4e^4n=OL~y47L*RY=Wiu7{ zP65Wi`}}M8!hlT~CMUwz4(uOvZzG4Q4R zfPeYr87wBim+`Cki?6?Y<&~*2^nYSI{vqn6*I#{ODt-uj=|8XPGzMef%lK0~U9qAa zS4z9=JI__y@5yxhYqRkEZ<(h5mD&0O-y#3iS>=zX#L6SbyMs{{^$g(efY1 z7ninfY`dmY^B?d&f8=;rUkXnLkwtpyg-#ms=XmZa^VCyYi2hGi{k!Eiymf@FWX(TA z;C=qC%IEQevZ4R-hs0yt!0QRw%J z@!!Dfstk51b+1TZd+zb3%@{ME+W&UtKXSNDbf zPp{*@g)h*t{2}l@f3@&2hZg5o#&eeM@G>5T_+bLP@Bd6GAN7!hAZHSj{?AbTbN|V9 ztE=J$gs#s*yq1U0VFK0%!1HXd(J2HRSP@w;_I_p0Y1UUf^$scZ|b|KHm1|IBwEWB7z2 z@V@@y1kQ>a{DJv+^peK2sRbPa@9Q7%v{miKhP}+8>Zb{8O8^t#ef$Amo;Yer68b+| z_4nu(z!vXzG<1!~{~cwc|ier>#o zV4aBm$5j6;e)7{!A^=amC||K_?7|L#_w`@t?7-brco+j;$6tw$EwHmb<$vI7`!|-a zIPG&Fyu9`vKYz~l?|)mD{tbM!k^M{<0$
I!NeO=4*IT(!7x`WXXX`#)Ph_O{RB zcLIDKzuA`MSo+6hDa95MG=Tcw-irTecpkr4^icZ;e6D{7Ue~0w52ose@s#py<8D&G z7^Lziz~}LsZ~O&bDzH|>_-p8YT=mc6r-`SkLn%4!Cl&(^fzR@vZlQ7SS5kRwcKOGz zo|6B8&-|}=_Z}td&3n;o7ZS5p15Ucj&-$+kt6#(Xp?{{Kzu)Qv<5|hZ)Y_jR@LB#* zJPm*RyOE{?IzTt%_+1zS->_fyeq@*Y6W}xdYxx;o^PX$}kwyB?G~yqduLpG0D0_#J zvoFT-wgY(xyq8}lifzMN4BmVnoY{X2ypKOU?9(y+cNgd~j|uR;{y7qqULPMq^AY;r zq53;KcU7jnJE*3F0>c__qudqU0U93{GZ$p|G4QVaFuY&8CdXx8#}qUH-q}ARjOK4| zzYP7emH%6K8Lu_AFNY!U&VDUC1x^c1^&j{d`V$^Q*Ni*)A9$BPG79Kld}p$`~T@_pLEs5NK^ysN(@KCk#^dhzdUzwzwy&2R{S3?3%4@dB`& zs73Li|J+RdV}ZaLD;7Ttf#>|M50KHG8GcP{gC3gM-s!Cj-njB+k9IKkF23>l>#tlK z=#xP7Y}VE$zo|9`p8dD8zP3)U2=(5jn;qx@uUk9Y?`~Y*;3sS7(HnzDp45QcTn`iA zIsUWYJh#FRUY*xR%7}qHVRd`NFEm}JN5qD^1fZY(^Qu3~KLt;y{Jk_e9zd8O@ZA5( z@n4dSsJ!)<%goVapW8bBIIi*Md;C6_h(F_zFe-BbJjWl(Z{nMeg%PIzg6hxtE8@G} zn|hhvIeKS{--{b;6FvV7f#>=k@p5*cx4FLc4n1*3&+o7S^ywXPByH-tyuKx1`p+16 zmY*s8{|MR^sZS7F~=9_uWQx#u-e`EVLWdnJ;kWRN z#;5=3dFqAgMXTu5ga0*fPC9k5Za}%CCsm5%_f5 zS-NX)(kpoD#-{j2Bs%@sQZKjboRyG?GR*ZgZ{b$Y55XtZi^ftj=RM-t_)E0&1MuPY zLi1RITKSMw`1y<`zi?dX<#&UV5OF)PvY~@=+`ZsYJ@~3#7tX7Fl3oQLgSY>UdhN~P z!wp#~UC$S#&ymj~@cC4Eo!j9{Z}OCFJdI64kVq6v`nTdq39PDJ zVtI-{@$m-F>C|_sUeozNAaH0&GytCzKO#@pdkbPA?)sEAx<4Nu69^n?i6%`xBojZE zP|O*W`>^6726^o4cd31Hy>dR3B4*xcF#?|yhuF=tesg>04t3^kudmRpaI~|>5)P^8 zlC4edKLnpt--~)x%x86-FJAaLs#hl;sbENbs9{-2$Qzfz=hLyi8&y0gZwir<>~Gda zOU)Hd`{0w}&}i+z{9J6pWAI6Ko`cVd42rV*H~KHBeNvu}eBuFo9DYa>c#aRu6E?vo z#ZQZm*}2<52jElNnKF(hG2T5iQ>3ThQ~SN(Lm#Ipw*0c%r?zv!XNGF`z^9fc-t#?! zgIf9sd{RHk?A*=Axhu{apZu?P2A|ZAqQA*FV7R`vadVaWT|6x$-$>t% zH_=jtwQi$j)+d!-hKhU)LP|85N(EbbrL>RAstCPIxc(;Qg5Ed2srI=GKB>NAT3)B$ z>pA-J8<8f2L-29-$yXNw>nkS6?BkY@ls zl{|J|rY$q*La8yzza?Jx!6(H}GysjW2WjSq)j@g<8i0iP7l1s_?ta@L_{R<9rA z9s@D`B(J+0$Uc0t$6TX#sGva=awVNQ=LdANFi=4`Kd?`E-g#~HeRN$r#L0-yRGKjP2(@5?`^ zUYp>P^a7vh_dwFsjPbR3VRQgKsXqoj{11|X!&JY|<0h*I;1ly| zgmbXE_9`}KWE8c~XE-L=8JxS0!N=K0{**&mQaB=pVkuIfYi@ zY+Si`rO-?GMCIZy#@JGl=xalRw{SP^JWiG}>!1)n5Ox);!(<#F)pavkDy zSjuC=9ZavyISmj_y;0~@@X5NV8qXO8)CvReiFrfkE@Z(!U3dT1XYAFJ*4zg3x?l6r zS>2C6b9-xJjdo|AySlpd&ia5?n<<{_FEvF^z$exVGj29F=RQ~kvnf3UnCIo-BMZuiYL-2|D$M~qdv4fTQ=ofyss^_%uJ*rpC zKZ%cC^B-$G7}>UA?>N%yGWb+_<@`t>`@%Asmxk8Az^B&Bb>6Ml{Bb*UV4dKUIUa*g ztY2De+%-fsb;)87Dw1qcSrZe|tAADPllZ6{vD=n<;<_KR?Di24{@DbdWS@#p63E*5 zd@GXhIRGEdKX#vvUq8oYrtS+7gi8od=jLPkjBRscW}dLTqW0nXW%6{a%-BAw#-FMG z13v8cg3su~6`B#HOWj=#k_JEBb(GEw9Dxt#ALHX!LQDv4m@O9lC(RqD2g&c#_(;SU z8~4FFh(qw<`Za@3TGf%pG<{@V55ULUxuuth(*E~MI0m0t_Tlz0^@;o^)$GETYQMMS zVPw)oJ7nqenXm^wTrZ~BM_8jt%Ti>X`uV2&oI4=pO7g>a`^cA%a z_vfeh%jC)bhnyk>t@YLOAtR)hml1f6o!wl8623 zaQ!cRMQujFm#-JI__TU1m%(QqdC0_G<*e7Se*$?rADt&( zKkncYd#ZC9y8o8i$Hxx~@4C1!HhE0cqQB^3c-B$a1fSB*aVdFDc@DtG*He~f>U~BH zhdn(BpDBi3zE;-@kq0Z@?MSQzx_2Tz-2xqfPg%eGNTP5U|EcoW>9fR6W zIsJv#)2WKbiiJcr1fSCH%!jVuqWKJSyqhtJSv7^w1Mu;2*tmzH)wfKYLz3wjd|q_< z&<3(;&up|%+&q^4rixwod1@bT=XvL1rEmwy};N$&ebV>GP z?X;$QC3~-a@oTD=uV3@=@zPNL2Yg!gp)g4+)iXpIgHOvo)C6Ls5lp7o=gAbkDn8P% zo7TBrOFv)jC|0-e3y zsuxMG>@;%DClhD{K3(?7_=t@$p|H4WijlaKCeD9(BF7*h5-V5ujI=OggR?5tC5wvrE}EP$@!8Xwd%><2h~ zqplaADEQ>{Gp_4`&k%fk98TrK@mxOx8Xka8<}aH<qaGcUM^2Q2We~N17eeO_^pq!(H%k@skliuj0GxBbzxKf{)A38BvQ56q30d zVM6~o^?jk0DPQ0nhvuSuvl5sDGIlC%6#tE^29k6py4Zu#It&4IGsJ# z28j7gz=!Jvq&-jP=eC|D7-o$|w7a2qYnApl411&P9&dIycj@LWeFP21V8hw>)IO{i z`Sl~7`lIg3lLsuIJ-x5DuO_+9AaM+az!=jin2 zd+WoM?b|zRyee9KXK5uoovCjY+cGuH4A*aLuCI;GN$!y^!SV9VS@!cCB<_rUM-R6sla%IQ#^wqcgVEGd6YTpxqqOOanAvUq9PUIJ_U8F^ACixlw zP)2=2++?!vM ze5Y@zzAs1la(>#jA@P=MXo-aaP43jB4BBjSe<8351BYt1t7gbNl^74+_@1@coe6IS$+$jHnU*+F; zPWxm6J^{ZJ&#)iyyYl&y3wU9-BVL%_YbWP-ZyLX=C+GKg8o#feoZs0|x4y5hoSffX z@T=+v*^kbHpP1pJDg5M|_{qX0oW8C4w&Yvk^WrDuw>gEMoEtwOzlY$L+7FIrTUDTZ zZy#51ew(sGx*eQ8#LPz(mVQpXulgo_v(Dx5dY5aJ3Vzorep%NkW%ijPHE9(x0hv1j&XXv;A-umIw{{_cW-zejm_~|IWV{~ru zj&qE3h`~>&Tm!!pFCT#)Ib4iK|9Jp@-XABHk3^u*6qZlH?!4t@RXF(;9n zV-&GHReIr@s&C3y+3c^SJ|rjJ=HvuKhR|W0N_Y?aQh%cy*eQmI*=W|7abM&)OxxpNvA?5l;U?)i>oU){D-M)p1gO!)-?%OT=>%{8GLG zKX?AiYK)ygOhHusa{f#L- zHjTQ3VT};+uVkN(s{1yNyn2FzmPWjS2CGXf&&B@8q zwzw0)P=jUTpQqsW68-Lb0LkXUDgRU6lxKZ}%fGm&ADH){_P3ahkV~@h*Q@K)zVkbb zHt)&JHH#PSgI~-CPz*lK4?}W8Y0i)5nX+wl;R*P~_Q;yAVpH*)-SKeYm#Dt6{#w0~ zsK72e#7Nw8H)Vs|y{Y`-l`R@`%h_oYY<_`}8V}=hMKik)vs+?_r%{#bO$^2O$ncO9Qr+%60%l;_%d2*iN#qv|Cw4Q)vKnq#YM@byf!Ob{^coNqI|{v z@mM1yB)O}mxm*8Bo_9Uy`{4JI*VpsQ>eOt8Prxs;-#q)$+t+D@3%^43_5PK8<1Ru- zBd2n{tvugl9>P8F^YTgisyA7|y+vE>v!TmXWU}!1B>b!`k9k#UVOHPH{>s|F*8X#< zoF-tai*WZu{7gV_vJB`XeAK~@WbAsU(3;F)McS6a0Lj( zU5;XZSbJRVX9Gy2a1Z=^`)i|~{GAMZtJ4S)z$Gu{_Za+qyv)JRF^?S?*~xbH*Q&k^ ze%ZdUeBeh_uC0E!3w|$=tkEBSMgsAi^TQ-IclWnOs~?`z$xPPw5%~Fd0nrrsq}`;B zOvNso{&jUcxA>LnbzGklHoY!55cbyFPXkp72IG`zbe)PPW}4%^ffT_ z&KxY$I_OYd13#bdTlO=4UQRJUF-P*zqWEj^MR*E+&VEt6?sp+# zoya@)6n~e0L#iL7i_V-9$F*};zk-|MZ}xbuBd&|2R_g8eU7Sk|_rdQA#9Pyn&4}9s zKIbW!Xpg_dkpi+kCf~Ag`Z4%kihOAcQy%~6kS;UiNrn91=KRj(->CY(7WpElOPY@& zP)8;TH;=es48F@bUkjIyWCLOqo>uZoLzJW|?~$iJyUwhYYjSWNX0~DQo74_pq~FzV zzL&@z5rf2Etg9rYs|W_jrj;Im@2hk2?dUN|39j217JjqJo9xTQ)8>%x;fWc#?&!oT zy=(;<|8?=D^=;e_FXowTRyQajz6VqI;=cHg#P`&`+Tj%{Bl%75HUEfPR@e+-2)>nl zd7p&dZ~u|xeF(mJoJsFI##a2L4zjYx9!F1$zeVkk$5{v8?w)@YXPe-g+ZTMr0;Nc2 zdK`)VS`|?H@C}FHoAQn&ezz{J{Iz+KF*g~+$X41*Z!7DC@s0PXo{*zdi*UD-FWNxl9iL!ldyVct1K-*X z)AkK$H#)|I+dg33q_e+W?NG;=+duFTEU^c^bv%&fINkVBOz{|eQ+>mNx^*97L!=gt zxgsq9NEa`*-0HTl^gGlJDW4U5v-4C9u96w(Kg^i^0o!m7e3QKG^>+6>Cxrv12K)qM z%w)=W0=_AqDPOmzH)&j%0{rXc{BYrSmi21Z|txop0wossC>Uj&t<`J%fG8(hmXpaGZgsV2jB0e&r+?pmwPh47~GjL zl=(6Eru^^`_YQ_oxb`z>@Wsj7Z1iaE<_mPlU$wqwBn0? zDeec=TJpgTJ+FpEI_gn2ztr4m9pJ(5Ry!nl!Pl+xHZE(kI!I&j+tu}MY>Ef}hP`hA zkF&TAowWtXFHnM6Z4$Iv8k2~`$g8KFb=x#`)3lafAl^onvCPv+NTNJ$BDr+yrfIr>06`$RXC7x}{`qIuwn*>o z_ucNtXY|jRbLPyMGiT16c?r6z-Q@H^{&DUqas{dQ3(l{c4>9{Bjida7SuAZ5&9a#; zi)MRn6LjTx!4RY-yY_tJMKDatbY3SWw19>nrV)n(T`31fm;FPlZ&;wSNxFhvAG+`_ zjdo)s*&YJpSP|=1`afmgFN_Mh(ylYQvdJu8pv^p*yjec4>RifYa(GbCm3AE}&u7Eb zYb>$8skF>~i6&59yobxdMb|+eH_y|0ur2inwQq(8x=BG->Vp|=pbgJ^_PKOpGA8Is zJ1Iq5@(&n~+%OdSb=hnx4TI68f5qiM`NjC0|r;h_j=+ zd2cy6&=(PBNB3KTu0Foe{)Q)B1X;EtLfz5D+_ZAXUP#5?bAENYXSFV`X5Z{krsn!m zGf8f<(8Xz!TKN!M^HB~cVvbGrpd8RWRE92)ff-`CMf%co7k-n=f%>Uv*By}!!K$1P z*#3a=)Qp!z1zp|l*yx^X*yKS$S8q2JF+pwMDd%wPfh_(9E(hxWq8wawd3&K7q6K-x z3=usI7O4e7@JkB1`gkl|VD0{rlG9}SHgqy3=<4leql+w;T(>k7_|k82Iq2<%J~D2Y zQ9IJvV6XetnANp0Jum3$<0fWCx?*Sg*%Jl%K6#dOVTbxT(OvS7Tn^55b8h#cv#oO^ zOYRhOb^T?|Ebdqr1ex;>lEwCeZ$6(8rVT9|Q!@DHSwVLL{LLzAuH(H&#DOi3dcYK{ zG>}hUNb^5&c_{j5vy6?za!prRJD{(7-0BKGZC~tNCFz%oUn37JaIM)R_(EywGarty;^tD||nyqlOC~GRsr0SN`VNwqX`kN$uq@yj}x|Yf% zWjXPcDMplg@i6CqolgJU;*KyaLz$|!7vdp#L0`!q_@6a>t<6LM&kFiVKi>>}eWw~P zpm{%+k3;_F#y`~o*1jmEO=`3!cM1A$LjKGosLr+CalhrXp#QEBVMSDgU5R%d#p};$k3b;+{3>gLJ6E;TU^kY-=o)?<$dY z=GbHNAub zt=O0gWX?7O$eN(}Ub}pNJ9D3T8R1}WM2}ZF-**Z6rhLlLhlxmu4d_fr4*5(A`lftz z`b;oxlC%NNv>kr}vm?W=WkSS_2h%3qIcYRKj z^C4LuAX?T5LaQPNX6$;}{BOPMoXfN*=VmO&Wh0h4w<&Wrs8RVScO^lhS_zw!@6P>V zE;e%8LtJhj!E#tbuzyU;irbr9He55fZX99N$3!_)Zs%mL7%QyuvfDeSf=<)5^kG#W zqa5cw&~H+`@3NGG>V?WAJE-&gil&H|(~>0A?sZX4rzSUP2();dNSp0+g+w1w{YS_R z71y?J-!gNCIzU@VCq+%{w5SQhzeG7yuN?){uSMjm0+DbkmCgqu(B1PfY8nL9t>NTA zEYO?I1~`j>ZHaswHi{0UqHr^5B$n73W1FaecJmQlpR*|^8_N%5Qvpsr-IEU|QgFp; zZ#LZzuhhl{GwE!eekWqdXh4dQhDUKv+z+~ zFIC=e!~Qs|gJT|erzkH9^$W^hgZwqhUz7Yb%U_H9waVXe`3uS43i+clrN3#t+=j-c z=9bpwp%uaZvcGt#Z|>i@fbMy7B+eOo;b$*qIOhq>yN&PYoW%@sp@84^r#%1p;(PHB z|E@s%W&E4gh5oMjGRJ=#|0HWFFJXTL#CP)-`S-iUcT#-6OMHLb_)Z2n{W$`@w82^4 z^j`iwPr!d+z>|$m{7d&c^FKGjzb`=g_wjG6?^pw`&msZ8>wY8uBm5iXvE)%F{BGm> zbED4u(WB1%o5!5+yN^5Jf(`kSk~tIoGr^O8&&x-@%cOrMxS8MlMt{^y$L~`8 z2H|JINB;`*oBux(KKhF$9)8~~+86yaOh4QIpQ(Ot(%&Ozs^8i2`F|_lQo~QaW?y;z zs}O#2sdir1%JECJ<4-i0UpWh z%H_k^{A@MES@2zF;P)2+&TlEb`T7~^b0++ypDQoVGs*kzyEs11+nlw7dmPTtUh71A z&lcY-@3-}RCOdp4JN}^1`%?Y&>*HK*rR;F?Lr%Fqx17(1QEw0J;qX#g__^=$_|xqm z5RB*Zr)GE@iUy!DP^>Lzz3E_e#k0KJK3VQ8;$E&8dZ_@p3W43}DpxFvlv*eGEiGtF zi*jRFUl~xG%^y%tHyXz3uMHzUa(@cO45 z<+J6svg;?mCABAxaWW&uMX?aj8%`u+(W?TN=jPkcDcMg*L1ee1O)C1HkrEBaj9_`1jr1nX;Q@A#tt4h8u`1ly|p=;BB zfj-u0>dq=C*6%*~LoSayB_Ac%InMSTdVSsFY;oi|$l@Pyes%#ryi)}}7DzxZRhv4s zO_x^(N<-*f<*?3^3-`wAJJL|+SQacA1irryLPVaS7I~YS+rsaOxBi5jd(tY4SvP<-`2wY z5Ql%-_Q!2Yh2Q7!e<1yu66v>z^#h&G&QI2_{6!O|ug|MuPd&Br8j)X1AO1q|y{ldq z>mpkEu|I71%qp_rlAX`S^01K0IlnkS#`@Cr+*;JXhbJz$WM&N7IVQg61P%?2#!_k6 z5zv#%@hpMr(5N$|c3$PE1jENzEDAU4^W6S@zA;WfrPUP47^9$)yg%7J7R#np0x&zK zf7e#V$Ljmig7=!2ePi6aStgc~VM3BmMDqQau3&4hnU`JjD$rnW@mg~=iCoXOm&?^C za!sEum#YCw>@Jrph$Xg_&egJlJ~Rx!n&(61a?xi+S*~EYT=Y>)maDE@u2zw2dZJve z7R)tXE*HxF`9Qf`DEsM=a=B3UFOzb)r0mN|6=nZYnRaXmN!gdtua=OMeL3z!DEneL zzCuFw{`+Uj)G>szf4-_*E|mTB-g3Ew?7dHv;l6dbkiCDTXwZtJqp^nNWKRbK_`FZ- zF`#-sTrOnpePUOcT&+Ty{*g%|7b~e1OUf8fy`)wlMeh@x<#Gx6_(x6}xmZapSW=nx zYHbyA@jg*!&~Wf0YVIF7V&q~aHDgI-TC=r9$i@438O>;ILH!vSww2T*N_yOst6af5~vH zB{jmN#YzfdNgd^Aphi3%Dwhj2;=YWLiEw6XkNDKHO(YhZcke;>3}1Bv2hr>@Ab45!Ku$IC4p4 zs4{ZVg3vgeAO_Gu0+nI>bh%to8BAKVAhZqRC(DsQWf&hRlPieIFp@EH(Sp!4jPEgk zdX0iYD1qvZQKx&DNG0;obSgG_FFEoVI=r16Dov*u-2m^&GD_7PLiv5Ct{g3_{K?KT zxt60EA2anvt6wt?-QJU-GPH2m^&T@-L#Ne>+@JK7qlMfbGh1J$g+rBhtXPIt3-+LI zm(jOo93s5m-dl!NGjjj!c)482{kO}tP!r02Y_bfkCgF^FpP4C>3oV*=ba&}oO%1|P z^ADSn2&cAh4)-Kur2R(F(%SjE3_Z@IbBVzlvgv^gnT)XS)t|?ToNqEKHXC}(fQo=4*M;syiBOL}U z5cW;5xt0%{{*i7wctbkBVVxLUN6kDs)7YxS^Z7z9(Vs~sdbh*GmP?p;K3B+O(|uaP zXA2o zMjtzWO|b+Vs^WP-o=YM9%j*r2O;%Pe^eWhmx?QoRe z+e+Z0{Qk_&U!%}JKiO-gj|S2IOs5?#+EpUzh_F|qyGIWXvatS{d$ib zF6HO5!%=>fCEzH(z@Qbs0p<7fj2({pchN38T*%KqZ`=+?{d;=C4oCg_Rizz{`uC30 zb~yImr$_8??7uIaw8K$;PY>DQD8D)O_6bV)4O;Qhg|B%vV27jpp6;~6QGRd9*x{&u zPlxPq)W2z;9WLcp0*?B(#4f)e%I{t6cKRs4r)F&MCJX@k=UVx1T7mla)Px-$`|nF5 zb~wuKsSfdj6Tj8x}|DNo$!-f26UK_E)QU9I{+2PoK=MUTAQhq)=9QAKb3I0%iH z)W0WucKSkoH81V5!%_bppRvQy{=Hs;KI-4&6Lx&mzZb{taI}Aqk67Vq{$a<*IK2Py zAv-?m-+4tl9Od`;pdF6-cR>mMr2IPV_$a>@OW;fSh3xn!zZtuJG)ejStoS(psCjX( z9ggG2i5WXw$gk$5j2({hJ27F0qyD`(WQU{tPK?;$D8H9F?QoRei4ycte#Ikpe3ajb zK`R{RA2l!9`wxcx{U_}F!Qw3Y`AN5(zLa0c4wv#P!Jm*{Df@sCF8>LioxZexaXTFC z-}sCjj`r`xPAgo_KgK8Qa2$VMY`4Qve&Zu{xR77Xiy=E4`|tRW9WLZo^UAm#F7&UI ze1oWe~NId zi*V{}%UJ;W+>BAMdoovHuqL*x{&u$3u2F z_TN|Hb~x(aai1M7^{>(nNBKQAV~3;sUfXSlqx>G5u)|S)FWBkJ`Nv};R(xFft9jwH z9ggyQY{(8r{Ubg*9Od`epdF6#d!@q;KSTe;Eja$iI_>z_e_xoe!_Uxv<^1EZkQE>2 zA2r1xJ6y`oXNRNw&TF&7h5SnOf84I)KQ?2>7xJr_Ibw&S{W~^chok&nD#4$Spa0m1 z6<^Lj-fFKu&OiLehV1w#zj>W@ILhzXpdBvlU&sy@`sY7ZfbINCqY zxE+rD_voMpL@Q3<$v;-Xc@5|QlsR8F7{)?^hZ@~G7|ESN# zUjxoRYF-$!!-f1x=x@Ucl;7x#9bd?==7kdcq5MWC?D#@{H81bA!%=>tBX&6I-zAk+ zxSW5C+UqapA1@5r@ypx42D$z*S^^*Y?`v^8ebm3vPCFd??+YdHh5SmjpPYY;hV1lF z|9&-Mh0FQJsLu`;_RsIxX@{Rdez=Rz|LBYzU&_zwe>E%@@+(#U<*0v;PT1+A{=H-! zKN^;!{ykbkKB#}U4O{8U`NuNr_|bs#5C5Y>c6_vdMZ0`)v%mk*K|4Om?`5m~ZNNQ^ z{zp6Q_)`B$z|Ww6tx|p=JAKr@7uv0GIsbUnXNRNzQXI6yh5Y9^c}b!5njkMob3=@~m5`|lBZ`MCb!pF3&C z$MN?_ryY*^_d=Z=j`r_J$PSnK=d;66enq=|l=F`xCGe&GRa)uG`NtzOb~x(a%iVVP z8SI~&e>^f_$4B|i?6Jd9evgdU;V8f7OYkq`=dT>J<75AQWXKLj`4#Q;m-CND?DTQ} zRZX$eO1}~N?;|DP*neO1+3~UeJ`%FSQGTmR;A8)7wfFBvl;0yI@P+(pe$!zuAIA?r zvBGiw;eU9>4#)nx$X-7=|9E)9j*s&D%}F~P<@fN29ggx_bi@uv`8_;jhok%!4%^|V zfA0(0;V8d{2d!|Nf7HBMw8K$;4|m$(IR4J;w8PQlW|2{NghokP|9o|JeAK^(2JLW^-{N*FT+TnbGj=%2@1agR9QE(z67*63 z9tzpf?D#0ZTAv+`@>{dV4wv#9w8C-zQB&-& z!%_bpwDaF8_0O&!IRB_A+V!(l$}eOuU&ycK^$9y1`|oe6>~NIdgFZVP?cekE_Q&Hq z{s(5P_;UV1igq~4Z;qY5+<*0ey?%HO%ztvoPG88cW~R*!NBw$W#12RKtSwPK>et4M z9Ut}U0Xu&l;E|2L-G%SA-)0N7ybWB!~qRDGh@mMwi zPcU4j9TGXX>{wF_O6Z4USXxn2ULU8T&wJvcFA(uw}Uh#cdD`5V}o655`775ssjOu!UYd6 zx3F`!{sT%#YZ76wK1zQ3l?tzkW#GjZ=$qJL`zIyAHQ^kp)c!V^x+)P(81mV#idwm8 z_1d*v2A8$-C!{Taw+TTq`9v&-wooB|I3ajHtQfo{EE6Xr4>$LL%~16@tXgj~*ojoQ z5BWYkE^#&|K!w66(!)m-Ag+oS(Nn{zF!HlkrN@#3eQ1CW?@{UD{sijFVWkqA!-=k2 z5;1J9!%7V(WOF=>_U7;|jZ~s*9d@+CJGJz_o^WcLWJ+np=5Sv)neIbwGZJOfcCfA3 zZ4Sq^^kh1p=-LqO%S!QfD=0h!6i&sYu{j)4phPMjPD&Pn3J?!(O(^jO6d*j11x3nd zC6Z5r_0xt_XheeGtgY-~hh|iA?DlX9D|$$^Zbv*F0|dpvp(7HfBOdO{b#-9*huS1$ zW3C?#P)mTS=EiJ7C96tqOh&sl4`jC}&gv8`fNg>siQ`=>!LVtJC{a-Kj#xIQ0hKH$ zaBUtA8)I`Fs?un8t&S(QU{f8cRFFQULI+RFIl~E~<6wq!mA?1h{^C zI0cP?SW0^9)2Y66Qn7q+SQ1KvO1r381$=V#;tpSqZ?Vv=c`UiJP z(7NqWt)xLMU2EEdZ7MyH!@hV>wca{-cq*LjT7{KS4Y)4R-y;zMicBm6qX=eKZL$tV zceEG>RdcKhOX(6xwyUk0FQV{QmSD;5ZIa*jfI^^a^ede>uv6w}Ph`P{NrQVJqad-KY-}4A7gy=w)IchY4RN4b z2lNe~DL&Atrz4dPnRvrMwtrxYl3Tk5xgGq9ysT)Of@mJ_fsjg0gZ!}b9tf)RWSDj! zHC!F2Q?OV%+ouWLCn47Xv2;e!t5T4@?clnEQ(f%|xRkIj37$euRBZo@%(W&4%?=`! z_I-a*gXLoISQ{cuNWf|sE|SUu?LVnOGT8)NaL9d&{o@J%w@)PCDLL%S`$rTAZf2Af z*gveLt7(FN{~nbN`jg%g!;x?QkOq;)V!zUv)pX*3-E;q-$_*8#W~6InPdW>}5@kGio(A~6?Uu0c34Sq6UynZlHew+^x-zi z=O&cTVI`kU*y|3fA~uO44oynb4&?aIgi6C=51mwL*fNJkR9Y|68&+wksfYHeG}Ng> zdsG^-cW9SN6XXug$fOO(%E6*aL*X4%EN{Rf4l0&6AUVac3@RK{+^t8B4=V1~BXO@RK<_g{R}yil zA?`S;7Z(f@&vucC*Nu1v3lJ6P2TRL--jgHGt?Q!K9INkT1G((7WEz4M%lgvGGF$qV zMZ?)`5R?e_M_ZehiR-xO3n=yBy1q!HYapLU)~Bzi>+0HkUFYUyU0o3_G;ztd|NfoN zy$PCYR&HJiH0kBXf}r;YlTM~5D#f>G3GYNiB#2J@6&MmlIfms63khYOkVp|Fj((Ct>N~j$WWY` zv0*Z{qRGP$)8sQ#H;P?^foJNv*Lh($Mp;^iQw zE`{WMDs+}5HHxOIy>RE*l(cD}M+PByd-(4?S*EB|Y#W{QXkzoHgdXJ5qB|CV1ocGwCv&E1-FJ7hs{3-ekFhZ>y$fu#zg=8_D`hA;Q z3R}6M)yA~j3+z5kx-zDvCJL}TfEGtfj~Dp(qlUmfanYyruY1KcnKB_(=;ykk(TNrk zQSCEQh^6R-%reP41`X$!nBdhiI6B@k%6;mb%kimQG$UbA@X^BADA_#&*O(GdPXWnD z?!r(b`r4O12kV9@LM91|!;&B3>4LN{tW;`Azl*5I)2h;)U>OAXK={k@G=%74nRq^0 z;1DI)+jt7nUU_EPcMQY^ViwvTp^XO7T)jHC7IVKBAyc`_3JHF)ISXMD3_zFGJg-lu0~g^#!Q zc%Pn_6+Z4x_dY!`D||ft=zV%zZ;khzTDmEgCo)(vGY9bn-xCp4)i`XGdq0Y%y^%gm>oXq|FP4v!pGAY-ls-ph2J3g zADR_DzCJ)aw-i`dNg3>$3;98KSvQ^4?fPaO?vumYCb;)o*kW#liRY$5PV@1*jPT$G z9Z+qw>wp0eh6YD0aU-Rk(lTwJ3B3t@(!9PPY@*_Pok$Yn!k9UHh$tQh2db|vV>)~3 z)W9|7)h^h37C6lDX-8`-t^uES`iz)X15G?Piol`@HGZJLvi5*2*JQMoraC=|_5!bm z644FxzIHl&(GagMfFrGaU&pbqUDrS`S;QpkbC|fgkh>!buXfT%rAl1|cgcgpl{3>< z(sVPi4eAAJ#3{N>%b@fALVr5iYo=aHQ_aNp6<|M%nRpFNY{;0&SF_}xnS50t8HEAS zOkPolZ_lJ%bqs-YEV-8#dXxEZuHU563hC*ztA;HFpwZvp%bF z{^2SIEUd%!jf^d65I?{Ru|EagzHxxHM(BUb0oKC)MA!tt!a?>Qz#7?~2s^36U^gGl zhOo}DB|$*wVedMM#NoYTOL`lZhhQStTHh3HX@XaAguU<&1B1OlqX`fIFV@-^YZexa zc$%p!oRT1(CYso2rZ&RzgiFK?5NUU7Xpp74C@d?4ExK4=2=^FT8>qgXMKWDRAn=YL z2V~OQ8iKGeLdLhVC?*JH#flZnK~l|7$0+l11Xv`pydi@7r-w6R zOQON$p-Afr25VXo#-yrD&&$lbSx zNg_tISyg%v#M;srZ3?zDKoC2$ym>`~6bMwBsXvqrq2!RJ{{DTtD6!@y2eEx^G?71> zDwy2|!eMZIneZQp;%j&BU zRn(?x@Qc7j$ZV(Wq9tBP9WaNFwx|&4$?EO4umJ6-hdUN93#@Czd~TC9y7O3ymQcy; zvyOBDOVP5N5B>`5w9`_~qvl)tt|)8^C-UsE8ZC8hA-k=A0G^)J(&iMz+L@N-DZpNH z-T5WJBwfmt9vJye!5~C_O$DUs6?ucM5aa6a59u>Q{84f!h)0I%#Q_rUk3$w9MjC&# z#{$G`fH*V!?u-S9)3)zVT7WpG`0h>%P)ykTKW&phEt=ATk6Z<+H^2%!uc{fX z@Q%}$oA7ORxe(vdj9iV=MSlw%CyV2qRyZC7uf3>EmK`1F@83@9=DY=B9OHJD@djJ( zc%7B3j1P}j+2GB1LxuOalC&lg^@76ixMq--I}P$Mn14P3foIgbTsPL<J4x;n;T`E85_VGIsLVgcXh}HQvXL*x}gy9@}e&qdGsf+X}~%wcf`D?QqF| zw-t^zPkJ9~x59C5UwctTb_aMmdwn=V_EymT@L14>7sPh+kF-hn7MP!HfT?hfoV*2` zTtZ%_aeW8}OHYCPst}FEGBAhN*Q?2EFp9ID%pDIxUWGVAZ%D(NVF|)7`N6KSd;(_N zx}JrEJ@S8l!~#Tn^lZBYh>q8HC)_|3zyI5(-9S8b?fvmd3s5Zo2dY0j%D6QRod5nd zjvrRy2km`w&<(@`kb&ycoFLn(v=N3z5?BUmR9n@prLRjz$gY2- z+V!NRAi3K3q`S2m@uo%Z=pHv0c#Vel$)E)&l%VDfcrTu+Pc*zew<-p^lwkoe!6s$9 z!Mrv{qv2Q&xbZM44fXU&_kRdrt)bp%Q?wCaJ&i3*O%et!ek|138f{$xTT5avLy84^ zgsy%k!wVb8M`W#Q=Z|ncBaFLS%8nAD9 zaDvIs=c;6bY9!(YVk7y7g#>QiyqeSU-!HPm=7YX9;q6*4_TL{6l;W^I&xBQR7)664 zA^Eri5gUObno#c(?he&}#>o4`NjLXFVJZFJjdLJvKN8qMTkd4=2biYI5iJc-%Qt2S^Zsx^uA$9 zJCTD$ezq^RsgYE%?KbzRk`p-ub#jm@R3SFBBH|H^EJKu_3p*qz7fS0x# zOdo)~xvkA?9!dt&6qpZ5ASA;g_{QGNaGLWZ)8GY~{9rRzvO~+U^J9SSJ*JhZRwf}n zz%|5stWA>F2F73r9gt%|I~+A&A6P#cTX2SK!0ge)UOkX--=w6JjP>Rt5K0CK?4o0S z&GQoy2C>XAh=2_%BYCh`wTmWXBSMF~iSC8w-LK~PaVJ_+qe81G&XquVc%(nE1JLfI zBE4^?gs{?@8o9v7H!|pMCls5bith9E?+c7A>FEvW729_y>>q4sbR_ve0HP1>8>Yg5 zF+tC8Ur`nUWzz^B+eTcw=(Ju}agJNqn*W5A>vUfCi+)*1EB_to@W);a{U}!tVqJKA&~qVos=fDOs8prHnAuFN)xom1}V^u1+>5M$_J`9 zkLJLRyCR%~{7ZoWl)-zhkb?z{h&Jga|IG3rsnw&_7gon)%>DJtOXb>^I zM}O?1-J=N9IfH0{TQ9Y8KMV2D~}_z}xMg)i%ecn5j7IH6bs97dON>bv4@o7RaT4-43-rRlP($D+M7mb7agoG%s3``d z>Tb%zT49##`~)acO>v2y4l?5Df$C36t%Lk+)OWu)8y;q`_ICzEZR$x zZ-jGzWS55xbGt-7IM&^t$gy3;+&C>76cF%It{a4HNl2noq-%+U94|2C*Q)y%mATOl z$3Q*8d3T$S(Pz1}<2vMMfu620g*wVowK5(p^u_Yqbfr8}=!HkSO~gldDtowHLw}en zmCIjp)M`0VKW5=I5yuitMCyHaKSYET-7?}Njw*f%EY$9#|&>{QYqyfNS?DtGk z!U?aL9%2~ED#Lsa!wkO4QOcMDCT_h7RL{6!g72E=_qu5c)@v7r7#AHAdZz{Jr?rcG3<&*v1MD7-#Mjd?oR$g`XIQtOH|sDe-m#NLC4(y( zgtPb7?tzL`MgdDBD?9B6{z0pAO|;_ zcbHxsh=<}_s@Jk|a(qK`jB5Pqo$spz$FO^GVxM-4Ph=b3TBQxIwsrg3&jB%C( z_d3OS_$=V_$zcUf3~W*UPwk>QEMzl;py)s()SMSim2eZibBSsp9QourI6ugcGU;TJ zDjTGq4niLcRNu(bw}rRF1~NSZy(B>AnY9Z?ung)*Ll{Z$KfjHoXR}@XTS%aXDJ$0o zTI{-XI0~H)_DzXW7w%=*qbVp;gigGV`Amguz+)%1^Lf=Gy?rFq48*;UaYaxTDJa8J zwF_sE$Mtl8O!cjdMzgR(o3l#DVS2*MwC{&hqVqr+ImjSRN9KS`GcxZl;LtEkv#5o- zeSA#lOPj;)KhZ7QgVgJC4NU(iLE7l_t-?SwW6k~#2+?wXvyhM2bN@X;wA_1{_ebZ! z8TXj~cN)+sjc+K3M(l4f)$l34j_F$7zhP-c#=mBXTCTr>xnC;E{DoW|&W$N=cn>VW z>ubQ|FAEu%;%Pbl0$h=7PEYw7EYojOdavcZ8zB1J_|IX3xbE!y87#x6w+v)V9r|h^ zVVCug0BB`=1(LGiZPteTvVv(Ce+sGE=UoMu!1IB~-Bw@HfX=r1qJn6|{-nUnjFz&S zd0<+?9~XL~?t;DmsamGb7obbS5QPQ>vY#t$hC>P;ze<}GSw6$KH zKcL^7u=nV0!=pRf4b+IAIa_=@VKBDSz~EE-9Kw(8G2mz9h#!VPhKA1-ogeDp=z;3@ zm)Tm%M;BKs5b_D=)pX#|n)83r108S*RJOuSejJ1C26mkDAiqy1uwdhJD)aA&qb3sj z;~ZP%xD&VR$}As)9W8XDtxVX#W;ifv=*Nc0cEPKV*I2-i7j7CrxTzp?Cx&RNn%4)% zdi!;!I@p3&(bhcghT%r@n&)@9@Z=MG&kwm_(iyLG!-O+lQ#{`d6H|$r=i_de@Na9L zCvF%{D4y?h!$c^mrnuM*Yv4kwDK2!wFp^&kxnOwxY)vufhKWf^O|ilaL%9^|+%PGZ zDmP5XB~X3aC~ZG}gmrKgY&pUiem4WK*r}d;HA^<9DS_%ZOQ$h?SRB_8q5>hW68-x^ zG)^q!QM+J}Wf45+6Nm+zYEL?y)RX6pGlX33dbm=G#IL1}=Dj<4CE0DE-Sn;x@8}V; z-VnMLNS+66Nr40=Q zpUEkVdnOsA7b3lSq5gY!v-Es+Ku@k+u!|FisV~(ooy`S92)Y&G$r^-^K{nzmTfD6R zF;Z<4AlV9`DlnwdSP$SH50#V$`wcxx8&q<9--krXQtz4`%H(=Y$Q=cGtC)V2fn*9% zN0=*JfG&^5z1uMUY^4H$=FkqK6kYI;1N9LD85RTt>d`g>1XCosAb^z3F`BIib6}wQ zs?lD!{LMAW)-LGe0I&t^u_R38>B4mFykVYtGdtWJK#PJMzvmrVCpUgc< z@zrN3!G1dSvRcWcB>3#$h|BLSbfrUn-HwYJG9>}~MuA`D$;Vj&uMQ!7EGDT(-Y^DC zNN*vV4+@Xe*q%@5kzBa)ZEMU4sI3a%6(#lgWKMJexE8jsgD$DuuyNxi_-Ex!tJ~|P z!x>?#Esk>`wHFPaqEd&bGW+@OpLh;}W7G{n#(Qv~9&b+}VOVYe9KjIYDsumbiPfQYBe8$8uBK-Y~#)6~w(hy+Dv z-cFXJ=nw)&fGHuJ)ejYRurx=-<^&E6jnd1e+0S3>a7v7jTflTBfghdH%|MAII!M9B zl8}kLnVw3I#Av{)YcSM`p=1Bandf@KQNG?GiavRSCefuM79QiZpI@A#hxgePe6a&Ogms zv4`Hh&VIG?e5azZo&nLb{r@uKWQY(r)JQLZK@x;?IF`AvnSKWQPzT^vb-KSX(IY~NO_ z=0f@0VToe=bp2|hGV(Yxx=@e#d)m|x; z9PDQi#)FU>`63!N&b~U?IQ`*4eK_$CPd*2?;Vr?-Rs8z~=_CNIf`WUf@bHX(-%g&` zs3(4B#K{aH9}tcaiutV_U?O(Jy7K8R7Pv=IzdhhgZ@@Kr|AbLNLe>`gDGd~^|0k|e z+Y9}$lP7~YYUf=FJu}ruPe)+m53v;dT5_r{!b}QJ@b6plTweq(9gM*337BU$#lU*Z z+e^RhK-eDorCXlvQ((s+jc1^bDaPP>Hj#aP2UrtWDNf^_%-Xk9p4tZCbq@ERc6E>& z3jKYNAlAo!|Bxx?>kIv`)WGaM=BmA{NV!t|?%R7!tm`Ni?4v*w|99%lENcpIu9dnf zs#mUtZ8^O>(dECaqOOo>ukYDyQe9c-r=rbjMc=d2nJMtzlTwjcYjWWb(gwI;&}_-{ zkJ_A=guEZZW-zER=K)(RR6M1|;M#dJrxJ8kO|_Z-S(h4JTVQ#xpxSwh9fonAZ;W1H zCmQYLkjcgS3ba6&$tlrYBa>u5jMIJuC++l|SoaJ*H?TDogR6RRe7q+EDe{w$tLX_S zm^=tFgj|KLfOI8S6e5`c=4Z%EA$klNuD}{ZJpZ@jCfCa$T9wWXWDVc3c3zdE@-MoC z-dcb=#^t)Se|Tby4!mI1gn;hfHO7{&mD2?`H}WLzu!wv=Y&ThIp^F=An~|(sGx)9a z__j=FD$speE`4k)bftT4N7ZR4^rf%t8Av3f&7sy%Gep3I^FT;YmLa7DXJ*;?C&Q8Y zcF^Rnp6zZ>yj&^mzhrM|A)M?(sT1;EI5d`m+jR2HE8xs#Qxo2PM96yzn~~cq3c*}- zTO1T49;9a?BZGIq0ky4>NPjTc)N+Tg7KGFl&?*!1ZkScVv2L6z5b`cKxFGy9LN2G) zcq_by!HcMU3!Ib?BXnPojDHs9UA2olWm^uc&fohcxI$i`$M~HRnz}rJIH?!x| zutT>_<$A$*rhzu;ruQQTeC_Uh%vz-~5Mj-UTyKMeOoAUtjhcE6t|?wB$1Jdx$tdmL zr0vr{zos}xg4jKhqe4u41@mCmaGb-4Y14cN6TOf$c}1fM%;H`lL|S$ND?K+Xm0`CffXBbI=DRrWq%! zdA>v9(iTYfcCGGO&xy0mc!Vq|?0`5r-4X=T57gOr$|)D!rc!bz+V2#0^rc~7;eMTl ze;Ea^p3LXKigJK=GL=vZlmA}6XA~}DQ0aa;1Zm$jurmjiu5>Oh<&gm`(>q{H1D97z zc{{U}ATWKY;BDBmvA(_nTwseI)nH!mZ!aB!;DCepT~dHsZ~5Qeqh=_F26hE(Y>yF+ z5j*xIyvl&9ooPscxN;!!(VYh9OzSm>IM!hxVlTxSnQ#_nL1589rpuiOJ88h^@)w8s z{{xPZ31a}ZGn~zax091}TR@=tI=G1d4pf^;Tf1n8#(3A#mCEb@yhg@1vCXgI+4;^J zx;#$;t667bd(|Lz3E6qCicixL--kVk4 z0C|>)gZ@KUP?C6p|548t=rI4DDV8M+S3BnWGhM-8gIGQyq}v6OE=9%!;mzBG47)%Q zE9e3>A{!@NAj!r~7f8&kpu3nLyq|%P-5f;KpM_`%ndB)+lDQZbYd|?o%QS3GtF@ z&?X;w8+kj5j$EW#oc-+~dcJqae0#Kf^lxXrOEI5kfy&4JcIK;*`M#p%qklW|`DMPJ zYWe8j&V03)Z|+HzkNxe;7r=ZK=c|0|Z)d*CWInAP74&aszTc7gsx*4^Z)d)DV!jJL zukx|Ko%xo?d|y)eE+2Xp4Sn5vHp3?Ql{qjM^m1NUKS*bix&M%@I>~tcN$|5pQ50Oh5i-VjJ5F^D8(jM{d-CZi>bLLz6}qiCn~KG)7n&81E%?8F&R#h4s_6sRWhZ?6IHD< zIUvdtRgE(_pvn^KCS;w#RHU<;*y@0@Sx%p{HA~$uteCtpc7B;PhG7{rUduGb<}MH?`r)lzM)L8bLqyd=o(Zd&5fw<}&~+;JN`L`f#^xsX~>v4%3b+}ZS+UNZSb+E7>C;-Y*Vgnz)Hd-J3R zU8JuEubr(V78_V!G_^p9iQcu%CqqQ5PA0++90B7}U$7>c;OJ}$CHG^=#0?v7+PHBu z@%=SZ7oX8Wil9@u>y_x~s5yFXgYZR66|VoLEJ+_;jkc-(<+F6>XMH`5K-Hr;u~@6g zTbLpR3^p};A?%(eia4qJ0Il4zJ))4<9p#D`y!j%?Y}P}g7rO(UYGu9dz+&B;Gz6ps z>fWQ-BV(KxI>;IzWYkP+0C<5cM@DX<`q}WsQZ%`#3VxoM6O)*-pw8CRDp#+SLb!u+ zIe8a(H>o36koS=HN>^nm6%zZ=q1!|3xvs=abAGM{&^iBJ2187z2$`E!80W25e>eJM z-C^R)Vx*HRm{yqm240iE;saCl^yV!5tSZXcMP)H3QX4;`6J|GMkhTz0hB~8F6cUII z^g;Z5MX`=WM=&g*@eQ3Uv(K2{BugYO(7O@8DXHVrOP|gO9XLUznnra>tb#$LWpqfr zT1`LI(I^9@u$o@bbFu=YTVJLCVwGF-dvs#7*pjrAu(aAX->Ty?X5bXL_?pC^cPHAFRc3PAHhhD_kfeVM)Ze{9z&eCb=Gugr0i(s5` z^&Qk~t+86})(P;&f+e+a-u+AxXY6w=|E!Z^t%VD8XUS0O<&r{gQzK(&){WKLqiD4@ zze!qqB&~=+%N!KXD5cilC|a<9>0s=fi7oGz#6V!&EVo(BvSEugE3J&?@_$j(TALZQ z?v;$1Ii}S)ExVOkXq%)4LSxiKW7ZkUsW<=&h@(g7hYB6!bk6uIu9o<0BLdaOQp#lQ ztSdgH2;{R|8l6lUCjW|QZ3J3zLPvKrvpJbLqt0Aar_*wbW~R!hs$BKEI?_2;|EjM^ zbXXsb2?1Qs1Yj0w6~I->-DL#MlI^SC;w;x8Ik&TM20!5HsFT_`i{a{TNCK$@%mh#p zlh>WSB(8qWMdK`magCbSVd-y99@q4{SUG2rT(eKnNbCL5n8#eBdT=W3VB5%8*5#F9 zU~=v*?~HO_-#1q>%@=H8Wn9Lx-9sJS_$REz`xaO*Go?%kDQc)?D<=K9SyYVs@@j_A z0Ab8Vm=DMh!JPk8Ri9IYze~*(#EvEK{BKbhb3arDLk214MifTHP3rIWEtUckOY$hJ zPQ&nnvC7JYvEY5R z_P~|_$yB$&F$`6(>_b4zh?bl*moT+MN{QO2%cRnAhK3UK5x9m^g{6u2#vKj4S#c)+nhdInaLXvRzPnIgF@>QAt*G^vI*OuIBY{y?R2gym^r9|v)wpUZ zCp&?gkt#bQKa%YR(ReOu5`WklIfKZIva}m6nN|p*`fWxlLxhN)B*C8p{fI1=7s^Di zhijZEZRk^)&8l=72;eFv<*&7itHW(vZYi>n?CiF-FoZP?g_;!?u6EeCZ(6Ic5RKX9 zZnNTZh@h^ROQTe^DpwUD3NC&XQwjW2mr%#YXz^+XrKKmSp`#Ry*C-9{24ESk{&+?z zAH2h84%m&b>s}WBtuytgbc=uRZ-qG3UWVNUcKcKqhXB$sr6km*jU|C8xVJ^tMKjw$ zRgb!Z0FMrXt^$7OI7(9tIgivw`mCFZQ0>S2ef#rNW=B;0qJ?{XyiU=Pt? z7wnepk*+m(HW(*_p2e=06%@iho2E;iUDR_ZsR~uFDF`UiJ7|K$8*CbM*A_ z`mzO8fn^RtI#--&y$BfHC}%oRh!;AGrDp{+rzf(V7YeU|(UYT60S68BY@W((Nyz>h zatgI=Dw64vmT=8fE)1lixqO!#u$N3ZK7CVkx3NNj=F3LZXC3>L$eqrSse;Y-v^v06 z6`1?R2D|#{^;_b1=@h$27(XkElmW>jm=dWk;6{pEu|Ma+pvQX=al{ZrXe!pFhok~i z?6He3n3ch0X^5rG2D+y}Z{ZRT1O5x>r-Ct0_t7dnf_i0mod`^}sr{M5`Ch>(XL4jMT8bpaC>EZ3qZ#qI5 z>@+mMF$ISxjO2I4l!_JC8EOJ*lZvWFt}3cCJ9K-at`e6Tbyb|YHDB?rO~q1I>V3LY zHU1kip7||P4!>1dPfpxm*FiW=~F{kP} zm9WyGgjU7cx?q|^7z`cbfPKe!1I>hm2527q@J(%rspUt*QTndDUGV}&M`;T;66z;Gif(!X0++TskrL!jz-m6TNMSH zgp|xx1^(cjZVnpA-~+4?O%^n2dgU}~5C#=zctD6z&>J{>)*ZT#wv;)O&?)GIWxId! zHb;wa;RHX-n%(5AOfxt{uUOTF@lU?0b4?8|vt*OY8Q*nAJ7~PxP1hejt@EwORa(he zIRXnV8~2YcGr41yeDE73VmAsACbZ(2IcN;Z2SXHrGM}qj3h`$qB30hWCTlZR71PSL zIJI07{8U;ec=k~wG{B#7SQ=WBM$-MaY?HD%@P?e@jKhd)1_;cAG(dGza&!TUAuFSe za%Cs_*HYzXzjI&J{_QRP)*};h^J-#0mrn9ag$1rcjPra7;{xrx$*vixcx;aYI~urL1PLh9$!tSEZ5n)tblW=WFDEPeiavH|G)dUNAivip$Lp2OJ$ zwf?FIz&Nar_%wo|g!6@u7}T#L-F*A7DHkUdMg9v1Bn7z28|EKt8#j|l`yipPXdp)j zl{H0I8xsEb-`zYmk~sHmTosj^X%u#U*r0G7 z)UvzPYC|2hM7`VnC!&^ss8z)DMd)IatR=W=S}j$;Ko#&OpLDa;NKTGe^`p{CVNz0{ z>b17ExoWGnjNT1OBI0g5C_Ow7X7CvzpT&O#=#f zmy4_((eWvR57Sho{2itrpcz~UB&fw`uq)VozPwDOHpHFk%r=uV>uh@?UYxe+;lw-(`3=Dtjeu0SYH)!f*00xpdjY9Q#S)x1j9{421| zC;WC+^Vl6~!fZAxxTYFU31ny}EJ-jilqV6>NW>%wH5(FKkjW%7n5MSUMQ&_0>MLv1 zBtu`VG8rP>pE?_AR^Gk}lM!7)dDhI6Kd~A<(0r^DaHm-Psyb)LWF&|@Rf32VjFSjV zhlN|upR@1U0LwK;e#(fL=1wo2YPyUj{8^iY%1UhC{$R5pyhHNoXLO-X-$p^7eoCCDhpjuexkw7b73i8}Wx zm}KF&x^(^&`q$P=^c1|77fHgSa#)W_qnE4wi(k_=^a7TC37mVYMWv(Ql%W2#qN8B; zE+-aj_G4A>U%=h~q1%+*yaTP>;I|4^P2k=trgxBat)%;35Y6R^DIN0_ z=~bC(f^n%@cdwf2g(s7x^{Sjgr32|v>&$LK!XjX$M>E)JJI7z0p1uiubhyNE17Ufxtw5T2k z94lz{J$w0Dq2)AiB~m4{y-UrJmGya9)4*34M!7B9ztVEQUWWcv$VJ6pDva~A+e*HE zfz~4Y2EDGeu=I?0KBIS9R7eTr>l@s}m_o0k@41PeDP`!=2-22ipuu5X83C0}m4-z> zhl(o>{2F-4 zcr2&>bxscxmX?${gCj1jgjSWxBKD2HQ%6bH-w?}h0@T$YQMzv>jTJZB7Pf9L8jCwW`<++H!Hm(4ml$z2Qq%Dl4{dO5Efoxb>B)ez{J#3adKn zJu>Awq5Ir~JNIhjpdzd~U_}q>vhLh#WNy0OM*J%NnB}%_&A$qBo!_W1&X20U|Na|N zkvDD6Ir@az6V-tIO?4~-kZw+Ct9_R3PO|?Jsea%5pkAu3ESMQy(Mc^&l1^_hB}<2N~75V z`dKyD(xkiNuz0Gw_q+nu|8U@v7NFFSr4{gO`Rh|^rc#x`|}aEIzFbyHgWbRY^I6FVFhvaE3)DLpR3*PKrqU`4tg(M$Vur^t=qtKv?^LHDC#QJ@ zN$7+3l=5-ZfPL(x>D)HxcgWt5LD6yOM&{~pbp1}JU4VHZQZu`Nv=432ujT&Qkfmpy zsFbF>4+2F=cuYVNb+UNkAE)6(=x~x#E6YemtICJ{$Zbxao5cD{klFo+ovnu?@u6=jVHpQw8hBh1fp1wyhyCnyA zs-sLz^W}pBW4(De3L$GBbgGaRsdSnNRr2?5m$Dd0QQ7MSx($~UyKhQ9#X--VOCA;F zAADR=W-f+d$IR}kA*u*GJd9++Eu#)lPZSpn7rH8_0w&ZV+4^?qfn6|pW-mAjOt<4H ztLK`?;r^Jh{N_-Ht$eKhRW0{xEVrHhRYi^9Y6sZs|lL32=68s+v&4nqnSx?r!7Caj6!pIW@HWWhiE zilbn9#s<;NUQ(LIkEd6`PWS6e$F<=SKFENCVWmxrSUbu7>_dVdJ;Z5B0D2eF(!$HI zBUK%1Qlh06LKFJbTxlA(#MePMWk9+bK10|l<_j(oYTVQfRvPQW+j~k%PhkT?I2xRS zUCUzWjx(cAA5HCtxvj2f%GfBTMdpk zMc@!ys!xprBZdSug@p4+TElCzl8&j|K!296h{@p)LP^SLi^B&#ghI$QQ_>gLwupXs zN_!NFz-hO9LizY1exMQcCOE}B5`0jMoPJoh3VD^xSp&jIGi|Kx?IcQ)e+W0_@xo zGGGo_jtWrKQS6i*spP&aQd4Fmkt5Yy8u}8yxpNpsnPA6U?S}Qa7nGrY71FHurlNmd zi~9TLx5y@;>pq*)tCO(ugIK2h;OjU7`g1k-(=m#oOGJ17l>Tg+)3d68EkW8rgN2TX zAar1$8qrxQ7b5%s@;&PiyM4T`N4ol*MioC%Qv8oEO!sZe!d`I9Xc=t~q`aqJenQHg z?P-?MGi_ysQ)JKzg4iz~b5f9V3AYwYl%G#;Wu?iy=6FQ+RCNS`Z5tlfrniRxt!I{8wpylk*S2~Iq+fD$du#w&}Qf{e%Hj`6ZwsA6AH9h6lh zlh!w65_jiDzu}c%I*ZQn2Y+`RI|Iuz9R^+oFA_JZIr9h3jHzU)jQ7ZlbQio}B+fUf znWi3GNo*&$`V#*vXE1KWOtUr^WsJ1tt~__{a%;YJV1};Q25d_c8phCZXXu6-iSe{Pl zl604gF}pX$AZC|>^-9`eNY4=buj{7!AoPt;lb8ws!n6T-`b`YNs#|0DXKMR{I5uI@RU~uUMyx0BqFb7 z%U9syqvwL{8X|0eGBM5m3Pybpx(+Aox!_+VcE4l7;*^`G@(*DNAs>nNOX-yn&Ae7g z6xtBGkn3PCOvdC;BRhv@evPm?@HB_`nU#m`Bh<#T5KdT#*>Ydn@mjJ`fkp3?8DX~? zyk*AUezOopLVnd%c!bWfG421v|7Vy8i( z4fg5vsI46Ox>KDb2r*FVW9rL66(VRZSBN|pe`cDtd4$Kekt<7oMPXn3Ls?O{%(aXr zKpi9${A{*Tp~_vXdXDJgSa!QnS66rwDuj7i1(o%X+h;tNsPRvbmunR+`f#8y3GYK@ zlKFbV;P^mS z!JN*Td1`*@$|=_hjjVpPstQ*lKo^iR=uSti2%Iicov*5xl+K~jGT=tLzB+5Sg9k!*kiIGH*2P$Y@%PDl?`qplz`Ayz^_44x_>@L__|Z z()YYm#XebH_IgFByw6Lz`8e#(W-|@(n5IE?$vd1`k)pH4kcyLY&yqoj!5QJv1%cRM z^d-kBV&?`)jppTQ7A68%j|OfSz}$WfZW`as)D2Q0p#$E4%>DyF#*9`joZ84jE$A z&YeM!mCMBQt{-aHvDDUF7kx|^1$H(h=&fd0k9Qwb)L;*mx?Im};=ojotff+uy5H5& z>2y1t$CvHQfsqvDH3go!zmRzFB7+P&o1&L3=&4hy2R6NV!Dq&j?NF z`%rF2>~&K+gjC<7I{RwovyryGDhlf~3h-%{`fB?^me5h#5k{p6`k^;=u#&w9C`zxJ zayW+iC5~W&V|nx%Jxkv$g+M4V4M1rE<7J7jwaFBWai^s`Ev< zLqc!RQ0ID}za_+k$J3x@)b#ErxQUETe~_p-GQmPLg6MWa{9E;_MrDg2UMP!k-&q1D zlo4B>F;J~$BPjx*7(C}*cImAH5y)?EpRv-T-<9o4D!NK&hSHVPiEr~@9veq`TAWzc+k{XCPmWSXVb!p*QQK?3zorWd! z9atb-zADIin!oTYJQxp@GYPn-MtBLPewXX_A4Hv&q#Nx^U?19zM9D%IV?t~W9D#WP#7WM5D~lLk zTs|x{RTK)-hLHU|j@gzGxcG` z(VIP!Y8PWMF8>B^Ooa+zn81*q=Nc78Vy}bkdXVW&ogrXHnNUM{2o+A6$&jpr7ti}t zPh(XCF9Z%kutK^M7gA}Pg_vTr6ymv7jbJP!#MMHmu+QKc;wb`Bc5u20GyN8KFsi|+ zR~jEu(FcE*cXG5NfE9O@$Snzwdd@nKSPP^;WR*w$TZ< zajrL^95)i^EgOK&9aoV&cSD}>=?4djgOH9|RmpVUOO7Fb*=Bqqv*a@v0!w|)MP*2W z0}kBH5RL9u0`J%~IGl@lg3aR|80_3|n`XeT`CI1V&jQDAzM7wu%Y4b_bXo6%<|8yzJ^Du@4*d|!y^Nl5O?UpYLZ#uj;?`q@>tYbSvFQsq4>7E%;k@Q*~T)Y(1Wf+ z8bWKSnJO5LU^AD$9*(gao9KgMqAek58BVbva>|C6Uvh{mpT;UJ4;8oKf_@7vqYNtt zsv=gf^xR{ueg8OSKrSd8YtJX0=XT3;PTvD){^s4wpEE1J4WsbGqb0cVNY7jG7;w^T zV|{jZJG1IEr(8HIIXL}Ah5?>Q1mb+wOJG$;Hty|Ak z7gV{-s-G~I#j-yQFXJBEr{kv8VJC<84dxApO_P~f{d~rQ^#?HUV)ZHLu6C!(K?`4m z`rx+h^#m*`b!zC!aH{tB_!zfxu+x+yk2kTb52D~6AMCn=j)7&x%{gCjEpt2S3m-av zru!@i$1tKYK3?Q5MOZ}JjUTzLU#5Eq-&{ZHF2<9#KLa+aObicly4Y}JVtBORsrS?) z|hbYy%g1cDiI{|DIS z%vHc4U-@yTOHkH&aJ|s;q(|j#wwzhxnZdl;*S~oZPAIn~>kuv>5^{)_?gm9@&y3e) z)-Fx(WL7g2B;*^+qFKliySKYxSi{)*@1utm~7|&egx*c%8IbP*r zIT01)DmQ`&uItayBt5Tav+%3k90tr5X(Q{kIhI2BV&>|N%rq1R3B9Wd!lKnf{yK|) z90w`dEatIohOYgj3*uMrWN|m*Svma$UpdZpY6UAKy;0G;zF@}+2^Gqn1gkn>42o^0M~b#WgbW6-cw}0s758t2WWsmN zj{65W>ub6{eaa3-(JXB}`kALMnSXQZGZJ$|T|z$|gq#dyxSLqx+7)5Fhb1aQ0bDm^ zAHiNCUuUpOfu(`E$#?i<*5@7^F6;Z&;NmWAPL7{p)dbkc>B*}s2THF-thA=^$+lGX zf7rEDR?oDhbx@oeCy!d2As4B+%HiY9!<9I?$a0kPHhtx2(^qmdiF2uWn;ibU5#&Fe zqh^ag&(Ds2U*(Of?HlTpdn#*^OUlcKO55rvhH!qNwx&#bSfMPZ#2h1C^>)f9!bDhlg@D6A`@uv((9 zu8G3BCloQCO>^uqLCh^g4-|ef9ZKSUOVAjP;@@tY=4I-4KOE zb2>A{oL5F+(b;V?VZAyEi-z-N!g_ramTtvn*8Q8JuqLCh-Wi4Uf+(!_M`7t1+?i#( zD+=qTD6CIJVd+8Fnfdx$6xPjASpN})rH6NC=IcvQSbDd}%vj%u!g^;E*0-Xt-WP@S z{V1#tMPdCY3hT}&tpAF_+82fO-%(hfj>7s?6xKJQu>Kx}_3ap}Og0Kjk66y=tC4*s!rBsrbxIW0wkWLAqOe{Ng>`xq)(fMs z&W^&`5rq}i=gaJj!g^v9UvG@UdP)@5tx;HuqOjf`h4u6(tUXa!ol#gHjKW$Gh4s-W ztf)R;=HH{Ru8QL8vr$+*QCMGz!iwsrWxf-IRgB{6z9_6MQCRm!VZ9r$=r7af&m8Gf zqudryImUd_k%6Ln+8z$?!%d(594X#eY>B|`KKl{oJ@Ghr`yCE0wIA!n)fBnpfgknv z^Ewb1%65D42L8n3A+XbMgyX>eSf0k_Gzy+Gap zL3|QJW}`d!W;DEJTrN;aoIB?v*4r2SlR4nd3U83#s5CR=rr%I2u=xq*V6B{T;_i&l zpt-=Htoh9FV%Az|5|)}Errs~=w!x;%tP|19wQfqE4CT)m%W2e(kRh0g86LGOP4)5& zI42kG4-KYl`D|MD4bYT51S&JKoLQ$sso;qBCBC~z3-GJBm!YtAJxmc>_3^x|wuPNO zEY4#JAfGLo^g=Fw8JCACDs}WdxK~fk)z*pClJ>HsOz{K!I!E`e?-}~j{ z56cF^*wei-o86|(wFNjH4dy*T;p6JyH<14!G1CQW^|*-92~>^1M7}e_nn8ESakZr~ z*H{JrU!8Ee$a0Z;9fwtgN9w0dXu0X5oGXpTcU0>9xap%;cyHVYpDVr5V>!w`{+@_Z zxPotHtaGBUbkj03R<$V%=6>GoQCOEm@%7;-tQApMpNPU*6NR-u3acjy>p!Bfo*jkt z%_yv)D6G4qutuY>eiDWC(kQH-MPXH&DsaB~Kor)iqWG#dHOv&VZ-~PBOB7$bqp?o`kMqxcM3hU-5tj;K`+oG_RMPc0;g%y=g%s&)`Rc*+W zBf$LoqOhtBb2_Z3cDp7j2dJA5e9>QK`~kQCVbg|5IQNTJI?F|SCxu6ALnqX}?(G~9 zM-$Y$tDyDDTDLS2MkDN(%!E5bEyf7AASlp-wdUa8n8I>(sllc%BG0gXuGV@GtYci!{(c zVFsuQFYnQ3-opE0LzJBU@FmGS-;LuZ-<0zd-t-n6w!>@#@1As-7r5&Z08(tCN{sls z8MFGzkk@tGUEVg<-)znfUBA`|*>Km1T6YaX-vLM0ZAiRs*@}1_Qim!|_gu7`{-;`# zKfApkoDk=p%`U2PdPi&8K)XA4WrtV#l~s8DH_LPGHTP6bj9e)_++S&^+m+fCg>_35 z)@@N(yQ8q)8-?|OD69`hVf{D?>nBlIM*)leGS|6HQm_S2@8YzNWEIcpDMR}ZI$s9h zg|~7ig7)yOhqE(zS~>~hPAIy6wCHwNx=pb!`h^4xPw0^y6K17)om$VVAHO=)W-+tB zW{oO5C#RBUUu541rn~6Ki1gvyUi(IEu8M8BRMq=exm4}ED6BVwRFx!gSk+c^a;e-q zqOeYh;_JOpSf@u}-4TU#RutCWD6GaPtdB=woganu?@?IQ5@=_~FGOLrNAdO5D6DD; zwBzew6jrqa+F^Y+3ai?XqQkl;3aeTI?Xaq~0bHu~ihCkzZSLn$d|e%d^~)%%YE!4o zJ)VIvbIj?D;_FXQd~J-vsy2Pc+}Do9VAal#;%jRZ)=5!VFNngbHjv|Fd~p=k=}~;W zJPPZ~D6CgSVVxU=^@b>{Cr4pb%R8M`TcfacNAa~d3hP}_SWl0_dVdsFwW&a-iBCmg zRU3S9So@=}stvw4tS?1jUHg}a=v!ND@Yqo-MqyQ(YIaz9U}EODdN@kPxP0{wQCRPa z;cH$d3M(p?n>RlS>#iuiPKv_%d=yr-0bggw`=YQeh~g`%eVli36xKhY__{O(YhFVX z)^nn;bd09I%=R0(XQ_`&8=I_jnE{mN{_XaI55lc7cnYGw=(08hPyhSveDT$_z_z=1Kc`>Ya#jSUlK;|X&3FxsR9@=Oq$bNW8z+*l@eI}#!!vf{t zba^@b2oT&GhV|5~Rr?tOFZ-^0e`L7dUIw`PFdk(nM?JxseApRO3m(6LLra5O5>7obh;=*ZZ3tn-Jlh<0+&;s6Ym;vw*(hb`t;I0h= z)Uy|Xq&vWImGrhZ$eww*+y6js1BzCr22|?LsX%bwwFPnk=H+*W9MSC`hNJuk5J=Vv zn8hD{9=itnxl-OaQH}S*QR$W(Zo}Y%apCe&`+#N3?0CK71FO0b2yYsxKZ<;GC!*fC z1@dHr9{|eNlY%Me%h<6xKi#R<)@b$9=UGoUYU- zqxc$+;_Gu!Sd&p$Ux>o0)}3@RR_o@vQm>8T>!(qCy)g=_S~u76wJQqiS5bVuH45wZ zQCPRfV9l?M!unVg*2AN)s&#W&tMeZhh4rN*#h4o)iSkH*U z`b8AhvM4M)JzQz1$k}mi6xQFPu$~!%HNPIP=r8liuimYXDQ;dnQh-C|hrU!{y#}Ae zdt(EY$7^ub!JFf1&&MmgWEaldc(Hw_SfW?zXosonyXZc15pMC|sdK(eB6DMj?nAbW z%UA2|_3D`$-8}k4a9Fp@xxJf;yu-S0n)e_q2GTm=j9hja;Mi84zYo%HEAXq{_uxQb zB*2h~vDeXdLcaRW2k|A?z1?pG?G-%*=m-EbXTo`X=cp~)=nk;$^w&V?ZOY6sa9`YN ztiSV)2g}2Q6O-J{kZkfrNSW7OjYS8FTe-hcv2gV)o<%c9%O~?@XaDu=sVe(n{+xN; z!|z@{K9OJFH#)GW-Abq);wb1$;XfW!m|C1ueW`UrJ%_HcKWBCJVPzME-e7;flzANfz#?!1B#C z$+9hrDiuB{S-6!wQOI|*a~#%O8xK0j!e=Fs+bb#KW_MX0Bez!+F#jMIswCD5Cf?s? z7AC=Ze>Jou`)x*opwnNi{_DXsFLryi{Ef>P#31+woXgQU zIM!esZmaOe)ZyX+{gai!hxRVi(^u&Q*GmdnZc)qzoN?dpoj@M?!!7^9$Uh-|_&1Z5@Y!Mk|v* z+m+#B<9)+rs0(!SpD7;Jn9MFWhX8&z9HeOy_(BFA?Hkwv(3LoN4yCv{wW_}t^WmnT zmS|(c@^6>>z)ctCOJ>(gn95k6zC^@T-4GwR2O%Low@E~McBRmuF<{K9?x6T|j? zi9|@>^=H2*+!^Hx<tT8GQt#S#HmDs!uwZ_u~f z=sRlGg9$6y=GOg80*g<82f-yTBOF*H{DH7Mw7DbO)|ZOo+@p{$IBOsQy>+291a0;D zt$h^(!mU3HskoPPbr`7j=8;No(lY8wn*J-l22o&QgqwnM;j}`r!gP=**ziv=X9Vcsspe51Y%c^k)1fR^CZ%ZRW^Uix8_i+72Paq~E%s>Zv zn3_)CblhB*ms2qlHS zkR(eHy2Us^=B<;KoypM5)8Cwn%)6hSCi7eGO(Q}gA3bX>b~bbpBDWatO%vI;K;~^b zd~O0m_s&V^Lr+T+`fa~SCqrUypOe^zQc`T=!)an0C&=u6tL29#mwo@HDjl{6F#MDn z#7xlI0!P$g*a9E3VXR&&BD4EYIw2CgZVrN%6(TFR!$}0PR^!Jhg16d0_I9@S;7GA= zA~g6MYWASocVU{r-~K;VZb63x-+jjH9i2%f1+N^?T5Ujk$E}v3fk`-E6B0?^=5uJc z2Go(%hU*=_twe}KZz9pdjDCj3%h1ZavyHIJkh&~~R;;WVzO5HyWa>o&Wc*Szg>c1d z*z~pW;Lvp95f23&N<3n9Hzgi%$Z4QQFv2%EGNFc6Vu#{jqCC6o59!gc+WrzO3U`NT zUPmBpR0n^6E@rBh{=KaBZ_ru7yWeb;t?$9;qveVoSUik6ThA5R)k!<;eDu- zgaO-Ge~C)b#tq&XQtNIo®MLv1|tCfWZ{I{U}KJ3C*3_jY!^B=78e3Etb;`2_Fp z-JIZkWwE#k<_voOa~2t^u`(vHVYDAKzVlwrXV@KeUfh|h*U86rVO}FP+~ujJTWGx< zH6GBMz)o*NB9WslIvu}O{vXPKH&juX1Fm>*E8n<3-g*+{Wr6`?^g-M zcEcUv6H5z&eNgSoYU(S*m5^N6=l$ylCVaQ+CVV#xZJGDKn99NsrzUY#xo=}Z?V#!* z6`T-zAv;e}tDH3$vow$AE7arPX}09jVk4Rcq;?Vn3vUW^^hakcwpSd+Sh zKN+u|L}#$|hE!C!wt|C`?`unkozRl%J`bI*(XWuxFM!`NA1tJDry5_G%340vQU*6* z*kqVg`H@y?6*NpUi^9ks`~|V6HKvaK48w|SSJH!op&#&M{4C(f5Oj*o+;L?>B`b6{ zd0g$kAyp~IZm+NlT~bp|PTC7IiOe0`_0V+`Qv_g6b>5iD*&NMfk`_||ood*}m_uQ% z4^5=0PN(JLs{7@sEFQb^!p=B&Qgc#yyI-oEeebF1?5TstReeZo25%=Gh5Gg;^S`UG z>kg9=uXu>G7k2AQYJXQ!d!4V)+WYW@3GHd_)b>}UvNlKGLt539XIK=<`|xK{*(2xM z`B14Z93UvET`Q96>wTqG-$(wf0)MLh)yGqTNUgd84UM57VT(9YGaiaaDv9lw7Aux zpJ6f-EAz4Qi9ynu+I0k*E7`io*Nb|;xi(xGl1{mqkMZCSw+PGaV92=2KU7UtI8ahj zhbUuj40zU^-^`tz3A-5v)!yTpWi(P>yPDw)m%?y&ekH--QXWTSJs)rB5W++(Z<3|!K z>cEk&LFMfcbu-aX>)_5zqW|2%otYk&;-(Huz=k&}q5Bh}6B)!PBeHKN)BSW^#}4k9 z8jqs9vFia4DD#OE64DO#4a1z>K9W~<-i)(|E>5CLcVQm;s_;*uOLrl&GgFsN!AWFn=Res9=!m7bmX)V##&rM~fU;fk?>n*NIJ z_+@qqFOc%Lfx0h&}zON)I=?T~Nfc@*V9;t_k?9{I@5p(r(!cw_-H zX2ix*a>@us!kI6$yk?ptG%w!EtfWWW^*u!2{gIT+D*A1xue{#x&}6y?7MKtWN%PTsczwdEv;M&6T!gFc5pmP4q~0pizJNx z{J`H!w1OD-HPe5#jJ7HxP)RTg_~NXcROI&n4SZ8D}0+O_%A!=^Hl~w8CZ&Ywt5Ktqk3dZC2Q92YZa0ZMNW&7_Dh@ z%Oi>k_%MHZzl;5&y)S+_fTX{ycZ4E-&M3beuSc2pQ-_D2!*W|K-ii8H5cTQ3X+bp#4-m>g934`PZI0)6XYK2U#g6y{9|-LS}3*WvtY>a|Fc6@uJ4 z4C|ciBoSB$sFcimho6aczY%{NDGW|rVg3T(MlHhuF-Td`_$N8X=#|X3KkYLFqN+oraasN9LO!6a)CRD8 z7<*VQpM+0Q8J0DuzDZpM{ATWk;eMwa;KlUY^5>urq;tfrq0kI*#7|Q=A`ygjLyo?? z*5?SATd$WS75c_h_u0sk3?M{xi!$S@0`2=g8jREwHo_K~{p60)?x&)@uC?kTLkHeT z0_#2Vfg_TlIa6sw9~c9d|owt&+!Ej+{~(7av_Ru~wAZ4Op|^RVPtVIxdw z!-8ES7Gwk3_)zT(J4C>4=0`1(zs*+8Zoyvgq72@P+{i&F9bY+GZbJ`RVPW8?hcGZ+SiGa8N?5vf6^|YmmN3gcS-2M;|2Xw z7`OL~1Pa-B+@PvxUI**0;yx+#Q zkkP}36O8JvRBsfg6j?EFR_Ap0btuO%ar%qD8%`n97%Yr0Xubw_xE!G6F0xe-L7y5K zRx#2Fi(g4%l18h7G^iThjPg*=%4yJ!u4jJR zXldZeCFm<0eHGOz5l)CT!LRMG?R=x|TL1QgMj55jf@Zu&y63BimGEj|&kjzkiAqTk z;O{nhfYbq*rnI(BaCZ_~rMSuV9!Mw9l?gK<27ZSJ+zm+^tYU<1S+fE!dAXio`v)F6 z4h2nr538HxI@Q^U^$qEa|K6s+TE%)p?;h&6N@pXG{;*zH>3{!Pk3Wicz4I{q^a!<5 zywk@&+SMUwIgWU#{oxI^$qBRqi@ilWd=ORwgL^M8>E(8Vse4~vkkwT7+U_oL|~TSP}x2dd&6o{2c~ zLh1;4Aq85){9zhNFVn-pgKGMHNLkvX3T3Z(hQsMJO1XKWFlDBCY$v%2LzzE*!V_MV z-irZ8R^L>&6|$4COe&P~Pvpg9`4O<~cT*?LNz!Q33v~-KHwiNzeX1uZ@bFN{dh}kT z0}aFS;ljv(ntnZ6b%${CRI7>s2ye=(3w;=-fYjkr9;KV5JpRA|zNLjn*r^V4*PINq zh2G2j8KxAV4&s#E7#wZ5@4HwD>jZc75<9jrOkpddn#2eYOtm}%)jeF+pk_pey2$!U z7E^`{MjJ8lr_5jcxI8(w2{!VMt%I?3wd-7Lwf70WI#6oni+s>i0=FwAEa=sbar}YP zSJEfPwO)M6i4{fDEjBqIZP-ftw`ZdYn=a5Hc|+g8)w;)T!tw#ZZxiA&8Og6()Gh?; z#`m0HZejdT$mxsmE6S-?dcuP3`|bH7#^gKT*eZvz7yaShE_TG(d+aLt8 znhC}t4G zQGsE674(A~GQ;GN9>X=i53%!8y2Et{p=DUKx-e_82nz;s^@Kov%GQDmTBtnKH(s(o z1x#df6Cuf~#)kWg1F)8!G*yYJ5r{_d0(cto)9DIiI&dWtOc;`H&>%s@JSJN^AUJ_` z8pJ<3A7g~nELHD~#kJeUCi+-hp_D*W+aP)Rp8xKUB#z2KZ+ZH=sqQD>EHTr0PPkv) z8&lA=uTXj>ox1{hBds_}_{zgx9-?0YQ$iyJ?J&K>eWUP2fiD5Mrc#$YdqPJlzV290 zQ|)Z3PJn{6)3zgkJ?ZQTu;C5+aypX1C(|`8k-g=J6GeDwZy}Slh?x|S9ArQ6WwvR@Q++$<3bCiNLrhuY;cc+bfkk12-oWl{wDuz^B}tL}@Oes#6{pTBp0HXLrWcVM^V13uTck%z|i8WXt3F zw>=@RH03C*Ozq>OYNS5A(GG6;G5Lt_12Ua+z3gdsc+$YkO#e`K9|SrzO=0`6kVa}l zsol~9@2F~m?V(tLJ(7o8$ObIz{J{2>ZG{=cOwJ4y?8L%)n8*A;*v*3_YF@LC8TCXR z(yKfQs|piC#euTg^A~jV9YR`)1c9S>A{7{&YsXYs*snFu%YC}BU>Vo&f_EHg#qtlw zsw2%v0kSkQ$#Zdy_%`)Xv~vy7>&C!d%0LF$+E+F~!Zaz5K{_NP-N+wCP&acw8v1uoNsq!Y>u^n~koAR2ph<^tc5P;*yPl_SkbFCr>|7N|D+S~xFC z3vOF>Ua)Rdp0BEcCHU0KO5ti$b1EL!Ipbn}3~5AKP60p*f3b<`lkI@2Zah#QYY5d> zOPy>*goWGMtcB-)EOfQDyloif-z}fm#-v7sinhFMGHQF|J9f~rW~X@4W>*)^f0uZY zx4pPJs+jD3ZLY$1$#*PTwoX2=i%ILqMLjfIb!v~$JEmJ%yInv)Dn@^GN<86pjCI}N zlhzBZ8uj8w@MtF6%F7~a4#+1~jhTbtleRX?>iqu-pR`_R6u1h@OQPKHdkWZ}pk?>I zqjgQ;JFOj7Z`mRF#Of`xLq4&3o7WINY2yV2^B)YKw02mH)^*4yR&Tij@`=@3jr1zc zSn31^t&3R)Jpyg9)myFb-qyudJL+ioP8+XBoG zNgE%tSyu|5v@WvhpLZw`Vn)Ni&oPi(X8I8ppKTm zd33CKvis#bmQKxH@ub}vp>}upq>Z;L)IBGB(#l80&i|BrV%=KrNC+xsyERXil;yZ? zx8})8*J-h6^ZzQ*tS#zJl25FzvyJizyEWO}E|86uXe1tR_LRRI|}p3D{cOt z=?)oa<83CnJ@SclE0vy=C-UKW%Jy+qlKejz~1FRw7)rEwWxI2bS8nO~^=>;5H#!l60&S$`-fH9bU6jywhgo$%Y}GRPDvF`!nP^%m+l%jb^GsAN!im?gCpms& z($&==T9UI9lHhaYJ`C?|1JK&O?J|*v?!MsG_Qd<3)OH! zy-s!H>K$U++FtL938hS(cc#F_9+cgZH|n<3aJ^97!;qq!;1DWl=RUC!jc0{uGz(AQ z4kj3xE{KE5D674HgcK#a)h=GuY|!$O-XGvRL!GcWLC?6ngn@tV$p5^E%Q*&%rfsSJ0tIY)tcP~hm_B+JvFeG{E};d&N?r3X zsdmu7q#*Edj{wM6gaOI(Q`JD&o*EKnH{mb)JlJp#KG$@Cwi;quPksU-_X@5h5Vybj z^uf@1^J$AF9A`L*k$paF0%rQ_ikk|sZiwb97~UTI<*GKt*;A4BGH7;$jP` zU=!eLX0D+LO~#tZKA)UxxJ;ntHEH)#QMPf|iqu)giQt49xIrT}g;|M7rVFG#r0)FWb&p|KJ+owP4}Lhbo=YR;Ndv) zOp#|wO&Tl0l{iZ#V4tTS@~n}Vox46?D%I1T!H6n_W}yNnD0iuJ=9+Y9*nifO|XKT$n1sWhHR;kD0NPZsS%SkY2n7Df=Sh znPUTmDU2i2bUA9LAY4U!4twOk+z__6bH*e&a_0wHfvBEt@AZ@c*W{LA53%ZcIJPnA z2I=eXhq*;NYat9k;zG4FifP1ZDQsvtp!Vg(CwUx{3I$l5NR~(^FR&y*!H*zygGUOg z>9Q-9D^sUr$E$`miFYu#|`33a6#CBanjA%V{+;wcDCHg@}7lqcYV<*Qg1JW~mFYvSD~)?eOyo zc1>BJh3pQyRhX>^N`_T1gTqs5dtGWMAgKq7ldw+Bbc+okZ6BlkfQoIxeWhey@gAXT zSe2wYPC}B~h3iv9;}#w?h=LB=&1)U_Ri^|d_BYd}TOb9Vy9-cZNJ*h4-JPN1(!Twq62PdO#Vew`GZUzj-a73a2nLVHGO|7qnBADzO z{ICEGB?J{XnHj`XJ&!a%Kwv!R8$8o<@jMnEw0j|mDSn%Lp=7HY zsT9^U7>;l8^`}FLS!$*BQuvhGt3zU>1X{dB?#}e6!j+v;Y@HTD&Qu|G{byiURHf;i z^!_ll>6ii0^5JB^wbmoCd9nz(nxSC)u{YIqJk?XT$DC?yBFed>A)9Tc`fwALL6Wvy zVCC$a|KzbYRG7l>ucoQZlxcPFsueR;-2-MF&249g@VJqwm)Z}RQBktQjs3zrkE0l0 zfDKBmRtg&Q9*3V=>`#I_(g$zkeHgZkb~qq=+mVp5&>jhAOlwxj0eSFY$+{Vc~d7xDy* znb5aGda4H@*uRw=FJH(L%4TfPqh?1$&7``{7HRUyjJ|nA+5WpF%eEh!A*Flo@EpQX ze5VBQhX&fsloU*3+8@3qPde5eh}vXF>;e6B4{yQl<0p6$%uP_3Zj2rAo+Nq0&0HkNYX} zKyfWNqS{GgdNRGEO6Zj0M!kuq_k<01hEODrhnsZCd&ino4t@s8vWY5;9CyPNUT`1< z^m#(+ox;2FF{iz3!m%YkX7 z?N{;@e+WDK@BWZ2sTYLDb5LmECq`5{CZ!?UaH=%~obe9*p`_!4JJO3Oh znNY}@x5!TFm?1i6TDSAFQ@8_9!f&yOY4YIkAERFMb;jb3*DQvxR2X7Mg;!GxofGAgTTR1R*xng{=% zuePb@Suxa`_^2g?pOa;`bJ@GRviftf>`QFfOdXfa?tkgsa16}QY6kY-eNd%x}RMDJ8!_ z#tIY5pdHwE3c5u^&Ecd0F72EdetfGceH@|dX4XD?=k}R_^?i-{8XCpBch`it4{x@2-<2sYyliLCNi)Wq zk>WwG=e)*{j&dgbY||FE;RAV$dotyWuz@gigcZC{6d|6epxLi|Wj5lGRK1vJC~1ZWXB1LJ=z*i) zEM)q6^UN~&9h5L^WWRo^f5PjGwS`QtrZ2(%p&a;%@XgXJVx>7ZHv5g0?%dc|4tp+6 zJykZsY@02I$5|S8lC35X3ogy?(sQmxHS}3K?K*sgG+!h0W7=^fRemEC@80gz(e|Qp= zD2~B?+`aEc*6NWJ1|{)FROecxLBg{(vWHF+(wZv@^QR)%ZehuKr03ceUg``pxLWIW z)gZKJ`fGpR$VjmJO>nag;e54`l6KcKVkX z8ajl4g24t9V~bt7M^Xi2K=jXiCwQO243pb<@W>-flCV}|TKhS-4`uT!G zvt*!$>eXCW{Ea{a77ghBYCNX3M<$$R?_YzMCZz2BTk7~3MMjPxBxevq?kAr`7%=eB zyRhL(j~zBx{A3Z5##%k7=1lr0pFtQu^OAIB8gPSpxlIGq&p8cH_}M>T{sy(fmdpIm zmBY_rxf^Y{?C)GT{2Z3M$(E~mjw^?s!*Z{(<>r0ImBY_rxsok6{}HYneh$mM+Ln9R zyInc_9F}{HEqB6Mt{i?2%kAWHZ}H0M&tbXOayd^gC+N>%x!2ipCyqEg{2Z2hy)Adr zBV9TC9F}_nm%G|4r$2|~Znotf@ncsGKZoVsXv;ma(Urr`VYypux%%^6Is6=!+r{O) z5%PK(A$J!c+@RiM%bi?yc=$QQyVaIE#q$IF9F}`Cmm6?+r|8dNxwqJIkMit+pTlyu zaXHTq9+mWix7u>2zTVNr&mrF1xZL-=a{6;vZnrIW+T&a~{2Z2hJC|$n%IVKxxp#26 z7kTCM=dj#6x!k9{a{6;v?p?OrqhILC;ped2ySdyay>j|@ zZm*pF9G2T-%QZB+a`-tc_dYJS#w({khvnXH%RR=E13!o5KEUO?`t}(8IV^X(E%&%f z9bNn!mir)=oAk=*&tbVcY`HVfcIEJMMxC#opqkVIb%AP8H>g(iAugLoob$XAPgJMF zoLB>t`>-vgGWTd|Gn6{B^*Ca+A4jZ3#}Vt|?o{TqOi`7!qTf%X6Ea>C@jir)8h|&p;{1y z_0}l9nxe4wMqxcQ3hN_LSQkZM9f-oZG79UfQCQtkSl@`kdUh1n!6>X}MPYqA3hTL1 zSa(NZJtqq5*HKtoqp*%dVQq=QI*Z12W~z@nqOfYB_+@h{C!l3QLcf z%p40}7ln0l6xM5_upSLq^q2kVb$7#R89GaR>2Tl3>cYg<;`k<5kBRega@MNxek?s+ zoG7~0->^$h|LW#=`1mcju0}uMnX|?t{JNcw%FA~bTHX{Eh8K7Z1OCuA=>61$Kk=M- z_7@E(4(yXCj%+EcE=(*L7=Q)f-@~b?ZZS$N+2)gJ;MN1pC!F(OHm?9n_)C#@HrC^J zkCQyT;xpGtKdCN-t8=>XtK;=|UqxQE*42?;p}MC8hr~xPa1OgJP-Bdvw_&7n%iLuj zd<2pj08*%s#uuYPq;-=(b;3IByn3G$!X)%uByur1QJfep!Nsy}^KXNElD8%%`Lv#g zt(HiS{dR>F>5zrZ{`oAF#4Jctzd^O_6Ka!&Auypm>WqR@df@b`m+SiE_AnESPGf#DBb-@-{rJ(Y! z0GG@DgOue{SZ9`)brOwm&4gZ7q@}11+L>T`U179T9Pb<7rj7x21H$%=mAAsA`HnxK zgYKwq*p_^&^&|=eoAv&Awfhw~8$xb3qoi+0xjmjM^FD;Jt4UetX6wE@_PO0L`9$;LrrtaN{R+#FC zGlMr4)c((EV`X-QNSThXMjXYjfxxhBNNZZJRv_u7@O#0m+=R24^kcpBz#OX~EYrdp zpa!zb-_hY%d7q@S>stoL*5A#?N(Zd4uZTCJHLf|{5Bf9KnE=*Q9W zM$2T1D-KB>Yy^bURW%QKiHF%Bofk_yc8XVdA6I6bc;fbP?ZPK|35?O}VNuj=-Jx(R zDtrU_fV*eBrhXY(d}4eX>{3JT>DiAJG(GZ;dOGbu(po)+7XlAzDpk#X?=3P7TY?-R z@EubZIklk3<#+~rQB`5{nLr-Y9TGpNJ5-&Rmzq;wj%iO%GgB#Ff0QMsgL94@EXv-*CygKgBJtB}WvCV+AoQOLwfnenOov9dRu*W_ibCxTcjN18T>^MFsW#?HHLi8F$UXGXv%?S-oV{ zGTiNdRZQ6xTO~WPL|9XtPJ0d?1h;*%3z5EJhzJAt<2i%=qn)yY! zG+gq`Mx)hLm|}ps!N&eskyLy7}@R! z6|O`EwkNo)f}{4w_3CP zv{2g`l(em|)tY-t2Nly$2({h4&Uwkfx$u3E_zu;LsHE@Xz&Me3`czPb)?TrM72b9A z92CCm3a#*`zcGnQ8qXZN#)(Ad(SXFdo^{N4$2D_cyy;5K_!1fhvduoC664upXWWqZ zT)_C+HCHp^`{$zZ-fm?4$4OLjmE)jsB5}!20us(q_H@rd-yO>}+e?+iByIoiv4=rJ zzz!knoE}Cd;E&baIF}4dVTQHzD?SxfkG>BMw%85_<+nUIPFW-Zc`ZRw|UFHW8=zPte`Ev?1KQy4s=WCAfujcX-JeB@`!t=_9la}>035Mle zKfu8~=>a5vYOl)EtkGN9sAT1XY{WHd)Iqu|J=(cjtv8YPfic+Koxy_X1a=>wj~)n3 zI8JxetfuNl{tmo!r~COyXjJbQA@(kFQeh?U@+cb}43Q4(d?j$t+ZYqhPvcw6Y`53? zttxNq8i1)Wik!#Vv4)Me*s)&s8Z->Hgg{|Ib2rp8)%#}*%yQh5xO35m#w>W?_Bp6C zuPPe_46p{Ms=%G@<9&99rUPGsc^xxj(}ds6?3eki3xC5ScVKKmb<^Aq8P=N;szXb& z0cxH}q0Py56$Uvqoi3din{jvE$l+CYTZ$a4Yir3{W0PDk$ZV(CNIR@7(q(Ejsw|Q| zA4reyobOcHjX$u`YxCsnv7z0|Y>Tu=8XQ4cV-d!ArLqTYXfQ%lEhy~NHJRwE3OHY;z!+~dfP7IDI zo7ElWN2<&`j8?Pp2S$md;>gHaoSIzFykuZt`BGK)SZq0Zg>0lFMo{WZw9D4MO?*4X zS@_F9@f!FI2G30#A%jlXSufMN=qs~LK%?aZ5S9n|fVWiNAxlD`9lbaKLE46k+w$_1PB7|enWe=SYDPYl!krcmc-u)H&?NLlM)5o#X-X!7CaM|T znnGkX?AC4~i}VNz^m=Mt_2x}G#Jnjv7>~EN*?s3Vqkl{xf5}h*@=zER*E`G0%9!%7 z;AA(tveWm+@Vl?iUHFSfl?S@_;FB?E1lA82I@bC3(j(9SUvRJOWPP}JZwkY34!7lU zyWsL^39dTu7p*LF_cK*n$EG`0onoM8&OE-$6;*f?HCyMG`^WWd&?f5{Pc!f}eZzR~ ziJGpB?`tN)OXx~A%dwg&pPr&AP57Ge;Ry&x49yn28O}D(cuw} z9gX;#sCHDVJog}fura!3@)O1aKydj|IE3Gz5hUz8r%T$1P(3QiSsoHpdvFxu3>D1rL z+u)4e5$`;1T|#l~;;jw-=+f7Z^pswnLt_ZAuq*&H@ zjcGH7}sK zbv9RdXmVnpxOGhRlFxJt21yS?5G{@KChCo(nxdqd>+H;$Q3}eXr$w!7vYjKc0qZvW z*ao5Ig^x^87R4T;u{oh$6QUxQM;p+iWON}e`P#M_4MG)+Pm5{9I?oN6=|fgT-F-+}Kq8M=fFulQCd1G$GWr_|@U*jO+*!9TSRWBho=ia-hpe7NRS zx25p2uBdjBg=I2E5KcV7(u@u#R4OgJb6*NK+QdzNLx&p@CMGz?&M}*u%*QHy8d?ur zh=1u6_I!h#Yc+wyT*tHhG03lUNz#vN{oT@1QshJtx?AI_H;a9fb~Hb`7TI^)Nt?&# zTwP^6vMa-ZGaI7x`PuN*HE%UhNx9u=mw8U+{`QVSy4-N`}deSbfBhv^e zyU@m7dNL%qok~eh5|KdoUAsF@^#zE($?wD%GjhM1x(|gdYR6JkDA{qmP||01nnWbo zwG1>?^Y&swK}!oGkjeJW!)!-JKFKg&?`@W-+l(`dQex4O=x6{0}E;0bY&DQj4~eBJW*D=+tBMs@nibDH`7xj(@dyC zS7Cw1uyWfvV%)aoy-!G}g7UeBXJWjOMo6u8GYUUr^{LtOWaMKUvI)H?v26NE8Cg?z zpl@=tZ12c}MEG}5JaH@Iq~mmO|Efp4)4_W`NQ)jFyTCR>9jYPIKgm1^A$Wvvw?JIX z=cXRUCt_I}o?2&mI)|tLFIZD*Ct;UW_kgZtW<~oDe}6JQ$3Q?wLhqvyk4byVT}h09 z9K{!gN|yO1{O%o#M?W~R?e)(!ANn`6&j>CXT|3bS=iTDs(H%!II(Lc+L-j2=z!^lc zn!RffbVc`;cGde*jEb^>N%glH^yvY$|CJbgviOxRRmtF2zT|~i>9d8&8O-X;nh(E# zIat+K-lUEY7gC&uj*DxclGc2Lx~D6;n^%;t8Y{!ijl*zT2rT}6aq4&^)%ie`;2kKn zU3OaY(Q}Mo010D>r44#A!{ABjQt?Pn!=-k+j#U!)yCbk_azvkhtk)6~$BAAbGAB5m ziNeS3bQIv$wZixyT(G>d2z~AZy}DHQv&yhZPe8xs&c`_TmBVA3(vgpgBp*LFh16AW z5a01u*#haAS-D2Z^<&IVkIsFGD~W7h1ktP2GX2 zYKXz1+Q5-_k;`t#9Hz%w^T|J1j*->gb1+wuZc5X`oJcgL)xXfpwvvqMFgS!^>C;Cn zDKm4{^-^uJj1uw;P%~vy{t^6I;Hh28Jb3_bh#vF2wG_OK+u%HwbSi1HZLr);u*hxG z?ZkIn)as@0Hi%X6QX4I5K7XGTd)ekm*oZs*FR0?YkUCYTgg<4;g(|N3!UKrBVcSHZ zY_JD#dO6`CLUOmqwhGm4c1(k)PSMwzFTMha!lig{J)!oQm4&g5aMEw@cjxY$ZgPNV zc~0{s8k1hptw}ZGm7de&qvr zI>T&C3Iw(__y$GFZc>BgO)4Q(YQu0?%dC38`4p78>4FvAdf;RMoGDJ{7wozi8ywki zrQ~)s-?Z}u7Q+NU10frR6bPG;^{K;$b&B`R|3I$R&?y82tM>l_Bg>GmM`K#FCYgD7 zLBW+;dep{7EgQaZUPMmtQ@USs@bk!n&dS#nVYk!NuaSJB<{&UoYO&KFrgGrUL9=~_ z91l3K^EA|9f-|@EFw0TO5y*IcFMyavCe7|Z64r^4N8wq{n(urZnbw0r`ZZ+SjD<}J zy@}erIL|w+QoYFVV)th+&U06i@Uizpp8_0WiuSX`S)MPoWl+`*pUV6w(2j54FA)8Ql%2OA@-b#|2_b!vD$k9lg`h$HS{ zc>U?LFe7>pr7<_76(v(bH8QJd&)Yr=B_E!Si9cV9siEdE%(0oN2|51x3F#cGBgAjF z^g8Ob+1_V@Urt>-_RKP!rnE@-uW+K!KGkWy1&a;_;cz;4ElYK~lr z>KiU?X)lh!5sS_Tn!kP0o9;JHImsqQZ0+I`cDCoKh?XsmyJnLPgD>iC1r$lhhe;W6f}_v2W- z<={_aS|B5uJ_W~{8BF*?3zE=$Y2mR!n|@(xT0#n7?(EQoSB-2R%L|J=6v2b>1d6Y| zD)LnEz3@P)7)IXBAR;vezBEp!{;#A8Hx$t!wE7p?stw_MgC4kB1k<1}sdnJ|I0-3R zAZhgrIf(2;o^=vq5{6y)0}qpJ$FH8ccHn??6=4#Tw6={1UWCO-fNI! zY7;#i9=m9iILte_L7BpNSu4S=_Mll;?@9Y;Ux^;p{GC>e4tlN4a#~p2{XO&;+2)WX zs3|r|B9ocZ6DiSJiuQpBNpa02GoARWKctZ2UF0RWpo1FRfBX#H88(*`#=#5M(%Pf^ zBQc}fBWkp4ZrqYB({yNmG<dC3%`p+UHDs&CJ=++lI*9WS){zQwm+1YJlBb5 z^Oc!2O6K)yAvM2lxpD`xFv80*dysSX)m-jjq{h;^qE;cci95&8#o16bJBsvcLBg~=ti?CeWthL`+-E>*-ue2Sp_h)wi@*iUwM=qJ$> zl9AHe=q6iMdeL_wLZ8D%x7@?8K#`g*xT3VoKY8^CjZl?@ACYpMPq_1B^Jp{g340iY zRX16Kbw{{6DGXfVMu3?`7^5Ts4>-Cvg+OONmq9bEj;sjAsO&4caS> z-@pmYF#JC_yfHBNfoG%|JjDZ{V=e-Pn~b&!>DZwa@~DOiB(2+b6H%#*6r#CDQPz&f zKL_kP)y@X(GUN;vSam?;{w{;=}ksz-5xGz z#uedeN7W5V3R}(G=~o4BZY)f|@~(m&IbGT}(Wj>AU>jK{sV~Oklhjyq&P}!&(C?db zhlyXV!_-2$0|7`nxGq{BJ(zpUzXUAlOhxl#dFc}IAtyXzF{c%E_yn%^G+mpjWbO2t zVKVo)9CA@C6~@%`TQFzn5tIqvHC}EJEsczNPq=T9Qt9lH2R5he^TCK*uoJ+Y7nwVQ z)~@MM`xRpYg()?C7qTebnnX?wA#4p|$*c&?ok0uD`-_uf6HCUnT?`b|^qmNv7xFiz zwaH`-=L=YdC%&y8o9;Sk&=@Fp#@|roWj#)?WI|Jh?$^hVv~<8!(qe>wymCY@8#E4Z z208@$gNZ42SdR3N&T8(gL&zJ{kLAOK5jg+XtmT!7da8W`sdJBCj8Fp;#bI@D8zunK zY$TqmAhe{Ol}c7+IRbb)hB<7Ol;s-FMRHUBBywk)1(5o>`0Zc7wK_7orNmmL=$He2 zR{4=K_P9wZBXjN?8pwuQ=wT)EiP&yPSjrgr7Wz~w7PM0zai2TqAE+7tol?D@K}VCI zsVIU{01B|^@_dJU?%e-IDp;eAy`Gw-+PU-o6;aW>kGb+QC=L7RkgIoL!}%8#`-ard zW0$0wJgPbiXuKw>X^`sJ{#pwz|+&3x{tB8$!uvFrheu^tcvZ+|i2tqD;%uIHXeJBjsL5LgSevmRPIrM3$u zDJlgUv`t@#2NLp#>joOg0X;2tVu5hnghX_s5qZ?~2KR#rGGc_N9gFdJTNfg`xgrWh zd@BPjO5}h`O5{Vtx`jSkZX?qb#tP%Z{XG9z_dV=^r^oy;yLE@KVHV+!SekUORqZ^A zUrlVc(-If9a8@9V(mH}njP^~@r6`5*i(#a4q_|NXcoX`vZ1#zgXj2pPc-VuC$4;OW zB?n_l=?xjVcG_MwG7MYpKn-pn=v&w_>=52TR&4GYhaI!#&m2Br8#$^$Tfnc-y~xZS zd19XpD(0&%Y~lSr36b28C)!bHpc5UX&z>_tjuE;b1yk#Bxy84m=HZM3ZF;*--~kNo zB_TI46O7Nye98dP3zjxiP=|A9a;reL+=acC(O^Zx|AU-9^;FBLRw=JJnf^5@wM!_~ zIMY}WGfU%67or`trg@K?9*Ah>6*;6;{!0F26_|VKVaq|d?B$=x!qey!9`LITU5JL7JFqqlbSB2u-Khm=`4#YGN{C+3)WpCmeU_xjsaNq^HMm=t$30I zG3)6Kh7985GBzh|X~}aloq`T7jcy04wSS??~)s-4o7W-e}e8TvzF^Z@M<#UHH$iM8b-E+N2WzK62PB|l)kw79!bb#k3Cd*^0Vjt ziWLY6W3J#pFoZj%x-P^ai6|`ctbTQL^C@Uw6pIs`E8gPR)zG+7zU$K1dTymR@VP7K zav8K9!RZW6bw3(a+?gu7SZm1xLW!liRCB#bN+!0nyQyC)XyZXehtlb%jw_OhMUTwV zxbh~cF3b=AIRdV+Q-j707Bthk{rzMvSq)PwTSBR!4%fCy`H%z}@pzK4Q&OQMq|4(- zXWgr%IBp+8M;AJIeX382Okf7BU1j%EusGgEgyTu)4N{!7Uhkmyw>b8fUdgzlLzQTD z@?E_yg>KL_d+2CiLw!N7R)fr8r|cmlo(N|^Tnlcy`A1OY=`}Ctv8T4;Gq_bxBG_2b z|0(33xirPn66?TCTTk@4!OT6I+*z-qhe)MLTd-9=C@^V^+hzz#(JCn( zBTw|xs5_y%Nh$00FhRF#(L~gtrib%oy8(n&tWjp)OM58Gg^@v>PUr(X_fzhZsB@Tf zj!=)lPJ^Zrw36le$j;P9)CxK96YMc0dR`)*U7WXxavq;pKr4WtN_jS0!KO@}+)W5m zO@p}sF9)}sS~y*-zrRqL(5z2W@K4VOIr$R~VObebM}MjNQH75<$CpIZ^zSg%NeW~{ zgJAW}SGH1y#j@uHUzbLK(wM!}AWH(NX-q&hx3Mt|RWEl@O)F-b%35V?T$2VGG`PR7 z68)<;xPt#*r;);X-%DDLs`qRJVdmUWx52+^sp!$yT^_5R+z>6%Yr23zOpo4RB>GRX z*2MJ!alk(}+=?8V9=)Nc4*uWn(OxM9X8c1XAr7Hb3UF>uCrKLc^o>6q`S?VlE&g)>&KIhZB(Gzk&XPeYx=?C-&rL2 z#_y2wnLd-7#(KzTm&a0Qhn>ZTPVkB56yjcIv6sY7chzI)ERxzMXs43ry`r=D(2}2g zs}x>Kt_R*b-z#O4I621xWO9DDlVH5u-C{j#g)=w2}6+r4=Y;woTr3 zcEvA8HzSS8??MfC&rTF~oSet`oVKi!wqIm>56mBRFRup)@5V#W+==!D|_?=Pg@eJ7O)LDe3Luj@lFIin5FIUjI~E;TY6(PL2Wdr3p-v_Z_BWU{-mb z;q!NhX}dLsS=I9ZjyoiJP%iG6rFayHM7@`~cT2~m?r)&2)ssMXEv?>b{4V;=A>li+ zqIYmzHGx^jLKMkvSVK3WRsQ5?E_S<~jPFh6ZR!h=&zYYn!n^kubH|Cq_xCvVpi{dw zghTk%Ge6Lo0TF$A^@OzKY5>$yJ(HY7akMV07|m8f16=Magm2DvVK zjtyXz_#3WC2tz%pe+u=R?M6uLz9c&JuDVyJ4hPJxcSY*GnYKkh`oT0@_v!%Ash43W zt*J?GSTcPKY~`nktL_-Cd_@o+thz)vYpSlO-PDl! zanx|7O1Gk(X5dKVc5Q7umP?|e+^snqn-s?q{VCfT1PT8Pu+s;q{(#hXNvzZCo zS%vKQD;ls@D1_`%Ss3Ee=cC<<&&-p+{59cqBumA*@ZRqvEJ@Q-6mKK@v&K#8LoMa@ zEJSeZ&+0I?lRC8NVNBO(gG15ECGu3WMDK{QdrvUZCUt2mcS02M=(?@%qhmN|RusLr z`={7xOXt!BTX!y*WH-SX=_Tk35wk)h$=mIFJmbiDTZ&bbj3goh$H)pAO|VGKKq@~Y zs_r+sFaANh3{O**+^Fe4VFR5PE>0pDh#6;*@3=ixV9HrLufUvDQi$OEL(fZvU7|a? z`v|p8@EwDi&TNn?9<7qKh>2v+lLMvY_C70>d#a|S^{8sfMv&EXFKtL!e+jTKR#a2J z#C>H_&&1RKY*#Lwj|E6YQ?%|FNS(;m`$C@lHI1X%(TZv(x?<<2)SDaEF^s#z-Sa5=`9p9#7Vps` z<(@wd`)SP|iQ+GlZwiI8Vs?zIRzJT?sXLf(X$2}4fqz)4tQ{ov$S|N1=K0C2b# z+99Q68bvxjAI>8%f26&MzKwPR2UQO~Qi9xsbEfVz-pK>bFAfe`REl@!kHU4O=8xub zIKH&Ygw}h)wVA9BSAvZUsGYqacJAvme`CdLo4c4|ZYfnRa?!yps__!kd5oNNFol!G zoo*wmue)j`Dd)G31m=XZQh$RXVMw@ASDHDbs@+()WMMG}dCIZi6jM@kVslNqTkl6% zvga`r?fg1w%+C?hC~la1A$QMv1L+p3uG><48VV<+%iWs`-d!}Scl&~O7tiY5&jjyw z%;w!6J}!9o!dbmb9dP6EEzpyX*VPZd>(hniVixb-M~lxa-PT#X`;&nRa81i4)HjG`qvIdXJ6D=TP^0NFa@hJ*MrLXx#sdyY;L~ zbMsJNd8irsw9V$&Kh@iX9gjv4TB)Th(TRjM77eMU%XB+*|8EUiVRL|0zZ_GHuyM98 z7dETz^Dxj+wB2m615&x4zRYN2MfU=6F=oSAb2H|?C3d^=WdG;Z->Q~>Y5JT~;7Zwt5&FTOlR zXxg<)+Sj*M?mQ;X`)|8xPwN5it~@rp!*;Kk#`ABmtb6>iRFK1O^%Sb_+JnmiQ|JCt zN2DmEx+?)~wQt6FN>%WGF83&y)fwB5iRb_MmWOCASG;?+OpA*feU5)|E#qsAETF3m zd%vGbf{rKH;9X=$O7Sl{^c$JdGTq4h!Y&fJVisK1<$0bh^B;W*ZG z^@wiFZIMR0IR@5-wD_N++Z_jj)j`3(TOFH7aQl70;VD+7Mb{eEdW z&oq$LdwErs4_unU^6&Sgu}pZKE0ANk6i0GQ6Fb}oUw9!;o>_Ys%2pQqntSkBDY9HS zStw5o7vbd4>h8V&cI=>s?(*Pg60$Jfo^al2NSBgdc{G2pV z2=Bn0V$mXZ-JF%hP`0w**W6zQ(`8w8v6`;l4m4htBFJC9nkEQ<9ild1mJxMP8!tz- zQW&yU3jCV;-xpMn;!@SSs%ix}oF>KpPNzx%V3*IOU0Bp^>aoiq3|T7$e$D;$brqx_ zzp5_C-pfxvX})NDzUL!<4Sn;eT1 zb;HoLa^Tn6oDKCn&`IvRu4kR$VO5)N)J7bYQcW%QzO|Jy2*FNlt72)l@A^YYyu4D+%RuLE)P4MsLLynEa33gY< zR((n7_!V#uCUoueXVq~%);ZZbYB(}nZ01S&I{mF=Z|o5Lp~Y?sDA|oh`+7cz{ntkQ zDz9g#J%N@xIX(;<4c|{?1K(yg>Z`NCVcBOR--A`RDPRLmOZp4^r_NVTP)%xqxh%l0o-4L(25EAd2ix@u7S)RS$Q?0-WU^Orqbu{?J*vJblQH7ogZ?TNJQfBhx6 z)Z)^j8LaGXL9dmwNa{$*60JL8=EG}Gq|0;+#3cqH|3^ef_P-ec?o%MJ+7o|;UTzRJ z_6@HuPmF`vU|6g12h|y=J?U)oZYxRv_h9ISS;J$4Mb-3Kbb@4Wz_3tz(#<~I!SMnN zO__Il?!fVZiVCPb=_~%bKH0`~NVdwWv~R|UtI4XS12d3&_}lMZ537IH_YW>w)VE>r z!oGq2f%TUpWj5xi3#R{SAAV)p+o&)kU*WCSR(*?gRpITHif;!NuJCqW<+nW(r@m|} z*lFs~P;F|V;+(Ah-IP@7Y3%&;Iivh?&O7&c<@D#U+$Stv=JBo^eh$l>!R4OomD8WY za-ZaK&-cpd&tbVwak>3oIsG{-_i0-$`*c?hKZoT$!{uJ;mD8WYayxCgnzAd0pTlyW zwdHc>xN`V8EVtj5tG(2f!_Q&4&vChTdgb)zu-xZuxp`-~a`-tc_a9vDDPB4KIV|@D zE_bC@PJa%|eUZz(+AF6&hvmM+<=)|y)1Sj~U$*7uJHM)Z`1IXyr$EyMdg1Sa=5ZaR zhR5{^rLx+41_qm*L4DWfT*C``d7?S1U7jJ`m2!r(JqjBZ0`m#)fWi$R9$7x1rWRqS zsz0KiArA+yrr@Q2;l>u^(BI8DcD1KG)fYi;837Sg6LBvibRA;bL(P30Jt3k|ht>3& z6r#1Kd?kfUps88Ysv=|Uqpl%x-F*{7n4#LN@9?v6Msd3^3koKdsi3LsXly>;-eNrf zI0U4xy<4k5)<>>ssfe9mVK&0%uX{b!yjZI5Q$OTnBtgwP*dCM!rJd`qz6Kj^9YOO=KJ?xXbzA z4IRGhVrUe_Ddw#2Ysf-rxK!vLDnJ*$^sks~%k^HUaKRO{L`0_c@o&{AWr|CyiUS2T z^h1QHPZPLk15VDiPzPRUhBp9ZSmC$Y#`8lp!ub$tdOmj2q#99b5rIM%^3|yKApspc zZ-PjjeRfC+E<#lu|(I6M%z>ZJSbvr_vn4L;>{~6o`+lF1A|XeqJ?}S~PhE47(fSvpwne9E3)Czj?)YEdDv-0goRwi3glGVy{56zGL%{O&pQ5 za>+V_kzv&8liIfQ*s5oKLEFq~-S>f7)&g5!cZQBNo+YM=yntmI0#deCi8&=C! zcfBWi%+?@b8@J!Ef_v>S)-*2wV3jm^m#tY{y0&qA?bhE)YR6`5Q&2E|zjomRn(Jj# zunF(z|6%V-z~efKgnJ}QnuGvK2&{kr3M6JE8+k1GkVy!RugG90O6(-gMP@9GEMZAA z){JbKa2N>SupABqFt@qQZ9*X4g=L-m5DW?6WfL&>gwq@g=8R!E{_3l$UcY{C-i%Dx z{l3-rLB{WO*WFds)yMmcZs1U@_#BcMor+2=OU{%%q?ca{Qv|{J*?oNwHCp<=Ced6}sFdvKWodYU^3M4QpJv&>?!deAxfD6VYQsMH~?%=W;T2Lu)@7f z25R89oM);w(vqbG!*zvnl9avPOIjqjk+RrxTpGc7FOallx(VI}nS~#|u2FdJaN((G z)xl>q3eQY{i9Ud*2E_h`S^lX@qE_#q=GnD=pA1vdT9kWxt{U3P1W=~u_qqt6@+Fox zDuVNK5?u6&%6Df0acuV`FApXv+oPr&VVcTK}ag zU(Nblgxw5lLisieoTF-a`fU!eQnMnrA&y9uJv&4$x2MQprw|aSpd6})I0MuWrxWz$ zDq&j#6!i>^7t00F{!Q-^p3f$>Yxml38;;;lMWh99-k>k$W z$3*UxUX!Rnr!I`FoD%@57*{Y~pYJSp(UO3SGZneYQiU9Bev$iXFBp!Z=i}{!oBQgfwtj z9e%|CHbk0#>5U0|J@l~nf*Ef@JcCxQ)bHTR)nV~PY+1sVEo-E0E+~&}naq#(l%|S9 zg>qT!y+gVDl50Z{5^PgUSF&_toy>sk`%!Up42CFNn86;hPPl>eeE)mA{#Iss7AWhF zGiRw|`ySX3yHnCL4D>Lz#*4+0|0au;fg4ym8Gr7)9S*MROD}>^vSr|7PE*^?@pJ=! z3!0K8ZZtnRJT6bxZ1fI#scGA^Bo66SJkFdAU29*?&C7PN(2qnLnQa;z5ccUdi_=Sp zwmf&si(b1wEbd0jdN^6uGoHrer48(QnAvTHPryXMAss_ilOSw~#lOWJ}g^ z?^WK-tx&Zi6r>aOm+3{R9>#4uK7`w0rg3Gg6CaNhrzg$bUoGq3f!I}r{F2GlGw`u> zQ!WYT?-n22U#O?_>%V~j;BvT&i<6tx#@E~piU$|K93*1Ww1jWW(=}u+beVJ6XH?d? z_*O(YRw=^Qi9V~+U$;8biSoh;JBJsTe1p*;B6+8d=5263BGSvLD|S{28^*_Ap;r7+ z;SA{rp*Y}4d3n3dlQ0^6whVsGgKtpYc06IW*)#EC8Q5F65Tj$Nf&YBTa*$>0GSXaYY-+4h;t?X!0>=FL!Ra{4x*nRryMO9IobI1nlmcg*=xl zd0sJ!sPdCLHx{i(MNU_LH#wn({EMYF#=TGoD3wJ28poif077mxJZ!o8E+j&KCR5DZ zRo^bPSWKIK))+D{m8}%5OQgsRw=&s>WJP3y9xd{bJzSi~kD2AWmh10CqKtJFOBJ{| z$kOKe6T+uc8x^McsDtj7HX?Yuu)SbHI;Vt4Wi z!-0&vF}hAe3ktAHQlN2?Z}yO8K6^bl?xl{vjEf_y^z;xBHb$^dX!#0Kb{Wh>M_^4& zh%YOOLLL>-+-4c4U&{1q_CqtcRSTy-1D}rM#^3$U{|yXwadDdZQ#6*Ibf5u@N_c>)UOrgCb|+ zW~{i~jvR{ZTFv+cqUk;Z#_w|bE`&0xjIZ7lcu#}w{C^~j>d)ldrmn+&x3ln3T#c@qAF~`$X z#-81z((>%jAhoh-r6{4~_SGU4=9A^{{33u1m0p4yZL}Ei(Olw+o=N`AAMwhV>O_r^ zu*WG759X)J1v6vXcek>SQCHRoVW>D+o}Pf4#7!iov5!@fUjC6nYm|~h+)YKpf-}x& z&zpPLg*XSCQUK*&u4T_gSnfwS$sTM*uf}iDSir-sJ6NczF$qd-ANkZ zDv3>lN+m=r$+WZsp~2bH;`YK2EZ7w)>wxIob81X+fwL`@QA;o(ly0{D6QGoq(wiA{ zxJqbLev=TuLkd}$f`iL|Hmns|Dnfh zfR&c1&QNoGgYdSsahm`~xFu0G!qK2WH3`v!M(uW*Gk|QdV$tp|J`!2=4LGt9 zQV;2O#~PHF(XZ0RgG&RgYit;ut_;glC%NaTgvd30GLO+BZnYzOM&lskB35U%A**V# zAg7nd{@^v_ERFz~5uwkSLPDjS)!cJSjktnhCMyrnLo$-!RJxHk zsN8TS(jx^Y0qp)#jkwYfa*`zpBaQ#J&XRLyhKfd&-K)O;rS+#8WO896HBqW!RUJP{|5N6WEe5OGF!*hvd< zQ5=Uo9FzK9cD{}T&uwEOmCaj7mZXU1?L=Bfh9-ejQ`B@l3>lz|RYtHRsQeTjGa_F! zG=b9^q9@+(KL2q@jy!TGa_{hFbA-d=?eKsUkw^SKpUUC-K-0h>?>eN9U?02}Y(#=r zO~V9p#_OM{XN|Q65;Kwfg5Mwtz7yZo5K+vw49RbDCAeb3 zZrLFT6P}m867i@*;`{V5Q&&FJl}5^$C~$RP)C^}LNDXom7Km$3P$xnlf?h^x_Mkda z*Zyp8prpPY3v!S7hmDv_2vbR)0qtIi;u+LO-TtBE+_W6Yk$W)e*nL3?AO(74KvE@* zy!@evR9(*?CTpdrg&jc!kWIKJ@vLHk?R~_0DWhp2+zkku7sPS@79s-3&5y_;X8-wW zWL91I@ZgB}6;DR26BBt@3O?1F`I3do6ON(GuvCQeWiM9#Eq=VpoZTjDBm`Lwu}{e~ zOgsqXyS!|a^^D_JP>pC}dQvh~)kp1J*HRxUBA0ab%9~Mo{HRW6usryx$78EZ_i9;n zwYTmZeWQ0L7!ej(cGZUzj=omb2w(N?Fnp@M=1vNZS5rtw9^}?Cxps7tFwlAyY_w8U zS15t2|BC)kD%nxoo3t}ONSX3aVmTZQC1^DTV%)QBc0L}ANo0vA(X zvoO2lI=GloZc5EPRWX@yEQo_R@C04k$7Kmd+Cod(9N$~Kqa!S!*W5<};`9tI^U8$) z_&GN;CM6rs&3ef;mngKn_Icb!uIcMVpcx(`t%+xARku8n3603v z^R$L!W=P~Ri=!I%dHblQ&j&=G|F}nd$6AY^UHL7y{2Mt9z0F%>PN-oOT&QY!-4on~ z@HNEKRakagz6@Jlmfx`<4k{cRfQ|ZmbN+Y5_mIp-;U@l;*M0L|h;PLyby1DYYTPx` z_T#2a$OoC{mBI|9335k6%j?%zfSGRfR&TzxA#k)q`O6?@(#_StP!LDntEA`hRTcMJ zzEbS)g!;|-uZr*6c1@2%{)PG-Z1;9-_f2fq^7_ep;i_Jl3ttF}z+*Z<0L8vGk)nk{cQVR5dR9v>Gc?o}WM9G@1v z1=xcgBx|omauDpjQ6g9ghcZO^YYO-t2YCDal0v8h>RazN%70E`kt?g-BJ@uAPb6Q6 zLHX|;718lW1zRC6Pr>;FEt}=?^%P`+52)9Qa`_SWJtx$^6<=~H1jj0Dwi&#rxaBRa zl760wWgPllYx#lrq1CQ-`om*Abw=qrHa_D<*jeJw_Kd6z*2pFYG_nc^*IR_ zDYzcl$Qdk<<;kZb;>f?Nqy+qp{5S3sfbA~w-*{%_H2v>q+e{h!rhIRVspW03W-b4% zNzsF>EUG!>!rcMf>7~ffIb)~o218z`3o~2ZRx%h=NL42%EaSPSC>6~LO-UU2hD>MQ z_IZtF42~j9Rp8rC8-OiQeUmp984`zK54p&kshp&dBgzS?1yU}Xt=wF>8m{5wiM-0H zhGant;Y#RC4TA_YA`1}ci0vH^izH&$ zJ~Wn}ykunKsJtfH$j-G34^aliMAizxP&u*CJ}`Qn=(P`w*x+6`eFs^PBA2a}cfzJF zrPv+$(q(ePnx)Q7u|3oo+$dF7VlHY!njM?(f(;@P^>A@;Y&#gjzOo7xgN}1LOWVQ3 z*f8nFK!Rr>b;xZqhIQEQCgG!v8!JF7giTrUJ&Nia{cmIQLKtC}6m>)kj}2|z03=x*xE5lSO@gonLcl!)S!v~GR>58wbfvC(g6eD8 zzfM!7219_ zWv-Ox;(44-Jr06m{@`wn4~i0GF>;rmN*!|NsQBixWl#kmsUm=++zr&av{1TNM$r#F z%8N}J=>Atm6+uF_0UR4v)Ey@V^qvUNV5gh*E0b~A@Ebpzh>#f3dX1o6xpKBX47D`b z#}%S7*C%;J*a((=ek_1lq;HF}KSpbK%JpOM6Kg`^TudT``puKgAB$tQUFuuZPW=wH z`>Ac$^fqdzeh1tA%(k1u&iAX|!FE5l?OGp7@YL^MyIUXf+f7y1Ye45&+ z-@$gjwCzqkkJ_o4XMo1h@tn#Wi&%4V~cR2V^F=rFF$ zL!6DZ-1;Ttqp)o{KfZR$WO1sn64oR|^)|&#(1WQ1s|JeWAc)X%uO*(*u~0v2`S^1Y zqr7!)40coG-l;ITK9F^`@Ce6<=(M-MTCR#)^*QjCPrMXSWV(j|$3%V{PI|&BLhkY2 z=mJi_ipydmVOg*sTWq#j^bei^9`9cUe3(YYi}}imF*vI{)2o!7aV&z^fGz%dV*u$B zXX=oBSbfdlfjLIk_QDikf_bsM8_YHz*3>DVZ6J({!<=>nc#)P*zrjaxzET`nvIx#c zhy&B!RDwk0sGWpj(6;>Bc~KbpdL@Sb*<<)#1cqt2&#(G8rQ?oBnGcU`k-9M{CowjW z2jW8NV8e@-4~<+c&!2%wxp~A)PD@qf{1g#pG-fgkpVe7phx((C$Ah&{S&bK4)X!CHog(fm$|(`d*iaSj^uZe9PEAfDaklgZPlx{x&}IvTb}`Lbktn6xmimYK`$?+zr9S zAMl|MOC>Tsjg&JYWx`;L0hAGXB76Slw@ zMR=s%a`bu>@r9KlT)Foym6v!X7Dl;z)?gmR`k|vgLj){JY|zVvneA#o>~)msv-_p! zZL%l^Qsz=j11ZU*w@WaJ4SM=6!7JU!ed89><=BB0*dqrl4U4?Vmc9%3niw&u7<_eM zswhT3s%D06nn||h_yGbd>-6eom6q>bfq+4l6Jkcsmt2_C6)E~Gc4P{n; z9BSpEgv)TjLx&aB4~a3R7%i|4t(Oi*FQkI47F9@wEkC*z=`W8Kr^kmclUG??UJ|*v zUTH;|Az_2_Xoj;ex*sn^bc_v!Qy4bfN^nBJAB_a877z^Zx{S&)((>a6B7uXX4CtDJ zi`y%L{t1-qjZwG)DGWnMD{O(w8TV;Vm~j=1_Jk3Lgca!}tVJE$!7xKMr;?$r9-6CF z_1rL89}vpRHi(j{AzRXEAw^xBY^lQuhFv(m%cg5BKg)T^F|KFVjB-6LEk3N6bwOoL zEhhc^2{DjY7AH#6mBI>X^}tM@${#`_2?Z^quyJSYIyJ`RkVJ0~b7o;$3VJ+JR(X3T zk~m$0&9nA#h?$mO{MAeO#lk(r`4>~!+ir+ev!kDkty7G_2JK4m0s76cV|OU2}H0ngVH!Me9`jl>_)94k}k zyq@+b&`ec6w}<&#egpT485#_+>*3xlk^PDy*mWO7*=9RrJyek`-5t`9TYmFLq#yRFpi9~?3N_zCxnfOb*V`38CmeT3WI0w(sWD}J%P{Ms6uSb4 zmI{?sW0d3{K+A%2y2TxN`9V1|{BOfo0U?l3^^iBdka*QY-nvK>nXx@CEjvX2@F$cC zjD_iPWnCU*A!|0`@NbnQ-0@G?CSVbc@smY-j)=(ikPuS*(Dal%(ZK zSd!GpL`57jrAKUv&Yj5zlk5|4(#wF{QkX1EjSa1lcV}vfn_cUqiAlie=g^D-A%dnN z=%?DTC0g;qh4>AoQG9C^*!&iJ#5&mBh|M%Bg}hG-S z5UjA+`~iGQv*YG><3ky6waaYY?*!aPRS#fqmUz%of=XMAt@^Ek%v7Djmsvz>>Z_>j zDVZ!-rzDQQUzU$rcRLoEMk2IgRefAE!?m`?W=JW$R*S6xDbpf5sb1TThSfUmgM|vF z$ti4ZV@hMXv1M`Mm$hSNU~A<($de9RTd1rBqiD4_`UT~c1|5k+TFXO_4>^tAKdmN^ z6p9#4=g`Qc;YyOmP)er32Rr2nuuUv9*2(PY%$GSC#H5I1bJX1cn^L=j-TzB~G!e!RQi_=l~7j9U&c5QJICTwQ$^NF60{kW~3s`gW2 zxjr-2BUqg+D@iEe)h){VxEXV#wUad1uqN3d#$$*Paal3Vo}VYKKIz-eu5mNWV&Y1;7_B$t{t^`s5R()8pg6a=b=ycJcF|7JTF$Pl*M;Yl-oyEfhW zB-o>E#=+&2it3f4c{m2}b>+R?>5nHZ$cOP+&ohpc)iLuXWwTV(!^JbJ*Z2{9L;GMafk07XaKne#n- z6B6QYT}bm&*p~$|n=Fgm?Oq!sWz;fjUeq-9(7Ny=DA&zpwUct;5|PW-hl!Y)5&Ps? z4re_t+T|AmT6<}inZYEtU(5oN2ro@-(wHd7tSt}1@kLl#`<(LHZW^%$^#(_J3_O~9 zjhW60DxU+7l`k$3kJ$CWRk;cHF@wl2AaP6vhniz~bvDhNv8T&3|!+bpsW{??^;`uLE`Z7bm<2ISkd z896GqdU1=gjP%b9GeVGeH^zy<#yK&M+@nv&#WqD3{NJ2*+I6XZ^Iez6#jmj)9eomW zF?jNKu-$L5-Er1V{tmYLoo$!?617vmgYABA+nw@8YNvh&+x@||JN1{; zPW=wHd%(7P$P#SV+7I8bgahwAP|v7rs0^#^|Ja(g>dy+L8ZdIte`~I1-Q_Xky;*lg=B@uHZY-yWN0ed%#t*ve^LMdc})1Z1^DL*6EVimsc@&)NyBqP6v3}70FW6 zOox88-Lf^`5z!*ID{X|zhF+l#GND&!{YK`M{APVtRi=uHQ&mKl*?Q}yGc>Dl9~n#Q zP7b4;8m~;G)rZ2td+K&(p|$m@B^osB$;FLo1C9(0J-9Y&Kwx5>(nwgrszW28r26Vj z8chlAU#h-9B~am+w$BUmijqbIyieY6imW5$K=P#bdB*^`0%WZ z*&F5mZO~i$_P#}J=SU_w0~J1D^V2iHhOSF#c$sc6hLHm7pH){i8OWW__d+(zpr#GX z&0^mbr%RYuyD$y7{m)b2f{C?E)ngQZK;Og|*R^O-T_AInlskvWc;Ow@=4cofDKprg zQ-l(dUK6uXK(3NmC+7~(esrz7L$9od4+qeG^dkdquchb=HtAO-i#w<(A^P?EGV`QD z>@^R`;qKEkjxrv^3aEx7sYdn(x#;_*`Wa#~ttDH;O@xk7>wA zsUZ6Q1t@C0VY$XMR@Q6!)dLX|=NOYiyEa4F`jZ>pu3^KrhRNv(v3#c#fpFc4=>*XZ zK09HCx{-*xIzWJ|8ZekrFR&9V?05zw%BYJH6w? zP^Ifgb{OcEJl41FdYs0fGz!5x6N9c2SU9ppK#NO z5;*IHntWa8m34Q`hM5U_p1#@8HEP{ODul8Zg*58I#iYFHMCcVJPKQIUto)h|hF+n( zj)Y#Jyt1KJD6dVSS17M=FDoybUXv($t-Mkh7a)Ck{iuGW_Kxde*>o(_+D;dmO@>D} z7NUR-gnFTX_J>}ffWo~{3NyMFCN8BA6w7*Q)P05Xk*3|DSC*M3BW4>Jn?PYWZOwc2vpjnyjB}onSCT-ix5=bhVn`VQ=6wN% zKeO3bo@Wvu2(3l_u=Uo{bSNsxPeaMv93)bdJCJkw1XDzao|Nk$xUlStdnRr}so(q= z8}f1ncU>t1L!GyNe5Iyq9PZSDX^Py<0$jq|>X+*- zNRY7AKbfrQ%e9~?0M0r=n>`v2gu4ij=oa!rTUIDRF}B`umKKSeLW%uv zQbp?yM-rw>AT?{f11^Eo`RYdakNj{|rC1VKJ$-Q@m`s&+P#ci&`8t)7-mzB$yST7J zK@)?`D&uwM)BcRNU2|!G!DLDQn;bh88VufHF?x^m7;u_UF~ORmo9xuDhQ#3YvXXG; zkS0-nsY22ycHga5X9gW%84`!Yo}3nD2!jpYcAQSa339#P=FUHA9P%RSHDlvoSpKii z8NNiExqPL*G2?$W%06YBGzkYgXj;tJ#CA zDX+!CO05!i9M0Ce9JpQ)&K@N-M^7hHrFT9V5 zU~O3)qRhV83oob~RG!20w-~(qX1KIM6X%X8BhWx+^ma1CQC=iu5np@_1HUQ{`x{D6 zRnzi*$KE=%LMZ7GXXz&ste#;Fnk7B134W2A$W^lLv0qEaMd)WJD6`hPjXzN1MVW1I~6nYg8Z84D9aYcJzSHxaY8JvmK7s#DEh`fo-ne9C5Mt2nky8J5esF)V4K=Fb`y zoG>zfMm#DBx6gu}?aSP=4ahp2QJsq}k)*#ehfxnFo#0H~?BGo?cpFr5Jv(@JF?f`) zTbSuY)@3}TjSXMRlzT$Ve#-ebiY&bDB8B2II#bjcw z_dZpVCik^Zu!Uwp#CNLgZ>Y^;jJR z(OURg?=$Wfg-*&Wi$N`UmrcKz4J%e;_Z@JxX{K~X_j+SdBA{QpzyYd<2He0m8=(K` z0F|S6b|Ak#sX;2wd*Se~$oX>|V;@e;G?K)Ur!fgD*`sDsq=0XjhAX1<#mBCid>IVJ z_=vox_2_j$%2h-je5W#ZcLW-9cc^zKExlP=ow5ZS@a;Hhx2{&kaC~SOmO&h!nF$Yz z3ub{M5EstTu_7k?e`7Uca9HLWdw!_6%R2tWtbVcpX2=?m7hRimf%$sGs{m%=g3+lW z!5b>zBh#M5#RwDmYyFm4FS{5fU`OAjW*IJt#!zZ0z;4HH{kAEyD9gEg<4Unxrz)=H z7)BkqL9=ZAHhkDXP7)Nbb;Th_wPyv651F+vb5l!$p~V>^-B{Al$RXh|c{$4(wO1ST&44e{ z&9qD*28gPvX*ptT{rjhSv~q+LBgCLGR{pWDlIs-$(lL#C<626g49G#8?DxsOs4 z)>weYVRY=|34sq+f13wK^$+~(j zhffm`0Y*lH4gm;5(T|J&;7aq3Zn2Qk`qN))CiTZ%UaArpw`5|*mou_M(FC`A+46>} zrw8YjINNOf+3gxJ+*&yy4sG>jZD*RSjU6yGPw1v+v$cboSiJ_0!zq7gJGK7YB#o4ZGq=3egN&G2qzGTJ9S6$z`ts>V^PKm>3+L#l@zCopf9gbiO3yxq6 z@^RzUe^m~{G;0;h^`?Zzz#xnkFw;$9G&|+?|4o^9#*w7KT!E#CO*)Iv^g*TAT9C0q_-GgcYZ`P%CTMcPLKWNNOf>YQs-< zK=Be1>mp1x&HRvL$W91r0*Rn7%|^9BR!y=RkjdkWw#}Z0*56$k#o8r$b#R})FD1e< zg9vL%5{^)4`~jNIc4+!Njy>t6yLx01T2#;WmUaDZ*bp)-j@+XBm{Gc^@wfi|tXl^&uE?I-!T;*S z>O$8AEVJw2p{>cicmy`I$+&l!T@1I&(QKTW@kAqJ*+M&EIUK^CwXb%&ukakL-IqoH z`|WyFXt#QAzug=lW;8%_P>_pQeEk>~bInY5Qk3)|@qYatM~E4-CM=>=&mFcpGebx(mm8)Jgvdhe8|R1lTicvn zLBrL{f4@);#LW+lLqcLqa6w=|lO8MZVPw1PYZxGh+}3(U5aZRb3$CgV&N&hsDNVZ^ zM*46;HMEJQ5AUxG9fasxVzpw`h(^|jM`c21B>J+pmpJB$Bl189N9S^m( zvYTVJ8#AJrN(}gz@~62*@Qf5Ac+&V%GzKGc_6kSSI?VukW$h$1 zwd1Z&)I(U^z0&@)LpKR;T z-KgSJTlXD7u;$oFZh;bjJHPZ#=M6HxUlCInj%!{nh)Zvt$z{E$%;<4AFsR(MnE;mK zK`dqu&B;bH-z0oiA9^dz$;R@O_8>E6x60_g*=hYLdxBu)rj-NlnjOrZhXrA-Qae>{ zRmSg{r!n?$`7KZ(Gs@b3V-tGL(fQnFw-=-nx^rMAzk&sngv zuVK~{_c{JWF7Q`%NZI7XL4TUj;iLzP;DQ+QXY`9(fIZ4x)Du*$+yYQN$zf*Er-L|v zMdk5w*SAYTa}JyS$QfqS&Kzw?7+fSS@LO9C>;zz=3>$hxvKWsiZd40>!_qs?d|uJ& zj%8EC<$KNy`OIOPb&r6(FTVDUC?0UF>V*~!S+m{Rek(XXL(ES2^uR- z5strob`h=r89~5Tt7U$Fh%h$ft>3eNP9~aJNV}>3d7eyvMjQ*g>9BPGu9oJ_M`)TMF2)5o@H(RQo_CYHVmARrO zMZ@EL-$95KZ5J%ma1~Tz9(Udjm)rh}GHiFkoWQWvDf_kyCM>-se?^M-y}MD{82wj8 z@ozO`1DDZU{kKMGR>uh1p1yz=53X6*dtF%%m)v;@aKr*wNi6SFE37S>X11I6B-u&6P6kAllT~*sGO<0A9q!IJ5FpZ{u-L||K5X@4P%hTiK z(*7jBT<9Xj5YEN6s_M$+!Zs!sq+s6#b&AE1gkp&#(H4Hgs#|O_k+usz%Eh84f^=1c zs9x>0M#QY{e!$>v)xTmlvFSq0`U_9dHegT$QMRob=44;9@H&M@mC35-$18OI*?xuM z8dF$WxW?ovbk(1U(*O}C&Qm&di+&+CL&I$;+D^MW+hCU>>11k~Fub5}%)i|_{~}yk z3)L|f;d+d4Z}poJC&VA+v_bx*UXAzHwXOcfy|9rn@JM zy>`-Mak+Q@ooKK^UU!R+hIRRJh0DM#gs1Nhh+1yCG8^gU1mEb*SLWR*!FOyA`pJ{& z`k%$|C-L7p7Qp|%0;7Tc&2K&ZljyYVT6(FS`W^uaV>7Ist?-Nib+PJd>JIw9B z#6Th9l#>M(iKQYsej}%qmt7T!WpL}3LHL%o=pUIil8;3qxmXq`W{+V*8^gdwRVhl5 ziP0g&L&$H|RtMZ*@{uz@P#d;KU@(!PsxgEIegah(4DXD>AajdN!;Ndf!2f>{@YVN6 z#AXHGt))d8?3wo?V{{LmKzUlRZTx-&(hJAs*KG~fSxD{jmIwrE#tP%ZCk;y`0*f5; z;<%RGY`C~M0=~9ou{Sqc?O#65Fjxno-N|~`BvORagQuzFa@0+NQPJecarY2xqOfKF z--c3lCPW6GsgyzvA9*dIZCDawnVQpN@zKb*X#WtnBYAtNZ8jk?htwl7LA!MY<~6pJ z^2)>G;4QxExtuYH{m1d zKvVgRzPC6d>p&r)C`a)T-xzIWNn1jIbZluQyy?e`b?#zGzGgIcI9!tgop5v-(k~4K zkA7HstPi=03!P&&YOSWF;ilRhv_4_eC+7DdZYEhwKHiOQC1olgdu@}8$yh&eYqZ#Q z^>l>f0w#0h@zP{cZu!s0#S+x9PoZAU(8#=;c}yjiGqRMnYu*vToJ}80U`%Wj?E%r7 zePAJK+O9n}0e=nr(i$Dq=ftg$dJB?>_Bl0doS(8aoR!d)<>F@UAUi zk)IlaYr}@b?z{>SCmr>>B2cd$hg-%>UbQCadDHBgKl>iJFwv&CUf)C;>cXFbFKO&aZb4>am=BX##|C=aX%oV zRzcr1sA6eCiie^`jS{R0UYnkvg4gj`5o|YN!vRX`&&g{Dk&xcu$Hq%o4)!&W&4>Zz zJwrmS%Ov`<;DFU1(X8*DHy@@-O7wq65DiP#Rc*Qhj%*|8BudaYgPC{a7#ev@1QpLL z?6l+7C4;azHklCTma`*p%F>9*4oZJol&nO$MdfM`lqDFnFF5jVF+pR&_Wy?6@pn zV!8|y=!A2bWf&$XGoTnvH)~U{L}89%T&ZU+qj{hBD)J8Ho9Us-#{8C^i{PAi?i{7y zoWpA;;&S{VDS0b+RgLacp49 zq_|1B>YaRxkxiXs~}+txL4)NqgcvoX}vkbvY6Q*J>PY0&3cx7gcmGRi-u; zZ83SqkwY2*%`IEUL!MuM71mtnOx|iPAT@ve*uNw??o=~-QmiA|4s0t$Ybs~N+>kB( z?fN|`G1JXUe`_a7P=5e}huhnAQkHetA=7nm6B?8u(K)RHVcQFT6oL4{vi!6{e)D(% zBxz8)Q<}O^qa>!MtsuhWyyzg3Ge(?O|DsAh9S-L-NF2`F5to#@S^(sO?+S~bB(zaK zYP<2nh#wBr!(!+7P7;JLbewSLAmbqyZFh13UL=Oz((ay7&s#cGz1#Dac0KL&yroTU zn>=r6Gu5EyEvJ0|`Z~ljG7h=_R=JF~@0Lav*+%s8RokmygkUq> zSLDa1<##QL@L>S;AJM5-@k)`bI3go%;9U2|^Y6yO$4ZW91^0@BDv*Th(sCF#B{l` zq98h6r$iU66&h2^a2`N36lO}`XW`>uW?)eX&g>A87kJsci48z98f%rWBdcWet)3|r zrzHHDBTAmGG{|}wotTk_vAq7dJ}Iy$ksMDie!z=ms+OBK`~>l6LxodgQ)2Hcm9X7J zD$-6#bjV#V-eJP9S}WfB76v)ytdi32`w#zF~X}GXB30!Z+`55W-y+<6`+zIqhq%I)1W0 ziaAdz(2MuEz*p|9zaXQ>wd9oWyrnY}C47sUHJZ=DX9N!qU^K7ty~TvbM+<%~4=(4j zl*$jfXf45qw(LWO&SpVPYzRn)phG|0Q{(Alb0fGi$-cE_4fi40M}!2Esb<=-KyNXb zYChl7m(r!fzPIR5Jqd3wU35fL$?ICw*IopC*Uyp)^E&eoZcDNc^HW>kMuK(Hz~P=2 zd}=Sc>BS3?;8WA#w|GNN^CI6{n*_p#(L8-ES502XwkDU_Pkk-(V zWxK6dX7CxQq|e6FrbGBv-HxLr*G%G^l%J|LcjlafZ5bqMu+0>I*;|{TH*dneli*g& zRu*QG$PA_YWaIMNRIp-XoY64^#SmFDhmWR(<&ED$6npS3+z&KiLu7da_B75z)N)ZbcutGDfgzqX^GG=ViFx7$22o8RO5H8}gJ?JgYAe)HU z8J%m2=5@XfR(8$veQ&J_n|xBDy;c-YFl@kwM=g0K6%@@^;iIv#2^Xp$*EEVRM!-JQ zYz3}ZwEe*d^>iF=&$7?PRDEec*V`#->Ac^pH8hiiCXCfJ9YzS1icsqv0zT$xp;Eo2 zc_Ti=k|(KXYG^xb1XrncYBx5-ib*)7xNXo0U@P-*Oz)pnf|PaQ7jYBF9eAFPNiKN= zZ<1>R_9s@l=;gPwL|P}e8Ha!{`JZ@?+rKCaEi+>9gt6gM&GifLW4dP^YCfHn8%6u9ar`RkjtWeHu>; zn)OrSHY5;jgUmJ7HvaYXj$qB2*^|9%W}Q*Vl~3e&DXO3_$!MVwt`=78>RA?9fgu`N zq`}b`w$e}MeVpL3nNEcdIL1z{%NcD0NCwFpKXfc|zPG4b;*9mRk=<9^>&x0u$~OPt z+Szy*Ss#7`8g4MP?hBFiWzjZCn(VEOMQrgauyz)f?PuouWvfaoxo&AIsnAT%M;Kac zq~IxXF^X|`&LB`+3BTjv=5UcxY^K(8JtP`JI|1X-)r$1`bru@%s+)Jh|lYdA8PyT&qJc9h=UJWWWVc7 z2R#%N)QMP?ADOa(8{lccI6f~_$!NQ4p97zOXJ4UWf4`&c8d6h>WNmlRE0B?-8eDKAR9 z>#KI9(QVjK{e?HX2+9|aVHwR8Gm-7+kR*lH?adOy1bp$oLIgl5X>9l;RHyEyWqe(o zQb&XKYYS?3EGUvSFCSr>z57as54pke!ArL9+3TQRpD$_unCntG)lrvUv~3D_v?P~B zLva-Cb9}TKM~+XeDVTMEj0Y7KrC3ZNLg;?tQD0xoGe~K2vzMMGi|1k&HsDJ55M1(s zPbrri9&TT`A}mGNoC{aF>w&h%6=IZ_$Vm`WSe0T^bxbUojBM3mIg&gElf1PmNcH2h z3A^e-fn`EoK)n3Lsv+qKB%?Mqm?ix|gn(5;LDNnqv9NUh!4t%Tcgt1s-L#b$bpV8W<;m{7@3E* zQ8TkVQ9Ok`gblr*Y{&yTiEt9GAT{3} z!svq1Pzox-o|+vju3+%JFws zI}l-;=CC-pM2X4`@g$Wp6!6vZzmzEaks@QIu!zbc9yKqbl1hJAf{SR`oiw4`n?Azr zVV7pMF_Lbpp5cfHKsQ)YPjF6i~tR44S#e`jakhM8Xeh-v6lPa z5N2$JTEIW9-9hvMK9G8q3N9pSH04Fvm|*(-(J)RM>#CX;*K2ddMTa!6zYe>fAGkvw z1gWFhrkj-{eI7GF}bn5$fVj>iYu{(m8FI^B?{#j9bpTj%dE!41;iE z)rZjF8etgCk32?&^Q)?!UmbKt4dEgq!bMQFPl&z6YV3f=6ZGMv$LA;d?1~!mO6Wr2 z-ew;_tjE$sgSnP~A2Aaq5*C|og`!j2vFpQHQF+3F*Luy7M1{$m*Y*hgj8L(kZ5814prGiJYLD-NvL>K6w4v$P9Vt@vhjFxu-- zO7YRjU3@+ozlOx>k!bg1M000!I1}P5^rq~(G7`?_!WO%XPR6lWeF#-=^&~s0?1UYF zhgFo%q3I35>Z4hPAI68Mahk?5BMjTtfAzca(mL3!cSVjm0wd}jft`sINOYl{nAVzp z`E&=}#;KhrA-P*bdr(3w2Gehy1O3v?fq)E^237T>z)gcFHF4M`dBg2U}e~0+&KupM~kp-VfDR$RHKWRkbh^u1KNw2FO3t0%4}x z97e|*w|B2nN6q>J1o8yJktt!-xA-6YC`=FA{`?DMD0tdkUKd_{rCLSmY!rn)^!^uq zu^D6-`Ybej#9kW0uT=u&GC>-4n4o+^CTyW7XTDExKyvn%&mm`-Zn;o`k`t?EC%Hid z|F6$P_!2t1u{`&x*@;b!`?kNn4B-dQrP-U+Y?kAg=wIK2{pd6s-RF4Z7mE1~N2iei zwiAbs7H;-j$b#Db%8zKu9sgbWe9Qja>_mIyW2Xc3zpXKjBCZc&F$__kN9uTH4I4`& z;}k6eqY72lwC@=T{Gh{kqzZlM4StTAWsG`wYH>BuiUlH9m8j~PlfheaDl9u)lNvoa z@c9i6#y;)ok(0y0oc1sW<`BtALf~Zqj$7n@t0G=>)y}alvJ2c49HI0Un%be#SHcMo zomKxG@%}O_OLekD+@$g%*U~c-Q6`H#0ivi+tP=ZyP00}=X#MvvDRPhSz`)5c`?m8u z(A5@T<9XaP#_xUGKI#EuRuVT|bTSA{dn`e1^gS8AhwjtyvzO+nff>AdB{uhaW%`>O z&qsN$WBNYNNB8xRW#ClXPtYkIPp=5Fds?f%QFP@Ty2u=p(1qo6Mi;+G#ZTL*j}O~| zq3vRMZFTj5S(CPe=E6i8UxSaJ?5&eZH3oeGQuE z*U4=nFUlvnrjU_-7{89tcpg}|(a_cQ!WljD8*oNCDZv@(R13s9#1h|`S8kaP`+$c> zwFmL!$nfFaKKQ^cY%x4Z7(5)PorY%i;VLLne16Z;J~zyOT;n=9LAw2&Vd%89^#|p! zMjickMrI^fP$K;=#C0p;+q-(ijpB5E`MNPppz4`&E8g+hmLt@h?sU(bPH*!PCn4@G zS%^mmi0c|2>kKMgqfen-Z6`G#`QZ^U;Xa!c6Xjaxe{HHY>n>%#XS>jM=UN?^<^7!vFzsnYtIq6?iW;i7wtpJrW`I#FwgfI#$K zDX$fzAM+EhK&+EJR-1OSDasH2v1KoK<3=y8DVSJq`PkojflEg@sH?rMyW(~d>krS` z<^?UYxudnH_AID!b)My^pMt4iDwoqUW4E|OW{;zldzhMu+T&j8mo5$nSr zPm71#`mGz^UmLvH%;Ptr$I~5596YSJ$&W)HtnHa1meX`e`3a|b1f#b09M?|SjSrDw z-Ww$FAn0l6x7eN?GDx;($1jB^e8fYi7QvpAQrPe0i#;aqv72aS87lj52b-5SZpb!N zcK$fbuH8$M)3Y77)J#LfneCF4YlMfhw|kJvZ=hxL+D5cLaWHz>Oh1t>tU^Op12A37 zizfr`DMDOMyIM|8Huc0mhed?@Dt2873)DiCoQx`irtk3K8!>&jVVU$9++9H_KHK;} zI(GI>_*L~*H9}|%=p5qU3t%5X`pKt7lW4x$Xf{y<_fVvte0p?86Hg;LJ}Rc8{KjHL zx5q|z)1OY%{ai9Tqq~{U68ig{8{JRUCt^GE`eQ(SUF!3sQ7kTq#;NzIM0H#g-O+vk z%yf0dvn;x&T3w0gc0qJE`w^~)o^(M_Xh^WnXhn1$h(@ax?;^U<*254^U2BTycUd$# zvjU~pJ0iN1L-eCH^|y%L*VaTX6{HrKA|T|WA;3Ln5uHY&J3%Qns@K-&UUH@rfs3}b zh6IFVz=*EX(FmbyG)raJ5YGN#Tn8uy>5&qlV3m|!Q@TRz2R~S*nJw& z?^V(L*p2NGonIT>nPPb~Zn~2Iw&cP0_+-#x-%5@^`awi$`%s|UueMh9?JH~i(NcfV7()wNf*x*ScmAy*u_%?)+0JJcJUN}^{5dWyLf^S>=w-q&kKTmqJv!* zPYzh8m>xVkU_ENb$1a{Gu%2-NvWq7PtWV7d*~L=@)-ged?BW^2M81@0j@Y#moxSNo z;W6_oZ+J{RMXbJGhR3d35ksaM$%>sJcHQpl5*r%3KJD!i9T>ar@O6j@i(Pm5I>ZIV zE}j@5=QTrO7f%haTTDRg;%NbPhz*BbJT1U3wSr+6&kV3vY$)vFiGkB4J`nQ606W$Q zgFG|9K5?F#X9d`yMhN5?0rsgK0C`S;-D1LDH_rsHLtOCd=2<|nM||k(=DC2|F-Cmd zJR9)!iwS$(JR!iokx`{2Vhb@LdHy{Bzqb@ND%-QofqkMP(bHo)=t9_&#g!0|Zmc8n7rkM+KO zaRH78eC!(;8RqeDkIkb4+&muav3+!ao5y23wyzQ3=J5c}J4Lg>!#eK~9kAx{(2iYV z+Vjwk?P~|Pc|62pKlvkS$!{Ky@7SYefSbpIJa$VE;O6mAuRd6nD8$XX2)zP!q9E6C z+&ha)9OU-CPzJeqyAVgF8?n?Va?X2+zf)|WoA>gFPSK%m-mCpxVuIbgTl`((!reR` z=$Q;^2E2JZ+_R1`A#WZJ_pD27(3{6YKI>E~?9JnmpY@9keDiql4|R$See-w%z`Di< zzj-_hV7+4e_dK2jurBcda30SBSg)EPa30SESjU(kIFDxmtV>)NoOhq!c2%GFKsb-* z11`FFo$;)|-!mo{&g01e>m40Ocyhox!~{g19IzfSA(3YVtVgY&$diI#w`g{FG7#(& z9q8uslz?@L>A{l%)}wZCoX^t()-x_V&gar*p8&gV%2>zE)!&gaQOS>NfEWEwcX z2geNcq9D1)A0!i(I(NTF2Fdwb5D5fHMqKPcBe2hRgYZ z$ImC7`Nwj4ps2Eb~19J z*7-bJ!8RdPTnRA z#r$-JdX#?3-|CT>6{OU?mR7a4w2pmQ-F;0YT50tRC6`thbLS={rvc{-&gnim(FIGs zw|E-LcV!EHhMZj+=9jVIlgn5=N-tP^@0MbZO(&u)GQ?w7k9}0*P|Sh>iJ_LoSzxHW zF!()x^Hv%nw^LkS%ya<8Y%>wgvBO7-~#X zx8TDKLyb%O794CCY|X@Q!T)O*c1-HH;L8m|wF4qH$z1S_hT+#rLl^w8VbHOO>VjX* z5^iiNyWmd^Lyu2(vn>q+j!B2J?F~bXPnffhZ5VLPlsY@NVc0QAcXnaJP~(bO+4E-y zHoo4Ky=b=3mOVFZ!WhU{p=Fr(*6*>b}`qi0ju=Qj+r#(XP#(`+C| zi}se;fQ_DjW#8T~+!&xAXc(xCd~8N!YE;5G-Ev z*{|`LlNG4CjbQcERB=k=F0VO}-1RYanL~JLwD74kHS&P2);^DKK=av12%DY9q!)gk z^Mdn;&7GTz#qskxXFBmJ>QC@L@ksF~@lT>fbcnx*zgo)|Q}E9I$=|_tf3vT|5!O!r4zx?9u-$*NcJgdMLG1zk}_XvE3HdPW}$In}h8>iS5$8civmxIXMKg&-K&rxs$G*b;Y5r;^3E6 z0VCr`bU)Q^xG}YQeWVdbHiez(y(erJF*%4cm$O!?19M z#!aafJ2XTG4h<-fh1#`ZyN#@!{LP2jO{q3)_s^`I{2gqU#&&Tod#s)O9c-tDpKRAOkJ_obAZ1*T^cL!@He+S$B6Sn&qYbSpP+jZD> z={Hb2^*h+^(YD>GPos9~cd*@KY`cdPsh#>AZ1-4f_ZHSp{tmV~%eH&yDb!B=4zv?D zV!InzJNY}%F7-HU_eR!E{tmW#ylwZeJhfB5gYBMx?Ow~;$=|_to!IVkteyNFYE`+nv6Y+Ns~cc3s$x*}>^yJLtCU&Ug&LQ@?}o=3zT#r)Pxi zbUwEGG=nF92jM*h+x-W&OD}!Vz3@?j(Vn%FBjV5@Z+$&|T(xk*YWjZtRDP55MareO z>nEG-7hi?$S03A9Zp2J4J+6^moWEG4_o`0rRcoeGoygMtD>dZF;?zWbT$a156UyJa z@Y^*}aMPOo?4e-~KDwsaFci$_f2aHJ){s{gOFI=S)ky`|O&twjhwu(ZCN8pUNQxQ# zWF&%|WzW~-NCwiMQ2Gj|K|Xyo5hlECR<*N?p5KO$C#J_M@a=)msYvK%q8(myFzj!2 zq&i-7_!u2Cay|b6jc#O0vSPI5u9vyu>vV(@sm+n8{E)?bHgO(Qv5|55f;VbX#)l;- zxuVioEqZ~gH&`00foTJ6cUg1@zW(e7()D?p?spd3v zT%Zgr$d+6hR(83~(%{l$pu4l?bH!ZoWRVeFqFc-}^XHpVJ=W<7n#ZPBd_YU?!p&tn zh+HDzI!Ww#9KX9P6S$P{W5VwUh;8IvSA0=pT1~@s_LxY{ZG>sn(>10wd_1|h;^==W z^2?#F(oom&p-~Uiry&wh4c zWTY^)b3wTRAJAF=?rfsa!$04e3HSoQ62>HUrq-p_BQBQ23i;ciOSQfjTR#pd6GHy> zwZ6o*Ze|l#_1n{0d=FcnPq3TiZ%^wK%D(wl)>{7dwH`#+l-h`9`P%dz!WS!?;**ZK-U7ps&0mJlh*lSxhRm z5s_W5s|v~4*7{5jT+tBCdU0XDCOqf(C{ZsJ@PX|{?(SZDuI|8zMN)dNO%fDw- zoS3H_M@*yb`SIz3{TlYBn1);FquKq@%@zcm9;mH2wMK?kJ5D+hs~m^cKw@-ELg>S0 z8tILhW+N85uBjml4H)N-BjyfC{gM-HlCyzQuiKQ<>jvxQd#aEhURNxZME~6~T&3L6 z*vQ~mWP*Z7RT8UyXvWT}4=3(}l4`_d^!1q#n@T4}NY>ql4yO_S+l#&TG=dv9(>5}) z=ra|E8o}Lbq$c(?(7V@;>Qo~hrO!sKR7Yam7`22LOx%g7d8sv$Tm!x7<5{DP^tPf- zl^W=cUzkWWGB|pzsKu_txTPoAI5trzPFKX}Ju(wbO(*UQC8fep1wM5nQ$zSAbp0-s zJkUw>uxxtb>GkHoCKJxa@Lu+ zcLm1ZlsNJ)az0mwmsH*4UfapSxHxjHnzz=UeO$f1?h!OJUdT^Qm(={;Bp}P3=|FO| zlIWoJYyJiki;ne1$J5qg68x@E#x*5&vF^_$$iZP;>YjqCAA!^Ce}SAOkWSXxf9wal=fsEB|jdRyGNDS z1{{M-URrdfvJIF>a>0`EFSTx1)Gw&qi|Z8>_<#sGHNtLU<8wsYkeqCu(14t_T$@-< z*5N^xFg#wcX?jkLzEst*t>h^Z>U&`p_1%c8?6%uW_k4QUJ~D(_B=duXSr^Q87C?}N3W1w^tQUK zgI5C}>pGIS6QS(4Ds3qLT!tzYjo`MT7Ntgdqo~{K@4YaKIe!BV zdwF7n+#U)497KoYRWKVf#WNk1L({K@wbjUY zTxbJw{b>oz-4iEJCYw%AEvwtqwb)h^_s6~~Brp7iG?8rIcc(vpLqgdFBsolQBK9N;c>PYtO zW~;hmfDm;oKfoDGQ@J^qn4jT783TL6PJT2oIypAXs?6@hoyLYOU-dic8-CNE#a%uL zst(%R?vr72IF-pH=AYTzK;lj$v<8f>VM|E9w#mF?{aSr~cY|8J5XOkfi`-&%17b=i z*2YA6%i3XB!pXf{Ekrde-;Tr>XCq%Bk{c(+pY#hGRm#Qr|I~(x&%030b-RM}OWu>%ApvQ{DYMqovszv1G5SKa znvr(mOT%(XPJcm9@X{}VTTK$qXNC)v!qmjrWZ{a!R9Q}r_d3)kw-M&5l4seJ z#x1fnHjz9!vffxu8BFY3S#L}s*EP}`3*E^ro8iXl;PS+{;S7S*Sy>#pLIt8r6Zae| z+w~DVhM3f1a9kxHiiS?H?~!WjQ}X@2IPlXie{W)w-cqOx6!KG*6@`37bZk>~YIoOD z@>s7nKQFYQK6%7e7oJ9WGM zX_(JkQtB}`avt9`%aa(+T4r*`Iwf}92$i$+E8+Ifgw$uc%`CShYg2GX4X`pcnb(D? zK5v9bKA;+A1UA0NU3BSJ!abV}G9r`i&VM`uaDQck48WF*e?0xKf}0^5rN0a+C=9RI zDXRK>io3HUxgDvAjP-2|Cn$}C`9?N^S>t{6&RNJ#PEWY-+%&C0;U)JahKq))@ab27 zsA2ZyEa1}V!gN8Ox7n+Qai^2(B^LpPoVwXh?>TK&Tx=|s#)kd}Z~^yhHaLvSg$j=l zkg~|#;YKCl+a!{rnT<-|*4~87z>!x@{JJryJMP`1l2F&0lADGT)sp9Ea>|jNlyU9m z%M-H@4A7E;uAU2rhsEwiDmc3uNX|xiT;xs#V(OW!Vo@-C^B-o#!9|6NXxAJJIKw)* zn?`Ej8i>SGijk?}B&@eARVjXQ7vd=Wti<@F(hauyb(4P0M`tDG%L)_4?FDNqjR#-~ z28sEGMH4OKe)!+x^8fMkknWGYDu0J4#D2%&5&M+y&qDMAi0Qxd1&IH!2DG588)gW zxi%*YGw9hKtWo#6+^j~Os=^zMZgK|N{|=2NR}X45xe;)UCO^3#{b=3wGMf&hUk?|_ zCrqz=xyhR1)atyvwPUf$Pa2OoI866ET-{uj+J+&M4@uV*{-$eI*7)# znb-`lSde_K&GqqMiS{iIO)T1cdHvWp&{%+-#=~V%J*a%ITjWcg0Xc3oxl0^2R}9p# zVm*;J$4Js|c~)YE`E_)i0e_HwYw}BGt{;KV$6YV4^=efeQf_)&Kl*w+6Rr3z!IkdhGO{J`w|>5Ee)}xHGmdJL zdsU*Hjy^Ubt-ARYVtL|N&WJRpBhqhsQ(|dlx^dYN?tjx?0zB|g6|?#sxh400&X7nh zGX2HG?EB@~H5Y;>7!$PIBX zRF~NdRXY72J9ZAsu>)6)c(4AvGPOy*RDX}Ai$aC`9lj{^%G6c1v0&e>P``bxug2E5 zG1&6Auk|(9`fJ!a{my697C&r~m@ddWNZ02l;lhC_as1zOitV_o1j^T->L2L3-!`}< zcM7h2zh18Z)OOgq8~W>P*81yr-ky|g_-2vjx~oUlnMJkXDWsS81ZlD1U2OVD(uEJ* zLvGc_{UC|w+XmZ&$bCS@gm=9-si35NK=plU=cUqIWR(PLMQnPbn&`WcErDayggB;> zSX@l!<`7=`-RY#PfX+jlfV-JgB#HfxPy^mw{OYVdC-SnCz{~1>Bm4%-#DZX@odjh# zjcMFYhZ7_qx`+DzI;uLl*Mw;QimZLT=akuLMr9*#f$0BfM%^NAc7vY`&Aj*2*=c5# z++ioLcGY9XEkM*|#dcA$!EyE=+4B3&oSnorRA6JN=(wlRoesf~^}da>r3S7=HN?0j zj>JCP4)gcH*IjEZPiXQd3p*}Vc9Z*vHx+Nx*Cx(Tf|*8QPCX$vv5B*YWj2YY-v^)O zPA0HSw~`l3DDeXHqioWIP{u^F0+HA& z;7V|M|B1S_!Vd?|=+(6jM=$jg0_l8GS7=0(et))Z(rwn0)8^!6J&8w@lgKq-8VeWN z2~1*H)l=}(){BxlUbm!d7V>dJ&Tp^6S4ennD6L!!7* zYFr%ry(&q$#peVA#4Dl1G<*0>Y$7-{Pk;Du8(pFnnHsk6`jsqmq0%3~ zhowJ~;J#xmU?iO9LWXoVsYnpDG*Bc2&N|di{&XMQ%aveDg6_eV`V-rQ5o-FQ2~MLq z0 z+B+Xj>}E>Vp(ZvYn{0gSy>%oToaEyTCmR~dHcRr~kx4h%c%*og{<350S*hzW6?g%r z0z$~&?6bGfE@#`NZl`wYcd%XFwwtp8+of+^d~aDT#g==93)?TA9v|;fS9*)wGF9vi zrmJ$Zf^F{P2krQxB#vDLsYm+OAp{Lyco;7Zg9AFCtSGcS{eBCyEWd2KOMj>KOnf>t z4W~r)!?W<=n0?fakMj0VFnrVAFjcnm-2{Z&ulU~fC?tGkaT-ouR6pU(LQX@(2lsX9X z@aH4&_Rb)ImrYN?g4V5G!II`FndCR+TIJH)rFdsXq@F!&5}i|G`HQ8^-u@G$a!X-y zLunlLy6)MfMuKa!q%qLKhCCcu3E3^$09oy1-Zt}?Z3l|Itcsxq;N$QynoBG*Xccfh zO_W)kgD# z=ZDoS(p_4M)O;FwHLeL9AwJUkK&l@H9j8D2B19T+hH{g~@)s#9IGIR0-=jc!rkU)E zuf6E2g^<6UNn`2~>(!e!Q%m*RZD}@i!6y=KU@hfurzL&KwCTgFrTp!*WM46Dp_a|^ zx7!lGAKUyE)>8g#WO8e)>Zp1i1@2~+L#zr8*QMWe;(@nLzSYVY$O45B_0 zvq0NpFD$k9`wVm`lH8Q(B*|$=WS7ZvxSv@ZBPUDJ2KYpUymIK!gF{k25lQmHz7G~f zuS`G@yEOSoMyc+gGv$n#TlcW!18*m)L)HD!GffUUYX@)4F3p~)Lb(KY72#Jtys7ufcD0n zCH%Z>oN_Wm5>3!V2v5jI5avF+IlvoU1$iUKf5+Yjy6V?QIh@L%KN*yeH_2!0AdJ3 zF5}|Jl)j5g?@#NyOJdlhtYR77x0uKd_r?IN zLw25V9H(YRE+z`QV<=(mF;R$F%oL8G-5?*T0a6vVD=$(4YJDWKANO9;V4LlTovq3!N6QlRNy<8r9l=R zJV2(2_dI^+?I(Mu=P35h%ZS;~&XWb#^st*J)!j=&9sSP}iO)$7jjk3UvzKvT+l-27 zfD<0QJy5k-G~43Q%my+~uG#bQTrvuH!=qEj$~-T7csfGrCG^-GMpzdwqsGiIJ0AKo!eD81b#`vNa3Y39Jg4NcKxoV=W_1 zlP1De{lH^yu(<*Wt(Wg)utu>=UV=OUR#~#+O?VMQ{_q74s;{Veh?~;UM_HT@RREsl z!C3|1^sMgn@<_o_4_hLwqL*n-u!>%i>adC)D;?(I6*0^@S~FH&N`-Bhu^Xe@SbLTS zBGPhtsR-?Wfn!N0D3F%r4!rrM2Y++tF!s)#TUc9<*~;TQO;nX?0%95PK-P9E*UJpc z3vVHzKk|4#A0=uFgWD@=Yu2HBfUSw>nkKw=x1m97A(f^!N%!r=LZHD)>1>Dfz>n+GM;-4^g5-EHP#fj3_9g{+FN_rX zke=i$koF->jZQB;x4S4Wr_kndCP;f zF!fd(@y=luN2t!p%j7A%Oiwx&q-6!TH7%~ga+fM;Q@sdeIfuYMdYcW7EZ??u^sSUx zu$S~Ec$abLFD!R@WLYT1#!Geumj6`g!PDG10?Sp{+SLWiG@+8|&Do|(I#~X*$03Vw z0Rl_fz_y(8a?u%BB9EZP5i6tv_vqDWaR+ec*VbyI+-<1=ycfYwOYv@yhQ`Z?+V1)W zDUoRkx|h9^ONPASBBotZ+tZ=+zf4P;(#_hbY0Oot@qrh1X-9t!37O>~ND1~MEd(D; z3qeF9%@s8`)WFD7bP4BrUAG2B%Xr`fuDXNEd-0IYPFne*mQ;( zYMni(13&ZFM9X1tmRHqjBUitliz0-b|5+q0>hL%|mxENQ@ZO6)6EGyzm7*w>7XQ-= z>=s!zDe&_v(nFL_|AGPcHCJoZT%lE?pB{W38o}k$%K1EwxtR;qu{L-03X^0#Jn-|k z)54NlolV(Hl~wE};1~QJ0jM;{Ug9w^r4PKl-2*-B^ju$wObutLS#vaAG)jQXyZ9ojl7WBqc#R*1 zMk1ijjhFum3t3-N&`2won{QX*t33omR$0dN)FQy$;?bK!f`&YrNoj2GXe7%f8fEgDr^xFBY*<=;WPYA}LD~!9 zwHw#3uWDp~S$y#_If*!XoZ13~In`<45s#{kj8?aT|N=%Dzr(nEQT4+D&}*O5pbe6M(A7 zu@l<|1YX?)z{7Mnt#jAj`{)Nkx$X&p)?9;EiUO%2^O8o3QQp#+;L-xW_nPEVCC&L7 z^A-+XgW|T*GavJ1!FZO3y4&VvzO1oLz>=gvslXpR4(Ec;TE$n0S%*z>&&7?zL^A9I zihG+bp=y8h*l#BZE@r^$v1!#i+zhCpub1bsX?&feaduifxlS%p^YW8+|MO*0zAU}| zWvuBXBO7=glTN%SwWHi){1l6)y@K)-Yvwk2^q!VO6l>Lj`fg9FvAVIMuBoDuAA|}g zP?q<8nlc<`fLi&r9}Haonm%0oWQ;dCV5euo?4#Pf#M2i4>!ry% zOD0S*#OEC>B#4Q1(#08Je!Wa2(!^XEinEQmzc_uCvo}LVQokAEl|V_AUF1;>OIn6b zuiv_EV>kDMdXobiyn8?~0kS`Yh^SF5VZ8C zzLD+jal5q;NGrdTy+t2T1S4(p91MQkgZ{VkRWsrh;!XT~d37+aBGd#d(`PldI42nN zn(dbmZER?$Z)|R2BB61($`m3@04^^bu^qp?Fvlw)5qN|i^PntBnQVuaMs4Kv_p_Aw zP-9IqN}0XyK}>?7U!?;Ps~DEIe=w!Y1$L_9;ol}!%1pp{(q}wy&Yi=VAoipf<+i0< z6(kQcn@||c^=K%I{+D|+aum@gAiZAF_z>Q?VKZx95nh^ZzzU#(+5hE1Q|ERdrxZeZ z`72w^ZjkHWyb>@+dl`?HdXU!9UZ$f*(rcfGOrQPBORN1tnI8A1*IrKDc%`#8{0n6i zelorOtu<)Db8qwDTkagIkS34yS@Q=raj6zj)AlVOnTJkWNB2;9H+b$((gaM-aE|`| zgMw|w?H;gMBy$`iRNlx8=PX6?&nnT_JZ*4>*Gn7{FhMbP#LecZv4eLp~i7Ii9Atxw@uF>%ETZDKkCxr$(vI zTEtDu6jNh8v(STT9Ba15@y`rvkHf=ktZCVz3)aWR#hR^ooH*7>@adJup9Z(j%kqF* za@$(=m>Tu-F7)VvGh8g2Wdda(=!KNl^BP437$VQ9TM4#8M%xomhk*sk4`w1WDkp8NlBG|HlIui43i%OpQ#= zWRK@LGW76bj*RNay^v9?L7F-d%<*2Z%0R-KRS63fT~PCSRlycyY>{l|Ej2rwDgBQ&AfIN4ORl1SsMRka2{HN8F%kr5+6()+^7W88`4J@2BML;s-t8c3|$F zzFlm3^dK;&$N$_g_c*7^$#eGM9S~ zCg31ZVDqLt3{z{zA3PSXyvGEepEV*+nbKnV1|2D^_3tftK7^*xXUF+btYw{Os5?%i zVxQHP^`fQmal23US#8-MTKcZDTe8n;%Lir4FUXd`s~X<(jInGyaH$kORCc8|&`l5)r)m_le_b zy?>iB7|wR5N5Y7Wm0I9;r1jT)($TSyu2lq3;3g(lY9QjIxD#+E32k|s=h))OriBod zYx+_QzO=4+;dNThUyM7thk!Z&kn4w>_)7qOngW2^YU-M=o3Hh92-I}LiN69tsu4c= z;S?hPMeLzD@-c?unGSGA>H)Oev(tTV>h2d_hjROWuqZFtf!UlMpF+@KhsbZJ*d#T< zA7vBE=A8RgD|8a!xwcoq3SXY3Sub(iFN#2g%x! zxj|b~mgGVNk>}Mqz=O7Guk2uLRji$(B#3%&-abbUxpT1L$pcmExVONo%*@1X8Q;KK za-RsfZQQPx3xu73Kzs^mW^ev^9w0Ci|K9izjBnzddwJUAl|V!tKu~8C#%N{VV%{sD z#w-q%Par3}pySpiOaJEo*3ozF9C%AXV20g0A5ZN<973>B7@NtCi&BQ1rrt>hCoJTm zj}#HPuP<8Lzozia0%tFf{1{eIqnTy^zf5F1L*HcId z9WVblGheFfcj{n+cIpzYJ`T#+quel`2QHfCw5N{yav8Iem|})-VS}BRCIGhOCRX!R zX_(^>jt2!`DWP?aCbP_rI~0l82@E?9QLCMa>kJq}7Z z0ekbtG$>&KmPiTfqH{D!i5s4CQo`0|r}@%GOBhX(Gd{aLwy7l(l&H1>r$ryKak3vt z7-CZq!%m$&Pvo;TL?U)6#ueBh+hZBumD*KWt~Ohnqs`MU&>OY++7m)pwP`Z%(%5HR zOKPoSYd!1Vbk^S$jy6~GvyG`=T}}vTp&wJGIexntY4&$fn*E)ZW`7?_v%d?_AO9Cz z^xPYbI5@awL)EpF_tnqE_bPTC@#^~G^%cm77X6V~c$I_Mr<_kU(yZrPraW504eLzf z;EhJYC{Amq+5pa5HyUpgfNPnaH2JLdQPI-)g~V1f{(YRMq$4(dYd_`tnEV{PvEoHwwq`BSt!Z=9y}bRs{N&)&4}7fhjZGvac*Ld4kGKAM6Qkb-#tOGq2Y?ep(hIQ;A)b7yt_p8l@qd9+^|kT^2kjKr{Um@zRm(V zm1sB@+<_NbTQG@{)Ue12Q{dFPs@i6GZoCS}*Hd*3u8huSE-(=i1>JGF{-=blm)BPa zu(up?iH#kkghH=d*C;6_nr3`57v!m*$Z`MCA+GRA$cEL~l;*G|t z`*5Z`3XU5pDyy-x(`-7tVrgB&#^wUrp$vz)F^;PSJ_pog4=V9HnKO2Mt=J+87N1{1 z&Ue*x1kj(n+hb7fU9|G^Pj6Jqp#ayUQNQmoDs6>>H$+EI6W2y9K<}2O7MT6KJF^M|`KTk0xH{7E$8EF?O z#3Ga9DS$QFdrz_0G$6oh*53P=2tpD?vhbf%49|@GJNGk`)zKwZ?tK;=P0=UfVC;vp zWe!TR*g{W1=~4mc`r3;7w2?Ljt7LwoC}LkEnmtsr4qM_{Yq%vuHQJ^P3~#BT4fRc; z)r^E^=ZVWX;&S6WF^Z&G9rmw$P&>{kCs~c~PF|el!iq~ougsHUtpTdv9H}J!FP)Tv zSe3O^6^&X0=YUEq37;)=@NCvU38v#FW(N4bJOLK=ZM>3EYLU2NH=i%-$=9d2DPL}t z+;Kc96FtciNvR~fm#s{JcT;m!gBBQLGBTvd$mN38#1FLK@}vpFvHB!Q2TWtB<% zwlT5Kok)SET@I4MBk3t^lA|vf;uIy*)2?r&;DmirP%44GMfQgGD6O5DrHzv&V6kW= z)m8GwDafUw+5JK>R){OL^>z1Q3qUbM5+lp5PQgexZ*9|LCSv6ZAEhGJJG4_GNTyPh zEd>M;87bU2DTr(3BEfsbapZ~X$!NQZB#&;GWo$4mMMsqmC7vNJN(_Rx{lKQe zN@ikb&s|qvys4^kV{?^O{U;{Uy$UHLa~xPN7JVxiNlfLKns$?D>+~=ZVi^%g;>yUR z%qFd6GNoytiA3w#8qrF6Oj~x6{C*>0NkPu1o0BPF#Wp$BDZ*Qt1W4`Bq^Q|_?-G4e za9>l4O?P**I92shQuh@q$}SQ4HS)dYf}j3_=oH6Lu}<^;lCf)(!Y*leIk+5OO`9&j zS2X40f_%0uxIqR7(ymZ+#KRBlDJq_TJgmT}aq@VGo5T&w9u?Zbgj9DBXyjLku1`T+ znitA$Kzo* zB|$pL;k!SRJQN~wt(S|A%4a#0N0;|Z6D^R%I36#s~nSci&GEEMXQX{P95;< ziIxQfs`xzP&7H$ciN!xDS?4mmbJNtnvm#j>vML$NSdj5jj3rv{#gng-EUvFmh$lc)gmKG+gmL}nTzYj#Bj-vWEv^LD54d#5C9Ry3Qtd3Y zqy^VM;nJCu7;drE?otyvxc(KpI}ti9r%l-^YJ~@w%p_3lPl885X>Apv0?XXnRwT8x z7aAG7&*9U=(6>+(#;W<1XS0E;6(Y-l72}>t%w(xR0+n14wBdO^nG_5jD?1oH=ZxWz z)d>lYOoF6&lJHdD=>m^dKJ82)nU^POE)o)%d?iCt6H10;WmQ8hrWx~VYc2A;awW3} zYZP|n3NNOxOOD%wm5^#gAZS3x7+B`95#xz=(#na|Lif+{0??A@L^##p_3XnLyx$SL z2mx2gR(gkoZ4by&3#4LBXBd@SD=I6i8f4j1N)uBtbZZqUQ*cW%Th2?#x=ur5)n^kG zLDQt9$yIq$mmGP5oce$+iW03Y^}=vVL9v`o@S(C~+LRzH(nhDAri&AZ%fUVT+NLe3 zM_m^Y>7m)xe8eTPL$+rgIi=x)2{GwkS*cP`xj>Q&LZHJ15Jj=x{($}!7aZ@rZtL^ zMC(`nn9@+M5j0h3Evw10B0CRn)mZ;zx!ZAbp17GO;u^rt(>Q^YK$-CN|I2<=eDHX zAg2^$?CrQICyx?L;%m2`u1WN8TRk632iFAmHDOYF4ga61hvyDUkUGI}O?Y^B_Z93t zoO*a9VeVSByDS}d1MGn&UO;@-$Eru>*ihc$WzY5%`6->I)0IuIr zxE9$s>7`x4Sj;OJXAwF}_9b*uq>@NC;382HI!?g6E8cGcx`R0QTUYK1iPy5vI)jg- z&EWWXpFunv;jvpMpK_$y|TKQK}jwRz9Wh`mPWUs(O zkT7BVTyZslfHtip0fW1;Rj{ttq5(|!BrnV?6`d+zNpKSelfXK;CE;>lAZaD};>hw7 zu(EOGWjw~k;O>i63>Ij4pGZmAGiKuMUUjU6+ACj9IhLe~LM=%b2MKJ%oI)&#l|a{2 zOx)A1f^~y7w15?L)KEzJbUT(@B$sMB;b7qiqp+sgsr1I?`sNJ{_vX!8Bxe;RLM~vg z<(&lg%2oD4*%oP|2iX#eG=RKOCS?-<(mvT<3Yi1Q;69&9wi~rs3)3arjgkTrfk?*f zQj=j-*RA$06gkBqPbA z;8&HlCU%6mRpzmYYzdU3u;gUw!OyDnnlI>8n&7A$*{I`rTou`@)R6h}#u2{Yp$F7K zQGIwUWmPp*_sLVIuzOCD$n;Py$+gL035w&T1_$6$Mw4^M`SYaSOa0~)SF=b5d4fl_ ztC-^bAg;xyP2Tyk8e?PS#6S2*r}IT!Ys!JG;IO8zM{i@(VXljB8Z@?u0Rkp`n0P(+ zkyG~TxhXoXUd@=87~(j(vER0p`uw06ODc~XoxindzqhnX|APLPLhQ94*l#2~+WiJC zF{r?sNR8Ll)-*Na&7|VmsttI1aQ564DCKBFGhG&+DbFe1M?0n5uhPnIpyeHpKH)K9 z8Kx@E{)n$9kGLGD(uNT=&06%lvx8u*mRCnhkss6ChAU|VskQ90J>Dg5;}ulk7|*jl zT%p@=E2}otbGms`d4V_D4DH0R?w=+_F{NHdHj?=vC4bFKF)ch9-YK9l-cO0dvS37%ufL ztZ?HkMdk|Eg#kI1<2@de`m;D(yW4PO8=I;*a^e&6S(iE$>WIN|9@Us62}c5bW{pF4H~LYar*Onp$KVrJ zc|**V?#~I}AG!g23+(jj`UJ&PDeO+8B-#tbJif?#Jf~uwjp1CaKid>LP1CQaq#N47 z<1e@&Csd0<3hfjhR;@N?yK1`IfRqa>vPcV>glouEZ_?6y%WWhvs9reCC(FH%VDj+3 zW3j%b@l4TpD$^OID^#+gS8eo@DQ$9+!)*{`OX7rx+@HGNj@(@a%l%}^=sn4tJSYa6 z02p@UuSE4)qyAScOrRgMCyn^W_otE3Kid7ZxTRg@Xh)wNyB46`7TNBQqaA%tY!?>o z^mpxc>~mtft)krpn`OJ;(^tN+5!8*8Dx31U9?`C49&T8klL7FXZ$QQ~3ZwUZo z{+yTRNRdUb34ZZ82Zqb5nkjBPb7nkqwd}Q~ z344`}-p`1Zt#HDXXqgfZY-@L4)xBEo=d6HO(1u-a(oTMc1w>9FkHiSCXQwzIpsm*) zU=XNo#}$IfDg@b|PYprf&LjxfOT58nzbzqH+N6!%$;K~NC@{+&20&VU<=GcOyCf79 zsaV-ktxdhM0hnUzzubcP(R5U{Mt#8(W1r4#M)KF2Uy?aCEx7{-Lwe=~rc^t7_=QjS|`g=*)qA!Iok7dAQ_V za$0m#*nQ(t+wT9%>Nl`XyQUs>rH8CF6|~x?Jj(dDNKuWzTfDI?!gh%{=M=xEP&?bY z>|8{oS=SoZY4808;v4+wQVR-N$V1!E%$~cx21_i4USW#7Mge1%1qO0^>;2_qxa0yb zG1yvd%|a>#{j4QvtVWE9jr6f#$E7rp60@X^Urg$_tg7k(ZPD+UhN`rjVZkg{J!K25 zobP3)Gcu*7yq#Dc^7f~bKq0zn$A8B_NvhQ*k#C+PpJ1z8!aU0w%klcSLJ1q525XVx zJHJT@550k>mA}kHO*LQwrAqB2-+w^}lKZ&9fBSCIFt^nabNN7L#NA(fA*pX7=}KBK zm&?hjqA)py=nJ%@HBAGpcNZlM&Cz0mpPA6U`*2d<1sm6|uWH1u=x?48!QOp2sb?bC zDmJZilIw(;lI2)}D244J>jGs`)(S+SCbcM!i}kXCsnaRd$ts=g>ltYUB&wUtq>938dhEO-cy?dtX(vD0f6LiPb9QYLj&OdO44^F8Q9+ zcR^m;#9t@F;KkN+FgAknW!9zjjo7ZqTD_c-8%Z=Ox1N+nJWq7B5tiSY_Y>OTBxEwd ze)IP!3ATzYpwUYI;A!;a`00V20FkvcH5sDcMlFcoR_|z}w>(#oTOEygy4AJXsZ6*i zDtV=}`(o@=zVx9+t(P`n3%<8O5`&LCdu~ZBDves%bmraEaQAYH>{92_@U9Ew#Ihio z;`MEAGmL`2+mr-U{%0#{YAe=a=ayGEU;#y>)9u=}U;p0!lvUN#<1=+AfL&}OElkl~FoRu1C<^xB$vsGge(TDA9 zEupZjzyi4}Km;yMo19u+6*m7N2aEWRVlC_NimvJ4Fv5{MhBKw2`nw& z8`AXD;8=EJlmn#FN{pmPygwOE5iQ&NR0v`RO4eG?kiOpn$r;+KS(H+8(p&X55!&lf z8QN>?v!nEbb`jCezszpOJ}0(|%62Oq?dWr2yL)B3@5^=}`trS{-l1XR-MN?O<|PM>hzhU zPFLgIib{HKXBMBlSLF%<#Cx_4f)$f|U~f{4QYP5wsev6%DRG?vnNim@ak1d{FwU>h0XCa3&Y(!eB^ znu`_+M5NM*F(nXb$lBE3C5_1zK8=2p8K!Ji4N@DX(=n;jwk3^B*fNfm^U+nSDlnF; z6J&R%awr>hHzt=(%Wahts=0Yn1qbB>_JlL+5kou639OOF(C6$-8ro4#IKiE?YWl@M z2^vhxB{@tKomsUwwvm2)W7Ax=Uze33slq%x**`ieH6IKN=N?F+gWzxL7GHRwMh=2E2>>V*r}eI!RSY6KaZQ9MH1nhd0Ds@4 zyeefNAk3$HgYg1O4r~>$F34A!h0-emBrLi#4g$<3?Efp@hPDKsUkIHqqLxy7^SpHo zPSp{)3@XNG;QJ=I43i_m4-B&kH8E`ZH#(tV1Phu3B4XSo-WwY?l=GBDarclvbiqQa zjaWQCPb=+Y5uO_KiZSP|ZxHYCx}FxIw>nNw*kA|n7wmS*KmjB~E9aAiYBWsCUggSd zU?0pf=JaGtCQsVHLEt+frY z*jhk5U8!yP1t=f7Xi(u$?i_2=Wla7tQ~2ihczs-n_0*v%wcaAC4_x#w9vxa;Yoix1 z6?jGIQw7pSalTxsahD|AHWnexyaqbMGflX#Q%~HuK~gC7aya zNY<%*x8bpuClo3DJOHb2Nk^x0t7+p}ajRLmg$*LatwH71`g!8c8s(0B=fzZRIN+2# z61!t3({`R*t+PexN6NWsW)vN&Ri1N`*S8xx}l=DO?86=5ah!DD}&I8pt3?6M@B|bI2 zQ^8bNreZ4LaM$!skjj5)54Rz=0u?(3vARZ+E# zmP+9D^SRoGW_#&y1>SnJP*qbp6`V9!Vo&d$HVqU@B(O-fQ3CVOoGBixd~hRe-;=|c zsbVPJm=mU2Rb2&^I-EU%1LxLl7MtIm4uzx-aOb28?Lu?J(OCjsXShOV`v^Q$q5a>$ zGYyG#!}IEx2SXb$k1X(L0XwNsRnwBIN6KCz!fAT;Xo2@l(*2=k~ zRe7rdqsXud3jCOL_LGWf8tT1ZT*q{c7wa(jgjbcWW_DF&-7H1d#zCV|8?jCkSE8My z(|LrhNc7xe%>`07RfVC0z?#%ENkq>g_@65_krg-a#w?w{F?%lirM<~dZQC+2m#ngh z!Z}&cOpMy9w4A3v+|adsiZHS93u#@wRmAJv#zL71X5p&7f|&={cw$$38}WvUM!fyV z&M;ib5_GNnqSJ{JQ;6?L9s{Z|x2mpe@=(XF#NoJphbtT#DmJgJDy*k@VQn;zDd!qRL?EucZu`OA$t$}N^jEp+Ucx+U#Mn{&Baf4!! zI4&?53hbX#MVd5?)vX#7fl}*O!cZia;c&K=m?&0dh8Sio&Qj@TgRXMfwvYC1JGqLk zvAPLYL$Tk7Kv0h8?mm+@Lt^l~NsHdXtb-dkpA?&_3-sw!(7Jr2kEKts2UQr0$>-5$5yoSHuZAE!+Dm^6JJg(fd zRcBPWV@+c7PIXl+W!Zj<@>m0(bGKmGq};VJo-d?W&r#aQMF*#p8|;W>%RB4hAZfw3 zxs4DpmcHm$DbKOREBs{)H!GlDsXSAY;I~H9yG_{j+RBn&QSQ~_3`=hB^~;r8cq*aW zhUELA*NIytK4|C;!__FksjS24fmWWH`%&fwCYYzH=1|B_=#C-RarwqT%M(Ul#4Mwx zCTD7KKyj{a>~o!DNsj%jU@P=#v0==2$J7FF`N33ReXKhC){ zK{~l{DS1*~xX9zQne`Zlx}y6e53Rbs%F`C zWs!^|vK8%ew2>Y{6)3r!S2apP&XWboq0yncBMPC)s8*vb`UTZz^l~K(Sfc&NApxlsjn4c%T*CO{eA_CABt8JWN|EO{^F)hhc?pleQl`_1h z+?6P)B64Meh!E6B!;#Uc!IdMU8&U>JPHp}}X<^5Y<4E%f<-vsYnTY|WlrdH1oRZY^ z7m6g==Ba^X%F4)I;fH^Wmmf$iR}F)NMMcj+wTqMh*+Fa7OJQF}$-F$}F>$OzXk&{v zYGqZ8wI!@5Ts@DusHmbh?gBkuhN6WEKbk5YqCUm!lDd$fspdYJg%>D~I@sc2KXa6) zoM&LHhzEXh?^B84>c1+k^S@JcmJw^!8GtiuuH z1Sy^NtZn)q_A-DfYcmz(9MP6*&M<$zv^=g>dcM6hM^%(@q5_-rp}!pVmbInWvgS2@ zY?z9d3fRO+FD2@<)a0*URzPPPwX(A0=tr2tonT0!`a0XCslp^`k6V(LLNMcl$p`lP zc5K2}Q&~}4fa%dwyg)Nc)m260#$lb9MF^|&>Km#W@2e`Tu4pWT(QeXuBTN?6ut-Ib zcHy=%5fw+;B%R#~wR}<`v~6me9;#??BDskpsSc|eBuB|z9ah0#wHl5(z8VHeY5It} z!m0QRa<+ZJ6-Dk%YVNCUE~{w7dvO*Y%TzupgE~-D6~%$WIM};^8xu!62y0|>gn?V! z1Ph8q%X^r6P~%RO8+N>7XY?v@H;F2}8gkTCSIJtj8g$AC>k5T94il*QRXKyBa(;aC zGD}e!{3cOj*^obNpd+(==oTUoqU6_O&sa1Fc4ON^Us;;lC;(BX&JXJ1a z7^33g#Bs4Qo{i(SBoHbOrFC=RVX`Sb zW8pnG%bQJ{KRmzEHHANe3U0Oa!m_JIuCeYuLB(F>A*o23wne#BSIJ^HmsLj699(Bl z9PLtiaK4_mTe-)}-K=n>X)13MMjle0bS8lf$~`++c4gukuJVv%a2@G$u3{l1 zJws2vt?-u37IKc}zQyJXRcoX|pjaanrN#zr)8#4GGuX@#r)GqnR_!FWj$-x4&{t9} zSyoY3Aey0IpOAyA)=LI&NqBI#8G8CHg<>2;zC&U*2T OcqB5jvtmXKRlec+V_M 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

v0Vkm69UkDX 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 z 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�(V_7`xQ^ z0!_E)H7G&%J|N)wW~l^Kk_;3=HhdXaX(-P-74E212Xi?y^5>-t)X}O8y6eSqK(~Ok z(iq_tSa|zD<+w*&Z-;t~6g+i;r6^4~oIbO9sh?~X$uy_Rws(tXmUep+i+HeV>E}gD zbe@GrqGL85t2vRZs!nbrtlGOpl!Vqn`9yF`R^7Uu%>$fNdPmH)t|?QP&1x}SQKoNT zLv7BhuS9w&TY*4QXQ+?Le@&W}lsIk$58x-_VkeW+i54o}dWYP!cgv?&2A z!AeFMby*?W=4W2=i{KBu1p-j;906RSy`R*9E7p417 z#xObZ>&&MRh0T`%V>mxl8ALwOtCGz6x1BWYO=hB1ApK#Q_78L}TGg4m^Ug(!7cW}1 zHn)6jTSu;QRWaALv}?)gJFY8sEFb#V+10UpWsU-OFIvSpyN=?b&d!ciB^CP5U6Xfs zrt(z_+T;c#177auuFZFEn99EIS;oyj30ZO$`nRTyRk|UT=`vR7D%Q%@uFq()HV>P0 z64sWi$Mh0lA#8DNe=$?R_iSZmdyYz$6C((N*s? zEbfrP|J9%@8U+_2L#ny9`kRf*z@CL@aXTt5IfIM_Z2n4_lLM&xLF9P6oyFVpv1-%WeVUjr=81 z0JA{GnUd1uVsY>Tz%9|Z`&3KI?!Mr=%HCW014;|rPbIhb&%$RcA=MEmxuv174Lnum zZVENiw$r*5eE<|(4x9{ZZb>!mo|%muN_12&+vG{P=R!|NhNLP}JTx+gBDaR>t>bEr zN#a*X$YQG2@j)+^sq`}Z%Z^Ebkmewh@eos%r7V5r?sOVd?thkw&n1>9Rq@cFy@* z($U$~Ibx&OEEla>yr4L8eSaY3a(5`?_+~g6__aV*BWGwyx~x zT)Jiy`A1o;vW>FNWrW{ey>fIQxqQL-&Cr4%{y*Y4RxIjX*|BWdX*BEH;JtFes?L$u zedW@XqsY{;YUJK^E?TirpxfHn1uHNTK#XcdY&}K;kILAwauj{^`9=lfVV$FZ+`*hb zTfL*j2VKRLYGK4F4fBl>fLAXZU9Dlh(bl?R>6%e>R=8XlPp|ild%$ZiwRYTbXRfu_ z*3sJ5p`ZnWc=D|{E29R*Fun<%&4Ybc*9G?ceMf28->SZs+6p)9o45k1*~gK+K*Jcu zAIPci-hq&9M4N1C@?9p1%c_TLG)p4ivu4oAi3vk-ybcGfI`OYkQhp=UiJ8I@S3tNp z@tOlIo(&~q46W<^qm&JJ5`YngZO=$A246QXX*(vtwQCP^;YxHyza zCoo=jbxo9lNG?yh6_@o2II2E9tz%`ZlC-7M(Nr)Iitbd&z*tC=D#w%0geoE{ZJQhX zPxWp~@Sq82C^Q1MHGMFnWXW?TDdw>QBAsaBqHd2@1vg0AK(VQ7NS@u;tcf}2 zGkKJLw0La4?9o627H>xleyUOe0JQnQ0uq+oS*Fols$z-EaLm#AX{t#sW8R=0{JTjn zQi2zcdl6@o=90~2-WW6Z(03}7)1;6M9<>403u+W+6^#*#&Zc1dVJ4FIEAA`-F*@Xd zZ~~3f1ec~kh1(CmvjD8yBdSNba1x~{qt-wHZlV=q*DF*%%xErH zH7H$)8$pw2(Pd5cr&7~mC8zt1xpE09Sbvz13Jks*(7IqNy3h5!n3ud9xZ;UJY5w)^ zWcr!Rv`lw%P&wajqN3lGnCA|m8(63X0r1}86}@8-M$@bl$JyJ>T`g-4Z96bUwEN{Z zwW5InfNT4$?P;$Q=*OebZ0F;oh5Cu6(9slHqti+kqW%7j0DQw8z+!{+92n>8JI%Am( zl@~GTIA>lYs6rXSfTHqhK+o=21_5|#yP}kW9LAdcNLr%QRKRS3%WMz!8E}vF=mIpT z&})h9t+CY9!gf@%A69iU6KXM8C3w*ldKx8;QQ zuad`lNV;shCDHomhWVrFEYD@`>E?`od&D#_2a^K)fRO#KC`-n_1v9{!24Zi<@-Z+_ z741v?oNCI{g#R&J?9HB@hZQ8n?neWG>j)Y=gHReMKg2jW^^Rw$Z-zhDhv~BVC7&1e zjJWm9nV7c#-b^^o4g50)jT0wNYCj5nLV2l6YU~YOGnKeG_>K`--9K~ww9lFi$ifp; zqQ#yuV+Ihw-mM_AOHr;jGJgvbw8-RY&B!a5^U{jXwUPsLQl;@jAmvyMe^)WV zS7F5{o*dZv?6HBZPm%_pG4+8fX0nwBlXLnF1iQ2O6eyK3PVkHm?)zbaPV*H7o1(-r zK4(0lirYOW93!M-1QIPAO!hEA^zH33R>WZwda617ViqKE1M1IOJMevpYpO05TOX^- zZ@06vk03PG_OHa_4~ea@5T>-Fq5j zgd>1UGp2e4u<*Zo=WZOJ8yMR(<~3d^>Ir#AgBCi<-FtRMz&5+DgYkE}r&x4mMYcxo zv7(yZE$#ex^w?{}0s~UC>D&f0)5vX29&+Al5`0Fzsq$?5+${s5T?v(Kr>s|#pH{ZR z$m~#AuGAiA-8{gAf+)vhbL(yrhmh8Ce#A9b$2?z^ooXDY4L*Q%HAAEEDW%~7fdZq! z!JJgBGh~k#k8xm4C|3;YOF82({kJ($gu^gYt&+7vGw=yR%cqyjdroXv(PL_@TCM$> z{Mi9vnW~yRv(Vfm-n}$~@Cn#$&4*{X3n0B@)|RUKh<6&UgTu3=d)X`>Rky&7ela#K)7qT5ReUkm>jnMF zva&g}55o!q_%BPoFit9gkRc40%=v1s16x$tOqGofJ{Cl_^}0>F+Jcvyy!k5N(>CQMJPVGDCb{_0_^wa*9m+ zu3S+lqBLYey%}mBd=op*0z z+f=_iBhs^Ttu{sEndI6JW^XqbDi%E=4hg)(j^smNOibj(rdYoE{_KYP4Z>oT2jHTZ zfJgEdt}6=X{I>Q zSprlAdH}Kq)CM&Hr|eGM*wnrERTx%YbWcO~-i0)B)|Z2?!eN)boa2SQ@a0;c?X;Je z+cO{>Bfi3WNO`g~Aoy$C5fU+DEZ!|Z{fa4HOlo9u@QEr1-9z`jZN2v>18y9qq8w1; zgJH;%4WU8`789V+DUj}?o((>b36K*QIm!e3G!Z4vOKQEqEHQl)5ku)Wz$5a5EW99G zLKFXJMb=w!jK|Ym*~QWad=#+v{G8-~!{*RuRN+4NbpzC5i0UZ=hO^U?rXCP_2vNoQ zoG=H?W0RzF<`WNrc23Drx3wK6hdN0L+{WafZI}Y6Pxv(s2VbC2Q?+$4M}=E>)GL65 z1A)nxtrG}o8Zj(Z#I@Hv*N{0ccaZDVtx^C4Zu4QbFVj=Ww)F%SNL}T+HwT|L0wsB9kFlia6O8#oIGKqG zhhX_Irj19a|IP-vNZhn%YDqk`M-;umrv8nsK4AW{jAti*S~z+zqSnuAF$NHU_w zcCgFWSPjqie0_Fyh@{bAg7MN{0Zb5Od@nhxm}b6DJbcbPfh&uP4f{Lv8vWLb?Ry`Q zLW3E}(2F_X*lu^?ly^1$KD%myd#3Y5CR9h+Fg(y0icW^4JxaEH5=nJ5md!~smoVm| z99zw-ZwPgRO*-+w>fl-hJYCFwML%^z=}*+{7PO3`#2QKf&tw&5mzd({5om4)t z`)G^-gR)C`{n&kOPjU0+6Ax;GOmPQ1#(JT?8N31`&Q4+eO^NLJ(}ZV_h}=G(91PwZ zL*zSGmiX1D58hnY?d7p5f{{R&oqLAifc7SW0T=GvB<_Tx!iTH63;x(w@|B~u5dMf} z@kst5F)HknTt8Vu0>d;z;WOc}jS?j?x-80%mJqQwRq&vh@G9V`EC}7x1uC3zR*um3 zgqbLJoiU&Ju&%iTyXgcN2i3GqJCS@We+HNsPhqftbYIeVi5l)81FU_Rn@ zdLA*+`NM*p%BB;#B<8S3Mjtm=GiO^H?kTzrBz(n5ol+;nAZ_mvm<&=)@vGah%A}T@ z=U!>@YR5v;{<>Q{OUI?z^8DeBWz&NcGW$xn@M>_^DI;%v+Cpec+q)j}wY; z6h;qop5*rD5v*qN2_nZxEL{ zR)04H!eLh-OwRLs61YZ#gO;Mwc%m$=74AZ~w{uTS8WiMr4c0tyx966b-c4*8b&t&V zbPIo$_#PAj9Xi1e0EqwDcNWHH$8Cbava^00Vv6YWIbPmEcIo1uW~6Gh`?WE}Vudfr zsqi6Dx7qj>hKfqdEAn+%{ELPn`3XWn4fJsg(P5ebc&$Q z2PY`J@M3eLkEwu;v08h5CdBQ4d4(UyKgeIIW1CEH$9KZ^f=CpD!lII8wBO7Msq;Ny z;yZm}g)5t`F7LSatUxhCKylX)2fS?<2h20uWON+xX^;?dz-ME9&jJ)fYyB23FPa78 zum&_@DG9t~3 zLoqJsd7IRkvKusmW^YPh#FL7qKD|$0FU+wW(8-(I#)a*{*pBii97cT zpBaa)y%R|n!Kf0g@RMQAt~xMvE@ZUtyr3u?G$@$C;0?V1r00;uPWwUy=McLU%M27Y@G=>r*EIo1vB%ikF4&g(L|2dF<=sA`U=t7Y;@eE|g zmRi=Pph^JLEU6=f@SgEla0ua5t2;kh=gO{C#mN7N!8F3q_%#MI7-o+(@U;~w0#S%{ zhzZE~G=D6_NLPlZv2?*jg?q4ntG6cCNJ9?jf7Mii zldys%VbZMdeeSWUt;KzH_aD(PBHRFG29}8u;J{0aUot^mHu#Qw2zcR^#%!=D;v+jk z$qY+seJyK+D?a1dr#>vP-y0M8K8FIzgFXdLDVxA({`b9ZFaOXY<|5pRc>MTr{J8%? z4@m6wkv~SsatVyj|Dv`W{2N><%*G#*I^!l*C#Q3mR6Hs2*8$64DN>3wdyk86+SK2P zKzoJw$c3SLCzhY>HQ%g1OCLp(lc?^{DkMJxZ!*v+ohq2C<)w zuFhnQo9)e?%>02Ny3`u^#&@cowe*NRBK^Ry9$0Y z8e6HSwCl+*i3J%rta-Rvxo;U#Qwj=u7C|7nV6Ek zJoVYOGXEc*_{JzqUmA_P$RpbVFnN=H*$vdR-a%J#OLca8SZPjjnQudukaOUzgB&2;AbsiyF|D=t{J>^f^oj&T2dLR76vj$hcu zvQBmjiyLH38OwbNI%T*9UlES<#WLBdbhX*&e0uoH0(^EX#m9UZhq_^laaQN_j!q5$ ztQy%dTKPustS8H&6?c~$AkWp>qE)Mgjuo9Z)9JpZ=ghih(fQrA)h+UjzP3?K#)w}3 zG;8kFBm2CUat`x{JiD7X8QT_hb)VngpG+$kbS)Wa8I)&K1JzNmkt*Ygwyx2*N7FY& z_8iGYoNUAWfVC%Ho)qp0D2DM+4G+CCD@}Av3ngWY#m$9uvo}99NMHmHPXs%*g$y7( ziXzG5s-rM><**Fqs;D!Oe{Lv|3@{h=jE5I*Tfyni%d@9!oIK$`w6%Cp?8|IFm8|U9 zo>%lk!}ahQ#_rTVp7oqV|r1g7QU;xdyhq;8aJ<2zhW zFJZ0;bZrW9b21D$l2R>H8Ojf(6xk!Cn;vXvtUHkT;Xbb^fl0YM@*BNKOtnx=w06nt zoRGvoN+}d$?0dW_zCjEvb19cfwIRc$0;_eK9MZf~?x>7U%laZ>80^z5*5!Efz6S4R zDMi?1-VZm(vQ19LN=;?}Xid&J<`ujl18Q1fDUalCa*ZgV-6mF{C*}tFD4M@pM3&eN z;=ZFC*~T)p{!IjLgWn`i?Y1g{qv@JgYp2}Q$1B^0R>}Ygv{$A}1dw`hg(?^;+XNmaII9d4HjY9i<8H|z)@M^SIsHgHwgOvI~>h3~x9 z9bxaxg3&r~fY#p;`RW))os%N#dv#3hNzu45ck(+5BE{V~D;6xv`9CA#qv4r{V>zLc z{l65Vl6PaLeL_+Us}1}xa@a(~I_cCw4&x*5gWkT2(H4o^E+(G71AX(=_fJ^g6_t2c z-``9&LC18(DhOo`j^?_-5Y0EfFB}9x&8y1k#J_RcFEZu>gw-9^p|jFVFtGTI+#M?y zkBEs&d7>?MOKOw9F$?zEbX09jm(*jk<21dlX0BO4aLxOOZo{qaQ0* zuACPb2W$3|{Ei8 z`SMZCpGvM+z5Hh%+&#v1oUNSjMq{|;$^sM%#eOd(7dAiT?MzTd$jL<_ZJ|p!exPk1!U$c7?WUgC$7n%tcm64)%%Y ztKFvKOmJ0SHvP9os6g0ITWH#pVINb&zQV-t6%|rLf@+Bqn@D}%Q;eLbB;U~D*XwV9 z5(kgjOukh0+tqNDyz4H3^CF6nJOa8inTHt}p|ks?tV0ei7y89a9OI&Cq7O00q z#C+1ZW) z?r7B)E}(aU+~KSXLdv6s{kg7K@6<-=S-L9{l=suqHzRx zI920$GR>_yzyehd3{j_P9U?C6nOg6dK{vkRbks(dob1fL>K!%8Ci4C(Zf@hmxpife z0*4N&JJ+x1ovb=liMxX{K&8&e%H3_9Ieb3!5l)EDzu)V24_I4pV@GQU{nt{N09)>=Ea7KUZpFXimK^iPe|(e6NaW<}1%r8CLUiHZhYj8aH+U?#?LDPu*g38eJM>%>LxzkTK(u1zmW+JqpQG zESAkClM|E4Y*IHx_Cj@fkEFOL?@&${$bJ%9{ zgQJ*D;^}k|VQ0ar;`!AxKHtzGeofe?J`+yZEN`((B^K(2N$91F=NM9WvQXs#9?0gI zI$lBy!z1osvBN7yK65SFLYq&#b*C0e>S-u1QnYiGN2?B#X3C0~>r7-|TyU-a7F0Ou z@_Uelm=tp`l`gWFNK_wul>hJ)!V|xk`%BASwQ=t3xnALZSoBt7q4ViBGZ3r1Dz(oQ7d5kke3DqT9-O7B|T(Nzk4p$#$l zi{XYC2MdJ5WPrEURY22`O*l!3?=Tzc>vq1i&I3JskUtr24u5urVzwaixR|xFplWX2 zv|L|d3jfOilQ6^M#dk_4^5lyh+X|m}30FvNZnb8%-?&Xo6Aj6<*~<}Q?UfA7k1m7N zv7=bLdUJAO3~UB-Jf8S z6wLGB7}s+&|7q~TF7%xjDa>5F&7=>??df%Ml!-*%p6PX&e0XkZE8CcTs`FMoF@+&2 z<8X{6X%r9mv6u=iuY*-g)77Lm8LDV+mGm-}-5C)Yjz-?gbtKUUr)Jyg>waXK!Tjwe z%$)wNI~okZ6TT`Xd}qq8OJpU}fh4IpF@!hV+`rA3%jBl2Pj74sxm?qLjxHChhTJ-( zlE~01;1Takf1aRwwf;>#BeHB+x1Pc^{wDxLhje`{W48qyQ``L zyD=5g`qe716pFxz&LCf`6HYS#LS-=V^LA4d0*JzqgF3@?WT=!2RTOW1h~=H4DlFW~ z5)kC6Y&Jzh&Q`R888^{Got&*=zv6;Fb3Vi}0+QSdH4H@x#&;RvB)Ji^Po(wG!2Fyv zs=dYFCz{ft4hG>~G6j|BU8qh$=}`5V06en7dnir)m%_5zq$4U{Az!|2*?hG^-bUQP z%KWEqYK*nS{HYo3a}=X+09>XMd`(J!&d1^eZ%TPcjvYo4bu{ryvgmtlqtnV**S7Zx zoBn*QZRd?_4)$cKrO>O50~Q&}Jm%AfSp&AG2qIUmC=%NSzp-NNg{oXtyRIwbyIp9m zJ{I~~T6^QbCe838YTB~T6h(Ky^xxANCKj% z8CU@wP3_(m{HD1>Xg{a5$Jqe~TMDq`cJw$RELO=>B$G#3+winaZ+ok~fpjJcxd~bIoXRME?TR5JG!D-y885oG z=^!dYzLHMO*VUjE?u9M+4LjBmh*-UwK47iB$`^WVN}K>N?YWtRE`VD{*xIr+@n&%! z)T1NKJliztnbJ|$(`fUeqfAhbCDrMAM#lz|w+(T<-Sf;@sD)UH$o7=d@g>&9`=Cz|aND$re-Y%(P7tCk%!i zIWrD&W45atOID!;p5zsXB$C5%V7etTd29hZQ2IngXyZ07su`803#S&ibWDoA^*b{C;b48*AgHbFawr(5jAWS0{|yqI-0>~e^PO$-1N zntq1l*C8{ej!NnN>Wf|SRsM{18@AaooOldg1Uy&0b(=tt!n*upZn|KSQ%4hjK&|GP zasyv;OD1YKyQ!#|q?MwO(HDo=r=E z1aLJ}dx@=H@6I(P8`j8i&u}8!2Tdpxwyv^1$tti&uV_v3oI*Ik%rIDC_ZR>Tp^4dI z>jb}n;oUY*QwLjWi1kX922UhU?t;#~*>eTHnAUV-vS*EegQhD*Rwv8aW}T!J)IKfA z`gk&48RG+OcEpM?<^h1-Ds)cbAhi3)jVz|@ zq&Y=lu=52#AEvmfoS!TmzRbltS`NL)JH$n{!&EGcd_>Yz#w=G&?&=bN7yMb-YJV1q zwm#(UPo=W4gRCiYBng|hqu?ofn`d@0x;2i0{W3N)FWh;Hc0&>VT?yD>) zw)1BJChy*s(^*3uGA$fX37ngvI;}j8S+}?jMJ2q=KQGYp)&BW|dalux34>L?UrDuW z73024rPL_rde+4Pujn>2uW1@ehHB^xlQs1rm9K^;qiBnsby)+?K&WI%OP{Z2WK3-f z285s75~Uyp_~C##OrV4*D+2D^3uV6xg#oohe8+2N*c;1~^AmQ(M_Cx)S@J|*O|CxI zn7bLI52u9cBQV4rap}!oJDir!CUK}6t9sQ%qAc&IYg9;qDCfe${ap@Y6$P8*3uH@g z^yqAo06_j;htnIX*g*6=%1I~Xgd$%$cv(rg_`C3xHMnx{!=;f%rdXSBYJOUZnj23g zsLAS;^m4F*ku%PG}`+i;r@> zyVr900M_)fT%v~Z`ry(?A$sxQtN+O7^%9A$%Fuy4efGh`eTu*@s))B5Hiymp$<=i7 zrS{z~i7^jc{wblcz`bh0_XB6IAdGJ-vHnQ99~3(ldBwn>(f`T6Ugs&XhmAh5t?N_` z?2L(!G{*X(RtIKgK^Sz%%cx(t?wmAEB%0cpKQ>l)9iDA5BenSQ^0nn0U#GaPbZzaN zCBV=)+`Vap7!Q&pQAzm|tm61j95X-HOl@i(yfgh0DnP&hI==y`kwS}YoQr&(zvAci zoBGsEk$U5{QK&cM6PFvs6^xdzbJ?Or=Z_=mv*8gmqB+rWb}bzttYVnU?wdy+H|Fei zYRh#`$BIQuS1dlia`UvDt*aI-IKS)F>Dh;kN&1Q>X5o{^KN;T?Hwx@>u>tKYHfBD& zzTh_lVCpQ-4+nOq$i-F|<>x9&n8I{N-SJC|Z9Nt|7DO6I{()8f$w0@uC!it_i$`0? zK-7#gGq4{v@E4^dF0>CGve;P@B>F|ITN89Xasq+kPtT4U47E{I0{7sH4lYqOqfQ5&8I->ffu<&CD+$i%dOc{Jw&537%N&i z7F4?<#LKXYREazXt7!TX@wMH}$<&&7sxmorG%*TcwDXGPZg;Xj`TR*E@99c-RyJXV z-BO&NeSs8oqAI;}67%DaL6GHp9_znHxc?-9QLX{iy_`vLReAz` zoh@cM=+KvHqFs7~N7M;PLBF9BWi_IS;EY7%+d#!DPU;#v#N4@+KFlx=DaI9x{0rkU zR5m}`1BIq$l#_fh0bIW(8o4Q?wPdQ-JLCkykEBs5TBp>Fl=KPL zM}BB^Z6^haM&B>d+LGrF2lHGa_jXdaiD$4H6jY=T?OvqlXLp1AztP#NZqj!tX}#nD|TB7cyGhq59tbmv{N&c9W!RxJGP?4u(C4wE)4@v`z1V6Wey8M>B`$ zmdSI$IQ|M&L0jlw$kaPHq7y=8jg7${29dAmG*pBxw1mNieyl86&=A1wnK&jKeUQ0! zo#2-~sbk2GCO&xN%sIh#Y1mLs1}ZNwe&$kXD7ZX%AC4CZU7HsCwbOMP9;Qt+I0aIH znQ07O6^d&PwgnMboDd7xj+H8IkcHXE3qeB|KzYfu+WWctEwzR*ptQIg3gq44~9^DfO4FcGg2oqt=lgH1n}SDPTYIjr9lo zB?%f{cp1FoNA`Ik?Pm0DpJB++$hY|*RwVrTLz^Z${a_jAlhNP%<}ZaChkbXjhL2ed zuUie;k~i93I-?ogm=TTq#4<7Y!@k0{vM_Mk4we65;ZHl@&A<@%DD|EQXJaUfmm$5N zZ0KXtsPjM5B44tK{|^;^PD47CWc7Dh+CkFB$*M<*+tn@Az!FTR^LAoF!{2D1e?V5g zwDX0Y(T3HfB%Q*EMh@|PTIBaiRk2Y(LHbP3{cm05U#*wlC8r-8MvQG%;O~bgeKxG) z6@OJ^Bg31f78c?k`>Yh27LJ3;Ej*nmnBL|YZe*WnqK7gIT3*}5Fr3poovTlv|q5gb*y z#n=!`P0XTn3g~p#8jP5>gvGzo#nUK>51g{|P=h!r**F7nCgQftBO&K)g@7LcSo*kE?xIa{na1hlMB#?Jj(w04s41pm*L2lO++o_Tk zzo*YxkxJ%Fr}V___}mYfyHc^fsy7CAV6xHrtk;ob8+?SH^>9`g4iu9RRjo`5o6uUx zWRwQ`w4w5!VMf=>tp@KJ(8) zp)f`yy;S>Ap>gzpx;JR2wB%7&p8%aQFFvxEf&{e?RmqZ!VJZU{+K)Ch&TsK;Xo6@% zET;b4NELHw_DbDI9dF1oNz9UVU(6;f)rWUizwo$^hfCsa`7(xKW3bn>gNMp+n^ z*sqM%7e&#+(38PS2y(M)h!sP5LDlPxnrtiIL}Ss&zA^5}cr3HAJ{emA5M)zEw#jRQUUQaz&xQb;RcTkJd z546Zy0z;nTBjm@fq6y%Dt1=l9QU>P17RbxFp2>-xd)bG#1Kk}Z;R09xEG&X*{ zC4$doFP8JGTi-TMd5Z0G1@Wc>fi7@Rbe%f_qDLs4pJG4Lmholn;9&>8Op#FKwl(^D z_xk;xMt|yBAWtp7Z*>{okqktNe>Ofmi{gykH4Uu$oayNpFLV8N-<0ABRO=D81SGge z82t00QcnP|(X{!Z>T6tYyeXIVkR^U-W3ne!m6#u!4&2Ef#@s#1=_|La%lR+0*|x?r zn>RmU#Gt4+gD_rN2$X;RkL*vfP!s(Rm^59h*`~JJ4%?Z`XX!cn!gOr#L+H*{G9hga zZF_m-{VjI7?h5sM+ z*05uC3i~3#S?PPoSmJg_SgAfA35!U#D0BiMq4Ecz%`Rkzc?Q$%*4}~aO%Z9YW|sCA znx2?wYxxs(=KVhAXn?|ibVBE- ze-;2Hcty?_)UwXhxs*5cDMkaz^34>aOg3|A-6ho)g=~NqRZyRC<`cztJ!-2!Va7^d z`GsxZ_mh^+Gi7*QU_#IEbgE^dUNF{Z2O+mBBo%Q;%eK#>VRZ7mQJe8d8MYCOEj&7( zmkJmwFPs=3ng#?)`{96Ql2Ng;xLP8s9kt&F>2?m>z_tZL{RC@SIq$z^E$3h!_pwyd zy%G?WDo%lqn;Y8=XsAXyK!Rec*s*X?Zgtng0`4I>&74sAR%sf}!V%kotyT>OC)!hSW zIB(rt#I}V(6I}aV<{f+L4*Rnsp1M8VCYv4vD_NOBzf0dMC91P)ZYNI{BP@p)wkMLe zCwhI(q;j&?EUT^Nu&gn+Fquv3zZx)Ll(+f(jkt8*M*o*e^|sl+_HDKY0u!V06O^+~ zt7B5!J~)asTeWEMvPDHM`$8qV=&scxxQCT;>paAHJ-$jA?_RKMbt$L7;NkasFenQm zCj!@*|GN0XD4^Ta7mMG4HmSwK_iF3QkuKc4uDdhK!UlgPkF@nw5ti ze)RqUh)2Zr9E4I&TJYLM9#2QE{RTzhxsg7^hD4fqGVeLwr zNS4m-2OmaCA)}$_2UQ)dfp|zVwD+KJ1W86Qii#2dag`p9KmGfY;7lI2@*oPkiJ?Ib zCV{GJyyRwo6b?_vL5HU~|3Gf#QFF;`72Cvm@;H0u?vsqvX6Fem(WQ{%%sXX|+^bo)9|vb*|k3Vo|2(9BCGW^VR* zi~0SV_G^&FL?h$P0U?Tn%g26*IMGNw09*>tV6z zyD7WgO9T?=>r_saf;Z#_1$Yj+H(@!T#oDKE$d;UFQ9y*^TX!LH^wq-H}oJ57TNk6^MviM^}mu zJAzrK%f;x?rz#PM8Aq7~O!wEdgziN!!ORF)^MkgnCFGkklkxACUT4e?X zMeB3qGU<#^b>uQ2>EY4zIpRcebI4~6!$c0XDL;u6EuY!u#Y1ggbVi%8p*GE-OZHmz zWUx&eptX4uZDPjksT0@6Y?!p2_b&~DX-EQ=hNybxC$v)y`@N2?*xGQbQR8B3sPD4q zQBpt71rhmQW}b^{KzE!Z^A8cX{pNUeYs#e)Bf0mC8 z*yO_p7Wd8V^q8O(|2czqKj`5J>oWU*=q7zMxf6`+|RzabM4 zqmh0G4KyvQ-Gbhk+*@^v5DmRDXlX5M@(=5>4PQQ3wSMs1Shu%pHj98*7@zrqZh0Q> z>b4MX|3*0q$@?}w^VvgFDGWBhmXFy?y=8ASnz5~6b4YZ|Ey}kj^-XtA&O-{Lh`5@% zsh^%Qo1Mz6*!|FH62Zw#hmIb+PW4x~&Fx-AllAN1Wi}?7IkI>Gy54A8duWk@0cYA~ z0v06s>4)N25*vY0F6mA-+_q$JoMmp$1NHT6*@)X#x22ZO$TN*m5}BQjbSSLEeeTC} zgpDmsHecF1T*WOHz75YeaJ($wQa+LA;sW#N~M zSnA%`?vygnS*eJ30tTW7KB>X)6*1}d)I;U?NzxY*1derW_Xo0R4(#wOSrTw8vZLvh zRL|XA&Gj!O>!-l%LtNDuKM{08r5+(;O;)OST?VcVFK(|0jOo_^SJ9f1NxZjmLQ#r3B})>P_6HhD zW(WK5X$H;SuLi=3t++l48nzO-wkbR}<0WA+M8&2i?n?0TsTdL9MNH$fRL_75t@T!x z2aosncZTmQIg^Z1)(XIhuA~Gbro$|)gkIPnpGQI7Ng>Zo!}F;B9Kkiv@orwBm%6_| zjO`GJiSTT@5Wd_3S${dVdaI(ZbQ*tHu|h`@6NR=iaCyio!@iFaxEve#rbbXwrm|M zMz|l^a+Ly@wVgMp1ASZ7J<4{w7cA{+Bcw*jrAu=DpI=Yd5&o40h+7NyF?U3wizRba zCLT@M!*&XFZ*$pxP=El>=7oKYfGg=1?XjOr0JS@EW{J85N>C--uSZCVzE>luwU!eR zE4Sc|!P{rgdcMzRDt2_9{{*Mc*12@Wd9^2lxkgi2*MiYhMy~5e(I(kO(dHdXN4T@x z22i|XgxjWlu8tL*=fChd%(il^;@ylqhJ{O)kDQ6y)JKtNO$nsW?k{K^TeN27^1;h} z&kY)!rW_%#h1U~$)?^9K~N3RiY? zk31b@8qIX9TC{w@(iICw)2ucoIAP?bM}_#v1Rfn#Wuw4Vop+4}3ylhijt)7lUeUQ= z@o=5@Z`6gfumWvNk<)fMmVqYFN8RHQ@!&G_ds$I0U6DX=mg%@&EF`Y)r=7X8Tp@Ap zW5#2W8IE(_Jd-6V=fMMUFwEPlXFwWt!WM0VnQCQwkSqlUV>)%+badq}Kn?K>poMX+ zKI7e&ULkZwTIVK>Nt<7kLX=C1H+I+8KL^=d;}(=9CVVl2Q}h-1&uEy?8OQ=!jI=+tIKs7vF@-{W7slzXhuh8Pmn@ zFk<{xL`}0@0xb_CTMb6%`2An>YXoypo=c_@DLV4<1??1Q@yt$rt<%gu&g{>BEA=OCaFB|}Q@QxGWG<C+r zt<5c8+t!g&%)z#$T}xKqab2-v`OwGCu8!p^bBk9k;PA(Sp(7YSZxz(Ne8G@F^z&9@ z{V9=;pSO}Foaq=MeQ%(aRb6*18jPbM(db+64aq@NmJw8ht>FF~Iwn@+(ec8ASDzlN z@n>(GCA@pls$6l|(nTw}!aqO%gq%@Z$BM;E2br!n+_#PugG}Qat?RTPN4Ymz+Z%+U z(3g? z6vIZ_>65<{Zl?%GKw+Q8A?ahqGz$%yFFQ#q2SJ`t$SF=3Pxra?1Mvjf`#3&+Dmm*`8LG?N-saG`{4=7c^T~u#?cs>m zZqVvPbQUwsE7Y6p%ub(${6^eIXa;3RnlLB++h$|%q8yvq^ssjvyd_iBtV6H1f}MXGUa`J^zSjT%dHe z$IgvEeT;$W$cQvC%)ROVKZ;9HEox?3z%7y~0tLdcnvp_Q%`Gw?Q)UKh(`1@U<ZVYlRNc+(^G+7BQK3=y(DHqZFE5?g$=rTpY%4Ck|P8S!~EcYjvp9 zmD~;dkfMVLd5pua=w%&$6lUniK_4u_P9xMYNy>x2LY+VOPwfW>NSWw1E%Bz9ubP{$ zRd+ykK{U^s1h*DqlMb^)_#XMR$K*~%1~_fLaLf-FqI|@iY?jkDZ`E1}e8^C_PZeM? zcEyVbHp-ITYgQ610Cni(Yf;M3vF=gbh)0s-0p?*Wad9;3{)hGh_l%EL89FiR3tpxsv5K2 z8J}FGrhD%=zbCk_h{o(7jQ6aT*NdFg-{B6<1YGXp8Vc>>lY5VoNW**8=CPyMp_9$H zW-E$K{xZ9`%(>$@BiiA0u?ArdKt>M4G4(lW__C)UW&4&auY)3I}d?y3f@Z#&#tM=G=Owi4pn@fDj3lduX0t;=PB zpPQf9ooBca;uZqA48%LRY9kdry6Jmnp+3=V_1@t;_HF&q)&k>QrG2-~!$i?fbN|7G z1jVGt`>@JXrZyx&URbvP6r3CgvOfMd(WXy|e37}dTg&nhPCKqKsa#NG_%TbI0t_1T z$Ksig+$~u>8u`LK;!&q?c}Qf;FTGKzA!Lx?i&ihn!S*j`dn4@j>9s9d-mz+Jt5yAm z*~I#w<%zG-mbYa7nu zzG1lVRod^cm0bP#a3!((9`mT>M6&0{O#gW8Sfi2VKgm1GcZ^A9v+t2Rnfzsp>Cm>e zW$OdIF~JrULcya*Y}XH~Yj_;ofuEUTOl>=5cm!Gk-#bm%>Kb7vxfoIbsKdK*f8Lfz zI-g-nbXJ=MQ5cu5XzR==w87B693kt#s`rv1yHsKV|n3T zSIpkO!87e5NtLmdV<#|{Gn3^^QbLFhGMB=DC<1gb**{No(yE*yprUM)H^l5_?@N^! zDhC3L}6XLU5gHIXXV5#PRIEg4UU1?oG9OlG;Z$VFtYGz1%yW5a_ z#60zh1n_)k=6GhS7bO0F+P(xlsv>K<`!+i|K^jF(l#7i9jS@6!P>@|fKtMo1h!Bzx zVu&F&Z4$$#fP#XeqN1XJiYtyQjymFsii$ICeP1X)TvFjL3X5blTa>v*%mJe!78E5u!k+mYtWf{q*395P$aoW6OXR<2 zQF{cN177}b%>n3zL==Tf4GpEg( z6?7B-hrFxbc7HzuY~A}W@|DB}+yAaMO!O6RB2JQD}2JC6G{wr%s zP5g{t3XeMd_cv-+fdMRc%e+pqCbK59mexyP-$zbv<`FFJH$zA?r$a(WBW{`WcWpSl zaEW&ZFLtJ0|DhV$RYKD`5Ry<9+d;d-uH!rq5`Xbz15frJ`H z`ZV~A(*AlLvhd!>KOnz$a8HI@m>b?fOF1bj#1B4C!28q(w_&7%zJr#VVvuwIj_reH z#u~&zJ-Uawu43QC{r>5W0LBmYLOSs{F(xb^N!Wvh7mmt_NX)@Prwvf6<1r%BW4oQ#eAL) z2?yx<_)9yT_vF8{h7x-g*dimkeoZVNYCd)~Ws^k_i`_Ei$+BS4t+dr03E`MuLeZnH zqjjNd_NPUGq+|VrOaVWKqiE-xKKsn&B0p%`ayT5z$CV$gBG_U|t%sN)3#%{ys%&s7 z?g3gUKjMDjo|LmdLS%X2Ej6g{dp7)t=&|%Lo3e<{W})rj*;_=Eb%ZS?wHK}*=@|JD zS9oJmoh-p)@E0Oh3Ojel5mMZ|0KZuV(m9(e8MQ{<{!}xnhZtZYUK132o(MJumU|kcfv!Lw)q>V|Aeo5t&@kMP@8e~>fdhk3eQ<*vOgnw+n|A*D zt9o_GX)Z3b&7Cr{s63ai?43R{`7Y1g|3Nf}uN(fmm23Ztbq&dBqxh!tvRbN~5B8AC z*(`#kt;G=PI^TYJ{p|gpGleVtiZBA4^*^{B+3q4t&V+8={)cxY|3-w!`1&^`4?0c- zL+5bG7_FTKVHEZXxlNPBb>O>5%&hQ#i|}Suuv&8qa*lUh+za4 zGS^Q-N;w*zHXXvAFFj5xnH49Gq#FI1ad{N>oUk0MnZasm%`6=KOg%r}$XbuBiAZ+IzHmvbR`A0~?K`R(AK{OxU0tBs%JYiSD zt?+|$zQSa}c#@aU(vG6gI=H3VTAa9#$hDl#mvnP;JtE3)+*lvq0m6&YvaAG?`kD_R!m}=o8r}&(I zXvCN+rDMEA!@+C&a167dY!rlno{q4?$JzL(Ct}YH=h24Dd3@J9_Gf?>KxnX&*-I1% zE`;3AXUAd{P$jVAq6^H)%qVgNW0NfE8;fY~GFXM>82L%_KzSoEc_Gtc*|d|C_KA>v z8V#v=WLh{@LyrB(kqGDI^Q6lz>M${(+5sPHnIR0WTGDhTO-08jz&;WHAK01+#iz5p z<%Cxjj--R3THuH(){^?%li6qM-Jj3G+Q^xh(L|{*XXr8cbR8ZRUkarT$|lC6WEF*| zrNW1TwPDJgV^-4EkCrg%eNUeDF9uCkzt=t=_Eq z+VtK6ZJ;y$;@S+}p{yH~DOa)NQI^X4J{5=MIzf)L@xpL^kA5a;g4Kwo?b1?HL-OgAO za4zQXKI63mv{{Qc@YHZhnuouoa$yN@5D_j4XD)(2&YWsDl6b&@+OQb63|Hl8Ml{2m z25?Zw*fPwgPD#1ZtOy-^RH!@s>E!TYy-Io=?H6u|3#z!f<*mb@0{hV9bc4K0=}De= zpn8%gxe!8K*rZ2yhqH?hPZ+s_j$TD&=gqZUQQvAj+!ukQdoNNgtI2;2jC8em!%R8= z5+~uHE8FUQ$NAJ-W^kbw@^G=c`;6VC%|UNK&d8CpD4>j-kY5|abVw|nyRJqECdUxY zj~GKvS4d0R+%B^jw01cY7qT3Mtjx&YMPHkTv$A%@*l2^I$0<~ORI(gL18*{DtYAI) zak3d;9-M`iN46Nw?G}V0>HISOV#9HB47+N`l#k^%vK=??9?|7%c96{;*~GRC+Uiw9 z)tw%gtHzXCPWR8Rqtz@psP0^pI;sr5BzF69oy>#R!?2A%=?f$Wq;uo61Q&!xHQ+e) z%R-1TEK0Z;R~ULE=C`3{?-^M!8!SIWEZ2xFriP9q!&&ERa+i6J)%*T-IP!sqs`WG* zny8DIMaDK*Yv{e$yZtx5L$+gS$YN??RJVb#Y@Tl1t=e}U{JaS zo}ny_x7X0vVIq$mdNx4~!HhxzI}5Ntk(Qb9pCl#Yk~>rtf^_Ii&G;Zl!0DZE!6+T; zY@eWN%#J~gYZ0EEvqwI>=-5SC85F}A5@DLh)?+wo`D**N;pIKJx6JOS{#{TfTZES% zjb@Lk8SN;cFCW4WorMw;_`3t%aG~k-~v}c-g5iIXZB|mFn@~8bG8|G2&9?Jv!kD8FXb_i4P z)LGLKQ;RC5rQbVuL-1#d+b zVV;C-CgKE^aUh1R7`cH~Jps{dcf^vTqpU|Ahmh#x=oFNm-FeUJlctQ9EjzD zv|lkJGiT(g!82IJyBcRavT3k22~|3n1jNsvssNd`Cyu=-CQ;K2)`8p(hocq;Z%>B8 ziHumsVUHsKhk_XsOU`h5;^ELTuv43?mKeF?#M8s+K-=3+fgv{|vJ*N>??DEcU48yuvjnuL(7$=lkeFQA0`Is>}*mMWy zOl`JIb&6p^&VP&Mm1RxulZS?g`>!%TiG5OhGO)P3sAId4*)X7yu0UFQtMJDeIS=*e z`H(bOKFuuW)-Dg>rYExWI)JoCXUx=|Mu3Dj|R9~wN)FeOosP#LJa8M)^}lpzY@`SXk#I(889m}7mP zQIOx$dEI1-@ZD-8zRII|L23!Ilovzp6W+cZZKOR4Y)tpeuCrd6&V^LdsW7`lG>nl| z1IEi?c+p|FQ=F%t4x@-^iJvsAO&MZR#Yl%{+Ow&P=Jl#y5+kuua3K4ZiHSa&?#?0W zRH5{Zg{z`G)P5s-W!|zyoz9(|GyUAzS!x2~yvjz7qh4fh5;JIaM_NG0J$}n@r*mZ` z6sTs>U(`X%jMaaWksaS8=7juPK%KoW!(QRH?C>A+5+N5+MC;DsBpH)U>6@ zsfC*mtv3-%qHTkRiGBPqgrz!zjO$uUwG&zZoqoHx%c86RH)7p~pQ^b)^$0lMpl>J&)#0A}Vx_#)taZ7ELrq?mEQx&Q6;Dass zw4|>!8UvK96Cw-dVQ7=nE4$Z>oDCT(JFU?+%j<#Zc#(D@w&=nyj8>aRK7wh5n8(=# z=uwcH%lQUiWEc*l#+O_=v=LqRo>=$@PUePZ;Izwd3s!^9u3t0%7ZxR{S}ANv*YBs5 z3$`R!k~&0Lq{K3!bX6{l!gLOC^DxvPashy(X5eHC5;^!t%LOy!sN!rWQhVbYnVv?5 z_uaQ6zEc=L4+uk#qVI8lGYHr|+_ED88JU@FGcr4nUFyPpQNcsU*0*-1vrEB7mY7x?t2 zD$Xc9C#ml}Ykw_D9Q?L8w=25d2)few*uEDL%@X~67;of;0z;GD3o{R=bL(NjK)FJ} z&F85CRML52Qf@PF_fVhBKMi0#x_Bne{v|UT>N4u^Vc2sTlQ9roB=2^5hX)6 zA7H5+8snxi9mIx7P~^r$(E#$o@Pk4+gEu0lCFNZ7)p zY;GoJ_R=*N^MejhbY>4MaA90>$zJadzyq42WYqq=O7Mm)1nlOo}c9mi)w zrl4&3`f)lG6O|Y9z+xya#`5d~P)C;L4O=f(Js(;dWbV^s{>a5?f7CUs8Ya&fF?`|q z(wQr;{}@HY?B;IS6Kw!D!D7(>9rVL%{gLS)L(5;1z3J#nnqgNEG(mLDIe9DOe4;+l zEb41vBE$g#@@P1Z!Rt_2FJlHX@9?GP{=k#SEnT9|PD-xL8I5tJDMctiJ5L*VLF?1~! z7L(RYiXj=$ifO7Mi%v<0(B(T+X+Aa+<;lLBb8Iq!s=-Z{?!m&|8lhUNK6p>9wBXD#%1z!eNb6QA|_u5u+FJL#_Rq_!bw<6N3 z`P0>OnG&B7mj!-l5ep9X^KPUJ**XiFtK2t*E0^dbSuO)iW6&fw?7wZ%IP!WTPlRQ; zwFO61)6#TQzqTY*+M+n}9D4`jy$h{|J`BYk>qDHO{{po^>Oy0oYmtto8r%Uwlm>q^ z^uScc;0akYW@H8Xejj zUzLQokpnVeKr6O|onGX78t!By-VP?mu6f~DkjS5y-G!3K815!jd6G4Z0?5ToxT@(o zveBZbVBiFI^O2FVo9{oaL>6=QcfdLwGRnS`A$o3BPS#Ac6^y20^p$L`Xz(A zf{20(0s{IiW=alcT?1d(91M14+0(w1#oW29)MJ&knqcc9&gR{s$~TM~*Z@Y82dFk< z28^L0Gb|)84bIN$sp0_;F3Gmx95NB07$D2f4iC&q(0#UNKm@Y^k2D_A;-?aK2a#Cf zX(*HkpNp1*M+LpN4)gs1kf}6@mYItOrm9G0@pm?N9}jy=ce2s(4cOEPeNG|}bqvxW z9L^f~lUzhKGE4g8?%Bu$6fG~L<1;jy3DFq!9H=WDAZKISVuPuGkm-D*Bdb$9MMws0 z7$vx=7jyfb0ildq$7}yOgJlqCi5f{)pCb}dqRSUp7L{-f^|8cc z$>8CloV$8@_j6|BqAZwt=op#DaqHKS)SBDVmm{f) z(4N+j?+m^*M|ugK*rwH$;I~aUAuV&DJid5|Y)2?Pu8RNRh-FbIO{Hfq?z)Mso_)IF zY)$FCk3w}@kt-AB`~|y-smVi{vqVQF@eQ{q z&B|E>TSRXvYU=Wlg;d`)%OQtoY(ev>c@Qq>Jm@N4(!L z;2z=IhX2fy@LBgC-s3gY6P$YY@zRbTW3Y$*nGMQ(Y;AkGI_d;Wzdq85Mk~lN(vMM< zn(g+bdHC^+{4H2k$J23ie^zWG1GmX+ITmbYQ-OCNtq44X!}&S#r5$}Ctup%+a8e!4 zr$_tnwhRflyl3_X5JlzhKq8&zJxA92hKLSCxa{l?z&iS>W+=G)z|kqZ3P;?m$Qdw` zmKvbrqSMKzOV^E7hssUob&u(jACuFHXsrk|sy^V4RllsoIg5Mh?&*Um-&>2kLqwupVpDD&I&JtjYIya5tdhC(2c_#P+TB}KplA{;WZ=& zrqj)0C_LJ^6opcR(%^G$^E%>!QM#5M-iVj%*_(JV0T$lUFpe2n3Og7Aa3w;UgIvr- zcR4+Su02JkO@m!}MNX0qO4<~@qUKPJREJ|^lIIVk(UMY`GpS>D+|G@T08~4OX4^bG zU{?2qtbd|EX#?fHv^1M%IISLcva4cD%sS*wB)uNf0CG#-9N8`bsNZUcg zFqoO%{r%-|B8ywn0*E#=@ zJi61zVOXC>NZ!#7N7N;5*JNHpSwS(c07ZE6 z-g0SLXk*J^3Zkux)aMr>c2u0!s5qHO?S2$RCBH&-_aOP{D^zb{H-F}uoGM6J)jwyx zu?XNQMsVFL<5!e4@lOXbb61Xe>rSyQQquDw(@@8G`jschcdZA{K*a78z{BvvCP&)e z|I*y>P1%q*h`a+>IyzfyinFhtIk*qa@p))KJ3`-b%@k04kKt>4_lf+AD-+aj8ehdYeM`GbYT5CQEMTN_ zYd;J{7K4o#m10jS&pc`sJwY3PP>c}pNJVdo5U&u~y(z_b^}@f<1AO<6&`qc@S`Ua1 zS#+Zs6cxN?l3yvmLIU=tc|m+ddH1H}Ja~mH>`k-IctsKRrcNKPkcz!&xgB0n5WT5l z;uTf7H(8bNiZbp^cPil(Y3xm!TTdGH^(4g!A5njM(<&XjqLTEcArW5D0D6-uidX2O zy-9DuE80SD66$zGAHu7V@QSXZH}zw9MVsnPYbfywiQAj{alE2F_NFYuEAp&2H@a#ulehEkCg}MqPG_{MoY*+XAXw_-adHteQ-lIUt&)4UugXLw2 zy2nQoRR+Qw3IDEEOb2z-!}z;X{a(XV3jM}M3%x5TvO@0~c`P+@mXy%^Y{8!9!jwY% z3C!Z$s)B8w zLM+xziq11S-MWeA9EV9zI@o1=+@Y9(ilK+E?_a7POSv@PocHB@^Y># zvjncoBTf>-Q~f2hFF`{7k@6B(_xNbso7fU>1!OnC{}kx5Vo38@Hb2aEl$C2oID6KoiXF0^DJ+lQcRX&=wW_u zt6y?GHotGw&+<4q++jxxF>7bZeiPM?uD!FL(OjW^N}9dR?^*Rb)&k*aem|?9W=Xwp z-Hwp}sp6Zie)^~v?mGQASc2E{dtd$fr|>&i89X6{Uy=ItPV)2heXaTha-p`I%BmLr zhS{Z!O)-p~eh`pq;L zE1RC0@xzr4J$!v%tbUe{sGmr)cpBz;#RU0MRYl?F1T>+upsvxj8BWTRtzOjb-E zjhi06zF)6?RxSt+>f&jbZE4~#%wDue6TdO?03V6jM#uOlQH-UTpuXa7QNMJ2e4vY#o&{f2+zqver&me=Jj{4C8RWrK0Pz(aSd-$->sX4hCb80J^S{OB-c-m6rx%7QfR z)XGxeFm>KQC1iBQ_7%@w0k7WIM5jEUb7?=pm<&Swnri%v60gwniW#c9()ef@x*4!@ zCja$rmd7A|z|<$s_59#|zs%d(kY;p{5YKBa&+*YxZw!SfWum3tAK8IAicgW(m}aT> zEIV2FlzN{UO<(yOq)Lg3+|a;iVrD~3onlM|4vfZY8)6<*jOjQ7qZJ+!$FW#ko(hf0 z8u!3xr3YoO9;Q$+)~*p(UBkH6C}ytG84o&RDV3E$8D*U;o{u?9g$JdpU$i2?{6jI? z1d;YQ`dkU%Yq-5f$jf?llYX~CLDtVdp_m%QAYG?0J03)velu*oR^r;-u&xS)eD%9q zu`jB7Jo0pdQZ&qLt#I=lhSI>I-_iL|F~%S1JW$*?gwZ+c6d@4QgKAd~jQ5)rbCfpn zDba#R)T7u6B6H;F;(TMG(EC9iBs;x(2%6Myy*x=gQ^_ThD?chGSLx8h{0`NIoUE4^ zucxVBpu;6j<>NQ z${nV8q4=o^jr^zsKl07^KT0tRh#QGztH<%El?t(cZU2XLJzPIgq#XTcUAMT`L0}`etPuMq8%e;V!O1Y!oCyh2FXR z2(U*$Hqfsk2|Gx!FEqejQzh8@mA{hcgvcbuPKd<0o=R& zX-gFeKO7{_KWfJt2?PFn$fr;TZJbX!{z_Q4FY$H~vc$sx1P`tQB^t)p=j-Rl%QNam zy`ipvUDj5vMLE*X>L0!P^asDq>R0OcE5*^e6kn;s95F|*sro!Ck5a|-aC9nYER1w| zcku%xd?6EBt-`yTV$okQK z?MMRELY?&4Clsnt%+cz`7zAbkaTsR3Vn%A5u!q88Oq2>8Uq7ytFoFJ{dIoE-GJdx- zOubsL+Qm~kMJEv~w_l67s7R(mMdnId@ zl^%))V$b8&X#Et6&q`l{gjTJU7puRJ0hsHcU=@zvPi_#5Mgv|dy$c$&xeIO-%$@-c z-hUckR@@|*pscFM=EWa<@d~wECohB54SjmI@yZCreB&@xr2W(6L!2M@Zu!{vW&x>4 zpu9#MLRPz&gK~LIv1d5CaSu&^UA}(nb&I@Q5Tr9Qj`OS1<=0cU3g%P|gEU~=Ar9lK z<89(z?&y?wi;1xk?{j{@+pxFXE?ATMG*;!NS!Gs^APpVv5bO!^pn5aS;`a61DT?Xk zFtujNcWJm-G2HvGE!&G}qDS_3&{7%)K;(4gci|W%E z;`NiqB7VTS9;EY{KT4Q;T$mEf4HB-z<=aVj3kKV>`A7Bk27**_ORA&{w>*C09>Hvu z2lB1lyO^-$Q!UvpZx(Ck^QObbWo&@}LU?!)Rh#=2TcKo9k6^O(E@^L8eiX_$&O$eKjlW5X8m zj($G>4Tav)f!FiuraFJG=8o}l%M;=`+3{N{ZK%|H%rep!NT}IU@^Y!ViC!5o0hw)> zD-@%wAZ=A{?#D1KHVJ{-T%2)C+;VDM9^Lh{U}jO2`afyh4}0 zCNJNsn=st@0%K)4>LDb4fBKqoAsspfQj-M)zZ30PUUjBChM;#{a zy-k!*35?F%Hv}_F=~7=jo-mMMhWSb{${x!PbX=T12lEHPO+_lL|{w;LA)3_9 zTv-#YofMtdL%+5BR$d+q(kIOpJsBD==UF)x6|qah`1*Y8Kk|Yqz(1-t4afdnRhV6+ z80vSS^VaKkA5+Z8fDU>_arpXe&mHpept_09N(C9_X~kH5K;LZaxP1FkF-1xTJaacl zGhIe!)K2lt3oytraTsP{8jRJ?KPjf0(xHci|3LkMG$(dTbKVaUP^%Z!VUZ0OKv*39 zkAey2aS|?$E$WvpKmMbbLLtNQ0(N$GSsbVSB%UU-$mPqY&|LLfr*4w3{i%GD`j5^( zi{}c5sUn?+UA}(XpqO@H`9O4bHo!dni};mj7~}`rBN8Y<6*4nu)UQYJ$!w?N&PmdoARC;MpE9Fh9r`F#n8j}xL*AV)em*i<1ua>_0aP3^@$a@ z{C2dufkhJ$htWGy4P%!(Of8QQg4Gv6o!F$<4vM9RukUZDU#_|l*LaJ|FfDLy4E?J4 zFZD@v-ed*!&~I}TGu+9axR~b?oWv3|XqzwWA(*L3XCU&}3f=h1QDef}0)_1{ zft}x+QPQU)FAUo{LqN%SdX_*>Y?%LB6|3Dth-}NRD#+6Cf;Pk_Tp9`^bGhFu3>oGk zRT={sR=b-Fds8vnHJ#M1Ilq$R!*i+>PjGp`^BC;1xct2(eROy({V`hlf>(HQuSdn=Qe3ze+J{HLiisGv*LK)ojh<=4x>s znFqQa%a2wEO8jprUD8R>ccCpx^C*X??W=wtDmGXTTg|#qHJ5%h+aGlOqIVMKsRxBw z0-J8#+n4x0bMe)2#@Dg&vrgh>F(1^AuAL>!2p2|UK_tF@t5(cHhpF{Il3j-RK{4xu z9O_~fwqgs&FxSV#GhM!JZUW}(CSWqVNL)evs@<)A)hgyTm#&K4+M|E4&c^K9+ch**KQH*x;NLLxg z*)XC}tLBw1L7b2F5qe=)UjuuB(R-|)V&nmO72L#ZwFpIS*vI<|=mtlx3Vkn4;f&%( zGPdwU!9L;WR+23kW#oOYNecNC06$-it~$&G52dnh0FB3IL@3m8h!7g8Zs;te_VCa6 zo2nQc-hqzVxxLp6>h`A;oFw!fln1b;KW`!~*Q+42;(zBHxMy&6eJwnoxD*P4d_jeb* z+)V&j9OWY={04{FJwFZ{C77UIRJ(d%bjlPn(a}lJc%NN8^xIR4`Oaa=MW&QXkAn$y z=xBrZuUI03y!g{84f!l{vqDx6%0~+(xgTCk)Z$R8@E39?dpc*e{WiS`m`fG2s-*-fzfTse~^uBl3w`a|RzyL|n&Ofj_%Q|4Cumg%=< zy6C+$DbLuxL54Ks9M5Uha>J~p#pw9Nlkv4Y&Z@2DFDw%Di^mPWmS-kwrB)a}{ zi=C~ZEb=GrH_AeW*-;{xpe<8A3$s>lj-Mu&_KxQ=?l#J>)sXn1v{@S-K3%ZdMUX6~ zc?0yFte#e|u2LaeO^k<&$|OwCCnsp19y4K>{4)geHh&e{%CikHdzTC5NXKV+$$wD^gbYPC5b?KK+b5KzCOQ92;ocBP4;?JNOl=!-r0irljET>atOy>>G(XlMm*ne zbSk~8IMOlvcPwaHUbU?i>^F)n!p>3{mHXl0-LG*Q_7}w_@rO);3glL|2krUdbA;{) z$3rbDs5neMZBxt?#n8k2j<1vOrc05ZPk->cP5mZ|6XlR#yI2BQYP`0XE#W)K0~i(Z z9z)B?XliA3@Eid}9oFg;TQTA?TS6Ljz(bF@0zS;~u)9saC=JH=T&9>mxVRHMc29Wa zl(n#=1#wP8rrrO9LM zV=s`ngE40vgkAl$o{JR|(5c<6kNre3qg`CpSQ{Y@U%wr{SmK%;U}!waF2g*an719K z(pyFhC5_)!ED<_tLPB0wVBftEGCCVB6wG2rC(gPxwMN7Ayht$19i|%70z5Qxm=_ci z$Ro1nNC2a=?^2Og9%-9r&qFrz#B{YfslI218!{A?@7f^O#J(`TA_JO!&G< z9$dGVYCajg+bs;feWzl~j!2&7*ZK;H_Y4i6>=#!*vsESg-JpKS z`nb`2Nd3&69PVZH+b2bQAE{p|{r^YxYpvn>BM*#z@4z&E*=hW` ztDlV_hem_EK1uzuQlx#F`gKa-w@Cfkr|`Q<{q{)Vccc3KA%)*PX~Jz(zr9n0dqw>u z#|2>J@T&UFN(yIf=)|ie#Et4VFp62#YG^LC7`W&+qw}$1Ef2}t{6Z^*&OsU`+3z6r zYm>t7aP`Yb;n!3BTBPvnmxksr^-I-uHlzvnnEIt^JFlnl`$GMa%f(lo!&leO7vwJn zd*W$%7gJ2Cws)NRCCeY9U7&u4Xk5@Wpu32}Fbfo8>x+OXGK|H4dx|*B??v@HLgS!^ z`Td}NqP5bVpi1XA;~Gi#!70LBs(z{3)ZOaWIVqg4?=P$0k?O|0aYe(lgs+u&lVzjT z_3rA|!-YpjQ3thaDE*aA!_ro!*c`>u!`Jr}>SuXU9Gzok1eg9N6w^w>(8Fjym&Wg9 z^-Co;{;7Vck5be>gAI)2Vx-8etn z6qAmhC2JbzXS-rj@niL3^;)5GyrzpDzP@i&zkAe8b68h5Nb`~#B>Yr|iSMR+f2x>Z zy~pl*sII+H=!|!CXzVKvU%!2=nEnn!t8waM@>H2DQ~N|wbmRQUi5|nOO|H6G;#%P7 zBs@%fV!UZ9LV|X4z%7C`y_kad8g7{SrCVq9b`vmX-70aMs&rA;F%A-kjjx_n%<-Bo zvNirlJQq@t(Bnc2;`j^QA#}$&y44u?i^JD%V-;g^WqfoFEQa+l=P72Gkb|CHh*Qlt zRwrLxTrZwB#vlq-$G%rT9`tLx=2w2Fgfo3MIou`cm#1Oq;p_X8>bFka1+Y9VR>lo8 z?Td1Y_eu zN|#k~<9U^0((!ZLy^W{+F~y|gXYzfG^Yfu%?np{k!~Fuw?-x2N9j1cjhuG!ow?j4v zrq*F9J(z0hVOA^V#w5)74KRHl5IPqoVXV{k_1p7`S(}7uSQclfF*03Qe5IKEBSNSo zIxeym;s$$!L%z~(^Jn2ln{Wti7f1g|`!USDj|e7^0dv>{HU~5cl}?L|f_b^Ed?<=u zH=h^aT{oZh?)HN-askJUmmH1&FLKfVUTW;i=lUWC+gvw)I`YqC99jHJFIqD+kNXf0Uf0L(ZkpGUFtVY-PC{c;*umx$@3Dv*kS72S#cJ}X2l$<7HUL1l>z3!e+njD zeO#y*73D}@RphD$ydU|t&^c5dz*KlIQ(Q2389x)>5znucKib!|fG|}7X4t!eIVYfl zqcVk%(Run`;)!7Vqc#L3n(g9-Ir_cEG3%Ou>F|EzbQU!M^POUbIi9OgZsIVW`+OjA znLa@2V&f-180P*aV6s1KoX)ByU@|^xoX$eUj11CM(=c7HDrO&*F?42)?A0xD>H6do zi7OrE*UtoViHoa>7G$x@@@LuSg0a4d>KLYe>S3Z^2xhgT6W?tu_PvTxk;V1-My`f9 zm$m`D`CkgXBjo{XCGS)r^44ze*)E=6x;U#vx32b@!R?|VOySJ z5gX<*#oVZ2Xe?#i87A*Lp%ak@^n^<9BPC>*WB((brfbo9g3B9V-c?MnUZdQtn>0Fq z{$A*;4atw{j}?$%Chic-zZ66KJl!C!o;w?-vrREyD4i)dt>Q(cV|l;%2cctgVg$AF zz41r!3-%I^_E_&39oZl14pa5{ZzweB7s1X_eQZi}1a4iT3OyoZn7@Xkfd*quT~Q1g zhB;Ulp1q@VDW5kthzl3Rv9DHnw1+tNQKTdpoo^$8InU9lqV-|yGEAbGV7^MiY;Axk zX)c(4@<y*BRM}*`!6fo=pI6+l^R^9MElFm-~N$fxufqNtUbuog(NFn*-nVGVSRUk>@A-_ z>SMp?1Vm@_?^1>DaTjI~&Y~yOpvWYxJcOs;nfnPZ|7s>~oUOuhjg!6eqXqq=69+{L zaL@`Z#Y}Q_t>?nAD1jeQ86u=YBMubWoz%#Neb=(`a3UW^)(=izr(|EfzY>oVy^r}J zMEWYNGY?Z*E=`l=Ov1@HgPZV^r6?xLO3uk%DSzb9zS3BBgwXi;DETlw`qXUiSHe9t z+wyKnpU1UhE0N7d3WWP!xhLfc0{ zw21Z!V(WoZCqjKSju8t5J5wHJLKDOTN) zQW*%FBuj?ENDfP#Ld0X(yOs&|BY7Yn411Wvn*6z9xq#kt*lIc$fEI(j#1C9JW4!p9 zmg>s|Jl2INkMz>M#dvt(3h}(tVM-!%0qvjQs;sbRNV zE!g87md629l)UnWWRRt;`L%*oRTlYBrn^SVWDi!En;LQJ9(SygFhL)#XNy-6L$$I8 ziHv!4_?ThyjACHmO>GciBYKl*3f`mqtWempkc*YJHe3pVIeDrs)7 zo=xXl#b}X2=NKJ1l-pEr4#sVIkVJo_OApJ-&(!Z)^&=gh7Z+8!snw9Lev5SD6uKP# zkuGbqMMiI@Vgg;G+=ERSwbw?hLB2o#qNFdCJ<9Z&ZhsLBOiS+P>)W;Jcb~dxJ>Rt| z9IS2*|Eq)_@9Jg(S7Q-FiNUG<5-DHl-Sm=#wZ0f@^W0iTOK;}Of;r34=Y15kq305! zUzS8~*(-v*Q1$!**bb+)AXJHK4|{JFjMeQa(FrJzas8uXM?}X#t&fztD(?8~vQ5IA zqkNOSdaCAwrR93X1bH3b%@*zbQ|P3_OjpcVNpYd^vCHDxs+jYWFlRQvoc@-?m5$C| z6?225Q|V^-EUuYv3!Mj&FxNMTtIIorNkzxX@fpQTadhUCMC}zUnvkec@|WQXQ8Q`AfVtT-75P zJfD`fC1+ zu$FJ@f03}WlqZb!FyNw890jbzZF26wU4lJGKJ#Dm>zl%_ui}c-Z$nG@0J~D;Lgr+$ z_Z3ApIr4@&VRB)o6Cg%opO(^*E_ZxZ@kpdf1_m;Mu3~GGs>tXY(4SKeF+};eS(VVW z%E$ERwe!8(2zKrKNH^|~@Zm1~a6Yqy5BKVahbcoW-%e~N{PYjaJ-jB1`;v+4DzKByxp1-=cJtNNw`oV+Y0?ply23hX)9)zVZmc&LSPgWbamjPmVmxq$WdKw7%@% z&H}z$^96lFq(5iv1UaK;f*hkZfvlM5D-hJ>>E8~Pusd5x0$~%B0|7_yanfWOboupS zH^ByHiBv_-=6I?c=A0u1Gs5M2l}@)-Ia~7PqXcuH<|#dVeg9DXdT5zo92#kTZfD!2F`{`Us_Hvgf4jmN)UF{$Ez zUj5$F_DFW1OFGQsz7>$yOW4hL%HxhRp$yjdU9Y!yv%qN1I`dWA@a8qCR$MtRw>lyR5JIPB9NA zrEv$RisY~abontt;yl^OEVtng(^yEA+z(VqdYJLKbCiTxDGx5^Q?#BL56j1j=SC;j zCq~9JBZ?C#qnU}m!b)h^X@YI%Wub2YVp(4dt+TK)*oxec#mPeVPGCJq79zCyI z=-C<}j4vb0fhCa7$WZ9^8G;GM4ScRR`&yj)R|w`t4MTN%0+*@l(jC2xihaakdB-Df zF!J?V&6)MnNj3!PTj}TX-%#j##pqN!bc{ifXOwrVKig&so$FlvDa83~llw;t21O_L z!-6O|XseJ&`t%3Cnz)2n%Pz6kqIYMPuirZAMBiF9#qWJ4pYhZH;~ivZFWN9 z>Jt`F0m__hrE%{8jneV;=d+bB#nN2Ixed}gu|_bDy7ZRdK5Z(95|K3}Zc5hi(6LU! z1mn3mY$=-~JN4$!*u?mKQL(}Nzi#BCechT)%lk32g>I5KRS6(w2($q*HPG_5lNq1*jFx;urF%7w0>%MQY2!?P95*{y3yXw z!!1A?J2_g`KUz8{T1Hl1F@cUq`sCt$=u(Mrn#PN?Vs50Qf3#>&w1kfJVY`0mh@?+W z4?o}v3FJ9hSR~qW{UmZ}TD|CWjf5HI>UE_YAYbXd!o}iNX9V@4e3gXhNv3|x^8~tU}kvTeA$e>&iWI}@5y&dnC~3FRkNd&{i79wqLolTXn?O;NWjbJ zdn8O?v#-R>(vpkD@0@!D^L9X&dT@4GnM}M-FwZ+oLI!9F8vV-8u(A6EYwI^i4r4tM zv1nbLlU=_m_CZJ2wxaVa2TLLwhdi)B=$0s!9v0_*4~Speuy|5G4aJ2-8jn7SkYT(0 zNwC`miux6odjXQLzWPNU6zqo%TPuef)CS|Lor>Ygr8tXg;6oCAAIDcM*T-5p4T?8o z8Fr!ys-KhMT1{!tASBJLE{yxL(9Lypt3|9-%TcHHp#ItDpZ|!2QSpv++qrqC>{f<5 z6st>dD32n8xq8Okoj2A7zj{>Y{@b;YzARb$Mw)R;>B||{8$j4NZD*p#mGT(M z5AM7tXnglSFJWKRJSLfP55da3C-}j&s!T>AWi%}XFHT#T%wv>!_wlzH{>!v24d?$= zXb0=a;xcC)TwUpG3Arx`Hb?oQhp+Dw)z9`lqR%g**yyjtwMj9%Gz|4ooa$0Kl0-fl z_NkX8E;UnPPOK#IGS{IJTum=%t4Du&O|S>MdQ_x$$rOn(sK{n$0y(hlbqQm814s^x zCx+u-MgF?9mHb_>rz+pDi_IcXEySO%-yT*BrquXHV?G!V`Q4XKq1YQjC#YL`jxwm3 zoV#2x*1jmHg?~Z)ij^M4frU=&vV1#YtHkkv!|<8UB!9uJbPrKJl<*;#Cd=zI5 zk41%HA6M)`hn*v9xL}?KSvJ8Nw*NnbZd0(&DE0|Q*ZPZuu^Y&+Z9=yx*c1QRbZqmt z1pAQVAufGZoEuTSe0cPCV9$PA=&G6$!o81jPR)c!7Z#3a;Ff3Y-xI8@zooWu9pyl& z_a;BUo7MMs-xsVd|3cd+^%gORuhpP1#SO!>`AEX(vPgufkhPN)e02kKcoCp9$Jkf% zq2(tMW|zvHlIT!5hj%Dnt=KO*G;$g@$)R$k$`x05B^H9 zlN^?NPj(r-8x<4SDdVC}$61sz*4ppMUkklMlpa0IZr60O;aFBM(XC7!e)PKRReobOo56-X zXg{GBjMFP+e@7)xQ`f^b%M@&eYZv9R8nxVQS#V_=%@S;Z@=Xt4-)E{{kjE?{*w-+> zC`Pw}aT+$Eof60}TMv{tf_f0&tsdle63o9Tp#H2JyZGX#Tin>!SIo}N;uoZ~OeT0y z9+r14V}jYKVNjkWB!M* zw5Wfya8R@eW5N1i3Xf}g7+-nq&{M)#KR|jvTS$`R_9tmDmOmSN37vIHm*_wUz=m4w z>Yb&n@C3mI?Yl_Qmc}O7zt8Uv)1{w;F})Of<-8k-rxfv6Iyw)KFi$1rJL@YYv@}Yx z+_3Kt6l~BZm&iJS61N4;>D9dl33ikArL^ws86r4A%^wroaUiaJg-?<&$$g>4eYpAs z_ANV8FvxGizOUF0nkKS2-^BS4*v+hLb_|s`uTeg+Zh}`M(}s^PD9mKK5=IKy=wEuW zglWoncfS#WO*h`HR1A$5=tp&FtVZhdmr&>*ib*xzHOxsPC9W|V2J>A`$1@pronm?@ zh8~u#zp39&7ru%#hLq#o7e`54Pb6Xc3YJV|{4=`CP7!QV=q?&9*t;Cv-yTOFHKys< zcYg==lCeT}q2uAV$LD*U+H~v{ihaV-{q6Dj*l|L)DcBCAn}OVmH0NG;g6e-0XmJAMU_k%U z5(#sVlfelY73!6;=sq1U_e~S*yN;KH=rBColaIdoU0y2KBpr_z-O&!1eHG(R7tB%W zriZ0_wEA7Ael+&y-k&ag)o;E&zf^3hytlYUl}TKwI|XN6!|`=T(CX0 zJZS%T7MDknobQpso_St{glUR=Z*!(#)5-TKib*Hmw_FSD!6(U)B0a`u&4Mu~4@W6$W&xY6Y9lu4#3n zcb#B6s!k4@zt}Zx3RumXC33Sy3Gr_-?9{mu*7V49_D!Dx;x~G}gh|!@ji(KYQ4tIq z?kF{Wj#A_2D7pW0RABtvSICDl776{s)lCoc>#2T2lKgyqU#Nbm+Le{pH;OsW>5G*j ze=BLyOb8k6Sr-T&Yg@~A*l{C2a>p^0XO4!7);Kg0W+5{)@~uA4##4E+c%zpJtu6YU zDb~1*tdTN_V&vfr)y=MxLmNoo}dJepLJ&@n?LMiYRm8J6%xkEl~}bjO;Nv{ zE=|9!Lyo^f=rjd8@=C!rMGpO<*rv#qbFUJ*O~FQ13igSlwEdPG+VnfH3$JcE-2vAK z_94f^Z_A;deh2pcYlZHYt__sPN)K$QW9I*OTyIQb6 zJ8Xr_Q&xDpNX%8pO{?5BTA0LI3DeQZ#0uH?mtua!>fO>CCCn%dL+4?jb;g(JzxVk7bczjOC?-WJ9`$D3noF`}7CD*KU=tspOpTa?EXlvGcx2_O2jG zB{VN2bgb?4x?QlkY!G8Vx28?^m6gcdYrMow!dgDvcBh2xqIpZ}$>vI?o-7ZH$Rvns zpD+GV!n~{BY0upP0w?K@mX15`66{}-uug&0Z~N-A?ry=R(j)IwzvQ+%nc_^LM^3y) z=%mVDU*p=SnBnS18lVV>!!WJx6*>pFGA@jSFqc87zVrvbgYOs21%YjimP`fmL#tt9AVm?dN$rI;wwk#GvRX+SMbqZ!{JU1Rs@#ug{a75E?hCoBG@H zH9>~?TrsyOhHM0vD8|a`GF@CXTlY#KUwB^?ZfoYqPihLulCf>{RDZY>>ar zwl$8K+62sFO~7RSv+=lUn}B(}37DhaYCNvxO~8E71k6cqHy+n5O~6FnX`D`B6EKe| z<^rutq+gja&)07Q-j%paP7($yHrUrNPc{M5=U+nSKBb##@9@`(xx&fo1Wh)P@a183 z!@oqzcsT$4#`%nV&^YG2CSZ0o0WcuteQ=yZtUcI82Ym(@k*MLs>XF_LD5(cBmdU1WJm~?R^ zJ{LMAjt<{T#V+d`wkqa1he^o#nV{0Sy0-QUq4%c4)_PAWUw!r4IsX=n9!UzlMemY~ zoFX+ElfkIh4gN}CUupE)-Z@E9yBQBu%0B^lsSQ&n~HsNStGx?6Z3Lp~(_Swk1BPe!kGGaelis7fe(5 zeOIyR>eGxCLT{(bbK@7%>l54MPu;W0fiVe8ruke(B2hEyXmY552jS z@Sd*U&S@5-w0>|1muesruT)Grex7dv=9e@Ws~b1$Df}oq z{4l>$()eAL#_z~9ep6HUS^x2_`b`p1#_Jux$S=~wKEOB(^(4F_}GQJM+1@n``@cP<% zd>OWLXTk1B!amm^4TjzKAi;i}gng<3*6K{_m|%lFKP7Zl7}-?WPL;F-$;taWx=5Jg zls-Ky?)TMikDv@uc4Uv>Q^tTlNzQ!>rTd)Jw4gJ-IbdKH{#mr8k zCs#{UxQTV+bN@qyUX{bf>9AaI8l1Of*ozJmY$6Gpp;*(Qjn7|m1RK)%!6~?7V>HW{ zaUqB4CYV6aj_-DN=Q+88xk%GXd-fZi%@ye`m}!o$ipa^}i-K5OWk)tn=NrYGt#Ofz zvt0v5XSy0RgSr~`-r?*D%DyO1<5Jr&tv{DT4GMT~9g#PBUmPP?%VXRDVMXpR9gY=D zrP6~u)W!Z~4zr+#V8#-0{Ln|wv5MyN7u+|Yn4rI-4ME~*m^Q}=ou9(;op`5xy5ut1 z+q|b>tnDQG9ix5+NpSva;l`_|fh59o21l8{~h32cc-HjyyOSM0AEwy(M&N3h{W9F{k|`w9K_ilK+E@1xW& zo&NcE#iVQBr}URNYLqUuxhcws#r2$GdO1w67u_(;1_+&?Zqr^<31FBWim`f&eYM!U zQXf;Mm{j?0;l5Q&H*F(i@8?cDuytu^2Km+bMBy(T-8&VNl|*+Hm!XVAl1w~K);~8$ z=mux7mK5=VW-Mz)=M~9BO||muHbk%|OOmNRJ36z~&+hC&TRA1^+`oa8Pe$in#g0%q z^zik4m-?kk=S3$8A4zKhrb;r;*saD|oF@#GF!EO-Gr#^R{EVN$>KE9=iz2jC0*jWN zzPN3eP<__rdzI`xt}2QK+x8_+qkF^25~hcIro6;j2634DcvCTfoiibOHWPBrFVrNL z|M!g$dUcKmIs*f2mdTZIWx)DEK6Lmf!Cs?oT8nj_MsApA6jSOj!5xa0Z#kz3og)-O z5A&O#etAiLzP>M2zh&yC_-%sJ(%x~j(C*;UlaMuy33o)0OMA{3!S0`geOM|4hHMgv z(LHgjV3W_bzLT(3yVD(gs$hdX{RuhLiPco0+gH<2HcqgUbxef)2$3#aPs*jR%IR7u zI@p7!5zFPs;&M7$(WT?ri9#dl(orRQFsqyz;jnK`66_}$KgqqzC;~D;=r>FAlLbx3 z-hR4Z?{Rb!GUJ&rttqH;r%i4;w)GUjKAc3CcOEC|9KXK$J*C*-T>C0gqS@Cl^9zOE zA`L_7H$~Pkk*R_S&Q6MZ=zuwd#p^xbtPS?eH|aRnV@AO^3h~QO_k8=qF8#E-zxRUXF5 zkvu_%Lv4Db#bM#5pCxfrI_w-VR?G?FdR;O3NpTq;d&DJtha^Aa!&krC9qlSvOPzv` z=M}p)3A;p@_4V5svm~yok}%e~4YR8Wm@5-PXI&DVWewsw?rgyXJr6EOEy z3!T8$$LG~>%*OMen#M8P6q7FPXVnUwU>#Gr+yRFLUKUsFIfD67(@yPM1aW|g*9qoE z#Zdjh$|`mloer}FvoZ-o>)z?-^WRWty<)7trnojXz$}_0bpE4Z2*dV=B%aTiE0}cU zb-=vFF;6OHg~mnc!kTM#`TA|_e4(>C33EXM%r}Y|9AL24NF2U?JMLVelP<0o6_c)R zOg&HNq|;4)RLm6tKXe}pyNsVp7BtRJ=Y@hvN9O^>{GxGDdA&@sC8@mbTO@Q=CGoSc z0Y4|7FPL=o`F+LQkwoY626Qgg#b7}{TIJo)05fQ@#FdWc0ZSUk^u16pe@Wu!HkPYF zo!|2!!KACJ_bMh?E<#sfs=m^mxU})OvX=>FtA?Snc%%WHU5dF}F;wSG!!S90*~LQV zVuz{aae1w~oh3-$ftLt2-8glfV&*z}aoV%VE?>WOUM_UfVOA?9SPRbQ)YPN1=cSGF zvqCYJ-c&ZBM--E8OuR!eC7Om*bKR3J6Mo)vn7HUJDbCh8;c~%V?XbJg#lNnY+Z-k? zdv%GPe)IJ?cSYm$_P#F8PC{-|P$ls-MouhW%6r!0lvV)Yx7UF7srJ48yiZN-DSx^tz_v2hjYrzWUPCtP&3U>2xdwFDc$ z|4MDTK#s>Qh~%-#S&+m-i|ZszFb38;cOyl>61M>l*IqAJu*E-GZ-Lo?dgqJov05-e zy-K(>6uyS5Qp|XDBj2pMb^YyT#XRaT)oz?%`L}3|#1)*;r}tFJ>Dkp3)YtGAtre`v zO_CiSHfYC-ZxBqrmIwIabe670$2S!-Q0dac!XL0+;+Ua+#3Q5vY-IsviDJ^tGwySz(2>*N zs7=P*IldOxrHV;M=fFP-odu4c-S0A8tC*lY#L0%hA*@Zdzf0&m(o6`A$DvN&Qo2fM zxQa)_<2FgQ7|W->+$Uk~*0||m^yb_zer-JQqFTOoj1};+a-(3@X&8DK?VgYB?q}`u9rb%e!_irV=sR)9pUwUU`y#G= zOz5n3?V*khes#RqyH2iOsFTxP>)7HLgzfRf|2^#ApOmn6mQYdj@_Dj(@$z|kFa|zg z+NB>nBE>8d`)Yd5dq%>Jmq!TqR?VdYR{G(oVetVy0)JS?BilfG~?+r#T=nL(OsF>6Tyj* zYnY{pL4E4@wt)I5eR^138>fCYz9&DQ{^0kt`q@~J)}g%DAa5RfM`-`c)iK*!uiK;N z1aYnTmtbxFgyQh&4}O#16Tg104Oa604j79ZX3YnJ3HmRZPe9d2cuP;ghl1J0ROOH5 zS^h`jSF3)ipW(1VXO41l-L2Rm4y)%(qn%h>I}~$iintbkEOCA1!dGKzldj0a@tyk3 z*JsTqg8kIxVQu6#F2q{LPvK{RvAiSRc{3jpV{|%wE*QO99df!ZGM4Gox%~O{3&Fgg zanr-n^W4A1@A@P^labTD6u;nZzC@%I*JnED7F~+7hzI=a^|gdK+NCSbd$ozYuW_9C zjbMVdT1|T<+1JYL2gQU{-sAq;$lV-w{|Mc$LSRe7kKYTue=2=?`1=0$9pY#CPjlN- zHLeMY8M{+4x*v3UbiusH49>&_^W;cTd>Fy8RWD!A75kV19P*K0gE~^TtfPjJse&5f%&GVd-WE$V=davIv zf8;qc_h;_eXYRS@o*CAM{$ZWSDSud(xR^QrVI4OX_rVM}4d7T_&KW7Zj?^+Ced!M6 z1k1SmKK&WN?630>`#Q|XO5roxVfyX(h8w$&RLoRY*UJ-Ea+;URS>ojpzpsrGet#S-3`zIe%4c_5 zU7Wd4FbiCq1!!-@5vt#V!@yMTEPODm@*l|v)0I)Eek&DY?Th4L$b?Ka%p1etGd(47 z4aUdX`Gblv{SifCw1vA!c#?PRFQ-2qRobZnAw9U>2X1#>a?8ue39k&chS8$Ll7^dV zMwUGpMg5rRqSeocVSFZ0qkXbd@be#9T1=9}dpKr@}} zArdw+@X=EU&3tbmc|TwwG!D!AqJ1PTt0y8G?RKTLYM3}}+es2`d5mWLHm9_|xVfp7 z_x<%h3o@;VgLsf=6_>qV&`ilBKO4)I>?iTuuJK^K$1-cb)5t~b`!iDn8_59!ZPPDQ z%zv{t{*(QMua(1KdWzla1ry2h1klul7ZoocODqiQeBmMQyWz(v7G{C{Fl@s4)ElYYe!O5m9=9LW z_Je{)ZRM?FB>(ZXo7LfI#|q8fL!&c{az%Y~S+ilcT`bt>OmFAO)FwJfi=gFa*ePEY zY;n34Ox44*w(chGCgXflX>W~?IO)z+?!W~yfg>5G zLq3@0LxBWmoh)&i4vFT4g2rilw_7im3OC0VL`PT9qeNvdTJ{4Qr$4_@!o0JOMAT7z z#`?q!oGJW}Gg)V>Cw1;LqFlfw1CJBbqtiTiggs+D3nT!Z%JUOx`lpsb#h9ZoytXMm(CUuh>xb9)Yjez!#VE zj}JIu@EOUu#gA6=InsXoU4KY10wN3kD>k@!f2W5euER8L$ik>RafIr(L@|d%7*j(# zKARQuxWi=0u7X{m`nCK-;)?bvcrInCmF>S2voV@O=uTTq4g>E)w06DbXTtXejfdne zo)xngiq$XF?-w2s?4AxwZ{3K)(r~z9DqR|yNouF*RZLKud5CW&C6V=);~o>fvy?A= zjCO^G_KMP`4iawXp9{~KgV5TPHhmD_qlNnWd8OT}ZYryjC~qh~Mba}vEGfd2|5`98GX7ItbP*=6m_-rBwh~>tctkNfDTY4Q zre9UsVwLa7#)5~H*2D(R7K9ROUkCn=r0201AET8$CA3Y0&@NEg7Y3o-sWg*o2x2@B z{k`xsop7A?JEhs4Wt^6MTEg8(~N*`sK1vf?G1I)y&{imomiip^{j+H z#`W2P>YfT^FHrlYt1|GPScJ;wvgajC)UMbLi>a2bF)s*4rhT;wThunsK3X(DDmdhO=~15aoA~RB{m&BC z&b^Qw(sfiDo%F1`L=eg+Sn{S|2b&`d^LNEOqG3obZy|oGqx|3dmhd@EG4u)b_kn*A zn!T?@a_Q-u>~@Dqz9X1!4TE`+2mQ5J-5H-=#T*)8oB(Q=?T+veC6062Io+xpo7c;F(qpk8iL@1dpGJ2W{0e;XOlMq#ij% z>a}p!ZUEBqu(4bg;=k82rn6D+Qn-vfF`QWwy(xTbQn0OVZTG~Q zS3h?0Y<#CxKXJ0=#p3zFE)q8H>atb#99q%i$v|#%l%~CR6YSfHrTe!3L8ztC0UqP~ zxjh71Wi@6K6;>i3XhzUeTzvaf0a4YOh|;j<}*fymA-!@N5T%*MU9%%}28g4yWe;ua>vXPw{DvrVn=u{o457(R;lT%j1!S<)Y2tcQf`gT6UY`1mjv4g*tJw`D%( zDCP`}o6=*-M@!GP`skc5Uso%}m*$-&Z8<%ghk+Tl@0R&&Qp{B@Un||^-IlM~$-*bf zS8hOk-LIH$J3gJH%x0JI>D*8FL~-Q@#Fd;Pm}xm7W~H1Bh$@HyC}dEmLCZpHZcygv*+ z6AzQPHoLg`2i#-wsA6t*n4xW_dZuof->7MV84kZY6#J};d*GcsXHFM>FSz-$kT{K} z-qM3ln53{~m;b^rRKBeOIBWCjNRvA^7pf|gx{Za?xi3`d$2)h@5E@K z^1S0np*5--YfI=N*~}?0%!s*ynHOQ8wi1V7<|}4)gt1}V$(3coKXmOhq_FDq^FAhho&jTbda5A{20 zq411sD+j*E*RPnp2jP9K(squ~jQ3BK_C;6LD@9iW8(~ZLtBWN5U1H&lHu9LEY2%f) z`yk=wD=l75mZpr-p4T+d+G#QOwRV@L!;h1A>tnpFzBVYWL&LXL&xc-QTJ?N6sW|@_ zG-Sj6X|eFJy#-pgG!S?#)Zk*y;IJFMEZBc)oE_EoZ;*?h@x{(Nc^lup;|067rlF(y zz72FJVH$nWnh6`yKm1*@M6joelWYaVss_dsq5AE%R4}K;Fj$3g3Jr6UVtn$@F3W_^ zM#m?TI~&yRI>r1ZAs%?QgJflTuY=Xe%jE^n<#M3Rc?wN=g!(O{CBC1lyS2Juz}bvL zng#QQ!_1~d6}v+9+pR?~R`#vcGwHle5oX6$!Mv{ED=i<4 zbyx;qInTx``d^P7Sv#&=C1GZ3J0?2~lslbII!=q$^~qy1g56d5)5rL%RoY_Z6ZJ{# z3ZZMp`{ZxCh0np-{^$;riwM=3I2TK4=5BnqIYF?e>O4ndMU#vbY-Aiy!=_%rzOLAg z>N__iPUXe)jB+LdE7kAux}J7KfD za@CwzgYpWM&p$Q_-*+9~f?M<(=8vZc=64R0m;0=tUu8Uw$Wkq&!B*S4<(Ni)962G%YsY-FmL1=`QuBkI|N$C$!yS zG;61)DlO7$wTjIczXc@$414+};d8$7A(>=4r8#FS`>0=ScfMfz9Cmfte8R5AfAtIX zd$wY~=jvqTdV*rAckOEGH-w+bN@#ohP9vJ0!#sbXU~W>rl)m#y+VH6t3Fc#m$vAt( zQ2o|jESOa;J(^XE$h6X_MRWLwD`40FY1!CcTRm?=i(8p-+4MGbQxASGf+jNVh!#lSmjZb(mR_`ZXE_|NVNIR;}#6I(O zl$A5BF0F4bxLdIAYZ_>;dnzHxtN{O!brP@9o1(IuagT&)c3}p-;d6sxc5!uL_Sbpl zh(X5jovM5u`=0RCC%U1xZ;%IA8$@1c5G#`gIjqqjW<(8S$Q`Ba;vWc)$2DFW$9Lo| z8R^T@_ZMSYs~7QIFq8}{!@VC6%omhTNA(Xjl>LMf{eulC8BVcbkNB}*M>{O!xH|}Y zzr)sR9*=oYuvM{gk!2naX!`gokJ4J|(OlC0kc9n;j>D}m4BnRWc6{O-`I0pw$23*r z`^&=;X3toBi@5BgI8YI+ye%wbf>b%ehstBzBf{exb<-XqkBw0B8|G@oEOD58*$hpK zwY7gMW`)k1WS6oZr#rKfV$RUbX&T=6F8R5{J=O6gfm$5K_j1KFx;*Bk-Q=0AJ#@~2 ztRMdE7s5Bb9~EjGHIEDJFm>bXSckO|0IOJHj^o1c()9?(ZDiY*1yiqak=-V@5e(+W=ZIGX z6X|T$_F3aF%q5EXO(1_XcYnVmU!AWCpBEg)?mdX&n)#Yw9*tp+)PfJyZ}jVe`5=ao zF*D-xzlz!HFnM`f8`WWaF8QPIdCc{<#>5;J!5bZ>=?%eDxblfEnlU~dZwkg&K6fi- zkxS27XH#K(D&7)4b+PgMpIl$ZyY^ZCH^D?}$aWf6aUhCk&~{o-8^6Qe7ObzWy`UJV z1o)4}h-F%D*3OT8NBHdG}6LLS_>_oTnw>ji{|CTWGiIM(=`Yr!NXdDUrC=Xn3 z$f{x5730&3|5Y(Q{rdP%B`&LX8kfFOQeHn(j4!Su|08?`i_7x-RmD_mKIvomxlCyX zC~ax=!282~racA#v3@KI^blEao$97?>W#Xi(l`E#3e6n_@0>aShy$JEct0v(aH9{amPiBNBo+ zFNQg>q%JloW@8Lv0$8YimE~KGYm;K`aC~xQmz2bH*ht~y!@R8+n|El9bax4#A18&6 zPp5X!D8b0cBm0a?OZeQOm`yItc{<#{u2B6Bs}MfEy7--9u5f%-lDfBuPtRvc^WHh2 ze7>-iU~YDNI_W)~B0i5O<|>C7xX0Q$TKH^qn1OBMb;bD7ym5^1krWKRSNk8u_~Kf> zweX4J$`2@?&ut@^s4lVt>f#o~_~M!{cFTFcMKQkivwNlR@nNo2%(u0iu@)Vm-=n6`G;a|cJ)56{ajhSWj;HM6HHvzDwS!!qnK#Tn0Gexp~ip6 zcEaaum!3Smxy~-bJUR@_(c23jUpxG@V(xTttt3;WqPRAER`{6SmGs5em0%965lpnl zGVso|2NZLeiz`d-w-v>;c!w?Xc|kG0Hn#Y4!pGNs{;U{ZUG(lKd^Wl?4;&NTSB$Tm zPuNNL_|p70#n@gMjo~I7hZ_GGpBFy9xXQnHR=6Pt19@=pp+ENcK?V+`MXsbN5oQKxup{@1MHh5^K zduV5QXy9ZPw>`A?J+zNJv`;;>vhhRr`%xa+7!R$= zL)+d%+tEV{J+$3Cv%{Z+d8NduZ=_XdiiKpL%FzdwIqS4{eNxR^_2>@1gDJp@kmWZXVhM z4{f4{Hd$$d_0hwX=If&yJ-ol-p`Goao#&xl=%HQep7hO4p*`oJz2u?2?xDTup}p;)z3-uY!Y6cgzT%;s?V+9LpqUFxA-<)K~Y zq227E-R7a)<)Pi{q22GHJ>;Q1;-Nk6p*`uLJ>{W2=b^pip}p>*y*UUi)P07xl@{5t z4}1r`@k`RjZ__Yjhl4#_7%}q32){I7{Qg(5K7K8=!tb|^Usmk1v&@fAo!Z{VeiH>d zSf6fCny*ivqL|Sd7k!NPIUd?29@@1Y+HD@%eID9RJ+xnWXwQ0RuX||kcxWGcXd~;S zJ_ak#N)K&E4{di3Z66QqU=QtZ53SKdTjrs4dT6~K+IkP|ED!BM5AB;C+ASX1Js#SF z9@^uB&_eA~zgL>C&mXvtw41MM7_xE1T?FwhR%aXdsA7Hm_L?O8qI-Dsd~)=3XE0vl z`iWv6b8+{J8N1xBgp&!89q8Hn3g1^9Hcz(780!}3u5n}snwc!vs~vVVXK6JqI+|Wx zm|fk^S2r;=RLq$DB+SAn%t^-BFinby?)F@5$9G*B{a!I=Mtla`KeK#_#I@03`sq{* zyF&H*gJKpq%)tARYxfsEzPFcSOg|9KWlWsC?GC@)@t;X4Ff1 z&W!P48}GHSb5_4lzmF^SyAGQ#!?6T*O;x}32ME8j)YhBY=6l>W<#PUl+^VTZUSRo$ zR%-`eLgg{)VBztuy2;Mq8I7k-{XSI8wa(5UE9a-OdZk;IPYiPLOw}-#9x8k%yR>Dy zC;{2TD7LH4!Uzg3PE?j&FoA>5;(?3JbHAJ_JZ@2*^fB6r(}XrNMho@#50z&3;n7(h z#K2SwzhJtAKRy=TXtyZM_z}ctzffAAmPMR)*i7L$m@ULi4{eUp?A;yWIiCLE@5Ncd zGdj~}_b#92+DyGbg9~O0_B2;dd3wwsH@!MLyE=!VV1ChWE|5^eZr31Tr>Pt50QDsf z!yK!aKRQe&y|KqG!yGh6_&loh-c;R~xC!SE2xOSDxq_Kbp7=xkxWk&`#Vc5#m~E5d zfwwp|BrfNJ3>R!rjODwzQTY8uOsa7|{mmPWuD)@@blkl=8{cVg>*c^VTi8%}%sXDf zo~G$-rgP3KB*BJxa;aceYZ#Ivx#7mnT{J8c%u^0ykGe$p{`_*mq+R{w^cZf=)%W@) z!Hjg6Y#ARs@a=a(Y7jR_h`8aekd&!iKjXBqg zLemcpA`p@qK!e7$v_sG0;tIbL4Z4v32L1 zp6!(|zZe*X4~4e6*Y=`$^SZv_$75}C#)%T_EX!&~Y zBnexuZIkYnc#Y7@<=uwmWjDDn7T<*R5+;b9Yq^KQw97Ra?NT!BI7dK-Tz02eUD#9p z`>>YQ38zcglU#Ya2(RR*Btp(%jpp-)uSl5P)lHxA`ulOEJ@3lx_{1je{>LYFk*}-E z8_yO#_qw^JGw~U2Pn~6tQsmJv6@AOTRdn<-MM*FFU_Rb(Q zE2kaLm3WuCa>~h734EQXUKN242@e+6n)4*gzOi(K`up2TTcK{6zZ*0oh8eR-!bg2* zwd+HM=~T=Gj!(h8r)Zdu6%(C*UG2`l8s?buC9Z2?e9qGJj90&ZD(3qRljVELv+lK^ zs2$vKf$)34VRLeMHr`yf{$hN)zadzA6N&DExS#4j1F>1dhx+ZmP_S<~zL~P$mXzCy ziv;tY!>la(J@H!^jp>aS3+6ixlasqVb5UDKTq2k+DuzDe^><2XUy8K{9)5G~nm>m< zYP0b9M8nc~#OoULa;|`y!0_X%awM$($FTk_pf%A?@{@cT`7Eya@c-5o)d)XceG-7!2>_Mxn5=m zm<;o%Vt%J#=*;I2OX~Bot0XSp`LOVtf;rgn8F<&*QpG$QVd!ixyQZq&epd@0dusu* zd78?-pr^qHx6qZqq4Ie6nk}dIh-(GYtzk&kg^bTG<8!ZKo^Y7lfb&GBT_=3L;xK&n zxQI{1^@17U+EmuPIc9Nv=7ym$N|#NHOvLW#N037M+hYHl*A+9)rKer)TxrKiC^-V^+TuqyOM2>Ede-8a0C8CU z>b@nI2OTCWV^$VdvZ$Y7-yH_l`rMtj2;Vu%gFd1D{+H6erf!-CAjq)G#)Q*vmGFOe zn1Y;1FKvvVhl=U@wuFhs{Qd!B{*#Ki-|^*fiCxC$oZE!YDu-E3)m()6P%+0kOg}_l zag0~LdAAFnN>^7|Iq5pcTO-Tv5bQM$y8>-zTJ;L>vNHY8oq`!`9Xb6wLTlBysZ6n6 zXV-Z3yHPRG*%W(igLT4GvM#Ru?h<~r8kRoBr$uSsb!pAuNF=5%K9S4U89D6scMG43 z95#1?bR0hVn=5-Nx(E5zdjxCiRm>U71iOSkymHUUwTU^c5KB{duY`S6(@XQs^mr%? zG}gBMtk@4!2E%z5o@X*5f@f?^MXW;Q_xulpKbBGaNBr&3g{5KM4+Rs`zwulW-QFJY zdrq-8JAU~AX9rKcU-+eC7%URlWqEl`F_G@2fR2l?8$I3qSCPWfdGU{gZ?EH9z_|~g zS*cN2Ls3|p`^*D^9Zas=&qGTOLbLe4uCzuie_D6{hGpPJ8e2J4p{DJn2PJ-+E9q>~ z_ewB#JtUZ?H4I^XP=Yz@CxUrU+u_pcd}0d6nRj(O=V8IDP(HMNGx>D9`h80==O`a~ z4{dwq(>mbX{(g@Lzs;IYx=&e;ia8>Uqs;coSh`qnQWlQ1{9G-L^dB`&&+ z`dM1?Ki@Jo)G(j@gaZ`O5#}lx?uKHzVxy1Usc*wN+Uhf8Jdyt>bKh;CHzAUlP}|IFY+=0 z%)bOExFZq-3UGDhym(4DT`yYyFa+r0PMy6G-<6Vt)>}%;< z^k?DM=JX14`*6e1S2QS^~^vX>Aio0#yMWUP5+Yg z-RtT;FK;L1@ck@h6hD|0o}l75LVb94#ubXh733>_?vp_6F5~HC4}rC_JrtZsKUGVwb)vN65fz zVTrw^{bx!`X`J*i+@F;;abVhiR+{$h6B5U8u(Qeqd!X{Ad3O;dK0{YIOF}FS8%7HD z(1F+|3~MsYkCK9o^b9NI?!%RGGwsTYmcF<^Cx^*jwt3m4rYhQFHafIskzG4RJpPh<1ezfq}JW@R9O#Jy& z=ACrCH9kB)cgoFtowTeX5^Hfg$CCnirCO&5$0xei#_I18#Z)VX zKB4}8R%yqn8}BQ*xz57ZZ71m%Ec^_m`NCi334fc?Y(Ee2Lzy6nvG_-AKXm+`Q(8Jo zztfRg_>(;0&sEx2UHIt!Vhg|BXNQh|ywa>5Axk?QmxaI16aITjo8jVLjrC)3{{Q6( zKc+^~Hc7){j~jDnari?OGg$o{t+ZYje?N(}?6UMf>S6}eoj!#VBt?6M)=n~;XhPbODukq5$L+^Av5=7mLK z&zo0Y+-+#SCQF^B7@r=`(z)&K!tYF%hNvwV<}$@td!cctPurVe_Si%C%yE2HJB5Vh zH>a3yx$%J4UbH=r?n|FXlxy@h;0}8V-%gb=XdmoK0%zp;@eB*jyx%2?MZ|AuI%O{j z3)3e4qjWcyr2F5BF`X&q3h4R-AIc{g^XI=L zarrREDaP7A(u{GnIL(_B6YUA+sdQmD6P3@}T8Zmn%_o)5b&9dJbm&CET;(wK9=(s_MP+eZ*C?jXVfvj8E>yqm zCkY=E3;)rclL-qp7M!V=9>vfn)ZZT}?MTfYCr4q5AbHW~#bTzff(7 zBUHb86a#e^|Irv@@?NNZyBsL#n5ynLA4_ZXA%al|e~i|0u!p9+2MhNV56>GswCxTZ zI=%xuw3LT-meO=-S(LwXm1g-RqW!+n6Yf@}eKwYP3-=SH?KBAO4@y%t6eB{#y`?mh z->D6nHqJ214wLeU`hE01uVH?zm}qV+I628M$4wPJKX?6qMdCZ!{|ysP7tGHB`9nLU zCpg$)m_I7!V~5F$tz2xperbmA`DF}qkMgnp_wAX2X(|^G_8+izg85itDN= zm=l~V(M)%_(FMb|@+UD_Yc3j}yO&Cwe{+0Smt95R)&0snO2hHX1ber`=E*{hU7`AI zvs^G%=CseSx5jGuI;Kf5KXiODqEpU539NorCY37$Yy639v^u5jt6}J4akMBc(pwiq zxlO7LjMi8gIzHpl62}fPKB4~plG47XZknsH4umilmCI|2X?BEX|*75zNC5vs!G|c`F-Lf<#;1pI7W)Y5qWIa~&Ugz*`)l`b}+>xK4~P1ML6r zRm>k9rr+5RTbi$E6FyPj&+=Y!R!E!^X@iZEcX+}*rZg)D z%0{Sp8P_3ciPk3VqRwxRFh5YtH5%qP7-q74ZVa=eQ~2Bw!+f3EM+~!7mtevX0$N(V zGLg_e5o)*zD+Tj?b(1c+v~Rtpn0UW|Jj)@B&sD30&tx~AEl+%d$DQRa@4w9nCVH2l zJ+WI!ddB4i^W9i_E-s1dQN`S)7?LZ{H`rzEV@&A)gj_*Zl1RJ+2x{$H7 zWG&|Vt+j%UZ1391ehqa#knf!*2{ziBZKpR;2F2dLPOy8$#&67j7{7Vy;6#Lyl;F?n z1-pl9Q>}@uO6qW%je>bY!_Zxtk85U(&p#ET*RcmEbE+9Oys6i4@1H4rj@G#hZ>1%U z;Wm{^oGD+noXEM|zNk)To+Dv@qP)l+@D@#j)l>58g0b@_WIGKEY^M`h&5~=o2c9R` zXbxIApr5?080$+E=QSm9-n2>hL~n9rNUw-B_HwIk*ESwGU$9X-%9Q>DcWJ;nZyx~ZMsThdM+xlH((Z6LkZM{_v+h5SDV_P<;(&#Id+_m^NQuMmvA+d^@@ zSAzNCm0ON$lVVJsrMO-!;dAy?!e@nR3o8>1+Mq4XZ+%lRJH#*}N-&9Q1T!m!`BDj{ z;o2?pNnaA6Qds`tR@b7jBKN!Zw^nS%e@;BMu(hG?_{2^9`-Qy177s*hD zWy6cLaqRCE+f1JLqw<`^9A|2&Mttk<6u!2PL0DdUt&Om*4ipHUnVY}tEv)sFi+tIqkqz{h z|0H~_EE7gF|L_(_R=RFhUP;f2wFldiyEgRCHze%uH4Rj!*nmKtI`x>F2cCFSuy+oU z-gR#Y?S7Zu)gr^KrXy++!17)HSHZ&6()}6jTBYscD3N~XXG(j}PJM~r7d@HtxWuw`A6@}7&iP=;`oE|!F~{@i>(e&d}xiqRHgk# zu?fdFCnHIYGm*pY5G`U+JM>|dM~;jRD7eKpBG`(#MQ8Ezdg?as-j^`!bt42Dy~Al| z$6vDIb!ByTnPB634dW9egm!`EL-hF5Fj7HYQa>x#3ltk~pP^#zQQCcuPhRfQfY4x= z?sAE1lEXy%+=lt4VorB`DI@1tG7+C$lEUY4$0tu`de~)r-d0R}Uc6p0miJpm37_*^ zovlnv=eE8QlYlTc>;YQ|_DmONVR?0adUfuI>O5I+K&Ei@_>f{Rc6nHtI6&H1mg;{c zrU^^uabtvUx8u9oo$<1`A687Qgtz*S(@s#@(SwBh ziPF+BnvL(f>?k}VdAJ`v0AtKN{_o!6rJ$jPe@w$Xp>DDXzFTu^m+Jv}T z{a#hf(K3|dP3HOZw&1kt`P?7opUA(VV}Orburi+OhzFev@U+(RhpO}W>z~yz{-6bCfjgUms8JS%OfWJ_@g6tlGS*C7k zOS4MK<8j68=P>Jd&Ln53e!+O*6TP)qaBnSIonNV#i!}_z#eKd2*;@S!yYHUD?>UFf zvka;K`Tg%uX`x-B$oH{1;@67#fx{H!DvDU2IcqQB)8{bx0d@@kQB1UsDY!F} zp@utaZ{ah?jsN+?d>*HxGfuy)6-+e#t#CIpSf4q6qF_{vX6_cpy-GV(<3!!cksvJU zEc^j=5`KbW=wp4SMQKx19wVESJE`U6<@$qsVuhwS3UldX;rEPdPb<+5Fz>K7311o! z@S!zMsBxY!MZ!dT1zGoYnAP>(`wM1`hN1C&F>zYm;M#@pyFsyy5f&S1;xNpIidhn2 zoZX_0zm4@0=MkEJ=-(3Uoa0tGuisksFG@md**}cEn=h_7Si&~BawzaV3eDFu6m5C? z_aTB^@36VV7df6tOKo+s<}ktjKEl#lha}j2Lq2Xv&wFD1c{RW8=ob|3oR;}JfAV5MrZ>}sNtSnBG}tq*|aBWIEU@QX2pDUnPBeT zPCV#NA9`4j?(&hv8}9VEodvO*H>?wXz4QZsR}}cV5>_*Jgt*y$JYzrVlt*H``Mkiz z2QJvx;OMX)M&F=8({@m=q^&{giS)Ej5GKcyRZf%)xtZ+6m6DS~1G(c}`&+EMPU{n1 zi${q^6E-O3a7vcbi3hst<$d`)AfNO3lNhO(zlkqoQ9zZa)yebgg!hB$kNFY805w6@ zf#qlu%G&GYCku8$EKgXN0<7I3S2oQOZ|&h{8zf9p>ye@fHLk}u3awM!G!86K28P-9 z6v2#f?LAMYP|#$eaq6(s1anA27@>V8Uf{gv%id-zMko#ug;{rogt^1<&6K@EsEk~J zk?CazGdxq%x7S$`=Cks_o>jY+aXY=sjJ-9zqNrV;N^Tc3h;}(T-7Z32yU5(_A`mzi z3)k&(7fE~BubG`)$Mcc6kZ)HP)4w5!ctFdQ-mm^8!Lnso7t;sY3r)Axb#Re{dCG-p zmGWsVdziwsqBUAwKXtKSTeM8k=H#BH<%#pOS=~xumLDFiLFzA)FgH2=e7>Qmu3oxa zFj>WrOu!AUAZ5j~D+bnMk@^Li{&`nQnBQsphfNFJKS#DKJPa*O{FRfmRA=3#ydz2E z`xuqj8D!;UJi{A==Obf;&{{n;aY2IMQxmr{x2cIQ=yx=C|Eatw2)c-OQxm^6u2#N( z`i}5yba~55pU#VE3!1DOQ|rGg*l%gNs2q3>jIJnj*jE&LOpGt@mFC?MOV=)@+#`JV zb?utZh@cMi8Sgv>LX9)jZ`ZvN<`$QhNEv6C>if2g`H^CxJ3I0N_P8GXzVKPA>1(Q9 zoOqJUd2wKIO}k$(<*w~5*7bCRne}7A?B&WNm#EeXv9TxjpkVIRe9^~fdpsnxJ!7;` ze=ktl3+g_udL4BTc3EBT{Sygq;~Lf9x2X9PoNCt9-=v=k_GnEjolE$$VA1O(5=+-< z4-2+gYZ>~QTb^OD5z z+-Qlksk%YfqB25F$Lzl-M%}dD?jts6f0nQCuYy_a#;C05GqTio*u>58+x)g*Bi%~Q z>4+`PIqwK2T8rk~TGTLqQp|5->H2{dIFiPH_q{88e(u)zjV+X(Mjd?`C6$eso8U=T z6wv1s`Aie!E2wAq3N3Lz&m4_%jJlBputtfiPUAe~V~I1mmmuFt9P-fVQZrpB9}M?V z`Mv*d36rf7Ce78?ujht-{rW_0m1HVZ{^_lyvQAMq$?njlvCA;84g=G&jqo`u#s|v( zB0hgr%z+LQ-Ir%^?LJoc_%JIJV`C6>$*SRw+S#>=Im5-3cbB1AT;nSxE-aDxkK{`m zaIGz#qnO7WrXVtPfdw-9@7m&`D&cpI!w!7Q`(?$fj$xqeXIH3xi?s66Q44s(mz+->0O09qC69fyrOFJ`qU0EzAbOd=gIlT`qb;xBP3u~wyO|WfCb8T zgc6(D`?4)fb#?m$M%iqLk-KMt5m)??BHHTUzHD!WmI;33(x^aW$I59y0?(; z%96V#^#QpjSUQl=C?$!iFqOh^n?zz4^(^Y_>P3k0shvr};!Ny2DHv7Gzv_cgBdR7? z#wh7k6Eu<$;83lKOtmRS~?gcwvN)A@WF>ZHl1#8R^XQ(>|tokP$uDRM;d zTfjPh)P*$^xRQ%0DUKR(bhT5C!_>#%nk=wmJUdWW+&tRTEp6dRCkK;J!efhk4yQ7A zCDBGeWS|M`Q3iPsldb7O8r&<4q025~&H%&(mta#ZI46hNqlHddSZNE)fO7OiQ6geQ zYqEV*c&^EEQ8x8u`+D1`9eNtBHD+(a{VFkUDs8!|xkO)~28ApXdf*(Nq5_c?I%P6? z8Mjch)ToiAGabRD;OB~jJVHr&@DfGTc0yk|!zHo{^G1Iuz*(7EOU{;_+#0xQQrE#1 zY(wM2cy9euChr|mFW_%c*WWW3wLQS2sEkHYk)zTD8IV_uNBvMN;9ts;dQ!wP&bL0G zaYEP*nW88$KHwnnx_}m?H5u!q+-N>Q>Rb^QQA)dSuDJVlwo+@XOwCE6u)FayOs&OF z>c*6p`l$034J89R@0cZZuH$RJzmyn#hK8t*qQoh!v}>0n3z_0%afcH}4L7!=b?r|m z!Pd3Op*4UNqbms4u@_PAom$e{*fSst%Vac))ukFpjS(NkFl*2l7nQ{4hdYc}$QtiB zW_jh&K1zEb-HeXHSqOq%E09VVO=#@kV##!6S8*ZH-AT#jG_pon{4Pp6lE#?y%2&%Ya86f!*cvpT6vuGSxSA3(SaG=4d4)eYW0p+XZ;H+oGz)GlW4>o3)$&|YNDFnob-ypdk?WTOFBf@WFMb(6E%v=-m>1-=?#n#{*z{ZvM zLF&!7U@+Jk86F$a7WVYzA;xiw8M9=cN%hOxGd*eQ;D-RYv7F<2EEsLRReVS$9QI2bqNlB;$WH|Cn;ytdxnbVpkdkQ9%mLozpwA5T+W zswNE0K%k!j=7~i>{gz_Xv zQK+y?7pf+B0B~wFDs{Sc!;6feN5`>UJ+;T>yJ*43wTqd7N0iz|{siO3xTIpgO8gy;JD|H}+-8 z@8A@5GDxo|Yn~xLBuKWedtqNQqKDtZflST4>@gqJ-3#Bxf)tfRGSh>}rndl}X98j0 z-3P}DL8=m3rDS)yrLzkWl~=tHr0Pk}WEr<{b^&EbaPKnCMX+GLZ8*0E39F_I7~Y&we$K4ZL5O{EQ!;oF&_Vt zy=~pJij%l`7?e0_t!!Nu&)DeAqLsW0cqZyYOWpb1IU<=y%mKGD&Luav6YB80GIj8_ zh~b2N@Vica=O|k&P0gk9#YooDiKSh6)yviz$cGls+yc(RPzXse*H@6XT3+>0kUE1x zvM0^X&_R?}ojD?PgY#{a9$sFxc|_`G@O5cEp|7p44WegnE}id1qB|*dt!-KSro>(b zCzY2Dj;@&2_>0N4quRD?A-^V?8Qy{}Zp$smh00-kXZeF#PDSdUlp0qBh0Z*36>Np< zSPiIG4T^%AJhxZTI#i^n++1MmIo!TCp>-m~Hkv3Cm)BN*UM=oem8d?3N6#X%R*uqX z*l|hc;95;J$$Sv}FI8T;FzcvAToW?v^w8L(ot1_|>Ny%nC%pY36VrT$dGt%;g5XY> z?<#e^gKv4oIE=e}Ersx;usNhYbx^oE#N;PS04PerlY^RMa}aQpG(uLSNOclK;kctU z9>-nnps+h62@u8Co@r|-#FTDSq~b@aE-X918BL9PsRj;$r;tcqi`JwLCfgC|#73@3 z;&3{Tf+zC8zp#y#tvYN_^|$54YmCUI;x(fO`ado;9+<`RxHNQ;RCwekLaR%jC|xLp z1CktkK;1}^UKC_8 z;4V`|lv3To(5k^J!Gk)KMNqn=J_+MY(mRbv!Zci|_MjwUtXa9LDOXN0$PUvU45k>g zw5fuHi)#@$j2(=?YQm_%v@r*#1MkYpJnJ#`4`>qHR+4QQZoPFWt^jH1M`a-pjX?*H zR^Hmf5{0g;#<3E6Zcj_P(AAR-8dS5u;>ub3bs-M!>gN@-hcQd`H?fvVA;&D9B+irK z{tu2&0*Zm=*0_#fxGRL?SeoC|6^)jRdzbQh?x1xhf7ztT#&RQ>mH_ zkZEf#%;;=G=pQuGBz_2~N5UqYv^cGkGNX9u#J}dJEx_Wj(zUNw1R5)OKPOm}$%NydD8{$RRYB z;G&%*`vbzoas{(qUwsV>8YUsaJqFICSYYQTE_3g+0Bs3pv5T zx%Xfsj+`voY@2N>)XrHDC1wjc>Uep@G*nb{_iaW!3%hyg-c`e9Ie2k5ub~AU%Rs0O z2;a+WWqVNAyk=T!YkqJV8e&(zE#xs|5%i`9g`@`!g$L?tsz^$*o{{N6qT*t#`vQtl z*u!0!Vz;p5lAS|zRjk(W3b$w+vm^!&UyNqt(g4A)w+%JMlLi(6G+0*1@;1{$j>^-0OPd20kl7Ef<1~<6E z)R8-b5^JZl_rx+_t}WXt8?1GyZ>9ihg#-xAxGc;m%>lQikW+`$%$^y1{%%XHxDP;b zIHBU)Gy*a8V!bT|jNh2PIjua}wPbpFB}N(X2;5E+N~P-B)7@Pe(v^rzp6u;`I6}!$ z-F#Q?jGk;3QZet0nYCW7Z z{nsr+wYOm0t38s@O@-i>2>PJtP;aJnPYF3p&cQ<5CSjC3rHqR00E%IDCfz~P)>g73 zFuPsdx)7Qv`_`3G%g3mG96fC$l0$k{NE{<+w_rfDZVH>Y0MQIBrXx=S15=hlp0I9~ z;RZ1+i}l8LF66>sK}EJwMNoJnLd%X$NcGX0?QLufcKC+d?u+@3s@?@T;c66^ssy8O z2>@iA0s!5x9TU+0@Z*Y&ys%v3Aq?^XYvX#`()kuLdZ-lbT(-3bvIF&1?i4gs_OK>v zSMf*}3T;q95oEmh*#tk{z6QdVfBTMA->5T>r%4XJ7G$#=6&!gz6~^W3lMr1slZcNLDx zir$_VO3Z`Dkp_~gMAruW?jE~?7wQOlIdpss(o|1HQ*M-rVEp;iG+m~GUm+pmBInd3 zNffHJmYh*@j%EJGN&U{N~)IiC4CGmmCw5qL@e6CiXF392JzFFNQ6qi@s zDN}5cbzD4)l~>&z_mkP=z7bM#2t=FIR8kL)NYP@CglqEJ2VRdwUQnN+FxB1B!_H^a z2~i5fmq(=DpNMt}<%XKfX)Uinjk+eHeyrHCIlQMm-$sq2T^+0d*$xCk_w zTkC_7Fx#^d?GA2(zbnk{VAIHCM_mwbv+C~2w`n9ic99#I5tSA4( zAsaN(HUhU~4XK`!#j_=^A|$sGY=E_JcR(Lxj}EjOED)*H1k%h48R|XgfM@KD!ffe7 zxpHUX#Bx|jjyw@!&_w%|@$VD$>rgj35@VW*fw@rqI@>b24r<`&Z47EpW9dZuo#jV zAZNJ~)1XC%UU)fW)7SL6_s693K(T=h%<-j&eQNPUAi&bs&>4ce;CtGY@H8 zP(Y#UeYX~#GAvMj(fzbwGf=Bw7*jW@4VzaoexmqCq#i~mO`^wjWLTh2q+T?S&Mt(z z6TOfL^Js(v!|KG0>ImD3Nr9)YH5YYc6VeFBkb6`i&yr0_3$!lhNKSqGhF-Q~4G9^YDiv ztcb^(&GhuFg1HNdQ2nU}ntIc;e+=JEVwX!T05LYNY0`{su1IyEWnc`PvQK1K#~I{O z_z;Egr^`2DB0N!3vOq78ylN=Y@CNsQ3bG91$T-dAcn=s zYMRs(d=oUp%OAxvUqW z5NMub$6RjCMtmb07yrWu0U%t_+@u z9IHlbnLq}mAstha^FGRTZzw<57ujoBHAgvM-#qf9s98Q_uXzh0F&GXqV&o|}Om5;e zgH}@p#B>((6(puF_M6_Xew?BLaBF5yz9&<4{vB%Zwu^^4M#}zQ2 z5{RjYaqP`Ln2h$Ggysz!4Gwr`m27d&%92?kd)-|n3Zp(BP-|OFuMY~jveg9z<=4UZzR}F4CZ>x1Z&=hM zIi0e}A2lv*i`KZLHBufXxzW*V%^w`e3Ft&WWcv_WpRrb8E~XF6^iIKJoq@LcruAaY zPkU;zu$#AUZ2TL9J{8+ax;kDc<`n_2#aeoxFoRu?dQ!Jxe^@YreOs&Z55>P5+ffi~ z=81_hNp1uWsx4`}tkghiBfuiGDPc&=i4CE%u|FGpW^yd;?6V@iO$c=)cV|u)*~^ji z&5m44hNcA3AtY_7h0%{s$mCjRc>$@AU70Mo&;@xvorO=h|3}>{$MY(U$vnAHn}z`s zdBjp2&){PybX@~e#mR#8Y2-%MtC3$BWNBW)q7nr4sY5w0GTt@Nl*t0ybw6VUn0bd972I5hi~Q(VgM(Svz9OLcjxvtD+%|;g)qqwrgSfA!QW?uTPsaB(7h92cxkcC7 zm*;(9iLeSAPEvBk{v#`(iIJ?#CgISj_o_EyaIu!ff`VAe==q#&dm-A^N@HBeW_vE= z7R>Zy?u(+teD?tK8>noQIL}c03*!)Jpyjv*PjXb^k>!f+uFlk42JcY@d85L4aa}_7 z1$|dgwLkg+DZa?jNgb9JO~HHcW^EZa=Fil_bs{fg(3o{;flUr>%j^VkLB6e*^sd~Z zS=|H0TubEpteItz_yE*%>ds}@`Mf%NVf;*zAbJ5afrS;e`pc_cRJWSw!sic>&(VD( zFPB%nq+V;=@+9zMMk5|H&+ivoBv0d^j~2<4apafuGoM2qw~e`7wG|B|11o$qj9?(8 zu138iD$D`H*dS3U{ByaWAH2Dc@f%idSycw`Dtr|!*+?J2x#gZNJ|o3P*02>RN?(!> z)&X6^mPN^aRcb+jN>q%8ZPQtSj^XI=0|<{w<8P~P>H=qRg76OIaa2kb9^HhOGPNn-{uhZI=p8P&)K9ygdSKY zo3R!H%_X+MK>T3Y{(U5Yix9tYNF}d^UQ#-hQaZV|wpEQ{TN=ucix$|gKD&yKtks;( znGD5dBafnTrt(5$Sn9&7E>(LV68))16*@9C{ZmGz@y2&b0NIQ+?*10D)~a*&KIVWDF!tU8d-y} zTP&C27+AHuO8a~Ro)+fr;3TQXh9PHm&qVX(({hEa8;fyDUu*h7$Gm|`QZ6{)Y0 zLk#4pjL6^~cJf)0glbahLuq*UFOvq-V-h}w8wv^OZOM1#*rMwZq-Ki^(sET4asio} zWBjEgV;fveI9Rab4yZ=$SQQ~><5m3Z?U+NI)0Vq^%_JjZT*WAR>yXaEGaV$*sM425d#LZ8XS_ zmo5mK`pB;?^@0l<`PQd)n#LT`t>(#@W?yL83T-Sn^8|A^Avtcc$)HU)7JR9XB%wC$ zB||)x4DKc%*$43Q6dMpcNETL8XQL_nU2Fjn1m~Fw^SI=B*MV1gNV66_mX=)f@F7_O ztI8LsCU|`2p3HjNssz{O= zy%+nWXzSP&&wxqsMke}f0arq_sf&C1Nl_4F()=3W7I*z?oJa zt143Ll7)#_*$m`63%h6}q9@T;N?99iylOC+9m!7^GK@J5do<9TPZ5g{X|m`r1PkkD z@d263;37)SaO-G5XdGFgK_H++6_@w_4a?xub9_TaEppujs}MU|=@}TTnPBI$3&(5H zS%?z(;1mo=Th4277_=>U-j31=rwGgQ6xg4}6LY_VY*7(hejtXzN zap0H=3m$V0A4cj7j4mp2I)c7cIx_J_RyM6P?9840N3=DAI&HbN)g} z?4uNWkxzXR6gB-|D-g;t%XKRCI|bgHUXxHrh}VUNGkVe>bKFw?63YFThM#aL3Z36VD08~DGEbYPg zp%-?#Bsj~l0Z5`oO82L`GJH!wqH46Tf-yWts4HM7-?RkKeV}idt`I67Z1Duy z5aHeFd^XcGRfSrAJ7s_~KigYvpzUiq0y=~?in@aQQ*D7}Q=5AY%G3%@y~eQAke1HBEAIEGbQYey@2{h{rTkuOP(kGHU&@8c739;v1!Kq zY4c_UcgE7?JnNF&C#Z`iXQ5c(Vh-XtHO?W|hrFqF|0wA|R9Z#6 z=1mU{ni~}nk^-N2I_A+jd5}cRJ3J_q1U$SrAgR~}3&^Rzvm`8g##7&jOUA_fn+LmD z>eMZgc!ADq4E|HXt+6;IGLQ_+`{H2#dBu5O9Ms235ISBmAP%Lj=g~PLSvnUL;rxZc z`eHWli5DTZ?*=W21&bPk`-(%7S3KwfzAtK!Qe1e{wBUo{u;jHkmikz<$$8B^lzJ(> zBxa5-w(`Lc%ExINVL;S|E7164y86&LU0wmRdlnx~fX5RWWFFLYm=aG)FbA{j*EtI$$smm)(kPl|93MtUaajq>LC7h=$Hd=qQcRkhg1Z zfO)-_n;VXNXVTnO7R}(=Iw)dd_MDhSvQF&Dui8Sb zNOV{Vpu(ZA6ZA6{XNiBMM9jItvO}zZWMuh*jVyE@Kx~&q_#ZP)yv8P%w*Flny0K**GFDYs+9!nd%2V3J@DCILu1lSRohjm8HHBh0T0Dd7GiYJBLd9!-(ou+m^M#TP(k~4pb{bGlmuPHFGiV*r)Pl|G zU=bLMrjaG?NtVnpKN&}w(in7jv^&!x)i9;>x@5Ymi8flH^qF%U5`yZfL#`%z30LE(=G;_?&K{v$z^cf$fplwa&rC+=fsb;s~R#xF!*}#$N>lk|^ zgL4+}x!6NKPaZhuMVW^Fz^!rCBW;LifIqE$YB-(+#;J6Y`WO?PL?RmqM`dw-@>k%; zB^UF{H7F?a5l5qptOT{Ok$ zZ4)}j$gC2|tilHq7m7?JoGw;QMV?_&ovPIl9+kplv?gvIX$?lo2n zm-T4sbQqHH=>hDm@mbaBnN_`F)%dPjp3UZgg^%~}s^xGy+rzH8bg2<-#o>4YTc#at z9@ur8j-%{o!(7~Iid3l+sXM_+Mzg_60I7A5K7&1quHoPWk>tWD>=xZmP3mD(Q4+32 zC?g(t_&7G|432uaO^0KlcFDCx0m!H1$bN7>gyUEPP$`fk;mJYy(s(;4BGtqtVV*9j zIj|{>OlB3S83-LUqu697%qxAfnXI-{@-1e6JXtJJ`?`+!)8PO&&q;%(dCoOnP4rBh zR^?Xu^k7+X)bXA)&C!cLG*OF0qp7Ep=F5yRQqC$(6IW7P3&k}`Toe~4zh@b0P|9jt z>ML;2fXA&xCT+P>v2M^3bP2|7jYBRU{$C_GRl>c~q9}1CdcsJ*nZd8R}@`(6kWEj%s~WIjxLzQQS16iROMctNheIt3=!+ z9NB;vt2sDe))HJ7Poa2KCa2SpO1Y_>ipd7zSj|AKO;_!{5)Z9@bt;syB_C}LP$q~4 z4|nk~dW`gS#LBgG9+)NJ5PZp)PFK;8qL^<#1WNWL(itM2eyUlb~m;i2G^iOV|?vv%3}Le|98T>;jb^vPT>3{`A)J z2g(()J=_gz&~bzKLlBd>7}vp@jDbsAWm)J}QGBB-`#BZ0X`*SFD%NUa*-UnhnTMM` zXMpkSvMHQ5y(Y!_Va0($A+Yf>JTjHi+ye_`vygKQo zN=pKp?y`urEmw#6L(qn5L~k4#vt++Gn@P$A3)+|kW?}&E=;okTK1an!vV)nsex?QH zu5l07fw=)&4;g6hs%#d}y@yg6i@-{*LWy}UNX|{KAu}MU4Ko%{c~EF%a)3G#<)+vZ zs8^kA-PwJwECZ=tn$t}3K|c7Ui&)(CWY_REJaG>ob?~ zFSf6UorJDScIgPn_hJzP7EW@|0^??LC#;aFyC!uUcNiR|=b*HOZXb;=%ouQ^{MJ zFnM+ou`DeX8z0$Iy%Afe%GhE)AG~SZ;;vY_bqDrvS94t`?tP*w$bzFWEYp&PQ_L5j z(T!jdV|`>Zd?da8!EYX@5wTuU_w@G2j+y=H0gnZ79l`?ln1(hTl~BUer3at}xWkja ziVdJeHehW$Ys6IR%cGi&LDY<73~~m|WZX6r_gGWOTUuNNa(w$^a&*ZoCQWtb($Q^* zfm~cCd6XTcwctRzi;lk*fa`X*Z9sO0?sie^8qh9{8~n);Cav1LbXU$iD+N|plP2?Pq_s9cf|4^C%{^WuUy!2Dv|{@Cf6rk+%0z@pOlFTSCS~P zuJ|t+0%eNY!QWBN$)n^BJsvjrAWp1d@IA28pzT=G-NOeDa28ID0E%*DQqtC1DvK+j{EsSo-Kbl{L|vS}FGZe5WJy zsx*XEq{=YJ1yz>QF82QbUXgaXD>SMNkBIG{5Eq}Cf7H|DI{&cZ7zaAlT1&CO?^U{`2S66u6_#>F7h1&+(79UwNG|XrnxQAfnWD( z2kRnYuXeB-IR-LJJ+}%_Ohkj_osSl8e5;NHq|LFmS<+#iM0br^0iWJdTZsKLvHFh_ zDwDi6ljpJK>av0c(&P-jAY9E^BCh<((;`}Be=W{4@@^PGh~2_*98v53Z@$cwb{0iB47ykuY^5hU`{ zA#D?fje4CMM2q_WP=o7s7%{Qjb0f&$p>3$uyL8dj|BRtA*42j_tbs&e9?MHuqH-!z zr(=+hr)J1oul z)YwHBPh=y8hZfp`*IU#e^}{iqmEuV{GC`Nyb5~*{`847j8LNot#RZn}hBl@*qhUQo z#A^y$gble(E>iZE&5D)j!q`b3ERE=7ky<$XU$NMm_u-Y%D3;{5lps08;EozZrwq1i z{%SVtdcF#WnCO_)@WU0A=!g@B74!tMAg;w_6g~Mh*h-4drTr2T{Ll^1>T<~76@2*# zR62Z8VT)(dCW={jy!xElhF4g=){~OZ>%ijjG*eqj-#VLGwA4(9(ditnZ8=)XGi&VzS*1aB5b9e z)eGdH9tMO8KFj56skKElyJw#_wjwO+U2aDJGAX90Smzc$1wa}T_JqQYdimWm37GWrR%Fi)FS36qK-{)kY$-BCGoZ{Ta(<+xGsj6YLxXvl`& z@!F`Aq{jEoDXN`v#4kJaI!|cWNSaF-_GCgK=bPpy>(d(CdScwS1e?- z>Z@0uT@5}%&}xzytS$H=Ww{8XBE@fK#hK-^9m*+P%qb#l+#MPa%=SDlx3{rjyjs`O zt_O9S`=BL68jBv!YUc8QPA+ zOQXC2RkH>KAm9?pV&2og7j$=bZdvMaa-ykovR_pPZF1M7c3BG&$sBNnDSC{KT|~s4 zDMW-xEFATsO`nGXGr@${OgzSNA<<3^mNYn3OO2IuiSbAB`01h&KiOj8*Zef+C7E%$ zfHVBM0Mcj<&f!zkuWZPkiRC8mxZ%osT8fJA)ls3x-xZ=KgHDHFr?Rp ziq)4gpQ;f*>D!d9hi3N1)%DN`?1>NCy9A@?)W9fGca7Q%U2ieE6jp>FHWHGwFUHT6 z9bx@?my&nw*7^&Z;}{Uj%3%c3B5^5O;tvDao1Q7Foh~%imOeXtbF6PlFel$dvdk8FC-l8^LIamLwBC2Vc^T zasPZvCz+x_WnR)Nan`&87XxCQ#+#QUf6z|tHz=|aD2?Z^lgI;3VfRi85t$NkGgDDlWjuq2Ttk$`4GR>KlI|E7xl$UE zv<}DA!$T1cqw6VH9*o-Mj@6nJ^;UXOPLwgB3^^xu_GIw-6AdOvve>%gMv9!B->T

YYv68aINngA@CndYb`aw!IszR!o((FYgLZw$qRp$GFFUs!M1p*X^ikcObsHkyO%p$Atvb#~2HR}E}UeM^W67RwF^8Y^1d7ks0_cCV^Sc?CA z&`;-m?$3G7bMEJ8#eVL^<~Nc{KuPJ?=hRNHfDszKhe^Ka;cI8m+vZ8)kMRVJE|$yo zgG)LIRW^n3a_X~RPG4Z2nS8Ci=X&q?tPF({UzHuutxN28%A>gN{cG##H!sv880a-i zbNLcLv{6hJ(P-_9yIH|+kEf4fU6VYEMsKhgGVq|P8)E2VdKI1}NqcGZB?v&eFVQ@* z8@_7#y~n!W?W?N$BcIQwP=(O*SXX7jU&%OT4MTxJtr+~RF`^E?>`{@=QVgF#T-hk; z!-OK9C^Lt=%zH7kJSn@pWH%9Rx#=7%ne&RWr3kBnI3w6yMMn))QFa#Lhe^J&w}_?_ zsj^WQi8}`LraSc~J~mpt)_b>Kt&6fLh9CsXIaG5r2QTbE3=pmEG|X&LFo zI8;Dra=)dS`o&Aa_#ih!tucc!!%V&E;rDPmb?(xLQ-5Zhx-3%(m+kPX|A>b2`>?8q z7-4gk;p`W{83x;9(owWh=s3u<0MD&GGL6n3@x;@MQO8r_gvXMm3Ln32-x<(77AFr@ z*27ydpZ2Cm4E@e=I#;|GJ~*|BkBP4bNB; zmJ_poJnbRGY)sa}8?&<`k(m9EQ&=mE*@)W2XN55vp?`#9_8V`0C@~wcM-BI)Xupw5~4m1a^xFw9~gXdx+R`&_!b^^XK zsm7R+2k>UBux8zV(-<~Z$mzTu?(yUaS4GPC4988ToYU1JJX6%^@JG0`?}t@VjCLyI zh3T5U9hOLerz4yPUhy&yUnpEoY4fcNDW&aldAQ4Y&7nv+KmY2`L18(&3K2$F!Y>QV{rwqEBh@I|B(sON z4Zi!jND0q7PKuOpTrWb5lye;65iaewjnyvgxT?>A529rr$G8s|DJ73&zMSHwX1PXj z3x|idj3=&-l<~J5*F?&gl_6-PU`548bk6pbH`Fdo*6*n>F4 zW%s<}YL=bD<>4*Az8fRuca`IeNcmZX2qRL47V-$!%4Zy|U5-}Ad!T)^EG_8G@Pu2Q zcFhHA?E@v=E&p8mO?GV8=sh_vbKptNrzA_+^6~P1xLe@dO_8$iavW&NetBvVor#F$ z;XlH0a`w$Bak4zkKLtxAdX`6UBRuTJl+N!(7ISyfLg#Yw1+69vyLczVt}*lSu;uvh z=8ju$iNw#x9mhs;N2+p!9myl9SdVb5>>W>u6<;A{;F4&5Nj2-MKud{>=ox#1dv-GjS<&7`_uao6yv+421KI}W$LqDGu{@jh9YuCM$>?LIS z*=&BQxwLE89J4$7R@V^z9(}L(ICjkoYcH_tj&#b|D=dU>50P+o^s)rl!uX5#z&2YL z^b2LVd_{X<^l@Bh%M$x%Ry>zA+F+Rapc@SIYZ<}d zW&P6+EF(g^9RAG0=GEk)Fl_kegAN<7;r|Os5=%AP#25oPwfbT_NU*|YaPfs<_E@nr z8$V08yYWN6Z2YX4X$Pn!x2%}<&n#wcCAWkz!$0f9%!*CkIBBCLPq+0wi0&@m*Dm85 z;bBYmYaez?mVVii71SKQNqNbaKeJMpAQQq;;GcC$K@7QuUG&pP9cOO~!=&=AU)^?OL-P{?U_KI3AH4hkionsGlcm3$rh z&H;y&d>o$NE41a3d>Z}aE6peSWmr{f>Mh~H+cgWLBCu(&pMG0-bViPz&MkD~#9?Q1 zM>FoDUNd%|2=m~z5x-y7$7==N%=hc#wE%D7C-w1~fj9q)dUzYRYysYMUAY^#YzE%c zGVnG5Z*m!U9l)Dd2Hr;C&DFJc;}$B9nPuQnd5kYZE|tgBGWbz>4A+f=ja#TZrt6o- zW-5<`|E^nZo2fj;>f5oI%46yW_4!eGOl#$-8P6LxQ+X`?T56sLkIG|o8TwIqOw{#r z$0jb1>$E0E&MDIqge_#};?EDzncs$^YU3A%U{54-+UI*bV zUYn|SL>~ETE*+2Mk>6*RA&>ktoz5pBkNhx^j>qyypXvJYHj}kUbUc&E7j>&&8@XvbosBE5jodJjjz{8%&HOUN zk(U;)PW4hm9C=|b9goCOa+zI*IC9c-IvZD9E2%$`jz{9i`04uMS_yA7olQg>d12|Q zR4F+>O`ABVSD1S{H8<88KI%ANLi;-%^(!xA9Z; z`Qg1BgwQhhksV|8`Egq~T%X@YilxOj*R_M&o`rYU$0Iu?mVrlhEWE2OKTgsU%fO=` zov&{Pr^TgP>d9?u;VS*cRJ?3)KW~2`3%+-NwoJt%d9YL|?Bk6!z!|yb;N{pllfcQB z`xRw49mNTBj0Qqus?nTRQ}XHJuRWTY zDt3#7rK;^68kD2X}6~Jjka@H~aj-$?&5d zpSJQ~;bSs~kQRlegZz3Q5B8}~4^C23KA*NyoKAQ#I8MD%$fuLP@sxfm`E=YD$*ttm zF|QQz>DZ{pA1z$>r+pY)_iyr)9M7SQ+~VWGaeB26gM2#Yl|nup@p+8%{lX`FQpl%M zUMb|$S)E5qi?J5=sgFl9`E>k^9zD2szI52*(`Jg(ah>-|(}TO_b6y_Ye80=52gj+G z2iJXHtT%H$_3~h!e$l4~`E=$hwK3XwzIo}!+8%2&GtF=E@!-1eeg7Q`9rf}cpN_xHXD#`3=?0I-c+Pm{e?6M=h;9DYJ`DD$R|?nt zD?FO=-0;k;`)juQZ9F2J@=76}&fMmcLOvbwL~`3^&Zk}}a<-^+u1y7Xh89vr7*9*=d9 zPe=dc;lU&FIWG_L>69;$dB%Op%Y%G6d5tH=c*H;E<-tC^%*TU#I(4O|HgvF0uk(3~ zeR{vgV;jk*GfO@Uiqkotl#T4uLmpdr#$w9LgX7c}9~&u7$Gkkqr{lh?%>(GAYds#@ zNIsqO>Onr8^YP$u)U2<*@Qllpmk0TD-dA#%>CdbQm%dZF25s%+)G@CZa_WfBW$onD zrE5GcYv;=E3n8A5nDg==r_T7?&I73_9}gZ#&G_8T1F11D4@#(uZ}o&S52Th3dHm7F z3H9wh9$fjoJh<|E{Xu~`<>f&>o&UL~YV$y9%*VqFqq!xeb(}Uu4 z&dY-6DiT`E<^!2l;f&%Y%G6?Taxpkh;p_4_=rU@!7%ysW~qXiqrXFPmHyY zPp7;*$frv`@{|h(QuR_y3s-)x7;@@@R}49I=^Y-I@knaU$Ad>wb6y@4s54$3{YKAZl*j*x0QG2jCpyGS0_9r)4HXuS6jERSKnUStF62ZXUr!CgQ+@&*UF=*IiDEb zbu;F3{N}o?e=85Cro3V(Scko0>Sln}&71+eV#uwNzEIrE8Q@Bf<9R$a;p4&MsW~qX z$^heD9vrJ)9u%t!KdYTITX{S+=H)@LI^qi=UV&VCo6jHQ(^1bjrj>Up&G~rncxvfh zk1b|})60W=y5QwOJ{|M&;QH@r%vyOowRDBYA06b=Szozy)UW?MpqlfFp+KGUnTr8c zz5364o~C?actkbki&P#_jd^*HSEt`nyNl3@5mjAP$*oIo^*Ek~RMVbbW~&)ed3lgm zr#(HhRvuDK`FNNORJVG}ZKqHj^YWljox94%gPgkb7LPyLDW^{P0+B~lb6y_YQ@zrs zM@!wJYv&GtPYe&KMtxDnL#i<^5AId@Dg>|cFZ|Y%Wz3N3%^s)nkZR%09*4A1pw4-D zkW;6;n$~w}8#~n}hR0MBzF6il)tHwDH&nhD!kDUF)#cTxr4f%;TPajWykhD%|GYdk z=M}?Em1nA}wUxZO@D5M$@~CRcCxu5(QKsDkO!!4DU2RU`Z>kxLTj|VSMjlAFEGP9-7%Y&S{ z^uyX!s-^yrs>PgMxXj}+UZGm}l}`+}R9+tB)CI4qbz72iJdJsA5c2ul#xY zimj@>RJ)xAcT+(9Bn7rQOvW?`_DX$*X`pcKr#FAoaT zB|SBkYD;rnxAT~4%qND&R7;*MgDpI!S{nAaj1Q#DU+#%^UZtAz^58C&&+R;>n)31> zr;d4fkW&|Y1;azCF`pD3QjPeenC*Uls=axwg;%NOeT9o5RlPdJW2!l?7;@^kXW-t# zW2z}H4|3{~o(@cl!#0jo&(5Lz!3p(RpDi4xULNGrNzWLy#Vk_&ug@Rk(|OPSwq~

ArHq1Mm*i=X0zYVD}{VItE|2iN^K_%x+Bom}u? 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 AjQ{`u literal 0 HcmV?d00001 diff --git a/backend/services/stomp/subscribe_options.go b/backend/services/stomp/subscribe_options.go new file mode 100644 index 0000000..e5a5b18 --- /dev/null +++ b/backend/services/stomp/subscribe_options.go @@ -0,0 +1,42 @@ +package stomp + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// SubscribeOpt contains options for for the Conn.Subscribe function. +var SubscribeOpt struct { + // Id provides the opportunity to specify the value of the "id" header + // entry in the STOMP SUBSCRIBE frame. + // + // If the client program does specify the value for "id", + // it is responsible for choosing a unique value. + Id func(id string) func(*frame.Frame) error + + // Header provides the opportunity to include custom header entries + // in the SUBSCRIBE frame that the client sends to the server. + Header func(key, value string) func(*frame.Frame) error +} + +func init() { + SubscribeOpt.Id = func(id string) func(*frame.Frame) error { + return func(f *frame.Frame) error { + if f.Command != frame.SUBSCRIBE { + return ErrInvalidCommand + } + f.Header.Set(frame.Id, id) + return nil + } + } + + SubscribeOpt.Header = func(key, value string) func(*frame.Frame) error { + return func(f *frame.Frame) error { + if f.Command != frame.SUBSCRIBE && + f.Command != frame.UNSUBSCRIBE { + return ErrInvalidCommand + } + f.Header.Add(key, value) + return nil + } + } +} diff --git a/backend/services/stomp/subscription.go b/backend/services/stomp/subscription.go new file mode 100644 index 0000000..6aeaaf7 --- /dev/null +++ b/backend/services/stomp/subscription.go @@ -0,0 +1,183 @@ +package stomp + +import ( + "fmt" + "sync" + "sync/atomic" + + "github.com/go-stomp/stomp/v3/frame" +) + +const ( + subStateActive = 0 + subStateClosing = 1 + subStateClosed = 2 +) + +// The Subscription type represents a client subscription to +// a destination. The subscription is created by calling Conn.Subscribe. +// +// Once a client has subscribed, it can receive messages from the C channel. +type Subscription struct { + C chan *Message + id string + destination string + conn *Conn + ackMode AckMode + state int32 + closeMutex *sync.Mutex + closeCond *sync.Cond +} + +// BUG(jpj): If the client does not read messages from the Subscription.C +// channel quickly enough, the client will stop reading messages from the +// server. + +// Identification for this subscription. Unique among +// all subscriptions for the same Client. +func (s *Subscription) Id() string { + return s.id +} + +// Destination for which the subscription applies. +func (s *Subscription) Destination() string { + return s.destination +} + +// AckMode returns the Acknowledgement mode specified when the +// subscription was created. +func (s *Subscription) AckMode() AckMode { + return s.ackMode +} + +// Active returns whether the subscription is still active. +// Returns false if the subscription has been unsubscribed. +func (s *Subscription) Active() bool { + return atomic.LoadInt32(&s.state) == subStateActive +} + +// Unsubscribes and closes the channel C. +func (s *Subscription) Unsubscribe(opts ...func(*frame.Frame) error) error { + // transition to the "closing" state + if !atomic.CompareAndSwapInt32(&s.state, subStateActive, subStateClosing) { + return ErrCompletedSubscription + } + + f := frame.New(frame.UNSUBSCRIBE, frame.Id, s.id) + + for _, opt := range opts { + if opt == nil { + return ErrNilOption + } + err := opt(f) + if err != nil { + return err + } + } + + s.conn.sendFrame(f) + + // UNSUBSCRIBE is a bit weird in that it is tagged with a "receipt" header + // on the I/O goroutine, so the above call to sendFrame() will not wait + // for the resulting RECEIPT. + // + // We don't want to interfere with `s.C` since we might be "stealing" + // MESSAGEs or ERRORs from another goroutine, so use a sync.Cond to + // wait for the terminal state transition instead. + s.closeMutex.Lock() + for atomic.LoadInt32(&s.state) != subStateClosed { + s.closeCond.Wait() + } + s.closeMutex.Unlock() + return nil +} + +// Read a message from the subscription. This is a convenience +// method: many callers will prefer to read from the channel C +// directly. +func (s *Subscription) Read() (*Message, error) { + if !s.Active() { + return nil, ErrCompletedSubscription + } + msg, ok := <-s.C + if !ok { + return nil, ErrCompletedSubscription + } + if msg.Err != nil { + return nil, msg.Err + } + return msg, nil +} + +func (s *Subscription) closeChannel(msg *Message) { + if msg != nil { + s.C <- msg + } + atomic.StoreInt32(&s.state, subStateClosed) + close(s.C) + s.closeCond.Broadcast() +} + +func (s *Subscription) readLoop(ch chan *frame.Frame) { + for { + f, ok := <-ch + if !ok { + state := atomic.LoadInt32(&s.state) + if state == subStateActive || state == subStateClosing { + msg := &Message{ + Err: &Error{ + Message: fmt.Sprintf("Subscription %s: %s: channel read failed", s.id, s.destination), + }, + } + s.closeChannel(msg) + } + return + } + + if f.Command == frame.MESSAGE { + destination := f.Header.Get(frame.Destination) + contentType := f.Header.Get(frame.ContentType) + msg := &Message{ + Destination: destination, + ContentType: contentType, + Conn: s.conn, + Subscription: s, + Header: f.Header, + Body: f.Body, + } + s.C <- msg + } else if f.Command == frame.ERROR { + state := atomic.LoadInt32(&s.state) + if state == subStateActive || state == subStateClosing { + message, _ := f.Header.Contains(frame.Message) + text := fmt.Sprintf("Subscription %s: %s: ERROR message:%s", + s.id, + s.destination, + message) + s.conn.log.Info(text) + contentType := f.Header.Get(frame.ContentType) + msg := &Message{ + Err: &Error{ + Message: f.Header.Get(frame.Message), + Frame: f, + }, + ContentType: contentType, + Conn: s.conn, + Subscription: s, + Header: f.Header, + Body: f.Body, + } + s.closeChannel(msg) + } + return + } else if f.Command == frame.RECEIPT { + state := atomic.LoadInt32(&s.state) + if state == subStateActive || state == subStateClosing { + s.closeChannel(nil) + } + return + } else { + s.conn.log.Infof("Subscription %s: %s: unsupported frame type: %+v", s.id, s.destination, f) + } + } +} diff --git a/backend/services/stomp/testutil/fake_conn.go b/backend/services/stomp/testutil/fake_conn.go new file mode 100644 index 0000000..c03659d --- /dev/null +++ b/backend/services/stomp/testutil/fake_conn.go @@ -0,0 +1,113 @@ +package testutil + +import ( + "errors" + . "gopkg.in/check.v1" + "io" + "net" + "time" +) + +type FakeAddr struct { + Value string +} + +func (addr *FakeAddr) Network() string { + return "fake" +} + +func (addr *FakeAddr) String() string { + return addr.Value +} + +// FakeConn is a fake connection used for testing. It implements +// the net.Conn interface and is useful for simulating I/O between +// STOMP clients and a STOMP server. +type FakeConn struct { + C *C + writer io.WriteCloser + reader io.ReadCloser + localAddr net.Addr + remoteAddr net.Addr +} + +var ( + ErrClosing = errors.New("use of closed network connection") +) + +// NewFakeConn returns a pair of fake connections suitable for +// testing. +func NewFakeConn(c *C) (client *FakeConn, server *FakeConn) { + clientReader, serverWriter := io.Pipe() + serverReader, clientWriter := io.Pipe() + clientAddr := &FakeAddr{Value: "the-client:123"} + serverAddr := &FakeAddr{Value: "the-server:456"} + + clientConn := &FakeConn{ + C: c, + reader: clientReader, + writer: clientWriter, + localAddr: clientAddr, + remoteAddr: serverAddr, + } + + serverConn := &FakeConn{ + C: c, + reader: serverReader, + writer: serverWriter, + localAddr: serverAddr, + remoteAddr: clientAddr, + } + + return clientConn, serverConn +} + +func (fc *FakeConn) Read(p []byte) (n int, err error) { + n, err = fc.reader.Read(p) + return +} + +func (fc *FakeConn) Write(p []byte) (n int, err error) { + return fc.writer.Write(p) +} + +func (fc *FakeConn) Close() error { + err1 := fc.reader.Close() + err2 := fc.writer.Close() + + if err1 != nil { + return err1 + } + if err2 != nil { + return err2 + } + return nil +} + +func (fc *FakeConn) LocalAddr() net.Addr { + return fc.localAddr +} + +func (fc *FakeConn) RemoteAddr() net.Addr { + return fc.remoteAddr +} + +func (fc *FakeConn) SetLocalAddr(addr net.Addr) { + fc.localAddr = addr +} + +func (fc *FakeConn) SetRemoteAddr(addr net.Addr) { + fc.remoteAddr = addr +} + +func (fc *FakeConn) SetDeadline(t time.Time) error { + panic("not implemented") +} + +func (fc *FakeConn) SetReadDeadline(t time.Time) error { + panic("not implemented") +} + +func (fc *FakeConn) SetWriteDeadline(t time.Time) error { + panic("not implemented") +} diff --git a/backend/services/stomp/testutil/fake_conn_test.go b/backend/services/stomp/testutil/fake_conn_test.go new file mode 100644 index 0000000..0ca9273 --- /dev/null +++ b/backend/services/stomp/testutil/fake_conn_test.go @@ -0,0 +1,61 @@ +package testutil + +import ( + . "gopkg.in/check.v1" + "testing" +) + +func TestTestUtil(t *testing.T) { + TestingT(t) +} + +type FakeConnSuite struct{} + +var _ = Suite(&FakeConnSuite{}) + +func (s *FakeConnSuite) TestFakeConn(c *C) { + //c.Skip("temporary") + fc1, fc2 := NewFakeConn(c) + + one := []byte{1, 2, 3, 4} + two := []byte{5, 6, 7, 8, 9, 10, 11, 12, 13} + stop := make(chan struct{}) + + go func() { + defer func() { + fc2.Close() + close(stop) + }() + + rx1 := make([]byte, 6) + n, err := fc2.Read(rx1) + c.Assert(n, Equals, 4) + c.Assert(err, IsNil) + c.Assert(rx1[0:n], DeepEquals, one) + + rx2 := make([]byte, 5) + n, err = fc2.Read(rx2) + c.Assert(n, Equals, 5) + c.Assert(err, IsNil) + c.Assert(rx2, DeepEquals, []byte{5, 6, 7, 8, 9}) + + rx3 := make([]byte, 10) + n, err = fc2.Read(rx3) + c.Assert(n, Equals, 4) + c.Assert(err, IsNil) + c.Assert(rx3[0:n], DeepEquals, []byte{10, 11, 12, 13}) + }() + + c.Assert(fc1.C, Equals, c) + c.Assert(fc2.C, Equals, c) + + n, err := fc1.Write(one) + c.Assert(n, Equals, 4) + c.Assert(err, IsNil) + + n, err = fc1.Write(two) + c.Assert(n, Equals, len(two)) + c.Assert(err, IsNil) + + <-stop +} diff --git a/backend/services/stomp/testutil/mock_logger.go b/backend/services/stomp/testutil/mock_logger.go new file mode 100644 index 0000000..4bd99e0 --- /dev/null +++ b/backend/services/stomp/testutil/mock_logger.go @@ -0,0 +1,150 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./logger.go + +// Package testutil is a generated GoMock package. +package testutil + +import ( + reflect "reflect" + + gomock "github.com/golang/mock/gomock" +) + +// MockLogger is a mock of Logger interface. +type MockLogger struct { + ctrl *gomock.Controller + recorder *MockLoggerMockRecorder +} + +// MockLoggerMockRecorder is the mock recorder for MockLogger. +type MockLoggerMockRecorder struct { + mock *MockLogger +} + +// NewMockLogger creates a new mock instance. +func NewMockLogger(ctrl *gomock.Controller) *MockLogger { + mock := &MockLogger{ctrl: ctrl} + mock.recorder = &MockLoggerMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockLogger) EXPECT() *MockLoggerMockRecorder { + return m.recorder +} + +// Debug mocks base method. +func (m *MockLogger) Debug(message string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "Debug", message) +} + +// Debug indicates an expected call of Debug. +func (mr *MockLoggerMockRecorder) Debug(message interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Debug", reflect.TypeOf((*MockLogger)(nil).Debug), message) +} + +// Debugf mocks base method. +func (m *MockLogger) Debugf(format string, value ...interface{}) { + m.ctrl.T.Helper() + varargs := []interface{}{format} + for _, a := range value { + varargs = append(varargs, a) + } + m.ctrl.Call(m, "Debugf", varargs...) +} + +// Debugf indicates an expected call of Debugf. +func (mr *MockLoggerMockRecorder) Debugf(format interface{}, value ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{format}, value...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Debugf", reflect.TypeOf((*MockLogger)(nil).Debugf), varargs...) +} + +// Error mocks base method. +func (m *MockLogger) Error(message string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "Error", message) +} + +// Error indicates an expected call of Error. +func (mr *MockLoggerMockRecorder) Error(message interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Error", reflect.TypeOf((*MockLogger)(nil).Error), message) +} + +// Errorf mocks base method. +func (m *MockLogger) Errorf(format string, value ...interface{}) { + m.ctrl.T.Helper() + varargs := []interface{}{format} + for _, a := range value { + varargs = append(varargs, a) + } + m.ctrl.Call(m, "Errorf", varargs...) +} + +// Errorf indicates an expected call of Errorf. +func (mr *MockLoggerMockRecorder) Errorf(format interface{}, value ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{format}, value...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Errorf", reflect.TypeOf((*MockLogger)(nil).Errorf), varargs...) +} + +// Info mocks base method. +func (m *MockLogger) Info(message string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "Info", message) +} + +// Info indicates an expected call of Info. +func (mr *MockLoggerMockRecorder) Info(message interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Info", reflect.TypeOf((*MockLogger)(nil).Info), message) +} + +// Infof mocks base method. +func (m *MockLogger) Infof(format string, value ...interface{}) { + m.ctrl.T.Helper() + varargs := []interface{}{format} + for _, a := range value { + varargs = append(varargs, a) + } + m.ctrl.Call(m, "Infof", varargs...) +} + +// Infof indicates an expected call of Infof. +func (mr *MockLoggerMockRecorder) Infof(format interface{}, value ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{format}, value...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Infof", reflect.TypeOf((*MockLogger)(nil).Infof), varargs...) +} + +// Warning mocks base method. +func (m *MockLogger) Warning(message string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "Warning", message) +} + +// Warning indicates an expected call of Warning. +func (mr *MockLoggerMockRecorder) Warning(message interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Warning", reflect.TypeOf((*MockLogger)(nil).Warning), message) +} + +// Warningf mocks base method. +func (m *MockLogger) Warningf(format string, value ...interface{}) { + m.ctrl.T.Helper() + varargs := []interface{}{format} + for _, a := range value { + varargs = append(varargs, a) + } + m.ctrl.Call(m, "Warningf", varargs...) +} + +// Warningf indicates an expected call of Warningf. +func (mr *MockLoggerMockRecorder) Warningf(format interface{}, value ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{format}, value...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Warningf", reflect.TypeOf((*MockLogger)(nil).Warningf), varargs...) +} diff --git a/backend/services/stomp/testutil/testutil.go b/backend/services/stomp/testutil/testutil.go new file mode 100644 index 0000000..ba625e6 --- /dev/null +++ b/backend/services/stomp/testutil/testutil.go @@ -0,0 +1,5 @@ +/* +Package testutil contains operations useful for testing. In particular, +it provides fake connections useful for testing client/server interactions. +*/ +package testutil diff --git a/backend/services/stomp/transaction.go b/backend/services/stomp/transaction.go new file mode 100644 index 0000000..0a8398f --- /dev/null +++ b/backend/services/stomp/transaction.go @@ -0,0 +1,178 @@ +package stomp + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// A Transaction applies to the sending of messages to the STOMP server, +// and the acknowledgement of messages received from the STOMP server. +// All messages sent and and acknowledged in the context of a transaction +// are processed atomically by the STOMP server. +// +// Transactions are committed with the Commit method. When a transaction is +// committed, all sent messages, acknowledgements and negative acknowledgements, +// are processed by the STOMP server. Alternatively transactions can be aborted, +// in which case all sent messages, acknowledgements and negative +// acknowledgements are discarded by the STOMP server. +type Transaction struct { + id string + conn *Conn + completed bool +} + +// Id returns the unique identifier for the transaction. +func (tx *Transaction) Id() string { + return tx.id +} + +// Conn returns the connection associated with this transaction. +func (tx *Transaction) Conn() *Conn { + return tx.conn +} + +// Abort will abort the transaction. Any calls to Send, SendWithReceipt, +// Ack and Nack on this transaction will be discarded. +// This function does not wait for the server to process the ABORT frame. +// See AbortWithReceipt if you want to ensure the ABORT is processed. +func (tx *Transaction) Abort() error { + return tx.abort(false) +} + +// Abort will abort the transaction. Any calls to Send, SendWithReceipt, +// Ack and Nack on this transaction will be discarded. +func (tx *Transaction) AbortWithReceipt() error { + return tx.abort(true) +} + +func (tx *Transaction) abort(receipt bool) error { + if tx.completed { + return ErrCompletedTransaction + } + + f := frame.New(frame.ABORT, frame.Transaction, tx.id) + + if receipt { + id := allocateId() + f.Header.Set(frame.Receipt, id) + } + + err := tx.conn.sendFrame(f) + if err != nil { + return err + } + tx.completed = true + + return nil +} + +// Commit will commit the transaction. All messages and acknowledgements +// sent to the STOMP server on this transaction will be processed atomically. +// This function does not wait for the server to process the COMMIT frame. +// See CommitWithReceipt if you want to ensure the COMMIT is processed. +func (tx *Transaction) Commit() error { + return tx.commit(false) +} + +// Commit will commit the transaction. All messages and acknowledgements +// sent to the STOMP server on this transaction will be processed atomically. +func (tx *Transaction) CommitWithReceipt() error { + return tx.commit(true) +} + +func (tx *Transaction) commit(receipt bool) error { + if tx.completed { + return ErrCompletedTransaction + } + + f := frame.New(frame.COMMIT, frame.Transaction, tx.id) + + if receipt { + id := allocateId() + f.Header.Set(frame.Receipt, id) + } + + err := tx.conn.sendFrame(f) + if err != nil { + return err + } + tx.completed = true + + return nil +} + +// Send sends a message to the STOMP server as part of a transaction. The server will not process the +// message until the transaction is committed. +// This method returns without confirming that the STOMP server has received the message. If the STOMP server +// does fail to receive the message for any reason, the connection will close. +// +// The content type should be specified, according to the STOMP specification, but if contentType is an empty +// string, the message will be delivered without a content type header entry. The body array contains the +// message body, and its content should be consistent with the specified content type. +// +// TODO: document opts +func (tx *Transaction) Send(destination, contentType string, body []byte, opts ...func(*frame.Frame) error) error { + if tx.completed { + return ErrCompletedTransaction + } + + f, err := createSendFrame(destination, contentType, body, opts) + if err != nil { + return err + } + + f.Header.Set(frame.Transaction, tx.id) + return tx.conn.sendFrame(f) +} + +// Ack sends an acknowledgement for the message to the server. The STOMP +// server will not process the acknowledgement until the transaction +// has been committed. If the subscription has an AckMode of AckAuto, calling +// this function has no effect. +func (tx *Transaction) Ack(msg *Message) error { + if tx.completed { + return ErrCompletedTransaction + } + + f, err := tx.conn.createAckNackFrame(msg, true) + if err != nil { + return err + } + + if f != nil { + f.Header.Set(frame.Transaction, tx.id) + err := tx.conn.sendFrame(f) + if err != nil { + return err + } + } + + return nil +} + +// Nack sends a negative acknowledgement for the message to the server, +// indicating that this client cannot or will not process the message and +// that it should be processed elsewhere. The STOMP server will not process +// the negative acknowledgement until the transaction has been committed. +// It is an error to call this method if the subscription has an AckMode +// of AckAuto, because the STOMP server will not be expecting any kind +// of acknowledgement (positive or negative) for this message. +func (tx *Transaction) Nack(msg *Message) error { + if tx.completed { + return ErrCompletedTransaction + } + + f, err := tx.conn.createAckNackFrame(msg, false) + if err != nil { + return err + } + + if f != nil { + f.Header.Set(frame.Transaction, tx.id) + err := tx.conn.sendFrame(f) + if err != nil { + return err + } + } + + return nil +} diff --git a/backend/services/stomp/validator.go b/backend/services/stomp/validator.go new file mode 100644 index 0000000..8e64a2c --- /dev/null +++ b/backend/services/stomp/validator.go @@ -0,0 +1,21 @@ +package stomp + +import ( + "github.com/go-stomp/stomp/v3/frame" +) + +// Validator is an interface for validating STOMP frames. +type Validator interface { + // Validate returns nil if the frame is valid, or an error if not valid. + Validate(f *frame.Frame) error +} + +func NewValidator(version Version) Validator { + return validatorNull{} +} + +type validatorNull struct{} + +func (v validatorNull) Validate(f *frame.Frame) error { + return nil +} diff --git a/backend/services/stomp/version.go b/backend/services/stomp/version.go new file mode 100644 index 0000000..d14296f --- /dev/null +++ b/backend/services/stomp/version.go @@ -0,0 +1,40 @@ +package stomp + +// Version is the STOMP protocol version. +type Version string + +const ( + V10 Version = "1.0" + V11 Version = "1.1" + V12 Version = "1.2" +) + +// String returns a string representation of the STOMP version. +func (v Version) String() string { + return string(v) +} + +// CheckSupported is used to determine whether a particular STOMP +// version is supported by this library. Returns nil if the version is +// supported, or ErrUnsupportedVersion if not supported. +func (v Version) CheckSupported() error { + switch v { + case V10, V11, V12: + return nil + } + return ErrUnsupportedVersion +} + +// SupportsNack indicates whether this version of the STOMP protocol +// supports use of the NACK command. +func (v Version) SupportsNack() bool { + switch v { + case V10: + return false + case V11, V12: + return true + } + + // unknown version + return false +} diff --git a/backend/services/stomp/version_test.go b/backend/services/stomp/version_test.go new file mode 100644 index 0000000..c9de88f --- /dev/null +++ b/backend/services/stomp/version_test.go @@ -0,0 +1,79 @@ +package stomp_test + +import ( + "testing" + + "github.com/go-stomp/stomp/v3" +) + +func TestSupportsNack(t *testing.T) { + testCases := []struct { + Version stomp.Version + SupportsNack bool + }{ + { + Version: stomp.Version("1.0"), + SupportsNack: false, + }, + { + Version: stomp.Version("1.1"), + SupportsNack: true, + }, + { + Version: stomp.Version("1.2"), + SupportsNack: true, + }, + { + Version: stomp.Version("xxx"), + SupportsNack: false, + }, + } + + for _, testCase := range testCases { + version := testCase.Version + expected := testCase.SupportsNack + actual := version.SupportsNack() + if expected != actual { + t.Errorf("Version %v: SupportsNack: expected %v, actual %v", + version, expected, actual) + } + + } + +} + +func TestCheckSupported(t *testing.T) { + testCases := []struct { + Version stomp.Version + Err error + }{ + { + Version: stomp.Version("1.0"), + Err: nil, + }, + { + Version: stomp.Version("1.1"), + Err: nil, + }, + { + Version: stomp.Version("1.2"), + Err: nil, + }, + { + Version: stomp.Version("2.2"), + Err: stomp.ErrUnsupportedVersion, + }, + } + + for _, testCase := range testCases { + version := testCase.Version + expected := testCase.Err + actual := version.CheckSupported() + if expected != actual { + t.Errorf("Version %v: CheckSupported: expected %v, actual %v", + version, expected, actual) + } + + } + +}

+_02$*`9md`<`$?-A*yffpKq#o8UI+9NW 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

WYiQ+NRx9rU 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