Commit 91a0cfad authored by Michael Kuron's avatar Michael Kuron
Browse files

Merge branch 'IncompressibleCumulants' into 'master'

Fix minor issues and remove depricated usage of cumulant LB method

See merge request pycodegen/lbmpy!70
parents 847389c4 63b38380
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from lbmpy.session import * from lbmpy.session import *
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
# Tutorial 03: Defining LB methods in *lbmpy* # Tutorial 03: Defining LB methods in *lbmpy*
## A) General Form ## A) General Form
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
The lattice Boltzmann equation in its most general form is: The lattice Boltzmann equation in its most general form is:
$$f_q(\mathbf{x} + \mathbf{c}_q \delta t, t+\delta t) = K\left( f_q(\mathbf{x}, t) \right)$$ $$f_q(\mathbf{x} + \mathbf{c}_q \delta t, t+\delta t) = K\left( f_q(\mathbf{x}, t) \right)$$
with a discrete velocity set $\mathbf{c}_q$ (stencil) and a generic collision operator $K$. with a discrete velocity set $\mathbf{c}_q$ (stencil) and a generic collision operator $K$.
So a lattice Boltzmann method can be fully defined by picking a stencil and a collision operator. So a lattice Boltzmann method can be fully defined by picking a stencil and a collision operator.
The collision operator $K$ has the following structure: The collision operator $K$ has the following structure:
- Transformation of particle distribution function $f$ into collision space. This transformation has to be invertible and may be nonlinear. - Transformation of particle distribution function $f$ into collision space. This transformation has to be invertible and may be nonlinear.
- The collision operation is an convex combination of the pdf representation in collision space $c$ and some equilibrium vector $c^{(eq)}$. This equilibrium can also be defined in physical space, then $c^{(eq)} = C( f^{(eq)} ) $. The convex combination is done elementwise using a diagonal matrix $S$ where the diagonal entries are the relaxation rates. - The collision operation is an convex combination of the pdf representation in collision space $c$ and some equilibrium vector $c^{(eq)}$. This equilibrium can also be defined in physical space, then $c^{(eq)} = C( f^{(eq)} ) $. The convex combination is done elementwise using a diagonal matrix $S$ where the diagonal entries are the relaxation rates.
- After collision, the collided state $c'$ is transformed back into physical space - After collision, the collided state $c'$ is transformed back into physical space
![](../img/collision.svg) ![](../img/collision.svg)
The full collision operator is: The full collision operator is:
$$K(f) = C^{-1}\left( (I-S)C(f) + SC(f^{(eq}) \right)$$ $$K(f) = C^{-1}\left( (I-S)C(f) + SC(f^{(eq}) \right)$$
or or
$$K(f) = C^{-1}\left( C(f) - S (C(f) - C(f^{(eq})) \right)$$ $$K(f) = C^{-1}\left( C(f) - S (C(f) - C(f^{(eq})) \right)$$
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## B) Moment-based relaxation ## B) Moment-based relaxation
The most commonly used LBM collision operator is the multi relaxation time (MRT) collision. The most commonly used LBM collision operator is the multi relaxation time (MRT) collision.
In MRT methods the collision space is spanned by moments of the distribution function. This is a very natural approach, since the pdf moments are the quantities that go into the Chapman Enskog analysis that is used to show that LB methods can solve the Navier Stokes equations. Also the lower order moments correspond to the macroscopic quantities of interest (density/pressure, velocity, shear rates, heat flux). Furthermore the transformation to collision space is linear in this case, simplifying the collision equations: In MRT methods the collision space is spanned by moments of the distribution function. This is a very natural approach, since the pdf moments are the quantities that go into the Chapman Enskog analysis that is used to show that LB methods can solve the Navier Stokes equations. Also the lower order moments correspond to the macroscopic quantities of interest (density/pressure, velocity, shear rates, heat flux). Furthermore the transformation to collision space is linear in this case, simplifying the collision equations:
$$K(f) = C^{-1}\left( C(f) - S (C(f) - C(f^{(eq})) \right)$$ $$K(f) = C^{-1}\left( C(f) - S (C(f) - C(f^{(eq})) \right)$$
$$K(f) = f - \underbrace{ C^{-1}SC}_{A}(f - f^{(eq)})$$ $$K(f) = f - \underbrace{ C^{-1}SC}_{A}(f - f^{(eq)})$$
in *lbmpy* the following formulation is used, since it is more natural to define the equilibrium in moment-space instead of physical space: in *lbmpy* the following formulation is used, since it is more natural to define the equilibrium in moment-space instead of physical space:
$$K(f) = f - C^{-1}S(Cf - c^{(eq)})$$ $$K(f) = f - C^{-1}S(Cf - c^{(eq)})$$
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Use a pre-defined method ### Use a pre-defined method
Lets create a moment-based method in *lbmpy* and see how the moment transformation $C$ and the relaxation rates that comprise the diagonal matrix $S$ can be defined. We start with a function that creates a basic MRT model. Lets create a moment-based method in *lbmpy* and see how the moment transformation $C$ and the relaxation rates that comprise the diagonal matrix $S$ can be defined. We start with a function that creates a basic MRT model.
Don't use this for real simulations, there orthogonalized MRT methods should be used, as discussed in the next section. Don't use this for real simulations, there orthogonalized MRT methods should be used, as discussed in the next section.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from lbmpy.creationfunctions import create_lb_method from lbmpy.creationfunctions import create_lb_method
method = create_lb_method(stencil='D2Q9', method='mrt_raw') method = create_lb_method(stencil='D2Q9', method='mrt_raw')
# check also method='srt', 'trt', 'mrt' # check also method='srt', 'trt', 'mrt'
method method
``` ```
%%%% Output: execute_result %%%% Output: execute_result
<lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7fc00786c3d0> <lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7f1be00e30d0>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
The first column labeled "Moment" defines the collision space and thus the transformation matrix $C$. The first column labeled "Moment" defines the collision space and thus the transformation matrix $C$.
The remaining columns specify the equilibrium vector in moment space $c^{(eq)}$ and the corresponding relaxation rate. The remaining columns specify the equilibrium vector in moment space $c^{(eq)}$ and the corresponding relaxation rate.
Each row of the "Moment" column defines one row of $C$. In the next cells this matrix and the discrete velocity set (stencil) of our method are shown. Check for example the second last row of the table $x^2 y$: In the corresponding second last row of the moment matrix $C$ where each column stands for a lattice velocity (for ordering visualized stencil below) and each entry is the expression $x^2 y$ where $x$ and $y$ are the components of the lattice velocity. Each row of the "Moment" column defines one row of $C$. In the next cells this matrix and the discrete velocity set (stencil) of our method are shown. Check for example the second last row of the table $x^2 y$: In the corresponding second last row of the moment matrix $C$ where each column stands for a lattice velocity (for ordering visualized stencil below) and each entry is the expression $x^2 y$ where $x$ and $y$ are the components of the lattice velocity.
In general the transformation matrix $C_{iq}$ is defined as; In general the transformation matrix $C_{iq}$ is defined as;
$$c_i = C_{iq} f_q = \sum_q m_i(c_q)$$ $$c_i = C_{iq} f_q = \sum_q m_i(c_q)$$
where $m_i(c_q)$ is the $i$'th moment polynomial where $x$ and $y$ are substituted with the components of the $q$'th lattice velocity where $m_i(c_q)$ is the $i$'th moment polynomial where $x$ and $y$ are substituted with the components of the $q$'th lattice velocity
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Transformation matrix C # Transformation matrix C
method.moment_matrix method.moment_matrix
``` ```
%%%% Output: execute_result %%%% Output: execute_result
![](data:image/png;base64,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) ![](data:image/png;base64,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)
$\displaystyle \left[\begin{matrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\0 & 0 & 0 & -1 & 1 & -1 & 1 & -1 & 1\\0 & 1 & -1 & 0 & 0 & 1 & 1 & -1 & -1\\0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1\\0 & 1 & 1 & 0 & 0 & 1 & 1 & 1 & 1\\0 & 0 & 0 & 0 & 0 & -1 & 1 & 1 & -1\\0 & 0 & 0 & 0 & 0 & 1 & 1 & -1 & -1\\0 & 0 & 0 & 0 & 0 & -1 & 1 & -1 & 1\\0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1\end{matrix}\right]$ $\displaystyle \left[\begin{matrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\0 & 0 & 0 & -1 & 1 & -1 & 1 & -1 & 1\\0 & 1 & -1 & 0 & 0 & 1 & 1 & -1 & -1\\0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1\\0 & 1 & 1 & 0 & 0 & 1 & 1 & 1 & 1\\0 & 0 & 0 & 0 & 0 & -1 & 1 & 1 & -1\\0 & 0 & 0 & 0 & 0 & 1 & 1 & -1 & -1\\0 & 0 & 0 & 0 & 0 & -1 & 1 & -1 & 1\\0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1\end{matrix}\right]$
⎡1 1 1 1 1 1 1 1 1 ⎤ ⎡1 1 1 1 1 1 1 1 1 ⎤
⎢ ⎥ ⎢ ⎥
⎢0 0 0 -1 1 -1 1 -1 1 ⎥ ⎢0 0 0 -1 1 -1 1 -1 1 ⎥
⎢ ⎥ ⎢ ⎥
⎢0 1 -1 0 0 1 1 -1 -1⎥ ⎢0 1 -1 0 0 1 1 -1 -1⎥
⎢ ⎥ ⎢ ⎥
⎢0 0 0 1 1 1 1 1 1 ⎥ ⎢0 0 0 1 1 1 1 1 1 ⎥
⎢ ⎥ ⎢ ⎥
⎢0 1 1 0 0 1 1 1 1 ⎥ ⎢0 1 1 0 0 1 1 1 1 ⎥
⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 0 -1 1 1 -1⎥ ⎢0 0 0 0 0 -1 1 1 -1⎥
⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 0 1 1 -1 -1⎥ ⎢0 0 0 0 0 1 1 -1 -1⎥
⎢ ⎥ ⎢ ⎥
⎢0 0 0 0 0 -1 1 -1 1 ⎥ ⎢0 0 0 0 0 -1 1 -1 1 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 0 0 1 1 1 1 ⎦ ⎣0 0 0 0 0 1 1 1 1 ⎦
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
ps.stencil.plot(method.stencil) ps.stencil.plot(method.stencil)
method.stencil method.stencil
``` ```
%%%% Output: execute_result %%%% Output: execute_result
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAucAAAAVCAYAAADlwkDzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAIzUlEQVR4Ae2d63EcNwyAZY8LUJIOLh1IUQW2OpDcQewO4p/Sv4zSgeMKMnYHiSvIRB04HdhRBxdgb1fH45EEH+ADWuzMekkCJIAP5Iq3XulOttvtiXne3NxszLpdpuS2fuv6CP6N4IOP+wi+jeCDjw9H+wjxjeADB0vfGCPEN4IPPj7YPoJ/I/gQYlQiGyG2EXwIMRzBvxF8CDHqLRuBzwg+1MwDFZ9L/vzEOG5vb3+B6pnRdFCk5AfK/Sqb2c8uHghgpHzqzwxlrIzrE6At6DykGZVoKF+anjKiGfXW0BzVzwDF+Ej+DD8t4AGbyiu4XMD13dRg/ROSg+xuVv8K1x/hvIO2f60hWKoxtkAHP2Q8wPV3FqORg4A9L8MYvyPNkGpgCz9gfYTzHMoPdgdoWzUfm0dOXSLjnDjtPlTctn5uHeyQ95QR5zHGq4zonye582Lp15CxuHtpyzkYY2vUdbrMpdxrqzmY65/Zj/J11BxRfpsx9i5TvlKMbfm0OYfGUwjsM1zPXQGG5CD7B/r8CtdP2HfWxbZLKLNu0GG8aFuz7ku4Hm1O0U/uA+x4Gab4nevXbP8D9P8G509w4g+V73zxzz6thg+wKD4kMy4JPjXuElvYd56bUfeUWbf7PFZG+6zPLLw/T/aaaaVWjFPtgD7+XFrVHJTKKG3GHWunxn08QruWVF/XOI9Ls8HN2MzBi9k5fEr1PuCoUw4DvYE+p3CdNubYH8r4xBrrON4ltnEcMGaqLbSPfr/lsB8xRldGyB18vEY/oRx8PWmOZVV85piLLlIZFwUNnTPizjYJtqSu89T1tzpG2QHPHVvNwww7o9xLW87BVFtDMJIyB0v9xP46jzkohseowPhxnSzvnL8GI6FXQHxy3AzeO9z/G9pewZinDlluU5KtOR70m9OHkO8jMAr5dyBTPgc4qlQGYlwlvkqDSl3nlXA4h1VGTix9GnWd09yVEc2ot4bmqH4GKMam/DlU8D1p7+snhPwV9MXXKOxjGQ/lXEeOLfTjNZcDvnEGYuRz0deufHxk+NpHYMwXTf2RpK7z+mT2FpTRnsUoJV3ndCaUEc2ot4bmqH4GKMaTHJ+c46snfwX8ccphQxrzRPr7wLjRogJbGBfbqzUBh7szCvgWEimfEB0eWVfGPCG0GUXqOm9DZ2dFGbWknWRL1zmNSxnRjHpraI7qZ4BiPMlxc46/PPgl4I9Pvmy88d0z3xGzgff1NdtzbWFcG3OgSuURGOWEpnxyqKX16c04zdu+2lLXeUtqyqgl7Xhbus5pVsqIZtRbQ3NUPwMU40mOm3PcQLteTVlcpOSLnuv6g6uxUpvLFsbVYnMuhZGNXvnYRPjrEhjzR11vRKnrvB6R45GV0TGT2i26zmnCyohm1FtDc1Q/AxTjSf4C/MAnMQ8Bf3xyHMB3LE93vvoUEttzbeG7O7hxrn2MwCgnxlXxmV8J+AygUubENfS7z4E79+nN+KRT3DnIpK7znFhz+4hlJGge5uSm+zrPcbpxn+6MJM3BTr52z1HLOTko4ykHuDnPOiAo/JOJ2Ne10Vna0EjxUWDLt2ku9ilmgAK/Y4bn0FkVH8wHQDvnAJcwRlfG6GenuBMQ7VQL1kt3xsnBZnaQzEjKPMxMzWrmYCYf7NadkaQ52MnX7jkqmF/JXQdlPOUAX2vBJzHLZtoVXEiOL667XhvBwfFAOdeRYwvjCj1p4vJtFEap8SifVGLp+iMwTve6Xw+p67wlMWXUknacLV3nNCdlRDPqraE5qp8BivEkx805Pt12bbAXF0Ny/Ip4/GVI+8Cnk/fzp5JJBmU0WHJE2zKM4IcE8uk9g2+jMDJCjyoqnyhMRUojMC4KIKUzw1qSus6jMY3KiMEvZBC6F0YzKlVkiiXFDVHrvAMfZCmKUUryXbqdGLtcSWkTlaMnynjKAW7O7+G8CGTPKwcw+MVF3+B6tfSfYeHfFv/ZavsPZPg1x1lHrC1r8OlDgtV2UJ39LfINBhyCkRHY8gthmOTQsVY+ISaxMjGMYwOK1PPGzbGWpK5zi504Rhy5mxl474UWo9JqVcaGc147hg4Wz+HE2L0HE+NYvl6/mfww4/TaMpWgPBojy73kqjfuCoyTnbM6eH219EbLkdfvJ8x4ygFuzv+A88xKkFml5DjQJYC6gxO/Nv4DnC+h/HijgvIDtOETlVMolzxBJ22BDfPAL+v402ywy0y+DcEIYvmIJ8SIX4GOx1SHtqW+a93/uyo++7DzS4IZ5wcNPWPiBp1Vr3PJjBhzR90LRczDmFxagQxxL43xmyvXMbZGZGT5lFyNiZuLcbJzVocYX60uq5vHVvzJ1QqMdznYbrcnNzc3X+A8w7LrpOSuPq42GOcKzlOXjLsN7GzQ79hxS31DW3B6GbbyI8GO8vHM91iGlB7MB5GMqbgoeelaosY35VIZj8qIwy8Yg+VeaOY5p8wRS4xdsCNynbfigwylMorJf0inJeOQHzEyqTl6SozNHOCTczzu4Hw7ldz/UHJ3r+PWi/kT5bGEv+UdDIl+xx6lvkljpHxiZ0a+nlTG+RHvepaupRT7UhmPyojDL657Yco8cOlyxOIa127TOWgTOa5LZXQcSVpLqzmY5pVbW2qOnhLjxxxMm3PYMOO74xu4blw5o+SuPnYbjIGvs3D93XN7+IP6HAfGg3GRB4dvsy0vQ9IJUODwI9IO5ln5xMDK1IFcimScGe5jt1ZzGA1KZTwqIy6/YJzgz5PHyVKxwBUL5SLYEbnOW/FBflIZUbmn5C0ZU75Qcqk5ekqM7Rw8N5J2DeX3Rt0uUnJb366/AeO/2Y2V6hhH6H8CbLNcvklhpHzsGcBfl8q4lATXWorxQyrjURlx+lV6L4zJf0iHM5aQHZ2DITo7mVRGdGRhjVZzMOxFnFRqjp4S44McPMN3kZZj3rlf+TbRlHwZp+cVfMRfSv0EV/JPKNbwc3RGyqdG1g/HVMaHPGrUlDFNVRnRjEo0lC9NTxnRjHpraI7qZ4Bi7JL/D0hX4JBsdFfbAAAAAElFTkSuQmCC) ![](data:image/png;base64,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)
$\displaystyle \left( \left( 0, \ 0\right), \ \left( 0, \ 1\right), \ \left( 0, \ -1\right), \ \left( -1, \ 0\right), \ \left( 1, \ 0\right), \ \left( -1, \ 1\right), \ \left( 1, \ 1\right), \ \left( -1, \ -1\right), \ \left( 1, \ -1\right)\right)$ $\displaystyle \left( \left( 0, \ 0\right), \ \left( 0, \ 1\right), \ \left( 0, \ -1\right), \ \left( -1, \ 0\right), \ \left( 1, \ 0\right), \ \left( -1, \ 1\right), \ \left( 1, \ 1\right), \ \left( -1, \ -1\right), \ \left( 1, \ -1\right)\right)$
((0, 0), (0, 1), (0, -1), (-1, 0), (1, 0), (-1, 1), (1, 1), (-1, -1), (1, -1)) ((0, 0), (0, 1), (0, -1), (-1, 0), (1, 0), (-1, 1), (1, 1), (-1, -1), (1, -1))
%%%% Output: display_data %%%% Output: display_data
![](data:image/png;base64,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) ![](data:image/png;base64,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)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Orthogonal MRTs ### Orthogonal MRTs
For a real MRT method, the moments should be orthogonalized. For a real MRT method, the moments should be orthogonalized.
One can either orthogonalize using the standard scalar product or a scalar product that is weighted with the lattice weights. If unsure, use the weighted version. One can either orthogonalize using the standard scalar product or a scalar product that is weighted with the lattice weights. If unsure, use the weighted version.
The next cell shows how to get both orthogonalized MRT versions in lbmpy. The next cell shows how to get both orthogonalized MRT versions in lbmpy.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
weighted_ortho_mrt = create_lb_method(stencil="D2Q9", method="mrt", weighted=True) weighted_ortho_mrt = create_lb_method(stencil="D2Q9", method="mrt", weighted=True)
weighted_ortho_mrt weighted_ortho_mrt
``` ```
%%%% Output: execute_result %%%% Output: execute_result
<lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7fc00774f640> <lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7f1b8f8e0400>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
ortho_mrt = create_lb_method(stencil="D2Q9", method="mrt", weighted=False) ortho_mrt = create_lb_method(stencil="D2Q9", method="mrt", weighted=False)
ortho_mrt ortho_mrt
``` ```
%%%% Output: execute_result %%%% Output: execute_result
<lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7fc0075d7b50> <lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7f1b8763a4f0>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
One can check if a method is orthogonalized: One can check if a method is orthogonalized:
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
ortho_mrt.is_orthogonal, weighted_ortho_mrt.is_weighted_orthogonal ortho_mrt.is_orthogonal, weighted_ortho_mrt.is_weighted_orthogonal
``` ```
%%%% Output: execute_result %%%% Output: execute_result
(True, True) (True, True)
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
### Define custom MRT method ### Define custom MRT method
To choose custom values for the left moment column one can pass a nested list of moments. To choose custom values for the left moment column one can pass a nested list of moments.
Moments that should be relaxed with the same paramter are grouped together. Moments that should be relaxed with the same paramter are grouped together.
*lbmpy* also comes with a few templates for this list taken from literature: *lbmpy* also comes with a few templates for this list taken from literature:
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
from lbmpy.methods import mrt_orthogonal_modes_literature from lbmpy.methods import mrt_orthogonal_modes_literature
from lbmpy.stencils import get_stencil from lbmpy.stencils import get_stencil
from lbmpy.moments import MOMENT_SYMBOLS from lbmpy.moments import MOMENT_SYMBOLS
x, y, z = MOMENT_SYMBOLS x, y, z = MOMENT_SYMBOLS
moments = mrt_orthogonal_modes_literature(get_stencil("D2Q9"), is_weighted=True, is_cumulant=False) moments = mrt_orthogonal_modes_literature(get_stencil("D2Q9"), is_weighted=True)
moments moments
``` ```
%%%% Output: execute_result %%%% Output: execute_result
![](data:image/png;base64,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) ![](data:image/png;base64,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)
$\displaystyle \left[ \left[ 1\right], \ \left[ x, \ y\right], \ \left[ 3 x^{2} + 3 y^{2} - 2, \ x^{2} - y^{2}, \ x y\right], \ \left[ x \left(3 x^{2} + 3 y^{2} - 4\right), \ y \left(3 x^{2} + 3 y^{2} - 4\right)\right], \ \left[ - 15 x^{2} - 15 y^{2} + 9 \left(x^{2} + y^{2}\right)^{2} + 2\right]\right]$ $\displaystyle \left[ \left[ 1\right], \ \left[ x, \ y\right], \ \left[ 3 x^{2} + 3 y^{2} - 2, \ x^{2} - y^{2}, \ x y\right], \ \left[ x \left(3 x^{2} + 3 y^{2} - 4\right), \ y \left(3 x^{2} + 3 y^{2} - 4\right)\right], \ \left[ - 15 x^{2} - 15 y^{2} + 9 \left(x^{2} + y^{2}\right)^{2} + 2\right]\right]$
⎢ ⎡ 2 2 2 2 ⎤ ⎡ ⎛ 2 2 ⎞ ⎛ 2 ⎢ ⎡ 2 2 2 2 ⎤ ⎡ ⎛ 2 2 ⎞ ⎛ 2
⎣[1], [x, y], ⎣3⋅x + 3⋅y - 2, x - y , x⋅y⎦, ⎣x⋅⎝3⋅x + 3⋅y - 4⎠, y⋅⎝3⋅x + ⎣[1], [x, y], ⎣3⋅x + 3⋅y - 2, x - y , x⋅y⎦, ⎣x⋅⎝3⋅x + 3⋅y - 4⎠, y⋅⎝3⋅x +
⎡ 2 ⎤⎤ ⎡ 2 ⎤⎤
2 ⎞⎤ ⎢ 2 2 ⎛ 2 2⎞ ⎥⎥ 2 ⎞⎤ ⎢ 2 2 ⎛ 2 2⎞ ⎥⎥
3⋅y - 4⎠⎦, ⎣- 15⋅x - 15⋅y + 9⋅⎝x + y ⎠ + 2⎦⎦ 3⋅y - 4⎠⎦, ⎣- 15⋅x - 15⋅y + 9⋅⎝x + y ⎠ + 2⎦⎦
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
This nested moment list can be passed to `create_lb_method`: This nested moment list can be passed to `create_lb_method`:
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
create_lb_method(stencil="D2Q9", method="mrt", nested_moments=moments) create_lb_method(stencil="D2Q9", method="mrt", nested_moments=moments)
``` ```
%%%% Output: execute_result %%%% Output: execute_result
<lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7fc04815aa30> <lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7f1b874f5e20>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
If one needs to also specify custom equilibrium moments the following approach can be used If one needs to also specify custom equilibrium moments the following approach can be used
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
rho = sp.symbols("rho") rho = sp.symbols("rho")
u = sp.symbols("u_:3") u = sp.symbols("u_:3")
omega = sp.symbols("omega_:4") omega = sp.symbols("omega_:4")
method_table = [ method_table = [
# Conserved moments # Conserved moments
(1, rho, 0 ), (1, rho, 0 ),
(x, u[0], 0 ), (x, u[0], 0 ),
(y, u[1], 0 ), (y, u[1], 0 ),
# Shear moments # Shear moments
(x*y, u[0]*u[1], omega[0]), (x*y, u[0]*u[1], omega[0]),
(x**2-y**2, u[0]**2 - u[1]**2, omega[0]), (x**2-y**2, u[0]**2 - u[1]**2, omega[0]),
(x**2+y**2, 2*rho/3 + u[0]**2 + u[1]**2, omega[1]), (x**2+y**2, 2*rho/3 + u[0]**2 + u[1]**2, omega[1]),
# Higher order # Higher order
(x * y**2, u[0]/3, omega[2]), (x * y**2, u[0]/3, omega[2]),
(x**2 * y, u[1]/3, omega[2]), (x**2 * y, u[1]/3, omega[2]),
(x**2 * y**2, rho/9 + u[0]**2/3 + u[1]**2/3, omega[3]), (x**2 * y**2, rho/9 + u[0]**2/3 + u[1]**2/3, omega[3]),
] ]
method = create_generic_mrt(get_stencil("D2Q9"), method_table) method = create_generic_mrt(get_stencil("D2Q9"), method_table)
method method
``` ```
%%%% Output: execute_result %%%% Output: execute_result
<lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7fc0075b2e50> <lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7f1b873e9cd0>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Instead of manually defining all entries in the method table, *lbmpy* has functions to fill the table according to a specific pattern. For example: Instead of manually defining all entries in the method table, *lbmpy* has functions to fill the table according to a specific pattern. For example:
- for a full stencil (D2Q9, D3Q27) there exist exactly 9 or 27 linearly independent moments. These can either be taken as they are, or orthogonalized using Gram-Schmidt, weighted Gram-Schmidt or a Hermite approach - for a full stencil (D2Q9, D3Q27) there exist exactly 9 or 27 linearly independent moments. These can either be taken as they are, or orthogonalized using Gram-Schmidt, weighted Gram-Schmidt or a Hermite approach
- equilibrium values can be computed from the standard discrete equilibrium of order 1,2 or 3. Alternatively they can also be computed as continuous moments of a Maxwellian distribution - equilibrium values can be computed from the standard discrete equilibrium of order 1,2 or 3. Alternatively they can also be computed as continuous moments of a Maxwellian distribution
One option is to start with one of *lbmpy*'s built-in methods and modify it with `create_lb_method_from_existing`. One option is to start with one of *lbmpy*'s built-in methods and modify it with `create_lb_method_from_existing`.
In the next cell we fix the fourth order relaxation rate to a constant, by writing a function that defines how to alter each row of the collision table. This is for demonstration only, of course we could have done it right away when passing in the collision table. In the next cell we fix the fourth order relaxation rate to a constant, by writing a function that defines how to alter each row of the collision table. This is for demonstration only, of course we could have done it right away when passing in the collision table.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
def modification_func(moment, eq, rate): def modification_func(moment, eq, rate):
if rate == omega[3]: if rate == omega[3]:
return moment, eq, 1.0 return moment, eq, 1.0
return moment, eq, rate return moment, eq, rate
method = create_lb_method_from_existing(method, modification_func) method = create_lb_method_from_existing(method, modification_func)
method method
``` ```
%%%% Output: execute_result %%%% Output: execute_result
<lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7fc007825f70> <lbmpy.methods.momentbased.momentbasedmethod.MomentBasedLbMethod at 0x7f1b8766a520>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Our customized method can be directly passed into one of the scenarios. We can for example set up a channel flow with it. Since we used symbols as relaxation rates, we have to pass them in as `kernel_params`. Our customized method can be directly passed into one of the scenarios. We can for example set up a channel flow with it. Since we used symbols as relaxation rates, we have to pass them in as `kernel_params`.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
ch = create_channel(domain_size=(100, 30), lb_method=method, u_max=0.05, ch = create_channel(domain_size=(100, 30), lb_method=method, u_max=0.05,
kernel_params={'omega_0': 1.8, 'omega_1': 1.4, 'omega_2': 1.5}) kernel_params={'omega_0': 1.8, 'omega_1': 1.4, 'omega_2': 1.5})
ch.run(500) ch.run(500)
plt.figure(dpi=200) plt.figure(dpi=200)
plt.vector_field(ch.velocity[:, :]); plt.vector_field(ch.velocity[:, :]);
``` ```
%%%% Output: display_data %%%% Output: display_data
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACi4AAAPhCAYAAABkQMVPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOzdd3gUVdvH8XsSkgChk1ATOtI70juE9ARQBBW72OVVHx8LoiAoIAiooIJUERBBQLqKggqIAgpIV6ogvXdCsvf7B+w+m767CTuz+P1c17mSsMnsz3F2ypl7zjFUVQAAAAAAAAAAAAAAAAAAALzBz+wAAAAAAAAAAAAAAAAAAADg34PCRQAAAAAAAAAAAAAAAAAA4DUULgIAAAAAAAAAAAAAAAAAAK+hcBEAAAAAAAAAAAAAAAAAAHgNhYsAAAAAAAAAAAAAAAAAAMBrKFwEAAAAAAAAAAAAAAAAAABeQ+EiAAAAAAAAAAAAAAAAAADwGgoXAQAAAAAAAAAAAAAAAACA11C4CAAAAAAAAAAAAAAAAAAAvIbCRQAAAAAAAAAAAAAAAAAA4DUULgIAAAAAAAAAAAAAAAAAAK+hcBEAAAAAAAAAAAAAAAAAAHgNhYsAAAAAAAAAAAAAAAAAAMBrKFwEAAAAAAAAAAAAAAAAAABeQ+EiAAAAAAAAAAAAAAAAAADwGgoXAQAAAAAAAAAAAAAAAACA11C4CAAAAAAAAAAAAAAAAAAAvCaP2QGQPcMwgkSkzo0fj4tIiolxAAAAAAAAAAAAAAAAAAD/Hv4iEnrj+82qejWnC6Rw0TfUEZF1ZocAAAAAAAAAAAAAAAAAAPyr3S4i63O6EKaKBgAAAAAAAAAAAAAAAAAAXsOIi77huP2btWvXSunSpc3MAgAAAAAAAAAAAAAAAAD4lzh8+LA0adLE/uPxrH7XVRQu+oYU+zelS5eWsLAwM7MAAAAAAAAAAAAAAAAAAP6dUrL/lewxVTQAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAAAAAAAIDXULgIAAAAAAAAAAAAAAAAAAC8hsJFAAAAAAAAAAAAAAAAAADgNRQuAgAAAAAAAAAAAAAAAAAAr6FwEQAAAAAAAAAAAAAAAAAAeA2FiwAAAAAAAAAAAAAAAAAAwGsoXAQAAAAAAAAAAAAAAAAAAF5D4SIAAAAAAAAAAAAAAAAAAPAaChcBAAAAAAAAAAAA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8ccfS+fOnaVEiRJy3333ydy5c+XixYteTpley5YtpUOHDpm+fvr0aZk2bZp0795dQkJCJCYmRsaNG2f6fc/w8HDp0aNHhq/ZbDZZvny5PP7441KqVCmJjIyUSZMmWfKzilygqjSLNxEJExEVET1w4IDCt3Xr1k3t/z/tzTAM7dy5s86ePVuvXr1qdsR0zpw5o4UKFUqXO2/evNq1a1edMWOGnjt3zuyY6axevTpd5uLFi+vDDz+sixcv1itXrpgdMUNjx45NlTkgIEAjIiJ09OjRun//frPjZer1119Plbtu3brar18//fXXXzUlJcXseJl69NFHHZlLlCihDz30kM6bN08vXLhgdrQsJSYmqohonjx5tGPHjvree+/p7t27zY6VJZvNpm3atFER0bCwMH3iiSd00aJFeunSJbOjZclms2njxo1VRLRRo0bav39/Xb9+vaW3a9XruRs2bKiGYWiLFi108ODB+scff6jNZjM7WpZsNps2bdpURUQbN26sAwYM0N9++83yuVVVO3XqpCKilStX1ueee06///57TUpKMjtWtrp06aIioqGhofrggw/qnDlz9Pz582bHylavXr1URDQ4OFi7deumkydP1mPHjpkdK1uPPPKIiogGBQVpTEyMjh07Vg8ePGh2rGz17t3bJ3M//PDDju2ka9euPrOd2LfvkJAQfeCBB/TLL7+05Pl2WnfccYeKiFatWlWff/55Xb58uU/sB6OiotTPz09bt26t77zzjm7dutXyxx2bzaatW7fWQoUK6V133aVTp07V48ePmx0rWzabTW+//XatXLmy/t///Z9+9913lrwGTislJUUbNGigLVu21KFDh/rENqKqmpycrLfffrtP7f9Ur+du3bq1PvLII7pgwQLLXy/YXbt2TSMjI/X555/XH3/8UZOTk82O5JLk5GTt2rWr9uvXz2fOu1Wv5+7Zs6e+9dZbum3bNrPjuCwlJUUfeOABfffdd3XPnj1mx3GZzWbTxx57TEePHu0T54B2NptN+/TpoxMmTPCJ46SdzWbTl19+WWfOnOkT54B2NptNBwwYoIsWLbJsv2tGbDabvvPOO7pixQq9du2a2XFcZrPZ9L333tPVq1dbvo8qrVGjRulPP/3kM8dKuyFDhui8efN85tzE7qWXXtJ33nnH8n3HaT355JMaFxenn376qZ4+fdrsOC4bOXKkBgYGanx8vH722Wd65swZsyO5ZOXKlY77JM2bN9eRI0fq33//bXasbKW9fxkSEqK9e/fWb7/91vL9EREREenuYdauXVsHDBigW7ZsMTtepkaOHJkut/1ed6tWrXTUqFGWvJe5bds2NQwjw+z2e22RkZE6btw4PXr0qNlxHZKTk7VKlSqZ5ra34OBgvfPOO3XGjBl69uxZUzOfP39eL126pA8++GC2ue2tTJky+tRTT5n62d2yZYtu3rxZ+/bt63Jue71EQkKCTp48WU+cOOH13N99950uXbpU33jjDbdy21uTJk30rbfe0s2bN3u1P2DVqlW6YsUK/eSTT9zKGxAQoLGxsTp16lTTt/V/qwMHDjj/PwnT3KiJy42F0ChcRPY2b96sb7zxhuMmZGYtNDRU//vf/+rOnTvNjqyq13N/9NFH2qJFi2wPylYqYvz777/122+/1cqVK2eauVChQnrPPffonDlz9OLFi2ZHVlXV48eP66+//qqFCxfONHf9+vX1jTfe0PXr11vmhsL58+d148aNGhQUlGHmUqVK6aOPPqoLFiywzLpWVU1KStLNmzerv79/usxBQUEaHR2tH330kSUv0H///fcM13XNmjX15Zdf1lWrVlmy82/58uXpMufPn18TEhJ0/PjxeujQIbMjZmjRokXpcpcuXVp79+6t8+fPt2yh64IFC9LlLl++vD799NO6dOlSvXz5stkRM/T1119neOFqX99W2o84c+7gcz7W3HXXXfrZZ5+ZctHqioz2J4GBgRoZGakffvihJTuaVFV37Nihfn5+qXIbhqEtW7bUd955R7dt22aZ46Sz3bt3Z3jcady4sQ4cOFA3btxoydx79+7VPHny+FzujNa3vaB7yJAhli0+ymj7DgwM1M6dO+vo0aN13759ZkfM0KZNm9JtI4ULF9YePXpYej/466+/pstdsWJFffbZZ/Wbb76x7I33tOdVvvKwwuLFi1PlLliwoN555506ZcoUSxfWzZkzJ1XuSpUqaZ8+fXTZsmWWLr6cPn16um1k6NChlj1O2k2ZMsWRO1++fJqYmKiTJk2y9Daiqjpx4kRH7pCQEH3ooYd0/vz5li9wcM5drlw57dOnj08U8EyYMMGRu3r16tq3b19dt26dpbdt1dS569evr4MGDbLsOYmz8ePHO3I3a9ZMhw0b5hNFMOPGjVMRUT8/P23fvr2OGTPGJ4ovP/roI0f/VFxcnGk3Qt01evRox/G9Z8+eOnv2bJ94MO69995z7LsfffRRXbJkiaWP73b23KVLl9annnpKv//+e8vvu1VVx4wZoyKiJUuW1CeffFK/++47n8g9depUFREtUKCA9uzZU7/88kvL9lE5c+5na9iwoQ4ZMkR37dpldqxsbd++3ZE7ICDAZ4oYz507p0WKFEl1Le8LRYw2m02bN2+e7tq4WbNmOmLECMv2D+7du1cfe+yxDO+VFCtWTB955BFdunSp5YoYFy9erK+99lqW912rV6+u/fr1s1Sf29ChQ10u6mrSpIm+8847ltjf9OrVS++44w4tWLCgS9n9/Py0TZs2+v7775t6f7B+/fpauXLlLO8ZZ9QCAwM1Ojpax48fb0oRZmhoqFt507YiRYpor169dM6cOV6991aqVKkc5RYR9ff31/bt2+sHH3zgtW2nZMmSOc7t3Nf1/PPP6w8//HDTz82qV6+e47xBQUHapUsX/fzzz33imuNWQeHiv7QJhYu3hMmTJ7u9s23btq1OmzbN1MISeyeCJweJ6dOnm1bE+OGHH7qVOV++fNqtWzedPn26qReP9s49V1vZsmX1iSee0CVLlph6Q9Xemerquo6Pj9fx48fr4cOHTcus+r/Oa1da/fr19fXXX9e1a9ea/hTzxIkTMyweSdtCQkL0/vvv19mzZ1viqZPp06en6rTJrDVu3FjffPNN/f333y1xQT5r1qxsT/zz5s2rMTExlip0nTt3rpYpUybL3Pnz59fExESdMGGCZYpGv/rqq2wvEJ3Xt1U6zebPn68hISFZ5vbz89NWrVpZajSvBQsWuNTxUa9ePUuNortw4ULNnz9/trmrVKmiL7zwglcutF2xZMmSTIv8nVu5cuX0mWee0W+//dYSN8u+/vprzZs3r8/l/u677zQ4ODjb3JUqVbLUKKkrVqzQIkWKZPkUuIhonTp1tG/fvrpmzRpLfC5XrVqlJUuWzDK3fT9opRHr1qxZo+XKlcsyt33EzokTJ5p+/mq3fv16rVatWrafyaeeekoXL15smaKpTZs2ab169TLNbBiGNm/eXN9++23dtGmTJbYR1esjM9hHhM6oFSpUSLt37265kS///PNPbd26daa5K1eurM8//7yuWLHCEvs/u927d2vHjh2z3I8MGzbMMg982u3fv18jIyMzPe/u0qWLTpkyxXKFRwcOHNDY2NgMcxcvXlwfeughS458efjwYU1ISMh0//d///d/+sMPP1jugb6jR49q165dM8xdrVo1ffXVVy1ZfHn8+HHHyMoZXSsMHDhQt2zZYrncJ0+e1O7du2eYu3nz5jp8+HBLFl+ePn1ae/bsmS6zv7+/durUST/66CPLXMM7O3fuXIYP7efNm1e7dOmiU6dO1VOnTpkdM50LFy7o/fffn+Hx/d5779W5c+dasjjt0qVL+tBDD6XLHRISoo888ohliy8vX77sGBk/7THHyrmvXr2a4chR+fPn1zvvvFO/+OILS94wt49QnNEDlA0aNNDBgwfrX3/9ZXbMdGw2m0ZERGTY92PlIkabzaa1atXKtDjKykWMBQoU0ICAgCyvMa1YxBgYGJhlZnsrWrSoPvTQQ7p48WJL7GNc6WdzblWqVNFXXnnF9AFNXOlny+x8cdCgQaaNlO5qwWJmrUmTJjp06FCv7y/dLVjMqPn5+Wnbtm31vffe89pnt2jRojnObW/2BxmnTJmiJ0+evKm5s7u/40lr3Lixvv322zd1289poWhmrVixYnr//ffrl19+eVPOccqXL5+refPly6fdu3fX2bNnW/Lc/VZC4eK/tAmFi7eEYcOGebyjLVq0qPbp00c3b97s9dwjRozI0UEiKChIExMTddq0aV4tnLI/bepJCwwM1JiYGJ06darXO7jdLVx0boUKFdIRI0aYcsPJ3UJRezMMQ3v37m3azT13ChedW9OmTXX9+vWmZFZNPTqDq61IkSI6evRoUwt3PCng7ty5s+7YscO0zKqqn376qVuZAwIC9MUXXzR99Nlp06a5lTs4OFgHDRpk+iiMn3/+udv77Jdeesn0zuFZs2a5vX336NHD9HO7tKNHudIaNWqkv/zyi6m5582b53busLAwnT17tqmdexmNgppdK168uH7yySemFqZlNOpsdi0kJETHjx9vau6MRm/NroWHh5u+nSxbtswnP5cZjaqcVTMMQ++++279559/TM39ww8/uJW7YMGC+s4775h+oyOjUX6zajVr1tRly5aZmllV9eeff3Yrd/fu3S3xUMjatWtdzpw/f359++23LTFS5/r1613OXb58eZ03b54lio42bNjgcu6WLVvq77//bnZkVc141NmMmr+/v3bv3t0yN3y3bNniUu7g4GB9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S2xsrHTu3DlXz+EvX76ca8tK6+LFi/L555/LzJkzpV27djJq1CipV6/eTXs/5ILcqH6kMeIisjdr1ix96KGHsp22M6tWuHBh7dixo7766qv6/fffeyX3+vXrdcyYMVq1alWXMhYoUEDj4+P1/fff123btpn2pPL+/fv122+/zXZY5+DgYI2Li9PRo0frn3/+afqT1adPn9aNGzdm+TRKjRo19MUXX9QffvjBMtN5Xb58Wbdv357p9JdlypTRxx57TBcsWHBTnoLJiZ07d2b4dFuBAgW0W7duOnnyZD1y5IjZMdP55ZdfMlzXt99+uw4cONAy0yyn9c0336TLXKxYMe3Vq5d+8cUXlpsiw+6rr77K8OmoF198UX/66SfTn4rNzNy5c9Plrl+/vr7xxhu6bt06SzyJnJGMRnerUaOGvvzyy7pq1SrLTfdml9FoY6VLl9bevXvrggULLPPUelpr1qxJl9s+jfj48eNNHw0tMxs3bkyX23kaWitOVaequnXr1gynpG3YsKG+8cYblpmOO60dO3ZkeLxs1KiR9u/fX9euXWvJ3Nu3b0+3vv39/bVNmzY6bNgwU89Xs7J58+Z0ue3TjE6YMMFSI6Y4+/3339NtI2XLltUnnnhCFy9ebPqovplZvXp1utyNGzfWgQMH6oYNGyy5jaimH50zX758mpCQYOltRFV1/vz5GV4rLFq0yHJT0TpLOyp03bp19bXXXtNffvnFkvs/O+fR2v39/bVdu3b67rvv6o4dOyy7baumHtU/f/78Gh8fr2PHjrXMKIWZGTVqlCN3kSJFtEePHvrpp59a8prS2fDhwx25S5Qooffff7/OmDHDMqMrZmbo0KGpjjePPPKIzp4925JT0TobMmSII3f58uX18ccf13nz5nl1phJPvPXWW6muh/v06aOLFy+2XD9PWgMHDnTkrlevnr700kv6/fffW37kjf79+zuucVq0aKFvvvmm/vrrr5a9Hrbr16+filwflaVz5846cuRI3bp1q6WPOaqqr7zyiopcn9Gma9euOnbsWEuNrpiZl19+2dG31qNHD504caJP3EPq27ev435Ht27ddOzYsbpnzx6zY2Xr7bffVpHrI4e2bt1aBw0apL/88ovlP5fOsw6VKFFC77nnHp08ebLlt5Vvv/021fl3eHi4PvzwwzpjxgxLn1vt3bs33fTFRYsW1TvuuEPHjh2ru3btMjtihq5evaqVK1fO8J5DgwYN9KWXXtJly5ZZ6potJSVFDxw4oHFxcZneT8ubN69GRETosGHDdOPGjZa4dktOTtalS5fqY489luX9S5Hrsz4kJCTomDFjTL+HmZKSooMHD9ann34629z2ZoX9vM1m0+7du2uXLl3cHjGyaNGi2r17d50wYYIp+8zq1atrpUqVNF++fG7ltrdSpUrpAw88oJ9//rlXr+1yY2ROe3953759deXKlV65B+fpes6oFS9eXO+++26dOnWqHj169Kbmzo0pxdOu99dff/2mn+P4+/vnam57u+222/TJJ5/UL7/80vJ9Gr6KqaL/pU0oXLxl7Nu3z+VhnQMDA7Vp06b6zDPP6NSpU3XHjh2mnVBv2bIl02HL/f39tUWLFtq/f39duXKlZQrpVFWnT5+eYeb69evryy+/rMuXL7dkJ2Xa6bkDAwO1c+fO+sEHH+ju3bvNjpepF198MVXuJk2aWLqAzu6+++5zZK5QoYI+++yz+s0331hy23AWHR2tIv8rLpowYYIeOnTI7FhZstls2rx5cxURrV69uv73v/+1dNGfnc1m0/r16ztu9I4YMUL//PNPs2Nly547MDBQo6Ki9KOPPrLEVIvZsdls2rhxY82TJ4926NBBR40aZdkOPWc2m03btGmjItc786xeHOosKipKRa53AD/11FO6ZMkSS3VCZqZr164qcr0o4O6779Zp06b5xIVojx49VOT6wxNdunSxdHGos3vuuSdVbl847qiq3n333So3OhrvuecenTFjhp48edLsWNm666670n0urVr05ywxMVFFrhe0DhgwwPLngXadO3fWvHnzamxsrI4bN84nPpM2m01btWrlKJBfuHChT+y7bTabNmzY0HGsXL9+vU8cK5OTk7V+/foaGRmpY8aMualTKuWmq1evauPGjfW+++7TL774Qk+fPm12JJdcvnxZW7durc8884wuXbrUJ/Z/qqoXL17UyMhI7du3r65atcry1zl2Fy9e1MTERB00aJDPfCZVr+fu3r27Dh8+XDdv3uwTxxvV67nvueceff/99y1fQOzs0qVL+tBDD/lMMZfd5cuX9YknntApU6b4xLmr3ZUrV/SFF17QL7/80mf23arXjzuvv/66fv311z5xXmKXlJSkgwcPtlzfdnaSkpL03Xff9YmCVmdJSUk6bNgw/fnnn33mWKl6PXe/fv10wYIFeu7cObPjuCwpKUkfeughHT58uGWKtlyRkpKiHTp00C5duuiYMWN0586dPnPMvO+++zQwMFA7dOiggwcP1nXr1vnEZ9T5waFy5crpI488ojNnztRjx46ZHS1LGd2/dC60tOq1RFJSklapUiXd/Us/Pz9t2rSpvv7665Y9Lj377LOZ3tv28/PTZs2a6RtvvKGrV6+21H7++++/z/bevD3/gAEDdM2aNZb47J4/f97lKXXz5Mmj7dq106FDh+rGjRtN229eu3ZNr1y54riP6WorVqyY9uzZU6dMmWLKA7k7d+7UrVu3au/evd0uljMMQ5s2bar9+/f3+kMNK1eu1OXLlzsexHG32QfymThxoteumWw2my5btkwXLFigjzzySI4KFcuUKaP33XefTpkyxSfugd4KbkbhoqHXC+NgYYZhhInIARGRAwcOSFhYmMmJ4KmuXbtmOIWNYRhSo0YNadKkiTRp0kRuv/12qVu3rmWmaUpMTEw1ZVC1atUcw9i3bdvWElOipnXt2jWpUaOG7N69W0JCQqRz586OKVSsMt1YRi5evCgVK1aUPHnyOKa+6tSpk2WmGsvM0aNHpW7dutKqVSuJi4uT6OhoS69nu927d8vDDz8s0dHREh8fLzVr1rTMdEZZ2bt3rwwfPlzi4+Olffv2pk996qr9+/fL3LlzJT4+3lJTMGXn4MGDsnLlSomKirLUVEbZOXz4sPzyyy+Wmq7QFYcPH5Yff/xRoqKipEiRImbHcdmRI0fkq6++kri4OJ86Vzty5IhMmjRJ4uLipE6dOj6xDxS5ftwZOXKkxMbGSosWLUyfUsdVx44dk8GDB0t0dLS0bdvWZ/bfx48fT5XbCtPkuuLUqVMybNgwiYmJ8ant5MyZM/Lxxx9LTEyM1K1b12c+l+fOnZMvvvhCYmNjpUyZMmbHcdmFCxfk+++/l06dOllq6r/sXLx4UbZt2yaNGjWyxJRorrp06ZKcPHlSwsPDzY7ilitXrsi1a9ekYMGCZkdxy7Vr18TPz88yU/u6ymaziWEYPrP/s1NVn8sMAABgRSkpKaKqPnMdb3ft2jX58ccfpUWLFpaZdtsVycnJ0qdPH6lTp4506tRJqlSp4jPntYmJifL777877ll27NjR1OmrXTVu3Dh54oknROT69M/2+5cdOnSw9D2Iffv2yW233ZZqCuPw8HCJjIyUyMhI6dChgxQrVszEhBlTVWnevLn8+uuv6V4LCwtz5O/YsaPl8r/99tvSr1+/TF+vUKGCREVFSVRUlHTo0MEy/RZr166Vpk2bZvk7hmFI48aNHdM/N2nSxPT+i7Nnz0rFihXl9OnT2f5uaGioREZGSnR0tHTu3FlCQkK8kDBjqiqNGzeW33//3aXfr1atmsTGxkpMTIy0bt3atJqUa9euSc2aNWXXrl0u/02RIkWkffv20rFjR+nYsaNUq1bNZ45Zt4qDBw869+2Gq+rBnC6TwkUfQOHirWHRokUSHx8vItdP4pyLFBs1aiSFChUyOWHGVq1aJXfccYd07NhRIiIipFOnTj5xk2nNmjWyYsUKiYyMlAYNGvjMzbx9+/bJqVOnpH79+j6TWUTk9OnTkj9/fp8pZLDjxhIAAAAAAAAAAIBvSU5Oll27dvlc0Yq9ULR27doSERHhU4WiDz74oMyePVvatWvnKLb0hfU/f/586dKli4iI5M2bV9q0aSORkZESFRUlNWrUsGz+U6dOSaVKleTs2bOOf8uXL5+0a9fOUaxYtWpVS+bv3LmzLFu2LN2/h4SEONZ9ZGSkhIaGmpAuc/3795eBAwdm+Jqfn580a9ZMoqKiJDo6Who2bGiZe/lfffWVdO3aNdPXAwMDpX379hITEyOxsbFSuXJlL6bL3IcffijPPPNMlr+TL18+ad26taNQsX79+qYXuP7bUbj4L0Xh4q1h0qRJEhoaKrfffrtPjERnd+rUKSlSpIhlDrwAAAAAAAAAAAAAAO9ISUmRVatWSbNmzXxqEBObzSZ33323lC1bViIjI6VNmzaSL18+s2O55NVXX5WhQ4dKzZo1HYWKrVu3tvwsPj/++KO0a9dORK6Pqti0aVOJjo52FPtZtejsxIkTUrFiRblw4YLj30qWLOkoVIyIiLDciJwi17fxBg0ayB9//JHq38PCwhyFih07drTcTDPnz5+XypUry/Hjx1P9u7+/vzRt2tRRqOhr+5x/g5tRuOhbY2wDPuzhhx82O4JHrHgABgAAAAAAAAAAAADcfP7+/tK2bVuzY7jNz89PvvjiC7NjuM1ms0nt2rVl//79Uq5cObPjuExVZcyYMXL//fc7iv2KFy9udiyXDBs2TC5fviytW7d2FCvWq1fP8oM7zZkzR/744w/x8/OTFi1aOIoV69SpY8nROO2GDx/uKFqsW7euo1CxTZs2lpnyHN5D4SIAAAAAAAAAAAAAAABgMj8/P7n33nvNjuGRL774wvLFfmmpqrRr10769u0rRYoUMTuOW3bt2iUzZsyQyMhInxmQ6vLly3L+/HmZOXOmtG/fXkqUKGF2JJiMqaJ9AFNFAwAAAAAAAAAAAAAAAADMcDOmivatUmcAAAAAAAAAAAAAAAAAAODTKFwEAAAAAAAAAAAAAAAAAABeQ+EiAAAAAAAAAAAAAAAAAADwGgoXAQAAAAAAAAAAAAAAAACA11C4CAAAAAAAAAAAAAAAAAAAvIbCRQAAAAAAAAAAAAAAAAAA4DUULgIAAAAAAAAAAAAAAAAAAK+hcBEAAAAAAAAAAAAAAAAAAHgNhYsAAAAAAAAAAAAAAAAAAMBrKFwEAAAAAAAAAAAAAAAAAABeQ+EiAAAAAAAAAAAAAAAAAADwGgoXAQAAAAAAAAAAAAAAAACA11C4CAAAAAAAAAAAAAAAAAAAvIbCRQAAAAAAAAAAAAAAAAAA4DUULgIAAAAAAAAAAAAAAAAAAK+hcBEAAAAAAAAAAAAAAAAAAHgNhYsAAAAAAAAAAAAAAAAAAMBrKFwEAAAAAAAAAAAAAAAAAABeQ+EiAAAAAAAAAAAAAAAAAADwGgoXAQAAAAAAAAAAAAAAAACA11C4CAAAAAAAAAAAAAAAAAAAvIbCRQAAAAAAAAAAAAAAAAAA4DUULgIAAAAAAAAAAAAAAAAAAK+hcBEAAAAAAAAAAAAAAAAAAHgNhYsAAAAAAAAAAAAAAAAAAMBrKFwEAAAAAAAAAAAAAAAAAABeQ+EiAAAAAAAAAAAAAAAAAADwGgoXAZP88ccfcuXKFbNjeOTUqVNy6dIls2O47dChQ3L27FmzY7ht06ZNkpSUZHYMt5w+fVp27txpdgy3bdq0SS5evGh2DLecPHlStm/fLqpqdhS3bNiwQc6cOWN2DLeoqvz0009y9epVs6O4RVVl+fLlPnnM+fnnn+XYsWNmx3Db4cOHZe3atWKz2cyO4raff/5ZTpw4YXYMtx0/flx+++03n1znq1ev9snzqk2bNvnktrJ9+3Y5fPiw2THctm3bNvnnn3/MjuG2P/74wyfX9/r1633y+PPrr7/KqVOnzI7htp9//tnnzgtFRNasWeOT15dr1671yfX9xx9/yMmTJ82O4bZdu3bJoUOHzI7hthMnTvjkNb3NZpN169b55Dnh5s2bffKc8O+///bJY31SUpL8/vvvPteXIiKyceNGn91W9u/fb3YMt6mqrF69Wq5du2Z2FLft3r1b9u7da3YMj6xdu1ZOnz5tdgyPrF69Ws6fP292DI/8/vvvcvToUbNjeOTMmTOyZs0aSUlJMTuKR/7880/ZvXu32TE8tmPHDtm3b5/ZMTx26NAh2bp1q0+eF4hcPwdeuXKlTx6r7P744w+fvE61O3LkiE9/Bq5everTn4GrV6/69D70yJEjcuHCBbNjeOTixYty+fJls2N4RFV9dpu/FVG4CJjkt99+k5CQEOnevbvMmDHDp07IbDabVKhQQXr27Clz5szxmc4yVZWwsDCJiYmRiRMnyvHjx82O5JLly5dLaGio3HPPPTJr1iyf6PgoVKiQJCQkSPXq1eWVV16RNWvW+MSNg23btklISIgkJibK5MmTfWIbKVy4sCQkJEi1atXkpZdektWrV/tEB83BgwclNDRUIiIiZPTo0T7ReW0YhsydO1dCQkLkjjvukE8//dQnthHDMGTevHlSvHhxSUxMlPHjx/tM8cuhQ4ekVKlS0qxZMxk4cKDPFKaFhIRIz549pXTp0vLggw/KrFmzfOY4v2/fPilRooS0aNFC3n77bdm0aZNPXLwVK1ZM7rnnHgkLC5PevXvL/PnzfaYQ/aeffpLixYtLXFycjBs3zmc+n2fOnJGSJUtK69atZfjw4bJjxw6f2FZERMLDw6VJkyYyaNAgn9nG/fz8pHz58tK4cWN58803ZcOGDT6R+9q1a1K2bFm5/fbbZeDAgT6T+/Tp01KqVClp3ry5vP322/LHH3/4RO59+/ZJaGiotGnTRoYNG+YzD7ds375dQkNDpUOHDjJy5Ej566+/zI7kkq1bt0pISIh07NhR3nvvPZ/pJN+1a5eEhob6XO6TJ09KiRIlpG3btjJixAif2U4CAgKkYsWK0qRJE3nrrbdk8+bNPvG5LFy4sERFRUn16tXl5Zdflp9//tknrjP9/Pzkgw8+kLJly8pjjz0mixcv9pkHuLZs2SIhISHSpUsXn+mPEBHJmzevVK1aVZo2bSpDhgyRbdu2+cQ2HhgYKK+99pqUL19ennnmGVm2bJnPPDS8YcMGx7YyadIkn3nYokCBAlKnTh2pX7++vPHGG7J+/XqfuL43DEOmT5/u6Jv9/PPPfeb6vkCBAlKrVi2pXbu29O3b16eKunbv3i2hoaHSvn17nzo/FLl+36d48eLSuXNnGT16tE8Vspw7d05KlSolTZs2lbfeestnrpdFrp+7PPvss46+uDlz5vjEfRQ7++e1Zs2a8tJLL8nKlSslOTnZ7Fguy5cvn9x2221Sp04defXVV33m3NGuWLFiEhERIZUrV5Y+ffr41HmByPVz4AkTJkiJEiUcxypfK/4+fPiwo19g1KhRsmvXLrMjuaVgwYLStGlTqVOnjrz22mvyyy+/+MR5jl1QUJA8++yzUrlyZXnuuefk+++/96lC2MDAQHnwwQelVq1aPrkPsvefxsbGyrhx43zq4Ud/f3+pV6+e4zrWV65NRK7XjSQkJMh//vMfWblypU9tM7ckeyUpzbpNRMJEREVEDxw4oLg1JCUlably5dT+/zYgIEA7d+6sH3/8sf7zzz9mx8vWM88848geHBysPXr00Dlz5uilS5fMjpal3r17O3L7+flpu3btdPTo0Zb+bF24cEFDQkIcuQMDAzUmJkY/+eQTPXz4sNnxMjVlyhRHZhHRUqVK6WOPPaaLFy/Wy5cvmx0vQ8nJyVq1atVU20jr1q11xIgRumvXLrPjZWrSpEmp1nWJEiX0kUce0YULF1r2M2mz2bR+/fqpctevX1/feOMN/e2339Rms5kdMUOHDh3SvHnzOjIbhqEtWrTQoUOH6tatWy2b+59//tGgoKBU67tBgwb6+uuv66+//qopKSlmR8xQSkqK1q1bN92+5OGHH9Y5c+bouXPnzI6YqcmTJ6fK7e/vr23bttVhw4ZZeltJTk7WGjVqpMoeFhamjz32mC5YsEAvXLhgdsRMTZs2LVXuoKAgjY6O1g8//FD37dtndrxMnTt3TosVK5Yqe8OGDXXAgAGW3h+qqrZt2zZV7qpVq+oLL7ygP/zwg167ds3seJnq2bNnqtzlypXTp59+Wr/55hu9cuWK2fEydffdd6f7bD7xxBOWPrdSVY2Pj880t5XPU1q0aJFuO3nqqad0yZIlll3fycnJWrNmzVS5K1WqpH369NFly5bp1atXzY6YoaSkJK1YsWKq3Lfddpu+8MILumLFCk1KSjI7YoauXr2qFSpUSJW7Ro0a+tJLL+lPP/1k2f1gcnKyVqtWLVXumjVr6ssvv6yrVq3S5ORksyNmyGazaevWrVPlrl69ur700kuWzq2q+uijj6bKXbFiRf2///s//f777y27fauqjhs3LsPrzAULFlh2/62qun37djUMI1WfVbdu3fTTTz/VEydOmB0vU8nJyXrbbbel649499139a+//jI7XpZeeOGFVNtKlSpV9D//+Y+uXLnS0p/N1atXp8pdqFAh7dmzp37++ed65swZs+NlKikpKdXxx94v8c477+iOHTvMjpelvn37plrnZcqU0ccff9zS51eqqvv379eAgABH7jx58mj79u111KhRlu4vVE3/+QwNDdUHH3xQ58yZo+fPnzc7XqaSk5O1evXqqbJXq1ZNX3zxRf3xxx8te56lqnrp0iUtXbp0quy1atXSV155RVevXm3p/aJq+uv88PBwffLJJy3/OVVVXbhwYarsAQEBGhERoR988IHu2bPH7HjZ6tOnT6r8xYoV03vvvVdnzpypp0+fNjteth5//PFU+UNCQvSBBx7Q2bNn69mzZ82Ol60PPvggVf6CBQvqnXfeqZ9++qkeP37c7HjZ+vPPP9XPzy9VX3S7du10xIgR+ueff5odL1s2m02bNWuW4fW11c8p7YYPH54qf8mSJfXhhx/WefPmWbpP3e6HH35Ilb9w4cLao0cPnT59up46dcrseNlatmxZunOehx56yGfWf9p9aOPGjXXgwIG6ceNGS98fUFV9//33U12btGzZUocNG2b5axPV1PeUQkJC9OGHH7Z8n4cVHDhwwHl7DdPcqInLjYXQKFyEZz766KNUByHn1qxZMx06dKju3LnT7JgZ2rNnT6qTYOcO4Z49e1q2iPGvv/7KMLeIaNOmTXXYsGGW7HAaPHhwhpntnZPDhg2z3MVHRjcg7a1AgQJ655136rRp0yx3wpu22Mi51alTR/v166fr16+31IliUlKSli9fPsPM+fPnt+xNmjlz5mS6rsPCwvSpp57Sb775xnI32dN2Ijm3SpUqWfYmZFa5S5QooQ899JAliwHnzZuXae6AgADt2LGjjhw50nLHy2vXrqUqhE7bKlSooE899ZQlC3dmzpyZae6goCCNiorS0aNHW67TN6MbG2n34X379tWff/7Zcp1db7/9dqa5y5Ytq48//rguWrTIctvK8uXLM81dtGhRvffee/WLL76w3I3frVu3pipoyOgcZerUqZY7bm7bti3T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6VTYf//9tym5Ra7vCwcNGuTRdaY3Cy7TtuLFi+v999+vc+bM0fPnz7uV+/Dhw6bltq/zgQMHul2se/ToUVNzBwcHa7du3XTy5Mlu9XOaVbjo3DwpwDSrcDFtq1Gjhr700ksuT8tsZuFiRtldPUe0QuGicytdurRL1xNWKVx0bnny5NH27dvryJEjM72XYrXCRedWpEgR7dmzp06bNi1df7lVCxedW0ZFdKrWLlx0bvYppadOnaonTpzwuYI0+30Lf39/07PQaDSa1VtwcLDeeeedOm3aNI+uY62OwsV/aRMKF28Jw4YNM23n2KhRI33rrbd0+/btbuceMWKEKZkLFiyo99xzj3711Vce3YB87733TFvf+fPn1zvuuENnzJjh9uhpo0ePNvVAWrNmTe3bt69u3brVrdwfffSRaZntN5hGjhzp9k1fbxdcOrcyZcroE088oWvWrHErs6r3Cy7tzTAMbdasmQ4fPtyjG9XeLLh0bvabed9++63bmVW9W7iYtkVERHi071ZVnTZtmimZ/fz8NCoqSrds2eJR7s8//9yU3Hny5NFOnTrp/PnzPboB6a2RCzNqt912m7722mseXQB9+eWXpuW277+XLFnidm4zChedW1BQkD777LNur/MFCxaYmltEtGnTprp+/Xq3ci9evNj03JUqVdI5c+a49fk0q3DRuZUpU0YnT57sVgGjWYWLzi00NFQnTpzoVm6zChedW6lSpXTatGlubSdmFS46twoVKri9fZtVuOjcqlevrkuXLnU5s6p5hYvOrU6dOrpixQq3cptVuOjcateurT/++KNbuc0qXHRuNWrU0GXLlrmV24zCxYy273nz5rn1ufzjjz9Mz127dm0dN26cSwUYdlu2bDE9d82aNXXQoEFuXdNv377d9NwVKlTQ5557zq2Hhv/880/TcxctWlR79eqlP/30k8u5zSq4dG72EcfGjx/vcvHlvn37TM8tcv1c9j//+Y/Lo6GbWXDp3OwjGrq6rXh7pMisWrly5XTYsGEuzZLj7ZEis2qGYWhsbKxLD5gfP37c9LzOrVChQjpixIhsH4KySuGic6tWrVq2/YZWKlx0bg0aNNDVq1dnmttqhYvOrVy5cjp79uwMz7esWLjo3Pz8/LR3797pRpG2cuGicytcuLCOGjXKcTz1hcJF51akSBEdM2aMXrt2zfQsnrTAwEA1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9FGGU3/Zs6uqzJ49W7Zv3+7x+9SsWdNxHt6iRYscb+MXLlyQDz/8MF1mkdTHn7///lsmTpzo8fvYzw3j4uIkIiIix/3fly5dktGjRzty2mV0DTFt2jSP17m/v7+0bt3acb6S02ufK1euyPvvv+/S7yYnJ8ubb77p8SAFxYsXl5iYGImPj8/xqPJXr151ObeIyOXLl2XAgAEev19YWFiq0eU8Pbe9du1alseVjD73qipDhgyRM2fOePSezus9MjLSo209OTlZRo4cme7fM8qb9t9WrVol8+fPd/s9Rf43cqt93btbOJ+SkuLSvjmrZU6ePNnjz2v+/PklIiLCcc1fqlQpl/5OVWX48OEevWdaEyZMkL/++sujv82XL1+q/K7MIvfOO+949F6ZWbRokaxatcqjv/Xz85OWLVs6tp9q1apl+v962LBh6Qr+M6vZcOffd+/eLZMmTXIz+f9UrFjRUeCd0UP/w4cPd1z7ZnTs8eR7559VVUaMGOFxP2Nmg0S8++67jmvftMfJ3P767bffyrp16zzKL3L9IWN7H+/PP//s6CPJ7Bwlt7/fvn27LFq0yOP8oaGhUr58ebntttukSpUqEhQUlO05lruvZ/U7O3fulG+//dbj/IGBgVK1alWpVq2aVK1aVYKDg7PN4nye62rL7G++++472bt3r8f5g4ODpWrVqlK1alWpWLGiBAYGprueyOhnV1/L6vf+/PPPHJ3ji1y/JqxYsaJUqFBBQkJCHNeaN7tduHBBTpw4kaPsIv+b3TI6OjrHD8da2cGDByU8PNz+Y7iqenazwpm7HyKa95uIhMmNOcJvlXnP8T+DBg3Kct77jFqePHm0ffv2OmzYMN28ebPabDZTsq9evdrt7PZWqlQp7dWrl3766ad68OBBr+Zeu3atR5kLFSqkXbt21XHjxum+ffu8mllV9ZVXXnE7c758+TQuLk4//PBD3bNnj9czX7x4UUuVKuV27ho1auh//vMf/f777/Xq1atez/3ee+95vK4/+ugj3bt3r9czX7hwQUuUKOF27rp16+orr7yiP/30k167ds3ruT/99FO3MxcvXlzvvfdenTFjhp48edLrmVVVn3jiCbdzN2nSRAcNGqQbNmwwbb/93HPPuZU5KChIY2NjdezYsV7fVztbvHix28fJiIgIHT16tO7fv9+03CkpKVqzZk23sletWlVffPFF/emnnzQ5Odm07F9++aXb67xjx476/vvvm7IPtEtOTtZq1aq5lb1YsWLaq1cvnTVrlp49e9a07G+++abb+5WGDRvqG2+8oevWrdOUlBRTcn/zzTdu5y5durT27t1b58+frxcuXDAl98aNG93OHRISovfff7/OmjVLz5w5Y0ruzZs3u527ZMmS+vDDD+u8efP0/PnzpuT+9dd