From bb511e50e6faa4f8feadb561593635a91cc04192 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Wed, 1 May 2024 05:57:39 +0800 Subject: [PATCH] Add the initial translation of chapter "greedy" (#1320) --- .../fractional_knapsack_area_chart.png | Bin 0 -> 12437 bytes .../fractional_knapsack_example.png | Bin 0 -> 23915 bytes .../fractional_knapsack_greedy_strategy.png | Bin 0 -> 20678 bytes .../fractional_knapsack_unit_value.png | Bin 0 -> 20898 bytes .../fractional_knapsack_problem.md | 50 +++++++++ .../coin_change_greedy_strategy.png | Bin 0 -> 30492 bytes .../coin_change_greedy_vs_dp.png | Bin 0 -> 20841 bytes en/docs/chapter_greedy/greedy_algorithm.md | 94 +++++++++++++++++ en/docs/chapter_greedy/index.md | 9 ++ .../max_capacity_example.png | Bin 0 -> 11436 bytes .../max_capacity_greedy_step1.png | Bin 0 -> 15563 bytes .../max_capacity_greedy_step2.png | Bin 0 -> 17319 bytes .../max_capacity_greedy_step3.png | Bin 0 -> 17598 bytes .../max_capacity_greedy_step4.png | Bin 0 -> 17967 bytes .../max_capacity_greedy_step5.png | Bin 0 -> 17910 bytes .../max_capacity_greedy_step6.png | Bin 0 -> 18430 bytes .../max_capacity_greedy_step7.png | Bin 0 -> 18099 bytes .../max_capacity_greedy_step8.png | Bin 0 -> 18496 bytes .../max_capacity_greedy_step9.png | Bin 0 -> 15366 bytes .../max_capacity_initial_state.png | Bin 0 -> 14995 bytes .../max_capacity_moving_long_board.png | Bin 0 -> 16031 bytes .../max_capacity_moving_short_board.png | Bin 0 -> 16028 bytes .../max_capacity_skipped_states.png | Bin 0 -> 22811 bytes .../chapter_greedy/max_capacity_problem.md | 99 ++++++++++++++++++ .../max_product_cutting_definition.png | Bin 0 -> 10708 bytes ...max_product_cutting_greedy_calculation.png | Bin 0 -> 6485 bytes .../max_product_cutting_greedy_infer1.png | Bin 0 -> 9497 bytes .../max_product_cutting_greedy_infer2.png | Bin 0 -> 9373 bytes .../max_product_cutting_problem.md | 85 +++++++++++++++ en/docs/chapter_greedy/summary.md | 12 +++ 30 files changed, 349 insertions(+) create mode 100644 en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_area_chart.png create mode 100644 en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_example.png create mode 100644 en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_greedy_strategy.png create mode 100644 en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_unit_value.png create mode 100644 en/docs/chapter_greedy/fractional_knapsack_problem.md create mode 100644 en/docs/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_strategy.png create mode 100644 en/docs/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_vs_dp.png create mode 100644 en/docs/chapter_greedy/greedy_algorithm.md create mode 100644 en/docs/chapter_greedy/index.md create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_example.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step1.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step2.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step3.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step4.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step5.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step6.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step7.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step8.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step9.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_initial_state.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_long_board.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_short_board.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_skipped_states.png create mode 100644 en/docs/chapter_greedy/max_capacity_problem.md create mode 100644 en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png create mode 100644 en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_calculation.png create mode 100644 en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer1.png create mode 100644 en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer2.png create mode 100644 en/docs/chapter_greedy/max_product_cutting_problem.md create mode 100644 en/docs/chapter_greedy/summary.md diff --git a/en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_area_chart.png b/en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_area_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..28023758d1c74f9e9a29a68caa58a3487b056a9e GIT binary patch literal 12437 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_greedy_strategy.png b/en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_greedy_strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..713f30addbbad7f2a3c648de8ca35adab15b03ec GIT binary patch literal 20678 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 KtXr$?81oNvBgFau literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_unit_value.png b/en/docs/chapter_greedy/fractional_knapsack_problem.assets/fractional_knapsack_unit_value.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4199ca0fea81e0e3129c6d4794b054180f0b1c GIT binary patch literal 20898 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/fractional_knapsack_problem.md b/en/docs/chapter_greedy/fractional_knapsack_problem.md new file mode 100644 index 000000000..5942dd24b --- /dev/null +++ b/en/docs/chapter_greedy/fractional_knapsack_problem.md @@ -0,0 +1,50 @@ +# Fractional knapsack problem + +!!! question + + Given $n$ items, the weight of the $i$-th item is $wgt[i-1]$ and its value is $val[i-1]$, and a knapsack with a capacity of $cap$. Each item can be chosen only once, **but a part of the item can be selected, with its value calculated based on the proportion of the weight chosen**, what is the maximum value of the items in the knapsack under the limited capacity? An example is shown below. + +![Example data of the fractional knapsack problem](fractional_knapsack_problem.assets/fractional_knapsack_example.png) + +The fractional knapsack problem is very similar overall to the 0-1 knapsack problem, involving the current item $i$ and capacity $c$, aiming to maximize the value within the limited capacity of the knapsack. + +The difference is that, in this problem, only a part of an item can be chosen. As shown in the figure below, **we can arbitrarily split the items and calculate the corresponding value based on the weight proportion**. + +1. For item $i$, its value per unit weight is $val[i-1] / wgt[i-1]$, referred to as the unit value. +2. Suppose we put a part of item $i$ with weight $w$ into the knapsack, then the value added to the knapsack is $w \times val[i-1] / wgt[i-1]$. + +![Value per unit weight of the item](fractional_knapsack_problem.assets/fractional_knapsack_unit_value.png) + +### Greedy strategy determination + +Maximizing the total value of the items in the knapsack essentially means maximizing the value per unit weight. From this, the greedy strategy shown below can be deduced. + +1. Sort the items by their unit value from high to low. +2. Iterate over all items, **greedily choosing the item with the highest unit value in each round**. +3. If the remaining capacity of the knapsack is insufficient, use part of the current item to fill the knapsack. + +![Greedy strategy of the fractional knapsack problem](fractional_knapsack_problem.assets/fractional_knapsack_greedy_strategy.png) + +### Code implementation + +We have created an `Item` class in order to sort the items by their unit value. We loop and make greedy choices until the knapsack is full, then exit and return the solution: + +```src +[file]{fractional_knapsack}-[class]{}-[func]{fractional_knapsack} +``` + +Apart from sorting, in the worst case, the entire list of items needs to be traversed, **hence the time complexity is $O(n)$**, where $n$ is the number of items. + +Since an `Item` object list is initialized, **the space complexity is $O(n)$**. + +### Correctness proof + +Using proof by contradiction. Suppose item $x$ has the highest unit value, and some algorithm yields a maximum value `res`, but the solution does not include item $x`. + +Now remove a unit weight of any item from the knapsack and replace it with a unit weight of item $x$. Since the unit value of item $x$ is the highest, the total value after replacement will definitely be greater than `res`. **This contradicts the assumption that `res` is the optimal solution, proving that the optimal solution must include item $x**. + +For other items in this solution, we can also construct the above contradiction. Overall, **items with greater unit value are always better choices**, proving that the greedy strategy is effective. + +As shown in the figure below, if the item weight and unit value are viewed as the horizontal and vertical axes of a two-dimensional chart respectively, the fractional knapsack problem can be transformed into "seeking the largest area enclosed within a limited horizontal axis range". This analogy can help us understand the effectiveness of the greedy strategy from a geometric perspective. + +![Geometric representation of the fractional knapsack problem](fractional_knapsack_problem.assets/fractional_knapsack_area_chart.png) diff --git a/en/docs/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_strategy.png b/en/docs/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..1f8b4e8d2b46329b849c7ef7d21148b70539ec51 GIT binary patch literal 30492 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_vs_dp.png b/en/docs/chapter_greedy/greedy_algorithm.assets/coin_change_greedy_vs_dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d13ed01a164acf11e3520d36017c4e6c056b7479 GIT binary patch literal 20841 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%0A4$11AjWAn~Wl~1Es}he1Vgc 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 SUR*xs)B`m=)l%gb!T$m%M!vTI literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/greedy_algorithm.md b/en/docs/chapter_greedy/greedy_algorithm.md new file mode 100644 index 000000000..8fbaf2756 --- /dev/null +++ b/en/docs/chapter_greedy/greedy_algorithm.md @@ -0,0 +1,94 @@ +# Greedy algorithms + +Greedy algorithm is a common algorithm for solving optimization problems, which fundamentally involves making the seemingly best choice at each decision-making stage of the problem, i.e., greedily making locally optimal decisions in hopes of finding a globally optimal solution. Greedy algorithms are concise and efficient, and are widely used in many practical problems. + +Greedy algorithms and dynamic programming are both commonly used to solve optimization problems. They share some similarities, such as relying on the property of optimal substructure, but they operate differently. + +- Dynamic programming considers all previous decisions at the current decision stage and uses solutions to past subproblems to construct solutions for the current subproblem. +- Greedy algorithms do not consider past decisions; instead, they proceed with greedy choices, continually narrowing the scope of the problem until it is solved. + +Let's first understand the working principle of the greedy algorithm through the example of "coin change," which has been introduced in the "Complete Knapsack Problem" chapter. I believe you are already familiar with it. + +!!! question + + Given $n$ types of coins, where the denomination of the $i$th type of coin is $coins[i - 1]$, and the target amount is $amt$, with each type of coin available indefinitely, what is the minimum number of coins needed to make up the target amount? If it is not possible to make up the target amount, return $-1$. + +The greedy strategy adopted in this problem is shown in the following figure. Given the target amount, **we greedily choose the coin that is closest to and not greater than it**, repeatedly following this step until the target amount is met. + +![Greedy strategy for coin change](greedy_algorithm.assets/coin_change_greedy_strategy.png) + +The implementation code is as follows: + +```src +[file]{coin_change_greedy}-[class]{}-[func]{coin_change_greedy} +``` + +You might exclaim: So clean! The greedy algorithm solves the coin change problem in about ten lines of code. + +## Advantages and limitations of greedy algorithms + +**Greedy algorithms are not only straightforward and simple to implement, but they are also usually very efficient**. In the code above, if the smallest coin denomination is $\min(coins)$, the greedy choice loops at most $amt / \min(coins)$ times, giving a time complexity of $O(amt / \min(coins))$. This is an order of magnitude smaller than the time complexity of the dynamic programming solution, which is $O(n \times amt)$. + +However, **for some combinations of coin denominations, greedy algorithms cannot find the optimal solution**. The following figure provides two examples. + +- **Positive example $coins = [1, 5, 10, 20, 50, 100]$**: In this coin combination, given any $amt$, the greedy algorithm can find the optimal solution. +- **Negative example $coins = [1, 20, 50]$**: Suppose $amt = 60$, the greedy algorithm can only find the combination $50 + 1 \times 10$, totaling 11 coins, but dynamic programming can find the optimal solution of $20 + 20 + 20$, needing only 3 coins. +- **Negative example $coins = [1, 49, 50]$**: Suppose $amt = 98$, the greedy algorithm can only find the combination $50 + 1 \times 48$, totaling 49 coins, but dynamic programming can find the optimal solution of $49 + 49$, needing only 2 coins. + +![Examples where greedy algorithms do not find the optimal solution](greedy_algorithm.assets/coin_change_greedy_vs_dp.png) + +This means that for the coin change problem, greedy algorithms cannot guarantee finding the globally optimal solution, and they might find a very poor solution. They are better suited for dynamic programming. + +Generally, the suitability of greedy algorithms falls into two categories. + +1. **Guaranteed to find the optimal solution**: In these cases, greedy algorithms are often the best choice, as they tend to be more efficient than backtracking or dynamic programming. +2. **Can find a near-optimal solution**: Greedy algorithms are also applicable here. For many complex problems, finding the global optimal solution is very challenging, and being able to find a high-efficiency suboptimal solution is also very commendable. + +## Characteristics of greedy algorithms + +So, what kind of problems are suitable for solving with greedy algorithms? Or rather, under what conditions can greedy algorithms guarantee to find the optimal solution? + +Compared to dynamic programming, greedy algorithms have stricter usage conditions, focusing mainly on two properties of the problem. + +- **Greedy choice property**: Only when the locally optimal choice can always lead to a globally optimal solution can greedy algorithms guarantee to obtain the optimal solution. +- **Optimal substructure**: The optimal solution to the original problem contains the optimal solutions to its subproblems. + +Optimal substructure has already been introduced in the "Dynamic Programming" chapter, so it is not discussed further here. It's important to note that some problems do not have an obvious optimal substructure, but can still be solved using greedy algorithms. + +We mainly explore the method for determining the greedy choice property. Although its description seems simple, **in practice, proving the greedy choice property for many problems is not easy**. + +For example, in the coin change problem, although we can easily cite counterexamples to disprove the greedy choice property, proving it is much more challenging. If asked, **what conditions must a coin combination meet to be solvable using a greedy algorithm**? We often have to rely on intuition or examples to provide an ambiguous answer, as it is difficult to provide a rigorous mathematical proof. + +!!! quote + + A paper presents an algorithm with a time complexity of $O(n^3)$ for determining whether a coin combination can use a greedy algorithm to find the optimal solution for any amount. + + Pearson, D. A polynomial-time algorithm for the change-making problem[J]. Operations Research Letters, 2005, 33(3): 231-234. + +## Steps for solving problems with greedy algorithms + +The problem-solving process for greedy problems can generally be divided into the following three steps. + +1. **Problem analysis**: Sort out and understand the characteristics of the problem, including state definition, optimization objectives, and constraints, etc. This step is also involved in backtracking and dynamic programming. +2. **Determine the greedy strategy**: Determine how to make a greedy choice at each step. This strategy can reduce the scale of the problem at each step and eventually solve the entire problem. +3. **Proof of correctness**: It is usually necessary to prove that the problem has both a greedy choice property and optimal substructure. This step may require mathematical proofs, such as induction or reductio ad absurdum. + +Determining the greedy strategy is the core step in solving the problem, but it may not be easy to implement, mainly for the following reasons. + +- **Greedy strategies vary greatly between different problems**. For many problems, the greedy strategy is fairly straightforward, and we can come up with it through some general thinking and attempts. However, for some complex problems, the greedy strategy may be very elusive, which is a real test of individual problem-solving experience and algorithmic capability. +- **Some greedy strategies are quite misleading**. When we confidently design a greedy strategy, write the code, and submit it for testing, it is quite possible that some test cases will not pass. This is because the designed greedy strategy is only "partially correct," as described above with the coin change example. + +To ensure accuracy, we should provide rigorous mathematical proofs for the greedy strategy, **usually involving reductio ad absurdum or mathematical induction**. + +However, proving correctness may not be an easy task. If we are at a loss, we usually choose to debug the code based on test cases, modifying and verifying the greedy strategy step by step. + +## Typical problems solved by greedy algorithms + +Greedy algorithms are often applied to optimization problems that satisfy the properties of greedy choice and optimal substructure. Below are some typical greedy algorithm problems. + +- **Coin change problem**: In some coin combinations, the greedy algorithm always provides the optimal solution. +- **Interval scheduling problem**: Suppose you have several tasks, each of which takes place over a period of time. Your goal is to complete as many tasks as possible. If you always choose the task that ends the earliest, then the greedy algorithm can achieve the optimal solution. +- **Fractional knapsack problem**: Given a set of items and a carrying capacity, your goal is to select a set of items such that the total weight does not exceed the carrying capacity and the total value is maximized. If you always choose the item with the highest value-to-weight ratio (value / weight), the greedy algorithm can achieve the optimal solution in some cases. +- **Stock trading problem**: Given a set of historical stock prices, you can make multiple trades, but you cannot buy again until after you have sold if you already own stocks. The goal is to achieve the maximum profit. +- **Huffman coding**: Huffman coding is a greedy algorithm used for lossless data compression. By constructing a Huffman tree, it always merges the two nodes with the lowest frequency, resulting in a Huffman tree with the minimum weighted path length (coding length). +- **Dijkstra's algorithm**: It is a greedy algorithm for solving the shortest path problem from a given source vertex to all other vertices. diff --git a/en/docs/chapter_greedy/index.md b/en/docs/chapter_greedy/index.md new file mode 100644 index 000000000..ba4314f7a --- /dev/null +++ b/en/docs/chapter_greedy/index.md @@ -0,0 +1,9 @@ +# Greedy + +![Greedy](../assets/covers/chapter_greedy.jpg) + +!!! abstract + + Sunflowers turn towards the sun, always seeking the greatest possible growth for themselves. + + Greedy strategy guides to the best answer step by step through rounds of simple choices. diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_example.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_example.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4b883dc1d214b20de075899238ba1684a1fe5b GIT binary patch literal 11436 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 Df;^^C literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step2.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step2.png new file mode 100644 index 0000000000000000000000000000000000000000..3f2a0839426ff5b885d82ab258e2baec0a5a276a GIT binary patch literal 17319 zcmdtJbx@qm_b>R2-~;`WMeZ|;2j)smNlWJb{{HaraAxoN_V)JT;^OM+>gMJqxH0Jc`}Zd&Cn6#umzS4L zVM`iKl{1@1J3BjDTU)KIt!HOvLhzOu5CG%-0kIw~b4 zb$oohwzk&Q)up4O^Xbzk4Gj$i1qDMxLu+g6KY#x0?d~coD=R4}B_}6)dU_5G4TXn? z*VfkN=H~YH_V)MphlYmE&d%oN=VxbUCnhG^+1Z5z2Tx8;iiwGto11TLZf0a;#Ky)> zOib+T9k{u<&CkzAMn+0VNSK(IR8&-?r>7ej7!(y2mY0|N`1q8Rl*r1;2Kf6sJ3H&? z>1jGmc)GZVCq`~;Y|PBe_}7$|jSem@EUc{Uy>DKk2puwOuTM=)jgF3Xbaeb)UHxlj zhb3}E)_mNns$@UHsB>oOU}o&|^mtZpr&DRc`p!;q-D+0pvPAN@L0gTH*W`~MKlWp7 z4bt@uzD_kyG&eRhgp>!bZ0$F7t=B9sW@Tmd^z=kD)+nULn`N7+s;Ul+Z%2&v?|;vT zZ;Idl61uRkkkZ+Z*2p^xIHhL2v%p-gfuKs#3OepdC5_1e*z zwyDjk=JkXxOJ0$4V~b;UUCjyY%?B-oQ!C3u$i>;!S)1aS&cW@jkzWVxWjS3r`nl=; zrK#H4sVS|WJR76SN7teneENbMZbR{$GiH6mD4|dsCz&8`M#S=SJ*plSQC~LESot~6^aX@4A;s9ZP94t&IY>x{; zlUw&EK6b5A5nqS?rvf%Xom>6er(;02o5~bx%e@0I_B?jHv##9Ub`;3gJhIPd;C^%Z zF8c1g}%U-Z?C6LH=~la2)QY3ewFI|%*b8?B+d9YX79!B1Mvs&o^oKi#)? zc=Aj=M#%7x7a0M&*IRif%(nG`tsgfUV#gK*m3v#Rlx$51QSl^OZ8DSoP=D3lLFJ;} z{kkWY|n`SV4(s$x+pJt^UH9w@V#dk7YPBsf1ld<6V5z0`?PyV z-yP`P7cVxkd1K883=j?0vr5a&Zx8(C{;#Lr|gkq;z{@2|H8m9 z=tTZ`IxLx``&C7~jp4<36P7wrci7zc=vYhE%-KMgnc8v~AyfK>oM|6Z9PNDsQ`a*v zIzr>L{+NR(0svQ>NY}WLzkC6JbU!y=>=oNR{!2S_Mz>;i)53vTq{gY}U)*#s)-BP% zL)Ns2!8Ys1znWg9%pq#&(mN=PAd(8{)!# zACKxp%8->;kLoRQlB-oDwYFi3b?bI-?~g8v`tv$i1bl4lO~)OXmv?hGyXobzwUTKb zF=Ealt7y0|Y&$(LR`HZ|i+`)lTv9CaRpr%oQ6KwWVfy7HH0`>`$G`%x2VcZC;m50I zI85Z`^tm?|3#bBrsGUw;Y(DF8V2VC~2)-l>eCfeRr=6j}A2;p~M67)DJl>}Vb@gy) z8%HdD$q^;}FoY&#rfdgEG3!OHM~L_xgQmyAT9tC7pHJ>#zZEHuEV@NcH>Fe`Zg)RsaE zg3kZVb&ez>fFYj!71sT~FRbw7@;|<8?m8FdVSvL+Fa8uQzCEKSiXbCE81K$jI{j25 zLPeSzQnQ`U)7mD5{n8-%@_|%sK|kXQVw|5LTb_|s3LCowg(^qUO4l2lSxAo?vNsXL z6z`zd@FC-F>8O~BeSs~j&BYb8>%->i%Cpy2j_iziE)4?fp1xdV!ugrI-A?)i0F?+Q z9S?}FlfEFLfh$MQxqV}eqQ%5Rf{$c>@lP5z=$CU$R^!JvlqvV8H&lZfMHxg%pa(|6X>2ZTF8}Kk9 zsJ4n;KTpbW*W@#3d|2Js`(2xHllqqK3cIE%fJQRqlJ}`SP+dSVY!xFKGtv;L=jC~U zX{+&lBCIc-jvfoHJBp>^Hbu*x#|bsXyv{GChz|EGozI%tbl(`>pVDI$3;X27vZ^xj z^i)Co5j|CsxTeL9IMD;j^NbDl)$HxRN4k8U1QKo6tZSjK^iLGFY zTDSYPPq;=hlWB>va(581jliHC0t9MH{7}N~2WhPjRlRPBoup+2CXWhG`s{wkANWle ztd&SXI%G)*j0ikp*4VV88zrK{58Ni7s*HlFzD(pUzV*a31?&D4CKP(>#yEwqjT5u7 zOydqxk%U&1@jQ+{G*A3i@X9;|3&kd4hlmIdfqM6I&`x~IgS_)K3nD7)u2Yd~H-|jh zRGcXLku7MMo@O`iKim@#Cf=D=bPpFb<`@ohc$TCI^)DOj;~ap81qK(R==5WOiKGv= zUbDao8~)W8VR~3~UEZRhpr5|VeLfTcz8M^OlFN^cqE7VdO?8N^A*02kq6E5{IurTa z@p=zLX_GguQD_b5+&1xh(IX>R=#RMd&O)*=!t>qVhR`de7>#3FD>g8?qZCgRK7umO z%G#R&7wc@lY#LdbrTb;dUQ;FuLu(p06+X zDE@cui(%?aj6K&F6YpP>TcFo(O6nNl|FR9B*ZYCOI~mmIG-k2qA$3-+p;m%mkb4nm zetP)Z8V#$gcLPN;eka59b`# zx~=r$Y~zr20eVOKQ+c-1Ic9wa$MZE@>GxkB^w7Ve zxk0(Zxety$G@iCm6f5Q_bxScmI45)&A6}hG91)N$D9!#^0f0$E@4BnKVlR~O@DN+F zz@<6^9>OvbAb|awTwowCyN5r;E`0lj!TA1VV<4KYvPQ<17FDfs_Db>BU*w|1b+c9l zjQ7^M9t=QXDU3S?}wY?=dwy^O{>jRjN!Q7xc};Oqp;FHy}uWAoAMCYa4IV<|90O@03$l~{uz{P zD7Z5Jj1T`M zBMy%o@I1NLsWt$))d6k9opvW`#jG#2WS7ESlOzC9rpCZB*|Wc}gW?gUx|H$#VRXI;J2;(Vbk1Ix zyVL#}jTV*tE1(5hYZ@a_53O}k$UMlJTIWQkVRG&tHsHf2RG~a|>Un2I*fRx?#|Kau zO^;mj3Si%(y$jZN2^3m&DwcBinC}zHqS2btzF;F8X5w&9F#WQAW{(>8jnawb2FmWE zbI>xUL(0;m#=yS&elRQD_$3`#-3s~7H}dRA25Np$0jYahxB#xi?lWB6B?fq3we@1d zooA-5eKwwn76e4tR{MnQwSpK*YS zEnpw1H)R$LbQH^zd`iCOWq@mv!~AJ?8WBy1LpDZuo+Ka#J$yTPnhtbuip3mdg+rb7 zA%(bBGm`s|P&zoYB2M!SJ?@C+Zu0+t69>yO)wlZHDZF7=cy@+02*pA&(G7#+QT zgC@N857h-9WZr?Lf6h2SL-dZ`52I0+27ah~@3f_#`=eeJIF_d{@&PWnp%(>#UM(aD z0Vr4O_um*aYO8skxfF;`|HW?Rd7dw#EkgSrOoP##DU{ygBQV6XKC&XrfrFOKCb_?s z0)!!?Pag#3d{>zS2+{Fy5+ax)@J9|B2PD7QxP7@r?Fz+2CNiro;vwk1KH_`||4;`z zRNbUC!vBY7g})*(dkh0Gkbz5Y59k&_J!=1|Mt*U(xTU+hM0=?5VC6Af8d@QWP80Vq z5D^6XqBQY$-SZEd^A;nZi48=lFnb8a>%&6s^mtKYAX&!4nc)aQP_rT+7tb#W>N>(V zc2FfkFoJbI{;g?p>@TN)DqK54l_lkLG}i0JVf{(%Bk)L-ak}Wrq`#7 zmwvYBG~(56XvOa#E|k4V7QsB2vXye2_-u3z-=`S`n!bOW-2c31O6!2%$mM-l>mO$1 z2hFm{GFi(1^u&=!--fA2`q(-!>jj!`TpQ$)z(ZfYo8-@XdiVql9I&kjUzW=`Jl~}Y z1o85JGUcDjX`g&#%20mv4p6HF;UrqjGO#F}i|4Bno02^Jl-OrEVa zY@s>Y9}6zj4BtTmepU*^+Ljsxs*w*hM`bQKas*43I#S zx%b#_ZggS{z1Df>hMJ$BZ2aJkhd5$f?cn3fCq`B?T!yC{329MZPY+Wal~c<-TSr*9 z*=RpgJ0T>ayBd0h?wR~X&d^Of)`kZ()Wl(c;Q(mJ;es32E0ZcwN9qEd@cT&DWD-BT zX&$Wq)FgW98jp>zWXSl<7xv)VPHS#4^V36|xY_lRSwjpyn}BxQ2zQa!*Q_HEONl6l z5Lrz2>U@qDKe?;^h7MI>2Imdmt0i!8MnQxlME)d{kg{FXC1cK1Q#~<{k*=`ybP{G{P;)Ig>Ir4lm9c`ffoM12|QSnY#)Q7WF5VscrXgs znj|ak1+i|(>>)Z0EFIv;tC9xz{$mePI4}P;#0@Sy5iSRS%uo(B1{9%c5&s}d0O6I& z5MW!4f(is3gL0jmgi3_{{K78^M#tlX--?3^W&Rcb++)+W;lZGICl4>KK#_amhn>i+ zu%IamdJf9~eA4`W!7@X685W=>SOEQP821F~i~}NqwGzTW>0Xy!;65C%U<80k6Zop2 ze0@|6K*7tzFd53qc@UkfZ4F-X5Wzs9ST2ob?bs-4!0-3W_54GBQBD>aF$0hO$z2L; zuQU$_v%sC%mi^QoH(30oxl#a3WTc^pl?xGir{G;M!@P^=@Jysf>lE>nZoYF}s?l_h zm0mKs9BY`8K+;$F4M|Me3d=H;x7{@YPCZ?QwOqZZN@thto73+F11;h}UsWSP762K{ zZmsd#nqj|ZTA#XluXzI)n+DPcXs|&(>KaWvCt*X`oiQNEDOw2wtMxxNdBCH_=@XjJ zCP&0vkRmXjyg$(tU644)ucIKNL5+JbSd;{2Da8#u|Ho_s z&#UR5)iH85Bgxc$T=h`x`asE>T zgNq&;P1z3im>C%fLZ~F{t9K3`9Ol#1VqXiq2|uTgn&Nn&n(oGH;T~VSIy`JVnJB^h zrVB7CLNBcYP1vLmMZcUJ4m+tmF16*jH;rlGMsGP>=@rCEHclSC5nZ|F)(vo6ClS1> zbn9h}ky0n^#dUcyzs#0Qv}KW>2@D{ zbqwBVNEM_=ks@I)%akBhK&R6=3K@)^73JTu=~ZnLZQ3gMF%mej!wRTWivZd`){Q|! z*_w}#kbyGL$@#8n%LLfS#(7c%t{PeJoc}K8FyLz`O5Az4)9A>%UgIqnfulxD_|GA? z1u%T4@jQ}-C_7T-<@t@v!7laOaOwu)^3Znr5u!XYUSDX$?zvIS3VYPv-Kynk6BNy5v^Ajct;*QMo2sO4D5d6h{-#8$Nf+TpND{6KggHUOUHut!Fxx`@* ziF;Fk;!F>aCjl(LNC~ttP70<+wAGD7qgL+%8WHgqNqW08gAIna7dKUUwHZ)YE&+go zNYw^fakIYxA1lFjbeQUP00koVo20?Z+kvUUG7t8D%@q^DF3@)!d&6%5aP6vBS-%;_=X>GlSvGV;>xEDU7HpU@0=Dsv=So_xg31X z%K{p!|671jSiDR+$&IFW8u(LybWoN}D$ciy%~`AmqsE@wV}J>1c#w(u*@j`Qq|7Yx zASfsYfs%}7Qg-e+>NaxkEek+ROx^-^C@_F287=$O18eqwmqo;82s1r=WrX2Pw$-3G zAl@OK156_jHBJD`l9|IFua6l;?E!*g!$YoLB6ifpUZh#6&08ok`F02JW zM|8afw*UI|f1pa)WK}}&952+g?=4ph-fn0JuWJ|$r8JbHy)UTysS-2Rhk~TiyjW!Q zCBroyv8-v6eaAl0pg(m`RvU)t2Tn*6x-%zJEMQ84jtAQBUd5+TGP$EN8d*oL5XPec zhdS(2d03oA0rn6O9jtHFCfBF3p+U=E3Z4`M;L}*RUgXyWy5!A~flIKU?*Q6Qdgs*k zzi>d4C}3&0+B>&joKW4rmZfMXzn!C3aQrnX^?IjMG8|}|%XjQ4c$T5Q%is~gn>ZnM z#N+Xah_LruE}qsSf{3u7fd-Z`^yj67t4dH{^04a<&%H11XX6F?@j0I+#KxtzscbXy z_T$?%&gHj4=H?$9U)8QF(3>)84p4%FDF;96z1*n5l#H*ZK zhN#CyFp4@#PWM?!tv0Q;v!n(Z5ms6ecCJZ|0Mb$SEyZGF4M{xP^gu@j(w&n#M2Jb~ z;MgALCw8FJ87*W+Z{}K~^-6AY4O96fQ9^r|4(I??)>=U z26+A(G53REg-ZZY#?u=82blN}qpAo(e*7nV#OK+ZYpaYv!M_0`VP0EV;RMpT|3MzL zwh0S^k(U37Eg^7k;YYCoVgZbdi(4(5j7*|A5o z8|k@W%QbG3X=|AaPN$RR!QHK()^!6!?Vb!lowh~tX3nwfN>l_8G}aM}$jK^aOTP}N z-`rjZB)z_D>}a44_t!bNBZTwqW5M1+Tk&ztdVHaid+6{_WJ^8X0499u?l~_Nylti- zB&qO=V9W|Lnf*<7!mQoL+7hj{DXg4WFX`?}R^=4_yK9-Y?I2h>-;pkr>7K(1-YZvPg)DeegSX zo&n^>9p1n<6!@P4W`MUf^a0j(r05q;Bt``vc<3=&4;}FTFR9(nli~$V0gxb{r61V} zsF2vPq^IHz6Nvs#Ox}Dl_h@M%5s7?=!@Gw#Z2Cv76+a!85q%g@G7n*tb*d$y4zD|X zcm6M+Z%>vzk9TPx%}q`pDm?`FlsjW&hG6U;LL-gVGk5oJ4w{DN1Io(J!n)qbwz(PlB29eJ2bPl zS_=-SH0WhQ?^Xk3AebVPm5Y9B9`AW8J;P$6^7pv>fBv-odsGO- z-P_X_e)}Juj?CL;-Y2~-l!4vzV>%H-zuI4r$T0V{&fHY4ea04ukZ9FxcefkXa4{uO z4Ohe4?ADaZ=(xh#U7krRkVQT(` z<&@1alEI}bK8^I95H&D7MVfPq3C$`p(Q?CZBpLdrDifeYvtQiJPHAhGgCAvUM;UTZ=FC>MMk@~)hR zuak(uYKwo_lLhjgVWV0scHCYk2hYrJn%0__UQLMiR%ANNa;qe{H4y8rBX#CRTILyw zbHa!qZ;$*)SI&=K_PE>!Ma~nxoU3Mz7Z%3hLw%UKe!v~v5~GC^^)PLz&Bckox3Dk= z5O1=*FhSLctDPt*LHtfT4P ztq9(Qv=~ljWv3{+g$+O1fh>P>(P^c~`t;~HbKNCJP)n4ps2G~Rk&kA7{3;O7cXBqQZ!(k$yz-gX z4=|eatbStrj0ce7VAYkMqWuYj_o5e8Q)t|V~qrX}Z z5e673J9WX^XiijxnMfesQ+=q=^b&H;?2q54en@napx0-SG9+3+)5L_lw(j-#-U0&~b;i(fr1^SA5QdhaiXY*12)p z{&GoyfV#SU4J;P*g5!pxEUX{ViTeeVzZkOy6k9Kk#_aMWd+;? zl{m}(sPXb?-haJrEpc)FIrxX)7*k08kGBuP7KHghq~RbMn-JdEvn3A44_`5+@h_a- zZGiqKGo5%};Wv!H;t!-1>MyBFZD`)C#zN$2eEX=MJ*C0jr7q|LDXxXqD$yu*hxUll z2;9YXzTRDUqonOY+3O-cI)C1uS2;ai)0DyF+)GnG&jx`8K^g9dNV-2>>~L%7z|?Mi6|BFd>Sy*xV!gS43Q=|iNFUfh5~r7 z!o9Rzf+j3S9+3H)nkE<^rMKe&%n&~`*{@%CX^AcgzRN4P;;V5rKv^^rplV+g0GV$I zk?`Pts(11V1h94sT!9w!F5jlswR#%O@7uo!S(c!~h~< zPX$dFZJ*G*a?1;^7$NVnvk3&>zhPXHab8)R3-?DC5h4oSLUTJZXP?c=BA0qcI$=T@ zoi?OjM^>h6e5zvm?$BZc(XW(`mi(qAG0+r60qEw2voZcM;geRCQV2ZICKaU~M@?aU z&x&V`lu<>nbCnMO>X-LGA@{G#6B{6l(<$hvQ{8bE8jU7_2uJ$qlE)Uojx$vYI zwY=PXc{2fe@gjycvXG_sYmj3>X*aQiqf7#ympUQkTOXDbw1vAYi9XWc+>4$^ZC_BY z9hsioxUV2%D4fkm5EORbI|Hh+--A^irF4m#We9m23!KtzK; znL{=%mI;a)mYP6EW34q zby7A!+yRpLwP#r{9*|WG04fKJv6yH4Ja_P5do||%*9YBDXNfN--7Nve!JwO!v(19s zN)V;=_qpxVCDR#ul(=8+KZxtOas`xMbk+Ib?J581H&YUQn_e-`G|tyb$+43xOE()D z_D^$*Bu!k{3BtEPK7=Lj9URsGPmoPN$B(&7?2qyQ)|5UgbqK%#JJu9P2Mea>U<;w) zy|~^t#Q@#Js9sV+`cUshF$;h%iL>N~>JP$)uYkd`VQetqvC*8x{HL*B-6ls{4*}~am&S;niVF=tKN) zMpH2xjW&po&*YS>x#JEK+O{S&GS7ugIo;phATl8mnLo4BTet$2Ka=00PA)xs=$r~% zo((!Clpk{oYYlH4VOIZXqz#c_n@EC9y}qCv8#mIL!F~bv!J|OLUIkpP?fC-Y;-2g; z-d;~vnx8v>>km?#9vT5VdQr%Gg$uqwPw%Jx=Af^y&$J1kdh&eF6O+bzUE50sIG}gf zueU`#PSyO;a-5+zp^X?Q3v$oS_(*Jm^)LY(A@ULqnb5r;`5!#;qhTB0h{fA|ag>S& z3$EN(uPEj!Ya?uOsZuwlW^8J9mfrJ)L+aoL_8kGCM~yxvN?C`r&-1=#PHh%YyniVG znO0~N-E=LqcO!fnM9zi#L$MNcLlfffL2$v;c~q$kTz21Fb%E=rriY)P1o#Y8b#lP7 z!mM#cP@Q$?E$Q{kQ1h~(>UX~#7dC0#>MI1Sl$7ZP*vqryD-5Xsl&==W=45=W_397d zhm;Yac^FC?N*Z$N@~3VG;SAJ*Q|gimYsh8+^$64nehq&PxNBQ9RoY#&!Eh7Q#<%2$ zkQh7}%abC?w0ssN?t{R$t4p0V&1dkFqobp%LO>%t8(wd)iBN9+rr zuhI=Y9F#%D1Nq>pi=Th8N6aq1dge5Een9~Co+=(GM&A%s+lP6bM>c z0lvJ9BI5AVk4rco-8BO~86i42j#q9k2VIU#R^-a&YB+n0joqjQNPK&)uX~03R(=DS z7s0r`e($D~Om}v{g>++zEe)Ib+FYwLXccT&Fv81r*7u%0D2E&Le%=&w@{Jr$z+tqh`Y_ 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 Z>q75BqH literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step3.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step3.png new file mode 100644 index 0000000000000000000000000000000000000000..581ee2701cf6f5477e4d3bdf138524d563523ed0 GIT binary patch literal 17598 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step4.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step4.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e6e18126efea3ead167b93feef424a5a6e3798 GIT binary patch literal 17967 zcmd41WmH_vw>NmY8`lo*G(kcL7D8}oG$dFcxNERrA-FXVECde_9D)aThbFj7aCdii zhUfX;JF{li`>r)>&3w4^rE1%+_paKtPn|v${9fS=E*1qA006jeWh9jW0QGSQ9>Rb; zc9$7!CXdARdpQ-Uhlhv5!^5e)o5yx{cXxStd3ALa931Rh=c8O-Dkvy;dU|T(zi@tj zzO%D)c6PSByu7`=J+*n9TeZuk(BIV5#2*<%?9+R3aWOeLxhIR&Khw9jxA(I%ZGZou zwEmB3yvpSARz^lfb93|Y@$ux`(&FOcpFe*_Mn;yFmNIJhN*cChWMtOY*F{7`{QUer ze*CDRq0!dXrmU=-oSdwys~Zy&^X2nrD=RB`dHJ-owAtBNIXSu2)zyZEhRw}QZEfxD zo}S#?+@YZ%adGkb`ue!IxY5y3V`JlhfPjgKiLS1$t?exX1B2q?;_FKJf zYIip`DJdy993CDXzOufzw!Rh;65{CS7!?&27#KLWFqe>!ke{C)n!2uRJt|>1{N+#m z&fdY))KpehR%mFbs;cUKpl(q7d_{S=XGQVPpFal&2Pyn|okHe)yuFJCdObZoot>S7 z>gW6V`U(pRN2hkGM+SdnuC8tGW|r;v#jfZ%kN5WWmX?+_bQ~t;Z{}C8ctkGS6lQmH zbU2sh3rBx*%>VMUZE0p^MmT1;tiOz3W9VRVpt7>EtgOs5H+}z?-|Xsc<;Z$U!P3IQ zLfh2D@bGYde}8Ug&VEI*Z;4My!^TVH0s5f+)Q&&-GP?>2XL3kKF~i>61HM&nzXW#S{lYs236H`0M24w5LqiHGG2XIXc+h%9J?bhzKXVq-u#8}%z z+n&qY*`fyBFy1=*)7b8|OZiNEe0)anY&5doG;cDlDK_p;Q+!%|eDlwrO>qIg{0W7t zvH(E*@U5hnip%uwbg6YK90#uS#8<6`#V(8Sm6(ukj?5aWkpDN8fb;>!Z4A3-n5CA- zjdUXWGER@X=zr5phVhMWjj00gU|BEcmEo`q5xgxy#HZynJXky(9)%!6B|zg61wxGb zBn1JN&j7%x?SCjxnBM|EWhhW)*~iYPbIYC-4r`utQz-Prghl9mx~poJ0DN|hcIw&K z!5Ai_+7}L1e;+M&jXF=xuME*JGB&2(O_0elC>y1yFoL<*M{sRCuZEw5a#1Se7q!Ov-G8sk%!$;ZI8DGWD-R*ty?(;UOGob+ZalBR)S``PzU?6qCw>~w%!Z9IrxUl}hfq*-eE*4b^9soY4 zMlDuW#bAs~QtTr9Kr0Z+NC@LiW3e6Ft8{fw9`Lzkl>q)94sNe}y2FA+iwukx0$iHd zk5gIf4cC;0!8LdIdfiYX6wSamKgJyIy00C>ydQJn@Nq^9DxUZolHD6BpsiDKMel!^ z!K#8$OjnRwYZdg1W5xKsC9NFtAFBEMLhl>tQvVuO(%0`bP$9gq?@1S$tBhu;;jes9 z{*zY7MjoCA+D6@10LH+)WY(N58sI}NL+f=QmsyMkhy~{e*qaWVb^37{Rw9MuWmz1v*D;?D@veMXkvHA!iNrM`|AC zwE`$%2(t)%Pn#85I!**2-i`}}*Vs%JLdgG_S;PBrpHqnn6ll$71Tqc)tK&g03E+!8 zAh13dLx&%}_?WaW&@ntPVRmbP4+jXPhzfSdh(N|bP@4X?MnSqan$}OhfjPZelV)XY z%$eA+o`1C=2ojh3)YTEQEGjAad%wP$9^;+5(^>~Ql=heHVr#s@t5EhflO#bZ_a=Qv zpn`z``_dsQxLyMRjPxAD>hbF`!+~JoP+lzsQW6-V;u^n5-ncKBg$RZSNa~41IU?*sU-Gfz8EjNjQ?Y9+jk%+AU_Dw?4|go^vVT9(qL$KI0has* z$cyOD>VvSOA;ic`-{|%}9D7JV&-uO%KwooQ?-#`;Mm9;;=8OiJ0uQ z@Ys5%%A025IM`=Pn#RGd+uYBZJt%?UYR`!|(5!(7gy`!i9W}Vi8-gA|jXgG42%l8n zM_-%8I`e$yNaX#wHp>cs`}sbqvY5m`@Ws9AKf33%PQ2mxjei4ETW;6Bh-2j8NoQ&x zQlxyfi+Mw2bD-EIN2oQ7O&SO)L7T>MK1u<9NezTI(;qO3<)O$xvNRD46(iHxW0(6E z@Ene0#fku<^!-m6rh!_AqZMh#Jjb8Iv7j;vv4hLg-JUtvsF%^6_5UU%pI2+&tn6UK zclNIZA72OgpF$F*Nw(scEkoHYcm7yMkf5Z?I=iA&H%Xibc+$L*VA7byktk|By7l&_ z=`u=-TRNl_NC!X%A|bnadyUu7>3#)}G6G?n^Hjau(1DQbpXu39z$4L(h+F{HVw^`f9%zbr`}Sb`+3qSK@6@JCo!8N+M->pRem3i#2TE{x7T4V4%6y!? z7Hzp2EI+aStxdY7lPS-E{mhY*NAUB0ZhcuN&BLc3+Zv$-hH_jLkQ~R78A+E z8TN+GaJARz-_M}ze7D_CaPBYc6WO0(t>YkbS=khCcH}R8?|}ldM&M3IG>^m}R_JzN z%2N7v0;k_2uK!n3WLKdDeM)dosvE17G>haeM6Y9v7Qh~zV~~7xPOGk!oseT8${ah%Ul=p8#bvP9Hk|6@!gjkE7X=k+CRxP z!usu*Rm=YG2+dBDuOHqDj<&B_^9c#@;|ix+J0-@*aKkBJhanG4fCYjZzG(I!4~#qx zk%RY%KqhDe@Ims_LvpH8MLtjEhJ6z!J}bX?U3}fDXFExW=brDVg~C5z!0Adoldv;} z?UY`80=vnvDDyBhbdAdPkGPomjH)${R-RE@r&-3WTgRXuf1?+N`_26z;6>oU{+S*P zZi#ofh}O@BFq=XioAMbRHJ|fhH7~CU>#J+ihkH*a?O=G{W_Q2D&ROlrfUa6{roKg? zXL0ss=$iD+LbG9EazmKa*!1f7^z7Fu{hfO+tBc|xt*#sE`pWRy+V(4Y8yEFg** z1?gfwvor&(pBX4X`HOV-VI-N$vDZ!inGnMqk;u}@D8xC;L(V3{$*ai?00FM*R4%q zUn*^gmBE+K?bPGR-k7=D-g(EhJg3zFtDFP$pmR6_7|m$xJa`)G$aTBfb}7Q~I{9^V zi^=q$Yq8p3_B&6i@LLINNFhc2942G$j~gJPHfA3^5;rwF1K{@ZWsvV?h!1&_g?49Cs40``b2Bli5iIL~$`Oh|Y+sQwQor)xkHrQL zwRV1HI%wc6qyPgh6N_gP++d%A#z%|GX(0hh0}Uua7yuB3fl4bO0`AU@d~QT}&w;Wy zRgMCKLw@jiTmlV8bsi4M0E#){H~^mp;oLj@0t`(9^-zkq0PL}qr2i`NdR)pb=9^ya zvVt&%fHhoN5umvF`VxUJ22i9Smuhj*%)`<60U6?d6`*zv7_571Tme^5>F6anzwFpv}c$psAk2T$tLe;HXkrAz@( zrZYeaPi78LU_&&xb_rbp__TfA>ZF$&F{1W$rGX8cUsiI2Z_vc@%w#LGdAA7yxnNTB9xqb2Q#9X`-QAx-CsfBXGbd zf%0q^0x7&0HVxFl-wMe5W8Pn|CU*s1Wpc%f643;roxgc@Y9Fh%ytF=D7|)&XYf1)Z zPmx8`tp9i>D$H}mMTbf)pk3#K;(a_+9v?wf;pcQNGOdYV#nF6@BRg#-zUsjhPs$W6 z?#FO_5r}D1QY9Dj&-R~HCefg4ZqfN=R;eSU@`-U*w2N0(POSMLx}JCmfQdLdk&<*Bc(>@|ZD z5}WsYN!NKU`)@p1U>SAK*1S==;;O%RAskGlwWe6Szp1i9P#hPd zbkV^NZKn$v4}AZQS5u>QHSD&ZDzac(G4PhADn0)i@uQGqF2RF5af2=kH}al z$2^*1=fyV19|;6Zl-7@OkjoBd{dIWDr7S3cAMI7jIcbI{b+nl|CO*iQ?Fsi3yOOPr-bF@wU~3i ze~keJxZ&8XiNprn%H$asU=#p%=+EItRG9(Q4t^g11cy{`HW-4ORHV`Wm315jJj#9u z&_iK>If5sEmks$Ms|W@MhJZpGTP?)V7YYdkkOtBspRWMA=cxY!!PQ_7($oJ}Fik$c z^?>37w15z3E?v0Le^JK|AK_;F&@M@JupdJ11Oz}ZG#}VE6v5I5iehj$E{46K9_k6> z&MI!+&{&nrA{e`5iR57$Sg&${cY=3o+7;&`2#GvrHKN>PQzM1< zN}X&EGxrH$x4ET0onuvcG8WbiIQviN&8!hR$IBxY`bZfi*ok);c5X_9iyKCh@NKrB z$=@ZZ+4mPT2bR4f#^aZGiO;a#lNk6eNhL9{NoU1ZVz7J;Oyk$TE#jiWuT~&QV@0C0 zhSX4N8mriybCDVh@^bV1pWJV(+Xm`(0qs zv>6LzcH?ynR)xfxKU5d42uXIlHq;e`)ujImIT!oc$06P~i#~+JUYBIi3(N%}tZ+>P zW&o+uH}0_AQ>BxRc~S$<8Ufmp@ADgqgNzsHz=MIV38)7w$Jr3XB6HA1Xs3@ze#wyh z^4lvv)6)#J!zlD;1>gP~Wx94(4WWPFkT_Tb0;n_SpS(9w=E?M#=@0gNgH{G@``| z|3N)LlaL9fXz*?PKGu+G%PGd}VNdL;3zOAbnvzLln#orp&t?PSm8VE=AIcogYb+sR z08MFq0o0FKjzJ(n-CrXnAWU(ZZf z)qKZ1M*1kQtWfjATW;u?Qg|tpCTp9CQgUAFHh+A-;9oeX7k}ejI^isdWwo$lOOoc7 zB+MaA@p``VEi~vbc~+8oXl8DzA4jlx^TH~>lEew^*zQ^p;pdY)lrTMkGvhgdt$pzk z#MS5wu^o9Z^D*@efGTDedbV9Qy+M55vhMQPk)Q=(6;@K<`MY@JZsnR9U>BY(nwHL7 z`HzSAFg7jwXHkfF&5~s=XdrCFEA?2@zk~bK@`Zn;f|4SGevPiObOs2Ts`cU67k9F0 z?Hrlde95ArI=T9Zx>*HyD~x4y;`+PY41m87HVfawvS*2W-!Q-Z7Nm5d9E3|DR72>7 z_w)2Qu%We69b5*3XK5gcuoso~*VEm?K$Kp3*R9&RTXvuz!|;5@H%gy@{;VLSvE|z6l;;;&Jt5n+MgE z%=T-I=Rea9>ji(&N6<2~3yS?ryi@_eKcsxs843a6Pnf?E3G$e_%wD?R;6frZVJgob zA7OA3*hw7D5l&kU_;ki}C=%t#2W;xdv*#=+b`m7&|H>VtNZ!E|=80WjAaf@J?B+?} zyU}DehXiI(cBoxo6A)LjOs_IL!S}}ye4^U*p6$weve1|U0LV~$?{z1{r(m@okf$vW zA~+~B0sWGfM-OO$ureXQGJXH>Q1IUas8AuKJeV1=Dg*}+!4Cn{_m3(`4F4+?s(Pp5 z5l*5G!v>~Kn&a$x>RB`lLiaCZKvHEo*_1uKctkk zdZY7^ue<(yL7YFij2lQeNV=#+T3L;4SLnFs2D<;q-o$I@^$vKLtTj%q^5F|xDLU{_ z8^ENCZ;*aX@E&z^wBUyfHTmx<99@m4j$M=`rrYzuY_<^-OKe;pZDqdt{{+uUi99r? z;^nYzek~~W!UZ*S6jtI7&yX5KlC7n@{f1nCcwF&N#CadlEH)T72=OP&f`jJnN~*rk zOYX2Bq=i4bBqRYmr^l*5eKt#4{a+}&p<}ZzrFo~g#YFnb0K-6nLm!osw+9kU2;bd3 z2o+Wzb|*1Vw)G$R+JBp-vdB$#qk)a3*g44D9K@gMHn*j?E z^q^!

m59Auh)oc_?^twD&~Je6-!{X4So)#6S{AbaMp<)zy?JdX)nZOPQg#X9#n& ze{%^Mg8EP5v>Aa29#_5e-#ip&{U0j|8lt93EdeIL{|O@Z$=OC?qY8Aj{*aLXaH_q6w?da12P&^-JW%`mg z?3XslqV#`RR6Z(W{g<+u20|P3nqjk76gw>}=`RY@T^Dij+c^!teD^(VjZnzVxY2N3 zqTK#+3ruADB0MRzTvMy@+%CJ^e)nJ}E~CP2Z;7=xviP8P%W_OlA*WYS-<>8UahHJ( zF}VV!O3+Jp7uea-Ti;iq4Jd5StTdM=IZC6&U%p3P@xS=HU3ue>G!R?bT&zDZ@-Go< ztiN#acdVk(Qc?ZHFg;0>SD;>j1_O3p4TQ{+RW6;%VclcT_VuP#Rj<#r)p*QM=)7hhRM3Gm{b4uLye*Q}ZVy zN<^QyiB*_0#k1Pcu(Gd#WpNfF_5Il&zD0FC_AnY7JaRsAT4RUuW+($ zAn2^AU_WQXm`%_`=LsG(%buGelq+&-kgW-GSy7@vB*oS@jXP{LE}RwaO|g7-gaREy zf*BAfP|JVI=vS?Ot7JOKzeO;&{eP@ziT7spatxPb@%tOxqiYv%&@tcCk9fmSRG0RQ z02faokfa5UTbZjv1Bc*q?4kc=2}RGBy|j87u8E*|-L|uW3F~>;@Sm1&85?$ zeav{0&Zp=dLS0;u(Iad~4pCiaQ?B^i^F%Z6`IVJsJ(oAYQR-Zb;0ee@)ud1do3o@J zBj%hR2V8Ck0!iA~nsom3E3lP5uGj?63hFp6*>Q+xCF2jMQS(tk;j0xd>N~!#HEwl> z7-0{kKN?zh6N7_10*=QE%&Na{b)P(aoOWN}k2YnQVaIXT&&XMh3P7Fe+k1hcLhz}M?eY3 zosn%(0WNhOucbX@4DmCIS6|vkL_N#~72Hg|EpvWvPS&1_niygWhzJV(M)%u>IF!eV zyJskS#0ZP-B}2eZf?zU1U&*IN{>lER*q<0k#J}Pjv=4OfLTTY=)+g^W?}x`+z0B;Z zobC4=28B0@aY{R7%XcrXtHJ9;+)=UP9)xJcw>7a0pYDc4Z)1Yz6khC|2TMZa3K9J) zoaV2q8BDMqbU(Za*X83|ypG#rC&ba?zYg?CGad5<)e$)GzeGED{2KNDp&6vT8&BdF zlDFS)@VdJ$_m%ru`{_tV$|AYWYw+0q+lfK#uL}9Q>|8Qiw_+h7uk#FWg~FXpDB?XY zNnQ3xCYfS!XrXHkwEf$S3KNU?ejmw1W0to?-g#@3W4%E%8+u2y*l#cC1m=S-;2Ydzn5%zJtowqJb^ zyj@&4TWnB`g`wh@E}vk;@!`(%nv;i+2>DhwxxMN6`qJwr&(chjAYrkWzu8~B>t<|s z6{%ZaI(2Z@e?BDL427B-CA1q?&gEUZ3-NFxEPKs9@Sh5I&r}or`swEHHO2?>P}y0y zN;0x8~-H#FalSf`h zA!MG-vRTV+{O;T#eky{H*S-G*dplD$icYi~^*6GIc3UkdN-%#kW<^!#2MAnJ2`#h0UjhSc!i6rXb_ONMmwDk=2vEfXd zE;w9Zp0`ou``s>vyzLgHu%mBeQs4c95ipE|s8UQm31Ttb+%bOM4(12b=i#ufJd zB%zc{8fAfu2g&K(*CsU?RxVNd3QG6stk^w@4P8;^>1LoW)pn`y0VX+vMNav@^Dsoc zg*u28WZ3SwYJ*58xRNV-Hh zhZ3o#q}DqK)o4hQ!Ca(|4@0nT|EpKat{96R7it(T&Y$k1otzi%$FGOQhWvbjgRr45 zNx8|{I#&Y%jrp+_Az{084spC)xpkw$(GfZ*CA!b7s$Z;PvF_qO15I2Q8paGe22Iv~ zsg_lncPlwG{hS#{7XqMh9$G(tTK|?jXO#|7^H3%s-A_Jwd6j<9k>=gn_G&t`;6ZnHPWuy)DplvvopAiEG1Kc7p6tYKt?&LO^`{Ej@3hC~ zS=)aoXOiSc5`BV}22ENLa$3C48wV^()1NRDGAJ9@JVS7ZAR%9$eP@C{&1I0p3?6m~ z7I7JPypWZg9M3f~lJ)T+HE=&gSQe&v+#kX%trADkSJe-fO1I4xwxg{fi3d_1p}B$?x}3M> za`(O#Gu1DbnT@W$Nb2w~Wq2FfbQ8FYH@vW$4ku%)r?#0cfBiE6yz-n4h91!mcKO8? zSP{hx5qD_6-jw7Q#+7(6jHe;=W{rY%n^dy_fzHOE?k8yd67|GjXlehfFG!yA_Q-2J zPibbgqLG`!2=~`O1GnuQXrr5iMGG^$Le~er$SpVV49wfHxO*Oobm74Xg!qh-MEny$ zL)VKO0T>Aqmq-izR@Ii5s1Tt>_sc>|l6^QI8^=rLb;Z*K75IxogerR8lcEX|ED==G zjrkAp8Fq%YIuAESC4YIgwr^7QID~PW&jAruX%2qH_1DV7#)oYWZ{d76(Ys4Ev_kjJ;& zaeQ9tj}I`vbCTKIj^uBGC{6SW&7@BL20N(N(=WGk{)dFJI5q{DQXnZhV9)lW#Le2 z-ti$cI!+tzORLN)6=TRk1?RzD?6<)x3`Z-e4blr3mBCZ%0?43vJV z>89C{{LZc((!4D*-Kia%1ilo?{sS^82j(~DPQP#?vQ$)XEv{bRty6+-S!F^1^Vb!x z=|vE0QrSJV)JQ5Uwj>)MW(p^5nFd~v)?SlC$UEw0TZf1Km5$-JRBv7^QwLaxWz5&(X(3LYalvZz;h#+@BRMniU~vu}@s zgQN2qYcU?wN-+VbK?^UO&`JoECOUDj4b9}*FBBde1H0H-zVR7q5Inz?m9M=VI1anz!fypmK6s#aOc)|E(7WUZ&*qvoUvn3IH)zxjjN ziph}wGdKGiq-!0;C5rYt%o3aBb;R#w1^wb*0>QF}&30pd?EC{8zN-StGAB@gc zvZd_vfgOCUxNbg#k;Y#!Oe$IEj0IcczQzQd^x39 zUi5n@$E@1AK27cMnvx#hect6&UYO(M1JmkFZXPq?qxj$Xp1ZoT(~@cLA@RB%D!KUMG4V%-=D*MC^f<1RA`tn5=-99<|3P_+6q( z+l&-h5l|X=9E15-rZim>PG>R37{_mY1!Ht;%D$B)+Vqsp`?)S$lc?#k;cE6H7>lXM zDpo_X;EG@GB*;IFuFYPZvK&%1E)gNsFtSvzw^WbJaTgUtoqBNGrckaJuK=1`8qbrj zujYBg#^tGz?LWd@&LpXSd8-ETKY^ARzJ7wcIArnnZ1TxL&0fF6;o)-^3|Qg%4xrg% zC@}vTA|sa0Mu+HG2M>#;4SzjQWl)fe07e=K|*Lc zFYzK8xgZ)$kjnxGfL9`y^Up;Y8^RW(KVSq@L$2?z4baD6rHC@`V35!f3Gy%K?~n?J z%8zs(#0vX8t0gY}gb(q_(t!=p;*s7#gIqV07%l9HD*c&T+Jj@j%={!TFv1w{?jpE0 zq)6(EDgf!wcW#)`BMj+1D1(lbso_)&wxCa$#Rid27cR?C!@V>p=-rE_qyBo1(m=h#S1hbG8PhOOLjvO$&46>jiT}XY zJWFXQ9*r|@v;4sx@T(Y~ZYCh8+75cfezQh`EY)SImM~BqB0Ri*J_#|mr2jSdxX+Ca zGpDQx8N3^ZtZ*0UIaH$Nu;it(()5@af5#nDL->9&-r}^Du+Fbuy`Ucl@bXto4ssTv z@eQ6S?L6=zesMNp-eIebJtKO*Z+W{z1s8M&#wL7hFU=}2jiMgRSRM}w?ThldRt=RO z0o-vQ_Pwb+uduqIO9~c`bI>k^{*M)xL@eQlzVfpSscC*l8kTT=g=c`Ss#cE%%~>rUP7KtmMt^^BaPXjoR?_^C>j01v zjww3s?LkzS$i`%e~qhBv0HW9M;1jkUF!sPBam4q^g_ zoFfZ9+S8|9F%Yrq>xG`psigV@5Y*x(wSY`MBwB&KCqw$!Y`DP8jA%p9Ov!{9o)WI9 z@Xj&9Na3vlj5Lbhsp@9D2wXZAC;Y_$IWg4%5~N`KOHl#TlHefU>mQ)qL^Cow%tdnk zsSOe&Z}6WQ-kUv~qWYw9EBv2*Ti$Ia!8i<7p!VIaTn0Ls5v|8F;T|$d3|}Xe$i`XB z{Qw9C=i(NDDm-S4b>kd>i|+0W8_=h83hIm4!gCjEeSDi#0mPJjwQ@~pJSubvNbc8(vJw;Bfasi~YFwhElB$(wAj}@C;{*OECOXe{7Cf+N?3xh7e5lDpuK-1zWL-8 z;^i<<73nut@?k;*KMaR{x#y}S%Eikc&R{!BTfhA=} z_h62xw*kfSa%2r+rgFdQ+(_C&h?Yk6_NOGC(sLoD7D{~#iSw@;f;wC4{ikMf+9U&o z9gUAm*5)UQJ~@<(Z}DbI%fL$ZO)rPukiD9U64f_Ee#HNo*X$I?Br@) z8lX)YMSD+D!i-PDK#HW6cPb=1pjU%?|)6(A$JFRzpya8z7T}eIs5oN^+#i~Tv)Yq38m2$J# zR=FMe3bVW`wh}jAcJfbXNt?o^;7fD`l4|SisWgKXrHlY6-EC_*zFs9eV0!gz)Wu4GOoT_ zcC!lEJR+I$_zp;0v4&oOa9)N|c?EzfxNm@38lMPUgE4m5iFG^!SdYDjWV=#WOQ~hT zFE3`gs3qIdGveCaS-{4Z?U2a0gbb8~T@FSRN3Pt@0!&7+qmM=rkz5{f{j21BtKpH6 zJx84WI6pv9cb6zc|JuC=X0+M%q=9@(Tt~UF1a?q+H$%2DLgJ_FGysBE-pZ|no%eN@VG`;_O z)T&#b_CsxpHgT`$_ptwZymHxMgU^n1{ z@Q;zVGK3~XJVp@eFA6Xy(ReAY;5#Zjmr@VW@ncQ!D6Gs6{&l6 z3hi^UWyB+}ZaxuIDRx0#1g!`n*&W*)5~fNfbDnU~3Mf=WL)_CGBjzYLsSIcF7sJg# z)Lp#!&hT(5#0_Ki4WRc!ur=SKwJ#Nv7~sa0gZfI)?YQ6eK95>~dOVNPy(Ic~8NDun z4h=Xx>pe!df=PS44cNn2?xI8xQ1REq-rDeUT{pP6oc1I5`)V-~t5de}FcHN>oFvCA zCr)Om3a6*MBip!u_KeDYcYM!lsAi=2-5z&@NE5G@uo7ACcyfN89|xLk zaN9ZEa(||Z7Yc}w4t^D-<4YOKbaOwyA8wCQ)u8C2dlOx;D--?6_mHq#GL0uP$ok45 z;%QtmB@&+&*@C5nT3QqGO}$q{gK08)5mwgIIgOBb>X$x3v?76=7sFK!az!(IM*plo zq}Q=hRi#jSXu@N#ZO!LxtXG3>9#QFb<R^ zbcQ4uvd@-v6O)pJSc=Q2MvhMzs6K$c_X6jdpi{@HP)^VsnLE7@##~pzH zT%7)OU+&Kzg19_EvKdQZbe3zeM3QXiqeU1W)Z6IYFmpqGr+>#uAHz-S#a$Et=k`jP z2VEKpi1ARpdlf{ra4yAHN9x-g_Q@K--X^2*bd2#h8xZ-keRmT*L?T;8f_UrDu*mIm z4x|VYXB(iF2#Mh#IUAVBKcnAL#GW+U#2tgpi!hd4)M{*IMSqSPSirnn1TmCz160I% zYMEw%y7@Oiy6b#CM~M_zgO`hIq)U#CpMBqw50FiINqb(NL&K!cBwfanN69!fkMq23 zI4#12fw_GFibUOvefOCaqLIvt7Ls3bG?tJM(Mf}3FUzrcka6chyew1pW0xFg$+RX- z`E#oBeHWx+D;l`yp(gtmzwd*AhHoZ*7*ifqW(jQ+hdkHp^t<$Iu(oz&uMGr}Yu!8Q z*67!gN1bx94)@Mp3n_#m8__+D}OBU4cDkrkmr*$U9@v=<^tzjW*Ixmboh#o1~V ze|ty(8-_LX;qt{h*>v)H6UO$`JhptaC8#ALeV24VphFeXf(vtQDB*6y!4(DEx)%L8 z&-tQT&WCu>nt8yi^2-7rrk+n;>PzGjLuj*q{!jsJrHYZ&i_cTmIsnJ0n>?XNxQg1? zn2PR!W_YV!qWWH6LRB*Ojtfm>-fJqOb^=$?hR)`}ml?coQrDj(tnED+ z6wo=uiZ3hy?+#TX;Za+6a$~JS#EnUz8pc(KGG{Zp~Q_{cnxXkbm zjziqc7h|9;;{rJjQM8h}nnPwpmLLm4VG_(IH;)*yMX_VaQeCk%kl6 z1E%-{8ugDKL{FR|Xr-5V(Q65d^S}lP#ZE{$VDElqL(q9<{A8eK`9h6zqY6h$uaNwF z?V#4Ka7Cz}xAWH11)DFKTE7v;G|A++(9GY;GA+CEk}N==!^7@(q^32e)T{(_q7FQ{ z6{8STzl?eCb+Q7jr#IZy|J8D9DdNqAtM=xkO6~_C;&1Jc{*`9?f~&U2jP}r5D(2vI z2VPZ%%4ISqi#yPFmnzFNZFAFq;2iDj+IQQ;Lg&;hylt1M6qBIQX8C;o?$gl|y^rCF z2L(t>ZJ<((Yb?@$^_NqE*fGIZK6>;t7l#MxQ)e|$YW_jJhD{HkwJ)wt2e}+C$721V zk!^SxAcWRQVG)dCuHOGf;*WrwG^fJqbwM;J7va`Ax_fWheWJzj7+X;(DDLGbLkAxN}ij`M2USMJZ|ih zMP*9eTDf}LHP}sZ_DM(ER|0b%MW6uq)#PVl>+H%!KU-;c8jcAIg^mT$4lmnZ}PNAxxWLkMu73GVweJGgQB}c-|AUsPejJ8 zds!=vK`i+X8j_)q>ch+SyD8OIE(v6fKSvK~c7G>e1Bcb=Y1WOm^g!=g{E4&v9kA9t zcY;6IbK&*S!iRFTv~*Rk-|_`f@P+#YYvI5^Q4vyw#Pk!ojtxM4i2$*lv)mC{r_Mlr z9%1-sRgzKtC?0zc>a#o{It)?gJHH}c+Uci)|6MenShNF1YL6a|KX43JJe(gATS2CXY0NI$pjyBkxIppK zzV9>q`~0!+y$6VAWfEo#+<{`3iAz>WWb3i?$*LdLnpuj&qjuf14KqDY^a;`3xl-F{ zI8o3 zGvj>=-0gZ3lXpuJz=@N?8lo{^$mR$X)N>-_H1^3GMv4Tp?v3jt^J_9Z7Pt0`4x8C` zqL>EW4i+x#4yRKI=h8@0GM0E~;wobxEKUcioVf8%A(THgP%^n~uX8D}M z>rD+$@|j(f#)&j>jmyFZ~0&qNi%tb%OzjG#gBK}*bwI3^r&wSI0l7KGKL z9Ba~6_GR}YGhsMqgS_~sO^gdThMxLDkrysD0dMNV({wMF323EyfZRED(?cq=n%}XABmZ*7H(`< zuNz>z8u5T$acr~~U$BAeM(-bBTz#OeSo!z%0)I4i4puY3&-3W2*+5K+e(IClvp zZQmMv5{7)IA72&Af4%xq4A8ZKI<~rL3SL#p827-o4+IjF*AR(K6o z&Tro%ft4kT0i*Ld%#DG0OP()}RCnq{&|-mI`ui1fm7qw3sT(z^)k$TVD-XitRrv(- z^rs_)(GH^yNCe|Ku?R6nV9t*y(_H$r4p8z(S>_C#3!t~D8P0|p8 zI332;M3ZwB{`Zdb<@}!5-Elo4yz@%Iw^fBH+-#yvlI9 zNb%kTg;yKG3K`aFG?*^>rE9$X@u{t*#k$53e4qEYtz31s=KD9^oqzf4&Fuz@ zbWdJ7{NilN&NDzO)el{FzPj^417G@)O+E#T93N6vsJ4eS@tv4CRjqNIwX`6EjcD7e zuvH}yeaX{~WL#0kG6|1gsA2xwgNlqmH4O{?udhvHf~po{EIWRr`Sy%U9UuWuS3j3^ HP6`2a0{{eA6+DIv2P(Zi*4FR?24@ym58t339v;rj%v@hz56=&^x3?c1 z9VPc>=jG*TrfBRQ-mR>xbaZrdcX$7&KbV-kI6pt%-rlZi>6(OHbC;r`qVn?c8yg!f zEiK2#$M4_2S5s5__U+s1>S{(tMqA&>;lY8WrRCVz*zn4Ac6K&&{Ji$($^87hot@pg zckkZ5ee34t*5BVhK64Qg5~8oKUteE8GBUEYcM}{Gq@|^Gc6Qd=+bbz4>ErEPQBmRH z;i03WGdMVyl#~<`6SKIu7@oT5qDnVp@LG#Yp7YFXbr^sTMfKRlkEo=#3qj*N_~ zt*I#~DcRcJ4R2jmclb>bG*nhr7L&78+PLxO&!6AFf0vI8T3cH;{ycUKUuu{bJqk5E zs!40@**5g}Bl2zHD9itNcFduyK=f(GMjP@igTXJdJJS@FYUaC5C|u}e8SWcDcPL-)|>`-17#$=2wO zW`&fvLp9ui$@7J+1Mj*8&&YYlin;FtzmD6BW16FbtAdUKb#@MJk4K=1ZQl-kln?Fr z+y3kv|Ef1LGdpyXOzT-yNc%mxGFd)Yc2pE~^vz{;>!!5naCY%vY-PV;a_d{yYTan9 zT4v($+QR(i{IA)$#>PhP@=wDnOYPlr)#ID-xy#3ke{`Iu`sQ~_hWaC08*=;BkGIxh z+mYhq`hEThyaQaZ`X?+2s6}EJG~=b| zl*cmP&rxrWX%H-y{^wV0&sfZ9Ox3XvB;l8*0w^Fdgx`Dzs16SlgqYv)TO9yuyJoAn z=o-J}Ji*}CQD9^Zd^B6^?3W<;ffwT0EU@AW`F5`Y5b$8SZ|iWV4g_47?zgZ~fRW7! z^*ijH@x`fHW(42srH%fj2rV5`I(~qNe;P4{RGV&YUzwwT^9h+7uG|R4sf7Lt`?k;X zjt~UT6h>YHfbo&3R1yKO1qzk_!D5xoyb2y<)hQ^)dx0*Z5Wba8ih^37;A;PTTS|GSWy)KJ!Zkn8+TO@;c)# zVp*ddyr2i+EJ|dm*gC7*v$LdYn4b1hfEda@1U85`qYoz9e-8m8&a0hWhxQ6hW(4;N&O?JBvyrVO*$Pvd{&~TtUrOtMs7) zf+~GYJL^^?H<~$zy?%+Go%!uJP$kWACtP&jFZjxrpvQ-3u+`g?Hl$_oMQ^yY;}yC|^UDbi3Q7=Uq+@qWZf@ zz{%lO_q;w=e>O}oKtn-*~-&Sbr(MjZmZLl^e4+;TNUG!dN%!dn6s!gQ)3!PIfRm;}TtD zyqMyvHEEbFEG-Y&WBn!6{J5iJxkGPLj#B)#)30rv#TIoJM%I=*JSav4b_-|?T0h)* z#CWWL^3y3UH!sNoy*~r;LLwUzi!tn5M8^c!;s9e|Xlv%=`5_IZq}<(W(!y)@jKWym zylW{gL!V7QpFYU2T+d9i6m`i(tkhOV2PL5Z1`cth(#C8jE&bLz}_V)4exuW|__Vsj1?6UBYOO2XKA) z8*SVAR27wT8woE5fsnTIv#td+_G7&1C%^P43!yr0*U{gCB`kl!*Xwi;bQm*|eCMU3 zGtPcX3$rh8-ro`%b~vTyZT;43`c@x;9?zrHiZ(_s z5?y-QXPcH|YMkvverT0Qs5Jbe!4?Wt=|P-5KKBzz++#UHrP=}WD6_y>=(iD!PXQ&< zy$+wj@*oqlwDe>9-5+EsU-8Exwo@XHvA{Ym>nWOg4gb#i=GnMcpMGCsRMz_44eh6) zp$kl~&S~2+p3r%Vjn4MQz)`92tnTZf;C1qbR(NE6*4d@`Ef;mkLeHlI(`CCXqaFTT z6TWWu_xqoOTKl(wI2$yX=Hq9F88#PPfu2DuaG&j5)da0yNQA?p9^TVN;Fx@af&PZ> z{m`rSS!33p~ zi0pY3oLtlX2vWOJpl8}Rub!Z^r-)T!xx?dY$AXdr%xNqcUa6*KTsf;54`o!qU zl?{a>R3sf*Sg$;TrY;0kkS#n%m0JQnGptJ#Ku?hL6Ujgdc#a0ZjB@{vqOhQ->@_}w z0iL5MbxuzS6ebCL9e4$Sm?5uR@a$5q5PD%-W&mABo?{m<)F7#6e?2kE@RLB~C^s|266PX$gS&MF1gm=h< z1Dhn}hSLtIIoBIXstDoLq;!L>T zX{gj~&~~Ww@z14|t}I%w75-t*A%3IEIJC!nIz0!J-HF6$n%OC^t+G`}gWGPrfEshl z_`dLV|3zZb<$O&Tw>TJT0EZj54PyBWKrlbE+BBu-J&(gzT3|&J!?=uP8NNWBB|I-g z7EGno)4~tYpX{h$jX;N!m#))|`$lpy*aQZ1ZfOE&M27fKj%bkGs7=%(a=Jnb2Si#U zLKP(jj;K?Oxb#~iHAfOR%e&|He3z8|{FE}n?#}LRs6(U9yzN3w*>bBc-_??0*&#ja zjSxHOVum0@jxs>~;3tl81wS1`dgNpgo+D|HpWE?IUxA^(&F*6@>2O;S_h$4}$@GHv zcHiMaTVwwzZTF+Dmmz#mW`pk&wzSUy{s*S&q*0Z~sGi_QSAwV7j+1SSQZnI(8|&+} z!+Vc~Q_<(W*H=rbnD&;(-NW`aTa}P&Sg3w_z?&K8;40;*><`#kpoJ4aM_^xdP^-lwm|$H2=)7xxZzwxV#iz1TT~qr zn!>c0sNEirn-F=!8J7D|W^k~K z=ByPxegcL(j+02tUD;&AZjV?fRztX>VPQ2(#27;-4}Hu{W5vTAGW4%P06oPL8Voc zKwGrRNd;;D!Fte1xT^|Z!INPquU2g)`~)g@)7^>sIF44uKU}cLL!BZ}czmwEq0DPS z)eVOv30qW7#2|POJaV=RJT?`?21h(Q5NP+iwmQ2uw$dAL{hDPYwCu)Lvex*egh}Z$ z6-xZe9Uo=oeQzv}R-U87+dvnU#O)+IzS8ATBQ&0S^bbPZhoz+dxM)yhVT?o{|2giip$lj%SQcwvtkD;f!F@^`(L+!JpJ$;((;3Jfy$;kz27U9^6DekOn4m%9car28oH@kq>0PE(`LdhMZ#= zJ4lHUujqZ*d47l|Ur!wS0PnN}8e(DWe0OE}tY8x9%W~G!NEeB`@&MNtI@UP8bPz5) z@5gX9#UBD>Dy$?DRBP?G>cce{awQJIhk@&8jfyB?O}PH`~r-SKZyUqG(wVZ%2weW!vo_h*#McGLtuP?Jzg%2fu zM!d>d?ldzNOBus5W%+445v%aQGi$rj|EfAEn6iaqqZP^J8wnPiIPlWtecP+$C`Pus zUo|vn5I}yT-Ykyq7rMD!Vrd=WVcmp#^WLIwypgs=OKCajz3zlk_2b-thsMwm+=9}A z^VNfiH-FP?QwrJelAMmvm-T3By=+&3EJGt!4C91?afj5Sav$aTvtpJKSzX@hm;E*h zYWlYXJy!0NO9ZEVv*)2-Ggh4}xrFZwvf5%|>xB?vm9_P5M#WaA2^pn6kbnEW?-}uf0w}}W z9v9%lG@h%y9IL(}fYJjK4}O;pLf>kZHeCS0!7ZTC8gL~I*7o&AU7-dh*4kpLPFbQm zJ%N=r!2e|)GO!yha)m99Dd`OuhiwCS^uP-MOa;6EQNapT<9~`G3;=`;DA)tYFvr=z zya_L^M*6o`{2YJ{fMS0mLSU?XUKkyCS@(Zx$jBgN+tcX*)RXWZ)z)*fw7Cv1B2HQV zQLEP%@7DMB>8-i3Fxp>h`kfCAJwDY{_4%%A|6|ww?sxg+8~ndxCq604H2)a#T zlZ68Yy?pbsUiT07ezk^_oAYQc)+0TK8t?R*mq@vjc9p@%XqxBZ>_?dQnZ*fA=C201 zcAeZO1dIZ%AMqPm@&yPBYdCDzeH`7_;gunkU)#p7LobvMc$*Z_ZbJuk-)h4bC+&ZRSAfh|QTKQ9OK=O`fbTy&;EzGM6=&c7M1(eA*82I`IRVd~ z^b-klo~et|j-P4VtZcg@#wuOz|48l!j&29en}g+HnDvn6S8M@Edkd?Aq{onr{Z$u* zVfo8=42EJs-@|xQU|AJ6|LJ6IJS zJCSDYU%8)Uf%}L(*joZ|AW#-2oJFR#A3hc)3_c3DBAgn=6^8(bQLwho7pt$ZxnDw% zNk9ke#c8h~00^A~)~>`Gr^gkCDT%`ao-xwkQwBg_A|6=VgfaIWJp?9<#tOc&~_VPNf{xd4|U;Zhk z*mrGl)--w%@E?;i!|$#eb3T&K{Hxum|J&Lp;{P;OGrYh)l>f~!7>{r}p&vEZB`=Bo z*ufO4-ZyJiLu@ab_l}F=)%r_fp)C87p}LscZUgU>;=e0DqvE{vzD!8Zl>)O+XIP^| zsWj-;wNO0)9@|}MandpLS=(@MQ~I}sZbbNCQ?XoVXx^uqqOaVR@t=g<#nNO`Y$?@W zZ_V}E*;04D40e!Qd<(3&2f%;8`LnO&z3 zJ+pmTfMdzkn+;{i;`oOxgN5OP8{MhmJx{H>nKZlCbdZ~#a`MtzoS)8QqwXFbaOqpZ zaiq;V)q|x^O*xgRYE>lB+Vb7@i%yf(DLavNz8k_d-76tb<~O=SCyi56HpI5>FF8s> zsSaXd!jG61XZ!;mC?VY%!3^ZGPkd1IGUY5Ixr^?GXZ(XdbF=V8y>iBSIat3U^(la% zGZmB1IP{(s;&7nWx5cu9em zayb8rRB(gQyFS1{HW+g0;QnT(a7+NCGGhnClF8JX{{!;lFknVa!vNy*!V=N{=A@T` zFuF+%NZbW){C|@&S`N<#YD@o4)>Y`|!*#s*AD?(y68-{=abcPtYJKP3x)%cMz~Vsu zqK%uq=%@owi30PLd+A;A6c}0vbC5L>+rT%ZhVp;({TAf?cp6?my)-IwZzAYx#V$LrgjKO^ zm#_S*H|c8b+$#l4WsePwBSEi`(88>i*gYOvjuag9vYbs}|LVuL`)aZMx`x8mn|!5p z;_~?A!hVdceMMW=Cv2Mu5Qy>lRT7O67UHMxAq6N5CNuX>A z&TRoM2tO@voPqGP;!S<|1uhhgRNM~*%+0%*^{PJcp9B$P4MSOyGz^fmxb&NUAh_!< zAV&>{05nv&bpN2W$zSaL^+5{2!5)wQ2iQ6O!n|1xH3T`#>faoY49f`FRkPUQ@Y1#a zri-_*Ag%L~uJaz#r&sf>8jMpG`>T)Z(HI=*mUn^?u2fFfIYiJy!{-d(RwP*%PFI~ukj~u$=Uqp<1~$s;rT^YFESNdy^za%M|uCpIQ{y>gHeYZ zQ%=N634pVnuX=yMwEbB2to9(jp~1msW)8-)iP5s>UAm?Q{Y=&}?`eANbwse?+XOJ# zPfOC;>0%190Ogd@5OA#=_0PDqVlW6G%>uC1=YWv)A zWJ<;`5oN`#Z2Azt=l3l07Y8)_eI}7P!|RL@yVfqs<^54u-_<-}s{z7odYSgbyDoc& zF>S6X+Z@xjqIOKm;`Uq#dm3s8|7?8N!QJ&J&H2#k$3Klxluq5s2b6@-}LN!fxtP835_G5l$zN;k3@zAE+-s5-H+W3j_SkU>LW zCM89{Ar;bRmN>1zW+8hmdw_Q)lQ&wJa-}^a+{*p6ld`sreNlB$5z4M3xVLdh-ZEa& z@m7$nrsf36VpjEL+k*G^Vb^I#xxdl01^W|~JKhsg6WaaL1Zf*mN8q$P@c-))q~-H_ z8dB`>x<1<++(zYE{}nf@j`!Vhd~CK;_lr8QMr>Kq{1(%%m9cR;FPR99c z1^1WJle>%G>cM?{k20>&G#BZV&P>GW$rgs+i5d#(>@|Yc-WA5jo?|t$(o(5Zt*CwM z3X>yb5QWmd#UXz(~{A~Y~ zw9kvLsK(d`@4h2k;e1>QZJ1Oy0i}1ix;_okZJnex`Gn^$z=*=@;?g;nWA%a7>!Cl>qVel1{~r}dpPy#SLsv%$b_r~~Q>s-t>iF&|o3ZPy^3 z{h3{;&v29Ha~?$~k`t5^Z@aBc7N;5^hEZGyqRrc`>#I#|L!o}`Nmn9n`-1WXcF}4< zEq_yfb0{8-C?qB0DW9tCQSJq$W|)*xfz@igs*Ke$e9DbDD5TAzCoJP&lwl|tO&1jR z$19_@zvc3rWVaYN`Y2LCv|hijk7t(Rq2P6_5yS&w#r6K}-1Kw)z~WsCu@=;>(;GhM z(_!jaKSblidEakTl+#AbXt0TmDexur!OOT|y(G=V`oLMY98RCmS3sfPO=^e+AYxcPKR z@PQWcN9azB>HxzmSsOj1*c@9p(CZZ%$FjL01o@UMoY#ZeG^A9D(c}-R04RG98yua- zu!jL|q?GBEPdPBU6v@ZSq;a+kcg0r6O9dTm@MXffzLs_yB=mPI5cw? z6q1Zy4Ti7fpKIVy#N^aP^5MZc5Xh%tTGBWfBihwAR&SOVvqP!MO1e2|Ly8> zAWs9(y8&z-0utGK_GDg}3HSqKAHJXG|1+@iiBr|YebU0`G|o#9)f*RI>Z3%86~BrV z(^C_tm=RNogG(Ghu}=|C{DKnYCGPM*N$7n|`Qnni*V(|(|L4l%=#E-1MvK>5lh6gP z?UWtt2j{pi@mn$9>=U`kt5^%lzNgJ#@m6M+y|Wfz(jxk>!em-XkU)AEBM~{^f6&W8 zMta{S#6uu}&0qpc)ri)CYV&Vh zL@;S3c)$1|2dgA45w}hLxZyuR<`KYYWyOA-#HgmVT;E94*!)uSi)Y8+%XgJ)Em)u1 zrTb>u;%54@I31tukVzzd=EF(I{Wd53Tz#f!ta~l6ttmufM{LHyooFI8^M1QOh#(fO zj{wBNXniWb3yi1RaXnbu5?y$3PL=}p+g0X zy&$d!hrRDoAHJS?yUL8&A`AF`=&2W7@BeV-7$j3~T{!85Z-RxG4u{L({(D#0i*n$7 zA<;W(XMTts4ir_J*egIDnD2iNRwyx~;|a#l2+ckekkFN`*k*8-$FFT-C=K9U$8q)A z;dncn+JDZ%gQR4jC<3ou6}9iDjgCq5Hg$(`*<;H-nGJ0zBu$wT5UN!WTUKQ3U!0HI8u z^v}}{+zpFr8TkkB>XQWGA$f9qR14k`xCF=)9~0p`Jv;yj)7;fzZJDo&`raQl$YED2 z`)oGCO(1gSl;qhmlMe>t%Vl&;hw;Dq1vhA7{+8a6gc>W|hKSEd$yR@NkUc@XXuxh> ze=##~*7+ZG*s3O@;7<_dG{8BYQ7XzB4YG66ug?m^5y#%+(Y}CM#fU<5{)}OAGlw&o zyb$lrTpfXn*#~<9s)AfX)@n%bXW^h zm~8n#PcB=g3t2;LcfNB);KrbK_uHW_e{Xkb(aY%YxKRH=4NV%Ng*@a4p4g+rjGbc*Yu*>eBTTWtxp&1HJX20&9nBzk?F9Ni@ zHfW7YvYTsnfW+JGfh2c;yT8rG52QiB4*B8*RHcBEClls?(TF+tWtsFZ;Xg{t!{Egr z(RwtWnyOR6m^er=sr2D1f7D%B;ET6pwQ`*1@DW1K*0f5mREjW2`MUI#EDZ51=cw(i zCw7CY%GC+4VwP^so8h|3ga{oXqmQ1?z2!wjL_B;t9yvd)4`8p=3eGo_H1c84m8FnU z&(ypQ9&4=DhHKF`s&J$3Qyv~eI>{Ju?08&30mQJd3Q;N1v9QEUu%VOPsgur#mHX?b zzUz;G;r{-;MyB%xY{Mui!ii7TS*i)3`N6QqAkzg^9l6P0Bcog4lnHK90pTq|)V>vJz_kr7!7*9Aekte7dUz=A5ao@g z^%_^xHqJ|QR2<-rT9C(@d&YHQ71>Zmb_^Htx9TPp{aF}!7H+kV=8#+cB1L#Y80{Tq zU4oC)=MMPzD60%nNRrxjk6s9Fk%?F@yozs)8)G}*aPJ&^!Fe+KrIIfS%ukVe$cM4= z$z!OZ$e`uQkviAsd-TU{sZE*>Bu+L;Gy_2k60{Ec_BoX8ggS)iRKn6nJTN@t&{5k! zp|Lr&Vxsa=U_{vKBgHhH(#nOPMXTisB8?ptv{?gtw&*-&A?3@HQstoNz}4}O_~M(< z;~=xX5?N4wt_`1RcQt_xQl&69a)K;EtT0|5VUq(IIri}clFF?CA=Dd-6*9p49uUj0 z1Xc@8rEl{KmM}|gkY{kHwVmV$v7zXN90c1n*&DG`1=C+EdsG#qy}i(eUSK3@s6@Kp zLqCMBL}3^+PSt~h?KS2lKe|)ROWnqb>JsLmBDTvD%62q5aXfzE752<2-1Z=DUzP$r ztfT4n1d9H2QI*eB1>oE@RAfl@tcX8nMqwJi;f0iGF1NCLf-{`R~KG>3gMyW76v?ZI=>Yr~xD${pc=V5NT+S(3t@>X4Op z=fkl8dB%l-Vb2}LmA~|f4||*dd|%-FM=MlW=*zd)zg6(DXL0@{T1!(6en#b(yxx_J zA?O&}5p;S-3GIl&k~k3h!@$nU1F_1XKL_U2gGJ6^LGO+RdT<7T4Bpg|sMd!)f!=MD zfAM;?V1$OeqIr1(TQVC1Pv17B>s;s{J}GZt_iZx18F9ymK4A|o?A3e{Z460Hm<46! zJW}Vk60cMnSNx&hA64d;p4{#w@9Z_3DGZh>%F%7)eo9H*Yhn$v@pQ9@YyYZo-$`3Ej;xDmT^|=^l`HA8V5?Y*;P^}eBWe%RfRV-o(9c;%q3Ui z%=<&QoucQ-AoT3U;0a$B(c}EV#kXA}cGf~vav<#!@~%->(mqJk18Ap#8r1p{K(Pv> zA&ggo&Hb24!6g{fJ4qKOvilj?*xbj$8SW-C4Rr|4lS(uGTN)0u>UY?2B)BmmOt@Va zj=xcImm6ipOF+Pi04kfynmjLXYsia~E6mYU%C{BSSoF*g%&(~?ow0C-n#TL}LKGHJ zM5UD$`*o!7D#=2S9)wi?{`cAZ#w(vLyv5k^<$Q7wRA!g!pukpG;Lf|b0Jk_*pejskESlvKFo9OjKh>en=Aq6YFoJlXLlrj$1J_#R!r zO$iF_t^G8)AazpP@UafVbp@!-mh;DO@)$OekNVCI{`fuMfd{ynXd9lIRY`r+WZQgn z+{-Q+;Qj3R1E7(pwkaA$LR&-2ZVP5Ies2e~-1Wu`b{1l;3tqi=-AS@M+(&swl$PwS zIO(p#k)xKv0SnmpY98>-&P#qsU-@N=v4juE?&VxK|4){)5%}Zh9~d0mkdGR`AQz&f z|B?%|NPrKKxmkuah9-a?!a^4emplXHI@6Y(%m$Jr(xdg6Nf|Wb$=}yT1d8!T($l38 zIyZ`mAPfr>a-1ZP|Cy0X zvJ&U#W2UOT=fbP~8aN@L!Ss@!zo0#OlquKBbnk9^+PgiJpA3v#0Z#=vQ3U>1SFok0 zc#z^4P;bM5E=CFDcly%`FVEaHphR%VWz#7~<02G$%k`~GJ1-MUf^%bl5Y-KZw`a1y zx{#clIZsOAdOu_wotjn@VcH!bX7V`f4s6K@2A52@f1v;qNsrSzTQd`*P(pE;y$>Xi zm}>OAn`c88?D*~zc3a-eXZki(mC3TU)!jBJt+&^z_wa#lBK$=ljt2|MR$ncF-qRDb zjkCZ!(z-c6K@?Nq=PWvbT(= z&N_QCe8J1Vv1HnjKPxDH>`mtC9;lN>EKH?n>!;Gyq)5D#m*YK|~P+ zPw9jEx_^8Xl0tHpwk&f!+R>ZS7etty2&rKKNKHuH_3A8o}U!i0R{ zQ-q5j>E*6P!bW&FFgp)NC8EGc8d@tYOO5Wj2Lyd^LB@ZYvAkJ(;pCgO>wz3$T6q;L z%7>g0PZB17z4|7b&Ua z48EqrRd&Y3$hN?lGw0*M8G)&}Fn6h%BCGGYoSK(`<6YkZ{a6so?U6pi$1+sDH^b?BfB^qQ#Vja(*OGA7#^Ff&8!FYcWK^_w`Be@c);`-gf+u^!I;;Jn)c9^uKu3v5G!WJ8O~s z-h9lTs{b43%1R_*e3s@1l|e>Y+_f_}r)dVna$@iHlCu+LTIY38X)3J(9Vo&u1mfU_ z$>Kyr$A&4MM2~i!eh_fv`a#v*I_m@paz9P&LlWYo>u_rfe-hEl&wL%6ME$#oX{x)0 zbEOj_!9w0YBSPcFOC(e5TH%iYqhmY&M#Cwou^1Zc?4bYwS11N$WDZNuEdN&uVOs7k zJJL!r6Ap~8Sw$Zt%<6SXd<}sLuj$M6)psc&rd6Jbh86-BY5Ow26%aV6;rR7Xjn8k+ zguP9YH#Hzq97AHb(AVSj^9*Q4&laZ>jxOs+m!wn>v^$XQ4{uFnz5Fufc}@*}`GQj} zS;inLYetgz(DDBSD6Y5^wK&~M2%}WUT+KyJS8pB&lPqXODbA>&YsHd^A?}Xuq!n0# zj_ldstd=EKr-?fcl1-`R6a{q;zkXd)XZ%HGzUIjQDjiq!B8JcG*uU^NWo-Dh0k$B znEiQqMNQb$#8IS(@|nmIXWVPJYv?!mKV89|xbbtODZHQq1I@2x2U zza>u<)5A0lI^c!dc*V^Te2tQn-3RAf1{kWj{_ZHA$vC%hN2L?3CjQ8xMw~l_^?r%y z?v(<;*bEtO$$NC;#*cz~F2gqy#{xzuqtdgZ-Xai$cattGeRz99-zAdu`oG@c1_`6T z>-}0QND>%1(1$~SF)?gM=R&7{(v1CdqmgDv~{ z(ap?BzEr`r0-I}uE+rmEOWhl(s{AAwvgOEz;5sB&Fo#xs> zXwIA1a$JmY{YW>ENjV7g(5F8kVG%|PO<4b7in7AvMf3yNIMr^r zr~wF8ppfXdPid_I+VLr|rtaCNOTdj<&Poo~y?eUfw!;ll{S=o%7(0bkmT5Gf38;#+ z>cL@qO?GyeX;bA0CzT~#Kc*RjHcq~3zkr&-{D!iQjQ%s_(6Sn7;D#@KKwL3)a;%MS zItY^@WNjPy#DeJapYr)pyOz%+U7wh`Opy12n=a)%E8BJ9D{DTw_C~y7f_$umcZwzp zs>}xS6PPOkW(n&xrl^qw)n@X%n+iF3f%2KT7%LnSRi@LV}@A9 zB*R&oDOo^BKZH_o6o8}N`Gsf>`nCr!NoYlMn%2oQfp$9!M8_itrBn?YhG?BcSU?wF z9}RWg5P8IxP?|3xL*flMKXyiSafCLtTl0*j(#8oPJ!cOWGCM9W*V$W{7N%a^RoBBD z%{>wM>9Wd>I5~&oW5NXSUzE3L0P`QkbD93G-O&5AynA6ar;y~NGszP(d2&_#Y(6K( zc7*zFEo6F^LYR1<_5K=k!3UL!m8^|vQ&8+izKly30T};$v!KHG{z`J|lkpF7sAtlV zGGa3xd$EpMfZVozLK*4Ik`1T5sQ6#KpXBM!+aBnl@BpO%h`JL><;I5ingJi-L8<*% z&0QC&p;*{}Rq{!x-oo5WBt-DC8lx`>9F{5EUzARO_423r7cco^ zi{TDO@7Qpnw}e?F_pO7L0X4E9_Wpg}OPY(+CyWG&cqBs~&6y>h57X}1kuoz;&6NWz~E5!+v*U;R*2kuNr}*hh_0SPp?Mj0!+^)9NLU`={{369#{^4} zO|9NerdRLDJdYCG zBw5`b>hwW&F1rMYiOcnfPIHW&xi0*Iv|=sUU@N_+7Qp>u)Cju8(%dA7XBa)-a!WXN zWJ6Nidmx4>kP)NV=VczFrQeW5(&_YPky6&dS&pXwRI1EznSxXHS`Q8`O#KvcXe!L? z%@vtP69ErLJG_lrdo#1{L%fSw?Y;57Y}6I20=W*QY0T`R6F*w`6aT)fD61Q!*Ko;} zKO_99zmo3+lzsjygB7yllCssC@uv`~6MHYfdD0A@g`C|iw57&Z3SxOP4_ZjWj9Jgp zh1FoZQD*+Uh01b(=h^#<*GCFlXFuuO(RttPAH&&GdOcZr-=107dA|tpjBOJ`bVmg( zkRaJGL9AEooHdN)wUJ?)w>%v}ZUVo@okXVtVowuVpw=b!XlL}@?i8@q6hMIxk-cEe z_PLR!>R2}!!RhO>W?WOBIjGiQbNV`0x`zHm0ky9T0HUBlR!nDr3={sEuhm|hKk)V4 zs@QM9y*2UW%(tE!_(&kGA9gYWs<>KfX6_Jf;mqH83;Jyf#DKv%ThbsqUwO8}kqXba ztK&CwT~XAFe%?==C!1v+yT3eoo0>V-j6kiJ>pYPxsJ|*UZ(7RI6CFa4si0DBpL1~$ zoGi#VWK3^*X1r+~KRQGXm8HR}G?j;c-j-Ejd7^nziODz61h)( zphsnTyMfz~(Z zWA$(zCP{2G`rl6*pU_YlP{5y1<3BVc&)x&yP@lB<$v~^B;?L3IfHQnhAr^=w6j(z> zRyOLn=R@&!`*F-4trGFM%Spzs3k{tL75SUo6z`U@+mDWDuUrC|o>j#g50C*7Ul!qE zFSfWaO30UzyR>Xg06*!KjkAHXtgY?^VKE6boGu^6#=|atH+Jh52vRsS*3@xx0kvM& z$FXYPE%NF`OaS$*?`y4Nb1P`M_5Pf5x54(ur=^l;H3twYUmp1Fosotwcy4R)KqQ4z zf%qRFjYK6&b64ea;j-?UF4J^0s?hePugszAv2bNCA$mg|Y39s%2+U%}LVVn-WgV+2 zT0}~6xlf7Svxy@MmhSZ+a2Pk0@cTriZ4I-A{)GdV!b+kIaN|VZHhtR~#&|+69jNw} zZv3qS`Pl5>@WQM4fTC~c(*hF;w#E13vxN)=?cu;0HnMV}%(kZG@`rlM0z(}uqzX_0 z&VIEJ(aZuXO7^IIu6DJd8Mg(FwTMS82IdDFX=+;=e)aj~zIrzb)s=B{&;uX*3*>KR z8P8{OwO4t4*K6@IoDg57cW=Nul}f+2=<1S+5O;B0p|?QvENOG=0EVSOJ?tm}G8J{e zNxmkPzqArrIXQbHGn*pVb96EDHyg^zmteu(?{_{G>giZi0z+iAgCV^KYNj2*xGVnD zLBSpfUAMZ4bj2!S);6iv?frT22&&x3q_=>3V@b4KU0_ex;f8uB7d4+eTJFNzK<%%I ziKJRs)ch|M?5QEZ$@1(F`7I}#F7_gK%Pp`6x)vMG&0i!C$|x@&`224EHCzVQ`^+f5 zA-LChX=FkkqYSXY5}3V`?3KvWp+FSZ5_5^)W|N9=GYa6Dmo~ve z3)2dFgPPn8M90bN^o$sx0;$z$X~Yh#v9rS=Q&K9v_FUeFb|oY4zmT70c>=R9fgcQQ zN*zTFbw=KYcdNN4rG|w4B0q?y6H7p$HvG@ndR*1ZcSf>ks;p?RIVDTq&F`^#$!v35 zs?zZTV1vm1L^|a{ZZ5)a3faf(Tkt@VWKBpNVn&iR2|j054D$c%7N}= iR6EbMM#=x_tOGw|L<@$C`tU-C%AiXcUS@h0wH(^?gR+#&f@L_3mV+r z?QOpMzxUOxx>c{Z`AtuEPfz!eFG>pU@vtee0RX_0mXcHf05s$&coY)_ zdAQ1cX^Ol!Q<77A`}p`cyMKFhbaZufb$feze}Dhw%a@y*8@^X9sMmX&d&Jw__3KYd3pJbovUx( zzFAmUh>3|A8X9(VbZBd9r>3S34i3u6$+fq)w~d|l_4nuHgw6t_CLQzqX zq@?8B++0#p()P}_x0hFUcXxPrxT~w{=GNxS;zdmMx|`#_VrOS(YHE7$S+``ke|C0O z*KJD8ZqlW_adrJ5r()N)sXpn z4NdIWm(J~Scg1kyRYsZF5N=o+K-Yu_RjV|x1Wll{jjUP4_e1gOGRY^Pg zHwCpuM^~0wI_75AW)J%s4m&Dzvs1`F4P>@w9K_l8{@JGeJk&AWv9CZ-(X{T?5Mfp@ z<6E5gdvB+AuGg{wVVh@To@Ew`XoP!ve{XA!tzD?@8%yo$Ow4Hf7W-}2n(-L`NOnm} zim7?b?ah_jcEE69$^j?%7^WasnyFXdI{EbeQLtk+%cN;AE(CPIK=(nug|D;cX&*jv z{rs;B{Ds0jEST6@>N#k zKNvHP5lIF2(t2P1n)^V}?fB-+^GOYcKwVg5enEj{!JfPti3(};svwxh%skHy^6Ez- zja;cary}VijCadEeaU?O(3c?8aUvMBSo4+s3$hW=U5(~f zG)TU7(bdC7X(Sj^%~k^N$AT(VYaYJ^0$$uvlSO?8z*bn$|AT`augx4UuVoUb>=&v- zHq(PV*hm9w8NGwIW(*$#!5*eQvF>>GEkPAzVlQWc zc_r8dtOip#RM9Cmw)+K=f&>iQFaNZL74up}9Z*h}Vk+}7J^PjUnu%}sTTT;NSRoG(0JA%`Hgn5^T zP43v9#*vx;LClQEHkdZe$^Os8`R1EwKdSsdz)o~%dhFNkzow{409`R}+I9OQFDRw; zP!9*Hw#ozdJ9pM2S-^&>nJ~k_m{!#{&*4$u*&v{xs?UTE=i&g}uWr0DKwMjX!mh|5 z_Hf;RBWw{Hs?^HdaENlH3IsH~9h0C%uz^q?%G^1M<%5)g&jik|hUidEol_cXh8~{tz9#{Yo_PPwH(Df#TWbHx=G2IcQOutTdHa+~@O}(1Ao2S?u^*cQr0c%ou`Ni?Q zwZfvA5G5v*6Cx(xBN6SO&4+1&G|0BPTrczYMlvIZv8E@UeaWRLiL$cwxw>`**Ugm^ zr(ybIKAlNq)Q3mUArp#vyv@o)ta0rsbhR(};Mc476Sj&=j}(8Fd=`FdHPr6wTbYl@ z6nL6|B)VQjH=I(7tzQps z69;b;P6cX=vyn(+TFhkO!Q%DQ*4hqD5^3ll$rl*s#*1HXJqkgtwhibC#c$nO{SF=k8p?DLdSYeD3%y;W7Uv1I;#c|(7v*OR5 z!18|^8&pxkWr@a_Zq;(|m;1scN%KwB8~m3Fds-cLO{6`-ozjnxi7Evi^V~d+PFAC` za##G(b5%k8pC)666`S$??|bU-AyRg~c1)R7(o}?*KG4B!7b&T-oQ2%e!g(F&xJNNs zOT2c*RtpbWo_(i-3xn&P32K+pMz}#>8MG_Gr-j%etSWP^h`5=Cxgf`J6H+;X_SMAUPH1Mg_43@d;eu;CdY;yWUIq#NTFFhr3Xwg92divt=34(JdE zEUM*?VvPEa9w@juD4@IWky``AQyX~dT^e4In$MIdlm`5- zrXLi$ye43^N2@INtF7t{?M)T8g#IF|HHC>qC<7jrLgIZc0_VXW+#YuXo|t&Qiu&;V zMjl}F>s`&tQJC^Z!^18`(lMNDp7=tuVY`_5Ro`KhU0l_;`IWU3sT$lbsA1hR!{{$n zhuwK4xvFw}l~yUiy=+Kg8fq3Q=J`95=c4$A>b##~1ikLdUsa2Yl{p{*g;Dj-lj4i8v$pl(41mAa{_5Xw-h$Fy?C>vD^yIK#s8JR!et<=dKWzxv6MU$NjYY{{ zdNj52NtonR1)d?MtP1Y)A!mR~Fu=hez=V=aAN0EW!l`OJ9YwQk>{UwA9f{^R)>Msu zI+vg#GW-p!p_ zGlaSb>zn}Y+iTV`DZ{RORYMc_&ZH{5)CN!$j68auWVZMQ>?RRK~TnX>LqZ& z7aQV!@W$rCH=65jWw(YEUItNI0cPfuEP})?JA3L094eWebMRf&TFm04xn;h22z2KR z*f&ufE+x-5+oNn<_-69MHTn?R#Ogz*)G!z$99t;|bmfOFJB}rCKU4|}I(q-if3m}a zSRdquoiW{Ue0k8^(8H4NyChk z53RIIjRT;)Bhs0})tN{;U7+^1rE^6UuEByXho7T`4uxPrh?E1=iD9d0cbHS38)P3( zm@LPLPYxY{MpUIU#N`1Wh$JCw=6n`l<~Brql3`gI8f6fRW4PR&@PxnMpk-nku>WLd zAG86uVH(oXy3y5u)}qQ*n2Di;BtKaWYc5sO*XyaYtU7>QK-ea z2U;)4^y@Kp6iP3}Dk&5r%GaXyn-vrlfMWWc;(?>!XkOTs4xe;!1F$grhAr!C@ZZ2d zsQ>i~Vkb}nGGzfYNFkCE#10~X<)0w08j$;cWNmpWV`*1^^rS zX1|ra!&by^=`TosZ*EA2N|_?$ID3=&y#doirwd~hyIyG4akg5RCAOX9);rsRYIM4I zH+5!HWxj>bGxmxTA}?A!axb>jFJE**jPM7~eErz? z8V*7FirWP>T%7*^^sYx!AJTpyd1*NQTH07!dY12i4Bb-WNd!lCd}(H&H@k}Z(|a|>C~L;EQO+ zCM{sm8`3KaE+^2;nyL9lj+LIgXG_zw1nYX9X9*{nmXBGz+ElqR&EJ6yEJNdLV8s8` zq6`WJ5^Y}vw&udhG1yz8OHKn<&fB9RM5KUTJYMSvVH+Cnuibm;ZEn#zUDL72&brcT zBT`1Jt%csD!HPM`2siC)bje%J6@Yl;Jp^EZx=1xWlcLsUS>!?_BY0^ zVj8BUx77h7OO3bbZT#t!tp?e$k5PXjsP`!d_cIzBM0}s02bDR`@LTD z@N|g_uUs_*=7))gTIK)=y9exd5S5E8R+0k_2%j`dY$OEmsBIv zNR-6nr%YHxfvV>+K}HhKP2!qcV$O0Pd52Nbuw$^@V4dmTwZ)0E+up}XZvN&lcD%#X z6N_WB{fhT{c>yCY42*gARvwr|4(*Vd1XLiUvnqdNP*rxQOCDE%;BCm`Iqqo1mXA7$I}6KmVwTwj|F0{-l~{YpGxJDPrJ{Y%u} zIyT$w)^cF(?lw;z<;CCTH!QQFw>lIbggc=0@JD<@qAUJKXbTU4AyLrvC0;TKBwUMp zmYoz9ds#Rq4d7smc3g*uoml|MyjW1O3Gyf3Tfl$h;$ztyj@imWP6;a69Da!MSvz5L zXDOJP%g=%-IcQ}898}J--|4N+yxw@-f|t8v+|JJ{@M|M^Q3UW`8++M}%2~F8jhPCtih57DZ^wwL&gawb< z?N5Tnb6B-lVbM{addEq=WagmJO`_%Dn!O9H?VWtTEG+o!TsTRcU-rO5-VWv=x zSF0?WBt2zu|D`qQYw~K}?;Z2(@gi%*BNO&_e)kZ1P#A? z&bM9rhQ&x+(WF)+6(!du=FzrdI)BIJq+QofoWve`R0z_P^0LNv%j8zXT+i;}mLvrfn!J1m}3z`tyD71=xgyjlDY$c?1gw23~LpirIg`n5eskbHvypNJ;FLInJH zCiWu`L6B`(M-yU3g7HWBEUd>p$04IsXYrPN?sUbU#L(y2pIES*7TodTQWW1uDD1Py z4?lxKu9?DjV{TF);~L-QN{uosDNr5@!sml_ll}&phYtKMID*8_#cqE`dDCGS9H%QX z9GnJD(SwU^>0a=OHf=}k?Ar^m%=QE~bp-mKsokn@HlcS|b2>XVbz)+VDuDW*>Ibp= zd*qm808i1RKuI`}F1RF6q`a%hX$(OsaPtn77clHm8xQ!uT0DX>fCW~$0wRN=S@OO? zfOCMM&ls9;l8o6S0NII~>i^qLk#A4!mr`41W7>_7yrXxRl+SM`K2+Z-hkZt}Pl+4Z zbyIS4?r0h3jQ!uPc?UTQ}8xI@nA=qegePZoRT|?QdMb>cZd-K%xGKGEs>d{>5+#QRPG{sBu|j|o*(U|u@U0d!mN_D zAV@|!(1^E;I%A8f{IzQ81GkeWDke|e$KmPQT(`y;Gh)ne;E@B7l~{`CdIvw4Ya^_w zH><2iHcG=)v=6B>WS?S1L;zd`YR|7k8M#oe{6S&wXjUUGi8YXs=><9@J*N67-QJNqh0wtcKy@g*cLsF8`wKhqxV;bm{u_y&si-Vi_ z;Au^}lqFg|1X}g^uM4|QUA!tB8FPb! zm@@!hF*pfS5(8}u2f2jk1esw55GWevm>B5h6Vkpy@v%qAQKdlQE=uqgC=45t6$m~< zLs~TCDMEHm|Vc}(>w}der!%nS#A8xnS3Zh|gRXYv3$2+QFd`%GQlQqe3S>bkVY5V62 zwn>bN`ODdCaLK)OxH8oyc~5i9f1JKJLJsPom0F7^dwq|SZ5oQv@K+S04j)8=%_6+l{Nm|})4t{~NM;z+-tQyu zsu02$@O1kx z$)jS%OaAV|lZtlC7YQxK2~IDXc)ay8nsTbEK4ww3*;_bsV0UlJ`SpG!8oX!#>Z ztbqxcN&p&zr?kFIur~Oh`JJ;J*|P8X)fdsHGxJzsdGFWkWL-}3id%E+?)rQJjC`@m z5^yqQQ>L;)00VMES^mY#iqNS_U>~n%cQY5jS;@7pvZRASL3W>k$4YzAVtG_Y>hAaM zZYZrmKkyhsf?@)t6j*+1ma~4cY76tX%&2Gn7_A*lV>3e2ByAv`DSY;b&4 z9>-O7G#F(Cu9lzhWt2(caq?)E7~plCXqvn(-v&?}zD^suSi)%@=+#5aw@!|DD7d&= z(a;Y;3NnBvLDVG>z2sN>$2Oe7fB0A)@*E{!q3+ZSy9Enuy*JQnF`)1objAbsA*b*& zL?$R?P$n{DdRqa!D%XUgj@Ed`0`&2!&l7_0AD;P4&*SW(AmTPwU ze>LGa*t*UI{jR33pf28%qbjS6;m$Eyp3Q#L=ISv&i+m2Jn8>rCAwcvLavYxOt)r7h zn?Y7MFrnR*j0Th87teBUPF{~7nSGot#YBbFH%BY7#{86V%}uZd@#3=54=8uU>6aR* zlp2wNI{7!uytA8g)u0tA79ifz?%#Fh@2W#zcz63G-%$P zC>O9q-+F>6s?2vjPyVH^*!%s_mFwfr^u3vhU9MD_0D%5aO6UuQ^g~Hrr{+;eoa|>8 zbNtd(pOBE$4_Fp)YynL0Ub3^dWU(W*p2>%)Y{fXAQFDJ)vknta3&m%^E4lAG?A>-L z(2Ss=;4R|{^bK5b8JscmHf@rofSE5EM?`5l;{!yv?PP~Tgr6U;D~q1-vgkcK*e1WW z&vVr34-2b!8X|HU{9y9EgYlx&q_a^mqVIk*V$wyAW4lb!Gv%4x&y5?7Tq`scvu%V* z$HA=S*NR{I+4d;^>u2)-u-rjIjrpI->sH=Rh5u8*_P#hBccDNy-boCj(Hh6w;4}2a z5}xGN`!38={^j+Tt0@qZwKiYY&SP?pdrHLQ8U;O4QqHLT_7vst^V6MW=_XXyZGxlu z;!;(K!&_?fk=>I!wDil44ik#cMiddlq<^RmKM!9bUra#>ty&yhv97*LN{?lGJni-VI+XoMl%9Pe0zWYuzHDuGNVOJE&QhU z7E(ua09tm6EsmOT17D%j^V(uE{;F7DvY@a)q#> z*_5_s9Kdyv6O>HwC$CYeL)JKPB`hOx0nh+FpR#-ArNXWLBsjmS8`Fh7N?1wL<>nH_ zf?Ez){R$g4hkVW?v7ms(k@pc!E=|~D%*0@Dwpne-g{C1&3W*U^{Kbx7{t+VG@)ah` zYHjKeBj(~)XsAWgQWXG}FEB!?^(k~9x%x+Nd&xxW$5Z2KZM_iqP}{6Si^@1RYkRy$ zbX7lHZ`=>-Pe#ly9kD{4D6Y8(t@42jE&;R%ioP{ehVQ9>Ux9B>DA-{|G*P2F`SNPN~!BbO3`0V%KUzadc!&{#u1 zAYq0pM5eOMeAIf8<@f#Y31ZOsHS9s0_wb^CUG9uRtaIjdA0`6J^RqWL5p0uf)s^Cp zai|;}ibwmmx0%SuFK<9ZPB&UUl)~BAi3--vi#wlZB}k2S#3XMY-B{#LE7~EG8}_x* z_!aJ6YGnNT;U#+ifN;5X8r&)huhqZ?GPxJ!`kz9pS)6EQcy5;PEuPy&HImyNlnVKK z_Ub_@8UeMEKHDGl+zqI+mOhw(`-G)}Aaq*S_o{oa|=sY>y+U{C~y?x)^ZW_3}|sGb*Un|dVic}` z1SV>u(f^O)KNE-o`sah7kJImz)c>bqRQt^q2r>dN-<7)`KTwUUzyjk8S==R>X#Q6o zt)(}=5X=8p7)6<~3~jL`)P5}zMGETOOZ$=qO0Y-!vlk@09#kU-mF)`ZegoxuI5a-A zGtS~)<^N{yhe7ZtTlo^-)GFCVY7S)LxD3-4(9`oX?mY?Jk(jzLo7(n-aLPPgk-m{& z#L2O5+F~P7D;M_}4)aTDsqxc&*93;HUKB%?iC(bGr@i#JFKc3DIWeHP*U`FQnG_@; zag9jH*c8YeWJrL=yjui6H=}t1la883NG0|%N`Gy_)b5u$VaVw0Q-!O%Lw3}C4OhvF zc@AP!I0%q>B8{%}ca0`AE>Smz0fpI&HG!cIkV))kl>XPsNje5MW3m|jt5Oznu$Zs5_|{EW%+1vpg1zXMp?V9_<28gqS*uo)jcjO(~7R} zbKASH1|taj>lwIy0nh4JxCZmJQY3~(9%VDqCEfKOv+>9!~@V!JF81@G4x~2mPP(Sp| zkAs}ULf3GrC0BeRz$G!P{VsHcu%v393E)NjZGoSFS_lpGun0CzL4?rBD=KQ4#HzE? z^DqgoSfLxO<}|WJ84ZzB%;2X2_CfiE;+8 ziV4Dhr03^>=FtmBKCy<&h1SbxFBJZg^#>A&U0KS;Wrqgnjxv1laIzdji17n%uXbC} zp5q4)j66jM7a8anz2!b=97y0GcxKLaJIq1jusai!`3;Yhd^%ItB{Ur7Mu*&!^}P8^>v`-d{n~ z;#oa=Lc1A%%rt3e4znW4j6T>VeX4ULlvKUFG9H5{inzV7hO4#whTQPp%s7y4F#R*2 znNyMLnojV{(;Ty9^j=9c0z)qN9XzY%l!x;e_}-Ld?THWO$6%CvZbXWBHan=i3;ey= z)_4^OwDctSIHN%%yxH4X;ady_sOaCNsgmDj-Nt&B#qfF3I{Nw5-6de)7w6~v5Oj!8 zrhfus5jKnzmFy}9zN?hs=~`!hnXUr-)D_K zhEHK?N*HNdE&PC6uLtA}en?U%^PK8CIS9-YFB&%^j=ij)*(Z?<#wZ2SWX2)^Jjx56 z+ViQlQteJZQ<4}1lAK5#T#W)1ew=>Q7v%R{jbtJC@n@QS;YXUtRS%Yfko!T?Mys2} z&2j-2|C!qt(ecT|;MM*5-8N=MRB(a1HDB`e z+F&AAX%gzu*^}Q^A)qs#a{t}+Q=lgDYrZ%2vuDpXkq=}YB`X)+!0EYk_EJGjv;=cG z=41s`1)Yo6kH(^YqzcvCm+mP0os#efQ4 zn=&diIs>7_8A-JqI14NHSb$mwpHom^D~Qk8_yIU2^mcmxbn&PokvX17`E7P2a|0Mg zTku_?I;P%hT z8a%{2;TG}B;2bTKGbI?o@*;NDH(rmMFJ5n8sgWXs;8CjAWA@{sH2f<}%hz(W@?U@* ziAucgA1}>8ITiG@%9hgPzd;`5wYBc@;y^)~po~@tK__qMvu@zy!z^{mlBFvo*1=5^T@7{5TiC|lNaCQhkNRqPmMKZ=t$$H+fi$Ni$MBHFT{6o8I^1_ zhu9D-1`G$h_*#^H5UYJ24H~mmo{B?yiNXn~oKIqhoWJMxWs2&~QKhVq`=YXjUpcUN zed2y`&LtXCtt^+R1$dLHshE)|j1yrF5TnfK;$(ahpKBpFXGA+{6L>hnaxiy@iX_0p z$G=EKJ({m~UJ`i=_+J~c`TuAeeYkJ(XuLRF5;Z16L=*flamFb76c&|{n*ZK2JI2RA zZ1V|Mx1A5I2`P-%l}!L%slTDf?@8{`B}sBF!HASDj!mDo(I^E0^apti%8UaPOj3qB zRZ^5mFby8i@I?GpiBXs0X`^yC`5{cW35492vnp7F?oehDI|iYNLYmoHCS(Xe>79|` zvwdD1L!2KfJ7DrWCkhk~sWv)4&-7IJsG(sLk39?AmuBp9e^6(6+yS9{+%N5t&B1Fp z42J=0ZBh|gy_pKu^ZW#c{oy?;dwLL=(Cr}Py3_ZdJlp~0c;yXHz>Mq}cWEJ5D!w?z z9}7B$xRvUYb%ghcs)KDQhaNTDNheS`{@{`qgd#zm1 zXdRA^9SEh4^hk67AfvB`cR#F@B-C4zB7F51u5>{uovNA!5|Sv$ZL}|O^Cf)9OwQ~h z(3o(|ob#RWSD@wcQ(<_E*SFx<)5M1v~n3EDY zk1HWsJzI;w{GRHUz4UO~zpp7R4nNhYN9GIAB5kvw?YrGC`KXGQaz9_eIqdQ?)kwoA z5lTN;7_ptrrq~cm8Hp=h$u!Nr?G%V7jwyRK#GT5(G*R`PKg!Je$;3%f189mGY(Lh} zhJ8m8P%R1ikYe{K^x?OL1abyKGsKqCRWbw_Q6vcQ!UF8^ZYKFx!53~y6oZY*q&TK( z`QnAd0)q-Xe&u5%4igjzQ{lU`>{9SJ#SC;xc+VqwV zxuxRa5WnQwB zU?A+qZ9gG5`Z~jq#?E|p9{7AL%8Xj>9IS;k0>hci0lO~l*{L02!yY@nCcta(cS216m8P}pH4*w zE*qpN<4IPRt$MeF4g?+?ERm(#kA5dYw6sn>`|F8z^d1n-*^NSmpHKEYYTKESFAOzz zlJu}{dn*$dB41n5GtHtlzvFxVQ(+KRCoJgd3`Pv*zyE{k`DMtfY+0ZAr#{+;xZUJd zfg2)<0mbIpq`g|={KQjl8UwY{gqwm(35_euP9LIr$=tH_2Q>Y1Ez1-3nTH^@k(Z7W z^I6fLxS+FiltBVK_%HoRZ2s9Log_5a_G4LVK3UR(p=;pALI6#E;nHhm@Ow$1Tv-4g7xtp&k02 z9AVMjs`O}Z|76kkLzZO4Iy{*=vy1{gy*tb!M(NeKX z0j4byWe2G1`D%K?4dh;`(psby+f1a|+u7n0;FRJCqw&c#JEDsTnXLuPCv&l|Bd?En- zz?JF00Df$U(y}?09VS+qh?!KpH}G@Do!UT_Pas?|T7Wia4Kd0Xgy3dnXlX_e^p|jJJsUtNemTb59>^AxsAxjj$}Pn=P=)Wo z-yT4>t+jTtUf?X-q?i_oKK~Soy;+tx3!484)THrMeFWKjvviVs=du8ERYdQ(;nxcu zQ$~&Xiaxp;56z)miVdC}+gG1`eK#P)#zsCx=k2<(xZq8$FBb1#S?T1y`A~sD_SE_! z#Jj>ycfjL4os?~2clm>aQi{!o$f1wP$qREy&NI8$sXeuJ&2^``Pei?#70DiSgO1L| zb7k$99*{Rr#8dtI3-1P!jc*tT0w=o!G}VPj2mqC+HU7BJ3L2?fDg5jT0UL8S;F1w8 zQGA#f!r4cZ2R%LO6!0gjrZYfy6{ryVRFv5gL`R}i65Xu3M3Ug{2iSj9Q-l^xSsom; zCow-`&}sBFts+MZVg^UkU~0Vv&+@N6r~5^(XcGCWlz`RG4|pS-e@k2;dt$gkU{*pt zx>I<<#zU$6UY=OTD3!=P!L8j(8xPtbl};5uWW-g8avJTCIzcMhkX5anJM87Jr%L)7fX(l%8lb80)r*c!e@S;jCgqCUw)dZPpUHtR zxyB&Y$I;KBxMS|9m{A`gk+DW3FCKi9PAQJ&`STmG2w@$?1{q~_tn*xXY{7uJ09aEy zXXSOD0MHSa`-Y2QQ+b7&mrDq4AOaWr9tCgPeD8ua9Z8h4}%Z*ez-fDC`J4sW?FA|!#m86xikdI{&Fc|(@)9#T}o%2AR$phLdc z{O9uus(_7E^k>??3|vt|s$?h8ZL9eX_{oV+5gfFL0Q7q7lOa8+rX5P7UMGfr5J}Ev zJFGaRZ8%nXm;j{*;|)Ym%M>uDcWTe`sV8_tD3O0DHGs&QxeJqOnuBYpa~24o#4@A6 zaHs;L^*^_DK}haRdAnPzmAGGj`y_Pp;C9SnD#{Y=1GT%(KtGDCtz$pHp@o$-6xtq- zCA%7~l44KwD#(U&rx5;*g;EVFui#{l|2OMe#Vz|X+tAS9XfDLv^I4g*vz~^Dv1wCA z{D2mMU-65!K>=UAZ~UtURyhIMQJTTGPS&z#!+j^$O&+Hael9g93l08B zC0-9j@W*eC>5fO_tC-kilg*`Vk7paXLL8kDv{hU%fZ&|AqN(tla%DYOkKlq|;bK*_ zlNkplrKlXg2Mb2}hdtmx5m48nZvM+6?xLI`+;>tX&f;xsFdWM)h}H zW&$nk7gHZ-9uj!aF5yigOXW#0XW%*erSd4sk8d%mqdC3Yxc*K4&X-$LVwueFo2PUy zO0h4ij~CQMaX}{xA^`~%ZkQ|3zC5e`n;oTDYTim;{AK0VQ)eNsvmR_rLw2%o#vc(; z&L{b4s+=iCO5()ty)u9Gqf5UtSEq|924SY+dYK8Ic?NG2pdQhv?ecgR0W*t}OdPdF z^lx2QNM2!-rBgro7*8*KLx(_3*+WLY>bt*g2v^W3noLQH zUaIiRYY~$O#NfexGW(MKTWx=OfExl+diH6!`v%6Q#i_M9Vm--5^jy9kgELv-XTlFs z7F6`?H)so>3ab2F6a2!Ra)u#o#!%ohr5Ry`vgI`lh`=ujm7Lco7VllsFgZqNqV*6l z#5T02-LwXM-CqF5Rx07e-gAboHiwMPKWNSG==ru-HlT3VAf_~`TdGyFXW(`*Vu-)= z)l0$FN3f{QI${LSN2kUcGGy}z_IUYs+>G(3()4_~6|I|J!(oG767f0>Or5O5(R>u) zxz#RR1N+XXs-!l}HA}N*8kzSclTE@V$cDa9Dn?mdXz;5V2~#pN#P{eh40SQ^3-@f! z6A409fXfu4>^YokEr79GQJkm!9R*GJnjXec_+3T5@8i0aGC+Q@7i%rV$oA{RCN!6& zaZPV4PXJF-CugcvI)6OwDF9J+()y1=aSTJOBY*U;;DoMp`H!_)1h{rl@2M zWYao-y%6cj1OM;?{Db~EG59AqZyeeuwnf9T1nBzQZgrc8mW1^&&g(;_ zcRvCK2I@5}@ z6tUrsNyXML$&!ZQ>FDcznc9F>(@uimbX$kx`_JHBK1iZnTcQh@~j2Pe`{maj5idcpvZW!C}RZvk4=^W-x`A0 zPV#ROcN6bs#0A|IW)W^FLhcIV_S@~LTwJNyI}#BeuTdf=gvXxNo!D;Y;rIIcynYcm ze6KkL8hl6em5D|79aPNefB_ZxFsbEP z%JFtTdJ!kusB@Z}!uuy@j+F3(z0Z5NzCSY@$~o}#GU2uGkh!DknbR$C|PSgOvm=~Si5i5{cK9r6w=o9-hSiS{k=9eANpa+j| zjz)r5`9hW&v~=Bwi@;GKkLhSV)>V^a-N@&0NR z>cT#G>2CwH7JOX|9FO<9C^Q@CpIMXE zraXha2YjzG0KGuv7~ddwcIQtao#kT49%)~Eh@kBFi>UtNcivy1# zbMHP`-37*g248KpwU&_)oVVA6JVnG@yoCR7-8RlvI8|NF{`=YP1C597>r%{&o9(i? z8X@`4TeQ|W&G;pEh@NjAT|CGj)hQ8$f9pKY=r#qppM{G9L!4vT_JKp7J%{GaWO1OU z6QL>yH}Tu|cx8rcEZkaubs=cuU+(T-EH7b1-9zi8@K?T|I8Jv^<}ghcm4OkLVfHP@ zXF7%=?6)e#N;xv!cHW!67rP8g%}U$(Ovgo^7xaDpWL8kjR>NEt z+xjbZs%RoS!G^{;cFFGvELnu(9RD2K$aUJ$YoH)Ner}9frmzltFFupg#a^yXyKb83 zL-DB5+2fj|vTP|0*HQ$A$PlrHL~25V@(`UIH{nxtVBv3Vn54Keh?}EQ);G)4qkccF z;Ab}&gz5o@<~w8nH3qw)I`qF=)n-rKminVp7YEDJv_s=e3IKhZ$j=6EXUT<0?I*6w z^MHONHXQgMpae7;RH|ybP)hDTMCk1BcCXha7@TjHSgab9y9!R->j5J^{!ibLnc1IB zZhD+6C=Nkj@DQm_6)0$bLQM8i;5;INgX6C{s3P7z^35%&&QM=%%1(v@Cp;mhBCWaKU6 zk#gm(uaAUxvviO*A$g9AVlikc51)THr1hu7We2w(ivhHgO$OohSQ*S8mrJ`k2_b2y zXNNSH&~NagJ39Dp2#gxEa&7JLm?9K-f%js7=sGKhdp@f42oog~EWWB-`Q$Epk~=-s zNBIMdUC<*rLWu)H+{w@_6s1J+1ukNjJK#Nk$%j|1i8pXdtrklL7B6t zzkkx=v;4+d7|+tcT$WE6WDk{UkT(9(54f4wZ(#Q~ml4_5#B@Dbox}Mt!o#CGN+9e{ z_j|Q>6wjjOa25|Q1ERM^l*P@cq9QPFE8CNPjc@DMRtW8S>gvjnzaxK% zl_+CLq=4m7=erI0DnE}h1f4mPxIF7d!fcItnK=ydtpaNIL^-}1`v#jVtXp~X=g+fO zxZOm#7nQx}PGYFObG|=k?cSpu&u_-t2Ca*nAa;(+xG8q|YSH$q!5sUR_1tn|V0>`# z?9A%$Gj2zlUbNlRV+&|I_~3Zaw5_+F?6`jYQ!B?FZEFry&DuCAJ@&&jZfuS6yVra0 zKKFMN`~A1|`HHp2ITK7od4UIOTv>6}rewzMr$=|yH17Pjd^+m}-z$5QpEWMIqL7d$ zF4lJZ&2~-oq-QAy%Mza*>3z?%?P|e45tX$iDVKmj_xnk7N%g-y%qQd+9h^NQe|fkE zYwz5zv3FIy;w5{d`5V`FWSl6^s(7!tCC4S#wl7d+mMYNYeJ!GAe3OsrT~$xIsA9pu zB*UxzFhpmiTU@b_#auT*#seEKoDp^p*lXjT-=QHTh;33Iuh@b2-yTc=sc^XP|N1@y d@G=4*ubZKw^RJ(aP?<1D&ePS;Wt~$(69A{>bG!fm literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step7.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_greedy_step7.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5a1c47d38258553e3ebadf750c0b65b7435b50 GIT binary patch literal 18099 zcmc$_WmFwa(|m=&(Ei)r*lX5fByV=czAevdb+*64G9TRYO1=tyu7=+&U0PMLb`MI2&-1hc%M@NU6np#3a zLQhZ6@bK{a_wPqXM|byjqoSf_W@ZKl2MrAkmzS5r!^2HYO3$6(Amx| zE-vot*RK^771q|)<--F71qDzaA3Hm{ot+&et4YVsrXMvm-ajg~wzfi=R|o=zN=r+R z&+c3MPD|@IUBXu+^vAtoR#j9~u5KQM62_;OuIt7}PUgptGkyFMH?*Cnt;-6IeO0Sl zkKTq1*VWazRFw$Eg=(g01Sc;qEiGy1&kRjoBoyw%5A=+UjTvMa$fr++w>A|0DvXJV z+1k6yt2xLhU1NzF$?WYkF3vgrnZCJyTt2cTs5P3ClT$aby}rAd+Ouw5KL6Q%D!Hqz zv7sTb@yC%S*~ILAZsl53L!@1i?a=bRna?bj%E*xtR(;pW*8YA|_jcjnrpJ%PzQy_c zf!@l>%Hwag%Nw@~8;2R?`?2k-Cv7D!C7~r=Iw@L9OY6v*zkB%nWPQ>8>%3c;>yh)j zBQv(4@xA7W=E|Xp)|uVO^`-W?>66~t&}7Q*xZ%H zt>uZ;iIb7e3)v3E%ej*+FaP$%IT{PJGz9cBP^pjpqkE}tx z!D?jUa?u(VLz+poypSuk{BLbqXa2AU8^4cfI?~GdWqi}@>HK_&3sl6tYOVF>i;&}C zsE=!-$YjwvmTn#wIB0#$waslWXr?j3KWhKC_WuHLEz4Pu5nFdpBe4k8%g_OWOLUq+ z1Q?nxqZ#D(LB3h-^^JN}Z9qI2y> z5vgmA4pRM7-~fjqQdi%g<59yhP7Q%t-_fKm5r#W88(wWTY;Bpo(PkKzOkq-8p^c!& zIH-FfxGF2?U_pW3Q*FHabC6n6R+4(K*|DECUQdAWHuZawbdO}EhM%sz^@Y>>p7`$$ zGKK^w!M3LoHZF_(#g|hvi^6IH)k9W|pP7p2LOuU3@W$RH*$@Z3&8gKw@bqs z=f865a)m0P!K`DBbC%`Ys#0eAR2z%#0Q*dADozXW79z&ShgOr?OVKwaZ#lXv;8|Rj z;mL4Ee1bW~UFVh@ewV8F9Z<)&Zos4JT^!5cEg$MJv{b7idJ94q%>a(98wI`xPYtu@ z#Gl9zge>!?$Ev*b!-k(I5QJ6XJ|BUrX+9J(=&%6*a-1f0-WU0+WRd8$D>6I@Fib5B zf+Zrx>?^X$w<3D7(Dnqtmk|Wk{NL>mJDeX0olwMvo@pM-k1tM;=Wp0&X?F|%aKymY z4rZaq08qqGyLH4$82qE0C#@J|FX zXnUwf1UD5E42Fnag#>{h77iGJta5B8K8hkR1PKH)8iVX+vo7{>OB*45AtA^wEfL8N z95LijfX|L6@e|f-FhUlVseM{XALWbZAutOjNEMW|d}Ny+L_bf>a5=_HRGSiYa+>qG z$>tr_8eyY{WIT76f9|zQw=yx(bHhOA&Otm;Z|FdK5c^&$FU+wV^_aW!6sV9!TPTT$Y6(IW7l4(|l{-sNK|aPYG&xsCjn5ace6HgE9dG@oU4YY{{pMkD;^ zAaERYG<=*67-)WwY)zhyRZL?{0dS`qUxSY-_NBckW53&S|IBJyuIbatNE`E&;57-+KSQzVn4&Gw?$%^IyTrk7U+z&yfGI zuO|CZ-C1_;e`N0{fBeCP834l1JRN>YXVgp~k)hqquH;k+R>AoG)2yY~EWZFrM?w)@ zto_4i$xOzB(4&DhM_DLI%3CZ`&&(Baai-Kc^80ASjfL6;E>ViV`oIFgfM5`^bYL*Z zpf4in34xmL&$rJua>pH&X9}!!cZ6^~rg%nv-MOYQ%PM)?r4{h{kS?hAozoDiD7iLx z8+bg96|K~~C+>S3<^i*l_|Fx~am&*84=7cA9P-ez+K-z!>%G0C^f~YBx}x4#+kNnI z+*p1xscmT6+56)k!TdG#@oLJ)Cv)lDt6*8a`YUT~Az`QEq63{FyyA;uu~NKPtI|oc@!ilOk_A|E*}1VN-mmvFgGzg-E?h9%DaE|0ZLIis;o|0LW(p*qZQn<5 zVl^G-BFa(-kAOm>m>nrr>e^pzb*;Oc_eTK<57C`I$9lK5tnWzpZh8Z@PT;dQcx4|_ zXQ@U+&2~>Mb{CJ*XNJ8veg7`->Ct?P;f}R{E_?PrD6=_9psQ^L@Jd94@g)R$*cdWmV20Vioa|Ft1HAi<*EPl-`*?>B2N(D4vVFz~9~=5R?k3Pm6Ib!K`lz+O`m_1lsqq>l{ zETD{%5F07NZ(YZ?NFqB+aUWZ!%N>V8!>~+Pl+7Xa^@YHQr*My81O2x5jHk_sH5eI4V(Bl zQ143`XKLPbqt8&c^#AFaPIkc2YO9gTcpc%fl<}F@s;AB-te!Bq9sV%W>jf}0^TAS_d8vs?w{`#L7viSpTt+95~ z(dr3~<_#qnpU+*l)I^GHQ0HFJ3yQMu|zB<$srK4nTSzeHARb6*E;KfT6X~?3g|md%2TAc-Uydca@8m)QJB%9AWJf6 zvE2som*A-l5FsS#m58CbAW0=FbQunxd$}s;1tEjNR90<(UYvuFpTw3L`sE7@3*H8Z z8gjcSf9@U+Z0iZE8UVu7$+V!M4%hY`U^sRN51izG1`PvU9#i(Ga{hzFfwa8t_h0+K z^mn86~ z=dI`(pC^|~?yuza@&D?dhva#Qw(P1y*5Li4ciWrw$ldOo#S8j-ljwOa zjCcCo;U*mHxUb#~`ZY(F%yvhMs4`loY7?WBZN2-pn!no%qf5SEU48o9v`^F>A-y10 zkh6!b`_(g);mPJgq}PTdWzBb#S(GIG_w<}~nw5=3`$|omPUC9SC&JDV0@&$3q<4ih z-R{oo7qB;2_qN1JlI_Pz-oId?byeQDnBZ9$=|UJp^57D=vGT2ROnhp2cUV!uP0SK2 zaFgol4yH{`8C&TqeM7^}Hk2sX;7LDkm79n^6$1SvaYpEQ1Gf8Sz1aab z%((b?YlYbXrw%SK$FxY58H-=*++W?cnt5!;!xnMlE@!&k8$u3C;@w^ZkoPV|k3eGC zOgr%Q+s*_Vb;DTdLSevlaAnB4lKWuFce8bMda?MT1|SNjyV7#PwlM5iMTqp8SwJ4u zte_;=?Vi(2`<9N90hxtz5<%iCw=wApDfN2WQb@CkFachcR1qrr+l*Y+T0rY|jdkQ8 zQAuZdBtFv;pj*?=F7=EVc-rvhTB`zLWMDymJo0n4C(OG0l1TP=2|ghML3NSI z#tk-~y)%B78fxIR?mxMFQ&_0G8&+GgL&M<3sZzDDzrU9$R$1t^8}Y(OF&(piZA=88 z-GoE3hr6=!;aj6Sx7pHrp&Kxf5xUz`G-@UAw~Juy9Myd7Z?oe?DVa;v-$v0&fL>ii z^>YVO8|<;VD@+IYp=+3U0YKlLtiw^MIE zN3teKjasxDJLgmPak~38h$g-Y#n7S2D*N#xK~St+b1nZQD_*rhbcR?mk~p!k&l>J` z(aD=QC|*~WfH(HS5BXYpXgK&b6XgQ}>?tV;s1OeA1BkM_Qofb}dRk2V=4&DF%3zvm z0axU@7|&$$6k9}WXx?Z6jKFeqhFV$G^$9>^HIF+&CX*}Feb#8BWp{N&A|r>hstyD- z57n;GLIV_m-^Nbjr6d^`FR!vot%Ik!u*5(_X;Y|G?yh1qQ2&}na#i#Xa9D@cI1e9n zu)zwk0s*q6b4Ez3W`qV;r$#Jay0J9^1?K#fD1x#mQ~A(kLxMHy+f(EVfXLc^4W+;x z4Lzmghh^zS^edRQXmoTEaOTJC0fZdCb`t^4gED@-^6MiM+?ohdJ!b9 zBX2h5>JO!FRylIFwzfle(X4ScLRQ^s|A|q76&tMWkH12)eM3Sws^_nH~79$W8 zwuguVH$}EIRXF*@f6_ZR>2&9ke)eOxk8ySHuk|Y`2?Tqi>-m;7BJ061h+)rYFL}f5 zE;siZz*hb_?ZRbduKDa?zh+UtVw`g(Ft${-W?8ocBED%7bJcm1RI=l3`c!jv{IiAI zV2$&)-(K>PQ#Uu#DndFe3lq*9EK7%)x$kW2`gSmWJC40>|LQcr#OtyYB`mkZpXy}F zHs&DkVPz?J$xa*f*Pe-KWX64ZapSYjqtn%5n{o|vQo$VYvLYa5Ht6OXoOW@+EK1g$ z+rplSRw3eY=Uh4uB+Q|^o5EU=Iw@Ih22wP$650NF7!1?*JuCF90 z0qr}HUM4sxCJ|sC0t=ZQ8i2|Ti|fC6u8Rk)z>^eJ{uWjQL1L69Mk18XxYO}n-b zu<0EXvGpUBP;56UsC@I%!QbXw*9M%IbRP%2-=~%WQH4+zGpp%9BV+yYjfXBbqLv+Z zThK&q?!`JBDjDA0o^b!M=_Ad-QkD>gwMcH*l}M zt$_Gs-~$TWhnpJBAmQ6n}&iaspC?t`l zJ-Fau)KhNSa~*b&H1#%pkraw3;W*;s>vjIYE-DGfV zTlGkG=2MJr8f24$*O(hd`rG>Ux6kW(eXrW$GfgjsHn2Z~6cK6%e@8 zhdwB_w^I-@ia6-Tcr%Nb+7u)?U1Vs+i23+S&0(KL8ept~;p7ZY$wzvTDjO@}4`Fvp z#Z8u)cT^_^MzcW4*j_2EGJ8RR8vPs{Zr~ z47`-ihcbvcrlULnv+Aq^CIjj&UIC!`^h5xm{iqp61hC$D3xI9;nL!xP1vf+}usAIH zKO^-#oD{_b$S}G@U}u46v?@?ygr5)}{mZDivzG~zi2qLTzgJC}ncr!lhS-*p>qfO5 zCbn4nvtS4M%UiNYh;$FX;=~M=t=DUaLS6o;VK4_P&v5>OA#=_u~=GH+oElwY~oxyKixQe6;FxSkhdr4h6}5ZEj)P&|UfY&36yuJcyy zUhReu9m4;8=S|L609B3VIKHD<2P(I_=MwSMR;N))Tj1yq+FkZqIOfT}*Ax6x8!+tfQVD6$1XZz(M@@M7$0 zt)DqD;!eotGF$B{NNeh1S+JHU^~}j?L+jlJA{j2eh(p{PWXGj2K-I~}|HNHu^(5e&gzN;AQyKY^UeXzOuP{#2Kf;VI_!QW>3q05}__WYY z%Tqy@xw`lMNrO86Nqtb91w;Tuy~=-*CVyh|mmC8BU)hk}FUZS_0XY7@2^`Dpf8UTb z!pFn?!Iyl>2)t`0o<@Q`;^@*d%ZzhGg(YG`xPIw+n}4tDTsN$+Xua|7Gd|DuE-9zhZv^Ss=1tB?np+5f2FbRfPjUy0D1Zk%yio@?ZZv(`km zZAG_cYX={6`9+}lT=Y0~#b&FZFV0}e=;AO1T?<8z!@BSGEHYB9oicM%v3T%D;rzMX zbZWDg?O>4qQ3`r#dgRYIZnVY%a{48oC>I+6P&dc$mR2#lTe-s4l_ls$(YF6v1`<%W zqbCycn;GJC#kb$2MuT{i?V8 zWgV-v2XOw=3gMC^YF{f(fjDIaiRs^_AKYtN98{)jmDiP~9ko?M=?TK5o>}5o4(DWT z!u9cc&q|X0yCvz8m@pX93M=FeMgyGF3KX!?MT_Tyr7^9rs>l?o$jqaqB`6qz)e-p( z{27rmMGQ_L!GVE+$$Xk2LyW|C&s--M zNcI~&Rc|%1vz^Ac7hnSR=^6_bbMSAtH_CyOT*_;EU@IpNI#Y<3uIGcnBz<1onyfO{7O?$I zxgJ_g6bwx6S#0M1JM`_B{<bhz!{duzC3cNw}@b63;no3g( zh+rzXEHOb`jUJ)ZTCRYRAh7?M_n4typ|;`GcrO~&37Oro4s0NCh8ad{)NM1%08|$% zE^C!keG{mcY01VbOU6TtB9Me~FwQ`hv;l!ehlk03*iT_4XZMT>64FcPB$mJ2IHG*J zr>5_OJ0T>fjElhy+;g!}70JsLq9eX`eyk-lF958a^ur9a2Bx%{%P`WH-$XQKVYvB> z@k&M{%6JYRm(EXBf=xVH#6*g!=`|8B-}|@bpQO-1OXBK98!}58e8}>kZ<{EcBw=kQ zLd9#8sGWH>f7MPpdw-wIaINrbwyl;FDYA~*tz5|WQ``GWg|u28U#{>md}#J?;tDP! z#1*#uHa?G#iDo=F%%b^YQ>^OmN-69&7s-P6E>;xb8$3@j_hW0HcqPjnZTs|izVI~E zbaZ~E<6tzafl1-YKzPN6Kgr-n{C%A)TVk{)zs}Lt@kf0yOh;bzolsppB;RNX|LT!R&%t?BD+l0X4B8>5v14EPSl>GGD{@15m;WNVMp{RF zO)gUtf5FgFRKouO$TwoF5&8vJ*=?ClCl4Hv@Y6?s8v*HN*@`PH1trPmeO+(aJRRYm zf(DbMD$2}K$I1gE{Xzu;uSD)?H>?oeE5xw&+N^TZXuTaOi_yPDG4N)Ircv&83jaA5 z7>r|&kRLEde2xSS#)Ns0n{bSVJ>`*a%Q16%p0*b2+imwsB6Hg@Q6SIn1SkX?l)jU| z5V3OjpzlYL<@7d!^7DSjB>HM+UpQCVZsP~0M%BB`3@6jfdp|)u*S8Pohv>usLeUvW zxYIcZ#&y#RYnrVAggE1MEJkZLh5KkCEtE`^#{p^{K#Xy_TMOa0J0+-*!EE;ceQv}2 zv>!B0wLwEkDk_os1WWVwWYI#T*F{d+waL~5iWmdP943tI2>6mRA8*(gBakJi^5?B+ z1Vp#U$ClYdS9KA5`@qZiElRjtUHG(%f%HTV+UKnpIjzJkutmyZi$kE1c(a0QZfzP$;sZhCfc8r909;n>f zUq}>g_tI?7(hD-08|c7?k2a=Y2m1^)=N+?aR#Vo8a;e_yqez4|$LOe-zv8IA;3>D)j&klGqS|Hn zeN=zVcuKZyx-4!s4>BM??puxTk)%kt9SU!Ud}*B@c}Rp8?inF0hm;EmMjDPLn~wy?2;DC7$m1 zP?d1XTm=gvRrP`b`HBz|>>G>qS-+*X`DA)v;VKcjY#Xx9CbOCE{VL(-(hbC^0d#P3 ze{aWe%5QprYF(}Q14%L7c<^lcCXYgsnoySlh*0JA=51fp24%ES%z~=|EQIERiz1Y@ zA;s|o8G%Z2R1^*>msaLOLCNT=1{4)=^rHLf;RvsP+~`Yk9%s(ts-v%Z(^w!s3~quJ zssH?hBq(pRwz^;KBjh*-x7}&^|In1f-={&scZGLebU{kQbWsY2-)_HbjfXC1FE?LaC5laynf3%oj1a{CM^DbzYdb)xBzvtI}z&T zOP5W>L~$|~!W zp!!S|jNj>sVUmUdC*)Wa7;cGVg8yiI#KJyN3Q|8VB}>K`6N1AAB?eS++?4ruM1$dN z$1Ye)Ohp0e?0&%(6<}u*iMtFEjGQUI$_l=X(>j;O6?v#S;VT6P>)3Ozk1-8iEz`V` zKYT=0MY>iX8-80iNX==Kl^m=QLxM(@3a)_wTWKwO{24* zS3uEg$NMDM1WEdEjK_|e#TE}zE`Hg>TL}djcm;>jW(qA6oT3GOexa+-K@7Kf$0zM_e-Jpbx zfuscm1rxOruTgA-R{}ZWaT^H+-7_U6O}%+x$`sE;5OET~C47%1;=#Lx@+@$tk8M8B zkGXbpO>fZc1EV5|c-gF9wU0#7WahtaKRqksFVBD-oth~e=6N}qJDdW0>YiCX$Obi* z*t$Lj6v+0Eb(Ub1_CAHQIHV7qGU*{={v>}5A1yCDyXgk+4oGrmmFQ;CgWNMe!zzEI zr7Rngji>*(c%l=A$Bh|Z)c1{n1(V}oC8Ig`h#N}i_R$|>8OJAB?!=B<5TrqKvs+Og z0>%NBDU4aa-A(F@N%&QOmC(lOdI4`{?~oNK-^T{lg9y-MoBEwl3t)Y3U+zeBYiB)V zQUh2=3}^gAS!LtKA^%tfw?>TqYBAwgW3Pwj0J=2is&Y`Yp4@R(Of3O3CZpJ^m&F5B zZe79U`xmu{7W*knG|FT}gc^WKbw#mJL=UJeCZMR+-x=UWl}vLMzWWS_iY(v|5-Wi? zP~z&hrQ%azqf=xTC7ecnOuzvSejR$oVnDI4AF^aQ_q!YOh+bfy1Rw0W76Pky(?AZ@ zHN_XXEkZ#|nEGkf9;PD7xYy@$VhD4}UC3hbtTO5)Dxrqa0WxAos@2M-oN@=a&BZ?2 z1N8k1h^}0*b=o+UmHyMB8rLSV?nyjp)F`ARi}5Zxs4l42mnh%kbvd9OXoGae_T-;~ zb8wSjS&FhlzlV;!vmrCEGXNI8OpPhDc^`}0yoEizF+4xVv^5&U9GUUzIPK?fSGn}ti02)}(ty7Y6@J!`^?l)K+h9iztU4hXA zq=l+a?nZvsGlk!tPI8Ey_~?u#I$cQGJ|VomrnT1CA|5?Ljjk7+64UnqyIJfwXOle| zjE^b-;c=#T$EomqDm8!?Mc$$Yx(F^3rax z_yKYCzP*YTWfiUciW1@q+YifejqZ}xNn8SC*!G6Ya*e~J!XZg+U$irh}K1UPdb zs}zH@8oK2lzcY-$g`~V#oFlii#Qr)L>T14#KBc}u8ue?)tZ_5qEevF~_^S=%qr40t zoIDS#_rq3(Xy_>}icFT0i%ORPq}Sf@X^1)m2audMjwJ1ZHHZi8d?~` zb`zy4q^^ML9c1Ip;lxIH$gOS$#=A*3RvA=1^+;y&WK;dg`Cq7d+4#aeAj_-|5s#W8 zVyW3saW-dF(4q(1c7`ONB6>pBqLv*WP(YQrh``PGcX?qoRW*qHI1-UtdVyi{vI1p# z0XnFYw?27{u0^d5D8uhKhhh1&;S+oW=t1Qu&T7$ngadx7;pREJ7vf|#1L zQ#&1AfMV6TfLoZ8G|qBN1e!}n&=3SaZ$H`?IE#9i z2s|5+TShqIbJ!l@W`nLX=oV;*B%}ms!8nCvsV;TY)`x_|78jI6}PQ6R4LNes+Wu6F~CZO4vPi8;JIicgZ z5cS%3=5KEZ(&4baz7jrUO~P||ar-*K@On8gk1mmfhh!)Lfetq^Sw?mw!5|R1vrm#o z+HNc{i8crj2pv^1T9UMT*|S;Vv|E24KQ)8h59i+6=*W$OuOwU3=D3Loh4f_*ROSZ9 z_CSglJ*wnjE9)K2&7u2-pi7lK@EB13dnO)pOUfw)*On)?9s)E{zzPUcl*7LPDKD(8 zeUknJ-3Be40p&SGu=aWImE5@P>uCGe_>fyNl19z8O__TeNl5+k_V3gUjA2UHQHO)+ zGQ%Lo(|0+zlzipzipO7`131o?we~KL)qxQq&)ZR0?HQ9R;(?xu)<63W;((;Kh5j$A zhTwZtR+k_K>w`cgFg{bfOZcGEgN90Pg!AeoRKo$moqSwWRRO$dABQhszpYOvWmHW^F#GFs z8(uSA7)qJ$&%bJKukm%Mh)b?m2*7m|CtDa^ih~Rk*t1ynjvQ_ z(}Mru1V4iV8EvF*lC{V_xSpEX#pV1dTFlJhe^~?=q)fV-=OT0E;fa)`my;3q0zo6z zf{gIGO-fYpIuyc|e;A+qh2H%t=gt2@V2MBRiPwq;I<%HV3`*mjAQHiL_u{N1ZvmLz z{z2PgVLHED^(uywM%5!M^Ro!pMiTs4 z(Z~i>(Rz8H44S;N&xez>n+8(6wYLTye5hSfv2eoX^n+v|5T`IG=*)5j5%pVI=Lb zY#4LQ3~IgI1|L?)g)qpPUqOMjcmM{W0)|Y)^(_GEqz55j=pc$fPh|jbfExJ!gajey zu+d){JMcjYYAb^wHp4CdDx^6R1>X=lHz8HP|6}B9<4S_d&tZdxdAcA3mT-y>2C*(| zI70153w;rhM9DuJyUNn@`IJbb1k4u4~!Z!*3m)U)ebHd^68+zx#WBNwm@Qw z4v7G_m>-B%jd}7K(&FQZleM*bgY)HOU*J<6>8)U@uFJ9K!*aN<4G@~}Ct0gloImXb z`mvR=(9R-@_Q;CP<*)iw?zj!}z8?x1<|*rU7Q*A*F-Q7C=INFpK;7Ew;||(&to@t- zC4CDG3?yVgTP1TtaT85YgcPUO5jfz|2|^JSGP{4V$@HEwDN#38V^vvmqnM8vH0x)h zsf_5~pK1*weWC@0qwg4nLDZ$LDJp`pvnlQX-0!CVTpz8c!0RCRkFA>IbP!SLCtf;o z^zZ3iCRds0Src28xA-7Sn_+Wiw5%w7?4mUeXq5<7z$7BV9pFqlnEd?^ut-m9mr`En zm;81_pE9ok!ZZJViLUkROWYoN2&lH>x`twI;)CRFDnZbubgYg};N2VE{sFYCui5UN za&0k%iUoQBC|>+y;%iJ$<}S+nf@-$lB73ydc;a?(q}4u=;b2S=-9++1qeOG;qKMyF zb}1LuKWf+OD04yG0t9*Nj1}td5SeEJ8O@@Og@tbCQPz{oJ29sWLfo2AQks>Pq2CK;eX@H{P3tRn#qh{9{3si&-!+Jrq6P714MskxB$P@ z`Wd{}@$#G7@bLBi{x;|CKxTYxe$WAPOzxE}<`xoFCrBhLIt?01lj^G+yh-*wwadg9 z{!|g1gzqXzq!jd)lFY1%WkZ*u{uQ79ABMS6nC$F^0GLoKw?OTiAhmNy{n1pJxW)~E z_lme%&LIUa8v#YG6;MD$8)z7v(9es|g)$>*8&{{enwZ;&%K>M1+O0j)LjBOUr}H`E)j9j^Fv96pk>suyYR!D_(qaL_prbo zCfgXYRYuwbD1SWtG9P;;7`+6P*39 zfT5+$E+JA3NE$Jy7YcQ|b&oxiTIPJsvxStUEnv}zh9fdDqL%%Qmws^&6@8I~(cu-1 zO>BX_5+f<|C!SpSnDE>IUQ1PHK-d#_!;nqP%Sj$v))&Su0O4R{6DUU7P2DES>mUuy z)BoA_)HLHr>PlWg=wY!|2iF&HD72y>d}`hPJ+Z(Q*qo{pyuIc)#GQ z_-+Kt@mCJX49Vfh{gv(O{jo3~V79fs;l~d*(XCO0)t)2zb9;EPxf+d6!prWLSLHXf z_TWuDw>S=B^tiOKXU2eGjMuy&bUT%w=RgmqptLU-Di~o+3U?M3zM_oEIcefL7FDD? z%xtqC6OBAEcz6p%_w{0U)%*M26Rz89TH&Z19PfQ;MQyl?k8!O>r+1+=5ALEE09d+l z$-4A6>+8W=uNuIyJ0cQw?#&&jfLuT6=jt!X!= ze~%w%9kYhv17*690o0}pm`8k${*3>ow_k(bU>5;Wx0&MwOH6glT?{{n`^Ig)Z4MJc z0!bIcIQ4(}w_|o8W?Az}h|?f^N%8BSH|F=}?T4_%6FE5AqBy zj3O!PXgm1b1mDc@>qa+6U>a~n|L}zQcZNIsGOl5!k;HgZ9l+{2X(NLpg zL)TVuAA?2a)6IXXm=rkKCU$-)5V+^A%>DKEel!H3?P5vA0jNoqD@Y&I-pr~0Vgly1 zdzWIXVNEQ5+=LnHz`BIgAG1Q{WZUzm8~8rfs&|>@*UR%Sg1B}1XF(SrSzw{ywJ^F~vn{e* zZx$hCp`H?byFC6=Jz1hVw{v;CI!MP?`Kfdh%TLFcv;gIeNOBxUEAmX1==i1=Jd`&U z@gKoX!LwXDY>eEz`R*(E$#a9lE}X}7t0kwveu5qE&}-K4E{=pvi~wVMkc<_3oNgHl z7Q5%ju%jO%Mq{o_Z1}#3zHvb(pP~`zg9n>0eB~%xA?gN=0pco(8xjq|Dz=-E-x}X8 z)tp}%{q`FswVpxd-V0{*(3kITwg~pExy5Op%||vTC*QfE7q|^Wj1^u9_iY%E4YKpAh;Mrk|yNohwEb48wZgelC2CHze)wd;eRn08-gKH-1SfXA63J}+7#>58 z)97{$6TuunV@N*S>8R49(BRKJc_nt-L?(N8)+3xH7aiVmRcfn=I{Cx-M!%13{awR+ z@(lXWM}#QF{dZ0dv!!VC&@v`k#$$`j`V7xwM+?)D31!m$cMvs8rj@M%%SRTb9PiEXeVt>&oT5`qx=`dhMsdlh=d zY166%NU;`~A%omb*Nh)~IAnB$wh9^5uMkPWUA{Gwx`APTePnP0|gVGy;oZ^*MGe zM45qu8BX7XoESaTXJwURCspr{Y{hcm(FyeA@;+6q=PKol>~fzTzQ>C4VA)%B*1a_9 zxCOdqA0SSnsSmut_|aN4pz8qq4Z|-+aNU&maW^*yh~&?|@Y=4I`~({ESoai+k~J&Y z1eVizSyhqsVha1?X|wJ>R2RM@B*#1WNOmQd%n3;{g)@$Q8*qj@eNAE|=p?>_m)pWA zyzFn-`U8$^HYzqUfVY%1Nx$=?$;)bm{5g z-t=^s=i~wZYu?D4b#=Xhv55Vb{fk%?_@XVd{r_?2AZau1i~_N374(Drv3)oP~b2 zM|$qOGkK?>KUf1%AJ>OvA#G;L)Q$Yo+j~5)7E)DJmGw!TYnTn(%UR%_WF6Mx7Ut3W zHm`&N`YhgROBv{+$OirVj^hD&?^K4+67~>Ca5MvTt1*2lm@*fHeb=krZ_c!)h9h!y zoTc%KPxsC4t8JkdM%fBK*E2suisadXeDbU2pYO+Sext2svp~$Q`eRx>L1iGzcz;b= z(I<^eOc6INieImHz6jVMw#q!yr5#0-f)1}-l`304I0NW`gLm$`k;w~sUx0~nHP2Y| z)%xbKw72Ohf`P>C->-YFbe*64j%==vO?%8~LN{({-&>oRn-?)jAPI&grC>B-#;LF- zjVg#Q;o~ta;$R{{*jB~sljXUOm+nxGJrPNNEtow`=7p|uB=4O-22gLzOu2N&mlby2 zkwdAo!-O@2yt7YG=|Ct~kaP;@p2Lo5&a{X2pV>d?;(!^6=+t|Ndh;81mrb~0wu!w}9myQKn z`E26zqsfiPa>7JAk5O(MD;)i1IZwFnjI-sB_2($&OCIFa3!2u^x42Hnd*h#c0q{e- zn4(h-P<{#Von;@dHO3_DD;YxON7Xxa+qtD4I(*`V^1%ACOW1-Ni@3dY1~j#J@2)oE z)v!+uobW|-ClM#OuAe!fu9z6Z7{ek8Vt7(RZJvK{>fq6PnB#6uFPKOO#Tp+@*G*GZQ>WRPbfS(>Dmt zg|pjPfdu1$)*i^9KI5IbVR!7%oY8?5q_3JH^*Ez#Z!km_!JSKAfoXBT4jI8kckrG& z3WblOmO&OfEOfwDwzZ2Lg$xOyOzMbhBhk?;ty_Q@S7mBV_0|WpxQ|y++qHlpB7hi_ z@Z~-=D-6K3%)krV_|C4elI=4(4Ga^LF9iWP&{1o@6n1-RO4KD4V^$hi+ZN;{Q~UhV zP8Q6cpu@qKJSo_>i1IU^2HD?X!wnUvzE)^^#onq)v!Jwvw?1#@IyDX;*?j>^=Rig^ zkT`c=6V4lCqs^8unB)WYo2l7apNXUnEjU5ShB|NeRNqkzx!hHAuugP;yij%>e6?me)SYtI|1r;?jjaqqLLB8$ z+@IW2js_;_-U%%Y6h2^jyUk<`=YuZSLiy=ZpQ9G;ka5^F5?=m~PHJ|PBEY`s5y;V;c_$oqVqDuJ0g5%!(mkQ8(B$v4^de+O2 zS@*7c9X{&J(dVJHO~8R+N1^w#gQ}m`q&aR$+o#1IP}uy@`~2PQw-d7sE_JnXoH@PP zA@8Z%o3lcEYDas7ST=6m<$tu`o50JToA#PL|9R~!OTpvrX^sqxQdd&votgRDlv}Bp zS)KPmg8Tu!K>MU;g;6^T58Tn!O;aqsv()K)65sWl>1jPF;;cE(fsU9k>%_#P2KR$1 zT{gPztK80fLXFYETT|<=o9wEaal5p1wa&j1Rs6r=Xiu$XxNu+B!%xl`zbEFrZu8l` zD0Ul%!hx9{O-qw2_AGjq6S0LekAd;rF`JaklT#HMgNQ=93af(~fBE_Y+`^BNSyF+nzU;4i9 z_nmLQv*+yY+5NF+ck|=PB$>=iCdo{aC;6_VAcc-Xi~;}vx{S2A3IHIyfZ$OixR>ZA z`<=;4;!#OXP2&0a`Q+qe?(qKc@$v5N?&jv^;o;%?_wOoA6&Dv5x3{-^e0!dm+R~6M@L7yySs;nhklK|?-Yizv$H?MgsiNr;Q0<5%A(B9&Z;M??H=C! z-McS~eIygKG2ndjt zmTqrv9~~Xl)YRPG*-lGK8(J9D)6>h$%rrGMb#!!`o}O-MYEn^AnO$BJ6ckMA%?u6- zl9!k7@9&qBlRG;*)6vn1kB`sG%lr22+uy%`7Z(?!qodtiT?YmRT3T8X6BGIQ`C(({ zHa0e*qM~DCV^vjE#>U2mhK8l3rGgwv$tfz{Li`CWDvn%)O#z$KEPKxU`mY0{0s#49(%}>uC%A2-5W7b2OmZN_C zP5-@CG`Q)Pu;EfsY+aHs5ErWRQ+r}|pEhKusq633(o*G6rG25DbJ*&_!h*ib^zrO) zLqo&o%+H6`d>)YtLJ8yIM&m#JbSHPV74+sSDk>g+VIG-2-`YE>9{bxhHzTAsn$goy zQc{wYmDM$Lrk^)+l;uA-zH41NZ|XhU+uPeb(Hz)VeRch~xOGrecaU1V+dRD;mbUe? zd!18#B)mTCD8h7OcQdlB@yPGfpNaG1y&aG0MR|(}rihW;KRw5-MP^0W@y&74$LRU0w!S*!+A z{*v}@iO19_*LXRG1cZG7;{jkIW9nn&0 z$hUHL^^)~tyv(Kl?Eq!EGYa*Q>l_8;aCFO}Ael_|Qh7n5 znORgFxL5@iIKr7lnwtIq9Wtd-0s#K<5@{R|QoIJipM{kidwin+Bjph2WLTYI2~#%B z-dThd1K_#t>D|ToV+N?ObH&Etm0$`8y!*i)^e6Pk{#HK@yfljj^WiT2ODPyB9*@!B zoIe8rtANsZ@#QNF_*TMWF~|b9#@iTn#7J2H+BMzMDkT-t=0_}B5Nl3WQEk>|-MG6J zgwjZw)du+9HKbSmvr8OP$6hN`PlKC7{4bUNg9f8yda%(A>gqNtKPqLkcDU!#vj>4N zWeq#%0skc;yu}vIMA8UrbWmaU_ZwHX^?3g>s+R6hAe#gZ>FF=TN7&#qnLzM=UV7udqThnd(<}hn z?#AaOFlAisOV3>1LE^u_gX3$$!hxcew(l*?LB3A z@Q#oXoXm4QsqAFt3#s=}(%lysWh406SI)*L`ewcG0L0+InC_CGk zH`!UOiR+azx=I0_MX#~y7xf@wPb2@b09eVf-s>&e0d z7=7D29@hLiii+$&h2?W8U#Pe?41|L?ogOc1XK^awzz5L9^WM?rk7#rFRgKG z2v1P1*7eD&*7dE-`;)6zTrlJEs9%jcHM*Z#oK~E=e{y*zn7j2=_|2(kTm^@agT{9U zk>Pv8{Y#_vZ9lw^6r~QsP@JokJ*gE6y^kw?q4(SDcBJ=K+(!X{)@EKA<80`J!twT* zcCp>h33>7)Fj^*Y4?8h$%?k^TRTj#RMBggD@=qj&N*R6{k?FY~0(ypcw8rvPt}t`! zuZd^>C>5%&+s`@eFQFN(>$Nj@mGgtewF)JRkI26oMyz{sGdT(vm;(#fDtEhsS5o7A z-(GEV!S%6Q0h~JzG1e0U-4Xhsp|AwN_ZFQLLxF{oprBHb8}E$M-3`?tu(PveWOl;VUFurmEXxk_ zU%JD;qfOBc9Zgzxco@F-=DBG{hY)lm@*S;-7-0(o=~EP#%}SM6FOWb@+mCn#cr2(H z?nvp-+*Bh@AOP;`OYtf-p@IUHr~UJIbf_Ts=m@QQZDcV3Wb)axzm(Aki4rPjIonW) zBS`{Ag0-Ff^eUEAPaVar*;C^@{BWDo>M@?Y_wzu5TpnYX-Nua3(yjSv;8H`j$19R8 zu*4i{x$kVD93j15RN6>$Nff`ArjV;@CzbsQZI~UxZXSG?SGUi--RUgbTeqGRV4R{mK0S4?YF_**v4fi-i|DFkzurNz_}Tojq3Y z!DaC4#HIwtUog+#V(8ecD`BLf6nzE~<&n{lx6*JQ!bL~Y&J{8%8@;qh&8f{4C4rop z3+VT?Hz8(t1BPK4om&nvWzf~oJj+*;c@ovK#e!6|(mGO1OIJu-S`+hebmUeh7X(>|1 z?JoDY9R+8Q&P&|gBD#ti+_=$0r2<@W~PIaZI2YzOYKfJLNL;+gkvE6 zaB21*Wvm_-AS#X|82$yb1M7vszrrIjK7xN4;4f#`oAECa2~)nX@a>@fCkoU54E~{p z+Sw2dV*ZoDh;0sw)2Br5Bt6PxYM#aq?$R(vdVp6`SsQOKx6;TEPva8!@O_cO>f{7C6sk#8MowTnfJ}X zeDIPz;N$rmcnmKB7%f|2r=`Y(en2z`4FJHiTsgl|DIDOjK=9?i154orq)a8R;W6NvjyrFN0*JbRX`NVPn%zs&bhl5O)ygJSI)-nlZ1k($!}R+y9t2UDg_*swdJ>`C#g1<^ zvH8PY;{yiP2D!gWWw*~TL7Uil%95E1b94XJ>GCxUuU*Ok9!=@F=X@-c02f*Ph$u-Q z8fDas<=GM)rc zf485WU^G;l_w^|36c|2NYRJ6l3jcKH0=oF~G`TI2OeF zSM%2K<3j1c}EV~)Yp*D^V2?d+T5c8J!(-hdiSrzMzfJ zz}w31zx$6WFR;?({f)L9JQhr38qS=Qe4QfeWuRfWhXYTh$4_=70l$FoHfbXd2dR&V zrWU297*I_mlkaIHtd)`?WDamamLH^NVxQV0Cp9br)mT>)^*wzRy~z&_6J92#p`R;G z1^^C|crhI1n*XN#e}Oa*R;?xGn0^|l@aWTfXp9^=2;Ps&9+)Xs7sh1;!FRmCbSS&P zi)AQ}AQP79Xn3(n!mE;)tGo>*KHri-U?g~}YJgXn@|*<(FUtKHNZaW}q?h3c+n{(! zZ$qM^o?cio{0}Vuf$3TD6q~ZWrN!NIGZBO2|Lk0EL4y65R(_0rUW%*@MJn$|`ekJr z-#>e!SUUelB3EG#?5Z&$X&U*`99UeTh84>*J(T6Ha4<4(kn|sc{7IK-*DD;7iNe|* zQng}cK5oT|#REaIF19!SSPshw&3_tWpF0DyOfzA^UpTglB*vo)VzP4?SIA# zwK}C|e!_x%M<4oELm^lDSj{+QAK;oU+8dt#&f4!(RWJC0pkwpoV$#(Ss&^4Z)0c} z>1Su7h1{!zPD(yU0s75#N%IK*?1uGFwz(@VtS`iYL>PM>=dT(!6uAcbpM_aW`Qn|z z3bA+#;(r~Z0UFdKWV58RV;Xn|b{)kM-bqbj>@Nf9R&ZX=%||OFO?ZKmto;(m0C50Y z7}^G5J(H+G{ps)~0b|}{GB&x>OVQ6(;j*5+F8M=~=gI9}RoYli%ywV%V5Hvh^3K3M zi&UZ+y1>)!=33&uq5`VESL1;?hUboEb3+v7gW2u9<()}girk@=Ys@lvUi0?--<<6JRx|#zTe4>cBVbG# zd_fQUCgvn7I_`V;6EAx^YA!W@mAIV2F(xG#?+B0$t7N`!x5_1puC8d z>ya<0w)1{7S`M#JTtmPKt#AJLzD6X_(Y6rmgGDMP|~yfWTh@w>Yp*0_dyz?_at^6jHC7GEupBy_E3UUwsgD1<|&% znOX}a@#;bZd=vRq=_B`-yMstD&p6p8sVtBo@5GL{v2Bm!F)n>mK>J!;m<&e z9^QL1ag|OPBA7$dC?o#2c`dA1={;*u?ALI?)@%SHsL10&6U;MRMCAUJ#ea8`L{;<| zV=N^(@rqbjBJj7mnYgrv3Ea;7$=0?dox}Xt`sPNV%F}m-0`++Em9h6Qk?SWtTIDS# zsJ1e0Jn<~RyX0ZKY8!~{kkc3CM;Tpn7^fSG z(82m;>&G=w^PNP$w)0-~hs~J0%SJdHL~pLO zdi-Y|VZ&#vlkwX*L28xzdcptPY)jz((XYW=p)qlQA7yCPIY|m~k_hNmmN0-Pf+%_t z7P=&NHauqQU`&(=5@mwp5DxhQMMSDV8wIEmK*W??Y{GB>nuz95tN{QW>+}C9q}kOA z-ml~@BxhI0j~yb6U+9wX-)Wr_W`a80+m1Yj{^jg1-SNJ6d_mGYy1A%Bd|~%c^$k)i zFK$E_q{#O=S>cK6gBAQ66Kt?A6~e?v{}B1GFzL5Hl*GkzUWK6&^s9vClANL}HvCzR zNQ_I};Y5n8a4Ou5P9D7Q$&eUkzGaI}3_y#nzqcn&Li@LRlh&?aq=?wn{h1VgYUvId zT!9G80q#EFq+V3G#gAH>#qX_lQm1qh7e(|WGTxU+mW<6Cq#wK0 zxN{Os2gMC_Ob_k<-8m4ze6+1g96g`;wrytQR@HcOO|;K{{x}M-^Tc=VoJt%3?joz| z{+YbjRjr#n*<-F>IJ7M|iA%O5jon(eN2dC1d9=u$%$J+3(-oS=PDi*BaNM7kk1{8S z4zBQ@1&z~IvVgNKJa$(`mB`3MJGdP;iPUJ(=wZcGmTz3aC{8Qa{;~3s{pg-P(F3Ts zZw_ysFoag#`{!4-Z2t6kM`kvKSZ;D|MhtUrr_bKJ$^shs^^?p!t4I+>afBaM0w1Qh z-lHZVeUr67D7Oe}FqUn<5cz2iHCf*$mu#u zYCmj|eNGfW&g?kV3`y_%-jDy%I=skUQTX0Uv&z7i1_y3bU~N-l%GJJXLJDm8$3N*F zQ%J9vp#3LVCq?nirSIS0pmm1Y;i=l0wr;aHAAXs#pp4w8AChBBPS%*1l&1>AL7y~T z<3z>AW5LE|2|;-q;(}#4ofSga8c^(~Ls2k7`7@FAl2GrfSYF)o$-S*152}NAz-jSk zIw4$*Vq5h#mkVL$GT!V;bx zm-niX2mIxb-VeOuHp~an_O8H}57rayxd08=_m^B(^LSvS1;~lc{&QG-Cxnf#hbbCIj%n>?e^@#_B1CbpBrgf1St0G7uBIGlc6hkP zVGEm)h`RFwU~{tFplEW;mqQ(?Myi}%I7;YrjP(m5fRyQ!^ZzQ8Rl@XUSD*0fV|p6s zFjv5ZtL?z$cH`B9^074=c*jyqItr3lu%Yea>hN-6A9e5i-*i+@+nC>G6Ipc!zd!fi z)%Ysmfw$B=?c(6S6C2aqFB53$N6M^1rxGC7b(Gk5_#cuNDh3xiE1O9JJHn2cPocd0 zL{XhZD8;P5n>j93Mr4}=qL_jQ?!LJ?!sHIhMw)M1@8f>ZD2LRWNT##ox>I)X(dEWG z{tn+i&5k8<6OyBbmZ$Z5J=Q)_Y$1>IGR3eNZ7`3pAq#n<#T9*QMkQ#bmFE-mq3vvG zF{*rshaVa_ym@v0*8|Q>m-cfCiM#jFYl)bfhF_1jYP1rIo-4PzZDN2CN!jH@y%&I4 zJjayuo<8~D1Z{F{=>h#jb}-@qvo&;G_uOlHTR2pdlsw7p>G$AX(9b`Al4G_Z{+*XM z=2+4+$1Q_cu#AJ$3WWtF!a$j$mey0J-}UvfT&Vpx@I7XK9-9?sXwuE%@4Is|KL*h`x9-g;pEU49^|gx5Bm?aMj7+Z~^Pnrqtd8{sqCR@#1(A%7ryuXlwhKLS~ax{a~; zSv=XjqO9ebbY0+D02F%AhR#yCq72={_FR_N7u?-wo|OQb&rFgS7SVt%A^;lf>aeoo z=E=KC9K%8yBI^z*ww+ioE#~!#$Qhe^EWlnuJE|oH=7_PpD#D4G4Pkz0-_ zIxwyDX0@tobWNt%HEq&UlN03UgBxIwXKv;?{Jc zq5sgqxF8}+Px1ACQ_eWo#eGzN)09W-8`v~2JTJcm5ld}c0Js@k6f}zAi=n73VHvl% zuY+=eQa~)q_YVQD%70VGTO6bhQWrB177l)WxIVEwPmG}X-_!o!-_RneYO&1DxT{k& z&{s#$Ti+We^yeCn%cEvb*LQD(B|x!~2t1Rw!UAC%W?xqw6oOm2vs~Qm?dQoN8u>^_ z_`J8fzxXs97?5Y6XZs32WwBQW-<#?hc%*M!_UEN-UDj+Tr>>b)TAcX~K6#pQzuw=t zn?ENdL5b#IfF%#3{wU`8T-3sR$SS7#TUjfLLclr{oUkBaX^4?juFATY$|-2zb@EWAnHuhr0rG&6#ExmGhQ34 z%5nbst)?fwMQ4k6p75W7r}WK{j+qJ_=! z9N(rn&y|S5UnTwk_zKUPuT7H-)*|BOGMwLn5{8eL-5bNfw4QLf5!}L$+#1j5C$H~K ztLDXD^^TFSB}YFLezy>{osk#8nn0nx47(|*@n(WwnE#5bX?v)E_0iy$(g~62?n3=O zoa4KC2jX|t#X+NdF5Y$9OesrStcxpD(H0&|Ww+?%{oKL~Y|sc=`QmMb6b=-WRnK*i zwv<7Nq4ESZujo9P`<;I7i6YGLiid^Uu8GqjN#>O+d#fJBbU@S>WO+~IHqN}mnUs=9 zmbbA&eO~n#{nP#I>zUML`YHWL84TtDZH8!SyY+fNmGEn&vd2c5o;}KR%P!6{D94`I z1FQMFx@*bKD|ES&0m%g{3pW5v=ovJQ9+Lo}gtnV8Ed75iD|lA=sI;w3qcv3y$hHcp z<`?gI!X3~mi9e*rg_)C3zr(bvs5Do^-_xn(`c(Pfkh;3R=`n?Q+qt&qa~P)2(`gz&jY$x{?JV?sKgyiE z#4sa2JaUBBF=AS?C-UqX)N97bNsHkIvBfvAJlsKDtt6SdtLAny-VVid=5i0Tt+($+ zWxPeZ_Z}t}N}Et5zr{U+$D-d%YjHUG)nXTR<<R zTdp!XLX-=i8gq^TwZB6WUjrZikB=b@BPz+ZzM>J$l1)Rife&oga`@g;p>5;CILdv_ zQ&&At;P*q4h4rD-3<0K_ZKNCYi6Vu2o7rrH$1jz3$r%*PLhpM!!4GxwjX?+NF>R$j z5l&hmy_&$&w}!yPr*Xvad%TQ~!2hK{sck(3JCX=>xW7H$rob~kcp8vN99d*yki0MT zRUP=ts9=?x<;e7qr7Gf#e*HV5!S%kQY#Is4Dfd9mC-w7UBP-*%8daoV@|>-c9H?iB z#4*oB+(^Sc(2w>hONXlTf-f#;@tMtMf}V18I%}Z+M>8{wm)ZY?_yKl^#H88!lG z%_ke#Q0FX4PLDD_+SaitC6xe)FPIuVEZ46Pb~GQg###=+V0GPtX#81$udQ`uW?!&~?au!`ZfZw$>Tseb$5f8e@*Ewp+3U;|#`{rGk zn4sgjU&zfsp82e}?kyTrje5iXQNcPxqrNK@UVQJ0S7u+JTfgWp-@{WjITx64#~vT% zfZ{N&pM`XrC3TUVfNYp3rKYJmz&IK^*$JkOXw;^FrgCnA0+BFRi|>?AAl(d(7dc1D zAx8NVoX3vpR5&(8zex@#k_(UqTG~8D74GL>nRazIL#4fr;-)>CytQfGy@Ek5RagB) ze^&@p8@$)Ji=Ny~Ly5Vm`Vlwf*)W-Z_(Q#kSOexc#s?p;=OUpqUZpa&aG{5aaPlxX z=+(_&C4GpF`s$bIOiqdN%m2S-GiU2lY}hG?Q@U3f~ri0u$rJueDI3&1_Y ze)(1|OCF1CMAd!u5q*Ws^ZEF3nHs_>$vC3?h5?Ro(}9VO9%@smdi-m%mX5pP)tL-^ zoD6&4V$d+L8)k(A9Jyg$rytyR=3BHL^R&vwKg_nl6Ao1GK@Uqp5Eb-(EY8hw)xI1V zic^o?wJjk|gzsXthT*ejvF`vg6XZl3T$tN)tLX1`>QkA69)oD+(FZ((aRX ztI)nHZesO>l#s^h0DHg1R;fd?PC204%8tIXkAn(cw_Mwl&iWYab)k#?aw+oCH_WDz z`~kxLxDcqSF&vJYhAOM1)sIEMS^W6W)oYEk!Xs7h&bR*dM|m5vE1W&5kE}4z)KZC= zbJdRl?`c00=G0S=Qb9bz2*zK8I?KDXWEq)7i^ zYi`@P{EGfp0j0^w63mJQCp?O1fq5wOW&V{6ZaK}#64uDSTY~>{fDy!~bFSH_C&O`} z>}KPkZ$>=W0mvqpx7lD$=U$>`CvFxjV)+y z5M*3d=b{@fae~Y$%c(1j-}7i(7^3Kx+yOEv3`vB_tv^*vcF79U+X7l&*Xbx#Z?Jh1 zLV2J};m5v4g?-&gFm92m_$~raa#tdt^>H0wBY;HbzHLS7qg{qGdh;Ew@72G!znk!1 zHi0pza6*x8xE-KXWdFVgWKuT03FK|h=?&6jP^N;UgUpudNlXI`T(M54-X{I19qvsX zni)lUEqFtJKp-v`d7F8!nz0ySvC#5?DWD)YWyoZC{fq7IZ*AAj5apx%xN`Q}N%T&r zi>(G~AIO9qh`gB=)|QAzq-t@c>R1f6Kz6heA26znz-TfWPx^L7^jF&}9rJ1tbT%WF z-@e>4Sgx=W)Hc-2mcaVK%77VZ!7l`tfPi$#LVzgeOx?E6t8@P{J$TJ6qs|6?n%tws ze!@|n{Aiu0hLNALRwg!K4~XFMb0&+B)Spv8B0PC%{NhIg~q z{S^Z>M#u{36r~kDZXRzan0(k5H>#!Mi})eIMk}*sa(sW2Z^*Vjr`&Q8UQpc{DI|Ib z;89^2af|>;vujqw81$(*uu2T5OLD<(46z`~x8HHm4SzRaQvSu8>=>33w<<@@thK9m z7@<)Gt|=wW7Pq75h+yB-nz)a-AmtPl&Y>%oL2HnSvy*%0`5>Mv`E$yz!U$vYZeA7U zU8)grwUKDW|HXAeQXZ8CB*&63AFbWj@sUVa2rBVKaB7$zX$&a!UKqV1hPOpY2Ww+C z0nT4gjITglvlUXV-+?FQL{C)&EKHXSs2=cM0Wa6JV!*!T8mWRjycv^EQHq@MV_b3f zBQaV(gcW_*4wyrOvTJj1NrG?QkTC~Tn+68nx&wR(GIQ!8UHUkwkAm@0 zgOZFNL!m-ceZQy%ES5J>9dgOT{5cP_CC(e57fQq2^e z)rU?w6H7a~Km_h9qq!6@RMhBPg&*XwO#1k4NO@$64rm4Ot93piX7ph` zv9yg3PCgvILQ(fh|At2ubHUp3M$?g=I%AtOP?o;P=zTPWRTfQ+uY3Oy|yfHvDiGl)lhn_1O*=M-itFBf@)>k%0xuyJ*nD$Pd>qr5Kum#T# zYn)oWIR|pWQ_d)xB+T#P_M>$8E%XZvV;;pa8?hLu6)E^-Dy`E!MhY|Vnx(;1;1c1Y zr+_*5Wcv8pcFfWDjTOQXX5w^xr9}yO`q6#t+leDs58(;H~x19(g*v-;(gI#Ld|RwFHk@;ybG3}EOC#;r~G=`hh!LNK&=vtG5{Iq;u@`NyU1AIxV672zc03@E_#EppP*9)xdfcekh;}ksHU_KmC}}i zuk9`RTiPXS+#Hi%tkxKYcV_DG=DCUp<(bL_RA1viGQqhr%HE(hB5O6vws1!! z!STeDg!*;ddG}ut%iSqwoIo| zrd!E6X0%uWV+s*hpo>BeAfF5tsR98#+|z;UgUk!xaPQq2WLpprCaRC+QNRZ7B1VVX z5Vj040uc2sHM2+ei^{KX?w zA-4IALy8{tI#tM-^fvytom^1RSw7A5G#iqH0cB5N*McTWONT?!?lV1}upNgWA5Y2a z-CC7)l_6ER4*H}Q?=q=h2S}EI{^E7>Bm3O|dk?Qhg2m0MsF@?ymzZ`PHngHgrj#C= zflfL2@@l`(1GxIvs!Bg(kycGiCo?oaOmx(3Twj2Df}N)-G3w&>N2`tUx@~Jpq2^k$S$>7R-b`f0!Vqi^ljqXP)FiCrd6#~ zSB*&-JmIBZSZEU{tJD?PEgDwRiJAyl=Y0k?Bru@}h*%!lYLYroHvkXgg68E5cq3^+ zZ0mla%^|Q#PZ8@MB+qZiyYjo*?*W1l4Pk%Z$6o58?*5U*?*8XF6ylYe&4HT3W4vM@ zuSBagFP1kPNFdmGO9QeT8pXr?B3`YHf1;A$c!&gD=|E^^eH$s&0pic0x1pB#!9ju4 z13&6m(yE5JT8|AQ6+-a(3p|mcFFo!jkH_7|0D?p$B=>;mCtbkn`glc%j6~Ry@@qNT z>IWKV_8K^S!4lqfr85|lbEj5U%||SG=lEFY#de#CyV#KADb`--b?i?GxW=3z^j_}mB1TgvR>0`rb;(Zk5Z0qH+b>*;3CjHgnvKuu#)oIB! zCd(gX%=oqq`WO*4I4N?pKcNDCN4uFD+`1Nb0~h&QO)P?MBw}Bd+m=UVAm%-0-|FU4 zL`@2`$pV5chzq>Kc_wOt%jCXB9f$C4U#;I}0q{9tlXC(Q9fOuYSh4B+Q85e%xFiU_7Irw|#&J(Q*B)-1K zN^*;FvGYBvBc^;0-7iFn6gUifn343-|ME=xa|fq}w4Lc?xt|yY$I}GrdRZQeo(Eb) z(uegOOR9+SN(&W*`L}(;j|;u0j6FH%p<%dh5nVB+_<5S<6F%1kGGQiwu#&>Kb@Y2Y zn*)YEUtZtiH-Am+-m@{mDPtipenSD%X)&`7iXOjniTsSXD4-rPlM+@Dk4Y)3#oY6v z5cLMa4WLqO>+^G!YA*x2xH6&SvkrV1YF5zat|pDX02VNYS_rd`M;hbIv4(zv$%d z2$T+yr_qOO4r8Fn>wYC~hH<~!@jZ7nwjp@)L*A`O!BBY5 zEGMlxiPN+-+t@-9Zc9P1s7-G0dbIxA!(YbKe6KzlDKT}66=%OwVIa%pyO@3g@x8oz z6BPPbLp5^lm5y`Q(tIl@w4QOJ$O0@KffjI19^p@Ln1VmT)r*sh#w31m zrMf&jAd)qxdAVKpbeE4p*s~x#lWXt4R^d))`Y^$0 zNyl9lj?j?&-jxX6mUbG2Y6;^PA*@0y;dBoplcnoTvlKd&LiT4pj=*NDJd2_$l2V^` zWJ4_lpm-I>^{1U?I4}%9hnU%#sJi?JI{2;=J4GfeggfM#(Q0-D|911`hex)m2ns4d zd`4^5>p<(FyrGN1_ZkX$1&c8n2*HL4|A{tc`$7yR?m!^LtZXCC&b|@sPbci~rpRfH zD{F{k)8G#HVm@#^J=3<}ce2`4BlWGWZs?rlxJ0P&`n(bokC%KjYi(a&_w9`oRShD_ ziYKQJ(w{=%Omb0K%GJQ?KGG`>_wBji;YU8jsi!g_!G#77w{zm0)a~IkkIS#;XTx4z z5BOC$udN5xI@L8jMHI4C-o^A2u7<^t281)rq37VzCMqrbr_eaCzLRfvR6`ZvNbv7| zZhwT+#;-!)*zT*Dd}I3y-O&i z^a0NWv)>3Xy9B7EO0`Q5uxHi^R4cFxwTn<-A+aIsj_%^HmwP;%C};1ImltgijZh?ZcNs>h*=D`p_CL{O(&UPK zHT(YR&#l5p!0ZDW|74gir`M2+qW;4lY5rM%JuiNXonU!PV>YA}z=1TNyHkSUe6xe; zHM7WVklU-J_hmL^O93Y}h(@ZUO{fCUmDUb*qJDWKypfNWCtLXC*MJ1OiHAg7^+lYn zW#DLXc5F!2bOWig0)V+rZb(9qlA4-d&*~uR@<1I*{S$+IxAPmXXqJyK$M7n@++p}6 zs>R>^+`&|EecpFz%bjkI`o_k$n5`T(X(cwlvp&CtKC(fH7@?QhV_H|j+(Z3LielXN z+JKArLi#W1Cb#{?w0rwC$i~YBF^UL0s<-J=8rc_{SGAb;j?w3?Bt$6hrFW5>`f&^F z{$qUkBWGGuiHLQes!AnPB=A4Z=2OLOeTKl>1du+FHagS$;S_Rx=SDaIIVUE5`Xyk& zqz$JrbgG?;Tn(|cWR-45F}y<|^8FPh*GWy_;$nC^)rhQ#mf1?Z==;)LCsh^CCSv|{ zlIa~fC#pMsuk>i$n53v?!{`6n&yv{!zZzEFA6BIxtrEN(#I@+&#QwzhSPF-YkGL{M z+ITJW)Gfv1KJ3wg4luhA*HPE;s;;m@I1OaIsj zmxb5T%$c<>{R1HsE-8&Zb7gxvrN8Do6KQ(rSt)Z-^8pCPcQ0NMn4tI$GxEc!l6`>Z zfNUY>t`*ZBN@`QV5%Rvt>5Cg5bt#PywONFdYJh3MFTpLsU}!lvQ;Db1vBqMk1xt=iz`L{O2OhOO3io(j*o~J;%11>GEFI3y~U#QXMobjwxgfMQ)5XO0-_# zO2lHvwDMbwgHh-EAYN)}z79o!kFf`1PVK{TfnJ$?g60c~llFglxLpQM@IKChH7ON= zdoYi}w0vP5@B=wLU@KW}SsnP)-OIW0n3zfjYHmKJl9u)OMpt!q*k4#!ylItmmkjsz zC#}N3(~wAFo)Sa=y7bRlE%_px1ej%n|Hc1oe|?zful>jPjhYAGa7V|AW!f6i4N=PtHKC)1g!_EL(B^(YY+r&#m21HV$=&y#JYK%ex0c50d>T(1D=V!c_UC zG(tH}EpQbhB$C7qu79-|uiNiTvK7iYhdf~u9B9UE@aTTsn)kAST%3(rDDF{RJ?AN- z(C9gnbASH(d$RvEiARqzBb42Q;H{J1Rhdxc4HP>zh67QQmi<4Z7D2!wYVq_|FG;#5 zgD+pA`5B&;9=DM27IT$nFZ+Y{dw8_iIRGsYKRHB1OFJHcV-{S1TB*ipnLvV$NqJaO z?5lltd!m_ee4D*}M`ufC2}0W;2sL6W7ELrB{q{g9{+<5na(i#9GjHXjaNhgdBmSnY zo#z^2{F~UdHUY+FHMsXUaUN)$1mQE;DlJT*;5R67G+HRe|0SF4B#l!@OVC96L`MBm z>+mpDlxDSs4OcJ{On6 z5u(Y`zpEOp-E=k>*~yAUunoy%q=4Bbp7G)8A)?b+7Df-T^ZNjHhu^eU#9qXo4C*&2 z4gQ2P2s()q!@5frfa~rwB+fJV4PI71Zqj_&QN7##^(_wcuuwHVP5h38mGpJ6QiZ;D zrC=u2=ZHI{jeo0^ZTU|y2lx5rv&bbaMdh9n-8&VEr)5ehqY7@d?HGl-#V-K@em6y` z_9P|iK+hZ6V2IdHJwp26{3;V`G;_?Dc00|Kb(1F&bQSImDzPXcnBNK({bL^Zqg7%K zxcK_w^iaL;-ely`l7CS&&|MR<`5X95DP?cZN~UlT)=t|tY8GRL^iejtK_kg}ac0IX zwJn5r524vX-Lh==#h+w9E6mz{-z;nsVzeyV&#uuUWbSc$^K#!_ROmrDqwTP-Suq^xP3c)}y^#q!gT@LAN3kB|?xm9Or8GZW{er5O-`Im<{>UsC#}$r_DVmHN@Bel>eY-lSEe9Mj;~2AX1JQ0Iq6p0Hds+KI@L-=$ zTG7ny4QlxG~5R}sN&URiOaO^WeiXJ3(p388v zZ@ygtUvbekC_bp}`?Ox@Ie=ZUegpGfO5FSJ2RY~9W@#a26Mhe7$?NPGE|OdmdOh9o zy^cM|hUit0@`+=`&Qs~=V%u|`f*A^W*i$68C;g-t-u(@#5{C<$ zzr2{P`P2qGg?L<7t#iEUwtEQJtaZ%H_hFKz3bRB(rVG@eMzSLaZBN*t_u~>({^TSO z!kA%%?^l-D)cQ*%uSG`w6@31XoKHreZcDH8qGyAZibp;cEY3Wv?M#1}9M0nhKz~T1 zjSYJ}w;p(-cg)MUYyRw8pN~Wdyu3Y{0yL5j<#dr(o71$&F2Vr85rRt>d~Zbpjb*ic zeo!?B)T5ocz$GP&vQ(PPy;dD`F+hQb{O!o0wlZ#+QTg=js>p6nz4i?2(P(lJDTt@w01c1q^|)TBa`ZZp3Z^&aAEQ-DK?DQ$g`6f)oKB~yHK3w!&? zd&n|}VfBv?#;VHXXvaEsnom6@mJPTAp@TCTR|)i6+tc81Qe$O-=H_X0peK2IU~CQ3Z{$|i`zPy#E&~vnN`>4n_OvETr6fx@C`TmgSMO#Mdo-{S$7vU))B(RF(#HUDQIm? z4A`fF@_;)!XHK5p)za{q@=*pj|ZB@j2c=^w_f0UhMgJmKM?nVH!PYPgwlDAHDydgis>9nfNPDpx&R`v>g<%TRdLA#D0vkdD1s^fFb=my=j7>|`8J7ZnycQ`m5Ew`|m$j%;@2 zXw)*?APtwH3)`uy5-yDH`g;(6Uh<%p_+4Kby@6 zcx4?VN-E!zOis%GW%VwFCgqPRAB2mWGRk~TnDXj6%Z2p9>b_tfIcbrp%pQiu?0ELGqJK)n`a+w7E0{?CQIE~;2CFaf8q53Rhhzu;3(UaCev>!QCym1$PUud0QhGTJca~$zTA9c zHU$7sjk3JDx zR!&Z?t*y<*#>U&*J0&H>%E~G`JKNsgzNDn2xw(0Gc(|dVAuKE`C@5%eZ?C+(ytufy zuCA`Sx>`X&;pfkvr>Cd8ySqC(JD)#)4h#%*aBxs3qzJZ8@>{tU0JU-;3>^SO34$`b=irPs7UX zh@pwiHz{B+;qW?B4FY*OpBf}yp4j3y5mbGFzzYt-ZA}#o70VO=!CB){*FItz4lhbk>9vF#QLj)QC z_Egiiy&so)zWcS3407`#q^12yAC){_JyA0(if*_9PfiYtoN>h%YTdJW;&{Q09uW1p z3;@ganDV|d$clA%=x=-O{T(+|==hpf5=d$Ih6#du5!E?~1M7db+YN_Rlnj8UUx>BO zw*)2ee5C`r_$dgG#FylaV2H|Ws6Xl$J(|%Pu_#QPsuG*6zU6ck zQSxvfc$Q0cXo+(JTfeTDPW$=IYe!(3;`uOTEg^%ccT}l!bihbl&l7EqOg_d0f=hc1 z75g`;2J`duBKvJl5S(*V1L;7IY`)h?3IiV1kk{dDEPe{>ahs=s*z%AoIm#_KzwShtB62p9vK24+i#QU-Dl&+3CIkTUvz$Co^Aq(y>riZL&Z=(O=gDH znkM~f{xW*e3y?EE<@ZlIm$${uD5_{<`_mt)1j-;bvon_FJNIY}{P>*{WN2tmYN&5O z${I%>!$=k*k>{KDP^|9IT(_R(X1>%1y?6A0P$pJfxC!em#>ZA)-KVe$dG^L^vFEd+ z6NpK8Rajwv^84hji(%}sbK012z1jRV?i;898qP6oIqqvjI}_SsAtwa>Mm8rZahgK3 z&?&)b(~~lENJ0FH*ZwJcBDFdooNLl|{7ruD<#0_XNDMJcE?~JdL(XD`7mXasB794q z`Ls|}_ps<427()-Cp)r}yWGsY#DpN_*z{auKK#J~Ly*XIo@Gr9YSen+0Dv3_`g6E4 z+lv>3g@o1jf;|4U7`Yr&EEx!70)chFaMf@~rpW)98#C>oBJBTF-SK&QvU#b36L#7q z-1K>gy3PQJLdq9}tj_4RAyv8{8A3_P;=73Q@M!eIHKR6AwNKuAVlr!Iwv)mDjwUhe zi4rLa09SH()?a8XQ9uEvHU@nE2wpfWXufpzqmS+t;yOAAt`fa)E2!};0J8nDsEW}| z0!A`M#Tfi>8uqNpn~}`LOVtydt|oKPsy79X4n?x3<4| zG#c4+`OH;KVjM97TXxH-pf!_`i`J1bHY{-ben*Hv zYx>5({Uqa%6(qq}xYgDd3O{A)$OC*Or3DG4VX|rZp5p0-E@e8q4gp7lLmxV~=s90?EEsToTVtC|O zcpy^{`2By5oCykr!Xrt%1$3Zd+HmpkNWqf-Pm|EPw$rF%MAD~O}wBK|f)E@x%TI z>qRi00X@nd9>{)=*~sPisEBv}!iQz(ey4v+C*bNvC9Cw0OMR;tmDcw~M8(J^3{ESm z{ubG5tM&xM#{34~;kK4Z251fbq}Z{jcRkYT*6nXmi;~4*cuNzbFtR-7qUOmnhYbU^ z{GF2ureVQM#Vm7{@KU}*SH-BIvf^N}U*j@Hw5oy=takS)A*$YlM}(|kJ|c_v(dX$5 zPz|Hmm+%sAJ1+94SZY@|pzY9qP^QcxvXLQrKh*AI1dNzcb+H-e=)z#s|x+thvA`Cbq z=fax#sjtx>>h@X$EX3Sa+~3Cj1s{Ze+Z{uNB^zuGHE%a2n?tM-hjYNVoh{nPkpQJ@!n0>wLv;Xx@>Jc*Ojz z(aw(KxNoeT`Q05I$(F#mb31!)(72_etvqSpLw$zW;H+`I^YpOp`^Y+5&T}@UQSgWHgbMEi>mYsKT3HyF`BfnmBKRbwZZ*NW^xz0AMCf&}P zxo*0wluaw>&+Z7fUdYphMqIkI4|j~>8{3y*Z2Idd@{lj+c(ACE5ai>R);%k1@A>LI zh<>yak>+-510FIQKHD|{6@NtZl<>%#3HY>%Sbpzduy)YM<)@r$;pKb@uzETA=N{=` z$LB*z9843@xr3Qz6t=tCr%?C188rQ8u;|f3htq$=;TN^epQiRGZF85?`n#p`YcoaK zs9EC|cHpKJ&Cd^EgN&}+znVQ5_`1>rXw$UzG$q_mf2yO7Rm+@Y6CbzJB~B=1+!uZ9 z0&hxM!U~Plc0}wB`K}d0de1SX;=Di%c;sV2y`qI9%RcSpU{@!Q6pjj`NsA{Qc{f{6 zkeE?MAwVxC#)J|NhU@-VG$AMqS)pcMrBv=S^8C=U7RBIC8>Kg>~5{%d)7 zD{ZwMiI*xRl>c((X4M}44)b9h98LFCv)lcYNleDcZkD8&?OAu#;p*r(znCp{J{~Gm7!8=52e8CY;?AcBrHSz2K)v4Hqd^uY4=HZ zTg(dtw12?J?rNF*N@p0RnXr@tOs?2JEM-T!Jn4Y`g0#BfyH=W9_f>^Hj}XWytWSua zv+dKOU0rrE`%8f)M~O1yUM=A$`;kzkMvm2$CZ$u_^DzZKN6SY<*1J!7E_E_&yIX3` z{)kB%`YR^DH+b^8ka9WT>do&9)qQ!|H8rxW+k4XqiaJwgoyb|A7|vo9Xk%7b?%_aK z#g9}!^a37wvHt7v*23rAMir{@Kw0bRITQhIr9VzW9aDoonf>iC-G(=dGq<{i$%G+l zL$}xR1tkQ8U|=px)@6!`H4t8om**Zv0tRL!Fx(~Q5$@^91z{39Kbat* zBq22hrG=#&VeOp&sAEF^XH%k5y#Lq=48YHs_@6x3e-(FcHLgRpzpwl5KsbCKxK!7Z zDdou>>!_I(W$u+$(5Q|8~x0s|#!j(qtA&E*Tdhds3{%I%=MH|Bn<+ zGet(@zdL8kjz{mp{xO)!hmrg54wKPYP8;?@xi6guIDeu8IVOr8F;-vdz$6GxsrGHLEG+!_Qb5o0ae#E zQ_cH9ub`%=_8t60o#{4$NA)93O(LGkqitkuBi_MxWDJ^&9&Y@vK1{zgYjdPEl)2=M zYHqjQJZq6;ZV=ffL?oa8xPH>>cyVX{6v4k!s=+bjorpHmd-97;#XkWsd|Hg}jnTnWie@eh^oVGy$r$p4LgH-) z3r~z`LAHXJR%IIdvqf$nfY{{@AI>h|)d*yoY)$$|F!4PwaN*FgUov(#2K3M9BN=(L z6A$Z6f9ox)$?`Ngcob;YSqYmJz5g~v(F$vJ?Wtb|Y+LHEcPm0qIA&w)_S)ht7N z9}c0XlyvrstV^4v@1hsGr}w=L*=u3vVwci4RrlqCq-M=zsxcFk4`C-CD&&k3*D7F} z$EjpZt_?9CPNa}#3$BGaAG3yQ$Qvf?06as?hKb8V_O4@!P0Sm2 zY*S1Q$JJBZ651b_Ot*UyJO+G*FsqEMA?Jc<5Ou%ibiEXZ$Yaz>ya}TXMo4{S8SxQA z2??Ezf9wT3Nfs87v2)J@RG^PtG^z5XMER6*1D--e;4 zjl5nn(K-rK^Y+%`M`u&|J2lnfTKmp|!Pfs9$9Yp5NvW{m-&)dNLH=34G!-F3YR|L# z`Bf8PY+7c+nd+^HQWfnZ?#7JHsH2emw1UbkduuEr$L)@|--nnr1GE*(gvVctJ|n_4 zzoIs06$rcVW0G(6g`ZO-Hprs$cDdo~-SAHHS^EUltWF%>ZzCqWa%Ljf%~W-qt;}ok!O^B9&R?29Xi964@fR+-d6B*r+ zWwKkrfWwVj^cud1Q&g#;hAqYPJI6}9PS{}~lLy1OUDinbdw+*QhI6fXfuR|la+mU} zot8>;izW>Lt*0b#@Fbz}r-(TcZqeS?nilO!kte@&lWsrRi_hhmXlxI%{9$-m!qI_N z;adKw%ssnxcPQZ5?anLg#^PE))ymAvsOJAGtt#V47#Kf5kK!67$> z60DM49q!ackfUwf?9yFPUF5k7-w(JTV00FkMsNk<_aIJ*!V#wvF{ul~e|y4%!Lw__LK(`>rKxpI6qh zm0rsA7Dip!7uLsSt3r#egvE$U@r_NmeJ7S~N&sXd9nVJ;v|o_YYai&FupMDB&kdE1 zl~MJmfVi6%)EURvNTVs_+F=j_ubt)3ug<`mE(^_}&xK)UcqG?zS?C&oj{NK~fLe(s z82p?D86Q9#U%#S0SBD|kxK_`#;qD{Ri!5+32+x?={clL~^@2?$B=Mh1L=-B9iN6Kn z!@u$h!UWSj!1|lhvG9H2ku1-)airAq{uZ3~HZq%)iK-d-kqC^`4R&uJTUZJh>JFbTnj zPl)Vg^?C7pZWm!QfPP-9ClO7lKO|7J4JC_>vT5WuBvHCS=~9Ez?I~m8Lr!upE{f*^ zwxD5jVu|cyqt3kP5f>Nf{m-v`Yp+qT%>InAa?H|F`uUmF0=(x!D`@Iji)h(TE<$T1 zXiA{3(Fr3X)qyfwbS3M@1iYM?H~m$)v#{XPG@HK8oy< zH%e`DNus6~_5by-EBeP|)X?WcWG5S%=sfcs5=CmYjq6YzC37{r8VWP4yGHv$tTIbnc zUyy)D&Y*@tcPq{Z$cdD zD_mHApq25+963>S+Cl-(KQ+niE{VOs!$N?I^}S(R-%OdE=2!hr7JYYHac3)L4a%6a zeYVT8ABx(AH+=t}BON`WXedav`{6e8V*ONdIOMk%1;Q-Q&mr(ilqijp z<+dVv)tvBq4L-Qk=gUFo-yj5&iNt) zjl z&d1`-ET8x^f*sP=dbr!Hn(vT6>3Y|BA|lwvQ^e*cGQmJTA)B3u(5lhVCY449J?^j% zd>KMeXW(B>AW4=Ks;?P7w1Pu*RV4dcvBeW6f~5(Yp%S4XSMPDNlZlgiy)vfs3}rH8 zNv@~J@ZF)@B5v-=QHr}H{K;8W`E>scO_;tdNqtSeYTe>KZeH&mE-2Ujz8OJ3X+R{G z?0LKflqT5_D?L4r=C`2VEbjz1t0@gU6k>QyXJ2lW-!+@m`o7ctdRYkf0Z^q*4&x8;UjD_n>bci;#5A@%#}dtPh< z&g$2dW6XMrjLUm`qJioFQBfn=q^5yV1QbpY<fT>J|?nq2j z@Yk4ymlNt^em;a9#1;cfx0_>#W@Y+z^}P85X>H#{x5%OAF@A>ZhNFSlDR4 z&`*W_BaI<^9gTEG4KtS2==k<~EAl^^#~Lq?4mTYz;NkACE49T^=7vnbxpMXer_j|W zk*lLp-UzzqxW$KHcvE07b^}_QoB&hg<;h#7(O5GzMw$B`p zrO)Z{;%oycl$ZjsM-_S=TQnK3h)Jb+?Uyb^JK%f@Jjcx2BU-K=*aAsEV2z97!rHq} zx_xz>SH8{iLtR*B%k-{M6boKQ*!!N|KX|Nl%3m&#ukscD;BwztVEC+SK2o^}oz^n=T@fsJ_TWJCB z7^X#R4~L~U8a@@LN&QJ?iYVm)jXa^nxT>|LrUtu7NN_PF(bfIVcpNn+Kv?;+E8ln} zt~NQe@zx4G!<5?YkqMr*g6tPG=3Slcuw0JraxoZ50Z|!Qu3a_Zm_Urudh;g+i-nVRjG`Ztt|u18Wc|j zRI6@UtIE&Pl{Db~kICvjxWxBWQ3>1-rtl`_FRGewW=KVw5-q-#HJ?5iZ}5chu+Ca( zt&-D)Rpkgi7VKAkevz(#RiOlGgrjk0cHM}^$i`UXThImx*+lk~0&}S)5u46oL1%Aq z?C_9QH4|=DM-@Azb^z}n$`+tIuT_cD%!e~fuu>#8zXZzy^A!xs)ed81bW(bkYQmY6c*Jy`@@ z)SZCckh`)z0QYCPB5FdtUwcxu7a*SGS=sM_h$Z;tH0*fm)p36s0<2-puXz*PusTxTFIOh$*; z4taGIA?Gd7_WT(8L+9HUw1<>uA{!xSb=CWj>;e}K&BlL;&(g3 z@{QpgJERw_;n`SB-U%SP62j88p|p(Ld|ta+LX~Flj@wYYY0yxoA1Vg2nh3 zMMN(Ca{!crE-uQxRAqy_S)%&BFe^W=$E+EkRuiHSQk@s&=y+fLd&Ot2>gnxNqRi8+ zx~{l|^*wE2tin~8&C5%6gR#%wRK-}?!Yy?mp2~^BW1KLE?mUXIgp`NaBuGCI@^!fL z$9{|d){6rjP{vZOq&lFKHI^_azq3W#r3`*Uco>1p29c>90v!xuB=WwQ&t68eb38z+ zeVhKi*mPezambVT%PUM+^6}l`sQ*?b{?!0G8Pri2gITERZHD=$%@%3LZv00AraF8owP&k2D14np!l^P=W`I&|mbfn}Lk1K&xX$=KR z5dISvi$Z(d7thE3u`7twd~esGQT>MMzs>m)(rLbiBvFXxCDW@?nzAfhAm3fF6KxM8 zi&GUejXJoEY-cQI6Nu^2QllPD<>#xx_J@%&$zpUBHDb>$P^4KU<9$*X`Z zN#Kf8PihU|yB!8@3`_<6QZo!kB@)n$B zl-kRl4xOMQQ;0BssFji_B6e%qR26JIN~83hNKiy?foLNO8VS={UI<~s#Iew<0-}achUA|BjgoBPx@2LJaAk9bJQqH=QKxhWk&O@Sgnp4F zDsfTA*NNpDerg*3UMJbB**KIJ3=S&*W>>MlkIx8EJGaQofQiDwW#2ai(L!rwjD_eFy(nYW5%F`W2n|Ly&4Rbsp%LdJzaF0QVtSokb!druUsI-iH55lx z)oc$ZG2#N#E{TP_l~kt98F5g_Xz4M1gj}zz6y_UaD|@tT@|4GsS=#Jz1b8hpWPe|o zN6+c~d@s5TUSBL;i;0Orx#kQ4yl0IU-p>%ia1BL%ep5DeYWk*}@`+%*f^8{SO^TCs zN(QfPnXRVS3yI>&)!Mb_eKlN6fd;p#uuiGjU}hW^cyqY2trys4kM|;iq3!iu-^3#v z0PP0E;R-0mmIaPA21aLBn1T&jm?03>&_+;(z^5I-4TO{ZqSt`V5h3RTz~gyo3n(>c zoQW8oW-tFX^gNRbZfungbC5~xh>LlGKZu(X#)a@%yn$Hczg+K`B zJ^==PC_E`ddy$~gn+V3cIX|ZHbLM3n$TbZM*1*7=@QXX0h&f*i}6Q*g>q$_=UV4MGKmv9}ZX0~fSpDy#w}UBlL!BKQv$DWtKM?PT@_K$uU#NPS?O z&_w?61ATSM338*+z6ca>kzRvu5E*kLK!5V$lirrRd4o3_`0Z!bz=Y7Nfz22+J@G+L z?s_hN6}U`E$vGm7Rh6U^PaP2&2nw-H{p*!Ypj`;;Q4|g5*wKj#{NieWi~w15km)KA z8eLvhQkk+PKo_rX3qQPp@#@)K5?<)j>sC!?pVvWEQ=g^2VXyh8U$+4)&KRGiSJkgr zu=jFV44buX#rCPZH%r=FfI=6| zCH54m;)V30{{>Kn599yj^v|$bw~ydCLkv|t!>k_nA1KBeK8S))S}pP5CC-L{RQ73) zVH1@4p0;RQvGkwb0l0Z^g3#*RfuQk5af6mXEb8K#v|g9(kDavSL;6Ss1P!Z5#uJRL zq>xmlSZw&%l|?kw55a`N0|M~WvX`^{;O;N|qVOqy)Z+CgIeVZm zjTrXy!jQ4)R3r#ld;|&RujXDw-HVl{T!mmr(^tq(J~-(cI@-9c5=UF?zK|7|(Z0+ltkMbL->UwO<)5oC!I7j8}aDxb8rtfvk?dYJ5 z+qm&sm*h53afe_PL1CTVYhcu)xMO|;G=r9W$`q2$XADQi9lF7#>PZ9bL?M1I#TRW4 z3cY`Ao$O}K3zUeU$reaHL5n&EKzDyyuTdy|8>*Q&121vX*tnw(ypDf?6nS}}MqBr2 zIhD;TujTm66XeChU3~bUi_zB*KKvM|YmbjAxnr2CuU~e7E++eckRTizSVSZeD*I$T zCv+dX8lDqMr>4+G0K4|Z3@(?!J23%#h#2gw0YBLwkL<{dpe~ipoaA7vMp~)>G!e`? z6Uwp}0d}Yh&PO(bcy;>{92Cz@1joBpEEs0>&dMdKNF(S^Gmw>h^%d*Sa{8YeV8$2J zPu>*x!TbY)*5(ex6OmjASG<%=ET*>$l&C}yWDKv2NhO}n2_4*gIC7N&O*)+nq-lgIMmR^&p{rXTs468s|#k(c# zq$DIGg9+F64GORh0qb+hyha$S+m67w=?FILJQOpm^b)eWflQeZk@hhb2=zS`H~`ia z23cgio$SPcm1;iBW0Ws6HWU_sT^E%j9nL`Y`vNS!`%dnQ;rL#dt#-!l7gjC)@B4M& zqC+Hj=ib_$sQ!nRM8th*Js?*7lPoWE($*O`$5%BP+-DzVA*l`G9~GrRe7z{h3$4Ih z<@N$Ga-u1s|bLmY6$9&wB$X9Zhq? zFjk=r;)XGptGY>H7K288s7?9R!~}4TelvJPoM5WL8fFZSar`o8RPm_jd62#-cM+Rm z1Bt4fh$CX>LPY+%tP42WE7sU7zJ4U2La}-e!7)t%&G?JYo`jBYmECVGfR(CXm$z{XApP~3&)9Q5 zj&D`%Vv&s#nC^Zeuvw~uiHcJ}_TO8*uB6vA8)u0F0|hQ|HC-yVI+RzASr_Zy-*WTB zNfsFE8Oy6gS>cf7evZI2+0O;j!KTfbj56Yr=d5sS zG{_+ZbrEDuAe@uK&U}s#Ntx(x_%QLid2GI91(V#LCUOeL5}zY57y`JjK6rMee^^c9 zN;V#}Q9m~Bw=^ZLF9g+w+$Q2vP59#Ue0le#M73xwff%;ONe}hvPsH +^MX$%k) z6-^GFy1i|x==h3#=^^mg%Eveq^|G3_(tSz(ah-5u357u@tDgFxlHjIVj86%f;h#7zm4bpV9v!W0>1Io zd)=jq;YX`4lo*WeJWUAWdQg%wK2Jji2`!osD)};TWFo&J%F|VuSgtKlcjGw7ydloT zMVX$c`zb*sF2#a=wvBUQW7-%LIEqqy+~*D?)gI=N!LBmO6h|)WvQcxu6oe}D>NOU- zE)c#X8hAE_FR|~*Fc2#b*!|wgbdr0z?WqiM4zMB@nphaVNL~g|Zp7T_<3BdL!b&&fEI0R9{;){N3h(a-lm?UF!H_X}}e!js_ ze4f|wJYYmF*^}{Z&=OcA{h<{f++9WuC#ntdbx-&p`(mbhWOPRK06`hn(c?4u(JX+U zAez}YdeI(DT&+b2=ir zx(7wtQuH<_1zE7t9#=+b93P5D35kBUFI%SharbX^Jzif#zU!7F@xZRKDyPKvc{CogXF1QE)6NAP4CE_jN8W1SK}@` z0{uMezNq~%`m=errhrENQPoK3n9uJROS@%}^n}uvRQ|DY;*4nwGUD^k zYB*vk&q+eA=l z&jMp4EKZQNsk961fYpUSP4v(VR`yTqr?*2$O@VI<2m4(w$ z>%;$vz7Pi%BUCdCxly;~{aSkOU8*E9m>337Lfxd5eN_MaY?FVT4=9@c9>jDfg)L4h z|A<}kGqV1G3Ysd#n@W*X_7Uwst`(Z0u)5!P2q#* z09EyBQ5pK)E?#TCPkU1XzeqT|hsk1>ef)hdM4UQe%}%JG4g1DS+;|#Uz7LdY8z2!3 zR8XmKP|j6ek!!p~qKsSb+2$Aj&1f_8T6sun%W@>g{*~*UNf@R?k3sw$RgozD_e%#< zFVuG){>PJxR9>LoUtR!}%2tScOuOA_!i^_(<)b5J9&+AIL{Bz6Bsk=Eni=7A1e3|24?9C!{+^$)5SAc@d{_c8^l5cbC?WHZt5uUUd%59;K5`8?|)l!2%OBEXFuNl zE|j`c0V=>IK5?#FIL)DiVlPS<7_dr{=t!75%+Gg+Wb!wJ&kPKuaF$I59rUeY^dJvo z!)RW}7z=aVpRwXLs}M-ZDzhg-=61dnQ9@aWC3sdo`vpuDxc4z=_5cDxd%sR|D>Irl zNUUzL!E?4U#^_w40TQxoPM>8DlENYZMX#~RgGhi>8_O;V-_0+J2nPougUs3MK3&}< z_bxNm5#AF%xbj3T5PzVW$qD{)^6R`U(d~CNb}XIKW&^aGuAn~!lKZy1CoB(LxkJH= zra#}mFD%1AU1Va~QKIk^*Yytuz_5UZ5AIiYB_`x)94ojG%kJ+__M}8sjeJfB<|0U2 z$H(fn%H}Ya-Vb#H9%%U=yM5&6ogZ;Fo!L_Fq7HVS;2a4eP=f%l5P6hWopC)Q!q+U- z8Fr{5k(ls;P0x3S_?g+y8U(MhHH=ltGwCo2t##)1y!&-eIrK)dKcZ=|D;+$~90;Ce z*kTwX=L{KONqnF9_>-rmpN}l~&CY^&0O9S3b44L;#rf8{TI$|A_lp46(DiCGY%wU~ z+V{-qmK}(2M(&FgID9Ce^`YuLGy5*+Hsv#njtB!8C=ao6Yq0ayZf9lfcATU5kIr@e vhdk)<;SY+xe|LlCJXQF;|NAA{--ZWz^7R)8r4o<)+mn@4lqeTB{`kKDN7Tmc literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_initial_state.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_initial_state.png new file mode 100644 index 0000000000000000000000000000000000000000..5ffb164065e78756c9da1ee30d464cab7cda0c96 GIT binary patch literal 14995 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_long_board.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_long_board.png new file mode 100644 index 0000000000000000000000000000000000000000..cf00baaa89cfd2433ea6941c4c05c8652e1ca27d GIT binary patch literal 16031 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 b|IM)hm4l<%!U*Hf{}Ghr)#Sd*T7>>@kMA)y literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_short_board.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_moving_short_board.png new file mode 100644 index 0000000000000000000000000000000000000000..7f082e87ac828bcc0a0e63ce19e7fc9006893534 GIT binary patch literal 16028 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_skipped_states.png b/en/docs/chapter_greedy/max_capacity_problem.assets/max_capacity_skipped_states.png new file mode 100644 index 0000000000000000000000000000000000000000..45b3b52d087bddfb36d65a1c9ddf24772bee55c2 GIT binary patch literal 22811 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_capacity_problem.md b/en/docs/chapter_greedy/max_capacity_problem.md new file mode 100644 index 000000000..b23dd926a --- /dev/null +++ b/en/docs/chapter_greedy/max_capacity_problem.md @@ -0,0 +1,99 @@ +# Maximum capacity problem + +!!! question + + Input an array $ht$, where each element represents the height of a vertical partition. Any two partitions in the array, along with the space between them, can form a container. + + The capacity of the container is the product of the height and the width (area), where the height is determined by the shorter partition, and the width is the difference in array indices between the two partitions. + + Please select two partitions in the array that maximize the container's capacity and return this maximum capacity. An example is shown in the following figure. + +![Example data for the maximum capacity problem](max_capacity_problem.assets/max_capacity_example.png) + +The container is formed by any two partitions, **therefore the state of this problem is represented by the indices of the two partitions, denoted as $[i, j]$**. + +According to the problem statement, the capacity equals the product of height and width, where the height is determined by the shorter partition, and the width is the difference in array indices between the two partitions. The formula for capacity $cap[i, j]$ is: + +$$ +cap[i, j] = \min(ht[i], ht[j]) \times (j - i) +$$ + +Assuming the length of the array is $n$, the number of combinations of two partitions (total number of states) is $C_n^2 = \frac{n(n - 1)}{2}$. The most straightforward approach is to **enumerate all possible states**, resulting in a time complexity of $O(n^2)$. + +### Determination of a greedy strategy + +There is a more efficient solution to this problem. As shown in the following figure, we select a state $[i, j]$ where the indices $i < j$ and the height $ht[i] < ht[j]$, meaning $i$ is the shorter partition, and $j$ is the taller one. + +![Initial state](max_capacity_problem.assets/max_capacity_initial_state.png) + +As shown in the following figure, **if we move the taller partition $j$ closer to the shorter partition $i$, the capacity will definitely decrease**. + +This is because when moving the taller partition $j$, the width $j-i$ definitely decreases; and since the height is determined by the shorter partition, the height can only remain the same (if $i$ remains the shorter partition) or decrease (if the moved $j$ becomes the shorter partition). + +![State after moving the taller partition inward](max_capacity_problem.assets/max_capacity_moving_long_board.png) + +Conversely, **we can only possibly increase the capacity by moving the shorter partition $i$ inward**. Although the width will definitely decrease, **the height may increase** (if the moved shorter partition $i$ becomes taller). For example, in the figure below, the area increases after moving the shorter partition. + +![State after moving the shorter partition inward](max_capacity_problem.assets/max_capacity_moving_short_board.png) + +This leads us to the greedy strategy for this problem: initialize two pointers at the ends of the container, and in each round, move the pointer corresponding to the shorter partition inward until the two pointers meet. + +The following figures illustrate the execution of the greedy strategy. + +1. Initially, the pointers $i$ and $j$ are positioned at the ends of the array. +2. Calculate the current state's capacity $cap[i, j]$ and update the maximum capacity. +3. Compare the heights of partitions $i$ and $j$, and move the shorter partition inward by one step. +4. Repeat steps `2.` and `3.` until $i$ and $j$ meet. + +=== "<1>" + ![The greedy process for maximum capacity problem](max_capacity_problem.assets/max_capacity_greedy_step1.png) + +=== "<2>" + ![max_capacity_greedy_step2](max_capacity_problem.assets/max_capacity_greedy_step2.png) + +=== "<3>" + ![max_capacity_greedy_step3](max_capacity_problem.assets/max_capacity_greedy_step3.png) + +=== "<4>" + ![max_capacity_greedy_step4](max_capacity_problem.assets/max_capacity_greedy_step4.png) + +=== "<5>" + ![max_capacity_greedy_step5](max_capacity_problem.assets/max_capacity_greedy_step5.png) + +=== "<6>" + ![max_capacity_greedy_step6](max_capacity_problem.assets/max_capacity_greedy_step6.png) + +=== "<7>" + ![max_capacity_greedy_step7](max_capacity_problem.assets/max_capacity_greedy_step7.png) + +=== "<8>" + ![max_capacity_greedy_step8](max_capacity_problem.assets/max_capacity_greedy_step8.png) + +=== "<9>" + ![max_capacity_greedy_step9](max_capacity_problem.assets/max_capacity_greedy_step9.png) + +### Implementation + +The code loops at most $n$ times, **thus the time complexity is $O(n)$**. + +The variables $i$, $j$, and $res$ use a constant amount of extra space, **thus the space complexity is $O(1)$**. + +```src +[file]{max_capacity}-[class]{}-[func]{max_capacity} +``` + +### Proof of correctness + +The reason why the greedy method is faster than enumeration is that each round of greedy selection "skips" some states. + +For example, under the state $cap[i, j]$ where $i$ is the shorter partition and $j$ is the taller partition, greedily moving the shorter partition $i$ inward by one step leads to the "skipped" states shown below. **This means that these states' capacities cannot be verified later**. + +$$ +cap[i, i+1], cap[i, i+2], \dots, cap[i, j-2], cap[i, j-1] +$$ + +![States skipped by moving the shorter partition](max_capacity_problem.assets/max_capacity_skipped_states.png) + +It is observed that **these skipped states are actually all states where the taller partition $j$ is moved inward**. We have already proven that moving the taller partition inward will definitely decrease the capacity. Therefore, the skipped states cannot possibly be the optimal solution, **and skipping them does not lead to missing the optimal solution**. + +The analysis shows that the operation of moving the shorter partition is "safe", and the greedy strategy is effective. diff --git a/en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png b/en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_definition.png new file mode 100644 index 0000000000000000000000000000000000000000..fae0741147109f3c52b7562196b4aa2cb1ba5a6a GIT binary patch literal 10708 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 Vs%O4IiI;wTt0`$H<|~-`{~IgbnM(iw literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer1.png b/en/docs/chapter_greedy/max_product_cutting_problem.assets/max_product_cutting_greedy_infer1.png new file mode 100644 index 0000000000000000000000000000000000000000..b6d6539e3a501bc1d0b4ab2429cbff2b8e9dd4bb GIT binary patch literal 9497 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 literal 0 HcmV?d00001 diff --git a/en/docs/chapter_greedy/max_product_cutting_problem.md b/en/docs/chapter_greedy/max_product_cutting_problem.md new file mode 100644 index 000000000..b28ad72ee --- /dev/null +++ b/en/docs/chapter_greedy/max_product_cutting_problem.md @@ -0,0 +1,85 @@ +# Maximum product after cutting problem + +!!! question + + Given a positive integer $n$, split it into at least two positive integers that sum up to $n$, and find the maximum product of these integers, as illustrated below. + +![Definition of the maximum product cutting problem](max_product_cutting_problem.assets/max_product_cutting_definition.png) + +Assume we split $n$ into $m$ integer factors, where the $i$-th factor is denoted as $n_i$, that is, + +$$ +n = \sum_{i=1}^{m}n_i +$$ + +The goal of this problem is to find the maximum product of all integer factors, namely, + +$$ +\max(\prod_{i=1}^{m}n_i) +$$ + +We need to consider: How large should the number of splits $m$ be, and what should each $n_i$ be? + +### Greedy strategy determination + +Experience suggests that the product of two integers is often greater than their sum. Suppose we split a factor of $2$ from $n$, then their product is $2(n-2)$. Compare this product with $n$: + +$$ +\begin{aligned} +2(n-2) & \geq n \newline +2n - n - 4 & \geq 0 \newline +n & \geq 4 +\end{aligned} +$$ + +As shown below, when $n \geq 4$, splitting out a $2$ increases the product, **which indicates that integers greater than or equal to $4$ should be split**. + +**Greedy strategy one**: If the splitting scheme includes factors $\geq 4$, they should be further split. The final split should only include factors $1$, $2$, and $3$. + +![Product increase due to splitting](max_product_cutting_problem.assets/max_product_cutting_greedy_infer1.png) + +Next, consider which factor is optimal. Among the factors $1$, $2$, and $3$, clearly $1$ is the worst, as $1 \times (n-1) < n$ always holds, meaning splitting out $1$ actually decreases the product. + +As shown below, when $n = 6$, $3 \times 3 > 2 \times 2 \times 2$. **This means splitting out $3$ is better than splitting out $2**. + +**Greedy strategy two**: In the splitting scheme, there should be at most two $2$s. Because three $2$s can always be replaced by two $3$s to obtain a higher product. + +![Optimal splitting factors](max_product_cutting_problem.assets/max_product_cutting_greedy_infer2.png) + +From the above, the following greedy strategies can be derived. + +1. Input integer $n$, continually split out factor $3$ until the remainder is $0$, $1$, or $2$. +2. When the remainder is $0$, it means $n$ is a multiple of $3$, so no further action is taken. +3. When the remainder is $2$, do not continue to split, keep it. +4. When the remainder is $1$, since $2 \times 2 > 1 \times 3$, the last $3$ should be replaced with $2$. + +### Code implementation + +As shown below, we do not need to use loops to split the integer but can use the floor division operation to get the number of $3$s, $a$, and the modulo operation to get the remainder, $b$, thus: + +$$ +n = 3a + b +$$ + +Please note, for the boundary case where $n \leq 3$, a $1$ must be split out, with a product of $1 \times (n - 1)$. + +```src +[file]{max_product_cutting}-[class]{}-[func]{max_product_cutting} +``` + +![Calculation method of the maximum product after cutting](max_product_cutting_problem.assets/max_product_cutting_greedy_calculation.png) + +**Time complexity depends on the implementation of the power operation in the programming language**. For Python, the commonly used power calculation functions are three types: + +- Both the operator `**` and the function `pow()` have a time complexity of $O(\logā” a)$. +- The `math.pow()` function internally calls the C language library's `pow()` function, performing floating-point exponentiation, with a time complexity of $O(1)$. + +Variables $a$ and $b$ use constant size of extra space, **hence the space complexity is $O(1)$**. + +### Correctness proof + +Using the proof by contradiction, only analyze cases where $n \geq 3$. + +1. **All factors $\leq 3$**: Assume the optimal splitting scheme includes a factor $x \geq 4$, then it can definitely be further split into $2(x-2)$, obtaining a larger product. This contradicts the assumption. +2. **The splitting scheme does not contain $1$**: Assume the optimal splitting scheme includes a factor of $1$, then it can definitely be merged into another factor to obtain a larger product. This contradicts the assumption. +3. **The splitting scheme contains at most two $2$s**: Assume the optimal splitting scheme includes three $2$s, then they can definitely be replaced by two $3$s, achieving a higher product. This contradicts the assumption. diff --git a/en/docs/chapter_greedy/summary.md b/en/docs/chapter_greedy/summary.md new file mode 100644 index 000000000..bf71f93cd --- /dev/null +++ b/en/docs/chapter_greedy/summary.md @@ -0,0 +1,12 @@ +# Summary + +- Greedy algorithms are often used to solve optimization problems, where the principle is to make locally optimal decisions at each decision stage in order to achieve a globally optimal solution. +- Greedy algorithms iteratively make one greedy choice after another, transforming the problem into a smaller sub-problem with each round, until the problem is resolved. +- Greedy algorithms are not only simple to implement but also have high problem-solving efficiency. Compared to dynamic programming, greedy algorithms generally have a lower time complexity. +- In the problem of coin change, greedy algorithms can guarantee the optimal solution for certain combinations of coins; for others, however, the greedy algorithm might find a very poor solution. +- Problems suitable for greedy algorithm solutions possess two main properties: greedy-choice property and optimal substructure. The greedy-choice property represents the effectiveness of the greedy strategy. +- For some complex problems, proving the greedy-choice property is not straightforward. Contrarily, proving the invalidity is often easier, such as with the coin change problem. +- Solving greedy problems mainly consists of three steps: problem analysis, determining the greedy strategy, and proving correctness. Among these, determining the greedy strategy is the key step, while proving correctness often poses the challenge. +- The fractional knapsack problem builds on the 0-1 knapsack problem by allowing the selection of a part of the items, hence it can be solved using a greedy algorithm. The correctness of the greedy strategy can be proved by contradiction. +- The maximum capacity problem can be solved using the exhaustive method, with a time complexity of $O(n^2)$. By designing a greedy strategy, each round moves inwardly shortening the board, optimizing the time complexity to $O(n)$. +- In the problem of maximum product after cutting, we deduce two greedy strategies: integers $\geq 4$ should continue to be cut, with the optimal cutting factor being $3$. The code includes power operations, and the time complexity depends on the method of implementing power operations, generally being $O(1)$ or $O(\log n)$.