From baa37ea1833d937fd6c99daba5d1ed9eb1e19b2a Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 23 Mar 2025 13:38:22 +0100 Subject: [PATCH] code: started finalising transpilation process and preparing for performance testing and tuning --- package/Project.toml | 2 +- package/src/ExpressionExecutorCuda.jl | 13 +++++- package/src/Interpreter.jl | 47 ++------------------- package/src/Transpiler.jl | 58 ++++++++++++++++++++++---- package/src/Utils.jl | 42 +++++++++++++++++++ package/test/InterpreterTests.jl | 3 +- package/test/TranspilerTests.jl | 9 ++++ package/test/runtests.jl | 24 +++++++++-- thesis/chapters/implementation.tex | 9 +++- thesis/chapters/introduction.tex | 2 +- thesis/main.pdf | Bin 573470 -> 573993 bytes 11 files changed, 149 insertions(+), 60 deletions(-) create mode 100644 package/src/Utils.jl diff --git a/package/Project.toml b/package/Project.toml index 7944c28..714f623 100644 --- a/package/Project.toml +++ b/package/Project.toml @@ -1,6 +1,6 @@ name = "ExpressionExecutorCuda" uuid = "5b8ee377-1e19-4ba5-a85c-78c7d1694bfe" -authors = ["Daniel Wiplinger"] +authors = ["Daniel Roth"] version = "1.0.0-DEV" [deps] diff --git a/package/src/ExpressionExecutorCuda.jl b/package/src/ExpressionExecutorCuda.jl index 2192dcf..c5b8093 100644 --- a/package/src/ExpressionExecutorCuda.jl +++ b/package/src/ExpressionExecutorCuda.jl @@ -1,4 +1,5 @@ module ExpressionExecutorCuda +include("Utils.jl") include("ExpressionProcessing.jl") include("Interpreter.jl") @@ -13,18 +14,26 @@ export test # Some assertions: # Variables and parameters start their naming with "1" meaning the first variable/parameter has to be "x1/p1" and not "x0/p0" +# Matrix X is column major # each index i in exprs has to have the matching values in the column i in Matrix X so that X[:,i] contains the values for expr[i]. The same goes for p # This assertion is made, because in julia, the first index doesn't have to be 1 # # Evaluate Expressions on the GPU function interpret_gpu(exprs::Vector{Expr}, X::Matrix{Float32}, p::Vector{Vector{Float32}})::Matrix{Float32} - exprsPostfix = ExpressionProcessing.expr_to_postfix(exprs[1]) + @assert axes(exprs) == axes(p) + ncols = size(X, 2) + + result = Matrix{Float32}(undef, ncols, length(exprs)) + # interpret end # Convert Expressions to PTX Code and execute that instead function evaluate_gpu(exprs::Vector{Expr}, X::Matrix{Float32}, p::Vector{Vector{Float32}})::Matrix{Float32} - # Look into this to maybe speed up PTX generation: https://cuda.juliagpu.org/stable/tutorials/introduction/#Parallelization-on-the-CPU + @assert axes(exprs) == axes(p) + ncols = size(X, 2) + + result = Matrix{Float32}(undef, ncols, length(exprs)) end diff --git a/package/src/Interpreter.jl b/package/src/Interpreter.jl index bbf58e9..3a74efa 100644 --- a/package/src/Interpreter.jl +++ b/package/src/Interpreter.jl @@ -2,6 +2,7 @@ module Interpreter using CUDA using StaticArrays using ..ExpressionProcessing +using ..Utils export interpret @@ -14,10 +15,10 @@ export interpret function interpret(expressions::Vector{ExpressionProcessing.PostfixType}, variables::Matrix{Float32}, parameters::Vector{Vector{Float32}})::Matrix{Float32} variableCols = size(variables, 2) # number of variable sets to use for each expression cudaVars = CuArray(variables) - cudaParams = create_cuda_array(parameters, NaN32) # column corresponds to data for one expression - cudaExprs = create_cuda_array(expressions, ExpressionElement(EMPTY, 0)) # column corresponds to data for one expression + cudaParams = Utils.create_cuda_array(parameters, NaN32) # column corresponds to data for one expression + cudaExprs = Utils.create_cuda_array(expressions, ExpressionElement(EMPTY, 0)) # column corresponds to data for one expression # put into seperate cuArray, as this is static and would be inefficient to send seperatly to every kernel - cudaStepsize = CuArray([get_max_inner_length(expressions), get_max_inner_length(parameters), size(variables, 1)]) # max num of values per expression; max nam of parameters per expression; number of variables per expression + cudaStepsize = CuArray([Utils.get_max_inner_length(expressions), Utils.get_max_inner_length(parameters), size(variables, 1)]) # max num of values per expression; max nam of parameters per expression; number of variables per expression # each expression has nr. of variable sets (nr. of columns of the variables) results and there are n expressions cudaResults = CuArray{Float32}(undef, variableCols, length(expressions)) @@ -108,44 +109,4 @@ function interpret_expression(expressions::CuDeviceArray{ExpressionElement}, var return end - -"Retrieves the number of entries for the largest inner vector" -function get_max_inner_length(vec::Vector{Vector{T}})::Int where T - maxLength = 0 - @inbounds for i in eachindex(vec) - if length(vec[i]) > maxLength - maxLength = length(vec[i]) - end - end - - return maxLength -end - -"Returns a CuArray filed with the data provided. The inner vectors do not have to have the same length. All missing elements will be the value ```invalidElement```" -function create_cuda_array(data::Vector{Vector{T}}, invalidElement::T)::CuArray{T} where T - dataCols = get_max_inner_length(data) - dataRows = length(data) - dataMat = convert_to_matrix(data, invalidElement) - cudaArr = CuArray{T}(undef, dataCols, dataRows) # length(parameters) == number of expressions - copyto!(cudaArr, dataMat) - - return cudaArr -end - -"Converts a vector of vectors into a matrix. The inner vectors do not need to have the same length. - -All entries that cannot be filled have ```invalidElement``` as their value -" -function convert_to_matrix(vec::Vector{Vector{T}}, invalidElement::T)::Matrix{T} where T - vecCols = get_max_inner_length(vec) - vecRows = length(vec) - vecMat = fill(invalidElement, vecCols, vecRows) - - for i in eachindex(vec) - vecMat[:,i] = copyto!(vecMat[:,i], vec[i]) - end - - return vecMat -end - end \ No newline at end of file diff --git a/package/src/Transpiler.jl b/package/src/Transpiler.jl index 81aa049..cd97400 100644 --- a/package/src/Transpiler.jl +++ b/package/src/Transpiler.jl @@ -1,6 +1,7 @@ module Transpiler using CUDA using ..ExpressionProcessing +using ..Utils # Number of threads per block/SM + max number of registers # https://docs.nvidia.com/cuda/cuda-c-programming-guide/#features-and-technical-specifications @@ -25,16 +26,57 @@ using ..ExpressionProcessing const Operand = Union{Float32, String} # Operand is either fixed value or register -function evaluate(expression::ExpressionProcessing.PostfixType, variables::Matrix{Float32}, parameters::Vector{Vector{Float32}}) - # TODO: think of how to do this. Probably get all expressions. Transpile them in parallel and then execute the generatd code. - cudaVars = CuArray(variables) +function evaluate(expressions::Vector{ExpressionProcessing.PostfixType}, variables::Matrix{Float32}, parameters::Vector{Vector{Float32}}) + varRows = size(variables, 1) + kernels = Vector{CuFunction}(undef, length(expressions)) + + # Test this parallel version again when doing performance tests. With the simple "functionality" tests this took 0.03 seconds while sequential took "0.00009" seconds + # Threads.@threads for i in eachindex(expressions) + # kernel = transpile(expressions[i], varRows, Utils.get_max_inner_length(parameters)) - #kernel = transpile(expression, ) - # execute kernel. + # linker = CuLink() + # add_data!(linker, "ExpressionProcessing", kernel) + + # image = complete(linker) + + # mod = CuModule(image) + # kernels[i] = CuFunction(mod, "ExpressionProcessing") + # end + for i in eachindex(expressions) + kernel = transpile(expressions[i], varRows, Utils.get_max_inner_length(parameters)) + + linker = CuLink() + add_data!(linker, "ExpressionProcessing", kernel) + + image = complete(linker) + + mod = CuModule(image) + kernels[i] = CuFunction(mod, "ExpressionProcessing") + end + + cudaVars = CuArray(variables) # maybe put in shared memory (see runtests.jl for more info) + cudaParams = Utils.create_cuda_array(parameters, NaN32) # maybe make constant (see runtests.jl for more info) + + # each expression has nr. of variable sets (nr. of columns of the variables) results and there are n expressions + cudaResults = CuArray{Float32}(undef, variableCols, length(expressions)) + + # execute each kernel (also try doing this with Threads.@threads. Since we can have multiple grids, this might improve performance) + variableCols = size(variables, 2) + for i in eachindex(kernels) + config = launch_configuration(kernels[i]) + threads = min(variableCols, config.threads) + blocks = cld(variableCols, threads) + + cudacall(kernels[i], Tuple{CuPtr{Cfloat},CuPtr{Cfloat},CuPtr{Cfloat}}, cudaVars, cudaParams, cudaResults; threads=threads, blocks=blocks) + end end # To increase performance, it would probably be best for all helper functions to return their IO Buffer and not a string # seekstart(buf1); write(buf2, buf1) +" +- param ```varSetSize```: The size of a variable set. Equal to number of rows of variable matrix (in a column major matrix) +- param ```paramSetSize```: The size of the longest parameter set. As it has to be stored in a column major matrix, the nr of rows is dependent oon the longest parameter set +" function transpile(expression::ExpressionProcessing.PostfixType, varSetSize::Integer, paramSetSize::Integer)::String exitJumpLocationMarker = "\$L__BB0_2" ptxBuffer = IOBuffer() @@ -59,7 +101,6 @@ function transpile(expression::ExpressionProcessing.PostfixType, varSetSize::Int println(ptxBuffer, "}") generatedCode = String(take!(ptxBuffer)) - println(generatedCode) return generatedCode end @@ -124,6 +165,9 @@ function get_guard_clause(exitJumpLocation::String, nrOfVarSetsRegister::String) return (String(take!(guardBuffer)), globalThreadId) end +" +- param ```parametersSetSize```: Size of the largest parameter set +" function generate_calculation_code(expression::ExpressionProcessing.PostfixType, variablesReg::String, variablesSetSize::Integer, parametersReg::String, parametersSetSize::Integer, threadIdReg::String)::String codeBuffer = IOBuffer() @@ -174,7 +218,7 @@ end - param ```loadLocation```: The location from where to load the value - param ```valueIndex```: 0-based index of the value in the variable set/parameter set - param ```setIndexReg```: 0-based index of the set. Needed to calculate the actual index from the ```valueIndex```. Is equal to the global threadId -- param ```setSize```: The size of one set. Needed to calculate the actual index from the ```valueIndex``` +- param ```setSize```: The size of one set. Needed to calculate the actual index from the ```valueIndex```. Total number of elements in the set (length(set)) " function load_into_register(register::String, loadLocation::String, valueIndex::Integer, setIndexReg::String, setSize::Integer)::String # loadLocation + startIndex + valueIndex * bytes (4 in our case) diff --git a/package/src/Utils.jl b/package/src/Utils.jl new file mode 100644 index 0000000..595bd21 --- /dev/null +++ b/package/src/Utils.jl @@ -0,0 +1,42 @@ +module Utils + +"Converts a vector of vectors into a matrix. The inner vectors do not need to have the same length. + +All entries that cannot be filled have ```invalidElement``` as their value +" +function convert_to_matrix(vec::Vector{Vector{T}}, invalidElement::T)::Matrix{T} where T + vecCols = get_max_inner_length(vec) + vecRows = length(vec) + vecMat = fill(invalidElement, vecCols, vecRows) + + for i in eachindex(vec) + vecMat[:,i] = copyto!(vecMat[:,i], vec[i]) + end + + return vecMat +end + +"Retrieves the number of entries for the largest inner vector" +function get_max_inner_length(vec::Vector{Vector{T}})::Int where T + maxLength = 0 + @inbounds for i in eachindex(vec) + if length(vec[i]) > maxLength + maxLength = length(vec[i]) + end + end + + return maxLength +end + +"Returns a CuArray filed with the data provided. The inner vectors do not have to have the same length. All missing elements will be the value ```invalidElement```" +function create_cuda_array(data::Vector{Vector{T}}, invalidElement::T)::CuArray{T} where T + dataCols = Utils.get_max_inner_length(data) + dataRows = length(data) + dataMat = Utils.convert_to_matrix(data, invalidElement) + cudaArr = CuArray{T}(undef, dataCols, dataRows) # length(parameters) == number of expressions + copyto!(cudaArr, dataMat) + + return cudaArr +end + +end \ No newline at end of file diff --git a/package/test/InterpreterTests.jl b/package/test/InterpreterTests.jl index 8af9063..d383c70 100644 --- a/package/test/InterpreterTests.jl +++ b/package/test/InterpreterTests.jl @@ -1,6 +1,7 @@ using CUDA using .ExpressionProcessing using .Interpreter +using .Utils expressions = Vector{Expr}(undef, 2) variables = Matrix{Float32}(undef, 2,2) @@ -35,7 +36,7 @@ end reference[2,2] = 0.0 # reference = Matrix([5.0, NaN], # [5.0, 0.0]) - result = Interpreter.convert_to_matrix(parameters, NaN32) + result = Utils.convert_to_matrix(parameters, NaN32) @test isequal(result, reference) end diff --git a/package/test/TranspilerTests.jl b/package/test/TranspilerTests.jl index 01f859d..7234e2d 100644 --- a/package/test/TranspilerTests.jl +++ b/package/test/TranspilerTests.jl @@ -28,6 +28,7 @@ parameters[2][2] = 0.0 # generatedCode = Transpiler.transpile(postfixExpr) generatedCode = Transpiler.transpile(postfixExprs[3], 2, 3) # TEMP + # println(generatedCode) # CUDA.@sync interpret(postfixExprs, variables, parameters) # This is just here for testing. This will be called inside the execute method in the Transpiler module @@ -40,4 +41,12 @@ parameters[2][2] = 0.0 func = CuFunction(mod, "ExpressionProcessing") end +@testset "Test transpiler evaluation" begin + postfixExprs = Vector{ExpressionProcessing.PostfixType}() + push!(postfixExprs, expr_to_postfix(expressions[1])) + push!(postfixExprs, expr_to_postfix(expressions[2])) + + @time Transpiler.evaluate(postfixExprs, variables, parameters) +end + #TODO: test performance of transpiler PTX generation when doing "return String(take!(buffer))" vs "return take!(buffer)" diff --git a/package/test/runtests.jl b/package/test/runtests.jl index ee68520..1fb88ef 100644 --- a/package/test/runtests.jl +++ b/package/test/runtests.jl @@ -2,17 +2,33 @@ using ExpressionExecutorCuda using Test const baseFolder = dirname(dirname(pathof(ExpressionExecutorCuda))) +include(joinpath(baseFolder, "src", "Utils.jl")) include(joinpath(baseFolder, "src", "ExpressionProcessing.jl")) include(joinpath(baseFolder, "src", "Interpreter.jl")) include(joinpath(baseFolder, "src", "Transpiler.jl")) @testset "ExpressionExecutorCuda.jl" begin - include("ExpressionProcessingTests.jl") - include("InterpreterTests.jl") + # include("ExpressionProcessingTests.jl") + # include("InterpreterTests.jl") include("TranspilerTests.jl") end -@testset "CPU Interpreter" begin - include("CpuInterpreterTests.jl") +#@testset "CPU Interpreter" begin +# include("CpuInterpreterTests.jl") +#end + +@testset "Performance tests" begin + # TODO: make performance tests + + # Put data in shared memory: + # https://cuda.juliagpu.org/v2.6/api/kernel/#Shared-memory + + # Make array const: + # https://cuda.juliagpu.org/v2.6/api/kernel/#Device-arrays + + # Memory management like in C++ might help with performance improvements + # https://cuda.juliagpu.org/v2.6/lib/driver/#Memory-Management + + end \ No newline at end of file diff --git a/thesis/chapters/implementation.tex b/thesis/chapters/implementation.tex index 1c01a40..bb01a59 100644 --- a/thesis/chapters/implementation.tex +++ b/thesis/chapters/implementation.tex @@ -9,5 +9,12 @@ Probably reference the performance evaluation papers for Julia and CUDA.jl \section{Interpreter} Talk about how the interpreter has been developed. +\subsection{Performance tuning} +Document the process of performance tuning + + \section{Transpiler} -Talk about how the transpiler has been developed \ No newline at end of file +Talk about how the transpiler has been developed + +\subsection{Performance tuning} +Document the process of performance tuning \ No newline at end of file diff --git a/thesis/chapters/introduction.tex b/thesis/chapters/introduction.tex index 2583d13..0a18f31 100644 --- a/thesis/chapters/introduction.tex +++ b/thesis/chapters/introduction.tex @@ -41,7 +41,7 @@ In order to answer the research questions, this thesis is divided into the follo \item[Chapter 4: Implementation] \mbox{} \\ This chapter explains the implementation of the GPU interpreter and transpiler. The details of the implementation with the used technologies are covered, such as the interpretation process and the transpilation of the expressions into Parallel Thread Execution (PTX) code. \item[Chapter 5: Evaluation] \mbox{} \\ - The software and hardware requirements and the evaluation environment are introduced in this chapter. All three evaluators will be compared against each other and the form of the expressions used for the comparisons are outlined. Finally, the results of the comparison of the GPU and CPU evaluators are presented to show which of these yields the best performance. + The software and hardware requirements and the evaluation environment are introduced in this chapter. All three evaluators will be compared against each other and the form of the expressions used for the comparisons are outlined. The comparison will not only include the time taken for the pure evaluation, but it will also include the overhead, like PTX code generation. Finally, the results of the comparison of the GPU and CPU evaluators are presented to show which of these yields the best performance. \item[Chapter 6: Conclusion] \mbox{} \\ In the final chapter, the entire work is summarised. A brief overview of the implementation as well as the evaluation results will be provided. Additionally, an outlook of possible future research is given. \end{description} diff --git a/thesis/main.pdf b/thesis/main.pdf index eea60eb9fc1096683aaaa4eaaa62e070c0258834..56dabe2659fc0bfae0be0e125df7594572ba295c 100644 GIT binary patch delta 36333 zcmZ6y1yCJL)UFE~cZZDzcXxMpcY-?vciFhRy9a{1ySoRM;I6^_=>VAkr@USu`JBibQ3>>nVfuYxLbZsFB`XCeEwQIMO-eT30Gr2fX8K*Ou4&pER2kK$@zF2({?aEgF2D4&caI5hxf~^4xY!5eTTg4u#TJo||WNpAt zq>EZ&LE$#Uezo9qPeDke2bggD+OD42s}jBE;38fgu$o2rxmlq4`EBp;S6&Ja2o4oN zdqc!Zc0dJI8feEAqyOH74tTZA`;G(C%Zr z5Ev<0tZJ_5(uY|=oZ#S>3wI2vkmg4(zyNfAV3CACbCtK;e3iflcP8EuZ4mqPpuKh-eWnYp6cV*FTaLO$u;!= zo;n}#)9sP=t6+%(s7;S*os+D4_bLSgWdSU`{h!|!5cx$SF7@M9uvZ97swmy7zU>KG z!6H89LTBk{S4*!}0j60%;&d~sp}d>u`PXsoenO^vLJ;b%GHwmI`PK4v$Ce02Zn8^V z{&~%!EU{jqS{vNx3r}iCF@bPCe1TwfM*EdTnFe#SVF0y}h{ZcGSHFEItnC2yLyEUlOLE2BjuTHX_B{Pnw1M8p{ z&RK4GowM;?*my&@5GATgMnl8EVdWxbCU!8ff#>IkXOcJnVd-i`%)$KM+@%GjDMW8D zqlR6-VDV1C(7Xc2mzyU`n=o~;#Zcr>C^dr0$zayLpY+yZR<2cb+HEexBW*-eOfCZj zuKC!$x4hXHJQ?z=yCa0PL=>(>YaN=jClNSFBC!#q;+p}dGez1>QYrzd`ST1tHU>!Bn0Q?EpC*5; z_U7q`6!fRy$}LVZNf~*zA|M}bU&c3_{6R-}z!o}kjxkA@?*W8h9}TszxG)gI0Sjg3 z=D}bIQNys6F-*HAg=Y&cMs57igAg)?N#PbpI94=7uA;Bx2If&7Rv%;$I@EG5b+T+; z1RM0ae7VOz>KBsxMG$3KIfGlBA%l3GzLt_Lz4^nAi=E_Kgz{0)%sbVA&+j{oIMMl& zQJN`JI8U~$>DTVoUA)cO!(qUSx$L<8Szf%fFS7L+-OA-Tx`yIwd^Q#vpRk?gd z&H7f)UpJgH3UDMQ##xZX1Gd0p+T6m*^xX6XgN?hx{OEQ=R4L(We_7fm%XaIh+`GS% zNco%IbX6X9j4f@md=Nzum%C{<5=e53;OD*F&+Vnc-1LX=VFv?a$Dw0Rcns=0D6_T%FC0?ctLN&|tyY(^X&~FdCI* z3Bl77uK^g10dlzD;9Ti}M*re!d40J5CnnT9hfM}2#DHXBW#&pQM5YG))KrMy=S1wD zt-YBCr~D2YR`kwBw!qm~ERdcDToPgG$%ND&R*}zMyuT%p9&)eI*I6kgQAZYyjY|0g z6^m4^1fr228Do)E@ccU7+mLkS7H_mb;^ zHdEirvN_Yo5_dDXI*HXXUWjOTTm~X)S)%I|YLwOA+d$o%z9UianT@fxiO^43v!3t~ zIrl>{-<;+JgHpZI%wD9e08k0m=&1&UA5$5i38{N#l@*$=N>mWS=1QKmc{DIL9^_JMPql8 z6GDTsCOZt>AC_D{UelKP3KgdFs5#HIQR2jduePmAT^B*I)g^unkR^%_#+2XZXjB*B zSn&>bPpsMbJH?pvnQsjGBdkOYTdDSlr0X|NcEpB9a%k7yws-9&>!-Ka!K#3 zpk!o|X+*5O5_It#G(>~qWg*bIn24deNyRZ#6HA~%>@Jv*-Y4IT;B(t{uUvM3d~aYX zl3QiRLO_sXR^k(o{G|B|zEkjuTjWMLs2xn_fQ{gCzVje<-d`Q*Xgd*o&kk%YXZSIE zq?c~3IV~c#2tK9t?lYT_cU>^?H}OvBk58@-4S7&J#K`6+&e_{VU?wzwsqnG{T>sDE z7{ROBnR>m{-R82X{;oOr7Z@qNM*+z+RTM}R_6txMR|!tUS~aL(m#3?JC_C8_`+4*u#|eB5)yK>4Q+}ol$L>O?_N7+gx`{ih!GR?>Y$kvIHA~B88YZu;@BPFd?P! zE@`4v0ndHF5)!(DgmBYR`p+hD(+9+>9mGeWEaxXm;}`}*3g&WGm1X}3mJHn&E4>)T zK|WahvB_qJA7CgCvOD9ImRv-icA2x1f*SPsK?;8td|B{PaZF%%&cOSm$s**;RrqSl zt+&3T3;h9IRA`E_$Rj8c+I++cg~8m66*u`kv?{g+C!&mvfAaPH)njevEjt0}@M-B- z|2MF(;mou-qKbFr1TAPxK@abnRn)@M9cJ&$ zg7(*+P|FKi)c>uH;N1UZw8m~zS~wIA=KptnWaZ*uPDlFy(17&p9q_r(KWhy89TdD_ zhj;m+i`vL*^opk`B3#bY#E3P$Us(A+XnVcj{l=?6M7J z?#dM@4p)d5l4aqu_;8MKui~ z7R_`DYH}G!A_kpTGe7siFjVzF(ZEMPu|V|)p@-x<=+Gx zVZB<1AZ;TEx5xw&gqK3(k?7)YnW9lz?~-MS?h6J|H-G?U?GfR^sIi~Lm3ioJ!cWjf z5Lu4!kVSCuBid#qs|W!}qUdN6A)n&Gbnq&e?CVsNTVQ^D@euHPBLH^MSODPeQbHYi zNE9U@(;IS+)JhnRoG%EOn3nYmQeYIe5K>_jvwcW782UB1C0VhmjXLRYc3!?=Tr^ad zyjCM#7^DIJPP5Id1PN6p{mV93TE@kI6DpLl=s3IY`Z+E!d7m#9I^wVrn%rAzA}|K{ z41FQacpDWvbxXLiH==Il6NHo?tB*T`-Vxs$*Xe-xN2e6Jg8T%Qsoz(A3JFhIUM65> zoGmcX7OF??1ZNRB4@lS3Pq-2%4+F1)ok=T+4$7b#HHeK3LeC>}L4-K*`|3XFedA}4 z_~OCF;KLb7sCF?-zLoO;oUqjF))sUM27#Z-)@!lgOJ zEY5>@=**|;@AP3icAC7RavdFJTo?%?Ul7b6Yp6=o=y^)KJ1&Vo)DP1YM4)$H?cCHo zEB@~VdJ6NCrc`hm-!%q(O2}2KF{#bkfXutIFpXzbzlOnAabriRNhxG#Z{LzZv6O>n z`|nR>&pTVc!anl|KI#3d8EIJnOpP)SZNN!q-ecNE6JCb!B9L~>F~!qE3F!XsAt>4; zPIT+nr$AKPq&16e&qXf~Cm7`-c8!)yoREUH` z?sSt1-uvZ%hZh-_DhJ;mU&HHY`auvU3EetV56E5#Wk*Csuf5%ZZw@?TOK~;a9s0dN zN6@3@42nj@FyX+k!!lich_)3^q%F?xxjoyS-&Uo>W&FzGsinv{l2MAjin5ScjI!KQT(2d*EKd+(3P94%X#8dB z)Pk7UtbJp$n*o=-x9MNLJ}F=9g4W1o>{k5!-wq2pIw~k#bfy_!_vZ_8rY60Euuhw@M_#Uk8SwJn;m-ZV?ujeoXoADggU&gwtUyuxh&SUtW$C^t*vl=8m z^}9qBL;^AUgnuv>io@!siIyxVI;*78-%eQV($P9E)D4K97&|@FeNG!N(|~NaJYjU*6=)RYYKCZ)l--hN;`Ja3(w7S zn8m+e{rR%f6{JBTwCiY`A+yr9t3j!PLkz2~T&p>0Syab#c0^St_N($-%ca3Fv^78R zMQE|OboHdF(9mI4yg4e7w2Nb_PHU+<6MOY2!OMAkpszpd}t zA#H7!FUIb3^h+x-cu?9{4=RGWae)bJ`)mR3RVeLSsaHU*!PDNSzmR^7@QAat=JGG5 zx+4XpI|QfiLJGebfL-Zz{+6$eiAuuRt^xn+D)$omS%bfIW@heeOQwY@-ZZUJMAv*4 zF{BV`Ylo+Xak+?Xw-uvxiPo==-_JaqVEA{qdN^~2AkSSBZ)t?(vangW6YL^FINGQM z+p1Y%;XD@vys$DOmYTO8nu8{>muuoM5Frz1>kU&d)$JA7%({|fWW_4t%(8y&#k^ny z>#P?X2%%SUVHK8D)V*{Ex8jWi9_-Sn<1a9~v*c}!L>PA#&XA^6GhihlEG!(oWL%D2 zjd4$rty@WA&rgjqtn#w*#9AHwyOop?v(6r0n*oVJm-iuXGYE@HZW1#*F- zGp&Ti(v4U2{-iu@Hc-nRI5DE|bQJvrN^sS8!f=>c}txd9~WDSw^!4lfD z_cZEoR0*j!HZDf%uyhk39o31fgItcV0Y(PJZc!!uL#{AQT4ZL9`+H(MLfsjRo=rpD zq)WOih|Aqz6#{v~a2*5sLTQ3y6>mPU+GP*EY?N)b9Ntb8-5$YQCo$?W-TJ!raz!T{)m3e;CG|ukx|C*CO)?6c7W*(EayZ*8 z8^QQarjZJ(skS;jBxSI%s$6M_(S*0J=9EzYVipfmMobpe{+vlp0uYrUnKdLb=445+ z7^YiuQG4nb3iKI`hVeX>(pNQL;vEQ*oewsV-LI6j>YCHx2bOj{vL}>NZ;HzdH;oy_ z%gcoZCTP(~1QRYwF7W4B<6FJcAKwKD1L3 z<}w0JTSym4XnyJ=dIebP+)=8eX$hGq*r{k~lteG6ZaOO90UO34`JJMPU&f@5U3$=r zUlXv30YOKAx1m60SX;VoF5+(-6by%0(hf=BK#|yI3(Beo78N`^a=+zaBdWEZHrjoB zKXbq@5Pdhiy9p+_TgJp*<%Acu!0B%&Y%tL+f{xMxXX-Yapw%7P-1K$iTs#&q;j zs#O=xkIUY#L3hUth!#C3`qXO9$-~O=r$2vqIHNAL54p<^GU|DCi8epyKs|(cdB{r% zpp4D9uX2Nyt<#PQ47GMkR=5rM>R< zep%3uNeUpp_Yeicl2(XLzqjaYw}EdJ(d_-vT4K6L0=}x)=B$2sukMRW<+DU29v?|Z z3J<1lY2BD7eL4qg2eAhvJp&sR$ZAH=pl-s?L7OF$k@U6RMCpS+&iEeHG}R2%bk$7u z)R*pF2Wu_W^wqT0jMX%k?mZ})S%;bON?ev=pYOF6ZakTvtL}Hd?bFHI{Dw<~8c*5m zpgOqS`YqaopD-+d`w=-Z^ zBq)kA;K%+J<(6J!&W!+1Ko2wMRZ{76tl3rh#wsF_oD(NZL zBtL4iL?8*5gQTn^kB`_~D1;KM!`q{Ck)EUb)x35;cQ&VS?yiHRAcro;1*#YVv*#y8 zglKh)-LWe<{Qg6$;9bOFPAj@4mqBf*I%^3k5^tm#9JdXIl9?o0G9gY6kUsB7oF-P( zBeMnXU!arQx~1_5X|uTxWi`WwshNjB%tbgifEp9W{~CO3yDge|+F|hBp_%vZcvO}Y zK%NCbvLMc9M}Z6rd9%N`86>Y|FLWLN_1e*`Xn>{_YYTa!CyCmol9K_(jWC-stc{H7 zIrp8bvb*l*C>A^KGqv1i97YMu(Sata+Je61gMv=w{Hp7~+p<%U67-Krv@DOnQLAeS z794A+XVuw&*%1!SeSy{?lm>lA-6YGjgv8_iXYb{KeonDY9K=WY2M~)F(1`%)nZN53 zIl4D~<%^z?>yb?V$9?*)GwGvV*M(f?@W#+t>*bY8|DTSXs|HNc`~5w;&_xX5Lu5-j z(>917JOInt%0>ycbFMA7i8dSkFGxUc>Q&XTr0U*~qe#M>rS$VOIGqUu`e#0I<)j^$ zDL_Os<710T=%Z(R2NXhwOfJZnrwXq!E=J2uEt`fLj%~aovVL>vgk_F}Q*aD#{N0M% zM@e5O2o@FjK78==&|G(#aT$M)#@+0uwyjWK2F#!H;Ft_%n)Lg0Xop_4P=4zr7~H~` z-jA+bN@7goQKZ1mJ{rT2eTZcKlD^?m02s|HK5nE9K~@eH1gK&%Qf!E9g1g+)uuGr# zFMXCbTdiR5e*G*4TdyCNfr1oA^xypB*_JQAR$!Rh*VCzMUd>{IL0MdF4Sopn_f{>n zq)RiajYD&`1kdX#N$wilps1hsWhnf8W+efq&o}-H(SL_WDHk6{Xs0N;M0XbSrQAGk z7_*@R6w1egO+i0zm`SD96n6-oRz{uqeMo&eQR)mm_@W$_7#S?$b(wtgi=w4MN zG%Bn#vFvGDeexOXaUBlExQ7DVt)3YFSQ5;mx*;O-$btNprY%q33D{EQ4GC6KMaP6Q zdxWoO0gU?>sz-?WC|_4jcl&$fkz>?oYaZM(qRYSm7H;dcDvK1BYWEnmIQauW(9dp# z)WlH{X(39rmaW?wU9P+E4g2%J#FXwWdwh|kAwLm6eb%bLKRMx0yb9%br3^t`1?PO? zUguYd_8>b&8Z;5&Y>|8L%*{mEb7$o1IcSICqbhM14pu9KzBE^*4mpr92*LnrEB~{@ z=1iiwic#%L_!-ttq0=*4T@|||qHps<=I3O~H?TFF>ES)dz7SU8r3%IUvL7B^bxB(5 zhy8J5bOvQtRh6oKJhrH&oi@i?ql)XoqWdQRPLNziCcZ(EZRDJ5hAn+ok5J{=aLj`H zih?(r|F$Auz^G9p&D>=&w12U!V2Jb1*c&Qa->Ny@t3)V{P#@A-TF?cnM`#d1Vq2#) z1FWT?!vssRw^=+GPdO>M**LX5gp$%BDNn4&5KCvp+2<3?s&4_PG z4a7K&=fgdoV{zx&qGOQ82Yu^Cvv@w;5J+cW;Ar=7kL*t#iLa^vx%{iVW&rZ)p|Y0h zHk-@A(~V-WTmw1ZT*@B8s(?=N{_$QLWcgG8cw~%uP zR9@%0ur)B8Z(JEaGJ^<$SK?$PTFr@k)Lr%9{z9p@sgqBo_Omva{z^G{iB&uXNKzrCAYz6w_lwbx4f|pZW zhdV|^)%2n&Vri?>y1A8CErEVEXikQ=y_CIyqX-?Iw8D&-@%@DqI_UTG+SaJ_P7Et7 ztnyLg(%yeguS^kfmfV7`s@{hlaS7>zSo*2#=#UnAS&?Y!vjZ(zEntNR<}~h#%Gw-0 zNxRE!8Ex?ac7kC{tqP1q4ksx4ec&v?0Pr9s!pN0GzJpEA`|U3|M=|xz367zmr41PaP*sSQz z?xELu`FrpB3V`V~T>Slj)a1Wvp<=$U$EMq7`3ZeH~FXW#RAO>5Fpiv zHd~#F`clcwTcEafAVAAtV574&SZh}AwsZmaJ7y!fy+XtPi284B@285Cij&ir}MJ|xYK<) z!I8juS|dBb13mv^K%4)~ZGr575hwr`^Zy9Kt@^wGLxlfyV$9ZA2|y z2+opxn~&L=Vg$&72XL~qGTQ=z5&yB@f8uiMs0Uyf=6^_$C4CkI5C`XI#S8$bihy(c zW5ECE;%fZ|i3kw?!1EslqVOH3xTFa-6_$S<=&To}Q~ zU}tO*qgrLArAn8GsJOpB`BcaZb4ipY&y9;sVe8mwYI)@HYHZb~g`lSu%^_>;hiZh_ zqGA$U>FwUmCSj=H>UT>E!XfBXGxP%IU_A%D3KecJ&gW7UJV$j4$D#S1t;8AVw|{Rt ziy;s?3z55m8lHb~4OoRD2V;+L^TW59V!hs?A;Dwd2QeSKxY5b4#A8s3r}YA@_pZr zm1af<30RB3MNv@YsG|1Y;E0F=9G*9S&0X4H#^$FS`p{$D-9FpjN)@r z?2@`t0f*=&kr=uHSzwcQ3J*hW2KiLm#0Frnv<-I2MwEaNN?F(3>^E==-yt<)9J#3F ziB2OV_xNNWr$2z9lCBu6x{%sL9*B5e@0ySZBCH|Mh_ZFxiHAMr*m!z^^Js1f?=K?i z6dk8Q7UHAZ>u_G|qEX73T58K%(Gk{CWD#R`1AdaDWFx)6XM~I;Ad5&>it6%~WFlf^ zFe5spm8hAK4?XOFu0kM86jU}THWm%N)XxI${vlmsid~Yle3K`c>r-;ZyEHcYQEToF1nR zjJi{457%9J*ormzc$R7rzD%4(FG7%(NeXJq)+R_m3%tstmcsI)jqDB;P9c6M<1Pkj66cm}x*iWO_nr65w0oA>oLi?e0e?$-3Dtlv%ypDVV%) zpRFhe&?ml9kX~fvLDhyUCa{XhF50~t^_4B7<7Cs&94(io8B<1qw zGdUobc_W7}a?|_6#iDwI=+dT_>>BMEC+L>hVk@WyB4aMl7-eAI*<_)S8FfKtDUWAf z9r||Jsx#4d?mAkmaTP=__0Zw!mx1P zs*x5TjAJ8N0f61G1@12^zMj4zc}X=D#<2 zftl;Kg|p81VNblT|K4y($gTkm;#)ZSXW(8ny zD81k&a=+Bz>b`UVrycUy#&}QnR#Niu{qGDH1qoer*?175d=sr zS+sN8=7S~n*$E^>fa>@~TKmUK_W9KV!P@V&9ll=AbZ!W$Tp&zp5~XYl5_jzkz*A$0 z27I6yMQ*vF?mRrUreDN#BEP!cyWj2xbvE)GJ_U30Qg99{1ex&HrmJ#R&aJsRXXp6; zv{2A_3YZ+4&+z>eb+=2B4A@zKZ}j_kd?Oe=vRO&O#gkuji?`e{ZZC>%W+i+@X{p>Dh>yNffoX?0S83*BE4k|ACW zd1mr`NX%1j9XsF3wds=maSu{j`H@;1nTc;v!x+rk~U8?YJI+;1kscSSUsmCg?l zM(o(I-5WJ&!+XAT=N2qm2-yWuj>@_8&+It+{6*QlPzbkZcI?}h#mEtMVUae+6anvb z^kiytU{H=g(}lqS!Wa=?8!t3P*wTWaG{j=FHPtW$=>A|tgk|A~G0F+)1&vyga!aCq zH67b@_NQ7Ilh$fyRM(&VwUQMJ=R;JSBren2kQLlMm~dWx0) z$qg}y{?~C)^5LnJ#TbSC==cNo*loLJlRR^T3+1>MhS#Ij_FP~wK}|TeWoI@3RLY^oi%WneCUS|Cl z3Qe1?CY9xbjew7qKEFsL{0xh(b zpQpNY0rM|g0&YPRrf3-y%$5iTBiz9dq+cK)Hx-drpr}8yd$l@xId z=+;)HVdM8X<;Hrim?KqvmxWWl+(1Xok3{D5o|ur^9*|UpF9_+QnaZ>U^yBTg1+-1^ z)2p|)^O3yz&o|2ThmFa#9-%WC!q~hD=&;*!KhxNQs7Vco$Jl(}HiiQ?x2I`%0vnh(h`Wf~Hw>Kg{{SCi3nrW3qj$IubI(OuIpWqP=w%S>)Pk;@e}lL8LrC=t<_qx8X%1Lg{CT7*bQsB$IyNvqLo zt!cO+>-1oxTC*?JTrmGIsVT#MJ8$KM8K~Xx5qH9pkLct(GG#Fh%qCAC$)L6c`ONMA zS+ZOzt+CL8vMN(FHWLa8(ihn0Ma{R{d1pOX^kRknNca|;V?^5SC|sEPqYEa{o>!Xd z4pVp>$`hwHFe$!K8S#%EKs=KCn<<32tYF>v66EM8ISZocg;;45nWd%gD$E4&u}oxg zUclNun_R%G64+d>LQY|TpysXB)tWiRrNDjJBMgTyT_K;5#7W5nEGiEOEvYX}d4noh45E zkM>uQjn*`kZU6Q$^JwW2g90J9Hb^WMXY$d`CntTzyxn?o`rcK;f3>U~bdKzU3u#69 zm!Q_63QJMgeM3ep=`_2+ufc@f#mz_CUCZvM(bBiTBY|1FR$dncGmba8!+4+o@T7Xp z(sK3VNF{%J^le?@`pR*%+L!KRcB1u1zH4Wqze>L1JY(+JBKb<0#s}=!!)faIV&x|$ zPP^c=vuQpTINT0i=JbX&=>ArjQZ>NS^UrnG_eSJwuSR}Q5E~|>fS2il%?4IJ;lZ;I z?2X@-vTAb%$A-ciBqliORa;PYHEb9dIad|CGmhVl^h8IWcSz|&m3@>AMAQd+4s`tj z$pafpcH+u6_Bb!d*Bg?o7agZ5%!_+W0S2aticPx_p`_~I^!G0j?q~XzWAt8CFN^_V z1J@&?L=QNi_Vn_d!hH_9FMsYmDA*`s<^SXG{O9%j&-%;G^FP+k*8DkuJ6w9t*1zhV zW*v|Q@t>Z9*}Av|`18NLpAZ}@{~3d6KuhX;4*#6N+aGk?s=`Az6td!FoYv81tjbu_ zsAdJ`>zZ`QLFBDty-elFIURKvW+!vwJGX+{Puwr-t)&&=RADV2K}8HjCwI3`V(o38 zDOeF|MVPb7?IKx8IW{F`)b+|b#W22&Y?nrzP$(R3&@j)KJngt1^7v(rz_QnV5(hA-gumNh!vEp6%^@ z3P`Cn1 zFkZHYbRuYqLPcpX$dmCX>G^tDL6t{vsJUCKGaVBHrh_x0-3kjg374Eb8`-D2MsIB6 zn4Ht#F?b}^nLfeWL^j}10f_{^WAySVyynkbEto_ZjvII1b9Ox#A-5^{QG!hFYw-z5 z(M85lcFZ)3p+Om4e_o_-R}4#kGivUWX8@{Mj1~vM^XixTod^-5k4KbTk0;&N2$Nk$HegH552j}<)dDtySfCRYYn}4)d zat+`>0&uhZA82FyztG0Po-R@b{twzd{z2Pr5&^OyvWS!Y!aYFWNhF8wzJ@s@wy8dK zT~|c+c;WNa$3kK)&5+B9(=mX%r0t()&XL=p#Ih{rul$6hbvJ4Le1nPQJT#WGx}bL| zpa+5yKYqF5BKhyLMRjWANrD^3tc(t);!8+k0)Q7NL!Vof&!XnT1fzf>jau$ zVc{*&XJ5FT_(@HuX~xfdTs5Xs%bZ9sc~KA{9EH^5iI1sQ8DXyqnCPdmjVUq$@IIrj z7VOV~JKIXDl(5%pqYRVx6{O^VK{ySlt_7$=%e0hq-2&@(#=OD9)a}rX9QULJjprHR znFUp3Fvu(`v zqO$>FWBQs%QwJeDMw9>oP3!V}uqpCvI8HOE%va;F2^d`P$M4D^Xt3}ZWW4nG%yN*! zF*@Vp(whCE9f)WBk-owLo{pnNTw~5ayO7@=((Eu@0pFWul+1j{9u|Y6dO-O^8i=d@ zr6ndwNF`NCP8m=-RCJ5o8j-JYYUMa!u51z!X#(Xb_BnOosu^=k66QDu7-B-9kjweO zRrv5(YC?2Tx<>KZDcizQ^{?bn#uCUn-bK~qZ;~VOIjOY=5|1B1%&bBsWrC{Zhpc^5 zVWl3?$B75oA?-{8+F!|uWFX=Ui0Hak7Aq#p{-iObJi%Obhfi&eidW-yyG|K5$H$g) z(3ffbyPxXEYR&Pq?uUh=cI=Uu#)p9hlg0z0m~L2rDn4Sb@^^)bmFX(AUN0DB0!H)#PnXFON!y*B zaZ=Fwq!`FYXk2FJ$_rUXBpnXCPW|BmU_Wf; zygmqhg>KEEN%EL10tM~7+?}00@$ESEv`HBxEl?iI;N1FV%keg5JK1lP((O4bb-IUG{YA zwl)Ss@2M_T9y6&wl)kLOsr&urR||j3zJm|OU~aw0GH(s!k_nPL=(e6+ZnRkRS@b_i zx9Ir=vJ?986vJiiAkI zeggmK@q)N1#|;VO-NHOP>R=H~Wueg~wzfaEbOdsn%U0i^y53K6RO|5gJZ5M_jFIH~ zz!c--vfaA#nB1lQbU2wujYWj0S%eVDsH!lOXCc6OCwz-eQzf;hFlV&$#%LB1XYJXO77|bIkc=F8$iDC z6$5)B3auIrq^%WLH3)%=KdH+WGfMO(%XA4g60o#4A%c{nA%=z@G|F8ZN7-MID8cgw z_9}|v?upc;p$$Skp%Nyms&=W3GM?{Ro@e)#IxGt)|Di`(X`QU=yu(d?3=He%g%m+a zz5{)KbkS)!X8p2TD?M-cD6x}_;?y$77ZPc4de-RyPop4|V&#U!Uc(&tF!n6`m#X<; z(@d6W+KubRvP*tHht6zHcid3S${)baPJjSE4-)n4Sy0L1=;^OaoLW5^eoY$&ZOdy|bns3NvpaHeslw(LAW)iQbd^^cnO{MSrE<^SXqY& ziOv|UG~prBSfE}}T<_E6rqWoTPYQZy<9RbQE^dn5FI7hN>Mlg+p%(S|0P6ukYs&pD zyIo4&D9mR39e)!=Zz=`i@Ff$iKxspa7R`ozXy&LUGEvoH9w zQ{8tQ)dSQ?GbxJQ4=XKmb-JUxxZB!*e6B6k9up(tLx2opx*zfChW7LJKK+1nINW7m zNKejF@tIR#H_;YL6*3OTF7!8OMd#X_jvw!mVxqJ{i%xDvTW?V- z$aO@?PHN13=wqh+={sM?Hm`#7d@q@Awoy2CSx<$TLILU?R=>CX?jxL{LLR&{k_sbN zx6HaHo=StvS@&m79T)bCK^yTqlC&n{LFH3N9>^+9D*MrZ3Tm**SUwiy*bT=!ve}ywNttIG+4b)i(W83uZ%@^G`Vt8& zvIg@cVoiVf;VN1Ai)x+5&mw-mfeRYALpG2BgSnA9+ z^2+u>36dZ;N+N`$Luuki+Fv1ikBx-sPwIjyWJlDjDE>DwL!?&^jhz$DT^|QM>sX$Y zXr*dACtTF;hAW&wFWwse_AY6U<*=sHX?49IM)du|RW%TPR$$9&Fr?V%QZF_AeT)_> zFAY^yK=_%J=CKb2qJDM>j1E<#cb(u9j0;t4|9PZ+G8Dvgb##4#`R=rW&0D^s1O=jf zR_iy+yLY1XRO`=X)ByiNL3dYl{r>?7)IS2@WKCzX1z@#Wz(B+!0yucm3xi>)(*1}b zkil91r&0th>FGJ(k7D^B*Jel^2R6FQWZD`5>nJvy5`PDkKr0dsD4TPtoJEC+!(8=V zdxUk$C1O`zn%lAlG!`E^&X~`*^%&o*abx(hs5iio;KM!hVZNJU6tRta@sDE;yp4tF z{|*G2dDtDJALgAcM^^^!q?LM%riIYdagSDl7yL+bLGuFjF!! z5eRS)tOLj~hOm9RloADS5{*o!JxN2#(B(EUQ$8#Ld+tq7wT6(nG+l zAu-UxFIvq0Y)JcHK16sia61!h`iOW_XeLDS;Q^BjH?U?IVmmMq3~hFvC6xON{c((6 zL*#!~QGZdWEW0toyg~^*N8IwVZcA%wHp;;1#_G${c67IA$gi%Pe8t+=T43 za&|V_tRKfsCOe=-){QmlsZ&$%R4X}=>c<2%e>)jTIS~0xp~gBz5~Ujr!G;!{xKB{e zNk8q?53h~fqAnGpqS~C~Ukv+<2?QptD7lf>B}y~1RIH;DQXE3?iK*xK;~YURFOZu! zMBrMW!MUzgQbTrB{U+m#;qH&9j|5^VYcWa-BVYFg!j_lb7|eeZR}~j@QG8%Rv+jZl z{=h1Ol?+geIzq<-&70kolOfGtw56DpG(XArG2l96!&1w!5;3Xe`A=bqhIO=PhLwnf z^4O2Rp1HZE7tha!ofmTaUMCwqKR%Wo{>b0iIo0^>QR_D8pz(e2~xrU6>dTC}Zfu9Yn;BN=F9zjF(dPP<8gYY82GSujC($r*4=*cyq#XWKRg*l7b$>bWJ{Y0 zje+e;CkV$)co1DKbIdtQ(V-79zjldOr;xo$T`FAa=xRPRkjUOl-5r{BNOu z@3@9#4y-quOf8~u@s2AJ1fk!nRme=TCp>i}fpy!q%q=Qp3IVu2vEz1wy$epC9lW0p zd%@k^U0H^PGj9BD$W9p6zH*@Qeo_~kc`)Oc10xn0wdRLN$tHbmE6Eo7(^s(BAVr@J zzEoL5rE;6r{L7Y8A`<%N@@(E|M77pJgZwoMh1VYK@UifYzU2XmB!;O*u|x=s5(VjM zk+Vmu!r%zx^qV!(;5bW4>0wPaAEh?Wb7jnj5RY{kJPWEX8bb=Q0XfiYI+ds$EX4DK z4~C}zt=9^_fZyGjlpG?s@j4XNk-~7%O&FBk=+Z6rBFk;#%lIq4Kx>fGXEC}N?S1Zl9# zdO=N7)rkghnK79a5@T!rv&1CibAJ+>Y@D{8*wSIfYUm-xKIpCJmFP^~w^t~>W&GP> z!N)cY2aFv=2l8(mVdh7Na&~;>Z2Ty^9MnSRHWDwGOuTTsU-XmZBNFuh?7J#Ty;i6j zmZW+^i~FIfqQzDHwoLMQjfwcnB1$Te@oVe>`8A4R9OOpgG3Hs&;APh8T&Ad>FN}RZ zM;!GgE%@8XXPUp201EZV7 z?;`^uyA%A+pl#b4guMW1Im!H0HH;2BdY`p#BPJhVKBzM4>`6)`BFWT|EM{DVtOO5g z3h|)+r)NHVN%8#KqTI>v*GH!n5Zqka!Cm%{9cc8Kl3{E{ycaWB*wT%+krCoVdb4Gd z=VGAP*ywmrUBN0UPY-5?y*jU{RIq2x{mt!Di`~{eR`BSOL|_1LO+FWk(8oQ;WQ~%T zHC1nsF?W+t&p02VJ#KCBCZATa@>#(tjg3_eMJ3E)>wq@@l~^1eb+AY~ zi5HatcB!Jbwu)rust7DAd93A-!94zb>fjK+BkbH9awp5pT%p6f1NET$a_JH15#a z)+$b@oe?O15MXvhQPb%z3b6cn6mC3TF&VAp}jYQjS*vY@*Ij$Nlqx7=LQhQMYi4`2dlWuyErR10q2+H@N#`=8GpZSuARNb?OBqTUC}_z0Ha?XG*dWIy_6YidS!2wX;`m z3jy((Zck9K<=Xi>(BtJgd(h1p@5t{;6{WoG*Ojd}2vj%GWctyls3LJYsmN}nJ_AHW z7;&T;%s5b32202m%|^`I#ND(Rul&5%lR;eIx_~@~CY4)YXdYScB3C$DR^@8OYk9(t zK(wA;%}BhKWCoOnrtc)Dkizw(bOf>D$q@~o&anE*|GIWQt=9(`$}R~lXs_0_&nNCO zTH}3o0{YflSK)k`@cpLus-owHTCQTjp~=zfCo5(6PoVfRLEXxU0}668~l8-WGYB?TB4=$d?3dA!^LK0dW4#&eoG zJgnll6y=|;;;E}hCKU+>mq=!(14CN#`a|X3(UL`(w56ORUQpy=xz+9Tjqf+^o{F*+ zdts9uc42J%_{Z!*G)};Ad;%;NpD<|WP=Hlh&r>r(F^i#c>-2TqlSct}^C70Ur_PI* zuTQ4yyaZG0T>tm`S3E3ns9pqvjX8>1PpA8+hbIeNj0Kyw(+hINt#JEkB3hW*4r_o5?4Hg5FnVy z$G%B)Uqt*^0?swVxJ_?gz#Vtk81NaJU@>v@4Y?ZqJ!xw|ue(iO2f4mMdFdXDLOdWp zzwydc;;F0I)67HiX|GW0WZQQa71eoQ2}ve{8BDDKg!$M)BL4Qk&G#8;8HzFwd*;~4 zGl<-v^?Nq%Hox}f=MO-b4nNYx@mCvA0T}mwdKEJ~U zmFbR&z{6PUd8URE+;~o}r!H-=zGf}Rc$?E5Gu-_~&kgmBbS&Un5ZDCv{pWZQI*|SI>h=!* z3gc;@*TI?sZ|ZPEG&UG><66QS7mSDK6URv;jKZGWxJC_K-!<2i+ZP??LRPHv+pUB} zxEnWcQy$748Fh0qQ-~5DYRHYZTRNifh)I|3F;ZAYHWRNWEJ-jQu^LF5QCaAS#S3un zn=6LnL&W96t40A%L&EnA|Cw+Z)k76#r_Vu!Hwj3a3@;1JL#;X|BF{P_JCimbq{o`A zXacNN9F1ehuZ-oBo>FF5Tkja76ol# zmGG3I719C8DThI+#}=Izz9Tz>jR7Ww!u01)lva?OnIQvc1dwDM*%qavF|(j1%Dg4z)2%oF-24$-W$r4_lh=2H7cMFeV#iFmJgh1hONq z#4TO@*&k$9#|nkeT}40l_{Z7>YhBhkKZw&0s9hS+a07butc3QD9s#SCUPxmZ;ZsRt z&Kg$AXoZty6s6>X)o8Msjinglcvkcw8WIs>()5AHWtha@IJNHU4)*UjjTRMmRn^V; z_GX)9G+{uwKftfg+oh9xw;Img(5pM3tCzb+pic|C_NVHY^te3A=Vg>iDI#IEc_XI% zcLf4)R6uTTx_11K^*C~7V``9f{BVfcX;6% zE>lp;+9aK;FFa-HbDS45_S(SB_%!NBMbw6wIigr6dS``mud~y3S>=gt2;x?pj$FQnt;SI1! z1^C{%z29{0a%Np@-lR=(UdVR!zS>LAB)VE_s|X~LQeKw}`3T7L$-JO4S)fs23Sp%N z(lZhK8kYzLj_>FCm%g?s#3zzGa`I~ddDN%v{9C4#Va43u^>}C<1-#x*OB1fxuQ8y5 zLn~=lAM~Ds`u#!qmY%!b@90)D@&zFE)C~J>-t<0TC*ecz>O+MK4PLIw|*}0R-Xy_A$Xz)^#o}`YR%9egrB7vX)7(NX($3S z`sK>*3FKdYzLhGxc@I60pdOvxf?K~43NF%=Tj>5yO%fv1E;yVZ0+!*Q6(Im2oryGj zzrUToX!p5YUmKwU7q7}}&>THduzK2)Fz(2pDe0-|Z;y0$yP>w=%acEI`y9nq$OyJ? zX6y%Q1$c|0?eKQs&SH}3pnPB^)48{rAV;$6QBKdir6}vcdlv?!2i?_|92>$EuE{LH z^F{X;KphAUT9){ug-p+L@CN{9=&wsBva`F3#^vGkrQbwNN)udR(03Psnqd;8Q&Swo z3^&lb;OHI?128W8$A^@&{Yek?XxI=YduhmR)+<4F3lwC(@Rbq-H^yD>CZD6`3&5zG zmbdd~c&oG`3roeM8->d$r!K1{8#hsVVaeHwZV9L-5?Q)E$)agLaIXL%Vk9aQq}(E{ z1SBd^==)7W2?e5&WD;*B@4q&GCB~d+m&WX3d0U=BdqSN-&kBA&aD%n+^?AF$Mu5M= zX;L#Fh?LlghO70;w17&FbNtQV%0_ni$AtV7qXD`P?iN2L$ynGHQU(^bkW4pi?!4PT z6$t!LT+Ig~%fvCZZH0C0@S3NYWPoexKaYEjbFF+b3|D-1k13oUA4lOwb&yE`F^zxPp zY;%6u-*ycLiq!9nHH9D*>IO(*yO|hO?oYQAYto8Xi>TrkwA2@6)5NS+~HC3Nd z78;8iYJYV`1=ywBuF>o@sP{jl+VclA_T1F=@;iRIuJ)<_aji-|(V(8K5i!sa?{0?i zwoZ9j7^UBCx9?ui-)t|5)pfa8<=>5~gOqKZRqZPCuy^6IUX>UN^N4k=oU^U}`1gAE zpt?O6@(Kk&L0-Rt{FEv(^M!*NNXDAoNtCT5rjJy>nl`Ti9>zCbQ>1Pr^*fQcDGq}% zT*7$GtpOq=_OZGYXtlr`pqw#Kwf1UdgCatrBICzpzNozQSAmlq!UJ1n^0(H~3*B&0 z)Z%=2EZ*}cUvtDa&owmM*j(Z|;Y{TrU+sy^+s+kKK?CSM(`TKnEv#8G`hL^y| zH(47TuQ6ht91hww`zYAG4OXKO5nb8j2ME0|tQ}=wV^B*CH-L1bVnXmrCDILw2^%Cz zAzqPGLzwu{AIqQ0AlXA76z4i&BYpj8!ue)gZk*Nm3dOJv)CnI9!Zx(QUq6kj%{7Lv zO+^GyZq34MsxqBda}zhk%@2xdNKlQ0l#gDU7h<<=3Y(knQk5e^b@7x+Diue_Qr4Ni zK^@|J#5pZ=2VK{hhIbIJLT+O&(WV6{8=1jN8F%NFn*?G#XZm`rbp8$Pl;2^wPsnxH zDdPqB@=|46i$@Iu+<=x`Gu?lCg<=h{IP(L(f1Uc?votu!pDTaF)h96Ub@a*M{Z-$p z(B9c)S2CRpd&VSUB6-Bk)>&l3`GO>yiZpJ?XSa`nyr?J5h77$?xt^l2WCR3!h{?)F zvLHS54_+|}*HLbk)FD2(H_eAlc#qFxP8W_PiVLVuj=nK#HYS#B#VyyvM_oWg6Cwcw z(u>}Pv*YkyNm1g4irx}b6ltWDK*Fl32=Q5}`>3Nb^&l_%n+M(QhP=M?RZYsU%ok{a z4tvd_*(TkQN=@lTti@1GSj;iFL&^e}B}5WPe&F62IAUqEfT5n~7qkTXUPzO|ljI^**$KdS<$hc+ebDI>#@B_~yx2S^gJ$N rnkVS~*p@AGTC!B44I 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 C%W=>E delta 35775 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