From df2c11ae67a95e3d80c5b1120b35c0a1f60f23c7 Mon Sep 17 00:00:00 2001 From: JamesFlare1212 Date: Thu, 20 Feb 2025 19:13:06 -0500 Subject: [PATCH] add csci-1200-hw-3 --- content/en/posts/csci-1200/hw-1/index.md | 2 +- .../hw-2/csci-1200-hw-2-flowchart-zh_cn.svg | 4 +- content/en/posts/csci-1200/hw-2/index.md | 2 +- content/en/posts/csci-1200/hw-3/index.md | 1206 +++++++++++++++++ .../posts/csci-1200/hw-3/matrix1_array.avif | Bin 0 -> 4323 bytes .../en/posts/csci-1200/hw-3/matrix_class.7z | Bin 0 -> 158568 bytes content/zh-cn/posts/csci-1200/hw-3/index.md | 1198 ++++++++++++++++ .../posts/csci-1200/hw-3/matrix1_array.avif | Bin 0 -> 4323 bytes .../posts/csci-1200/hw-3/matrix_class.7z | Bin 0 -> 158568 bytes 9 files changed, 2408 insertions(+), 4 deletions(-) create mode 100644 content/en/posts/csci-1200/hw-3/index.md create mode 100644 content/en/posts/csci-1200/hw-3/matrix1_array.avif create mode 100644 content/en/posts/csci-1200/hw-3/matrix_class.7z create mode 100644 content/zh-cn/posts/csci-1200/hw-3/index.md create mode 100644 content/zh-cn/posts/csci-1200/hw-3/matrix1_array.avif create mode 100644 content/zh-cn/posts/csci-1200/hw-3/matrix_class.7z diff --git a/content/en/posts/csci-1200/hw-1/index.md b/content/en/posts/csci-1200/hw-1/index.md index 249afba..3f0c62c 100644 --- a/content/en/posts/csci-1200/hw-1/index.md +++ b/content/en/posts/csci-1200/hw-1/index.md @@ -1,5 +1,5 @@ --- -title: CSCI 1200 - Homework 1 — Spotify Playlists +title: CSCI 1200 - Homework 1 - Spotify Playlists subtitle: date: 2025-02-15T13:38:46-05:00 lastmod: 2025-02-15T13:38:46-05:00 diff --git a/content/en/posts/csci-1200/hw-2/csci-1200-hw-2-flowchart-zh_cn.svg b/content/en/posts/csci-1200/hw-2/csci-1200-hw-2-flowchart-zh_cn.svg index 7d0bfde..42c00ae 100644 --- a/content/en/posts/csci-1200/hw-2/csci-1200-hw-2-flowchart-zh_cn.svg +++ b/content/en/posts/csci-1200/hw-2/csci-1200-hw-2-flowchart-zh_cn.svg @@ -1,3 +1,3 @@ - -

handleCancel()

No

No

Yes

No

Yes

No

Yes

Yes

No

Yes

在 riders 中查找 phoneNumber

找到 Rider?

在 drivers 中查找 phoneNumber

找到 Driver?

输出 'Account does not exist.'

Driver.state == 'On_the_way_to_pickup'?

输出 'You can only cancel...'

Driver 取消: 状态->'Available'
清空 Rider 关联信息

输出 'Your driver X has canceled...'

将 Rider 状态临时重置为 'Ready_to_request'
再自动为 Rider 找新司机 (类似 request )

找到新 Driver?

输出 'Sorry we can not find...'

更新新 Driver='On_the_way_to_pickup',
Rider='Driver_on_the_way'
输出 'We have found the closest driver...'

Rider.state == 'Driver_on_the_way'?

输出 'You can only cancel...'

输出 'Ride request for rider X is now canceled...',
Driver->'Available', Rider->'Ready_to_request'

handleRequest()

No

Yes

No

Yes

Driver_on_the_way

During_the_trip

Ready_to_request

No

Yes

检查 phoneNumber 格式 (xxx-xxx-xxxx)

有效?

输出 'Phone number is invalid.'

在 riders 中查找匹配的 phoneNumber

找到 Rider?

输出 'Account does not exist.'

Rider.state?

输出 'You have already requested a ride...'

输出 'You can not request a ride...'

输出 'Ride requested...' 信息,
在 drivers 中查找匹配车辆类型
且状态为 'Available' 的最近司机

找到可用 Driver?

输出 'Sorry we can not find a driver...'

计算距离, 更新状态:
Driver='On_the_way_to_pickup', Rider='Driver_on_the_way'
输出 'We have found the closest driver...'

Main Program

Yes

No

Yes

No

Start main()

读取命令行参数 'drivers.txt' 'riders.txt' 'output0.txt' 'output1.txt' 'output2.txt' 'phoneNumber' 'command'

loadDrivers(): 读取 'drivers.txt' 到 drivers

loadRiders(): 读取 'riders.txt' 到 riders

command == 'request'?

调用 handleRequest()

command == 'cancel'?

调用 handleCancel()

输出 'Invalid command.'

输出处理结果到 'output0.txt'

将更新后的 drivers 写到 'output1.txt'

将更新后的 riders 写到 'output2.txt'

End main()

\ No newline at end of file + +

handleCancel()

No

No

Yes

No

Yes

No

Yes

Yes

No

Yes

Search for phone number in riders

Find Rider?

Search for phone number in drivers

Find Driver?

Output 'Account does not exist.'

Driver.state == 'On_the_way_to_pickup'?

Output 'You can only cancel...'

Driver cancels: state->'Available'
Clear Rider associated information

Output 'Your driver X has canceled...'

Temporarily reset Rider state to 'Ready_to_request',
then automatically find new Driver (similar to request)

Find new Driver?

Output 'Sorry we can not find...'

Update new Driver='On_the_way_to_pickup',
Rider='Driver_on_the_way'
Output 'We have found the closest driver...`

Rider.state == 'Driver_on_the_way'?

Output 'You can only cancel...'

Output 'Ride request for rider X is now canceled...',
Driver->'Available', Rider->'Ready_to_request`

handleRequest()

No

Yes

No

Yes

Driver_on_the_way

During_the_trip

Ready_to_request

No

Yes

Check phone number format (xxx-xxx-xxxx)

Valid?

Output 'Phone number is invalid.'

Search for matching phone number in riders

Find Rider?

Output 'Account does not exist.'

Rider.state?

Output 'You have already requested a ride...'

Output 'You can not request a ride...'

Output 'Ride requested...' information,
Search for matching vehicle type
and state is 'Available' in drivers

Find available Driver?

Output 'Sorry we can not find a driver...'

Calculate distance, update status:
Driver='On_the_way_to_pickup', Rider='Driver_on_the_way'
Output 'We have found the closest driver...`

Main Program

Yes

No

Yes

No

Start main()

Read command line arguments 'drivers.txt' 'riders.txt' 'output0.txt' 'output1.txt' 'output2.txt' 'phoneNumber' 'command'

loadDrivers(): Read 'drivers.txt' into drivers

loadRiders(): Read 'riders.txt' into riders

command == 'request'?

Call handleRequest()

command == 'cancel'?

Call handleCancel()

Output 'Invalid command.'

Output processing results to 'output0.txt'

Write updated drivers to 'output1.txt'

Write updated riders to 'output2.txt'

End main()

\ No newline at end of file diff --git a/content/en/posts/csci-1200/hw-2/index.md b/content/en/posts/csci-1200/hw-2/index.md index 9cb6c23..4bf2b98 100644 --- a/content/en/posts/csci-1200/hw-2/index.md +++ b/content/en/posts/csci-1200/hw-2/index.md @@ -1,5 +1,5 @@ --- -title: CSCI 1200 - Homework 2 — Designing a Simple Uber +title: CSCI 1200 - Homework 2 - Designing a Simple Uber subtitle: date: 2025-01-22T09:28:20-05:00 lastmod: 2025-01-22T09:28:20-05:00 diff --git a/content/en/posts/csci-1200/hw-3/index.md b/content/en/posts/csci-1200/hw-3/index.md new file mode 100644 index 0000000..c3e2d3e --- /dev/null +++ b/content/en/posts/csci-1200/hw-3/index.md @@ -0,0 +1,1206 @@ +--- +title: CSCI 1200 - Homework 3 - Dynamic Matrices +subtitle: +date: 2025-02-16T16:54:48-05:00 +lastmod: 2025-02-16T16:54:48-05:00 +slug: csci-1200-hw-3 +draft: false +author: + name: James + link: https://www.jamesflare.com + email: + avatar: /site-logo.avif +description: This blog post provides a detailed guide on implementing a Matrix class in C++ for the CSCI 1200 course at RPI. The assignment covers basic matrix operations, binary operations, and advanced features like transposition and quartering. +keywords: ["Matrix","C++","RPI","CSCI 1200"] +license: +comment: true +weight: 0 +tags: + - CSCI 1200 + - Homework + - RPI + - C++ + - Programming +categories: + - Programming +collections: + - CSCI 1200 +hiddenFromHomePage: false +hiddenFromSearch: false +hiddenFromRss: false +hiddenFromRelated: false +summary: This blog post provides a detailed guide on implementing a Matrix class in C++ for the CSCI 1200 course at RPI. The assignment covers basic matrix operations, binary operations, and advanced features like transposition and quartering. +resources: + - name: featured-image + src: featured-image.jpg + - name: featured-image-preview + src: featured-image-preview.jpg +toc: true +math: true +lightgallery: true +password: +message: +repost: + enable: false + url: + +# See details front matter: https://fixit.lruihao.cn/documentation/content-management/introduction/#front-matter +--- + + + +## Assignment Requirements + +{{< details >}} +In this assignment you will build a custom class named Matrix, which will mimic traditional matrices (the plural of matrix). You will not be expected to have intimate knowledge of matrices, but if you are curious you can read more about them online: [Matrix (mathematics)](https://en.wikipedia.org/wiki/Matrix_(mathematics)). + +Matrices are used in many different applications, and over the years many optimizations, tricks, and numerical methods have been developed to quickly handle matrix operations and solve more complicated problems. + +Building this data structure will give you practice with pointers, dynamic array allocation and deallocation, 2D pointers, and class design. The implementation of this data structure will involve writing one new class. You are not allowed to use any of the STL container classes in your implementation or use any additional classes or structs besides Matrix. You will need to make use of the new and delete keywords. You can use array indexing `[]`. Please read the entire handout before beginning your implementation. + +## The Data Structure + +A matrix is a two-dimensional arrangement of numbers. In this assignment we will assume every matrix contains doubles. We refer to the size of a matrix with m rows and n columns as an m×n matrix. For example, shown below is a 4×3 matrix: + +$$ +\begin{bmatrix} +-6 & 10 & 1 \\\ +3 & -8 & 22 \\\ +-17 & 4 & 7 \\\ +2 & 5 & 0 +\end{bmatrix} +$$ + +We will represent the data inside our Matrix class by using a two-dimensional array. Because a matrix may be any size, you will need to use dynamic memory for this task. The same matrix shown above can be represented like so: + +{{< image src="matrix1_array.avif" width="480px" caption="4*3 matrix array representation" >}} + +We will denote $a_{i,j}$ as the value in matrix $A$ that is in row $i$ and column $j$. So a general matrix can be described as: + +$$ +A = \begin{bmatrix} +a_{0,0} & a_{0,1} & \cdots & a_{0,n-2} & a_{0,n-1} \\\ +a_{1,0} & a_{1,1} & \cdots & a_{1,n-2} & a_{1,n-1} \\\ +\vdots & \vdots & \ddots & \vdots & \vdots \\\ +a_{m-2,0} & a_{m-2,1} & \cdots & a_{m-2,n-2} & a_{m-2,n-1} \\\ +a_{m-1,0} & a_{m-1,1} & \cdots & a_{m-1,n-2} & a_{m-1,n-1} +\end{bmatrix} +$$ + +## Basic Functionality + +The private section of your class will be fairly small, and the main challenge will be working with the dynamic memory as you implement features to make the class functional. You can implement these methods in any order; we start by mentioning a few that will make debugging easier. + +The first thing we suggest is writing a constructor that takes two `unsigned ints`: a rows count and a columns count, and a double fill value. The constructor should create a data representation of a rows×columns matrix with every value initialized to fill. If either dimension is 0, the resulting matrix should be of size 0×0. + +Your class must support the equality operator `==` and the inequality operator `!=`. Two matrices are considered to be equal if they have the same value in every position. In other words, matrices A and B are equal if and only if + +$$(\forall_{i, j}|i \in \\{0,1,\ldots,m-2,m-1\\}, j \in \\{0,1,\ldots,n-2,n-1\\})a_{i,j} = b_{i,j}$$ + +$\forall$ is a common shorthand for “for all,” so $\forall_{i, j}$ means “for every value of i and j.” $\in$ is a common shorthand for “in”. + +Since a matrix has two dimensions, you will need to implement `num_rows()` and `num_cols()` which return the number of rows and the number of columns in the matrix respectively. We may want to change a previously filled matrix to an empty one, so you must write a `clear()` method as well. This method should reset the number of rows and columns to 0, and deallocate any memory currently held by the Matrix. + +Naturally we want to be able to access data stored in the Matrix class. To do so we will implement a “safe” accessor called `get()`, which takes in a `row, a column`, and a `double`. If the row and column are within the bounds of the matrix, then the value at `arow,col` should be stored in the `double`, and the function should return `true`. Otherwise the function should return `false`. + +A complementary, but similar task to accessing data is to be able to set a value at a particular position in the matrix. This is done through a safe modifier called `set()`. This function also takes in a `row, column`, and a `double` value. `set()` returns `false` if the position is out of bounds, and true if the position is valid. If the position is valid, the function should also set `arow,col` to the value of the double that was passed in. + +## Overloaded Output Operator + +At some point, it is probably a good idea to write a method to do output for us. Unlike previous classes where we wrote a method to do the printing, we will instead rely on a non-member overload of the `operator<<`. We have practiced overloading other operators for calls to `std::sort()` before, and this will be similar. Outside of the Matrix class definition, but still in your .cpp and .h files, you should write the following `operator:` + +```cpp +std::ostream& operator<< (std::ostream& out, const Matrix& m) +``` + +This will allow us to print one or more outputs sequentially. All of the following code should work if your `operator<<` is implemented correctly: + +```cpp +Matrix m1; +Matrix m2; +std::ofstream outfile(output_filename); //Assuming we already had the filename +std::cout << m1 << m2 << std::endl; +outfile << m1; +outfile << m2 << std::endl; +std::cout << "Done printing." << std::endl; +``` + +Let us assume in the above example that: + +$$ +m1 = \begin{bmatrix} \quad \end{bmatrix}, \quad +m2 = \begin{bmatrix} +3 & 5.21 \\\ +-2 & 4 \\\ +-18 & 1 +\end{bmatrix} +$$ + +Then the output should look something like this: + +```console +0 x 0 matrix: +[ ] +3 x 2 matrix: +[ 3 5.21 +-2 4 +-18 1 ] +Done printing. +``` + +We will ignore whitespace, but we do expect that your operator outputs the elements of the matrix in the right order, that the size output comes before the matrix and follows the format shown below - one row per line, and spacing between elements. Note that even in these examples, the alignment is not ideal. We would rather you focus on the task of implementing the Matrix class correctly and handling memory properly instead of focusing on making the output pretty. + +### Simple Matrix Operations + +To start with, we introduce some basic matrix operations. The first is the method `multiply_by_coefficient()`, which takes a double called a coefficient. The method should multiply every element in the matrix by the coefficient. For example: + +$$ +m1 = \begin{bmatrix} +1 & 2 \\\ +3 & 4 +\end{bmatrix}, \quad +m1\text{.multiply\\_by\\_coefficient(5)} \Longrightarrow \begin{bmatrix} +5 & 10 \\\ +15 & 20 +\end{bmatrix} +$$ + +Another common operation is to swap two rows of a matrix. This will be accomplished by the method `swap_row()`, which takes two arguments of type `unsigned int`: a source row number and a target row number. If both rows are inside the bounds of the matrix, then the function should switch the values in the two rows and return `true`. Otherwise the function should return `false`. For example: + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 \\\ +4 & 5 & 6 \\\ +7 & 8 & 9 +\end{bmatrix}, \quad +m1\text{.swap\\_row(1,2)} \Longrightarrow \begin{bmatrix} +1 & 2 & 3 \\\ +7 & 8 & 9 \\\ +4 & 5 & 6 +\end{bmatrix} +$$ + +> [!NOTE] +> With the basic functions and `swap_row()` done, the tests related to the provided `rref()` function in `matrix_main.cpp` can be called. We do not explain the function in detail here, and you don’t need to know how it works, but computing the Reduced Row Echelon Form (RREF) can be used to find an inverse matrix, which is important in many fields. We use a simple to implement method called Gauss-Jordan Elimination, which you can read about here: [Gaussian elimination](https://en.wikipedia.org/wiki/Gaussian_elimination). There are other techniques for finding the RREF that are better, but we chose this one for its simplicity. + +It is common to need to “flip” a matrix, a process called transposition. You will need to write the `transpose()` method, which has a return type of void. Formally, transposition of $m \times n$ matrix $A$ into $n \times m$ matrix $A^T$ is defined as: + +$$(\forall_{i, j}|i \in \\{0,1,\ldots,m-2,m-1\\}, j \in \\{0,1,\ldots,n-2,n-1\\})a_{i,j}^{T} = a_{j,i}$$ + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 \\\ +4 & 5 & 6 +\end{bmatrix}, \quad +m1\text{.transpose\\_row(1,2)} \Longrightarrow \begin{bmatrix} +1 & 4 \\\ +2 & 5 \\\ +3 & 6 +\end{bmatrix} +$$ + +## Binary Matrix Operations + +Binary matrix operations are ones that involve two matrices. To keep things simple, we will write them as methods (not operators) that are inside the class definition, so the current Matrix object will always be the “left-hand” matrix $A$. You will be required to implement both `add()` and `subtract()`. Both functions take in just one argument, a second Matrix which we will refer to as $B$, and modify $A$ if the dimensions of $A$ and $B$ match. If the dimensions match, the functions should return `true`, otherwise they should return `false`. Addition of two matrices, $C = A + B$, and subtraction of two matrices, $D = A − B$ are formally defined as: + +$$ +(\forall_{i, j}|i \in \\{0,1,\ldots,m-2,m-1\\}, j \in \\{0,1,\ldots,n-2,n-1\\})C_{i,j} = a_{i,j} + b_{i,j} \\\ +(\forall_{i, j}|i \in \\{0,1,\ldots,m-2,m-1\\}, j \in \\{0,1,\ldots,n-2,n-1\\})D_{i,j} = a_{i,j} - b_{i,j} +$$ + +Consider these two matrices: + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 \\\ +4 & 5 & 6 +\end{bmatrix}, \quad +m2 = \begin{bmatrix} +4 & 16 & 25 \\\ +14 & 3.4 & 3.64159 +\end{bmatrix} +$$ + +$$ +m1 + m2 = \begin{bmatrix} +1 + 4 & 2 + 16 & 3 + 25 \\\ +4 + 14 & 5 + 3.4 & 6 + 3.64159 +\end{bmatrix} += \begin{bmatrix} +5 & 18 & 28 \\\ +18 & 8.4 & 9.64159 +\end{bmatrix} +$$ + +$$ +m1 - m2 = \begin{bmatrix} +1 - 4 & 2 - 16 & 3 - 25 \\\ +4 - 14 & 5 - 3.4 & 6 - 3.64159 +\end{bmatrix} += \begin{bmatrix} +-3 & -14 & -22 \\\ +-10 & 1.6 & 2.35841 +\end{bmatrix} +$$ + +## Harder Matrix Operations + +If we want to get the contents of an entire row or column, it’s annoying to have to extract the values one by one using `get()`, especially since our implementation is a “safe” accessor so we can’t use some of the coding shortcuts we normally use. To fix this, you will implement two more accessors, `get_row()` and `get_col()`. Both functions take one unsigned int and return a `double*`. For `get_row()` the argument is the number of row to retrieve, while for `get_col()` the argument is the number of the column to retrieve. If the requested row/column is outside of the matrix bounds, the method should return a pointer set to `NULL`. + +The final method we expect you to implement, `quarter()`, is not a traditional matrix operation. The method takes no arguments and returns a `Matrix*` containing four new Matrix elements in order: an Upper Left (UL) quadrant, an Upper Right (UR) quadrant, a Lower Left (LL) quadrant, and finally a Lower Right (LR) quadrant. All four quadrants should be the same size. Remember that when a function ends all local variables go out of scope and are destroyed, so you will need to be particularly careful about how you construct and return the quadrants. On the next page are two examples of the quarter operation: + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 & 4 \\\ +5 & 6 & 7 & 8 +\end{bmatrix}, \quad +m2 = \begin{bmatrix} +1 & 2 & 3 & 4 \\\ +5 & 6 & 7 & 8 \\\ +9 & 10 & 11 & 12 +\end{bmatrix} +$$ + +$$ +m1^{(\mathrm{UL})} = \begin{bmatrix} 1 & 2 \end{bmatrix}, \quad +m1^{(\mathrm{UR})} = \begin{bmatrix} 3 & 4 \end{bmatrix}, \quad +m1^{(\mathrm{LL})} = \begin{bmatrix} 5 & 6 \end{bmatrix}, \quad +m1^{(\mathrm{LR})} = \begin{bmatrix} 7 & 8 \end{bmatrix} +$$ + +$$ +m2^{(\mathrm{UL})} = \begin{bmatrix} +1 & 2 \\\ +5 & 6 +\end{bmatrix}, \quad +m2^{(\mathrm{UR})} = \begin{bmatrix} +3 & 4 \\\ +7 & 8 +\end{bmatrix}, \quad +m2^{(\mathrm{LL})} = \begin{bmatrix} +5 & 6 \\\ +9 & 10 +\end{bmatrix}, \quad +m2^{(\mathrm{LR})} = \begin{bmatrix} +7 & 8 \\\ +11 & 12 +\end{bmatrix} +$$ + +## Testing and Debugging + +We provide a [matrix_main.cpp](matrix_main.cpp) file with a wide variety of tests of the Matrix class. Some of these tests are initially commented out. We recommend that you get your class working on the basic tests, and then uncomment the additional tests as you implement and debug the remaining functionality. Study the provided test cases to understand the arguments and return values. + +Note: Do not edit the provided [matrix_main.cpp](matrix_main.cpp) file, except to uncomment the provided test cases as you work through your implementation and to add your own test cases where specified. + +The `assert()` function is used throughout the test code. This is a function available in both C and C++ that will do nothing if the condition is true, and will cause an immediate crash if the condition is false. If the condition is false, your command line should show the assertion that failed immediate prior to the crash. + +We recommend using a memory debugging tool to find memory errors and memory leaks. Information on installation and use of the memory debuggers “Dr. Memory” (available for Linux/MacOSX/Windows) and “Valgrind” (available for Linux/OSX) is presented on the course webpage: http://www.cs.rpi.edu/academics/courses/fall23/csci1200/memory_debugging.php + +The homework submission server will also run your code with Dr. Memory to search for memory problems. Your program must be memory error free and memory leak free to receive full credit. + +## Your Task & Provided Code + +You must implement the Matrix class as described in this handout. Your class should be split between a .cpp and a .h file. You should also include some extra tests in the StudentTest() function in [matrix_main.cpp](matrix_main.cpp). When implementing the class, pay particular attention to correctly implementing the copy constructor, assignment operator, and destructor. + +As you implement your classes, be careful with return types, the const keyword, and passing by reference. If you have correctly implemented the Matrix class, then running the provided [matrix_main.cpp](matrix_main.cpp) file with your class, should produce the output provided in [sample_output.txt](sample_output.txt). We are not going to be particularly picky about differences in whitespace, but you should be making an effort to try and match both spacing and newlines between our output and your output. + +## Submission + +You will need to submit your [matrix_main.cpp](matrix_main.cpp), Matrix.cpp, Matrix.h, and README.txt file. Be aware that Submitty will be using an instructor copy of [matrix_main.cpp](matrix_main.cpp) for most of the tests, so you must make sure your Matrix implementation can compile given the provided file. Also make sure to name your class implementation files with a capital letter since Linux is case sensitive. + +Be sure to write your own new test cases and don’t forget to comment your code! Use the provided template [README.txt](README.txt) file for notes you want the grader to read. Fill out the order notation section as well in the [README.txt](README.txt) file. You must do this assignment on your own, as described in the “Collaboration Policy & Academic Integrity” handout. If you did discuss this assignment, problem solving techniques, or error messages, etc. with anyone, please list their names in your README.txt file. + +**Due Date**: 02/06/2025, Thursday, 10pm. + +## Rubric + +20 pts + +- README.txt Completed (3 pts) + - One of name, collaborators, or hours not filled in. (-1) + - Two or more of name, collaborators, or hours not filled in. (-2) + - No reflection. (-1) +- OVERALL CLASS DECLARATION & IMPLEMENTATION AND CODING STYLE (Good class design, split into a .h and .cpp file. Functions > 1 line are in .cpp file. Organized class implementation and reasonable comments throughout. Correct use of const/const& and of class method const. ) (5 pts) + - No credit (significantly incomplete implementation) (-5) + - No documentation for Matrix itself is provided (function documentation and section headings don't count). (-1) + - Function bodies containing more than one statement are placed in the .h file. (okay for templated classes) (-2) + - Functions are not well documented or are poorly commented, in either the .h or the .cpp file. (-1) + - Improper uses or omissions of const and reference. (-1) + - Overly cramped, excessive whitespace, or poor indentation. (-1) + - Poor choice of variable names: non-descriptive names (e.g. 'vec', 'str', 'var'), single-letter variable names (except single loop counter), etc. (-2) +- DATA REPRESENTATION (4 pts) + - No credit (significantly incomplete implementation). (-4) + - Uses STL data structures (lists, vectors, etc). (-4) + - Member variables are public. (-2) +- ORDER NOTATION (Readme contains correct analysis of order notation, including proper notation and use of provided variables.) (5 pts) +- ADDITIONAL TEST CASES (A wide variety of additional student-written test cases.) (4 pts) + - Does not test `transpose()`. (-1) + - Does not test `multiply_by_coefficient()`. (-1) + - Does not test `get_col()`. (-1) + - Does not test corner cases of some kind (rows or cols = 0, quartering with odd dimensions, etc). (-1) + - No test cases, or else trivial/minimal ones that only test things covered in SimpleTests. (-4) +{{< /details >}} + +## Supporting Files + +{{< link href="matrix_class.7z" content="matrix_class.7z" title="Download matrix_class.7z" download="matrix_class.7z" card=true >}} + +## Program Design + +First, we need to figure out the design for the Matrix class. Based on the given information, I made a diagram. + +```mermaid +classDiagram + class Matrix { + %% Data members + - rows : unsigned int + - cols : unsigned int + - data : double**\ + + %% Private Methods + - allocateMemory() + - deallocateMemory() + + %% Constructors + + Matrix() + + %% Destructor + + ~Matrix() + + %% Public Methods + + operator=() + + num_rows() + + num_cols() + + clear() + + get() + + set() + + multiply_by_coefficient() + + swap_row() + + transpose() + + add() + + subtract() + + get_row() + + get_col() + + quarter() + + operator==() + + operator!=() + + %% Friend Operator + + operator<<() + } +``` + +## Pitfalls + +1. The matrix is not always odd number in size. So, when we handle some case near the edges. We need extra effort. +2. We need write some test cases by ourself. And they will be test by hidden auto grader + +## Solution + +### Matrix.h + +```cpp +#ifndef MATRIX_H +#define MATRIX_H + +#include + +class Matrix { +public: + // Constructors & Destructor + Matrix(); // Default constructor (creates an empty 0 x 0 matrix) + Matrix(unsigned int rows, unsigned int cols, double fill); + Matrix(const Matrix &other); + ~Matrix(); + + Matrix& operator=(const Matrix &other); + + // Accessors for dimensions + unsigned int num_rows() const; + unsigned int num_cols() const; + + // Clears the matrix (deallocates any memory and sets size to 0 x 0) + void clear(); + + // Safe accessor and modifier methods + bool get(unsigned int row, unsigned int col, double &value) const; + bool set(unsigned int row, unsigned int col, double value); + + // Simple matrix operations + void multiply_by_coefficient(double coefficient); + bool swap_row(unsigned int row1, unsigned int row2); + void transpose(); + + // Binary matrix operations (modifies this matrix) + bool add(const Matrix &other); + bool subtract(const Matrix &other); + + // Advanced accessors: returns a dynamic array with the requested row or column. + // The caller is responsible for deleting the returned array. + double* get_row(unsigned int row) const; + double* get_col(unsigned int col) const; + + // Quarter the matrix into four equally sized quadrants. + // The four matrices are returned in a dynamically allocated array in the order: + // UL, UR, LL, LR. + // If the matrix is too small (i.e. less than 2 rows or 2 cols), returns four empty matrices. + Matrix* quarter() const; + + // Equality operators + bool operator==(const Matrix &other) const; + bool operator!=(const Matrix &other) const; + + // Friend overloaded output operator for printing the matrix. + friend std::ostream& operator<<(std::ostream &out, const Matrix &m); + +private: + unsigned int rows; + unsigned int cols; + double** data; + + // Helper functions to allocate and deallocate the 2D array. + void allocate(unsigned int r, unsigned int c, double fill); + void deallocate(); +}; + +#endif +``` + +### Matrix.cpp + +```cpp +#include "Matrix.h" +#include + +//------------------------- +// Private Helper Functions +//------------------------- + +// Allocates memory for an r x c matrix and fills every element with 'fill' +void Matrix::allocate(unsigned int r, unsigned int c, double fill) { + rows = r; + cols = c; + data = new double*[rows]; + for (unsigned int i = 0; i < rows; i++) { + data[i] = new double[cols]; + for (unsigned int j = 0; j < cols; j++) { + data[i][j] = fill; + } + } +} + +// Deallocates the memory used by the matrix +void Matrix::deallocate() { + if (data) { + for (unsigned int i = 0; i < rows; i++) { + delete [] data[i]; + } + delete [] data; + } + data = nullptr; + rows = 0; + cols = 0; +} + +//------------------------- +// Constructors & Destructor +//------------------------- + +// Default constructor: creates an empty matrix (0 x 0) +Matrix::Matrix() : rows(0), cols(0), data(nullptr) {} + +// Parameterized constructor: creates an r x c matrix filled with 'fill' +// If either dimension is 0, an empty matrix is created. +Matrix::Matrix(unsigned int r, unsigned int c, double fill) : rows(0), cols(0), data(nullptr) { + if (r == 0 || c == 0) { + // Create an empty matrix. + rows = 0; + cols = 0; + data = nullptr; + } else { + allocate(r, c, fill); + } +} + +// Copy constructor +Matrix::Matrix(const Matrix &other) : rows(0), cols(0), data(nullptr) { + if (other.rows == 0 || other.cols == 0) { + rows = 0; + cols = 0; + data = nullptr; + } else { + allocate(other.rows, other.cols, 0.0); + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] = other.data[i][j]; + } + } + } +} + +// Destructor +Matrix::~Matrix() { + deallocate(); +} + +// Assignment operator +Matrix& Matrix::operator=(const Matrix &other) { + if (this == &other) + return *this; + + deallocate(); + + if (other.rows == 0 || other.cols == 0) { + rows = 0; + cols = 0; + data = nullptr; + } else { + allocate(other.rows, other.cols, 0.0); + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] = other.data[i][j]; + } + } + } + return *this; +} + +//------------------------- +// Dimension Accessors & Clear +//------------------------- + +unsigned int Matrix::num_rows() const { + return rows; +} + +unsigned int Matrix::num_cols() const { + return cols; +} + +void Matrix::clear() { + deallocate(); +} + +//------------------------- +// Safe Accessors & Modifiers +//------------------------- + +// get(): If (row,col) is within bounds, set value and return true; otherwise, return false. +bool Matrix::get(unsigned int row, unsigned int col, double &value) const { + if (row >= rows || col >= cols) + return false; + value = data[row][col]; + return true; +} + +// set(): If (row,col) is valid, assign value and return true; else return false. +bool Matrix::set(unsigned int row, unsigned int col, double value) { + if (row >= rows || col >= cols) + return false; + data[row][col] = value; + return true; +} + +//------------------------- +// Simple Matrix Operations +//------------------------- + +// Multiplies every element in the matrix by the given coefficient. +void Matrix::multiply_by_coefficient(double coefficient) { + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] *= coefficient; + } + } +} + +// Swaps the entire contents of row1 and row2 if both indices are valid. +bool Matrix::swap_row(unsigned int row1, unsigned int row2) { + if (row1 >= rows || row2 >= rows) + return false; + double* temp = data[row1]; + data[row1] = data[row2]; + data[row2] = temp; + return true; +} + +// Transposes the matrix in place. +// For non-square matrices, a new 2D array is allocated, the contents are transposed, +// and the old memory is deallocated. +void Matrix::transpose() { + if (rows == 0 || cols == 0) + return; + + // Allocate new array with swapped dimensions. + double** newData = new double*[cols]; + for (unsigned int i = 0; i < cols; i++) { + newData[i] = new double[rows]; + } + // Transpose: newData[j][i] becomes data[i][j] + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + newData[j][i] = data[i][j]; + } + } + // Free old data. + for (unsigned int i = 0; i < rows; i++) { + delete [] data[i]; + } + delete [] data; + + // Swap dimensions. + unsigned int temp = rows; + rows = cols; + cols = temp; + data = newData; +} + +//------------------------- +// Binary Matrix Operations +//------------------------- + +// Adds the corresponding elements of other to this matrix. +// Returns true if dimensions match, else returns false. +bool Matrix::add(const Matrix &other) { + if (rows != other.rows || cols != other.cols) + return false; + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] += other.data[i][j]; + } + } + return true; +} + +// Subtracts the corresponding elements of other from this matrix. +// Returns true if dimensions match, else returns false. +bool Matrix::subtract(const Matrix &other) { + if (rows != other.rows || cols != other.cols) + return false; + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] -= other.data[i][j]; + } + } + return true; +} + +//------------------------- +// Advanced Accessors +//------------------------- + +// Returns a new dynamically allocated array containing the requested row. +// Returns nullptr if the row index is out of bounds. +double* Matrix::get_row(unsigned int row) const { + if (row >= rows) + return nullptr; + double* rowArray = new double[cols]; + for (unsigned int j = 0; j < cols; j++) { + rowArray[j] = data[row][j]; + } + return rowArray; +} + +// Returns a new dynamically allocated array containing the requested column. +// Returns nullptr if the column index is out of bounds. +double* Matrix::get_col(unsigned int col) const { + if (col >= cols) + return nullptr; + double* colArray = new double[rows]; + for (unsigned int i = 0; i < rows; i++) { + colArray[i] = data[i][col]; + } + return colArray; +} + +//------------------------- +// Quarter Operation +//------------------------- + +// Splits the matrix into four quadrants (UL, UR, LL, LR) and returns them in a new array. +// All four quadrants will have the same dimensions. +// If the matrix has fewer than 2 rows or 2 columns, returns four empty matrices. +Matrix* Matrix::quarter() const { + Matrix* quadrants = new Matrix[4]; + if (rows < 2 || cols < 2) { + // Return four empty matrices. + return quadrants; + } + + // Determine quadrant dimensions. + // Using (dim + 1) / 2 ensures that if the dimension is odd the shared middle row/col is included. + unsigned int quad_rows = (rows + 1) / 2; + unsigned int quad_cols = (cols + 1) / 2; + + quadrants[0] = Matrix(quad_rows, quad_cols, 0.0); // Upper Left (UL) + quadrants[1] = Matrix(quad_rows, quad_cols, 0.0); // Upper Right (UR) + quadrants[2] = Matrix(quad_rows, quad_cols, 0.0); // Lower Left (LL) + quadrants[3] = Matrix(quad_rows, quad_cols, 0.0); // Lower Right (LR) + + // Fill UL quadrant: rows 0 .. quad_rows-1, cols 0 .. quad_cols-1. + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[0].set(i, j, data[i][j]); + } + } + + // Fill UR quadrant: rows 0 .. quad_rows-1, cols (cols - quad_cols) .. (cols - 1). + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[1].set(i, j, data[i][(cols - quad_cols) + j]); + } + } + + // Fill LL quadrant: rows (rows - quad_rows) .. (rows - 1), cols 0 .. quad_cols-1. + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[2].set(i, j, data[(rows - quad_rows) + i][j]); + } + } + + // Fill LR quadrant: rows (rows - quad_rows) .. (rows - 1), cols (cols - quad_cols) .. (cols - 1). + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[3].set(i, j, data[(rows - quad_rows) + i][(cols - quad_cols) + j]); + } + } + + return quadrants; +} + +//------------------------- +// Equality Operators +//------------------------- + +bool Matrix::operator==(const Matrix &other) const { + if (rows != other.rows || cols != other.cols) + return false; + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + if (data[i][j] != other.data[i][j]) + return false; + } + } + return true; +} + +bool Matrix::operator!=(const Matrix &other) const { + return !(*this == other); +} + +//------------------------- +// Overloaded Output Operator +//------------------------- + +std::ostream& operator<<(std::ostream &out, const Matrix &m) { + out << m.rows << " x " << m.cols << " matrix:" << std::endl; + out << "["; + if (m.rows > 0 && m.cols > 0) { + for (unsigned int i = 0; i < m.rows; i++) { + out << " "; + for (unsigned int j = 0; j < m.cols; j++) { + out << m.data[i][j]; + if (j < m.cols - 1) + out << " "; + } + if (i < m.rows - 1) + out << std::endl; + } + out << " ]"; + } else { + out << " ]"; + } + return out; +} +``` + +### matrix_main.cpp (with more test cases) + +```cpp +// ======================================================= +// +// IMPORTANT NOTE: Do not modify this file +// (except to uncomment the provided test cases +// and add your test cases where specified) +// +// ======================================================= + + +#include +#include +#include +#include +#include "Matrix.h" + +#define __EPSILON 0.0000000001 //Need this to compare doubles because representation. + +void SimpleTest(); //Some basic tests +void StudentTest(); //Write your own test cases here + +//Function to test a ton of matrices at once. +void BatchTest(double start, double step, unsigned int rows, unsigned int cols, + unsigned int num); + +//Quick function that returns if two doubles are very similar to each other. +bool double_compare(double a, double b); + +//Uses Gauss-Jordan elimination to create a Reduced Row Echelon Form matrix. +Matrix rref(const Matrix& m); + +int main(){ + SimpleTest(); + std::cout << "Completed all simple tests." << std::endl; + + //Uncomment this to allocate a lot of 100x100 matrices so leaks will be bigger. + BatchTest(100,0.1,100,100,50); + std::cout << "Completed all batch tests." << std::endl; + + StudentTest(); + std::cout << "Completed all student tests." << std::endl; + + return 0; +} + +////////////////Test functions////////////////////// +//Some basic tests +void SimpleTest(){ //well behaved getrow/read after + //Default constructor + Matrix m1; + assert(m1.num_rows() == 0 && m1.num_cols() == 0); + + //Copy constructor + Matrix m2(3,4,0); + assert(m2.num_rows() == 3 && m2.num_cols() == 4); + + Matrix m2_copy(m2); + assert(m2_copy.num_rows() == 3 && m2_copy.num_cols() == 4); + m2_copy.set(1,1,27); + double d0; + assert(m2.get(1,1,d0)); + assert(double_compare(d0,0.0)); + assert(m2_copy.get(1,1,d0)); + assert(double_compare(d0,27)); + + //Equality and Inequality + Matrix m3; + assert(m1 == m3); + assert(m1 != m2); + + //Printing + std::cout << "Empty matrix:"; + std::cout << m1 << std::endl; + + std::cout << "Zeroed 3x4 matrix:"; + std::cout << m2 << std::endl; + + std::cout << "One after the other:"; + std::cout << m1 << m2 << std::endl; + + //Set & get + Matrix m5(4,4,2); + Matrix m6(4,4,12); + assert(m6.set(2,1,7)); + assert(m6.set(3,3,11)); + double d1; + assert(m6.get(2,1,d1)); + assert(d1==7); + + //Addition + std::cout << "Adding m5 and m6" << std::endl; + std::cout << m5 << m6 << std::endl; + + Matrix m7; + m7 = m5; + Matrix m8(m5); + assert(m7 == m8); + + assert(m7.add(m6)); + std::cout << "The result" << std::endl; + std::cout << m7 << std::endl; + + double* r1 = NULL; + r1 = m7.get_row(2); + assert(r1[0] == 14 && r1[1] == 9); + + delete [] r1; //Remember we need to clean up dynamic allocations. + + Matrix m9(3,6,0); + m9.set(0,0,1); + m9.set(0,1,2); + m9.set(0,2,1); + m9.set(0,3,1); + m9.set(1,0,2); + m9.set(1,1,3); + m9.set(1,2,-1); + m9.set(1,4,1); + m9.set(2,0,3); + m9.set(2,1,-2); + m9.set(2,2,-1); + m9.set(2,5,1); + + std::cout << "Attempting Gauss-Jordan reduced row echelon form." + << m9 << std::endl; + Matrix m12 = rref(m9); + std::cout << m12 << std::endl; + double comparison_value; + assert(m12.get(0,3,comparison_value)); + assert(double_compare(comparison_value,0.25)); + assert(m12.get(0,1,comparison_value)); + assert(double_compare(comparison_value,0.0)); + assert(m12.get(1,5,comparison_value)); + assert(double_compare(comparison_value,-3.00/20)); + assert(m9.get(0,3,comparison_value)); + assert(double_compare(comparison_value,1.0)); + assert(m9.get(0,1,comparison_value)); + assert(double_compare(comparison_value,2.0)); + assert(m9.get(1,5,comparison_value)); + assert(double_compare(comparison_value,0.0)); + + Matrix m11(3,4,0); + m11.set(0,0,1); + m11.set(0,1,2); + m11.set(0,2,3); + m11.set(0,3,4); + + m11.set(1,0,5); + m11.set(1,1,6); + m11.set(1,2,7); + m11.set(1,3,8); + + m11.set(2,0,9); + m11.set(2,1,10); + m11.set(2,2,11); + m11.set(2,3,12); + + std::cout << "M11 to be quartered: " << std::endl; + std::cout << m11 << std::endl; + + Matrix* ma1 = NULL; + ma1 = m11.quarter(); + assert(ma1 != NULL); + + std::cout << "UL: " << std::endl << ma1[0] << std::endl; + std::cout << "UR: " << std::endl << ma1[1] << std::endl; + std::cout << "LL: " << std::endl << ma1[2] << std::endl; + std::cout << "LR: " << std::endl << ma1[3] << std::endl; + + for(unsigned int i=0; i<4; i++){ + assert((ma1[i].num_rows() == 2) && (ma1[i].num_cols() == 2)); + } + + //Upper Left + assert(ma1[0].get(0,0,comparison_value)); + assert(double_compare(comparison_value,1)); + assert(ma1[0].get(1,1,comparison_value)); + assert(double_compare(comparison_value,6)); + + //Upper Right + assert(ma1[1].get(0,0,comparison_value)); + assert(double_compare(comparison_value,3)); + assert(ma1[1].get(1,1,comparison_value)); + assert(double_compare(comparison_value,8)); + + //Lower Left + assert(ma1[2].get(0,0,comparison_value)); + assert(double_compare(comparison_value,5)); + assert(ma1[2].get(1,1,comparison_value)); + assert(double_compare(comparison_value,10)); + + //Lower Right + assert(ma1[3].get(0,0,comparison_value)); + assert(double_compare(comparison_value,7)); + assert(ma1[3].get(1,1,comparison_value)); + assert(double_compare(comparison_value,12)); + + delete [] ma1; +} + +//Write your own test cases here +void StudentTest() { + double val; + + // Test 1: Transpose a non-square matrix. + Matrix m(2, 3, 1.0); + m.set(0, 0, 1.0); m.set(0, 1, 2.0); m.set(0, 2, 3.0); + m.set(1, 0, 4.0); m.set(1, 1, 5.0); m.set(1, 2, 6.0); + m.transpose(); // Now m should be 3 x 2. + assert(m.num_rows() == 3 && m.num_cols() == 2); + m.get(0, 0, val); assert(val == 1.0); + m.get(0, 1, val); assert(val == 4.0); + m.get(1, 0, val); assert(val == 2.0); + m.get(1, 1, val); assert(val == 5.0); + m.get(2, 0, val); assert(val == 3.0); + m.get(2, 1, val); assert(val == 6.0); + + // Test 2: Multiply matrix by a coefficient. + Matrix m2(2, 2, 2.0); + m2.multiply_by_coefficient(3.0); + m2.get(0, 0, val); assert(val == 6.0); + m2.get(1, 1, val); assert(val == 6.0); + + // Test 3: get_col() functionality. + Matrix m3(3, 3, 0.0); + int counter = 1; + for (unsigned int i = 0; i < 3; i++) { + for (unsigned int j = 0; j < 3; j++) { + m3.set(i, j, counter++); + } + } + double* col1 = m3.get_col(1); + // Expecting column 1 to be: 2, 5, 8. + assert(col1[0] == 2); + assert(col1[1] == 5); + assert(col1[2] == 8); + delete [] col1; + + // Test 4: swap_row(). + Matrix m4(2, 3, 0.0); + m4.set(0, 0, 1); m4.set(0, 1, 2); m4.set(0, 2, 3); + m4.set(1, 0, 4); m4.set(1, 1, 5); m4.set(1, 2, 6); + m4.swap_row(0, 1); + m4.get(0, 0, val); assert(val == 4); + m4.get(1, 0, val); assert(val == 1); + + // Test 5: subtract(). + Matrix m5(2, 2, 10.0); + Matrix m6(2, 2, 3.0); + bool success = m5.subtract(m6); + assert(success); + m5.get(0, 0, val); assert(val == 7.0); + + // Test 6: quarter() on an even-dimensioned matrix. + Matrix m7(4, 4, 0.0); + counter = 1; + for (unsigned int i = 0; i < 4; i++) { + for (unsigned int j = 0; j < 4; j++) { + m7.set(i, j, counter++); + } + } + Matrix* quads = m7.quarter(); + // For a 4 x 4 matrix, quadrant size should be (4+1)/2 = 2 (integer division) + assert(quads[0].num_rows() == 2 && quads[0].num_cols() == 2); + // Upper Left quadrant should be: + // [ 1 2 ] + // [ 5 6 ] + quads[0].get(0, 0, val); assert(val == 1); + quads[0].get(0, 1, val); assert(val == 2); + quads[0].get(1, 0, val); assert(val == 5); + quads[0].get(1, 1, val); assert(val == 6); + delete [] quads; + + // Test 7: clear() method. + Matrix m8(3, 3, 9.0); + m8.clear(); + assert(m8.num_rows() == 0 && m8.num_cols() == 0); + + // Test 8: Self-assignment. + Matrix m9(2, 2, 7.0); + m9 = m9; + m9.get(0, 0, val); assert(val == 7.0); + + // Test 9: Binary add() with mismatched dimensions. + Matrix m10(2, 3, 1.0); + Matrix m11(3, 2, 1.0); + bool res = m10.add(m11); + assert(res == false); + + // Test 10: Binary subtract() with mismatched dimensions. + res = m10.subtract(m11); + assert(res == false); +} + + +////////////////Utility functions////////////////////// + +/* Function that quickly populates a rows x cols matrix with values from + * start in increments of step. Does this num_times times. + */ +void BatchTest(double start, double step, unsigned int rows, unsigned int cols, + unsigned int num){ + Matrix* m_arr = new Matrix[num]; + for(unsigned int i=0; i=ret.num_cols()){ + return ret; + } + + ret.get(i,curr_col,dummy); + if(double_compare(dummy,0.0)){ + //Swap with a nonzero row + for(unsigned int scan_i = i+1; scan_i < ret.num_rows(); scan_i++){ + ret.get(scan_i,curr_col,dummy); + if(!double_compare(dummy,0.0)){ + ret.swap_row(scan_i,i); + break; + } + } + } + + //Now we know ret i,curr_col is non-zero so we can use it as a pivot. + double pivot; + ret.get(i,curr_col,pivot); + for(unsigned int j=0; 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 literal 0 HcmV?d00001 diff --git a/content/en/posts/csci-1200/hw-3/matrix_class.7z b/content/en/posts/csci-1200/hw-3/matrix_class.7z new file mode 100644 index 0000000000000000000000000000000000000000..9527f147b604b962fd61bcd38f29bba0a8c4190e GIT binary patch literal 158568 zcmV(uKuf9NybMH z6QTfjI~?naWD^%5&6>qBzQXIr!X#e~Y^G1gDj$s7;6KrG)kc?Iyp2X|SbWFnVv)m3 z+(mRwE)U7~E}94eM>W}DHbEj2q%6Z+;|!`fNu_P0NYBx;E7HIGr+?RvDw<6bTJ{H* znhJVErQ$I#$Zw4xJApq6XGHyv-hJ5N_0{{9Sd4tu2vE$UGrp2I`;LR%xMn`1Qs6iPjP8Qh7BnQbX$O4WwQN`z47f*t}xvaY) zN%+LhhGyiv(fFj@lp0br=K&&u`GC_`iYxFr-p?sFhxbL8l1Zgf(-IE$pE5WIqOqKb z;nR+n2dkUHUFNze`Xd{!V;M&h<`>Xh9>!VW7;zCFfBFt=#n-r)`t1i>-FZiY;+%gi z>JcExIh!pJrA8q8L^U*@1Uu6RGry!)Nn67^0Hp&sdWgferhKElF(mqz?5hw+G4JGe zA&WiefqHa8!ixn6kx5oKrRgH0iPpXWOn*C1NFucd`NG@j=ND2UF!C@obxe>@D&aN` z79uG^f}o@wC|GJp;Fe+UmWg{ng+M3`^+oVbn)FP67dl1Lt$!*9tczeA$%E6BXOarO zp5|q#6e-TcM@JlOEH9v(oG?F2I(|SbG&H!52X=9IqTQKj!P$+mVw0Ml1eU#xXLwI+ zB(|46Zf!)eA4lpVh+w+;{1~My)+5V2Zt2RQf|UgerACC}ZeAL+XBx63sbpY`U$dM2 zIkr(ZRRoMB)UQJ8EQ779C?dDqq@o;Em?<%6)6ocT8nuRgmE+ErCb}KZ`{NZB_I3n` zbkcIC>yTu0PAUD@>zeQbU-&V27&eRR6_P9gWA3^hHq?#7m z6ko~irZFxAr$qUOc%=rTlxh%l^)Es6OmTqRe35&V(V(zI+5~s44Vu)SaiL=+(XI^= z$p@Y6p88;V`Ta^q@!5=)UOj-e#7C%rwWaQQYkoJhfVu`(I|&&3zkXYtY`)m3N2ZnF zyWxj}foxr4#M>nl)qv47`7dvE;X@B&;D5i}da^|iYEJp2ql^ddn%W?d3={s1iY3d~ z3pv8D!!XE2z%yLjr#$pU4j(X-Y4)PF<=k(A58se{;K9;t=9otJ)w@VXRH4r`j2?z9Uz@e|$264iYH`QnoCI*~Gz7NE&kw_m4UgV=ti{4H`*=VwA&&7kcY!E{zF3;~ZRmF=%^K{6>l5U% z*e79ttvS(kYL$bw?FGUz4pk5rP}YW>4J;F8d!>aJ2pO{Ie4DkBdd_T-P92#{CDIhY zh|$ih?`O~W*nL3lGTWp;Hb-`%y%~za0>6o%0DE65+bj&BOOyYyVrb4z#9`~P-j)1_f9A7Ef= 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

U%y0mt!nYZ^3`16gAQ&`jlx^lk?- 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 X0|5aAT>tv< literal 0 HcmV?d00001 diff --git a/content/zh-cn/posts/csci-1200/hw-3/index.md b/content/zh-cn/posts/csci-1200/hw-3/index.md new file mode 100644 index 0000000..3313d56 --- /dev/null +++ b/content/zh-cn/posts/csci-1200/hw-3/index.md @@ -0,0 +1,1198 @@ +--- +title: CSCI 1200 - 作业 3 - 动态矩阵 +subtitle: +date: 2025-02-16T16:54:48-05:00 +lastmod: 2025-02-16T16:54:48-05:00 +slug: csci-1200-hw-3 +draft: false +author: + name: James + link: https://www.jamesflare.com + email: + avatar: /site-logo.avif +description: 这篇博客文章提供了在RPI的CSCI 1200课程中用C++实现Matrix类的详细指南。该作业涵盖了基本矩阵运算、二元运算以及转置和四分等高级功能。 +keywords: ["矩阵","C++","RPI","CSCI 1200"] +license: +comment: true +weight: 0 +tags: + - CSCI 1200 + - 作业 + - RPI + - C++ + - 编程 +categories: + - 编程语言 +collections: + - CSCI 1200 +hiddenFromHomePage: false +hiddenFromSearch: false +hiddenFromRss: false +hiddenFromRelated: false +summary: 这篇博客文章提供了在RPI的CSCI 1200课程中用C++实现Matrix类的详细指南。该作业涵盖了基本矩阵运算、二元运算以及转置和四分等高级功能。 +resources: + - name: featured-image + src: featured-image.jpg + - name: featured-image-preview + src: featured-image-preview.jpg +toc: true +math: true +lightgallery: true +password: +message: +repost: + enable: false + url: + +# See details front matter: https://fixit.lruihao.cn/documentation/content-management/introduction/#front-matter +--- + + + +## 作业要求 + +{{< details >}} +在本次作业中,你需要构建一个名为 Matrix 的自定义类,该类将模仿传统的矩阵(matrix 的复数形式)。你不需要深入了解矩阵的知识,但如果你感兴趣的话可以在网上阅读更多关于它的内容:[矩阵 (数学)](https://en.wikipedia.org/wiki/Matrix_(mathematics))。 + +矩阵在许多不同应用中被使用,并且多年来已经开发了许多优化、技巧和数值方法来快速处理矩阵运算并解决更复杂的问题。 + +构建这个数据结构将让你练习指针的使用,动态数组分配与释放以及二维指针。实现该数据结构需要编写一个新类。你不能使用任何 STL 容器类或除了 Matrix 之外的其他附加类或结构体。你需要使用 `new` 和 `delete` 关键字。你可以使用数组索引 `[]`。请在开始你的实现之前阅读整个作业说明。 + +## 数据结构 + +矩阵是一个二维数字排列。在这个作业中,我们假设每个矩阵包含双精度数(doubles)。我们用 m 行和 n 列的矩阵大小表示为 m×n 矩阵。例如,下面显示的是一个 4×3 的矩阵: + +$$ +\begin{bmatrix} +-6 & 10 & 1 \\\ +3 & -8 & 22 \\\ +-17 & 4 & 7 \\\ +2 & 5 & 0 +\end{bmatrix} +$$ + +我们将使用二维数组表示 Matrix 类中的数据。因为矩阵可能具有任意大小,你需要使用动态内存来完成这个任务。上面显示的相同矩阵可以这样表示: + +{{< image src="matrix1_array.avif" width="480px" caption="4*3 矩阵数组表示" >}} + +我们将用 $a_{i,j}$ 表示矩阵 A 中第 i 行和第 j 列的值。因此,一个通用矩阵可以描述为: + +$$ +A = \begin{bmatrix} +a_{0,0} & a_{0,1} & \cdots & a_{0,n-2} & a_{0,n-1} \\\ +a_{1,0} & a_{1,1} & \cdots & a_{1,n-2} & a_{1,n-1} \\\ +\vdots & \vdots & \ddots & \vdots & \vdots \\\ +a_{m-2,0} & a_{m-2,1} & \cdots & a_{m-2,n-2} & a_{m-2,n-1} \\\ +a_{m-1,0} & a_{m-1,1} & \cdots & a_{m-1,n-2} & a_{m-1,n-1} +\end{bmatrix} +$$ + +## 基本功能 + +类的私有部分将相对较小,主要挑战在于在实现特性以使类具有功能性时处理动态内存。你可以按任何顺序实现这些方法;我们首先提到一些会使得调试更容易的方法。 + +建议你先编写一个构造函数,它接受两个 `unsigned int` 类型:行数和列数以及一个双精度填充值。该构造函数应创建一个表示为 m×n 的数据结构,并将每个值初始化为 fill。如果任一维度为 0,则生成的矩阵大小应为 0×0。 + +你的类必须支持相等运算符 `==` 和不等运算符 `!=`。两个矩阵被认为是相等的,当且仅当它们在每一个位置上的值都相同。换句话说,矩阵 A 和 B 相等如果并且仅如果 + +$$(\forall_{i, j}|i \in {0,1,\ldots,m-2,m-1}, j \in {0,1,\ldots,n-2,n-1})a_{i,j} = b_{i,j}$$ + +$\forall$ 是一个常见的缩写,表示“对于所有”,因此 $\forall_{i, j}$ 表示“对每一个 i 和 j 的值”。$\in$ 也是一个常见的缩写,表示“属于”。 + +由于矩阵具有两个维度,你需要实现 `num_rows()` 和 `num_cols()` 方法,分别返回矩阵中的行数和列数。我们可能希望将一个已填充的矩阵变为一个空矩阵,因此你必须编写一个 `clear()` 方法。此方法应重置行数和列数为 0,并释放 Matrix 当前持有的任何内存。 + +当然我们需要能够访问存储在 Matrix 类中的数据。为此我们将实现一个“安全”的访问器叫做 `get()`,它接受一行、一列以及一个双精度值。如果行和列在矩阵范围内,则应将 `arow,col` 的值存入 `double` 中,并返回 `true`;否则函数应该返回 `false`。 + +与访问数据类似的任务是能够在矩阵的特定位置设置一个值。这是通过安全修改器 `set()` 来完成的。此函数也接受一行、一列以及一个双精度值。如果位置有效,`set()` 应该返回 `true` 并将 `arow,col` 设置为传入 `double` 的值;否则返回 `false`。 + +## 重载输出运算符 + +在某个时候,编写用于输出的方法可能是个好主意。与之前类中我们写方法来执行打印不同,我们将依赖于非成员重载的 `operator<<`。我们以前练习过重载其他操作符以调用 `std::sort()`,这与此类似。在 Matrix 类定义之外但在你的 .cpp 和 .h 文件中,你应该编写以下 `operator:` + +```cpp +std::ostream& operator<< (std::ostream& out, const Matrix& m) +``` + +这将允许我们按顺序打印一个或多个输出。如果您的 `operator<<` 实现正确,则下面的代码应该都能正常工作: + +```cpp +Matrix m1; +Matrix m2; +std::ofstream outfile(output_filename); // 假设我们已经有了文件名 +std::cout << m1 << m2 << std::endl; +outfile << m1; +outfile << m2 << std::endl; +std::cout << "打印完成。" << std::endl; +``` + +假设在上述示例中: + +$$ +m1 = \begin{bmatrix} \quad \end{bmatrix}, \quad +m2 = \begin{bmatrix} +3 & 5.21 \\\ +-2 & 4 \\\ +-18 & 1 +\end{bmatrix} +$$ + +则输出应该类似于: + +```console +0 x 0 矩阵: +[ ] +3 x 2 矩阵: +[ 3 5.21 +-2 4 +-18 1 ] +打印完成。 +``` + +我们忽略空白,但我们期望你的操作符输出矩阵元素的顺序正确,并且大小输出在矩阵之前并遵循下面所示格式 - 每行一个,元素之间有空格。请注意,即使这些示例中对齐也不理想。我们更希望你专注于实现 Matrix 类的正确性以及处理内存问题而不是关注使输出漂亮。 + +### 简单矩阵运算 + +首先介绍一些基本的矩阵运算。第一个是方法 `multiply_by_coefficient()`,它接受一个名为系数的 double 类型参数。该方法应将矩阵中的每个元素乘以系数。例如: + +$$ +m1 = \begin{bmatrix} +1 & 2 \\\ +3 & 4 +\end{bmatrix}, \quad +m1\text{.multiply\\_by\\_coefficient(5)} \Longrightarrow \begin{bmatrix} +5 & 10 \\\ +15 & 20 +\end{bmatrix} +$$ + +另一个常见的操作是交换矩阵的两行。这将通过方法 `swap_row()` 来完成,该方法接受两个类型为 `unsigned int` 的参数:源行号和目标行号。如果这两行都在矩阵范围内,则函数应该交换这两个行中的值并返回 true;否则应返回 false。例如: + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 \\\ +4 & 5 & 6 \\\ +7 & 8 & 9 +\end{bmatrix}, \quad +m1\text{.swap\\_row(1,2)} \Longrightarrow \begin{bmatrix} +1 & 2 & 3 \\\ +7 & 8 & 9 \\\ +4 & 5 & 6 +\end{bmatrix} +$$ + +> [!NOTE] +> 完成基本函数和 `swap_row()` 后,可以调用提供的 `rref()` 函数的测试。我们在这里不详细解释该函数,并且你不需要了解它的工作原理,但计算行阶梯形矩阵(RREF)可以用于找到逆矩阵,在许多领域中非常重要。我们使用一种简单的实现方法称为高斯-约旦消元法,你可以在此处阅读更多:[高斯消去法](https://en.wikipedia.org/wiki/Gaussian_elimination)。有其他更好的技术来寻找 RREF,但我们选择这种方法是因为它的简单性。 + +“翻转”矩阵是一个常见的需求,这个过程叫做转置。你需要编写 `transpose()` 方法,其返回类型为 void。形式上,$m \times n$ 矩阵 $A$ 转置成 $n \times m$ 矩阵 $A^T$ 定义如下: + +$$(\forall_{i, j}|i \in {0,1,\ldots,m-2,m-1}, j \in {0,1,\ldots,n-2,n-1})a_{i,j}^{T} = a_{j,i}$$ + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 \\\ +4 & 5 & 6 +\end{bmatrix}, \quad +m1\text{.transpose\\_row(1,2)} \Longrightarrow \begin{bmatrix} +1 & 4 \\\ +2 & 5 \\\ +3 & 6 +\end{bmatrix} +$$ + +## 双矩阵运算 + +双矩阵运算是涉及两个矩阵的操作。为了简化,我们将其写为类定义中的方法(不是操作符),因此当前的 Matrix 对象始终是“左部”矩阵 $A$。你需要实现 `add()` 和 `subtract()` 方法。这两个函数只接受一个参数,第二个 Matrix 类型的对象,我们将称之为 $B$,如果 $A$ 和 $B$ 的维度匹配,则修改 $A$。如果维度匹配,函数应该返回 true;否则它们应返回 false。两个矩阵的加法和减法形式定义如下: + +$$ +(\forall_{i, j}|i \in {0,1,\ldots,m-2,m-1}, j \in {0,1,\ldots,n-2,n-1})C_{i,j} = a_{i,j} + b_{i,j} \\\ +(\forall_{i, j}|i \in {0,1,\ldots,m-2,m-1}, j \in {0,1,\ldots,n-2,n-1})D_{i,j} = a_{i,j} - b_{i,j} +$$ + +考虑这两个矩阵: + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 \\\ +4 & 5 & 6 +\end{bmatrix}, \quad +m2 = \begin{bmatrix} +4 & 16 & 25 \\\ +14 & 3.4 & 3.64159 +\end{bmatrix} +$$ + +$$ +m1 + m2 = \begin{bmatrix} +1 + 4 & 2 + 16 & 3 + 25 \\\ +4 + 14 & 5 + 3.4 & 6 + 3.64159 +\end{bmatrix} = +\begin{bmatrix} +5 & 18 & 28 \\\ +18 & 8.4 & 9.64159 +\end{bmatrix} +$$ + +$$ +m1 - m2 = \begin{bmatrix} +1 - 4 & 2 - 16 & 3 - 25 \\\ +4 - 14 & 5 - 3.4 & 6 - 3.64159 +\end{bmatrix} = +\begin{bmatrix} +-3 & -14 & -22 \\\ +-10 & 1.6 & 2.35841 +\end{bmatrix} +$$ + +## 更复杂的矩阵运算 + +如果要获取整个行或列的内容,使用 `get()` 逐个提取值会很烦人,尤其是因为我们的实现是一个“安全”的访问器,所以我们不能使用一些通常使用的编码技巧。为了解决这个问题,你需要再实现两个访问器方法:`get_row()` 和 `get_col()`。这两个函数都接受一个无符号整数并返回一个 `double*` 类型的值。对于 `get_row()`,参数是需要获取的行号;而对于 `get_col()` 参数则是要获取的列号。如果请求的行/列超出矩阵范围,则方法应返回一个指向 NULL 的指针。 + +我们期望你实现的最后一个方法 `quarter()` 不是一个传统的矩阵操作。该方法不接受任何参数并返回一个包含四个新 Matrix 元素的 `Matrix*`,顺序为:左上(UL)象限、右上(UR)象限、左下(LL��象限和最后是右下(LR)象限。所有四个象限应该具有相同的大小。记住当函数结束时所有的局部变量都会超出作用域并被销毁,所以你需要特别小心如何构建和返回这些象限。在下一页有两个关于 quarter 操作的例子: + +$$ +m1 = \begin{bmatrix} +1 & 2 & 3 & 4 \\\ +5 & 6 & 7 & 8 +\end{bmatrix}, \quad +m2 = \begin{bmatrix} +1 & 2 & 3 & 4 \\\ +5 & 6 & 7 & 8 \\\ +9 & 10 & 11 & 12 +\end{bmatrix} +$$ + +$$ +m1^{(\mathrm{UL})} = \begin{bmatrix} 1 & 2 \end{bmatrix}, \quad +m1^{(\mathrm{UR})} = \begin{bmatrix} 3 & 4 \end{bmatrix}, \quad +m1^{(\mathrm{LL})} = \begin{bmatrix} 5 & 6 \end{bmatrix}, \quad +m1^{(\mathrm{LR})} = \begin{bmatrix} 7 & 8 \end{bmatrix} +$$ + +$$ +m2^{(\mathrm{UL})} = \begin{bmatrix} +1 & 2 \\\ +5 & 6 +\end{bmatrix}, \quad +m2^{(\mathrm{UR})} = \begin{bmatrix} +3 & 4 \\\ +7 & 8 +\end{bmatrix}, \quad +m2^{(\mathrm{LL})} = \begin{bmatrix} +5 & 6 \\\ +9 & 10 +\end{bmatrix}, \quad +m2^{(\mathrm{LR})} = \begin{bmatrix} +7 & 8 \\\ +11 & 12 +\end{bmatrix} +$$ + +## 测试和调试 + +我们提供了一个 [matrix_main.cpp](matrix_main.cpp) 文件,其中包含对 Matrix 类的各种测试。一些这些测试最初被注释掉了。我们建议你在基本测试上让类运行正常,并在实现和调试剩余功能时取消注释额外的测试。研究提供的测试用例以了解参数和返回值。 + +注意:不要编辑提供的 [matrix_main.cpp](matrix_main.cpp) 文件,除非是为了取消注释提供的测试用例并添加指定位置的新测试用例。 + +`assert()` 函数在整个测试代码中使用。这是 C 和 C++ 中都可用的一个函数,如果条件为真则不做任何事情,如果条件为假则立即崩溃。如果条件为假,则你的命令行应该显示在崩溃前的断言失败信息。 + +我们建议使用内存调试工具来查找内存错误和内存泄漏。关于安装和使用“Dr. Memory”(适用于 Linux/MacOSX/Windows)和“Valgrind”(适用Linux/MacOS)的信息可以在课程网页上找到:https://www.cs.rpi.edu/academics/courses/fall23/csci1200/memory_debugging.php + +作业提交服务器也将使用 Dr. Memory 运行你的代码以查找内存问题。为了获得满分,你的程序必须是无内存错误和无内存泄漏的。 + +## 任务及提供的代码 + +你必须根据本说明实现 Matrix 类。你的类应该分为一个 .cpp 文件和一个 .h 文件。你还应在 [matrix_main.cpp](matrix_main.cpp) 的 StudentTest() 函数中添加一些额外测试用例。在实现类时,请特别注意正确地实现拷贝构造函数、赋值运算符和析构函数。 + +务必编写自己的新测试用例,并不要忘记注释代码!使用提供的模板 [README.txt](README.txt) 文件来写你需要评分者阅读的笔记。在 [README.txt](README.txt) 文件中填写顺序表示部分。你必须独自完成此作业,如“合作政策与学术诚信”说明所述。如果你讨论了该作业、问题解决技巧或错误消息等,请在你的 README.txt 文件中列出他们的名字。 + +**截止日期**: 2025年2月6日(星期四),晚上10点。 + +## 评分标准 + +20分 + +- README.txt 完成情况 (3 分) + - 缺少姓名、合作者或时间中的一个 (-1) + - 缺少姓名、合作者或时间中的两个以上 (-2) + - 没有反思 (-1) +- 类声明和实现及编码风格(良好的类设计,分为 .h 和 .cpp 文件。超过一行的函数放在 .cpp 文件中。组织合理的类实现,并在适当的地方添加注释。正确使用 const/const& 和类方法 const) (5 分) + - 没有信用 (显著不完整的实现) (-5) + - Matrix 自身没有提供文档(函数文档和部分标题不算)。(-1) + - 函数体中包含多于一条语句的放在 .h 文件中。(模板类可以例外)(-2) + - 函数在 .h 或 .cpp 文件中的注释不充分或注释质量差 (-1) + - 错误使用或遗漏了 const 和引用。(-1) + - 缩进过于紧凑,空白过多,缩进不良。(-1) + - 变量名选择不当:描述性不足的名称(例如 'vec', 'str', 'var'),单字母变量名(除了循环计数器)等 (-2) +- 数据表示 (4 分) + - 没有信用 (显著不完整的实现) (-4) + - 使用 STL 数据结构(列表���向量等)。(-4) + - 成员变量是公开的。(-2) +- 顺序符号 (README 包含正确的顺序符号分析,包括适当的符号和提供的变量使用) (5 分) +- 额外测试用例 (广泛的额外学生编写测试用例) (4 分) + - 没有测试 `transpose()` (-1) + - 没有测试 `multiply_by_coefficient()` (-1) + - 没有测试 `get_col()` (-1) + - 没有测试某种情况的边界条件(行或列 = 0,奇数维度分块等)(-1) + - 没有测试用例,或者只是极小的测试用例,只测试了 SimpleTests 中涵盖的内容 (-4) + +{{< /details >}} + +## 支持文件 + +{{< link href="matrix_class.7z" content="matrix_class.7z" title="下载 matrix_class.7z" download="matrix_class.7z" card=true >}} + +## 程序设计 + +首先,我们需要确定 Matrix 类的设计。根据提供的信息,我制作了一个图。 + +```mermaid +classDiagram + class Matrix { + %% Data members + - rows : unsigned int + - cols : unsigned int + - data : double** + + %% Private Methods + - allocateMemory() + - deallocateMemory() + + %% Constructors + + Matrix() + + %% Destructor + + ~Matrix() + + %% Public Methods + + operator=() + + get_rows() // 更改为 get_rows 和 get_cols,符合中文习惯 + + get_cols() + + clear() + + get() + + set() + + multiply_by_coefficient() + + swap_row() + + transpose() + + add() + + subtract() + + get_row() + + get_col() + + quarter() + + operator==() + + operator!=() + + %% Friend Operator + + operator<<() + } +``` + +## 踩坑内容 + +1. 矩阵的大小不一定总是奇数。因此,当处理接近边缘的情况时需要额外努力。 +2. 我们需要编写一些测试用例,并且这些用例将由隐藏自动评分器进行测试。 + +## 解决方案 + +### Matrix.h + +```cpp +#ifndef MATRIX_H +#define MATRIX_H + +#include + +class Matrix { +public: + // 构造函数和析构函数 + Matrix(); // 默认构造函数(创建一个空的 0 x 0 矩阵) + Matrix(unsigned int rows, unsigned int cols, double fill); + Matrix(const Matrix &other); + ~Matrix(); + + Matrix& operator=(const Matrix &other); + + // 访问维度的方法 + unsigned int get_rows() const; // 更改为 get_rows 和 get_cols,符合中文习惯 + unsigned int get_cols() const; + + // 清除矩阵(释放内存并设置大小为 0 x 0) + void clear(); + + // 安全访问器和修改器方法 + bool get(unsigned int row, unsigned int col, double &value) const; + bool set(unsigned int row, unsigned int col, double value); + + // 简单矩阵运算 + void multiply_by_coefficient(double coefficient); + bool swap_row(unsigned int row1, unsigned int row2); + void transpose(); + + // 二元矩阵运算(修改当前矩阵) + bool add(const Matrix &other); + bool subtract(const Matrix &other); + + // 高级访问器:返回请求的行或列的动态数组。 + // 调用者负责删除返回的数组。 + double* get_row(unsigned int row) const; + double* get_col(unsigned int col) const; + + // 将矩阵分成四个大小相等的象限。 + // 四个矩阵以动态分配的数组形式按顺序返回:UL,UR,LL,LR。 + // 如果矩阵太小(即少于 2 行或 2 列),则返回四个空矩阵。 + Matrix* quarter() const; + + // 等式运算符 + bool operator==(const Matrix &other) const; + bool operator!=(const Matrix &other) const; + + // 友元重载输出操作符,用于打印矩阵。 + friend std::ostream& operator<<(std::ostream &out, const Matrix &m); + +private: + unsigned int rows; + unsigned int cols; + double** data; + + // 辅助函数以分配和释放二维数组的内存 + void allocate(unsigned int r, unsigned int c, double fill); + void deallocate(); +}; + +#endif +``` + +### Matrix.cpp + +```cpp +#include "Matrix.h" +#include + +//------------------------- +// 私有辅助函数 +//------------------------- + +// 分配 m x n 矩阵的内存,并将每个元素填充为 'fill' +void Matrix::allocate(unsigned int r, unsigned int c, double fill) { + rows = r; + cols = c; + data = new double*[rows]; + for (unsigned int i = 0; i < rows; i++) { + data[i] = new double[cols]; + for (unsigned int j = 0; j < cols; j++) { + data[i][j] = fill; + } + } +} + +// 释放矩阵使用的内存 +void Matrix::deallocate() { + if (data) { + for (unsigned int i = 0; i < rows; i++) { + delete [] data[i]; + } + delete [] data; + } + data = nullptr; + rows = 0; + cols = 0; +} + +//------------------------- +// 构造函数和析构函数 +//------------------------- + +// 默认构造函数:创建一个空矩阵(0 x 0) +Matrix::Matrix() : rows(0), cols(0), data(nullptr) {} + +// 参数化构造函数:创建一个 m x n 矩阵,填充为 'fill' +// 如果任一维度为 0,则生成的矩阵大小应为 0×0。 +Matrix::Matrix(unsigned int r, unsigned int c, double fill) : rows(0), cols(0), data(nullptr) { + if (r == 0 || c == 0) { + // 创建一个空矩阵。 + rows = 0; + cols = 0; + data = nullptr; + } else { + allocate(r, c, fill); + } +} + +// 拷贝构造函数 +Matrix::Matrix(const Matrix &other) : rows(0), cols(0), data(nullptr) { + if (other.rows == 0 || other.cols == 0) { + rows = 0; + cols = 0; + data = nullptr; + } else { + allocate(other.rows, other.cols, 0.0); + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] = other.data[i][j]; + } + } + } +} + +// 析构函数 +Matrix::~Matrix() { + deallocate(); +} + +// 赋值运算符 +Matrix& Matrix::operator=(const Matrix &other) { + if (this == &other) + return *this; + + deallocate(); + + if (other.rows == 0 || other.cols == 0) { + rows = 0; + cols = 0; + data = nullptr; + } else { + allocate(other.rows, other.cols, 0.0); + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] = other.data[i][j]; + } + } + } + return *this; +} + +//------------------------- +// 维度访问器和清除 +//------------------------- + +unsigned int Matrix::get_rows() const { // 更改为 get_rows 和 get_cols,符合中文习惯 + return rows; +} + +unsigned int Matrix::get_cols() const { + return cols; +} + +void Matrix::clear() { + deallocate(); +} + +//------------------------- +// 安全访问器与修改器 +//------------------------- + +// get(): 如果 (row,col) 在范围内,则将值存入 value 并返回 true;否则,返回 false。 +bool Matrix::get(unsigned int row, unsigned int col, double &value) const { + if (row >= rows || col >= cols) + return false; + value = data[row][col]; + return true; +} + +// set(): 如果 (row,col) 有效,则将值赋给 arow,col 并返回 true;否则,返回 false。 +bool Matrix::set(unsigned int row, unsigned int col, double value) { + if (row >= rows || col >= cols) + return false; + data[row][col] = value; + return true; +} + +//------------------------- +// 简单矩阵运算 +//------------------------- + +// 将矩阵中的每个元素乘以给定的系数。 +void Matrix::multiply_by_coefficient(double coefficient) { + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] *= coefficient; + } + } +} + +// 如果两个索引都有效,则交换行 row1 和 row2 的整个内容。 +bool Matrix::swap_row(unsigned int row1, unsigned int row2) { + if (row1 >= rows || row2 >= rows) + return false; + double* temp = data[row1]; + data[row1] = data[row2]; + data[row2] = temp; + return true; +} + +// 就地转置矩阵。 +// 对于非方阵,将分配一个具有交换维度的新二维数组,内容被转置, +// 并释放旧内存。 +void Matrix::transpose() { + if (rows == 0 || cols == 0) + return; + + // 分配新数组,使用交换后的维度。 + double** newData = new double*[cols]; + for (unsigned int i = 0; i < cols; i++) { + newData[i] = new double[rows]; + } + // 转置:newData[j][i] 变成 data[i][j] + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + newData[j][i] = data[i][j]; + } + } + // 释放旧数据。 + for (unsigned int i = 0; i < rows; i++) { + delete [] data[i]; + } + delete [] data; + + // 交换维度。 + unsigned int temp = rows; + rows = cols; + cols = temp; + data = newData; +} + +//------------------------- +// 双矩阵运算 +//------------------------- + +// 将 other 的对应元素加到当前矩阵中。 +// 如果维度匹配,返回 true;否则返回 false。 +bool Matrix::add(const Matrix &other) { + if (rows != other.rows || cols != other.cols) + return false; + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] += other.data[i][j]; + } + } + return true; +} + +// 将当前矩阵中的对应元素减去 other 的值。 +// 如果维度匹配,返回 true;否则返回 false。 +bool Matrix::subtract(const Matrix &other) { + if (rows != other.rows || cols != other.cols) + return false; + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + data[i][j] -= other.data[i][j]; + } + } + return true; +} + +//------------------------- +// 高级访问器 +//------------------------- + +// 返回一个包含请求行的新动态分配数组。 +// 如果行索引超出范围,则返回 nullptr。 +double* Matrix::get_row(unsigned int row) const { + if (row >= rows) + return nullptr; + double* rowArray = new double[cols]; + for (unsigned int j = 0; j < cols; j++) { + rowArray[j] = data[row][j]; + } + return rowArray; +} + +// 返回一个包含请求列的新动态分配数组。 +// 如果列索引超出范围,则返回 nullptr。 +double* Matrix::get_col(unsigned int col) const { + if (col >= cols) + return nullptr; + double* colArray = new double[rows]; + for (unsigned int i = 0; i < rows; i++) { + colArray[i] = data[i][col]; + } + return colArray; +} + +//------------------------- +// Quarter 操作 +//------------------------- + +// 将矩阵分成四个象限(UL,UR,LL,LR)并返回它们在新数组中。 +// 所有四个象限将具有相同的大小。 +// 如果矩阵少于 2 行或 2 列,则返回四个空矩阵。 +Matrix* Matrix::quarter() const { + Matrix* quadrants = new Matrix[4]; + if (rows < 2 || cols < 2) { + // 返回四个空矩阵。 + return quadrants; + } + + // 确定象限的维度。 + // 使用 (dim + 1) / 2 可以确保如果维度为奇数,则共享中间行/列被包含在内。 + unsigned int quad_rows = (rows + 1) / 2; + unsigned int quad_cols = (cols + 1) / 2; + + quadrants[0] = Matrix(quad_rows, quad_cols, 0.0); // 左上(UL) + quadrants[1] = Matrix(quad_rows, quad_cols, 0.0); // 右上(UR) + quadrants[2] = Matrix(quad_rows, quad_cols, 0.0); // 左下(LL) + quadrants[3] = Matrix(quad_rows, quad_cols, 0.0); // 右下(LR) + + // 填充 UL 象限:行 0 .. quad_rows-1,列 0 .. quad_cols-1。 + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[0].set(i, j, data[i][j]); + } + } + + // 填充 UR 象限:行 0 .. quad_rows-1,列 (cols - quad_cols) .. (cols - 1)。 + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[1].set(i, j, data[i][(cols - quad_cols) + j]); + } + } + + // 填充 LL 象限:行 (rows - quad_rows) .. (rows - 1),列 0 .. quad_cols-1。 + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[2].set(i, j, data[(rows - quad_rows) + i][j]); + } + } + + // 填充 LR 象限:行 (rows - quad_rows) .. (rows - 1),列 (cols - quad_cols) .. (cols - 1)。 + for (unsigned int i = 0; i < quad_rows; i++) { + for (unsigned int j = 0; j < quad_cols; j++) { + quadrants[3].set(i, j, data[(rows - quad_rows) + i][(cols - quad_cols) + j]); + } + } + + return quadrants; +} + +//------------------------- +// 等式运算符 +//------------------------- + +bool Matrix::operator==(const Matrix &other) const { + if (rows != other.rows || cols != other.cols) + return false; + for (unsigned int i = 0; i < rows; i++) { + for (unsigned int j = 0; j < cols; j++) { + if (data[i][j] != other.data[i][j]) + return false; + } + } + return true; +} + +bool Matrix::operator!=(const Matrix &other) const { + return !(*this == other); +} + +//------------------------- +// 重载输出运算符 +//------------------------- + +std::ostream& operator<<(std::ostream &out, const Matrix &m) { + out << m.rows << " x " << m.cols << " 矩阵:" << std::endl; + out << "["; + if (m.rows > 0 && m.cols > 0) { + for (unsigned int i = 0; i < m.rows; i++) { + out << " "; + for (unsigned int j = 0; j < m.cols; j++) { + out << m.data[i][j]; + if (j < m.cols - 1) + out << " "; + } + if (i < m.rows - 1) + out << std::endl; + } + out << " ]"; + } else { + out << " ]"; + } + return out; +} +``` + +### matrix_main.cpp(包含更多测试用例) + +```cpp +// ======================================================= +// +// IMPORTANT NOTE: Do not modify this file +// (except to uncomment the provided test cases +// and add your test cases where specified) +// +// ======================================================= + +#include +#include +#include +#include +#include "Matrix.h" + +#define __EPSILON 0.0000000001 // 需要这个来比较双精度数,因为表示方式不同。 + +void SimpleTest(); // 基本测试 +void StudentTest(); // 在这里编写自己的测试用例 + +// 函数用于一次测试大量矩阵。 +void BatchTest(double start, double step, unsigned int rows, unsigned int cols, + unsigned int num); + +// 快速函数,返回两个双精度数是否非常相似。 +bool double_compare(double a, double b); + +// 使用高斯-约旦消元法创建行阶梯形矩阵。 +Matrix rref(const Matrix& m); + +int main(){ + SimpleTest(); + std::cout << "完成所有基本测试。" << std::endl; + + // 取消注释以分配大量 100x100 矩阵,以便泄漏更大。 + BatchTest(100,0.1,100,100,50); + std::cout << "完成所有批量测试。" << std::endl; + + StudentTest(); + std::cout << "完成所有学生测试。" << std::endl; + + return 0; +} + +//////////////// 测试函数 //////////////////// +// 基本测试 +void SimpleTest(){ // well behaved getrow/read after + // 默认构造函数 + Matrix m1; + assert(m1.get_rows() == 0 && m1.get_cols() == 0); + + // 拷贝构造函数 + Matrix m2(3,4,0); + assert(m2.get_rows() == 3 && m2.get_cols() == 4); + + Matrix m2_copy(m2); + assert(m2_copy.get_rows() == 3 && m2_copy.get_cols() == 4); + m2_copy.set(1,1,27); + double d0; + assert(m2.get(1,1,d0)); + assert(double_compare(d0,0.0)); + assert(m2_copy.get(1,1,d0)); + assert(double_compare(d0,27)); + + // 等式和不等式 + Matrix m3; + assert(m1 == m3); + assert(m1 != m2); + + // 打印输出 + std::cout << "空矩阵:"; + std::cout << m1 << std::endl; + + std::cout << "零填充的 3x4 矩阵:"; + std::cout << m2 << std::endl; + + std::cout << "一个接一个:"; + std::cout << m1 << m2 << std::endl; + + // set 和 get + Matrix m5(4,4,2); + Matrix m6(4,4,12); + assert(m6.set(2,1,7)); + assert(m6.set(3,3,11)); + double d1; + assert(m6.get(2,1,d1)); + assert(d1==7); + + // 加法 + std::cout << "m5 和 m6 相加" << std::endl; + std::cout << m5 << m6 << std::endl; + + Matrix m7; + m7 = m5; + Matrix m8(m5); + assert(m7 == m8); + + assert(m7.add(m6)); + std::cout << "结果:" << std::endl; + std::cout << m7 << std::endl; + + double* r1 = NULL; + r1 = m7.get_row(2); + assert(r1[0] == 14 && r1[1] == 9); + + delete [] r1; // 记得我们需要清理动态分配。 + + Matrix m9(3,6,0); + m9.set(0,0,1); + m9.set(0,1,2); + m9.set(0,2,1); + m9.set(0,3,1); + m9.set(1,0,2); + m9.set(1,1,3); + m9.set(1,2,-1); + m9.set(1,4,1); + m9.set(2,0,3); + m9.set(2,1,-2); + m9.set(2,2,-1); + m9.set(2,5,1); + + std::cout << "尝试高斯-约旦行阶梯形。" + << m9 << std::endl; + Matrix m12 = rref(m9); + std::cout << m12 << std::endl; + double comparison_value; + assert(m12.get(0,3,comparison_value)); + assert(double_compare(comparison_value,0.25)); + assert(m12.get(0,1,comparison_value)); + assert(double_compare(comparison_value,0.0)); + assert(m12.get(1,5,comparison_value)); + assert(double_compare(comparison_value,-3.00/20)); + assert(m9.get(0,3,comparison_value)); + assert(double_compare(comparison_value,1.0)); + assert(m9.get(0,1,comparison_value)); + assert(double_compare(comparison_value,2.0)); + assert(m9.get(1,5,comparison_value)); + assert(double_compare(comparison_value,0.0)); + + Matrix m11(3,4,0); + m11.set(0,0,1); + m11.set(0,1,2); + m11.set(0,2,3); + m11.set(0,3,4); + + m11.set(1,0,5); + m11.set(1,1,6); + m11.set(1,2,7); + m11.set(1,3,8); + + m11.set(2,0,9); + m11.set(2,1,10); + m11.set(2,2,11); + m11.set(2,3,12); + + std::cout << "M11 将被四分:" << std::endl; + std::cout << m11 << std::endl; + + Matrix* ma1 = NULL; + ma1 = m11.quarter(); + assert(ma1 != NULL); + + std::cout << "UL: " << std::endl << ma1[0] << std::endl; + std::cout << "UR: " << std::endl << ma1[1] << std::endl; + std::cout << "LL: " << std::endl << ma1[2] << std::endl; + std::cout << "LR: " << std::endl << ma1[3] << std::endl; + + for(unsigned int i=0; i<4; i++){ + assert((ma1[i].get_rows() == 2) && (ma1[i].get_cols() == 2)); + } + + // 上左 + assert(ma1[0].get(0,0,comparison_value)); + assert(double_compare(comparison_value,1)); + assert(ma1[0].get(1,1,comparison_value)); + assert(double_compare(comparison_value,6)); + + // 右上 + assert(ma1[1].get(0,0,comparison_value)); + assert(double_compare(comparison_value,3)); + assert(ma1[1].get(1,1,comparison_value)); + assert(double_compare(comparison_value,8)); + + // 下左 + assert(ma1[2].get(0,0,comparison_value)); + assert(double_compare(comparison_value,5)); + assert(ma1[2].get(1,1,comparison_value)); + assert(double_compare(comparison_value,10)); + + // 右下 + assert(ma1[3].get(0,0,comparison_value)); + assert(double_compare(comparison_value,7)); + assert(ma1[3].get(1,1,comparison_value)); + assert(double_compare(comparison_value,12)); + + delete [] ma1; +} + +// 在这里编写自己的测试用例 +void StudentTest() { + double val; + + // 测试 1:转置一个非方阵。 + Matrix m(2, 3, 1.0); + m.set(0, 0, 1.0); m.set(0, 1, 2.0); m.set(0, 2, 3.0); + m.set(1, 0, 4.0); m.set(1, 1, 5.0); m.set(1, 2, 6.0); + m.transpose(); // ��在 m 应该是 3 x 2。 + assert(m.get_rows() == 3 && m.get_cols() == 2); + m.get(0, 0, val); assert(val == 1.0); + m.get(0, 1, val); assert(val == 4.0); + m.get(1, 0, val); assert(val == 2.0); + m.get(1, 1, val); assert(val == 5.0); + m.get(2, 0, val); assert(val == 3.0); + m.get(2, 1, val); assert(val == 6.0); + + // 测试 2:矩阵乘以系数。 + Matrix m2(2, 2, 2.0); + m2.multiply_by_coefficient(3.0); + m2.get(0, 0, val); assert(val == 6.0); + m2.get(1, 1, val); assert(val == 6.0); + + // 测试 3:get_col() 功能。 + Matrix m3(3, 3, 0.0); + int counter = 1; + for (unsigned int i = 0; i < 3; i++) { + for (unsigned int j = 0; j < 3; j++) { + m3.set(i, j, counter++); + } + } + double* col1 = m3.get_col(1); + // 预期列 1 应为:2,5,8。 + assert(col1[0] == 2); + assert(col1[1] == 5); + assert(col1[2] == 8); + delete [] col1; + + // 测试 4:swap_row()。 + Matrix m4(2, 3, 0.0); + m4.set(0, 0, 1); m4.set(0, 1, 2); m4.set(0, 2, 3); + m4.set(1, 0, 4); m4.set(1, 1, 5); m4.set(1, 2, 6); + m4.swap_row(0, 1); + m4.get(0, 0, val); assert(val == 4); + m4.get(1, 0, val); assert(val == 1); + + // 测试 5:减法。 + Matrix m5(2, 2, 10.0); + Matrix m6(2, 2, 3.0); + bool success = m5.subtract(m6); + assert(success); + m5.get(0, 0, val); assert(val == 7.0); + + // 测试 6:quarter() 对偶数维度矩阵。 + Matrix m7(4, 4, 0.0); + counter = 1; + for (unsigned int i = 0; i < 4; i++) { + for (unsigned int j = 0; j < 4; j++) { + m7.set(i, j, counter++); + } + } + Matrix* quads = m7.quarter(); + // 对于一个 4 x 4 矩阵,象限大小应为 (4+1)/2 = 2(整除) + assert(quads[0].get_rows() == 2 && quads[0].get_cols() == 2); + // 上左象限应该为: + // [ 1 2 ] + // [ 5 6 ] + quads[0].get(0, 0, val); assert(val == 1); + quads[0].get(0, 1, val); assert(val == 2); + quads[0].get(1, 0, val); assert(val == 5); + quads[0].get(1, 1, val); assert(val == 6); + delete [] quads; + + // 测试 7:clear() 方法。 + Matrix m8(3, 3, 9.0); + m8.clear(); + assert(m8.get_rows() == 0 && m8.get_cols() == 0); + + // 测试 8:自我赋值。 + Matrix m9(2, 2, 7.0); + m9 = m9; + m9.get(0, 0, val); assert(val == 7.0); + + // 测试 9:二元加法,维度不匹配。 + Matrix m10(2, 3, 1.0); + Matrix m11(3, 2, 1.0); + bool res = m10.add(m11); + assert(res == false); + + // 测试 10:二元减法,维度不匹配。 + res = m10.subtract(m11); + assert(res == false); +} + +//////////////// 工具函数 //////////////////// + +/* 快速填充一个 rows x cols 矩阵的值从 + * start 开始以 step 的增量进行 num_times 次。 + */ +void BatchTest(double start, double step, unsigned int rows, unsigned int cols, + unsigned int num){ + Matrix* m_arr = new Matrix[num]; + for(unsigned int i=0; i=ret.get_cols()){ + return ret; + } + + ret.get(i,curr_col,dummy); + if(double_compare(dummy,0.0)){ + // 与非零行交换 + for(unsigned int scan_i = i+1; scan_i < ret.get_rows(); scan_i++){ + ret.get(scan_i,curr_col,dummy); + if(!double_compare(dummy,0.0)){ + ret.swap_row(scan_i,i); + break; + } + } + } + + // 现在我们知道 ret i,curr_col 是非零的,所以我们可以用它作为枢轴。 + double pivot; + ret.get(i,curr_col,pivot); + for(unsigned int j=0; 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 literal 0 HcmV?d00001 diff --git a/content/zh-cn/posts/csci-1200/hw-3/matrix_class.7z b/content/zh-cn/posts/csci-1200/hw-3/matrix_class.7z new file mode 100644 index 0000000000000000000000000000000000000000..9527f147b604b962fd61bcd38f29bba0a8c4190e GIT binary patch literal 158568 zcmV(uKuf9NybMH z6QTfjI~?naWD^%5&6>qBzQXIr!X#e~Y^G1gDj$s7;6KrG)kc?Iyp2X|SbWFnVv)m3 z+(mRwE)U7~E}94eM>W}DHbEj2q%6Z+;|!`fNu_P0NYBx;E7HIGr+?RvDw<6bTJ{H* znhJVErQ$I#$Zw4xJApq6XGHyv-hJ5N_0{{9Sd4tu2vE$UGrp2I`;LR%xMn`1Qs6iPjP8Qh7BnQbX$O4WwQN`z47f*t}xvaY) zN%+LhhGyiv(fFj@lp0br=K&&u`GC_`iYxFr-p?sFhxbL8l1Zgf(-IE$pE5WIqOqKb z;nR+n2dkUHUFNze`Xd{!V;M&h<`>Xh9>!VW7;zCFfBFt=#n-r)`t1i>-FZiY;+%gi z>JcExIh!pJrA8q8L^U*@1Uu6RGry!)Nn67^0Hp&sdWgferhKElF(mqz?5hw+G4JGe zA&WiefqHa8!ixn6kx5oKrRgH0iPpXWOn*C1NFucd`NG@j=ND2UF!C@obxe>@D&aN` z79uG^f}o@wC|GJp;Fe+UmWg{ng+M3`^+oVbn)FP67dl1Lt$!*9tczeA$%E6BXOarO zp5|q#6e-TcM@JlOEH9v(oG?F2I(|SbG&H!52X=9IqTQKj!P$+mVw0Ml1eU#xXLwI+ zB(|46Zf!)eA4lpVh+w+;{1~My)+5V2Zt2RQf|UgerACC}ZeAL+XBx63sbpY`U$dM2 zIkr(ZRRoMB)UQJ8EQ779C?dDqq@o;Em?<%6)6ocT8nuRgmE+ErCb}KZ`{NZB_I3n` zbkcIC>yTu0PAUD@>zeQbU-&V27&eRR6_P9gWA3^hHq?#7m z6ko~irZFxAr$qUOc%=rTlxh%l^)Es6OmTqRe35&V(V(zI+5~s44Vu)SaiL=+(XI^= z$p@Y6p88;V`Ta^q@!5=)UOj-e#7C%rwWaQQYkoJhfVu`(I|&&3zkXYtY`)m3N2ZnF zyWxj}foxr4#M>nl)qv47`7dvE;X@B&;D5i}da^|iYEJp2ql^ddn%W?d3={s1iY3d~ z3pv8D!!XE2z%yLjr#$pU4j(X-Y4)PF<=k(A58se{;K9;t=9otJ)w@VXRH4r`j2?z9Uz@e|$264iYH`QnoCI*~Gz7NE&kw_m4UgV=ti{4H`*=VwA&&7kcY!E{zF3;~ZRmF=%^K{6>l5U% z*e79ttvS(kYL$bw?FGUz4pk5rP}YW>4J;F8d!>aJ2pO{Ie4DkBdd_T-P92#{CDIhY zh|$ih?`O~W*nL3lGTWp;Hb-`%y%~za0>6o%0DE65+bj&BOOyYyVrb4z#9`~P-j)1_f9A7Ef= zp(U}0X$-p6OlV&#lA#QV8A3CcfQXl2fyTYenT!Q9@6YGAAX}^~S>A z(9{B1eos#mn6P@`@tA$wEm|M4JGf~M068MYn zekiun!glQqR4=s)STF3EEd97CR{T4=lDNd4(%xTkg~&?|>-zx11IdUhB;@$A(gQ7P z-~cZ~r75p2C?cwZzZ;+$y$)FC^@>K_az{AzleP8=kC~qd7SlrCr1wMPKf3l=1)pIy z!raj9bQ#$lCIWQFq5R{n2k}DPjFZmZsZJXx9!CR)HG=6z(`2cD5A7|U%4lP?!AP)I11Qs(;o3vp-S^jHkvdZXmX4IzG75g0sozX- z#4fPvL#GEkvQ$TibW76aXDDXmS=R9BW|kAk$qlh{oC6aV@oEtPv#%y$sbH@>gv7^au)aqveXe$?z6j8v?3=@J7z1-HrerG6?eMN z?v!F4pOvKI5Xp<~FP!O|wU0+aO}e=`(d>deK*{2?-E*`^rs$1^<@v<28M$HFXPiMTI|iufRi-S6*tOjT$X%P44?z_GC}SQoOP&Kh)nj>0O;zAN7yYd`ev2Ap ztQfS2$3=Oa;cM{C1L~zn5x3YMN?>rWVjx6n3DO?Pr`Q{puXHFcVN-HB8~llDbi1?6 z%!QK{R(|A;C|Icbd)X%tA5;i#^m6Zq;lDx1s_kOSR7p7H1Uv`%C!-4~$R(x{C&7Nh zI;L}c)SORlcqS^eEb%h=!HI|yzAuVDD$*Yi(%Id=kt-l}@dDOA@A8v}?bo;{%TU8< zof*Tmb4Yg4!J>Ax>z_P25~e+UYgh?<~~<84~C3iW-eA% znf>h+&;NpmE(yrMvM-5kfH_PrcJAz2o;-!UW~s9ReCNRDc}fb6iYux{?mzNwO%Or< zGn>uBppHrg*W}Np*`WYANUaOikns+!<(^XyC$;%4ooo|x4=cuZ>i;V5(;tK9DGyn6 z7=#dpi=?9Sf$Cq;6Mi}F1q2_;+=mzWP}cMkl*}Iu$@wUB_wu)Ev>k8ex;qV9yC+(4 zYDIca!>EVLe!+#eFKBxM=Mrjp(6jRMMDHE{BwEm81XrNU@C6?T;g(xR-Y26*yCnMB z&!cUVuhDsTb*WwZRsY-Ayg17X|GPi5`55r!T{T3aNPWIb_j-Z3AXC~(@HGX_Jnn$( zGZCan&IeecMZtciW3F+J1 zJ}-3q5Y;I5E{-MhqEumHhych-Zst@6E$;Q*EfiA((Pu2&S^A@vdU#7$%^QwA z#)qm~W9!%01iIf8@PyIqPPRo%-64Afe!NWk^VC z_g3ojf{akMXr^wC!*JXv9{+?wr2@RCuEyk2GTl~?yvbP=3d5IbF;13xI>gFB(#EA_ zxTiWx()Eu3b1_$$S)U=!H1YtD9@qZi#d7y8AJuI;WYS5>-ew0jrs!n+bX$~gU2}*M zid1tiTjC?$vLY7h1S+IUU(n@4-#0eio9#i5l|*p*gmFV;Lm3B6607IplIRQp2NXW5 z=)b7x_$0+Ts3R?SG&5d`Wgp}@R}YY#-K9ZwUlErC>UD$zsKfl*ibx2&Y8Sh@FKDw1 z>SQJ9#5<}(PH14h21z13Vo!hoKE*Cl0*IU^50wiVTW|`=pH+p?n^dvBk^X=RN>AK5 zn0P!EfWhPYI`<8H>2wocDO>s}=mGvqb5oH- z63C-`tV&o!>wx{8aH;^JycT^zbdEk}*;F+c)2>RX7rMGm!X3;pSpxPZ6A($V;+N2U zDQw8B=UTDhzW%-2w_HR7m&NXJsA?pn&7K)PX4U;{3HmHQ4{2T*|C;p++H%|1Z_gS@ zZ**Geur8?uoRS()K*$M9ojyuv|4hnVVjdr5CTL^8RJ0|4uNe2euJP4ChP9Ulw(Z6e z2L_sQUeMve{n&Yo4}kOMTCeuU(E3C&t&4^e#U9!eM=zQ0D&^C}92aKMcx3Oh2KCvO z$$89P&oenn*i*=x1=Rlf>QOalx29O~;%XuCpc|gsq)e+j9qh(?!;g2I9!qZ}+=!m} zkjJLI5{Ma^EP4Jbt&}b-Ps@?)8;{A&R_zmwlN}LuL29WuEwfg&-q#mVl=_J-$Bb@t zonXqe^;o-#**$|h7o7?CS=p;e>^c6lAFXIkv&)c%de*6@t3~=R#@ro1*m4vypP~fh zD~-=DBAyiXPyEA@oduzNRFj8OCp(NPs7p;l2xRX9vs>-(-gz-JlQ>vQqgFMw<- zGIBD6l*;$Hfb0x|1MeLEyWK)+3sqM8PB5%bv{_*@5b`F3rdWN&5eQ-mfJjLKaeCsc zqAU6uSPpa+jPsM9#vu6!9)b7z_-EJ&?Lh8x%=SkbLaqht@;^vQw28YF>*|VNSL&dp zesw>Jc9`$$Bd934g;@9+;#>904)(K+XP zeWcb=G@hCqPV9T+pf9FyU$HdIRpc+bDZMRv@sg29E!Ij*J4d&02~VCnOao=+2o4$57Z5v5p|!Z3KKd17N3r@6Ali z{k1Vwu?w1tN45lxds5ola7R7zP;~?WgrC9~0EOO%7{|)>gNMXB*B0`*##7K@9;LYg zGtkP~;t1AFbML};_#Gt~hBbRK!Eo^Rl2D5jXMZbVVkgAB76~iEB>i6b=Y_)65c=t! z44m>!FzhP)agQE(zq+AgWKNY&t$xAVa&a0h8mwoj(|Z3^P}lELFv-gBGJkCfobg12 zV1BxIDb||URhC6nk^Mr`VbC|KHOAJkfW1Mb1eGZ3z^Aw$=daeBsUBIy1mw!EdF@#>;^APQzq^v3Hw7+(&lErm# zU(D-05L_ew#oLr#4IEv^d4OMdH~Gn zC{-iQX$Cn#K0Nh{w_qjx1E0wo zdiV>H`vEjjSAiH>l(@6IigUgl(%0pGi8NRcbfA>U34ANyQ4y~1o$#3(#;dipRy2fJ zzXANa){T1Xou`3?F*b`?$PW$yDb4;+9PW<8EP;`wFNjZOSiATL^MvhET)!@J#UW8_ z84&PvgyAGAdCLSFMEkNQxwjNS`A#NAocEmHv@EVVRP9OGS?{z%7sQD7h%pG@oZjZT zOe@6bzuyMT`hN{tTo&}3S<<}uHoW(^{2>}^JM6;GiDW=rsH5)4OriH8P+=ul0z1bA zvNzRpEH`K5l!4?Z<$=-o&~@#sOEmSxASS7?0QNG{HsVY1;S~+FM6{LqNygL;QVr=5 zlb^{zf7~u~$%{Yy!;zDu+SMOG`*|-LjqPI{*Zp1m$c0s=RO{VP#VuS#fpHI$4h{kL z)`dTU2bA}Y!6uix%vKE0c!gXTP}!zJ*oD-m>1&d~rk)mHP##!;rvXCi?G_Hdv>usN zb$6@5i0{@&L;f1`$;KlYHTJ=EymBq$z{cWnS`#!Cr;AgGfF#Agu98#XLdA1uk?G5* z#K(~vdF3b#C~Ze;pJI1VW{Nv1zfh8`pQH5k2H>mhOjRBXmTgjqk6BA>{kN6!@EAA^icVqwNo!l~6RY}C!r`H{M}C>I)oh9d zown6F>^XWsntD>XGaHr&tS|S%5bh-IlzZnKxofXe-_GIwzyc&Q??U#qQOP&7d;ape z;p<(ZR7YrL-*-`*f63q;6{mP+-(~ulYmTaLuOsJNW9Cn4y_RSWE30OpT@I7YcB;gl z*i;@b^JnnbMnb<-Fw4=Cmzs}{aorfzk|UJ=?859Wch$>eWru+@U;!Qou*S7vLTV2o z45qg6c9On3%ZYFN8>sm(pNDzq*(B%H@)*FKzu)`0?wZo{0*^maWrgyaTH>&ol8yod zZ}wVO(M$tOZg_6q(9qukg^!Vqq#gorO?ZD36YqT&oUuHB>)-w~)y_+i}P zO%W)tykon&kcJ_lcjn@C?*je$_4HrTe@n%IN{wBMpDIbft0!q~7Ok(|Su|3I6oztt z)R`>Fk|{{o;&~Wap!Zjk|M={Hd0%-vRLss$-j+^S4h9W_D7NG7Nn|IE1sa|XAh_2R ztt2>z`xXWC6{{j8nJ-5$n^qklh`z=FpeYDy6(N%8B- zYwnB$X-QO{Sf%vTZtDMEMwa@8&PzB1$UF%vJ{Wy<#REw@^(uSO#zAH zfWA8K*MS9L#L0S;wE7ef@&8{6ixBt8=S93VcBEg&_AiecBS4awMA1Hb44*)|;ynSY z3`XP1N!!Qh44t!pzu8*7WjeO4`guS@5gZXi+whGa1qrzg)?j9o-mt-Gh;9DN8itl# z5#DiW!TaXOKpH_{Cu4tzpx8QG=PaWxm(#(~(Oe^)XEa2zHu&sY(Fk|>n16H=*K~>- z!l|bJ<60uGnJ(nkj{24!)4-vb^G_9i)_GFH5nYgmQA9J6SK!0 z5Qts6P(5UWQO~pyC3pL`8sYH?%b((!!qnc z`|`RH7t5R!GrnA&{0^q^5(I?m{r!@Us0doGbkIoJ1deXu?`nEKs1WwZJomy0N+GaB zSiEFdFQ9NyqB?XPpL-fXUg(e#8w3_2-5o2ca^CiWjs2D4_VY!JZU!#Q1VnGiFrXN@i0=Zv>BKE}BBH9uD zog*Dj^-{#BtPTiUBSYGw5_Hh6pyrd(PK&ybU2T;9+mLLSV7rgq4=6MP(|EcqFyK{JBmm~Bv409i)l4!5c9G<#qp@}nPhgUrZ zaN_bVJ;C`D@L7YEU=9)^g+fwqj*8u!c02a!Fmh*u0UP!Qa^m#wk}J+QygP5U<3q3b z$RzaO=(4;CyG5DxLxc1KT3k=!4cL$+xKbFc=ogpFkv3pHei{;*J!^$VkP8usJq z5cdkNT+A|~y=`@bs9l(^#KlM$8H~Q;pcSGX$T!A>Z7+H1T-kXfW z5G=<4#Wu}u`lImngiiz@Ooq|_zkMCz!o~~#*Z75qjbLDvgMzwuccIl=(gKZE#)pX0 zaqwEZ`g8QwLa3^dU_p_7U3jqNKno;R+_O<$Z9;aOglLj(h~h(A+aOXa^mx<>mP8CP zHkg#rNMyD0yTX2bK^X^(apy*m=S&%g<;@?(B0dZPE8+j<-ZS0|7I!~%>&#D9H~2@u z*eh6pz2>l{_2xR1N{+c1tG9-y7O+;DdSk(A83Wmf5c>d}pPku4qsk+)#n6J8Nr?D0 zLrte@DALf(hH4hRZ)Iwv&~gX2Rgp^MBA46`KPnE!S#zw8KFs6<- zP>w5`#Y^#_o!G$C zMOxl}{1YEKxFOrJ6vY0rLmOFsaUBS$_P(!JLi)E(1U}f5CGyBv?zJRiR`Pg4>MA6BbM2L_zWw%>=5sbR1*Q>o+=T^hk#rE7ml0$ z4#Zap=Y3W*Dpag@29Ii9RGkvMA*RnJq`%PnTY1?lxW?ru;k39gKD2u^U54>+ z;$%06l0F~-i0k_w;Bdg0Fqt*D>Ox!swvi`=x6^QT#DvC84M1-wj7_RqTN_7#L_i0t1sV|8qE0=D9p{4?uHcheP_UTTs%9L(ZI( z;`t4&Wn5c}h5JJCP;9m7MNpwQ7VsMji{J3!Hx-ok6h8^1Yp?4)El9)ly2rw|i8d#= z`ls0Z+xmuWf+!mG8kRI)_>N7d4sumc9v3Ry2T%~x)>9JA7!gaOJLNgwC zCP74(EX`lAp7q&B_jqQ8fDP1*ZPwq~8%7N0y(C;eltLK^@3Xmr5>a{7&xdJ({+xb? z_6NhRT$f>Bh()W=kI5yxqKa9boG)42=p9-xkhlQc#}5g0x7i=U<0tDWnlOxU+!SQC zWP5;k`krwZ=fisCzldZli@M$iNRj|(i8f;L96X;iL|&_$&{f3~8k`)y;~zrVr!}!& zSx6e7=tqCl!~}nS~+7|mnz0c z+S-RlSL48olvH$pJY3GXv4IRND{y+CIp53mWWmcK|EGdt*4AkG-KatYfp72?2=T^u74e+e;fMoclH(y5aO&jR=}&OJZ;s zY)?SwaZwbjrAMbY5~UIj9J1Erv@_e7Pw%>s1?mRol1pG~w*V5zo`r zGlSW=zEz{$5$JHF`YyMR=n+t4uYoP2YN9Wh>6827PM{#;u16|KN_cHC=nm{y}fNJ zC(WAJNB-W`D~doxxk$cMdXQC=M788`E*UvPr#G&41O8Y#-W)L5gz7LO#-ld3pGGDW3T5Pa5|xK_LmT>bDtRvcgMEhKQ)$!jC#>>9M%`_z$Z&m-L* z{WbZheo`U2)~}Qj+v&D2hGBu7=(E_6FP$9 z!-}tw@3T(JVw!RpUo?xu5JXG%x{ozn#B%@w#3yFJE3=>*QMZOoP161DX8Jek|B{P; zu__89esWmZT7)7}tMW8oBcWTHPlgy8;cwY74C#~C-_o!%Se=t{CmF7UtN=4P23$++ z`gouZbh1X#0P415ql_Mq#cXYFW9RH2*~q3>h=|Y8t<}0E;^X~5S#VoJkE7mt@*r=v z3j-~YJmWv)j`6V@%cD5T3W}yI4*c2>Weht1v53LiGTL4*UC$Q|ywApd1~3Pvl0l8i z#7!MJDIqicANtC77LKwqS$t?gXFAo^uP~zonoQ&IXiaWQkS^P?;+qjnvXQq4OE_i4X9szB zI^&aY?yQRI+`|v6GmJ+C<}K}D6fZ58RNyBaF2dCe89O8utR6Vj83>ECbZ^R2i8`+b zM<*kE{EPnd-l2)sP|L=!5RN_K1Yv01sb`8N|Fm7v@~rc+rSABX8b8DEq3l?tRz2JP zh^Hj@Mi3Mnm8Snzx5~aaYfaABT&r1{I9wZjlU;m7kVLtvs=eDtj1P#FqzvZ8di<^F zB20nJOIa63qmXKR=?Y=m8d;f6^o#2*nc47NkI+4ycKOj9nO1Ru+naCf)JJ3*MY;8K z_5TyEbS4F|9#2RwW&-eLWqsk4HCHo8^#pBMBw6&K8oa)n!YA`ipQa+e_n>s6O%GcI6?@0OP1CL?lgBa!K!*+7W|&VTZPfPwDPE2Bs#llT>&qQ0 zpjqS`utprK;ZDBv!}~afj_GV8@_P<<0Xx2A46U3<`1 znlkd|o#E@7?f@q`Ll^j=aGuC09)!XI>ZMdghG}$O@=HYp^xinpq zNRT#^y25prPR@+9!g)M9@=@}R)q2`QSu9BATxAQV5)a#($m+T=N8e!l-D&k@}_QAl$FQDA%MU)4xw$sf0P2)eCi zM5NCL)?$!vF&Sr&Vnc6TRD~44ThZ)pR$SRRR+$J%4qXU2>|oE`zB=ECA;`o3cX%JS zU>~C1V0e!lvNpp9F`p1Gn#t1~bnHTDp&uQp^KL^saxLgxZc{yjAZ<=ay+!|3h@ zWbTl@MxVkKi-1WdK%|@?P(Bv6j~%d6`!=OQO#EzTFPLU~ntkDwg{rd%lGnNR;%W;l z!i@TxMloxA@t0Ro2g-Dfy4ILs;e0m>G28zA?C&V~m-|3eL_7)u4^LgFTgsc=rAddb(B0qb+BZ4PUmn}*yTp3`1xH|8;5xMVF%-J}k z@Hn1KbdPA9UoHohgn3u|D$#PZ9bEY%|9_n{!0hn}803h8NyyVWc^!Ar)SwjLmQ6pw zQ!N$av`D6Rcc;rp*$7ZLYx~pLzbT7WQp)!Xa+%aXOS7-@Rt4cSK7_TTGM*z;-nyiF zk>&=M%S(KH%q_#*%wRI^Uqscu6!NMRs28|{%-E15W%LEwQ@AoQ!~x;N z!b=$+nXQ)5!f7(Q^5Rd&PubUYC|&T}lCw6QbRLCED+K2-pTCcc7m4H2!kVM%wM_F* zsPD;`kuI}quTMgyr+kxEfDLG*MTy&?i2y7sqXSmKvP1Q>oZxFZI6$j2m#g&YIMQfd zQ(y%X{6BX*y_9G{`{XAdfp3BwoM}VPHc^bfkIV=#GSisgcuX~tx^61)G);5b9Dd01>_RP&x}VD`GjHw%Yy&9H;YA$Pi#j)lZpJd3l>`nm#D@u$b_vZ|n`ZQ>5e^e*H(QFw9F)4p{aP?d>6JPK*G=*1y#!_gs`vLbcCQocR#I9)x{TxV};Yb zOd%~CHQk7!4ypTkSP3ejcv21q$bn>^L#}tJC1@tJ#EoGw%l6ZaWRcJJPD`yR@rrOgX`&Ynbv)aJG9zJO~~Nc23PHqmdP%AUHvaVVJA?oY0Gxgl}NeG z8$hT!Po&3nFVvz}SYR<0OGxCA#+Rq^gmq4lEJ0ZFSH50DNRZQ*V05~2#lpRJa+}^$Kc&UF5B<{1K3T`j})8~paYrAx_$=dCV zEhsD@!;Ut;Zg`%ravs*xjr^{|bgVa!tn)K4i-(ph_t4k<#f-_#L?)xaMwZ@;a8)YH zr{G@n6gqDlWYGKa?*`-IKbT8GK%KI2wR)IcqK%1|T`X2FFRZ2v8nidmxAxUNyn5}T zU>PGAXc|P|1?x27xK0kLH=$lQ6UpQ%oe%{f6gj)Ji zh%GQ0wts=z&PFpZ70xcIl7qTFL72H4=3-ibhFM=b-*AW5Nn3u`yxJgSCtiq?n#C1J z^xJm;hDgq$+_D?0TY;vQJg9 z8gGT)_I*=fDq9+SByK8OVnq-s7Z@lW%Fe>-ZCRclJQp)N)feWu-u{X7Ej1&}mbaq| z@e*ow2j2R7V80xrG+L=@){;WF9CYn+?h4~v9%5d3$Af_fQ=1rs$jXIWNNyt##~OYi zk?!9p(6~^5cVF=?k+?g~n$MQ0l@-ZB9GHv0;c5^6hfUW@sO@;cp5SUtYVWBminu&Y zS?8=|j{k9SYQ5YG46d=jq{j+4CmB11xrb-}87Zy62L_ z+}sLcInRR7?=gjtZEje-d+EB}lWq}_jPfcNNUk{Woe~-c{&7}eAb^8cVGA67I1Q0m z$3*7WEW|B$6tD^zp30oVVHgeghWBiw>*Bt5Jf%V`F%A@Q9)9F`d3fCFDiFicsHD~<8_JjHA zaUqgF70#M;MuVyV%HKOZtvm$}k2BC+qcgHse^nXb1DMnos`yba8FCjveOq)#Ww zUn-v8YC1o{-sUPO%dB|2QE&7tVfFmkMhz3-M0<=xSNGvqhv8qi$}MZaJst0{=<9B= z8(AIO2uxXt@>h-Z{K18xvQMD2rZlE3(h5A1x|BMbNsn&E3qIw?#n-igNUipQ!gOsh zf``_!D57`skziXo5c#B$t^gw-kuFK#?F!5>@E#hkr*uyeS$22ECY zR=YJS5dWqqTK>-A(T;fP6Dj_@=`3N_C+jMkqJ-GAsOy2rclb4HO1#4Vh07DoF&hdO zE}^^tj_h=0)u7PQ7y%C!fvg|OAYI5E)3BC%N=&>O>M=eU~1ACfuv)Vg~BMft)7g7ntmc8WBPxW^5|eedlXiuD?MX> z*Zm7*GaN!DIIdZEGxN&emvClC;#1Uiyi97m>Ge4Fb0PGt6dWogvGM~-fxOW(`5y=_ z)$hKg3)txvw3v5{#H#_cfezL9Urw+n;(clB3kg8cJeK-z}q>EvX718?I+f(i=tpvNx7Lhu)I)ZYOEFK3L=>N z@H{NO+8vLMo6)Zu zLtA6s=2Uet6Te}1qiNb5z5@?5OwFKJu2^QT=>Jh_v+sAF$W0CT!+xTF7HfNj+E%1M zCoQi3{mWY%)9GCi0w0z*{oIZ1@{jm5`=tR)W0bap+jRqilGH5lNmKTXH{o~iWt~xN zV}cest?F`E>ud~DwSN7wyGFTRx^119&Jud>=AXi%8II2a(g*``DoTii%DlD2Qr(pY zqi@sJ@QEyNt-xa^_>vX#CdCG5%*>KT+K7 z!r2+I0GeeIoqFkpt&r)}W>7Bf91Z^cOb@SihUH>EpZG7C{D_yvAO}@O#5^z_cY&ZYWO6`PgOM)7Gg>d3{!XMy!KB;h8ukBj&72zDx|N& zZ%*7-N5~$`J9m(387@Nz8RMmIQ6ssB1x2-g1Bi6PFysp90Yrly7_v(w{VN$*I|cm5!YxO}FF5*&tKu9#wP5f0G!f*07$Dd20moY{EpsN*TCAaUJO3Rh0wfE# zv)HOyLTy<0EsjIzfaKg9@xm}Y>?cF|bvNaarm!GA9OLW)dA4M#9DLEzvX9@ltY$LI z4k50~=eFqy=y1_GUC6?A{s}5}JNY}uV~;(-ts7@i0b(jYf-mE3uD*UbO@#rx3-5}2 zIa7zUX{Lh0T`FcoY4wy^h6($mJYD)vXfHq5zl3MXy(>{SUH&6)LLk`*U0m9sKJ5h~ zzZzvb=7W=&!Fu|c2Qo20N5$b>@m*ZqL0zU#SVk&PvmBft+XAeQF2(0y;P=M^r!{a{ zf=d>M1G0w=Mr50Ja38fSZ5(}KJw%x)Zna1f()MQTZS;X0*E-xrV1H`+)47777^U$Me2u$aXU-Ux6VMg=x`FgwRVd07@LDd-L zY6}uZeY?Cn3;rb|(U|a~olHmTFETJo4wXVX$(r2uolT73VRuM|O2=MB?x$*U^&DpV z_KyWomjFtS3;B^Bd>P(>IEy!F15wa>CxDoxg`BjjU6V~sEzcz+>fX!MZb(jF`A`<} z8rm02-K1vSCWRtW37V&CDMP1TpftOkO|MEc%4-K01Z~`_82G!V1U(nr|vo&ZQu=H6a(m9$s66Sh0B>{ z(2vh9n11*{%>!50J-(13JWlFsry4_ImAPVHDXN7%wLf6+2IzqR<)p;HRrrI7 z`fu{>&Pyu21L;xnLgS?sWNCJ~DOa!c8td)yKF(;kGBr`?N{ZqWTi-YFCq=#&CTezX z>X`(M)LE(+?VHh25T&eT04bpgral(8q{!elx*iaO0thp2M#(9VgJE%b!v)&$akV$) zW0X4XUgw!S;gNQ-fiOt4O|Qt{-r?>CJ*C7r$^fG+6TTN4YCKteabg`5HRE=6 z$8J7>+yXL$a=yC*O5G9Fybj4So`c{l3c{qK1)^zHE|uwW>qk}1WGlqU=ye<(bO=LkwsW@G z&Q>ZqJ%Xb?lwah#e8TUGL|?4NlibC5DfwD2>uA14F%M;E031|j8|!+mvEDfM{mY`s*$Nz`!HAb zy0ovhX!q0!qR%+0MsyBMq5Qq_iBMvMR`|9-`Xv%vGrWbZxoq;AuhP-IRyOg}aObaY zU16m#G=~0e@~v%u9*6w|C@t=Y=;bC9TZ{NqO%^9b|54O-Qx(er0SIy0HeqSND<7{) zcTAhBs1E3rT$V8Xx|m<;>jmM~%lD5ZYE~ua9e?=@0)$^`z!(`B4mOjA%H8>+J_Q2R z$CSFw`v8s9rPEH)RnvG+EP&tQ9%WL|K-RrL)dV`56>{PB+Wwipf@Nphfuz9XvJSqr zcpv>>*4wWpZ`AEjE*;-1P2o-XDIQfC!XnX%ICcX(A;o?DC!nq2=FS_s9#)E%L=z22 zV|?Wze&ro_Ro$Oaay!`-Q=^;hm>a|n7ZpJOK{?xXd$+OH1S>MSSH0Eq$rRv>{9yh7Up+AUrn=U#4sJ+fTL@$`gLEiRU-?Pbv#;7Z) z$6Hq8+Eb z{|sSZq5zJC0!2Cj(+e(J91l&4j}YT6$ev3X@R(LUM{$}Q_^EDWU~bklq;$=tE4TcO zA2#p>Rnxv6F|G-D7G0u`dN4_DrymZBfRGM;eU4zdmy3a)t%gKX9pef<#Av{mFbd-$ z(G8u0;x*cSAk9tB{qUacwJK@;sk|=*bMaNfFkPh*6bnk^$h0-G^vOI@OBC_3BrZOy zQDLSs!8s6#j=S6YISqBG*X0N7POl4TcY!#n!GWCT1y=e^|5PpSmCG%v;J5BBUrEaS z=VUPZhQ)os*zr%2tHQ983{55$-L||v3=uDEElz&NBe*yGm7UtXu4lCW%2DiOB;yI8 z*12E?1rpQS*ptj&b6PxIh+}SVTGN6=F!PQygRQjGSY!Po-2O><7bJtih6k0jBu7}k z5lY;$8j<&{>OJqhK6`OlRV%X6v4*(R`!X*T(wJRT%I_w}AHU;=G{OPiRV|}y{}!T= zZ#-XaV6G$-EGbrbENTQTEakq|+&TGsR-`2|f%0MC?m22CNRTwd@c>+54i!< z@t3lDuSZ(7)K+Z6pyI+oweku1Y)g+@7D6aWjtBK9UH-VkrsB{@;UIB%#zYScBX?%Q zoZs8Sp~^|O(t)5YtnpP~J$5jcHO7#nvc%ko|$HF6!T2wkWxW<2yH_JBla=>S-Y zi!(9+?-Sax$)#q!4;~7*@a-2lU5K}~MCc5);IUIp0iPKt$G5O7)+u}dq&DeVli>-7 zq2rOJ&Ec)(yOW^q!I{bD481Z|MY|4Tf;%|t$y2S#lPd_-#@kgN*U;9$N2x3mnHPZfXklfwM?N0F!xMskE2> z9a>>b3u#YkO*%4;3R7}Vl-kd>pjLJlS5vo@_Em}4V$=CaC>%+5DIP4pme@~1>k`_l zG7(r7CFfD!d>U@gb81H=ctD25)%QFs@jAOFMSWNU;&GIE5UpO>m^Wa!S^%}qk^$z) zagF=nc3us>U;POyBoQ1~8txY!m-c17V1>snO2RRj`3kES2{7`n+?oifY>h6h=TJiu z@w<$GBelhU?XxgYuTw=-nb@kG5;V=Tk2?$$Et@ecaaUT>|HlVrxl>WN?i>P+(lCd* z{@&+hsx{wTcc>C{sGX#ndg+w7pkvjY?5-{|^NUK60xzfQA7>ghPaJ2V6y9#UKga%+ zs@&l>BY;XN5e^JrG>BWPugz5a`;V!w{WDDV-LrJOE1paB4qwrjlGqc*&9W_bYzdZ2 zIl{oO>ujAU)uTD|);^QZH zR zKPAvWhIu;g>ySMnYUg-Hc@hgR9;r5lCrno~^{AZ(LMw`PsF1GJ&?VR8*{W`i03g9{fu0&Yn+7P6E@u{Aa}lj@u^ z)b3^1Bacn0D<>=w8y`qY;Xi)L074jQ?K8cAoRrHs1YjlR&M z=kKMjQGAr|cOquJBV;;lBgWs|WfDBO5rWoh@`G=*eZ-&^&7T86@#fBYBxi^$%EnZ4 zX|)avNE;=A+(T)VI76@j6=>jRAsIC!e>Y2Uq0yYHtqn#r5ziNjKzvd z(kZC^t^a?oE&}|-$Z$7n_^GN#^RDh(i{s-DU~pHdo=RhZV7;LWV=LyCD~Ry+g~+LL z&2!@^rDKF$c^NAf0#tkJKU&BT=qo{-^xa;lr&JIg5RLdKq`lkM81BK5rxWqRBB(P| z7UJ;DY60)gf&S^|EnLtQQ30lHhX?y|C8sd2J_DSy+hPs0#!39PJQ5=$Cv8N_DgZ_0a9{P&3@d&^uUENPUK@SkvLnaaCIIo0 z{a19B8G4c4BTAfC!L`_sY-GXu1bg;z%`E`;z2tGv;tM3OG@*ZW6~s!Z>}}d*ZYG6S zgtRhN^$sVWA^)r=@U>6hPDRV%zGn>?JiCm*mA0Z{_lCrHy0!BwUIA0RIiNR7ijX9M zhFnp3VcX**n*m#)V5a+6yYomrU%J17Uox#kw~~}eMb7}`*qirPz~WpGTEs-97s5kIAD7`v4Klw^7_9^o0_qJ2t~<6# z>i)ia9WR~Zxo8a|C~K=waXN=?v)}#Uily#j1oScb z&oAxxV}ilHf%h3m`*p`{I|FVVIHn-y~OcTqigDh86v7?jc!@CnkR6C998_#VlcB5gstwUU}e%U z65!PK)MR&AR;yKHR}mWp@FE_Zy7=>IXV~dlRC&VmGK}C>WhpTb0D*hVX3Fn3cx#0v zD*`aDuvCk8qxfXQhb^@A4&yM32lGrxnk#k}_;Vpal^j2Zl%7u=3UTVR{?XS|C_mj3 z()%xqw5h7(N&x-v6KDGB%d1=m5tO{`yeN^b%n^8*rmbJP$7`wwJ)}?e5t42HhBj#v z(08PCJ>YC?uoZO=XMEj*;|j6>M;K|~|G<0&a{-GtlUla*tRR;Z`w~TYG@;D;Dg|@G zE5~Q1)OP8RJylbkumo3iUm4E)J20P#9|7E6n1?*9u|A z#4OP+f~IZx9~bgK=yiJL;1M8Kli|F6yeP_CXELZ3B0Oyx`>>Vq32lEv|6=`bU@`|w zQ|;iyUC6Pmm=clT;RgS6$KpU*J;YbP%7emmjED z9@9UUYTzv{xr(bORY5oRN*MxRbs~=}}zf+DKtV`EfK(9RwI@RJkV4;BKOVY24$VOY7iNCA^B>6~=t z^=9lhwWGz7zUFfOr5Z3JcIKVN8D*N(dPD2&`j-Qmc&us#3dGqusi=Una~Okh_Aj(@ z?i0$7P+nO?eFJGWjQ)gbq-}lLohIbat3S(zth)?lk?`5nbo@mCGofG9S3qVd0 zA=B%+WqRA+R*{CBQq&RkZH6(yzPXr}FH$!5i(ZZvUXzR6|2KG>1D`f`1Q)~4BI|ce z23eLe%wXbBpjm`9K1WS&Aev8LmuS&2uqL3j8K}BJ;DsZK6mer4xxL?8M_ZMN8bX|o z4b|J912NZ}tk(R%VY;575rn{`F=<7H>yeOmOANULxGN>&^PDVGTaz9$U7I=MDWbCS zNR^hLcOtMOny$xKz|ct*a0#}-*i=TcPbAv#TE~lB0=KLxz3D^Q6Lvz@Y;P(Gj2dhZ7<31K zkI}p|WvD(0v6!M_@R||BAY9IXisjs_Q^a&+Qn($$1<}(+jI1~R8Tp+J;NDA>c8ZG^ zVsNQVcx6D_&Sd1a(yB8;kPrRkjw>v_g)D64x0$b8_wA45op zIoSI14}fZcz#|}E=d(p}jF7(4OfR#u{o@T|5z`}@H{IFB8}BCG$b$=CUM#ZxY2OjZ zYrEON!HL+D)~^tH*6|tA^#Ck5HfAhfIWSpT7r!OZsm(VnK(U+m{$=3XEK2MdgBSBS zrgu|7rn)cWw0oROGOP!g{npb9VyZyop=pa5C8phcz`bC=oL|xuEAf-$lpLO|L>Z$u z&Qb+%VljYmIvM_A*z{hZ_E=zxw$NNn(2l>Q%Z~7V9*n>#d$s+Z`tI3ZOlhob`mK)(;y1F zMyu)zXh2wkk6%}Wu303i)oDjhLJDt?91>K>tkQse@sO6r+sp$!`r1gbjwg|M-K7i& zQG+zJ{FTHqVIP_Lm+0odmWw;7Gq&Q<6+ z61UeqyM6@+%W#h!Clo5~Vb0gTgB3ve)RwC9G8x!FIbxTZcP@ts0u0RIMmwie?i*y^ zep&VMpc_=e2Lep{lHaxo+tw&;g;(gm)oxn2Vo@xH5;UfMMDSZ{3|M|8Z=;WZnI>XN zPM|oPCA&JJS{u6E02bf97Nqp$$b?otS;_1QQ5W*q=f(t|I4I}{D?5Z5H=tTIfyvVv zHdN=T2Cv#+vR4Opx)v&>jXyqyf+G+VRH50%$N5aD``}mzw_x-q(`0!iXDzN*#2U`F z|6@eo$cj@VKpd|Vp$EXSO}XERbCP__VT1{z{o=pv#Y-CjS;8dDMl2-wm7*UNo`lZ&;+tNjS5fje+l#Ejl~_xhfQeLI^w&pPTes7++Us0UVrVodl%Z0L zOKA^x*vQTXnjoOu9#1W8U}FFgjB8XN)hK%y{m6p@>@N#6#2<{Y>ti|zUnRp}n0n*J zDI%!>!viCBef4Eib2RCmF*7MZRaUHPA@xUFBE^JJLD0Upc!uO|fuRu-2)>>oC~k>) zJ)_`3Mmms@yDkQM_hb2(iN;N1E6_O{wo-^IMr+QE02oj5-|Wb(MncyaL|jK!!Pn1X{^6wT$J&TGgu z9QzsX%jj?At5L-Oybkgrsdsow!5abtWvcU0t7e^eTcP;E^YAe*oJ(P;W`uCq=g1Ow zhw>zP?nolwDvyUk4lCM^4^}xzB*rg;F&FSfQ5LNc&<{+W5e)ym{BQg`;OreND14WG zSFkP!HYXk<$}*8Hg1W8fIT)=MIWu4)QIfDd`nMXR`_zWj=E3XStvBbr$^ z$-E1n50M{^^&wLL4R**G9s_&xQh7Rx4X!$0e5;v>sFG^@1gwHRIbGdErh{b8L*_0m zvd-I`%_u1YvzWtyUu!C`07@iqa~3z}P#rJaZ&zfVm=;~P=VJxVL=g0MdrARY?gny> zT!n+1nX%t#$Ze~BFw$p(&wZRfolnalU)^vyW$}A0(|g7!idb&S!m}dsm{j*UK;GT; zHoVlOKAawac1kc{!h69pR8Tgj-Q=p0^gaG1tyXkw#C-*4d1fO{L=G*g+#)LKC%Gz) z)}*e~85%t8^h_5r(y)gsa+to9Mh?Ya}0r^>|7w0|EY8Si=!_Pw*>FbNW zthj)yA;3RfiPy!_VBNz#joxZSC!{Iq;AqVGQ`6Jcr^vG7pyV>(@KBySaD^xMFVcYXGycF_daXBM0lGHWtk&sz3l&#Wn2A|r&_ptRE6(^SLbr2!I_R+j78vuZISKojH;dssh5j})C0H~gE^+@vmc zj=*|h?RjHZJ)f`c^CV6RBj*1&t?vb?ZrfkZa#M$`dGTsDj04PF2m9G%p_z1xtOf#r zzYP>{ww`5JtY)*5AJ!!x9f7binO2fn%vpGvr!))j66NfHcaF|8dH?ttCWD&A!?nP) z+KF9EIc%D6>R^34%^3yChOw0-k5t4$!_j$$}L`E#c}0h|6RDB-3UgC z=#da^sQr*o+%*-V!Qm|oeo%TCz*ss4ss#Fy{|aO+bBYmh$RKh^PX2@cwo_MB$Knqa zA~h(b+H5SJ-8Sl@UmR*{_xzL(9s@p>JPd@6NjEJgR~NsqV;e-t>+Y>HoTL+Eg8T4r zGrBqzL)S}Mdr6)x3|ln>jzbaCW)9EaIk?P%Apmu_W2NYXT$SRsC2Mr+eeN;Nwb?M) z04j5p-x4lX1JkwsA;`-FR?_)8NF&3^T?j&zU<%$m73kXVTQBNJxI0?%TI_hvPd)$r z{nFL`QMY^Z<{co3j`7&0v25rR=P_5m+|yoLFva8uE1#gVV*#IJH}IW`+|*LX_X$th z^emLf$S-FTDMg+HU<5Zk{ydjrupWT2VU1;EShxgE)IP~1Kgk$1$TU4ievI-{b#k$? zRQuiNZh6rd40hze$52_QR&+klT%mo#$f|}%GO$exi*e}lZ?pRa&L|x~=B0$xD^o(s z*zMi>#NV&_{mPKR3ElUo3+PIZ#3tRoxDZk#Tyt+$pqB=23Q}QD{77XXo_c1n^7Hn1 zOU6R4c^-lv)|bny?3(B-r@#d@er;Bj{=H)us-?odxOna?hZzn0dyGsRf=yeVH>dP& zK3}0Rhaw7{)WjZP^4epOCo++}%r@n}dUFDf=i$IAbFRw_+a`a7BV)u1c(UZ z5>0#WX&0YTw(f@uA145yDu#lr+9uXZ*8mkr_sfH6q81kR3a{MlYhVI%F=7* z4olS zG$Luv{MIh3NLC)lt7C-hff@UY0a%862Cas}DfK0QkHZD?1?6NpZk$0*1nzjD3k&W8 z%J%MQoQ1m#?Mf(q5=~u8G-MusiY@7b2696E>Dw^K(Yh4878guQT(#qJy_QHFhH2_JN^>(oowBr~K9c z68J~R>w-7*tgmV0qImm^{*n&`?FhU|jx9E2R1yGOggbT0aFl$sJ zEkXr7GeRH1Lej9K@$W5^_N|-%DLv$}6{bT3pxsvBP?_yg)z23jgEx32%*hk$2mjN5 zfM*=Ow=&&N?!8iiUx{WJ^~Js7HK)~*xT zhcBuP6M92VYC7<~elmu!EE3XM77~JLVW~nsn2*Fhgs`Wp-Vx(V)8x1zo%~k);q=_t zr&~K=6u~8bT&(z3pZ5d$Vja#$4`bz3fcOr{^-=Ne&~nWevTy6EC6NQ4R8o2GU?c0J zNQOYuFQIZ%UZiQ|`0QR&1p7b9>q1EFr2oJT@m5j2OJ7*>Uj$9(lB!1=0kC#r97=WL z+>pv*A`Nx+ZCeH{hrU_Q+c=8sKTZaOsW^co@D5`{^8&bs2a+!7E<~6EEq}LBAd1Gp zh#_g3`5_UAn4}=*&whhn<7|4c+%Eda4-mA|$@!ie!9LVhCrR4}0*nHub=*62>jA_s z+9>|XffLRWo_{uxmBem+*%hK0nK*d?_3h4N(=2k2oWnc?!|r>sXgtqket**Rh;%lM zjZ|01S4Olkb69rjUFJf^H#={1$GRno866y;Ee+%{#X4A(y8#?ovRcRXQy%ZEMsRg8s-+9JFr{fA&tz@%`6i=GY=?8B)wf8zC*m)-mq6mMEV*43dR1p z56x8RrVstzM&w}W0UO0a67ZY8Cn2ZvU0jAc5Kd8a;f`7vxmc+e{fkCu75Pzz@CwXB z>PuF2T?UrGwIBuBQRj;nE<+(!f<^5?{4t~ID~tdXCL0$SG{lk5=Z{Mr!F`~`K1ho7 z$rA>bdttc|#}}H?nM?kLV95i_;VcO~3M!Nwfh8KS{YhNBy9IFuk6h${I%0o5H}MzW z4-U@&YeStHCQ7;*$UbeF;>mOvLL(BLL2vzU@hAgDTd<~V@1oa)V-})R%-?-OKukUQ zt37LnJCx}B{+$toiyy0~@>aQM(*-^+G?q3ab9NQ*cun0lm4UC27%Rmf{*_BHq`*{q z$w0DxgqB1YI)vFN=Rg7~n>fvkBnTS`$b%S+EZ;)`6jat9 zS!R^3i2LgnWF^hyKfQpgsD51FCzm1a;r)J|`NyNpk)NXsNq4_3RJUXm)K!Ad`u~0k zm}tUWvy^@h(EeqzT$k)B?=2L8_Q4jviMTufM`{4sQp%3&&|}JJ`55 zBZ9X#t=r@rdb|wh84sK>Hok3%qvXWHwp+at1>zJAgTakVtSYDspgI5WH?lA&^q?M5 z%++C1u)`iA-(`GnHE3k~71_F<+IqWifR+wA&K1T<0P{ThjoA0Gp+{D*vV^t+5k$^lSS_>PfgN{F2%gieY8+@hLf{?b(A- zbzqPbDFZhI2&1#jVyXU#_u?gO#RMV+6@en+j-4b#W3SLFJ%+_;@q>B~V|S<7SKkrq z%!Nl)2RrqM$;7MH1_hm(XK_5QXB|++9moA~n4kdut%@SQCxdU8k3<;XiY9q~%!;cy5*0zU>_)tT=5ik+-4VGVR-z$`yl#me*JWJ*mxtcS5eNmF_GUdOWrFXz+q{2!-S8+nj+~O8=gi$C~0RV z%|16IVK=7(Pyt5>VMgfW^r8~Fhz2Qpz^SnCSw!3>jA)eE(k(2B;ejIfp1w$Ivpumt zNSPMFSi)xC^j;__2v1ABezw;YDH1YQ(l5p(VeH&AU zk-~z1kO{-e`U205!|$ z=Blhp;9ZxCx zu<4P~W(Su0XPtp!{cvn{wbsN=eSwK|k;DHtsa(j~ z?zsRiH*T%Ez9rF(#hN=Rtkp)pWIHlbx3D*Pu^seb;M9%KvYiQ!wrSwJ<*dN%AxXSy z4voS1Yycy^5E@e!;ze@cL-A3r97>-avw+k=S(w>70v`krAgVHq;Ix!M0dCptFrGSa z?#+!au2Nx7*QyN}SpP-l9D(?JbB#209R|fT12mP9Cq840l&vX-KSqFUe)6F=2oZ5= zQnO}XKz9#9Dao?hN<-Z}`yWiy4KVL|Jzf4{stD{Mu`l^MN9>bJ-2_mxUSV1o$JgeI?hs7< z@CIn_iOR4ULB0k^QBXnomhhO@Ai7MSyKeNrC zodLtdy1@JsN|mW7HA;`xvR^?9*=Tac{;p?1pAIB;B`p}0x*LXW^>lr01D9uSC;?9* zUPX~Svs4!320fU9o|7A&WxW_xTCU0^V|HEe+$%+%+TT$S!s=$!WY(0jC?;RjXnh}Y z*lG{^$cTM=sP`0Zx%k+cbZw*zg?sD`P97bQMyNLSlM1d#6h1)Rc?!PCxQs$!teMf| zB;3@~Z6{v|TZ5FGnej~rh5?eV8KZKv8G2_-ILv>?S$|Ntq{wZHDQgu8hO;sl&ssez z!GPdDNvR*|og$pB40`TvdKfr`z6qBR^5YrbK2q%t$H`}o^ecDE;k^`r zrd)hcl~@^=0h#3(HWD|X!#q60My@5>D?-(EuF*=5B%Z!!39XSX-ivBH!+DvE+M`78 zVZj~rFlQF-QOn6m)~q6}+8vA|ce9b-k&dFBEi6YYVR;;YYEq4oLPGvjpUg{Y{2ze! z-fo=bBRN}D;+B_gOgrpTeX^<(Jbi*v>iX}(8ygMFv2Qwe*a3!lo!_cvmQoJmmjw|F zQ@SW=Mxy@#3p-uch(HOHC+Y0^L}nkv@$V5FSDRYQOdOO2NZaCFpc%C}1*Lon{tp<2 zTxI1v*c5$_k+XP*D$^C+H^sQbG(gdd1=dE+<8f`d#=5ya*V1@vWM3}=mlBuWT5at~ z__pbdEvydT4zyQt@4jW5x?pn#OxzAzj-fxm^HfWbNH#p=B~_br;TrRM@bvs=N6;+u zn2NGoq2DaM@*l{3bJ9-ny@S-1AZINu^}$tTPe*tSt8##62|$1i#_qp!{L-+2iC?nf9QTRE2U^G|(R5g8g<5DM^tCT98#@^X{kas>>LL2+O8J2iZ9U8-bN%-LN`F%fXr5UhM7&OX zDyl`y1;B~S1LPOs&hL#=(m@wahZQ>r@Larwy?GgBeb`jSNL==(fyq(Q+gYY!sqnl zRRZreG{?QarRM(7bPmYv_?!i^iI4A0bV+JOd?ypNyEp>~yx=qwA1G6hc{#PYBqUP~ zNT9gO$5RUqF*`6gOqz+1M?Wl!Tk+S~H4k?eh?R}*Ujherk|Y{$cMuPXV>|0GtRz$V zenjqmQzx`(!O3HIlYmyF@?7)1PbaylZG(%|k<~^VoAyxr#qaMOM`J!ZX6f=NT-=cO zIb!826C59=-lRPwxOxdC1jW=t>-t>p!V+j%p)RH*hv^lU;~z@yr0huhdDds675KRI zq;AlSYk#_RL_%4Ly8*y>TmVsYvO~{W z|BApATAhdU4gX?-rFb0GkA10yLpVQo%!YBJ7(=(y@ARSp-P-T-E3SP~78`RK zYfdz2BL0zy+dbk#&L`AkC|-LYXhYE z>!9ar+;dHZns}p$r|$H}Kt>!Ms^bNxB@rx?COy%PVYnDQR{y;c1lB}s(0_y(#lTt~ zUzX>%B84++U3U8VegXG377N^EN_tYxeDD79Yi4p;HOtsK@m&>ccTvhE9TeD^MHRZ( zFc`xeJj&#!?&pVv)tAcmvsIi8ASsX2>VGr6sS@r6*L928S;j~{88Rw;N>=qz;~RE4 zS=2u|u9ogopH8tqKhmGfB#604YKV4Z(LUT9 zWTG{JIR`Z5S>b9-kfO~Ujr3r)QARN}ljyj1-2At!J<&!s{Q37HhtV^$`9@k9U5s6_ zf-)RVGbI5)XsW;x{8-s*Md{`Wpa!FGDQL8N`3^V>#`k`qST~=!JoY~uY^ww6u8a*4 zsPcc?@?+Bu{4R&k=p7sQ&SO$&e@3MYXr+mYOlNy)uBM}TST}tG;mweV@|(}<$g6QJ z2Nfa8*{}mY)xcLxz*IfFFzC@t0gP{oO%iqzlw28M)zEDTN5eGvJ8c!5X*3MNEzvc_ z%Y3uR@ol?t;koZIKVRJ?S+1~sij>XwyQ9KVL-9ZCJyfiVcoxFPC<2!T$CCCkqC-Jb zE+y8L&9o-~OWqDQ@G16;kqupA_itBLYoib+9~!_CJgmgq608z>=!&GL#l=(*gIpg< zm#|%Lxcn_N@XzhS1#*Ng+v1>+A>UbSS|PRxxTwq-0G@#Tz9Oz=WIS<8Hysa`3)IQ+ zPl3wKaxW-kCfxU@vpfiXtoZ4Q72CTzZ|6VmYYO_RH}(7}K}H&%@%DnNA;Oo*FIqyHa=*gXu^ zawohQ4qT1L3;h{Lxa5ZqRdx;VKo?<(xI6jmy95Y@xv4nIssrD<7kO-h7GWd(1(sDX z+oYfWgq2URTfg32DW^MzxEU(yHf1Y&u+)xMUXH3{eE3{M8JO;wmy2lEMILS&iA=ld zSK8fW|2&&RkV#&RU;1{dudQd1jYFe{r#{j4&n(&Y-)E%F!87!Yn+icSUNZ1Qm`R|- zc!Z4c0dqfMz>v%t;(Vu1QUmGRT101%eu)UtP(&p7o*XAre(J}Q`iYca)H#uG_JfET&P%wj6 z!izA8j?^tzA){cxVP@IL_sN>-O|fn)YI}}w^UhAc%aQBn zgS!z^XOPt=j6IfJsOjtaDj5T5J7{0#@sW7-JIX(vH}Ex#`C2|^MBevKp@WQX+wB-6 z=RTm3SnBKBJ|83FVgZqcGqe|SS6L0J*L<9omH@teAA5N8BbhWcBUXS22+uo77XHJC zkZ29(>&^04I?iuW-*KUr0=74En;pS`ef(n4E5$2>;cO40q3o4$tv?KgsR{?1kV*>^ z5t-=HI>cY+hs(0@o{@iANY9DFvzuPQt9mtuh3eQLY5Rke{X9YDSMRi zB%7(%>D{2}l&ox926RIxT>}`v@wTYK?xXcO9M$FA9&gEbx!e&%SqjmOX&Q~Gv}4}? z#)a=+4EnYHj1kE4Pw#O-Vwhv;V4V4+o&RD>zj&7= zR-IQ$_-&Pm6NWK)!>lt-oD6^COl|iTD(-^(%R2UVQ(+2dg0e-VoQR#I&z%L{8iw7> zLNW!g3X1!xQ{Qlo+iR=|eTmL)OVbs7U`c!f3$WIg)%$oEC(NSo*?>QC`Q7C)nt+AfH<`CRD&DK~{l z&7jY1{zY?V8lqBCJNwC2Of|H%ML|A=1YAz=RLu7o;V@fb+#aH?#P7?^UahT}zJfyM zzs=YmW1@X{i4USh)K1?wPw-GQ{cOh3O4wDB5Iaw4g* zXIV_eMMAY)ZFyN+etxw&lxB)W*J1y!`=ZBY5;syro_gq>Frlx4ez{0!6m%VMIXDF8 z=#2ann_70N0$wXn++kmj+Zw$qBX2~5i1ep)9_9>HBQd^gnuP>Wsb#mAD}=x0ki-b`>R*lRpGNJ&npQdn zJOXWM#lDf2T(NN6=OQlnNz!fL(#!G*V_$-hve;o$%L5B^H3%Jdm1al0=Nkn`v{u5L z_%q}9 zA3Q1vDCJF@RXqi-oGSXkj$Un9B9DcC#P1S<6V*INF`%eNA6mqa zvf74Y2a-f-F-akzGybiKIK05(Sb~ZgoMxB8qEP{u&qpg8}J8NuX>fNJk zb10v!V~D}`G$iV54@r*~S9SbMlOGoKi0xJoZ4e96%kYjqGTgwf)rhNp&Jo^ngMzRX zTHfl}B@%F^2YAuJv42sa&7NLS)+oG+BDdY>Vq{&9Bll#d0)zt-Uk!CYb<4ppxPxWo z06j4f8~63)e0kaByzo!kGb;eA>=!5U!&F+UtOO5(V&TihL zb0LoM8!qh^=T9PGVER9j;NfbvIDLBivDv{dKwPw1EMCa-LG@$i{VyQDYr-0kR02W# z`NI+sIA?^=#s0+Y-T2lHdRbw~MSYa0a*Ca%VgLKCb#@@l!7NbwTC1%|3T8Are6le= ztT-uh`)a~#b3^b=tj=;kt%ix&ZL^(l7&7>*X{*zhs%`PJI*u<=?jggfsy&#ueTgek zluWAywPoe+K3U84W2~tSx>J^z5!E(Yq;yu&WO&)$5FC|lxkDOF`Q!zsOqbpizwnn* z2_zE%+|4$hu{!zpm)VU52j=PhgzH;5C+1fA+h)aEXk6E!=uBz->s`JTe)-oRVB6)f zSQ2_r{^p|v0!njH{&b#S0<6g^T6gYXo}Sq}E#PJ5vQp22!E?O8uDa8yY=uOrtAZ?tn_|NR9=|d6|9Z9F4V)+NAM-*B#oRlTBjwc&MEi`UOb$FsHIYR5Ht z*QH<}9BWr0X&BM=5f1Iq&leEv*~g&~2BHUo{9AwvjI&>#2?l-F_M8*(CT$fLFPcm| zdy1M;4r$cK>z3awS299IK&CX#iX=PBA!6JF9VEu&D=IY)f5z&c-sbzgPFr|G6=CIr z?oT3;>Uv%pzAm(nhDuz_jP7=cj27SnZ5^G6p$yW4n?Adn5ueU|0=^me+%5aWI+2<& z6}kOPOf{j%k5D6bPZ~2v{-KEl3&)t}89IG;G`R*q#R@WvW(!TNA-jRg;Svz@2PEsmFDJ^XzTJ@_qvu zO$EXg%o2#XX(}sbMt4>smuJz&ctWX9A}l7~n*MT)>!$ztc6xLzd-i>*SQ!!KS8GyX zdBrXYcJz}y)0Zq%c)|Rz$9roMEfm`d=X#QJQDU3T$(c~xmC4^V`XsooXpKPfYcO8H z%0$SE1DeNqqT!iuEF3HI7;b;@dE9EBpj91jU; zx1&VyFEhM!)y1cK9o?m@3YEcSn3A07P=IjuB%A^V;zdbg1gxxi{SQ4Sd5=nEUXgMc zH$NLF59+|(ibRvJng=YQ)lkq4cuhnxOvPO+`ie98{iDBu2q=1bqL{IoH;g(=$;5<+ zf(Zvs$l-L{oey$Z&Y$q51UPUXJ5^A^-WMZL>VS?xQ|Ci^2O#Tu?$#gSFRBE+Qu;F~ z;4DtjU||PHgoV*JN388lYnBl^2?avAgZ%MT6N9CcMihrGW7@GaR*8$~dsWen@IuJJ zNrMK4CUzP^wacdn4s;Z&iokIuMey_F5Ix-3{_SMaE3#r3Jzk*M4nh|@`TA==rv|04 zjkHClRq+_sYQ9z*$7IJZ?@l2EqY=_Fz94*MHN(Dj9}$A|$=&W2a+i0(2h4%FTH|TA zN&%cnF`MNAUkftSq#)D~pO}2u2KAc~|7;Y?YvNW}k<#vx;m;))8Sr!uaykHbk5}sF zE%?3lv-%wuSRa)IuP8`fh~S1n@G5l3jSYd3JzS$Y1mjv}jHQVW`^~qFdN*cO87!-Ans*wx z%)VaQOmM1k*YtT|3Fq}5g$`EP0V4*Xw~lF{u!Wa#FQCwJ0kTf$!Uk2DtP{5kVWajK zHDOYQ7clo{DEGOxDPZ9@o-0O$^t1vyBh_z+fR4&K<-=A6SenGq#ZaxT)5NPud_&z_N3d-=o1`pbZuayBP z{`O$Yu{(U1;)qP&oifUkPvR=^@gX#-i&I;Zd8i6urUtv|*qD8pfm6R`CjM3LCS5a3 zn7JNm1i`Q8tI?s3XxA#v%t9vBftQOJZ1*B4?Yj_?;$iBFi-e&#gyPd&q4RWJwD>qM z@N}jEw|c$%mr?PCLCd}>V+p*aAFj0Av2Rqw^ZmD(?z*R3D!BF7eK$PlxQcXh;S9RA ze+Q19)MU47xZX!G#mh8mK%4fI?-GG=xj|b`-3>{QvYj{4@H`AG{UM1(4A4^!30cSn~$+A>c3B5L5?khWl={{0k}(smjtU+O+0YS=H`y z!di<}&C!%T8k*1bakb893<_MO*-7$AdRZ21zJ{8}!I7;Na<;G;c2L{JR%xxhiXbK} zv0lYo-@FDtQ@e^&1HD0J)kRlq!r2ZG6MO{~Pu>rX@4}o{%*x3Wc^L!`-RGR)dvV*k z{l!9bFpa?K@sLWojW5zEK!JEX$223~TTwh!SNT#j3ovJ%rj2UgTRB45#=$2T-O>~mxiNznY#S`P%m zfAdzJTHz}VsFTFBak_7uUjk;GOeS-P*aUcDr-vqLOonb@;q;RFGKrWnE0|y#feB*6 zBzZ7>4`k;5KoFjsXd6OM50t^5c;-{bq~?gdJJC;*IQNiYaz1%|{5ov**khMhcH#Q9 zdx@;JEr-AM2ghJZj|=YOnST*IILE9Lt=u=A1OPo3ihJOEEXu)i4CD_VG2>IV;<-D2@>hnkQvXh?=NKAaRWH2Y}%SDJvBTqC*RF z&1UX2_4$?mWy3|o73{4aE{VcwbP>u1aFh2~Wbde2b;cK&RIYW(j`j3^8rGx>54 zSHD)}DG)>k;E#gw0AheUR;9i*t)fa#RlQ+&L?^!La#b3&rxpCMIWoBsjviA#{ zL>zhgIF_mDjWJh`yxlI2A|8Z8kY%KQ*P9K0yj0IL_ zXof{o%t1$AK8wEbkLRd3G?(#bx%`DOg{9a!521ib07w_7Y@s6VBC{^1=MZwJcenGD zVRS3o*Ey{t5%_{CN^Vv{-X0K{%W}CsTH9AE04H~)QnK176xZqi6ZYHipe}O6?sB35 z#0j-_dDXGvTJ%4k5NZ5frNtNlKadvx$(8dd89eMj$*fBFMy)~(SKh+!ozQJB5wi_Iwf7;<&-m}f7VZkV+b zpy7qn1a_}2rgO_rtCGk?VQI5WZcFuwwueR}@`{fIj$AvPjn^(>r@(KCXvq+7jQfUJ zJWT4g?55ZReqkZ?P2Y(^7aDTF1V9q75v!e%8C#R*FxV3aX-XWe7I&ovsGq(ThIT{f zkgC*aM{zSMyESAU{S<|=J)^|$Np^)WEr{iTCxfG>E-kARqv-sbD78h*^Q-}# zV7>h?`N$Jz8{;%mz&nMjS}}FRBK?#=fLG6XWxG~ic%P?TFw|;cc(zJGSeq80Pe#bo z)KV^+tVm{f^!`>zl6C2V>-$}t9PE&9z$yBI5 z!b{^Ox`%keM1d zsq8SzGdf1$2kIaj)pjA}_Pe)GR)5Pvljm8bL#{{&=g+D)>BC+$+e9K&(W!6=MoP)~ zQXr0j1Xyxhd!D6^=;%cIU}tK#)*P!#$WE`}-j{pZk991s$KwSN`qYqSG8~+16U&Xu z?F%Q+qmsD2&rU^C8qrzsRoPExoj~*ubPJc~ST-HU|2hCRW6q)mac-X_y6(Jq9;VC* zNnAJQF^|?HZv9o>gEdwV8Swd!O$F~;G%8zV+Zu2ImN<ttuyz^%@DAjoROVUnkoMbqdi!E_T~j48AKYX!njfZ)4mnM7;;Hs0J2I zvdR-7$GlqH?_&=(a(=VWKn6L=!m?jA3GIiVyyVyVNgBvy<$l_h zQtTJrJn)=$cxBY0{JQ!n*6G#T2(xCM5TM%{PE$e%r)Vc!gW7MRZGk2UMjc@bQ-?@`F7Y53pHdsg}d5vrbR~1va5{nqCe{$<< z&D60ZPP(&nWAmXQK?hZomvK92z3NsC7P_;+>*O! z1mDin&h7l#J=}=YKkR4A;y!8HfL{s+MYXc@E#qfrRBDwB&z$XOTdDm&O=JkpBtZ^; zQ*wJrinuSK?ywX3icebfaetFWdX!Vni|2@ocumPT?`ZY<)>y7f^ScefZcvr$%uy~X z5`YKh^OZC3$N6GFW%GcSl8m_b+HM61xi}+#5@HIbc*tgSPZ-T(C1v{{M_X1{PX;;D{l|t%?XR1t`%D%0IBMnICC28gSR2n}+yeN>Tw7$+WpxXv@MWKZ z91mEv;xe&TK?4n?oDWb@_ahD+Ws=m-EV^0h zgK*i!mFsc7Kh(Zgx!YQ+n-ymm#2k?TGx8`Jd$}3jmS)(%-wE)e0V^wj3tMgZKA=UK z0qzbU$$PwU$yGfP%qDzdWDWo2W*kTtFQM6{dW{)37ip=-lcY#(6t7>F_x z@j)msDW%iX8dfmWOz*$FENJ}#*$L3!!Nj*Xa(KnZgvr>`2bKh!;5|l%#$vx` za2Qb4PKXEBptJiVQJxiS_uUWF$RHTwL?8i7iJM|V_oD)Fln$JnS6%!QX`e^|XK636 zv`8r#TOC@pSK_BaRs0VklXM?vJIt z`?aMoSwh=7bFK_1Atf*v?r&Kd2eGPF8cyfs?M>Gi5Fzf`YgY zXw+Bq*{b9Qs|wY`zIqsW;YS3uzFGRRSAq~lfbVy74)r!EP`BweVH`P}A<7Hz&2qwD z{4CJkHkk zh$^{?HW`()2mmMM_)*o@ak;d&)Vw1n;Nh7FR7Yg%jT?FXr44M?ghBE=B*Rkxejuzw z-bhdpR19J)YV!MoSH3}Mrw{dk%onheI<>MoeFthEBl4aK3j`AbzqE2yj2&sBq$ zD?JHAG`Y@Rd>EVWZay%v1)KJ%6Xbh(zLJa}`dezf%f?CRq*Wslk*IK0RIQqxfn$#K z4WXYl3XttGgZf&v2b()qiXJ*!1_>5Eeq^GAmV0E3d2$MfET(VHoof?lP*z|Ddz#HQ zN{^;?4!Wfyg=|;!BD#+PSt9qHHc)fX-o(lZ(rN9c6q66o6+m4+JT1p!dIlqv*}61} z8-l&@b(w}fN__Yi#nl9ix+`I%fD*&|X@6jF*hUTN@nw#V0#OH0xc~`qD7ph5b4dQG zH8QZTL<~VTaGjC@%W+18`2%sfh0%`LZ#mcSfhi8v#&N|Po_lXx2_A`n9?M<)yDcR! zb*KfM9WRC&2xkB+Xqv?-a3LA9Vm$~f>MpeRbtRXDmuWDy9j5uX(Me$pY1d1>RYHwk z2zyYZq)D@V{OG^$>0Uy%>+f!{CtRY z{lx7B|JzG(Uk#;eu!rfhXS1&8H68X=Ss;nq2JM(&qqs^l7T4=`ut2&FU|MJj2N@=Q zp0VsG=PLoZZ<**lTYIT&=Py)ARAn4L6`KfT=7O662zXXuildF8J5TZf<(~ew=14)> zJic1JVM?a|M~;N$NOEib43OhG!r(9D6LM;?^Vxjw`q%nwU7#` z@s^D&$t=@msfDd5-tcvGv@L9(ckV-;kgH`m!B$uP5%GlXvKtd0jJdfpPX(fAJbqDv zbLPrpLhmRDnGsB?!lTHPkHaEJ*r@(RnyEJTv2AQ}U z*B*ysMdMU)qZ=gzokmhwiWeNZ_{bW$VY#HiCov^=W4A6cXMU9G=*t@5^D@(RPR)gf z_iMM*@a70G=Y+QkpBRbHg7I5mV7Acp6yhdgs~`eq1aNUqL7pav`y4z{JF@`hG`367 zl+~Acl8TIX;!2DY4(TWZhNCqiv0GPq;M%fL9T8g(!GKQOoh4@Cps|B(>5GOtUvTEU zKF`k#Q+{5gU@<(R%^H0RG2EB#R}v3HM(L-l^H}^wmz~=N>`ZhZ>ZXy~y(-6p`R~fN zb5&dCLU?dgOXyMQiBJRUXeymV&ec`A!JD*~+?zY)hyM1iJSc4!lGujIg=|mta+6m3 z=l*MwGFVVLR{%k3vBu0#5cctYr27bGn#BplUhgVhoQs-TIKF{&*U-tXT1%N?|1!jL|gMg6x2 zFlB_Ec_qI}3Aes~_db(GCHb*``m5Ib&M6_P9r%33tT>j3FrOR?W>-&=`@5+-uGN~5MxFa2CP5YYuMYq!7@i9mDm0x5{%s&4WA$&d zg1e~?6KiBWV^K^{(fl`q7`4^Yj@_4^u30E<~DU#S|ROfC#B zJ&j%06v~k*Zl>e#K)e?7jdu>J@YmClcPvbmCb<0!|`;8$H>t5Llh51pUyq zCLr~ewM_J+W*Qg$Ry7idazZjt>>OfW(%QyvU6+!CAMw6x=TSoecX}`s0CS~e=iAl; zx0`W50DF<;uBS?(;Ssp;lVa-_)sEvrbFo=Jvq863v2NdAoE#7B?9hLpW!;|SPB&pX zxVy>OK{As1%=Q=dqw#P}yGvkSFkFgr0U-C-Yu~E;Fp6qF@IybF+hCCZM~g_XYQ3_G zw%R?>^Gi)tQ&3eqX_wy1<%X^y$ic;tid#N@Qgl!==rkVPQEMl+GzR8<%kbUq4}6lw z(o9uZBYD=UYA6nOlQjr)Dvhvb1}4piW(GVRU_chJl-ynYW@G`rZrwVDo_zoQJ$WGr z+y9kg9r9d7w#9kQDZCbc&lI3DE0nzbO{eWQSO*AJfc84c<=u?o%TPK8@1@eLJ&6yV}J`nBTs&?R--x`;(2-q zre{A4eT2PtZSUg{@BCq;lj)&9ZT7C2El?b89FDEl$9S7pTZElmsxLlJ*hKvhdFiJ- zgvjtoPpK%Su100D!C6wr$7RV?fF_3AzUwE_jc3V7z_V)FJ4l~#6xR`QfuDNX@?&-s zz6vY>jJWaoXN7;Y=T-LU*k$y+D@NAqHpJ#<`CWXZ zyIZ4Zo>S|$dq$!`^{W+e8YgA%mrsLdHr3|St?jpqKt1`0uD;SXF0a)`3fvB67YAyj zIqt9G$O)LDuCdv!HEZWe>`wU5LFsNDBLSxl!gD_f1iK1z|7PzyVY*Vw>6Qjo&8-X4 zGdYHhUEl|V1sGdKx8i_sW_3EuBz11ZU4tLi&ZOZEZNA&ImI{E&(bQ4{)2klCkw1;= zxS-52>yYx|lwKW#GWvw$6zt#6$*Izu`0Lm^uFp{LgB)c3R~?7}`p`C~8f5|FxpO0N zkO;zZBvA?>2GO?ai3DH;MBprwYr-WopiO2eb3a@Mrjz@vZquyvEKp<^u)2s>@OMcS~R!OLkl& z&NJ26*S^z!DZXwp4zLsooy*iD`|w^F91#XfS)6l*Q^&wdf*&0ONj07z;Ga; zrFS1E{KOTL(J=jYUfo#FloNcJC?jUw!vlj&WNNB&Tk7Z~YbN%CwI6^D7`(=?xWthV zKBDH?9eaN0b=qtD)S*ciIdf#!!KYL+*>}_8?pW$rnC6BAmhEla+K0Oi5)M_2>5)ik zYhoY-)C@ze@@j13h%bPRpyX@lNJu1LO zBcP5>8!vY(S`lCx7<7@S1bei`cHX3_M=7e#YQTBUMr)G{5)81Y;QmIs zZpn5Q%bO@&hWz)2LP#`R&l!9tjH@~*^wiNY>rhB)t`|_&0~0~Jm6rArNMcFsM8?I}u%HrFt1Khm87SIKC}C2(}{%qhZFwLH57qv(zENDwBh>3Ara zaj}nRdUh6~%HE%9SGXbcp}Ibsa>kuZmg*Z>rS8hp z(;D(d`X2?*3!{BKe4kZT$ztwghOU3;Zzg=E@}}dluY$X&}VQv z?UI}1w;_u?c6Mx6g?^9o3C2vCetFBQrh}}iC7=k|MJVlOI5jDGi~1)FpL}uHmL6XeuA?cw{$!4&4ZXwMS3Z ze=>#+%cSS(xT!IH{h}aW>f#!jL>X2%j{EWnDl$j5(tI}ByNvu0fDGS&E*t{og0H!% zj4B#%4xSJ|`IV@P-L_fH@;76p9un=mBf~XOGQ2?D-9$+p1&E2s;$Rz4s%W|-6qw8O zT{g^AKkqJa19pjNEH;AY=IkG*(<0!saE@Zkn!I3T!-Gq$ zX1vRuI=}Nd)$@cqOCKZ`O{tDTaTWGe9OwY3&izU~1`+H)d0>ZCP~G>dJMBFQE?D!) zL=~;La)L^?h;qEN1$xf)oknA^{Y?ZK)pxGBZuTQOwgL&<)Whs^A_9}wve&J4jCw>J zWZnR=k0Dkh?B_|HtZz}_@%J<}*(PvC56z$kqz#gY6==+sl$dQ7j}G{3-QvpQJQ7zYqr_PGvxGzG|jWA zR+wA@y{b`AgLbk6#66SCs>-i4EKkXq=*D(c$h+y$gzq8fkJ~ts2VRgx%wKSKNc%wl5vRL zBxw<2FhosB+>wu}jId{URKk0a617ttI5U6nCT*KT-V@s$H!(JeGP?Xi-z?cp-%`$KkIV#&Zk-q;=8QuhoC)0?5ohD+if5G&Wt3Xn z!oUn>7piU-5MnzqZ6G#)x+2ptpHp`(;;NHcVsyts?Nx{s&rQ5IKDg9=ibmanG<_40 zjN|p_A@v;~dG<8?lM+cV0`x`k-($^uaaZ{WlS<0b*Q*e~GUHVOzK$0yfeg0C9YAAbb>%5^Vjdql!~$nr)u zJzM(J;-d?1Z6PM+T?r}WB^^aD=H{23$S!AnAffqwbO$3eln>Ptja9HK;VUCInNeS2 zS?LS>)iAn{)e^vqAj(_WIl*}TbKOGc$JtzIRT0!G1_C@|fO>;BS0p*60Lw#DX@CA+ zg9EF_KABl+yo@m*VZqjrx0+)@b@VCoPi!j-DM~ThP{q(Ro(K9cyHkJ7koA}i04Ol* zRu*2WWf;b{s6k+Puu>~{LZ;B*)_!h!)bhh>h&f1JNZC!vNB7+sdYdMlQK|Ul?lmUL zJ5cD_?KK9PJ#~n?!ejaPgP@(f0S0Af)psXwU9aGB%#^tUfK*E2T!gSPXLRV3=!YWR z>{~x1P4`fGMU15}=V+A0{N&1Tl66>GZ5ElR83|W~i>i;})PpUzf&};DEaYY#ZK>qk z^jg5Y$TSmlU}C(an_$_j`~!T8#pQ%8VJR$UIc++Eg(Z8(RANSNW8EA##@$&#Tm&6! z?J6F{;ah{jUWZS^`ZCpS$@PxO)NVNPRKsdfv|o!1Wtkn0T){~=p~|VH*&9Qzx78O0 zmbDiA;KfUP<9?H=01%=HIg4sfwE^Gt(86BKg9RiWKxPJ|Cvyjb{K>d)*^AOPwX_0% zB{nrf=G0LzHm@*@HY@qTWPY2;-X|owbpZ)loGXRe6ZiTZhELr8lW#F}@Tj;-Rbu;Z z{vK*D$Ri}R-;n3zR5}{F*6BTTT;fp3jgAzkI}ya)GtIov*ZD$L|Lvz{@gQgEaOl?g zP|0cU?P-<fS|xox6?duw7X6=GaO@(syJUWK3v;eRyYwpl^7o=xnLF=q zkhM=AnhBh7o5@5`tTMwC+3!qL`GAORf`8cAc*^b3SNKsGwm;9vi+C|yY&C!Q|4hDR zEfAe%CUEt`#2^aBopwO2;)kX>+Q(2;2j`m;iwhSGiZ`-JMBD)wcLe!9u%Q?QCMjAjO3gr(oHv#o7alIjBO$6tC*a zI`|UOO7A3$%L1BaRxpZY_~`ZwY;ihq~1+b~TT z5%oEu8qoDj!153E-d;?DmSsV!Yg%lZNei)kJ_LPpnem4YbZu{65>b=@`pPZXzxsb- z-}QgO&mc|CEJ{`24jliZU!x%m9GmEk0mog-84R_|iNA~G1$gOW3!0!EqYKjhZu za^BLYNlUI6l3`EVm29a193s~(0RZp`tpu{tXNQl1`m7o>+A3=5LDRU8LyGbcoHI29 zMyFTqXLreKn1XIuRC&N7@&g!ASO+s7{7?D`sNVJXIXoi^o`@Pgrh_E~*>Lu_?j7Ij zN{`%+1IE}d&we}q3IW1w~&0uO;A}ZW`uf5*~ zx0^c@2QgpZM4X&Q1qLyVi&Wc#{zTk1{8~t5qmTTkMvFTU5sp4xr#7Io_N~3T@8FelS^YJZJ}mu6zH8=5d@`D-+E=@ap za}NRI9{eu8jW`jJz%Z*aamXF@-pL26>AkyLl5I^OToX*E)s*H7&zeM`Le!y6epydT zR;4EqqDLF$qanI5rX@_EEsDyYaUm(g-H%z(0fdAZV}hrSBi!vRV)hh0F=$k3((vus zJ(OYM%Q51WZ0?B{Nt}CBB-Gr`kQ`%9wvi!e40iv}%Oi|Ok0&x`RScN@sjR;C?`gjL zR<@TYf{BG6e(Fm?tVsKTF3S37ik6K~XXi^__CaiH% zWk>!|mykyoo3CZ|!mNWmGs!6@Fq0xISLTQGk9$&d2ewGYZ|fjR0e}lDPxhWB6Vczj zLSH<<46zVNA%8p{m63>K4DrFKnQ?5AA6fRa9qV--!}{VpF0a**Z*9lfVC=>>d6UM{ z6?nbdQ#sVsj$~v|Euf1A*i!4si_3T$Xlb1baYeFgP^~L_2J6WPMxw=RfcIp_@Y=&J5+sxz~m2 zPV4>M3pMyClgD4;w6|aBJUefBNnTkr;%a9_Y?qA5myKlaL4iH)*ME#0q12TtCp{@? zHx5AlGc6xsKItXp8l*05?u+#GCDfI#<}OR4N5Ia}?rn*vpOlkm3RTL@b~IH*MC zx+X=H9H+Q8EHckfuOYOo+x+zyQHPVp*4LN1jSN_c{Wr1z; zCXzEI$rVKf;qfq1fk5*(H}rvlHEZU$dCe>3I`*-1io%O9-SKRdF#qem8W{$1YcYmI z6w@m>d(ML%-1pVUaxQ*U^0)CC@+gZm#v(ngSrex){!MbTSLF; z1Yr~WB7qd(CJkRsSFJVOY#abysbVOr+{!4YLLsAEq#Qp8-Chyk2^R2sM5R}i3hEZA z_?sn_zDLX*nMm*FnAG)~uvo<^v;29O4Zx0dKyVAqQUtatuq?_CB1Yto#_odc8>jI; z5<1DSycP)eZfiU)lC!Q{@r44KA*n@Z1b)6YBH6T~17ph(d;KIJ8H9 zHqSe>i8wFE>fNwbN>46)*OkF2bGb0(tfO%Zh-u(EJ+GWO&O3Zsjj(g=pOLWzonbom zfk}aZ^8n~OEv0a5Jjt#pKV3Mn9Je=+3}_kx>1Ab!2nsXv;-GV~j`FdCPxVGIi?R27 z9kz?Mj`@9tU4M0eFxulwL+RdFcE_w$jBsRIqE`=w-+G;umcq_#-Z&^&JudOwIlz2( zDISl8f09;KAeG8-bl@KkU8_{~%qdJ4WRspW#dE=5@8`L#^u1to(8AKNb@PxR9mub~Tu^<^l{~P`5;Lh|AfXSGHwDczAR4=_(q+5~#BtmU z0|_SV#!yt!q;pz0Z~02>E;;o;YFO9lp$Ps6(Pni_zAT^#>}JMyhNrm#Mbn-Xxdf9* z+xyT^7-R5`>+0#pfpD^rI5R8QTI>(vSHPo8nOB*b9Bn>5iVQSruXijar?RbMi^m+1 zT?r|k6Ht@9{NB3)BcbNkJG1I3u%(R7>GSUH958A){-BxYc5q+O6TtWMH4f6 zYHoLrv%2tX#k41%6>N*}9p^{x@}`f*EJgY%DFTNjr!jT(*o2Pu_V!_HL~txVCXWga z3H1Z%O~^kcpXV@_q1@@#8%{Qe(RTH7^-5C&;tv^oNT@UMES0b*8p+TZcgb0?1H$AH zArg>T8W_yHo9U3EUy$IuEH@571Pj%L`Q1sDKw7@o$?zL zJmKq5%>I5LakM=BD`V_hwsuotYq(C-SzOZ3@dcSpYcz8rDiAgj<}uAWBpcbcri_;6 z9_)x1(}`hHqDgj@-M8QV#0gW28l_!*nF7>wR?NMSePkJ7-pOc@`)ta1R9oQN>&iU?;-S1)sQSrWs6eUOEnQ?>F+-Ld!hz-eGeW7_k+t8k27V!_AI zNdGtrdm8{-WA0Cign|aUj87um_9u# zr%!>sD3>-_9{@N&c8^2jmY!a@+VCUfQ5QI&BFMyn{kaQuuF$1{U2&c$AuK@jMQ&3W zCUK)!g~cm$?`p->>I8?x440+!evs#MXXeHPf<|^ex$Y_u42`)2Q;PC~e|#ymazP%V z4!t(elrTK`AA+)zhGdGGWl}fPC+&xvr@k%X){SefyV+C8$jOwLtUDnu z>6;Jyy@u$t2N+dD0yxwvQ~46*XhqIB*aK{a+WqVTil%)tx%@%5LQ;Q&*bSTqdRKCs zXp$64*fyPXEGFJStRbdDl#B)S=By`Luiyb+^=t~`5fiPfC37Le%1|rOPj4GYA6ocS<*@Ro(WcO!eX~W~=$`o2vS!;8 zB4O=Xy7p=9cTTRn)R%VcPL4*ah0#;tK#JbjP6wPpkX7%(&xG{Hu_2_W-pb(B9xu(^h{@ ze2U+=rcFY2k$FIgz%LY)oU8@-Q%QcKrj|U~`+jq9)>nD^oX_o~*)nnH#7JFLiXL{DInT|3jVOfFsq z>>e?Y<93Bp#yCurWZT!?x{oqpk#-t2a)An@SRs~--GGRi<^oT>=zn0~1K^!_wVq{- z3w}3fWj`+G{@^L7R9qz(y}p@to(N`^E!Ku4i=e&g+@OXq|J7wVxDkttX--Fz96c3uQ$~Kow?2*FYT%Ff(aSQG$*|52Xh=V>@-R{6mUlQrWtFcdX?cX|;OZ zV}YCowY6hE`WBL%E{mNSSSZo0cW66&oqgTodg5-4h|m2cRX&DSeWb}kd;Ru$$|Fzk z5(p3+Thhc;y>5OzVTF4db=l$pGy(Xg`0@$3DKds?%!;|yX<00l19Szh%eQR*LdMAx z?)Tm{9!M1%>wXGfH*_cQPyyrh{&_}6iqBNS-{;gi^%)}-qEO9aH&xw})Fu#g#<{+4 zke}!Zi|>eNrdq=R6%Ah)I?WBjOTyWXNMZv_*~wf=qTE!2n^bMe%YdYt{T0qN56ijQ zK5{4^BLz8J!cSVv^p$4CqS7Q5XIfp5)6d)z2el+WrZ+5?4E=9py40_(5MZHbng*fI z7x~HCi}pu)*}#j^^Uz`4m!5(<={*ZE*4I@-G}lJvLx!^;Ie~t~DIn~#?v@vSqmUuu zS%w)PJsp|7#%(@r&0xfnG5q6^yKgk01}ZFoqSB^RjHd?+Ku!7U<9LsTq`Mp+=fOkfo*N9ENEQtf$Vik@nj)Ds-=O+*MY-Pg z^96zthHwvyKM@;h`y)8iADf-i<|H@WZMTR^uvmIGUW~h=0=GQt8Nq`gXB$Bx!bs3P zgam3p_f_+kpB@fQw!&rg?JQ-CF$eaH5RGSDH5Wm8^4$&}RH zz5TU-FZpBBxnbyE)(Dd#KfY-808==Cmq)@*w}ENXp82^XQ@u|fZ;}v_9vW5S$>)uH z;Srou?&l1|;X#LPgV;)|Hrc22sB+bjakybbHP!ZGvj-V$%XA-?=t4j)1ab6*)gFQ+ zJvIiWa)iC=hXjgbx!Lhp#>m-u?Dn|sXxi%Rwh2fPP~UpOh_#g|JJZ*34KojUYhK!c zmzZr6ud?7CM+pT{j&aP&nLd7=0(L^r$CvG%BhZ2(fnEXfNDo{+0_Hzuj8E43UyZt(%Mv;#+fcg&DzCT(&Ugn&f8f6c4Jq-A9xQ!DvDqns~>) zkwhyE9nI3>CAGFI{wkY=s)z{q6k3nu52C#RyN~`d02a zDl^?&IE?-T(68z(tXH5+PZE9LbNZoEdHXvVaWo}VXC^2Y&Y6hL86 zkcsaAKNp>hk7VqA1Bl3x<5(0?lC+({0k}`&7L?abjj%p{*%9J~5*>j7D5LBE-st}F zCZdhD<*Y_V!{|!Bt>$83KUPw2i(A_kzc*Bh>anW?|HFmR#E!s*kSe*c-y&MGK%o5d zs1X5Bx*cyLvfT%$4JL2l{S2`}|F2}lW@LE_auZ@eX9ZGH#BZ+#VNpocv^Jxb2CH{A zw&uEL6U<2(yZ1h+0xjj4W_WmzS_=qT_(>R+bPfEgkZ{`z-)X?{c}hSF)lS;*UZoVH zi~2n8WZTp?2jH=<;P0B*?0*{A?=DoLug|}HY%dZ&jRb8qIw(!O8J`<0+|WE#NL*| zOc6y25djE&FCRJNBSQzor?5x~GYqq^iMP^3=DSL6ctaOv4?80A+oX%*CxW~2-ylkR zF7#X)wHy6Pe1x}vD`sLe4Z_?TxqY_<8<Lf?YAf&!AwE*SS#*t6i z8?4~ZQH-L3M87ef1S5@E_Ivbt1nY(J8O={dV1#Z1C`dYUf>c{GK}kwX!(Jm4GmbkV z07oyKQ2cw#BYLdVkpZ1DNM}l>4x_rDYDP*w-}2ojDHpbY=1|~7f^G@C{T;rjO~vcM zCz{HJjb_0NMz9_JRjiS&BPrNs)6_8~@&nI>wy3^PHY;6qI@Q!*14uFbvP&EL&~s3s zd0InOZSM-!MYyX$RGb~KK!>q%$fHdz;_*s5Rk}0~4zbx{4_Bk^--9u3EP&cSKO%`Zw$Yys=M@>(?LSHzb6K*?xX6Mjx{wEX zn`jqg`JuLnEdG{?JeZ2b7o4?}nYp&5eMYDikTSv$9A7{#3FD1{4byr(DKQLzL;!@_ z^S%S4W^u!rA9~DWar_fzc^oHfFCI^h%XIun<;?eDi*?>JDl9w~>Z!C9T>8KMEzS5F z*_J3QHxM*5<=k2b8^Z-F?EX`$b{w#Hob;s90~#uEpatcKau!`4b|H;fit6D7h%L0F z#SC`q)vb>@uzviemCH(I($%Pb)hlQjlUTrH)%V2Ex|_7kTNSPHk&6B-DF0iGw612H zA>Ty=9F*}n555*fx~b#Z744q7xe5cH0HXF)_5xxOM|m4ym($CZwV7U`l!X@Xppt(b zh&}ea0@eb@B{c50_JH(cplLI&{iZesLmglB2&@J2k6L$pnA;V&oeY@v%`SlzJF0?L zFG4cB?c1kcze`lT>{&r+$OGmV69DAS9D@~CbJAN1fL0bd93Q5flQ8dq$$;dkw)gn^;HP zCnI`{wZ>fHJ?z)$v*^-Nup!fc+-02ZPF2ozRb#WraFJnC&FZ}3gS+Q<6sto@tw3Ev zv3`^kGorcMbC-GB(`KBIV@2fRC(A-AZQ$^B-j7mJac5BCb!v?C6ryTK7C*rP-eyiwA(jZ zbZtuQp{5KvAdi4tD32TcO8~3M^JDVhy;0d=5YdsvLz_wOUKgtoONnR5ft(jcpAXo> zdB{ICj@{4c;&n`XNFj$FoqjzY&%-h~*8PywkwMz>`A7vI4LawPPHo4&=w1^8L8m4q zEiaVTytsF}LKRKQebD9USi|gF?6d!Hbvuii3T^r3)+)&Mo9O<&KiOIYU#xjkQMiRi z(H`h)%w=d8;fs#hDvchytg5>uSyN2kmaNd&80XFW4_hh|YAf!%HGbP_==JJ_yw*<$ zZrO&)wUNvBEs&MsD;Ol}J&yC#7dpmX7m*l|&m!HAQnR1Ex2rB6J0Q(xYk{XdLy9o$ zN&(>k;{Ry4j(5}NQUF3}GT8Rg#!6CrF}DcmgM2V?wMh% z0u0FLDEmH6vczV%v#aM+R!|nv9H%~p%hpYz& z005~9oQ2FQtd%dMardq=*Ty%-H1Xy-3Zo1P{y3&4p{bypWu_Y}n?k{DOOl@)F4VuGG-0`J(1Wir$@n*d%UyF6lO1B;vxPa^$7Lc@V1jQd zT^r?r<;tZ@I|U+81x|SA`wAIIx;6INR#rJg{7N(89AfdCW@MQC#v(J6I$k6&zN1vp z43D+~-&?~?e}3PfGcmzg9M<;EbxyTIqhc`TPN}}gvV;5rKG6n`nPRC|sOdr3zr^Sv z-12(9)Y_dfeNVRQ@82vo=^i}DYeU@)DLWme5JLjEy}hzHpS}ARt2Z8*ad*n!zkfRQ zgXj?AM2@Z7Owz58yj8a`$IlBfJ*^c)KxW-tqUfyDc4|f3KfQs)ag7X+31lRaw;i%p z^{9H|RLraEv_9y)UO5eD{Ve*?Tl_wVeM2mqU}@^f^q?W93VRBpCK@woe2vecNk5?* zl~~EI>=D)uR4tVq_%YN&9)N*O_Mn(Ykj+lnmJ;`egIlm6LZ{Jvkj5N@Ox%+c_+-K_ z_&Y;VYZm;RwW!opaH#vo)H$_v7tHK9L_LF?XYQd1ERC@^;~$?T925t5s1!eX1PZAM zjzA6aRZ+3w%dS1<3-+mSUtcU#6)(Ls7XhO_qw=ZUi5+BX2nK?BiiRP=rIkO?kx;hF|hcW^#6M@{3vRQ?r;< zz4fiSioGLI+Z`%`G*RE^@aGH7bELqZyw=Yv{pNJWgzn{_{|5dm~X)I2v-ZB7I);vFk!a zRqcdeo}U9=v`PxMreIG%(EEf>fXLjy1OVg@9&UOVoc;)Uswe;|h*j9B% z{{THe!oR&7+e9?NyWHaXM;E>PDV*&rImryLsOyomBK(X`9AFNBeSg@PeTqmK{cAjH2vjfVZy!!;*WRb6Q(*+xF>z$#)BCk7eIX=zYXc0VxZ zEFWT%LzvCVBjI)l`HrW5N;v8jPkp)Gj|Xz`&_vxaK@KP1g|nlo2f}SJLE{|zwiL-y z@neNjl&U%(FWZdgl$B9zlfB$jD*WjL-hTN86Vl|a55iqp`F>Y7La%QV=%y}GK3$;X z*>M>bG?aumPBB3kE;k4Z7me(qp@bQ6Red6`>W;9Gc?$ZIyY2T`Yyi|qUtYb9J=g(# z+p5|3tucyvB{K0ow^rFg?TRLzJquJE2+=pBAgcvUIU!e64?N@5L-3y0-!0ba&9))6 zx|hT`Ck9|L)2x8Ylk?!djoZ`Fz@9)K4B@^52n@_%`Dq}?@ZJQ!62iTQ?nFS3E>h8Y z8W<5euLYa?P%BnRh2^-5K^)QP9#lp8^#^tREzWw1X4}=@e6K@^JdmWAvf(WRBe+67 zELa0N*Ar2@%@Axxi5p>COu?_LkwcF(*K~EiFi6J+r#M%y+z}c*0vVCAGu)!JOTH&F zbd{?LWU{Xr`yaEyl>)8?0ogKmZNxc5dEzeJ!YVa3lg(w`4Bte41{C*cW55hU2+2Ln zdP)NnRNniy!~TjtH$ofl@3Qs62xP*!yeEDy>A&&cOYOO{5 z2|Hl5YW`G|;0CBqrqVbSJP13%gZ@Q+Uh}troh^SwjG%H~`!hPADJNq!uu2NodH6E` z727HQ#mtKEHBXz6M#LuH(-8u^nxo^Hr(Pt;QsE9r9NE;9C8>C(CHR^ zaHx}4+Q`L0IQA-9l8)lAXro5;g5kH!rf!?8xiL!jF!dZCxJX`A{JYBon{Bn0vX82s z6M*~aMT{J-O#VrE+sshEc0}Q8`~3pS81URuh#Y%8QEyr+0tu&B1Acx(neLbmbgua% zSo7lNx=VqWeTBDHP4b5-?eVNkgH$n18Lzw-x~lxZdOc~bfhw;=fGE0Z)n+5x7b}#D z-d@b&(C^aDD>2zJA#(&@_Rx*1hlI>}{+#XEaFvlNT$DQB`$CP{k=o6B&i;24E~Lzf12tOjE@v)@|5dPr4gb!VFzyhg}&HZb1iqsGKF{v;*#l z9|U%bj@QET<3CV&#>Hz4{l4q+m>;uL6+}OMgR#v=N*_{NeM>09xM_O(8)kk50wtKU znPoY-E{d9PCx#s4CpLU~%o&)Ny<_aW#qV&N5U@6P&5zV`kJ>1t;a22&Kqcd6=rF23 z`3uGE_u#GdM1on*v$UA+ZuRze<+}q@RFSN40;$P&v$8l6URNpfb3i{`nTtCs8udSQ zL%6<9Ikq761aKI}YmhPh!V=Jw@2Pv@YIih>+fkNljvw>{2<{GyIZSfmoz*?l(F?m1 ze;yJzWQT+mG87Pp%267`&Z)Wt?G^NdFWx--_ceVfCza^$V!>Px$tn{Ms&17aTR;O3 z%axtj;`{4mzI4hQk^a>&{UO`2$Ga^d;0vNBC)2c^R3yD9sULpDPdsxplEs3zMxs~qs!u$DAM4T6*qaW7JxbF(a1uwaJ%6&mp&YH~ z89q!MUFguBnh3;FaUPG_KG7?Gg&u-6c5Y*JjAhyF!Fse=|KDtEbcJrvYT{h4hD339 z2v)>SHKiaY$853<15!C$1>=A2&GKoBEXvWhPXOIXe-=$ro3Svr9U!R$2vHvr#il=d zN8LjVr)h-Mt4vzUlAaG{oZ2YOo_}kL3t>dVClKKEQP~kzMtaxnDiCZBwo~Y@Lxl|I zWD6q~YZRdRyS@BifMz<32IP~b1-Qn=LCJEGASt6?Q4r6(GKuJFMGS5cPl7ZIImBhI zqHWVWQD=a`mkfbl+HU&D<`H{WaT2JjYprY2WvmTXXV7(^FOUtzTaDCY+}0D&&EQ)* z2?{$Fyh8<8zD$yE^Dft@PUYX&77k9x^@aW^f;D9uO}<%h@93rkruO8-XS)F54+{U> z9%UC+jTAKhNN;Rt?o>4IaT~acMd#@(P1q^KXbumj zNhx6^*(Mt2^iiWuyr*wGMbxzI%&buy_gZKegRd-KI!xX==m#?3#3J<6^0x?<6<6!|`NMoxQn*&$BILw$Z1a)k#=`Dl{^-EewW4*8i9%erjY zPI{kMotAGgt6?qTz`P%Ti4HTO2$p3?tX0ogJG}&QC@bsGOXa7@okYHcjNue>g5tgE zTsxk{!l5LtP*%vYTwbcvIq@%a4zOLWUpqInGn9ApoDD(t$=ULq-K*k+-NB$4=Hd$H z)+x%WB>)L^6E}j93jeq|yemaWYP<;0g^fxK#ckDony>amNS~103+YES59dR@oK`)9W8-{`z=}^}p zib)aO$&}5I!XTh|xT=rSRWhnHGI`W5c@D42K)MZoI26F&V z=!-e+4yFFc4~R5C7X6AZ=_6V?41R9Iy^leGhe(F17|D>o0GtR;bL?tJMDN$|5<@gT z%nB7z?h@m@MLb{|7`t zaJ77_f3DYSLHvF))L1m3I3BN>U@n-^wizc~}l&$ll`^o_5O3v{o8X+|>Ec|haWt{DCGYX$j9IYne( zI}!->X2nXA9d8m~NiT^dA#;>0g8#sxi9<@{^`5xexx!9!-<#7Y1{C|`z6zs-?^lM* z^!athp3Wus9xn5Rl!O1b=|nYz*Ze2Fwf9e?iqeFSAx;yw-3?M5a3@9A(Z{KufJPxTJe= zedOw^q|gIx`u2WuyZ99WhDmPwE^V$lM<6KHfticrId+m<h$%5H1pmuznyCZ`dbE znGJ47$LeUchHyK-a1kx!I>T+76XV|`vA9%0u+$EgkWdx*t4MJ{8_KwrZc*gkoXZ>e z{Wh^IV1P#9x7Niio?$S1D55Z%D!44f@F;RhC;aD)8L~?Y2q3TtHIg&?BtE9K?uNJ{ zX8%cMPx1Q{1qvnIn5}0GSwTTLj3Y_p+4po#JHG zA7R>XBc6_%M{c$U{*N_O-~S*6T^wrT#?t0FF~(D#{=DEy4E2Ow=ZoQ5+&#d_n-R+Q>wlh9h^8LKc6kxM$h1$*=s_~HhT>W&E z@Y9AsxNP@o2-aybt; ztubq5rQ_;zabbLd*nJQGiwHUj9}cZ@(bWUD5i_I< zT~~gQwfi-!5xcI5YzH#s#z&Z+p7Izsbo7SSU2hS&Z`yAY^YvbI8(1Z#Y`aKfA>rCH zuq8wRO`C|a&;s}16aoHRK_M^l*R%twr*6E)IT%pR?R@z79cg!xqQIOy zi<2h760yt=_T*sK@=pS|ze7KIKl>c$*IiWWPB6pLe3&SU*ttcu&UCEGnyz?-F)+ax$S~ruCcYnJ?3_eyT42H0CwwD}!iqx#k zy6p%x)_z`zU0zjKIxf7gWLCkU_Nq~Io&^*r@aX=a|ny2sJ)Rb&0-X}At_ zrv5#~8vDKw1sxE|yf{@5*UY~gsx=+9K}PwQ{Tx|`R%g0^*WBXDRGG;L)X7(dotC8& z6^pp?zrp3rs@vmo1ZTZwtmY}@CE?&IBBg*mD@QD{^kr{p>Ojxs_*<-a_VlOVOg=H} zyIk8KUtw==`InM; zAK!lNLaAI<*XQ{Tq09BMMGTdtm|$$b{@30e?!o)KmyIHbiJbNxyZk5YjW<68S_&O@ zZv+HmS2nP#$TI2tm{)d_%XCXF%ZOa#$X>NC5R2EuRcI5VCyp1~VZ z=*Fni^DOpb&CJ_;GrZnHqdIlA3$ly9l7&8+th*0B3FU!UDY$1NiIbmJ(~E)pdSFGL zm{Lc2Ix~KRxeKJDBe-!Q^@_D&v4V^!6;8Tm;J=Sq>ydqwho&j3k49IHpJRNj7+8;n zB0+a^9b3(9dTNr`^C=@xZ05>0^9O(DRCQ|JlY8N%O{vkJLQ{xi#r~g(j~Rb^_=Cve znbC*sE;Xbk+P@iT!)x`=bq8fSP40{w1?)1alMe~bdZm-{qhH`(gHK{eI?&_r@V54q zUK)&@)=(un&;pSg3!;TFhW@NazB!w<*fC>{3QFGA1Y3-b&GMV@goyVT&D&l$e1Na+ zbYO5gB)bk(qLF5mm_Ja2!E-Rg`2;{vnx_6XnAaf^Ya^KA$--6k{Tj;qTfK|A(x)gb zxU=K-@Vw^o#fZa~j<%z#fDLU^AS8K3pJ(w3crhuKWe>>-52@yBQz&}FC4St2;2gTU zVa2z!+N1DF>ZU$VuF8a2Cgha0$8ru<8mIBgC;R}HyB>;kkt{O=@M6!y6rJJ9v348IDw!}%G@#9 zLGYV}*k!)7k&5H}V}caRIrz^hn31^<(!^4}L`itT-^pnr+||w~F}3m)>Wf{p2PJ{6 z#Jy45o%;mGR`o{ThyP$*c)AH6@C4uktXq@1(|Z{3eKm>@sEMix|PL-W}Tfbz_)DkV29vt~ew-BF$5)6mTsnLKzHMwq}o&F({cl4}RBYv9JNl4p@WEHr-F~;f*?_FUZ*kDrxI^W zb?=L5;8K`76d7x9-v>?wc%|AUB-w~plMy|zSuj$t=SbKCk%$y_9wu~^^3TDSSr_Q2OH1F- z6FEk@Vg!7Z;2bk-d7KYOC5ah(yT#iEuNbwFUb(eTIMxJXM{Td#{Jb2#apHHcLOz~_bNHdj|J_1yjd=f6Sfkcn8O>e^pe)R>$(>JmT|n!EYFVe-4a~P zZ%w^upZu43?{){v=u^k!?4dvbQeOpRcibmH6(wszx+wV3Z|Vu$i-5aCoHAaX#!CH* z|73@Jsbn6MZzOGCy>rquDxF)0S(j#jX>wS$!5oWLZ&+Z}9;62xE4iMksIo(#2L4z8 zgwLc%_7?GbyVHC{&{=GXPP?%CF262x(~0L!cGC`!z0%`b9qNDP{-e`T(g$0c&BO-a zf6zXn$1ipj2Q5vF-2xIAf~pcq2Z#7DE=kx8 z-70~&rd67TWd!|DK4z7%YMVU*G}1C)`Ppv>@Y)|gCz!Px;WFfAv*LDfL@6W21MbzF5p^QH-t2pkSlD0z(o0OP%o+=Lj?F?$9g4J!Mt2ZU?rzF@ z3Mie*_$9#Wm4t zC_D6lz=QuP?58=FYBwK8+6|j+lqZ@wK^jx%R)56#cfu76Mo0#_&&`|Up23CwSHRAin)Aj|hVnFQZBK|6Pj zSm6F_2SEsQUS}OkN2&4C<_tK6MznFYZ z#J4`9-;hg$t2cbwL?Mbz8{TuT)eEy^`+dE&jt24;WSE=KQ8v(fSFwIP#J=4=sok8*P{K1qGIex>k{1e8rb65g5!XfW@}LQXb?Iq z!=A(P((j@S2`kVZRyKRm(V^G!G?EOuGtMQk&X`C#ya=qgk7++GcFNG33$p^NPe3>n zpMNa%;F?i<80>4{BK+Lr(q7>`rmS18<3+I@ymCtPf2CW%`#45@b|Bx1?3gj`b-xOb z=1ePSOI3TQctAs22)2}?)n!?=4D(MPMH2)*5pbN?_Uz&u)zy1U)n*Jb@yeq4_e*3; zb;ueiY>+V!}bZzlu3_?U|>ILlr$67j2;;n3%HC%Wy*`wL@z5|4#CH zRPa@M_WG374tyW__<)8>rODPFH%2UJeZa_g*4WYXgd$W?t6C{&SuFWTbe`dQDWquI zDZDLt$xOXO8=L~iWE#RhAoZZy>>EDo=vs;t6Av5Gx%oUwvxQh$w67^OWWt3kMrEE& zzwr^^pn1>NOANrtnJ%=|5ljFV^vk_Ae2!f~l+V?&N8PgW(n1I>iEf8xX8+4aQExd2 zwmEzzf)V)LMLZv7R6NpgiERh)FE5@H0A^Y@n9-J48&{$mEZY#9zh&{3na(7IoRkew z#BBQ@x;vbRU7h^L$j$}#U9U$@wAuKY>(^+`ED_F#qSm}koPQiNze%RBh8xG}KKmB^ zFgoIyJO%3UjHWn<1RS^;_HV=dq5c08Y-nJ4U3$&FJc+9cUM&g}3jrDa)mS%$8SE#w z?Vv(1zi0Obv)Xschg*avSUTZrn@M=pC&?ug`!kO5{x75T zi)if~F$j(Z^^vUi7i?YT@p;2$gN!To-B56L3#U;%QFOrN6)tWgs$$h1@#{CE3Q)s9 zdt4yqj4%!*?k^<*232L7GNOQyEQo1)MjpyN4!|-23lZY@*UzT*js3YMHKV@cA-v#c zxjddE@4yqI1XRIUU3(`pW-|FV1p!o%*|;%W?>Ej$oIln&tI zOHZ0*z2g}p=mm!%aLMoHi_;D`d`1J}pSFwwu#K7A(m@XWA*EA**_`_wr?Sdp)C$M< zxmehYTr!vV)!(st777ABGFKo8g-6;fXaELX7c<^z1r;N`+{Kncf3GWME#1q+UNOV& z)_`NPNmP+IGRa(}C_dSNI&h%yT(0>obqdy>vGNQQ6E*VrA5>`ZL%w)b41^r+|QA1v=`yxlQXUm=??fRUCbHwdg)zC`d$Vj4B!Ld7XvMrPBQ0Kn|5O!K z_A@7pqiiaZUC>W(P>xjPGkShzjt7KRzwCY(-2ssgW%ksk?U6NMDl>oc@CJd3xGd4v zEuOkA7{RrtvUSw-UepCvgO{zFz#G_z%&~iqiiGf6kibPxvkIa9mmGI|Tz9qe{#O+yB>f5YukXrdD6%O( z7uF1Y^xoby*mgvXhuQ;^rWt5EYKnSn9R~5*P1~(1KYYBkt{=fTPW ztsMdiBOgU8Qu+#ChR*QQI`HM%dIdLlV1Zgv+a40MFNQKGM#%lYm*# zK0E|_O?oZ!d~k|qmJGx_ZVyWT#&>kV-~px>5joXYWG+*oB987Xm0Yke>&&KVQR!9~ zEjF^bg%&Brms*Zhr5`GZt*X3pf2)Cwr6MRSAl_C*tPAST3;$4h-hF)beeTJEjX~3% zLk7ZRt7E3%SId6~QngpXwhI8~*{y-hj$b$A#g#Bfymld9fIv zL;zcP|AS7%_5ObI&Q%5%T-K?qfW+o3p4vYEzEjcpT0AG1S5lyA-$8LDS*15Yw5A)b zJBDk2i*fdQTMvXytaJZXgtC+Gb!=Dgw_~c;SS%C9IB)Q8= zoBf-YO*1>lSg?`14u9f~;#4^t>i&-M6+g*j2D*?YI+IQh9<6zC8MEXilfxH^h`_t; zKd6QEj5sNs(Pe^Tw5675+ZVf>$uo|$cyi-mQ+9q_9z}PJGsuk>xEz8keFLeY>7wA2 z;~4p{>Y++3fMaK>gQp_cp3L$HT!Fb_Rt*~i>}lmb^SnD~0Idh6``e(Mb6bk|Z^1Cg zop0aWY!%RJtF4nDJ!{R3OP1!pFdjj5Te9|xFWoSOzNz}}CSRxt!Y8g6d?{#hS98;v z8GycZnps^VGP--|-GmbN-ve%+2WY2=^58Tnz&H@_ZZ8+)Yn%a-_@#^q>T=)oFBxqK zO)@#08C?>4;dLg!N8E7rw|||*fFo}P=oYhfOEXN zJUxlZ)PO-2Vh@TAl_$QZZwtJ10PQ%g7Bfk&DAw9QwniTrFBD4W@cc)|X-bPDj5Qk( zR<3bdqQI=39fL7@<0*~0jT4!B>KT|?xVx3gDJ=E)WRttcSL%ps1Vb>K4~FY-sP%4a z3bSkVeQSRWjy9|~a&!7p>5N7=?&}p>IUB=htw*fxwIcUZ^qKKm*R3!+J$z-U6FnEv zS|d)Ub0R+`s^o(ZVzi8&>Zm562V_9rg6Esa@={9+{fS{=w6dHtuxnfJdEPnKd`9Co zLC;|Fq($|DxkBx`ezVdwz|c%vGGGp#oILP3wv>i*=>&M3TGmS)TpJ4Ein``Xm9rO} zM)yoh+`X%20YiW@LKo&6h3CD)lb6H=fRXqu-8ednDK-c~J3Gvif{^T@D%1;B(VV;% z{rwf1wdyb(QmY=FdFGvm{MH|H3 z5xRLJCl`}Iwn;O*6`ujQ*lT96DxWxR|u|CeX1vE+$Dxcd! zpPBAZ%*!66>K+*P4nb=y24M*r9EOM^FTaBd#EX>y&t&8^AfsbD*Fsx|Qs8VDMwPqk z-gSLnxLOH=<9%gNKs-~xy@Ku>_n)svZM<)FLprV`+?$Vv#TFJbzjbbtaSw!95Ls_M z>zin`)s(cvqtv&!ASi_onv7uO%-Ga{xg?ObZA`0RcYn}JX5tBbIjBLJ0l}POOX*aC z?Irx8$G>+}_vqm2$qV8^;71c;M!by9dvB0l zr`3#~sqaC~Nm5ald4EODy>p>AP2bpN#1i|-acGQ@W)Nvxq}0^t^0pzn`&h2otGT5Y zU8=gdfvhPdBs8>eZuaG8H+{YEq`+am9FuI&=qti|%v)&delL_qygatIH+N)wiHZ5n zS2NRgVy~XFKF5At7D3L~n(4WaP%Tt7%I&ze`J<%DX-~t|c^Adlpj^-3MGVez!Qe?o z0#7vaV*RH-tv9_RUCk6j-7G~9gqi!HC6(F&&pEDOdYx)SLypQfiRDKw$1w5l&kRT` zH9_BUN8vWa#ogVl4&x&Qq!HXEeZO*(2KE(U_Jx`JZ5QM=NTnHgD*!qE>> zAI84X@j&wH!5hdcV#H|d#w(v{y%OofA0mILK*AbnQHiBl4y!j1ep0uQJ5Ih-7P4}1 zH_&&o>nR@3W4-_g#TrK@@)$ZeR;QN8wGDg*%I^}%R7)lBM7KS8-~R=q5G^gA4D|Qm zcWN9rH(6Frzh=ZE+w9)y_+7raX1UG$ye2Sy`>E}*B?U@r?HOCNNIs**m{j$IFit#z z3JkIgd*Y;qKx&Kv&i|w9F-jXefK>2G#921k95C4-)s8;7LSG+1vb^8QH3BkPm!Ug( zy{ga&lFz_XvnX_+D_Z!g6;0>A+uY-jju(VPy0ZGr2&GKF?E zfDA$CV5^+AH95sc2Vt1R%RiZncvu#H0DwstIH&q{kFam*FdQP25Xw;oYmp?oKew!4 zNKn|rK~onD&K+#@BqTg< z6f4ZXp#-iV7y^jaGu-uns3$YU9oh>wm*umKBCWTS9{TJFQCqe>Y=Wtk`Iqz!XY%lA znZ$k3b{>-N6+?3O9`>}FC8eSRM4O3mG5PY(ZjrV2FVuM1;Z6HCH6^}zY?m9Jw)Oyn zCS?6~0C~)#JoJ1vy3mO;G-R`Is-%XFCT7>rNj4ZF1;^c`F}Mwd<>5>&j$5%#ZhBBf zjyUgcY1{oAZiQgU;S6)xB_QdyntU#K@?{*S&QX|hl7=&7f)PvUnsGIomMoy2R=s}a z4a>G4=vf^l&-5}Lmgw$P>qj(pmM(LdIIL&%iH!Z)10M<8f*4Y0A}KD)eZB{1tQhOl zW)4%>PR%iJw?$^h_4h(V9t=r=70vz1_aC=eEiTG^dGey#41Mgr&`n$A8JG~zvudqY zKRAtq%ZOTrC~44!w0md6u55mt*%Y-<`N##NlpjtGR2?S?**eg)hkc@>>!7E72~&xmGFVa+yDJf}lDoXOU*}2M*~(UC07D*# z>prfJU(I+>JVS62Z%U^U2%n(rFwn@pz|^y^yd{95W+uEWRuEes=#;d2Hb&MZ_j$LZ6hzG%<=n0tN(wj<}Zl}wENEIq_cQDroTx%34I4I znl-5sn`+bi&}OD5rQT-Ir$fY>-7urbD_V18cXXOWUpi!HzB$YbKJ9Tip|dyNboT-8wpQJAY;Vd$6iZDdj2t z0DajRbMeO?CG~e4oPmr;{SY3M)~gQfuYTtXNn57Jo2NO&K%p4hpa$>3RHa?|*(>#e z|G45d8F+qv8H&KgO0=2#_$CP?rgPMd2GJ)F=iVTIO+K{8q(V@#_ftWtIqe6({np5U zdn<@84u2Uzc)*rwaYTWlP4CdzC$b{Q-NLPqcEsSpilqYf)^z~7&zgH}t zRCD$AN5K%fRJ}sF0nUzyfmjkxGGI7qU~=qBXBI~S&fe_HUw}-IL-Y>Y2Z08C){AQF6)rTA;uNR8<2 zkU~WilL@}IS=S$*bl!^$fpy)fZ;m!L$*xAd?zWBU+XQ18MzBLygP__V68UJ5ANAvE z#KtkF%8V%2tLQj6E3%o>>A=tmhFwEj&sfY$i{m5yczy4p8?df!Cw)i%?>c8-Y%W_} zo-dt_UP?HuX4zwkTVecV&>g-meWN)KoJIQ-*6pp+L0XE*eDT(V5B>-Cf?LYK!2HW5 z=anK@-&9=@I@76rVme%8UQX!#*y-jCYIiB1Ex`_de2-BW?0(AE%3LOzMl*yOtoBex5=0cE8@oDTt`v8xzTP z?5&2+ToYaiscu^#^wiX~Tb$4JTP;b98X38_{urj~sh}WJFb>NUNjYpx@3$XFTYK39 zJ`1Rarzi31PlC4NutFQ-R(y82@kTZgRTU}|$D#MeLFdNqL*hb{2mY2CHNT@@C zZ+q-f-9ftAcp3(rQA7%}ZaC1sGkC;JPIvA)I~MO9_CKte?9Z<_CU^E9ax(O zz&!FpHJYtr_3NmAJ59g53}&Ij1pQ-==}*OZmsZ1Az8HlL@RFC<=_(az>j&(0Wo93^ zK>t6#GI(mS0M|VKT(Lju<)2NXCJa?{_7_k8jelvGDBKP(H2~&uoWi|+yc&x8!kWPt z7}oPJr;}#mCsbKCH{;gBw zH;6THgntzV4=2>7!ehH=f62$%#fWuLk`Tcy3$eTi1#*>Ufi!C#WDVeZc8b@g4FbZMC%B zDR$M^r-mc3V;1Wy+esx1U2!9EDj0lD3kPyXv*Ku!?VwrnO-v%WZG$MYHV>&51`NPr8>t=XDx1ZOkYKitoUaU@jhIQ4}1DuhaqNgqLHen=# zV^ce90s~j~{nK&pd>}9)^+`pQg+vWT-$4J4paP*0(dJZX@3UbzXG!V2SepM`Nas$r zNE@S9yH{(6FrN`%6f=P8PM1Fq3V#gd2YW-(!W4GoJA`4-0u0S~njZ=4R(acY1wYR6 zOBdK^-2{$qb#@_bvX;{i5bZulJWQU6_X-Fy^mwxa;EHF@$j3Nvm9FA~-4zjX(|LC2 zYg#_4QOM}g)A>*yHp_2$?Y~ZVU+L?z#>Uiz9AdRtKt2JWfMv^<^Gj=`FTLr>NWC#W z_Y`3)R5&Gx`#f<_-ZuLMx}YU&MX8|JmJ^(sI0V`m50-9!W0rbVv!-VqGh&QhkYw$# z$kF97!JS9@%*`#csF~C!HQUQY=l~HCGf$_+sMlig@=gKG9D?;>46T#*D6?i7bm` zrG71SwtTDn6J*=aHiuk=Q@R}M9~|o$n!^>LZeA@o_?#5zB7i^?ICy#sY%iWY1iXBz zRwU1ama{iF3qs5{4j`5D{jSOqhshSOXmz`D!XN+in*Tdh9Zx^jo%oow&47Gl#Nf)bHirQTTC=Mf10U|36$`|>^0ee=?~Ps6FC}XS<&VY z@GIRU++DC_?!Qjw>0!pls{#0XI%oI!uaJb!G53vGp@JTW_qFm>=IN4@^P-xhv%X@AF_ag;BxzibZ(x@{;k$FB zxgJO@6&sIWh8_m60T&yad{pvK;48Qbui^NQn(IwA8J<@|eae5D^D^=rB{}nsNJc?{ z*~Y6aW#4yIUA-P94$R{pb09@uJMT7q7}QFX?w^%4HVjqLMc*4lTBn6u#Ag@`F^X7) zUV0ikWA_T9n%#XPd7+NPG`@of?K{fhRT+$;xOgJx1y+{AqsujB;^{&%U3)Z!4KoVa ztkZ#WI7C`&Wzho(GJbG<%0fZ6%kTt3kZ@7zl-Vxl~Nuj4qJcUQ-#4qP1QIT}c zJ1Dae@4@-43J{BCUjMz%1+d+@#J4_qG66ayvfT9yY%=HAEduHXo2;u-O*wvc9%+;S z9%1f8mxcJ9g%T!Cxnd#zJgmPaq{OYx14@`)`x2v^ghy9)UV11&JmS_dJ?0;JlP2Im zWgPsH57<`EKT21$YEalv13*27avgWP*t{bl*HHm_bes4UJFG{8=mq|*{+0#)*j$urzUnM%Y9Yk%ha;&;f zt9T-p!i!iliOfr;$$Lxn?LxgJYOV{Ul=XY7qukcdtwJ<=-dcKxw?rL~E-kzIV#o%o z;7I)Pm*ht&3tF}YGWa68P(Tc~hCD-P;vRl1ee#O`xLOB>x~HrDQ%MA>i7fc66=iN< zJv4+sK6t*!e2_WX!3vD9{Wf+gI*5@Uq??=;qoZ!v42$7hD+yOsw{@ zPD4!gwurOsBNoT*5tQ&aTdi;B!&dO9+Nm~%KGRI-+h;-P3fRl{Ds)>>??3r!#Ja+q z5V=O|)P_0j=pE6U74SPkh{bEFQS410;fbW(xyR5__NM~vS{K)PpGg4qRi4V&Mn$E? zZb|;v4g~s&iK|*W6&|ABfrr9Gp~q2~fR0?H%}iO+8(xp=%9y*xBX%LPXDF-_6%4?s z#5->?F>*IrA54NW@rG;$aM1+dQ2|v7Ox{C$E9I+a`WQ;M30qlLEb;Yw!%;37q;z1! zV?;rj{6L6EOLj=?1d{xih_=OLE@89XZ!MdcXmSWfshWp_%u`<;v4)_tIN~`?cz!hv z`t?VWWJr~&)>jm*nU z`R?~g;l-Q4oreL`YO@Yzg6kHJJwS$OLKi5pL?#*D55r`8Apjav z(hB?!whnrY7j`XN@L_52Ggx56$R+ol|GK*6!mv-NcAU8r{=D1wZByiEyYT}S{=(@kNB^$%X&be9`gef3o88nO+X- z9y!uw@q15^3Odry%YeCbiW%ZC9!0UXj07x0c5%F&;tB@Z+MPYgAycZ$YOL~3^G8oQqoRheCJZ)$ zzWmr+J&7z{fvf9+|5%Dcmk-6!roeD{Vn=Qcs{cNMOzI2=vwE3%9OXqnXI{UTu3}Iv z!;1`7ffr%VoHv&vLNge8PDij4L9!JnG7M~#_Xn;$slN%;NS*dX5=s_ZGw2K4!k`m> zJ7R7iW_NsOb?N4Nc3Ks5tYj(Ul9gmN37Fji-^Eq~n%IR+h&aEBmlSUTEu}9>GD3kS zlntwCzUisYr6E2`#wjzQhSSRx$Ru{(aj2f~a&=@lk%kxfvZWHi!vA-SP`_>TfEyQK z{%*=Ljcm0m?~y032q{|a4pzMY!a*NyQrOL>mEv7C3;uv3Ko_RVygt6)o8Qr52Bx*d zb(S>pkXBgNJ&&3}(Xu`W^ayxx zo5IzGHUNe~JLv278MG9|zj+($5S1eM3BZug=7ig}5F6)>(mipn=8Na_zRpK1=Vw+Q z6wiI~)uenbq>LegUh#Az(R!V~-`wfn;Bb8a3Mt_%cPhh(a=$#icC#BQ;6nj#SBgcJKCc@BXp0F)22P<6Dlc;u|)6cTZhXpJ>4?Z@l z?aw3;`p+&yBiFf0nfx~en8|+{HE@Q1Pj%aVqq>zFa?^c)y903(hnYb&v}^4&4_WTg zMu6|A#L25~M|qLkF2|8Go#`WlXT`R}lTr)pf(Fjmgw^@(7D*PWwmA)#q^_Uaww1uZ zfYL=^j7OI3+T$ttnoYULD-G29awvOzX0J=rbtcOQ-305XIqhgk@-1qwjWror;+oc! zbBO3rovd}-1QL)&*Jgey2jf)cHh@d83_#wgr-yU}4@#mKUaSL##GVeRbyvD#?Zqiw zqoX|Gq}|~8(v=#LyG+(*&KSGs>AgTQ($2M7#--Q_@6jj!#^7S`McVx1bdFUrN9Jpg z_eDZLS^k_gCXuyFH+00VdrMf#E&(u?kcs``MkzkU09t!n38rs6+v&-A1Cn^E|~j7)YI!Em6D$&#d*fj z;J5H$y4^H4>gHg+Ft5~D|5Y#7=Wz)=OOl`CfPA=L+e+M)v{h)b-T8@uE`%9eBU$5e z{G%hXkQXlRu&43q*|?1SN+|pYH1Sh{_$B$$Cp;a)O&lzUdl_REI03Q#<06>wzW55- z!f3Ge^x^I0ni}+CAa9=sU5XgRtFg_qL&A-xxMAMy%v$4h`HF+x8{IgQ*SwZcA9dj} zTCANz;l@EeHZ$aqAlQc}i92(k8wKGO^x$#zs(oi)&-L$j^xO8N261y>aZ?d31?T%^ z{J^}_>fI8@jtN%%7OXGQl!{7r;gat6by>zf%NP7q_KW-2U0%Gl2i-a!rQ(%NQNaKF~`cbkFuSsBsD<>tJu&Q?-z;~`H@pC&2f<(25C zd$r&;%slA|dFyEKiiZ?yjk%6N{dy&Dpt>B&S1woCk6kxsXtpqt%a)^0V` zTCEHkJgqfxrWwZe&lQGft^^=Pf=LBkW1-;#5{aZf<%rqDtOaz6j+&KLH^!dVVK&sE z(@tFDyW7tBA-O15j2ZBCk(++Z2L$B@!XFW57F-z-c^nq-&yl0#iq1tx$&a=k2M^Q$ z$pK3S4dc1QAke2(4}vu`_H%6!*C!i?D_N%Vn8MP0o(HSE*pnxjY`CUXJTWyCDXyg83# zA$o%Rpp*vppIsLtygL@ix9~MV;PBa7^}{N2KUw-g-Us=-&FLF>1K}3s9+(|sl3G1F zRPaaKp;b|C5!%yG4h0;?lWcA(8ffGD!Bq-L^WS%1iymd06Ac+tBxV-^q>ZTG16jiH zKW?2oMJu{*-+{nCcnNjd$_w&dC@Laq%zR$s330>YyoBe=aMvTT0-~p6l2V~n;vB`H ziWvt}BIp)Ja#K~~Dxwk@@1=7-hUZf0XTp>qzx{}$e0u%mDbcRn`qHR|;(;usP3n%b z2czz<28Qr)St6V1sK=pd+k}+l$=h3?k5>&g^9iPu>&#`DZ!P5vl!PqEMJPb7sJrmP zkv6g1gKGm`T&rUyp;5EdV&`|}9>0y6(1>^!iHUITK61=carzZfI?@6__ot;W`2|xw zed8-tB7xH`4^DdmR?$6J@_J(>-0StEMZ%Pm1Z##FZ17=RKMGGo$s=r1;JAtb`!`}! zXpr~YpXK$#>FlgZBYK;qiZ6yoT13;7WcN18?5iV1xPj4HkAaUKHDn

U%y0mt!nYZ^3`16gAQ&`jlx^lk?- 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 X0|5aAT>tv< literal 0 HcmV?d00001