From e4b5114521f042523db36dc9775c7caf2c0c192e Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 03:01:46 +0000 Subject: [PATCH 01/26] Update for v0.43, remove DiffEq full dep --- Manifest.toml | 691 +++++++----------- Project.toml | 5 +- _quarto.yml | 3 +- .../bayesian-differential-equations/index.qmd | 14 +- usage/varnamedtuple/index.qmd | 39 +- 5 files changed, 303 insertions(+), 449 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 544374801..1caa92e89 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.11.8" +julia_version = "1.11.9" manifest_format = "2.0" -project_hash = "2294ed99ca36fd3146a910892cadcb05f17b53a2" +project_hash = "0bd578cdaf4182551fb387b25bf090684f5433ca" [[deps.ADTypes]] git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" @@ -34,9 +34,9 @@ version = "0.5.24" [[deps.AbstractMCMC]] deps = ["BangBang", "ConsoleProgressMonitor", "Dates", "Distributed", "FillArrays", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers", "UUIDs"] -git-tree-sha1 = "b08a913be28a195574d0f9e87b6372709f696e4e" +git-tree-sha1 = "511d0d8cbf38045be05188ae26880afb57342a88" uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" -version = "5.13.0" +version = "5.14.0" [deps.AbstractMCMC.extensions] AbstractMCMCOnlineStatsExt = "OnlineStats" @@ -47,14 +47,14 @@ version = "5.13.0" TensorBoardLogger = "899adc3e-224a-11e9-021f-63837185c80f" [[deps.AbstractPPL]] -deps = ["AbstractMCMC", "Accessors", "DensityInterface", "JSON", "LinearAlgebra", "Random", "StatsBase"] -git-tree-sha1 = "66aed89871b6a8458bb407327fa997d980ea894f" +deps = ["AbstractMCMC", "Accessors", "BangBang", "DensityInterface", "JSON", "LinearAlgebra", "MacroTools", "OrderedCollections", "Random", "StatsBase"] +git-tree-sha1 = "cc74854881ab9531bde1ecc624ef3f9821497717" uuid = "7a57a42e-76ec-4ea3-a279-07e840d6d9cf" -version = "0.13.6" +version = "0.14.1" weakdeps = ["Distributions"] [deps.AbstractPPL.extensions] - AbstractPPLDistributionsExt = ["Distributions"] + AbstractPPLDistributionsExt = ["Distributions", "LinearAlgebra"] [[deps.AbstractTrees]] git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" @@ -87,9 +87,9 @@ version = "0.1.43" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "7e35fca2bdfba44d797c53dfe63a51fabf39bfc0" +git-tree-sha1 = "35ea197a51ce46fcd01c4a44befce0578a1aaeca" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.4.0" +version = "4.5.0" weakdeps = ["SparseArrays", "StaticArrays"] [deps.Adapt.extensions] @@ -118,9 +118,9 @@ version = "0.8.3" [[deps.AdvancedMH]] deps = ["AbstractMCMC", "Distributions", "DocStringExtensions", "FillArrays", "LinearAlgebra", "LogDensityProblems", "Random", "Requires"] -git-tree-sha1 = "c9be6a2d91cfe681f2cf454749c00ea5ceb8f07e" +git-tree-sha1 = "62ddbccf0ce5c26f8ef3cebe4bedef6b1599d616" uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" -version = "0.8.9" +version = "0.8.10" weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] [deps.AdvancedMH.extensions] @@ -157,12 +157,6 @@ git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" version = "1.1.3" -[[deps.AlmostBlockDiagonals]] -deps = ["ConcreteStructs"] -git-tree-sha1 = "743abe5e5fe8cff96dad4123f263c0d8eee281c0" -uuid = "a95523ee-d6da-40b5-98cc-27bc505739d5" -version = "0.1.10" - [[deps.ArgCheck]] git-tree-sha1 = "f9e9a66c9b7be1ad7372bbd9b062d9230c30c5ce" uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" @@ -224,16 +218,6 @@ version = "7.22.0" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -[[deps.ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "e0b47732a192dd59b9d079a06d04235e2f833963" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.12.2" -weakdeps = ["SparseArrays"] - - [deps.ArrayLayouts.extensions] - ArrayLayoutsSparseArraysExt = "SparseArrays" - [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" version = "1.11.0" @@ -268,25 +252,11 @@ git-tree-sha1 = "4126b08903b777c88edf1754288144a0492c05ad" uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" version = "0.4.8" -[[deps.BandedMatrices]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools"] -git-tree-sha1 = "02fa77c70ba84361b9bc9ff28523bd9d78519265" -uuid = "aae01518-5342-5314-be14-df237901396f" -version = "1.11.0" - - [deps.BandedMatrices.extensions] - BandedMatricesSparseArraysExt = "SparseArrays" - CliqueTreesExt = "CliqueTrees" - - [deps.BandedMatrices.weakdeps] - CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - [[deps.BangBang]] deps = ["Accessors", "ConstructionBase", "InitialValues", "LinearAlgebra"] -git-tree-sha1 = "7edecc3b90af8373014393e98e8fcfbdf3b52543" +git-tree-sha1 = "308d82aa3d83140909590aa5a7824540944f110f" uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.4.7" +version = "0.4.8" [deps.BangBang.extensions] BangBangChainRulesCoreExt = "ChainRulesCore" @@ -314,21 +284,27 @@ uuid = "9718e550-a3fa-408a-8086-8db961cd8217" version = "0.1.1" [[deps.Bijectors]] -deps = ["ArgCheck", "ChainRulesCore", "ChangesOfVariables", "Distributions", "DocStringExtensions", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Roots", "SparseArrays", "Statistics"] -git-tree-sha1 = "52f3f101c0c541145da25fba9805f3ef076f2d96" +deps = ["AbstractPPL", "ArgCheck", "ChainRulesCore", "ChangesOfVariables", "DifferentiationInterface", "Distributions", "DocStringExtensions", "EnzymeCore", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Roots", "SparseArrays", "Statistics", "Test"] +git-tree-sha1 = "dc30adbebc57a3b488a388d3504937b88955517d" uuid = "76274a88-744f-5084-9051-94815aaf08c4" -version = "0.15.16" -weakdeps = ["ChainRules", "DistributionsAD", "EnzymeCore", "ForwardDiff", "LazyArrays", "Mooncake", "ReverseDiff"] +version = "0.15.17" [deps.Bijectors.extensions] BijectorsDistributionsADExt = "DistributionsAD" - BijectorsEnzymeCoreExt = "EnzymeCore" BijectorsForwardDiffExt = "ForwardDiff" BijectorsLazyArraysExt = "LazyArrays" BijectorsMooncakeExt = "Mooncake" BijectorsReverseDiffChainRulesExt = ["ChainRules", "ReverseDiff"] BijectorsReverseDiffExt = "ReverseDiff" + [deps.Bijectors.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + DistributionsAD = "ced4e74d-a319-5a8a-b0ac-84af2272839c" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + [[deps.BitFlags]] git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" @@ -340,59 +316,11 @@ git-tree-sha1 = "f21cfd4950cb9f0587d5067e69405ad2acd27b87" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" version = "0.1.6" -[[deps.BoundaryValueDiffEq]] -deps = ["ADTypes", "BoundaryValueDiffEqAscher", "BoundaryValueDiffEqCore", "BoundaryValueDiffEqFIRK", "BoundaryValueDiffEqMIRK", "BoundaryValueDiffEqMIRKN", "BoundaryValueDiffEqShooting", "DiffEqBase", "FastClosures", "ForwardDiff", "LinearAlgebra", "Reexport", "SciMLBase"] -git-tree-sha1 = "d6ec33e4516b2e790a64128afdb54f3b536667a7" -uuid = "764a87c0-6b3e-53db-9096-fe964310641d" -version = "5.18.0" - - [deps.BoundaryValueDiffEq.extensions] - BoundaryValueDiffEqODEInterfaceExt = "ODEInterface" - - [deps.BoundaryValueDiffEq.weakdeps] - ODEInterface = "54ca160b-1b9f-5127-a996-1867f4bc2a2c" - -[[deps.BoundaryValueDiffEqAscher]] -deps = ["ADTypes", "AlmostBlockDiagonals", "BoundaryValueDiffEqCore", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastClosures", "ForwardDiff", "LinearAlgebra", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield"] -git-tree-sha1 = "47c833c459738a3f27c5b458ecf7832a4731ef4d" -uuid = "7227322d-7511-4e07-9247-ad6ff830280e" -version = "1.8.0" - -[[deps.BoundaryValueDiffEqCore]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "ForwardDiff", "LineSearch", "LinearAlgebra", "Logging", "NonlinearSolveFirstOrder", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] -git-tree-sha1 = "b7b4d8cc80f116eab2eb6124dba58ea7aef31b85" -uuid = "56b672f2-a5fe-4263-ab2d-da677488eb3a" -version = "1.11.1" - -[[deps.BoundaryValueDiffEqFIRK]] -deps = ["ADTypes", "ArrayInterface", "BandedMatrices", "BoundaryValueDiffEqCore", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastAlmostBandedMatrices", "FastClosures", "ForwardDiff", "LinearAlgebra", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays"] -git-tree-sha1 = "325e6981a414cfa5181218936c23f0e16dee8f08" -uuid = "85d9eb09-370e-4000-bb32-543851f73618" -version = "1.9.0" - -[[deps.BoundaryValueDiffEqMIRK]] -deps = ["ADTypes", "ArrayInterface", "BandedMatrices", "BoundaryValueDiffEqCore", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastAlmostBandedMatrices", "FastClosures", "ForwardDiff", "LinearAlgebra", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays"] -git-tree-sha1 = "da6ae5e564ad06ced4d7504929c58130558007dd" -uuid = "1a22d4ce-7765-49ea-b6f2-13c8438986a6" -version = "1.9.0" - -[[deps.BoundaryValueDiffEqMIRKN]] -deps = ["ADTypes", "ArrayInterface", "BandedMatrices", "BoundaryValueDiffEqCore", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastAlmostBandedMatrices", "FastClosures", "ForwardDiff", "LinearAlgebra", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays"] -git-tree-sha1 = "609c2d03ea024df0d475fee483b93cf0e87c29d6" -uuid = "9255f1d6-53bf-473e-b6bd-23f1ff009da4" -version = "1.8.0" - -[[deps.BoundaryValueDiffEqShooting]] -deps = ["ADTypes", "ArrayInterface", "BandedMatrices", "BoundaryValueDiffEqCore", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastAlmostBandedMatrices", "FastClosures", "ForwardDiff", "LinearAlgebra", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays"] -git-tree-sha1 = "ba9bd1f31b58bfd5e48a56da0a426bcbd3462546" -uuid = "ed55bfe0-3725-4db6-871e-a1dc9f42a757" -version = "1.9.0" - [[deps.BracketingNonlinearSolve]] deps = ["CommonSolve", "ConcreteStructs", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "750f782fcc7e09283be7d8a7aa687a95e4911b60" +git-tree-sha1 = "4999dff8efd76814f6662519b985aeda975a1924" uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" -version = "1.6.2" +version = "1.11.0" weakdeps = ["ChainRulesCore", "ForwardDiff"] [deps.BracketingNonlinearSolve.extensions] @@ -418,15 +346,15 @@ version = "0.2.7" [[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "PrecompileTools", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings", "WorkerUtilities"] -git-tree-sha1 = "deddd8725e5e1cc49ee205a1964256043720a6c3" +git-tree-sha1 = "8d8e0b0f350b8e1c91420b5e64e5de774c2f0f4d" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" -version = "0.10.15" +version = "0.10.16" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "fde3bf89aead2e723284a8ff9cdf5b551ed700e8" +git-tree-sha1 = "a21c5464519504e41e0cbc91f0188e8ca23d7440" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.5+0" +version = "1.18.5+1" [[deps.Cassette]] git-tree-sha1 = "f8764df8d9d2aec2812f009a1ac39e46c33354b8" @@ -457,9 +385,9 @@ version = "1.0.2" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "3b704353e517a957323bd3ac70fa7b669b5f48d4" +git-tree-sha1 = "3c190c570fb3108c09f838607386d10c71701789" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.72.6" +version = "1.73.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] @@ -542,11 +470,6 @@ git-tree-sha1 = "37ea44092930b1811e666c3bc38065d7d87fcc74" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.13.1" -[[deps.Combinatorics]] -git-tree-sha1 = "c761b00e7755700f9cdf5b02039939d1359330e1" -uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" -version = "1.1.0" - [[deps.CommonSolve]] git-tree-sha1 = "78ea4ddbcf9c241827e7035c3a03e2e456711470" uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" @@ -594,9 +517,9 @@ version = "0.2.3" [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "d9d26935a0bcffc87d2613ce14c527c99fc543fd" +git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.5.0" +version = "2.5.1" [[deps.ConsoleProgressMonitor]] deps = ["Logging", "ProgressMeter"] @@ -676,10 +599,10 @@ uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" version = "0.1.2" [[deps.DelayDiffEq]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "FastBroadcast", "ForwardDiff", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SymbolicIndexingInterface"] -git-tree-sha1 = "3bb871aa4a73f6972f7597c9ff4a4dccc1830b68" +deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DiffEqBase", "FastBroadcast", "ForwardDiff", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SimpleNonlinearSolve", "SymbolicIndexingInterface"] +git-tree-sha1 = "c4b5c6d91acd09165f8cbabc4eefdc10350bce68" uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" -version = "5.66.0" +version = "5.67.1" [[deps.DelimitedFiles]] deps = ["Mmap"] @@ -695,14 +618,15 @@ version = "0.4.0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "BracketingNonlinearSolve", "ConcreteStructs", "DocStringExtensions", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "c4707e6374210edbad5d2e1be1bd0e38d8106203" +git-tree-sha1 = "1719cd1b0a12e01775dc6db1577dd6ace1798fee" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.200.0" +version = "6.210.1" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" DiffEqBaseChainRulesCoreExt = "ChainRulesCore" DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseFlexUnitsExt = "FlexUnits" DiffEqBaseForwardDiffExt = ["ForwardDiff"] DiffEqBaseGTPSAExt = "GTPSA" DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" @@ -720,6 +644,7 @@ version = "6.200.0" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FlexUnits = "76e01b6b-c995-4ce6-8559-91e72a3d4e95" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" GTPSA = "b27dd330-f138-47c5-815b-40db9dd9b6e8" GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" @@ -743,10 +668,10 @@ weakdeps = ["Functors"] DiffEqCallbacksFunctorsExt = "Functors" [[deps.DiffEqNoiseProcess]] -deps = ["CommonSolve", "DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "PoissonRandom", "QuadGK", "Random", "Random123", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "76fbb6985dda2aba32c97148540ad2c043e741e3" +deps = ["CommonSolve", "DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "PoissonRandom", "QuadGK", "Random", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "b879ca516034469f28becdf01f85f56b45f518b9" uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.26.0" +version = "5.27.0" weakdeps = ["Optim", "ReverseDiff"] [deps.DiffEqNoiseProcess.extensions] @@ -765,12 +690,6 @@ git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.15.1" -[[deps.DifferentialEquations]] -deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] -git-tree-sha1 = "1df783c534cd0c4a865a397b1c4801771b5cbb07" -uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" -version = "7.17.0" - [[deps.DifferentiationInterface]] deps = ["ADTypes", "LinearAlgebra"] git-tree-sha1 = "5e6897d988addbfe7d9ad2ee467cc0c91001aae4" @@ -860,19 +779,6 @@ weakdeps = ["ChainRulesCore", "DensityInterface", "Test"] DistributionsDensityInterfaceExt = "DensityInterface" DistributionsTestExt = "Test" -[[deps.DistributionsAD]] -deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "Distributions", "FillArrays", "LinearAlgebra", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsFuns", "ZygoteRules"] -git-tree-sha1 = "4acbf909e892ce1f94c39a138541566c1aad5e66" -uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" -version = "0.6.58" -weakdeps = ["ForwardDiff", "LazyArrays", "ReverseDiff", "Tracker"] - - [deps.DistributionsAD.extensions] - DistributionsADForwardDiffExt = "ForwardDiff" - DistributionsADLazyArraysExt = "LazyArrays" - DistributionsADReverseDiffExt = "ReverseDiff" - DistributionsADTrackerExt = "Tracker" - [[deps.DocStringExtensions]] git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" @@ -890,29 +796,27 @@ uuid = "bbc10e6e-7c05-544b-b16e-64fede858acb" version = "3.6.0" [[deps.DynamicPPL]] -deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "BangBang", "Bijectors", "Chairmarks", "Compat", "ConstructionBase", "DifferentiationInterface", "Distributions", "DocStringExtensions", "InteractiveUtils", "LinearAlgebra", "LogDensityProblems", "MacroTools", "OrderedCollections", "Printf", "Random", "Statistics", "Test"] -git-tree-sha1 = "2094be08e519dd8bca023f16643c0b1db300615f" +deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "BangBang", "Bijectors", "Chairmarks", "Compat", "ConstructionBase", "DifferentiationInterface", "Distributions", "DocStringExtensions", "FillArrays", "InteractiveUtils", "LinearAlgebra", "LogDensityProblems", "MacroTools", "OrderedCollections", "PrecompileTools", "Printf", "Random", "Statistics", "Test"] +git-tree-sha1 = "9b4203a175a2b49963711899d4d25e10c25d14ae" uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8" -version = "0.39.13" +version = "0.40.7" [deps.DynamicPPL.extensions] - DynamicPPLChainRulesCoreExt = ["ChainRulesCore"] DynamicPPLEnzymeCoreExt = ["EnzymeCore"] DynamicPPLForwardDiffExt = ["ForwardDiff"] - DynamicPPLJETExt = ["JET"] DynamicPPLMCMCChainsExt = ["MCMCChains"] DynamicPPLMarginalLogDensitiesExt = ["MarginalLogDensities"] - DynamicPPLMooncakeExt = ["Mooncake"] + DynamicPPLMooncakeExt = ["Mooncake", "DifferentiationInterface"] + DynamicPPLReverseDiffExt = ["ReverseDiff"] [deps.DynamicPPL.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" MarginalLogDensities = "f0c3360a-fb8d-11e9-1194-5521fd7ee392" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" [[deps.EllipticalSliceSampling]] deps = ["AbstractMCMC", "ArrayInterface", "Distributions", "Random", "Statistics"] @@ -921,9 +825,9 @@ uuid = "cad2338a-1db2-11e9-3401-43bc07c9ede2" version = "2.0.0" [[deps.EnumX]] -git-tree-sha1 = "7bebc8aad6ee6217c78c5ddcf7ed289d65d0263e" +git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" -version = "1.0.6" +version = "1.0.7" [[deps.Enzyme]] deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] @@ -998,9 +902,9 @@ uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.10" [[deps.ExpressionExplorer]] -git-tree-sha1 = "4a8c0a9eebf807ac42f0f6de758e60a20be25ffb" +git-tree-sha1 = "5f1c005ed214356bbe41d442cc1ccd416e510b7e" uuid = "21656369-7473-754a-2065-74616d696c43" -version = "1.1.3" +version = "1.1.4" [[deps.ExproniconLite]] git-tree-sha1 = "c13f0b150373771b0fdc1713c97860f8df12e6c2" @@ -1037,12 +941,6 @@ git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" version = "0.1.1" -[[deps.FastAlmostBandedMatrices]] -deps = ["ArrayInterface", "ArrayLayouts", "BandedMatrices", "ConcreteStructs", "LazyArrays", "LinearAlgebra", "MatrixFactorizations", "PrecompileTools", "Reexport"] -git-tree-sha1 = "3733dfb413e2a87c790cdf34f32f2c6a6f7fb95e" -uuid = "9d29842c-ecb8-4973-b1e9-a27b1157504e" -version = "0.1.6" - [[deps.FastBroadcast]] deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] git-tree-sha1 = "ab1b34570bcdf272899062e1a56285a53ecaae08" @@ -1232,9 +1130,9 @@ version = "1.8.2" [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] -git-tree-sha1 = "ee0585b62671ce88e48d3409733230b401c9775c" +git-tree-sha1 = "44716a1a667cb867ee0e9ec8edc31c3e4aa5afdc" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.22" +version = "0.73.24" [deps.GR.extensions] IJuliaExt = "IJulia" @@ -1244,9 +1142,9 @@ version = "0.73.22" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "7dd7173f7129a1b6f84e0f03e0890cd1189b0659" +git-tree-sha1 = "be8a1b8065959e24fdc1b51402f39f3b6f0f6653" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.22+0" +version = "0.73.24+0" [[deps.GenericSchur]] deps = ["LinearAlgebra", "Printf"] @@ -1268,9 +1166,9 @@ version = "9.55.1+0" [[deps.Glib_jll]] deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "6b4d2dc81736fe3980ff0e8879a9fc7c33c44ddf" +git-tree-sha1 = "24f6def62397474a297bfcec22384101609142ed" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.86.2+0" +version = "2.86.3+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1469,21 +1367,11 @@ git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" version = "0.2.4" -[[deps.JumpProcesses]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "PoissonRandom", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "StaticArrays", "SymbolicIndexingInterface"] -git-tree-sha1 = "c19bb0be5fe979b4476ab5531393b4fb0752ace5" -uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" -version = "9.21.1" -weakdeps = ["Adapt", "FastBroadcast", "KernelAbstractions"] - - [deps.JumpProcesses.extensions] - JumpProcessesKernelAbstractionsExt = ["Adapt", "KernelAbstractions"] - [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs"] -git-tree-sha1 = "b5a371fcd1d989d844a4354127365611ae1e305f" +git-tree-sha1 = "fb14a863240d62fbf5922bf9f8803d7df6c62dc8" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.39" +version = "0.9.40" weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] [deps.KernelAbstractions.extensions] @@ -1580,24 +1468,6 @@ git-tree-sha1 = "a9eaadb366f5493a5654e843864c13d8b107548c" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" version = "0.1.17" -[[deps.LazyArrays]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] -git-tree-sha1 = "41d433e5854d7a67e8ab2b04962a713fcbcffcf1" -uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "2.9.5" - - [deps.LazyArrays.extensions] - LazyArraysBandedMatricesExt = "BandedMatrices" - LazyArraysBlockArraysExt = "BlockArrays" - LazyArraysBlockBandedMatricesExt = "BlockBandedMatrices" - LazyArraysStaticArraysExt = "StaticArrays" - - [deps.LazyArrays.weakdeps] - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" - BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" @@ -1621,12 +1491,6 @@ git-tree-sha1 = "95ba48564903b43b2462318aa243ee79d81135ff" uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" version = "0.2.1" -[[deps.LevyArea]] -deps = ["LinearAlgebra", "Random", "SpecialFunctions"] -git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" -uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" -version = "1.0.0" - [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" @@ -1682,15 +1546,15 @@ version = "1.18.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3acf07f130a76f87c041cfb2ff7d7284ca67b072" +git-tree-sha1 = "97bbca976196f2a1eb9607131cb108c69ec3f8a6" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.41.2+0" +version = "2.41.3+0" [[deps.Libtask]] deps = ["MistyClosures", "Test"] -git-tree-sha1 = "a88cfb11c45f350bbe51df05a1af7c691d58306d" +git-tree-sha1 = "02dfe44e6115ecf1e55f3bc1be0df00d33901d4c" uuid = "6f1fad26-d15e-5dc8-ae53-837a1d7b8c9f" -version = "0.9.10" +version = "0.9.14" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1700,9 +1564,9 @@ version = "4.7.2+0" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "2a7a12fc0a4e7fb773450d17975322aa77142106" +git-tree-sha1 = "d0205286d9eceadc518742860bf23f703779a3d6" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.41.2+0" +version = "2.41.3+0" [[deps.LineSearch]] deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] @@ -1727,12 +1591,13 @@ version = "1.11.0" [[deps.LinearSolve]] deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "7a1b73e0921e3278fce6a6cd80003c063ed937b4" +git-tree-sha1 = "15e73fc6ac5ad564842af06fb9f479199e7174fb" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.58.0" +version = "3.63.0" [deps.LinearSolve.extensions] LinearSolveAMDGPUExt = "AMDGPU" + LinearSolveAlgebraicMultigridExt = "AlgebraicMultigrid" LinearSolveBLISExt = ["blis_jll", "LAPACK_jll"] LinearSolveBandedMatricesExt = "BandedMatrices" LinearSolveBlockDiagonalsExt = "BlockDiagonals" @@ -1744,6 +1609,7 @@ version = "3.58.0" LinearSolveFastAlmostBandedMatricesExt = "FastAlmostBandedMatrices" LinearSolveFastLapackInterfaceExt = "FastLapackInterface" LinearSolveForwardDiffExt = "ForwardDiff" + LinearSolveGinkgoExt = ["Ginkgo", "SparseArrays"] LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" @@ -1751,6 +1617,7 @@ version = "3.58.0" LinearSolveMetalExt = "Metal" LinearSolveMooncakeExt = "Mooncake" LinearSolvePETScExt = ["PETSc", "SparseArrays"] + LinearSolveParUExt = ["ParU_jll", "SparseArrays"] LinearSolvePardisoExt = ["Pardiso", "SparseArrays"] LinearSolveRecursiveFactorizationExt = "RecursiveFactorization" LinearSolveSparseArraysExt = "SparseArrays" @@ -1758,6 +1625,7 @@ version = "3.58.0" [deps.LinearSolve.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + AlgebraicMultigrid = "2169fc97-5a83-5252-b627-83903c6c433c" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" @@ -1768,6 +1636,7 @@ version = "3.58.0" FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Ginkgo = "4c8bd3c9-ead9-4b5e-a625-08f1338ba0ec" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" @@ -1776,6 +1645,7 @@ version = "3.58.0" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" PETSc = "ace2c81b-2b5f-4b1e-a30d-d662738edfe0" + ParU_jll = "9e0b026c-e8ce-559c-a2c4-6a3d5c955bc9" Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" @@ -2078,16 +1948,6 @@ deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" version = "1.11.0" -[[deps.MatrixFactorizations]] -deps = ["ArrayLayouts", "LinearAlgebra", "Printf", "Random"] -git-tree-sha1 = "3bb3cf4685f1c90f22883f4c4bb6d203fa882b79" -uuid = "a3b82374-2e81-5b9e-98ce-41277c0e4c87" -version = "3.1.3" -weakdeps = ["BandedMatrices"] - - [deps.MatrixFactorizations.extensions] - MatrixFactorizationsBandedMatricesExt = "BandedMatrices" - [[deps.MaybeInplace]] deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" @@ -2100,9 +1960,9 @@ weakdeps = ["SparseArrays"] [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] -git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +git-tree-sha1 = "8785729fa736197687541f7053f6d8ab7fc44f92" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.9" +version = "1.1.10" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] @@ -2193,9 +2053,9 @@ version = "0.2.4" [[deps.MultivariateStats]] deps = ["Arpack", "Distributions", "LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI", "StatsBase"] -git-tree-sha1 = "816620e3aac93e5b5359e4fdaf23ca4525b00ddf" +git-tree-sha1 = "7c3ff68a904d0f7404e5d2f7f5bc667934d8d616" uuid = "6f286f6a-111f-5878-ab1e-185364afe411" -version = "0.10.3" +version = "0.10.4" [[deps.NLSolversBase]] deps = ["ADTypes", "DifferentiationInterface", "FiniteDiff", "LinearAlgebra"] @@ -2259,12 +2119,6 @@ git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" version = "0.1.5" -[[deps.NamedArrays]] -deps = ["Combinatorics", "DelimitedFiles", "InvertedIndices", "LinearAlgebra", "OrderedCollections", "Random", "Requires", "SparseArrays", "Statistics"] -git-tree-sha1 = "33d258318d9e049d26c02ca31b4843b2c851c0b0" -uuid = "86f7a689-2022-50b4-a561-43c23ac3c673" -version = "0.10.5" - [[deps.NaturalSort]] git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" @@ -2282,9 +2136,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "SciMLLogging", "SimpleNonlinearSolve", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "da41d5cd90c1118f5a8914392cf561263a1d09cb" +git-tree-sha1 = "d27bcf0cebf8786edcc2eaa4455c959e680334e7" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.15.0" +version = "4.16.0" [deps.NonlinearSolve.extensions] NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" @@ -2314,11 +2168,10 @@ version = "4.15.0" Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" [[deps.NonlinearSolveBase]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "LinearAlgebra", "Markdown", "MaybeInplace", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] -git-tree-sha1 = "9323e063ce69851b28e5c96539b2e2024f9a7e4c" +deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "LinearAlgebra", "LogExpFunctions", "Markdown", "MaybeInplace", "PreallocationTools", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] +git-tree-sha1 = "4f595a0977d6e048fa1e3c382b088b950f8c7934" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" -version = "2.11.2" -weakdeps = ["BandedMatrices", "ChainRulesCore", "Enzyme", "ForwardDiff", "LineSearch", "LinearSolve", "Mooncake", "ReverseDiff", "SparseArrays", "SparseMatrixColorings", "Tracker"] +version = "2.15.0" [deps.NonlinearSolveBase.extensions] NonlinearSolveBaseBandedMatricesExt = "BandedMatrices" @@ -2333,11 +2186,24 @@ weakdeps = ["BandedMatrices", "ChainRulesCore", "Enzyme", "ForwardDiff", "LineSe NonlinearSolveBaseSparseMatrixColoringsExt = "SparseMatrixColorings" NonlinearSolveBaseTrackerExt = "Tracker" + [deps.NonlinearSolveBase.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LineSearch = "87fe0de2-c867-4266-b59a-2f0a94fc965b" + LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + [[deps.NonlinearSolveFirstOrder]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "df31d105d8e7254447256a44606f2a7e98b61aba" +git-tree-sha1 = "eea7cbe389b168c77df7ff779fb7277019c685c8" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "1.11.1" +version = "2.0.0" [[deps.NonlinearSolveQuasiNewton]] deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] @@ -2385,12 +2251,6 @@ git-tree-sha1 = "b6aa4566bb7ae78498a5e68943863fa8b5231b59" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.6+0" -[[deps.OpenBLAS32_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "46cce8b42186882811da4ce1f4c7208b02deb716" -uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" -version = "0.3.30+0" - [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" @@ -2421,9 +2281,9 @@ version = "0.5.6+0" [[deps.Optim]] deps = ["ADTypes", "EnumX", "FillArrays", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "PositiveFactorizations", "Printf", "SparseArrays", "Statistics"] -git-tree-sha1 = "e4f98846b70ef55e111ac8c40add135256c0cc47" +git-tree-sha1 = "7957b66b4e80f1031417197099f35273f7dd93dd" uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "2.0.0" +version = "2.0.1" [deps.Optim.extensions] OptimMOIExt = "MathOptInterface" @@ -2449,15 +2309,15 @@ version = "0.4.7" [[deps.Optimization]] deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Printf", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "166ff0e9c44c45f26113fef6971b8783d7ce7998" +git-tree-sha1 = "2c409c814c2d745620fdd55391a66ee514561146" uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "5.4.0" +version = "5.5.0" [[deps.OptimizationBase]] -deps = ["ADTypes", "ArrayInterface", "DifferentiationInterface", "DocStringExtensions", "FastClosures", "LinearAlgebra", "PDMats", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] -git-tree-sha1 = "9d1129ecde9f1773521196bdb2c5f16170bb2f6c" +deps = ["ADTypes", "ArrayInterface", "DifferentiationInterface", "DocStringExtensions", "FastClosures", "LinearAlgebra", "PDMats", "PrecompileTools", "Reexport", "SciMLBase", "SciMLLogging", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] +git-tree-sha1 = "710cce5771c03bf11e133bc4353c342acdf7cc29" uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -version = "4.2.0" +version = "5.0.0" [deps.OptimizationBase.extensions] OptimizationEnzymeExt = "Enzyme" @@ -2481,15 +2341,15 @@ version = "4.2.0" [[deps.OptimizationNLopt]] deps = ["NLopt", "OptimizationBase", "Random", "Reexport", "SciMLBase"] -git-tree-sha1 = "8354392af1d62b7c3ac28a33094b1e8338364843" +git-tree-sha1 = "127bbb0ed9968f8d93a73d60ff7eaaa48947726c" uuid = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" -version = "0.3.8" +version = "0.3.9" [[deps.OptimizationOptimJL]] deps = ["Optim", "OptimizationBase", "Reexport", "SciMLBase", "SparseArrays"] -git-tree-sha1 = "dffc6cc3dbe32eb370e297e332153198aa4a201c" +git-tree-sha1 = "615ffed7e1e032fd000aabb5046dc4c976a4afca" uuid = "36348300-93cb-4f02-beb5-3c3902f8871e" -version = "0.4.9" +version = "0.4.10" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -2504,27 +2364,27 @@ version = "1.8.1" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SparseArrays", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "00c0f2ce8fba6b7edd8847875043a28c1e6ec6cb" +git-tree-sha1 = "3d7817c992df89788f770d856f96a1206cbcaa91" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.105.0" +version = "6.107.0" [[deps.OrdinaryDiffEqAdamsBashforthMoulton]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "b772f64c6551ab208211201deb5982efee6aa1ea" +git-tree-sha1 = "8307937159c3aeec5f19f4b661d82d96d25a3ff1" uuid = "89bda076-bce5-4f1c-845f-551c83cdda9a" -version = "1.8.0" +version = "1.9.0" [[deps.OrdinaryDiffEqBDF]] deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "19d7750f7e6df1a04e314ba1c340a3c3e79d0c00" +git-tree-sha1 = "156f2623ac97e7cf340848ba606f1226998980af" uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" -version = "1.13.0" +version = "1.14.0" [[deps.OrdinaryDiffEqCore]] -deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "c1e91924e46c76e8312d60352cd3e6e2ed8eb785" +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ConcreteStructs", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] +git-tree-sha1 = "8d8e8fd5c80b38c0cc2de5a8fcca8db1a2e77a06" uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" -version = "2.3.0" +version = "3.1.0" weakdeps = ["EnzymeCore", "Mooncake"] [deps.OrdinaryDiffEqCore.extensions] @@ -2533,15 +2393,15 @@ weakdeps = ["EnzymeCore", "Mooncake"] [[deps.OrdinaryDiffEqDefault]] deps = ["ADTypes", "DiffEqBase", "EnumX", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "PrecompileTools", "Preferences", "Reexport", "SciMLBase"] -git-tree-sha1 = "54ddfad5e465b739a3e562de4622ce56c20bf38b" +git-tree-sha1 = "0f40d969dd10d1b226c864bf7dc4b4b8933bc130" uuid = "50262376-6c5a-4cf5-baba-aaf4f84d72d7" -version = "1.11.0" +version = "1.13.0" [[deps.OrdinaryDiffEqDifferentiation]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SciMLOperators", "SparseMatrixColorings", "StaticArrayInterface", "StaticArrays"] -git-tree-sha1 = "9ac7607971bf66b6443bb2ce22dd602846ed1b68" +git-tree-sha1 = "c3706545346a550a2669d8bcfe6db683af04a21c" uuid = "4302a76b-040a-498a-8c04-15b101fed76b" -version = "1.21.0" +version = "1.22.0" weakdeps = ["SparseArrays"] [deps.OrdinaryDiffEqDifferentiation.extensions] @@ -2549,153 +2409,153 @@ weakdeps = ["SparseArrays"] [[deps.OrdinaryDiffEqExplicitRK]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] -git-tree-sha1 = "f3344e1711d20d80c29692658f4f8ee3bd79a1f0" +git-tree-sha1 = "c5b900878b088776b8d1bd5a7b1d94e301e21c4e" uuid = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" -version = "1.7.0" +version = "1.9.0" [[deps.OrdinaryDiffEqExponentialRK]] deps = ["ADTypes", "DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "24a43208f358e45eea6596a884fb821fd9d993f0" +git-tree-sha1 = "65f2e40d7e9b1415c41838ec762777a4c36e4804" uuid = "e0540318-69ee-4070-8777-9e2de6de23de" -version = "1.11.0" +version = "1.12.0" [[deps.OrdinaryDiffEqExtrapolation]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "de3cb37ab28447e1b4662c12f617f5e899c4cd83" +git-tree-sha1 = "e2f3ebd6cd7ed9c8d551fb10192644e8f6dd3cbb" uuid = "becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4" -version = "1.12.0" +version = "1.13.0" [[deps.OrdinaryDiffEqFIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastGaussQuadrature", "FastPower", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "2bbb98c0674767468258bf4f05f79237f3fe8e1f" +git-tree-sha1 = "cbb6a36f09f1357a526c55a0a6805b60121eafb8" uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" -version = "1.19.0" +version = "1.20.0" [[deps.OrdinaryDiffEqFeagin]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "9193f89b37f3bda1fd5979fdebf8f5d768ecf50a" +git-tree-sha1 = "b123f64a8635a712ceb037a7d2ffe2a1875325d3" uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" -version = "1.7.0" +version = "1.8.0" [[deps.OrdinaryDiffEqFunctionMap]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "7f6567109b48bafe14d1032adeecf2f387dccf42" +git-tree-sha1 = "cbd291508808caf10cf455f974c2025e886ed2a3" uuid = "d3585ca7-f5d3-4ba6-8057-292ed1abd90f" -version = "1.8.0" +version = "1.9.0" [[deps.OrdinaryDiffEqHighOrderRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "1504b92b5efe7f27b2d50470363238eecb8082bf" +git-tree-sha1 = "9584dcc90cf10216de7aa0f2a1edc0f54d254cf6" uuid = "d28bc4f8-55e1-4f49-af69-84c1a99f0f58" -version = "1.8.0" +version = "1.9.0" [[deps.OrdinaryDiffEqIMEXMultistep]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "3b75f3f7e47e094f20a0fe76569c1a30f94088a1" +git-tree-sha1 = "23602428114124a3e3df85fcbc5b461c79fb91bf" uuid = "9f002381-b378-40b7-97a6-27a27c83f129" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqLinear]] deps = ["DiffEqBase", "ExponentialUtilities", "LinearAlgebra", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "caf51563014bc4c058c7f4893f4e539642d6e903" +git-tree-sha1 = "c92913fa5942ed9bc748f3e79a5c693c8ec0c3d7" uuid = "521117fe-8c41-49f8-b3b6-30780b3f0fb5" -version = "1.9.0" +version = "1.10.0" [[deps.OrdinaryDiffEqLowOrderRK]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "6672802d50aad826fee6e19357463307f5d35805" +git-tree-sha1 = "78223e34d4988070443465cd3f2bdc38d6bd14b0" uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" -version = "1.9.0" +version = "1.10.0" [[deps.OrdinaryDiffEqLowStorageRK]] deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"] -git-tree-sha1 = "a3b1a6b9fef66dcc38aacae6891870af4a512a32" +git-tree-sha1 = "708c362418bd4503fd158f4f4e53151fbe57b46a" uuid = "b0944070-b475-4768-8dec-fb6eb410534d" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FastClosures", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "PreallocationTools", "RecursiveArrayTools", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "1a724ba7bc219cc282e7dee9087a16b8778db50c" +git-tree-sha1 = "9f0be4bd586829a28a04c8f923598497f56ac226" uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" -version = "1.18.1" +version = "1.19.0" [[deps.OrdinaryDiffEqNordsieck]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "5c289863b17b79b79f229e8e9a290736618f6cb6" +git-tree-sha1 = "05f3319c3bf1440897dc613194eb3db4d2d3e692" uuid = "c9986a66-5c92-4813-8696-a7ec84c806c8" -version = "1.7.0" +version = "1.8.0" [[deps.OrdinaryDiffEqPDIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "Reexport", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "478d3b3ca90b20b261452f92ba8dd488aa5e7ede" +git-tree-sha1 = "7d63467f59f6504672ba93226f156f99c6095f60" uuid = "5dd0a6cf-3d4b-4314-aa06-06d4e299bc89" -version = "1.9.0" +version = "1.10.0" [[deps.OrdinaryDiffEqPRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "Reexport", "SciMLBase"] -git-tree-sha1 = "b904958ddca6a572ee61bfdc0bd40766b5bbbc65" +git-tree-sha1 = "baa77b7f874cda1f58f8c793fc7a9778e78a91c5" uuid = "5b33eab2-c0f1-4480-b2c3-94bc1e80bda1" -version = "1.7.0" +version = "1.8.0" [[deps.OrdinaryDiffEqQPRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "13e7b0ae977195b225740044d56ccd2e3e8e2217" +git-tree-sha1 = "9e351a8f923c843adb48945318437e051f6ee139" uuid = "04162be5-8125-4266-98ed-640baecc6514" -version = "1.7.0" +version = "1.8.0" [[deps.OrdinaryDiffEqRKN]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "9ecb931559be1422bc92c9005f2420ace4c05d43" +git-tree-sha1 = "b086c6d1b4153c9ff4b3f184a9ba7829413cc502" uuid = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a" -version = "1.8.0" +version = "1.10.0" [[deps.OrdinaryDiffEqRosenbrock]] deps = ["ADTypes", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "210cce3ff9fa705282d268fb834c91b661bb1b5a" +git-tree-sha1 = "e4605c3930703b5d38083ce1a998ee824dd67266" uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" -version = "1.21.0" +version = "1.22.0" [[deps.OrdinaryDiffEqSDIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] -git-tree-sha1 = "4de6054187d1a92b6ce9291a4e091aa70389ec0f" +git-tree-sha1 = "5d0a230f4e431e53af19502eaea8778f8f15edd4" uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqSSPRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"] -git-tree-sha1 = "99edf697fdca7d329841d05bf9c54bf33570c4b0" +git-tree-sha1 = "8abc61382a0c6469aa9c3bff2d61c9925a088320" uuid = "669c94d9-1f4b-4b64-b377-1aa079aa2388" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqStabilizedIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqStabilizedRK", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "5f287d7d64b3c16981c91588cc6bb52cf75f2074" +git-tree-sha1 = "1719060baf014a3c1a6506113bc09d82a0903f0e" uuid = "e3e12d00-db14-5390-b879-ac3dd2ef6296" -version = "1.9.0" +version = "1.10.0" [[deps.OrdinaryDiffEqStabilizedRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "46432bb034066830e196507651e8a906ab881146" +git-tree-sha1 = "d156a972fa7bc37bf8377d33a7d51d152e354d4c" uuid = "358294b1-0aab-51c3-aafe-ad5ab194a2ad" -version = "1.7.0" +version = "1.8.0" [[deps.OrdinaryDiffEqSymplecticRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "9271773d454e86ea3ca36b0dfbfb64a50c023fa1" +git-tree-sha1 = "9b783806fe2dc778649231cb3932cb71b63222d9" uuid = "fa646aed-7ef9-47eb-84c4-9443fc8cbfa8" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqTsit5]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "c15a392715a2fa459650771d73adc80c8fbfe0c1" +git-tree-sha1 = "8be4cba85586cd2efa6c76d1792c548758610901" uuid = "b1df2697-797e-41e3-8120-5422d3b24e4a" -version = "1.8.0" +version = "1.9.0" [[deps.OrdinaryDiffEqVerner]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "8df1d3e545a864b4d0839b738e400fecc708f03a" +git-tree-sha1 = "5ca5dbbfea89e14f283ce9fe2301c528ff4ec007" uuid = "79d7bb75-1356-48c1-b8c0-6832512096c2" -version = "1.9.0" +version = "1.11.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -2755,9 +2615,9 @@ version = "1.4.4" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "Unzip"] -git-tree-sha1 = "1cc8ad0762e59e713ee3ef28f9b78b2c9f4ca078" +git-tree-sha1 = "cb20a4eacda080e517e4deb9cfb6c7c518131265" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.41.5" +version = "1.41.6" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -2781,9 +2641,9 @@ version = "0.4.7" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "6f7cd22a802094d239824c57d94c8e2d0f7cfc7d" +git-tree-sha1 = "16bbc30b5ebea91e9ce1671adc03de2832cff552" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.18" +version = "0.7.19" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -2805,9 +2665,9 @@ version = "0.2.4" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "PrecompileTools"] -git-tree-sha1 = "c05b4c6325262152483a1ecb6c69846d2e01727b" +git-tree-sha1 = "dc8d6bde5005a0eac05ae8faf1eceaaca166cfa4" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.34" +version = "1.1.2" weakdeps = ["ForwardDiff", "ReverseDiff", "SparseConnectivityTracer"] [deps.PreallocationTools.extensions] @@ -2823,9 +2683,9 @@ version = "1.2.1" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "522f093a29b31a93e34eaea17ba055d850edea28" +git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.5.1" +version = "1.5.2" [[deps.PrettyPrint]] git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" @@ -2834,9 +2694,15 @@ version = "0.2.0" [[deps.PrettyTables]] deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "REPL", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "c5a07210bd060d6a8491b0ccdee2fa0235fc00bf" +git-tree-sha1 = "211530a7dc76ab59087f4d4d1fc3f086fbe87594" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "3.1.2" +version = "3.2.3" + + [deps.PrettyTables.extensions] + PrettyTablesTypstryExt = "Typstry" + + [deps.PrettyTables.weakdeps] + Typstry = "f0ed7684-a786-439e-b1e3-3b82803b501e" [[deps.Primes]] deps = ["IntegerMathUtils"] @@ -2862,33 +2728,39 @@ uuid = "92933f4c-e287-5a05-a399-4b506db050ca" version = "1.11.0" [[deps.PtrArrays]] -git-tree-sha1 = "1d36ef11a9aaf1e8b74dacc6a731dd1de8fd493d" +git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe" uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" -version = "1.3.0" +version = "1.4.0" [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] -git-tree-sha1 = "34f7e5d2861083ec7596af8b8c092531facf2192" +git-tree-sha1 = "d7a4bff94f42208ce3cf6bc8e4e7d1d663e7ee8b" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" -version = "6.8.2+2" +version = "6.10.2+1" [[deps.Qt6Declarative_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] -git-tree-sha1 = "da7adf145cce0d44e892626e647f9dcbe9cb3e10" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll", "Qt6Svg_jll"] +git-tree-sha1 = "d5b7dd0e226774cbd87e2790e34def09245c7eab" uuid = "629bc702-f1f5-5709-abd5-49b8460ea067" -version = "6.8.2+1" +version = "6.10.2+1" [[deps.Qt6ShaderTools_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] -git-tree-sha1 = "9eca9fc3fe515d619ce004c83c31ffd3f85c7ccf" +git-tree-sha1 = "4d85eedf69d875982c46643f6b4f66919d7e157b" uuid = "ce943373-25bb-56aa-8eca-768745ed7b5a" -version = "6.8.2+1" +version = "6.10.2+1" + +[[deps.Qt6Svg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll"] +git-tree-sha1 = "81587ff5ff25a4e1115ce191e36285ede0334c9d" +uuid = "6de9746b-f93d-5813-b365-ba18ad4a9cf3" +version = "6.10.2+0" [[deps.Qt6Wayland_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] -git-tree-sha1 = "8f528b0851b5b7025032818eb5abbeb8a736f853" +git-tree-sha1 = "672c938b4b4e3e0169a07a5f227029d4905456f2" uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" -version = "6.8.2+2" +version = "6.10.2+1" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] @@ -2975,9 +2847,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "LinearAlgebra", "PrecompileTools", "RecipesBase", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "81750fa442cc5cb3ab1ba89b1cdf8eda543e6905" +git-tree-sha1 = "18d2a6fd1ea9a8205cadb3a5704f8e51abdd748b" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.47.0" +version = "3.48.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -3050,9 +2922,9 @@ version = "0.5.1+0" [[deps.Roots]] deps = ["Accessors", "CommonSolve", "Printf"] -git-tree-sha1 = "8a433b1ede5e9be9a7ba5b1cc6698daa8d718f1d" +git-tree-sha1 = "10a488dbecb88a9679c8f357d383d7d83dcc748d" uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" -version = "2.2.10" +version = "2.2.13" [deps.Roots.extensions] RootsChainRulesCoreExt = "ChainRulesCore" @@ -3093,9 +2965,9 @@ version = "0.6.1" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "1b007ef25d4c18da29f956c2cad0a45f1c98f0f3" +git-tree-sha1 = "4675d321bfebe190d22dc4d9de6af7e318d5174a" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.136.0" +version = "2.148.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -3144,9 +3016,13 @@ version = "0.1.12" [[deps.SciMLLogging]] deps = ["Logging", "LoggingExtras", "Preferences"] -git-tree-sha1 = "7eebb9985e35b123e12025a3a2ad020cd6059f71" +git-tree-sha1 = "0161be062570af4042cf6f69e3d5d0b0555b6927" uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" -version = "1.8.0" +version = "1.9.1" +weakdeps = ["Tracy"] + + [deps.SciMLLogging.extensions] + SciMLLoggingTracyExt = "Tracy" [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] @@ -3181,9 +3057,10 @@ uuid = "53ae85a6-f571-4167-b2af-e1d143709226" version = "1.10.0" [[deps.ScientificTypesBase]] -git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" +deps = ["InteractiveUtils"] +git-tree-sha1 = "e785eaa35a0f5518a388f9010e66fda64ea95ede" uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" -version = "3.0.0" +version = "3.1.0" [[deps.ScopedValues]] deps = ["HashArrayMappedTries", "Logging"] @@ -3241,9 +3118,9 @@ version = "1.2.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "315da09948861edbc6d18e066c08903487bb580d" +git-tree-sha1 = "744c3f0fb186ad28376199c1e72ca39d0c614b5d" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "2.10.0" +version = "2.11.0" weakdeps = ["ChainRulesCore", "ReverseDiff", "Tracker"] [deps.SimpleNonlinearSolve.extensions] @@ -3274,9 +3151,9 @@ version = "1.11.0" [[deps.SparseConnectivityTracer]] deps = ["ADTypes", "DocStringExtensions", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "322365aa23098275562cbad6a1c2539ee40d9618" +git-tree-sha1 = "590b72143436e443888124aaf4026a636049e3f5" uuid = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" -version = "1.1.3" +version = "1.2.1" weakdeps = ["ChainRulesCore", "LogExpFunctions", "NNlib", "NaNMath", "SpecialFunctions"] [deps.SparseConnectivityTracer.extensions] @@ -3294,9 +3171,9 @@ version = "0.1.2" [[deps.SparseMatrixColorings]] deps = ["ADTypes", "DocStringExtensions", "LinearAlgebra", "PrecompileTools", "Random", "SparseArrays"] -git-tree-sha1 = "6ed48d9a3b22417c765dc273ae3e1e4de035e7c8" +git-tree-sha1 = "7b2263c87aa890bf6d18ae05cedbe259754e3f34" uuid = "0a514795-09f3-496d-8182-132a7b665d35" -version = "0.4.23" +version = "0.4.24" [deps.SparseMatrixColorings.extensions] SparseMatrixColoringsCUDAExt = "CUDA" @@ -3313,9 +3190,9 @@ version = "0.4.23" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "f2685b435df2613e25fc10ad8c26dddb8640f547" +git-tree-sha1 = "5acc6a41b3082920f79ca3c759acbcecf18a8d78" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.6.1" +version = "2.7.1" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -3340,10 +3217,10 @@ uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" version = "1.3.1" [[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Static"] -git-tree-sha1 = "96381d50f1ce85f2663584c8e886a6ca97e60554" +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "SciMLPublic", "Static"] +git-tree-sha1 = "aa1ea41b3d45ac449d10477f65e2b40e3197a0d2" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.8.0" +version = "1.9.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -3352,9 +3229,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "eee1b9ad8b29ef0d936e3ec9838c7ec089620308" +git-tree-sha1 = "0f529006004a8be48f1be25f3451186579392d47" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.16" +version = "1.9.17" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -3407,9 +3284,9 @@ weakdeps = ["ChainRulesCore", "InverseFunctions"] [[deps.StatsModels]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Printf", "REPL", "ShiftedArrays", "SparseArrays", "StatsAPI", "StatsBase", "StatsFuns", "Tables"] -git-tree-sha1 = "b12d37d25a2378f01abba02591cfd39a6cc4936f" +git-tree-sha1 = "08786db4a1346d17d0a8d952d2e66fd00fa18192" uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d" -version = "0.7.8" +version = "0.7.9" [[deps.StatsPlots]] deps = ["AbstractFFTs", "Clustering", "DataStructures", "Distributions", "Interpolations", "KernelDensity", "LinearAlgebra", "MultivariateStats", "NaNMath", "Observables", "Plots", "RecipesBase", "RecipesPipeline", "Reexport", "StatsBase", "TableOperations", "Tables", "Widgets"] @@ -3417,18 +3294,6 @@ git-tree-sha1 = "88cf3587711d9ad0a55722d339a013c4c56c5bbc" uuid = "f3b207a7-027a-5e70-b257-86293d7955fd" version = "0.15.8" -[[deps.SteadyStateDiffEq]] -deps = ["ConcreteStructs", "DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NonlinearSolveBase", "Reexport", "SciMLBase"] -git-tree-sha1 = "7b32737ebda77355ee61cfa9e59d376de3604629" -uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" -version = "2.9.0" - -[[deps.StochasticDiffEq]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FastPower", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SimpleNonlinearSolve", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "d24537c04013ab0f6fa17c17f06594bac9ad61f2" -uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" -version = "6.90.0" - [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] git-tree-sha1 = "83151ba8065a73f53ca2ae98bc7274d817aa30f2" @@ -3437,29 +3302,45 @@ version = "0.5.8" [[deps.Strided]] deps = ["LinearAlgebra", "StridedViews", "TupleTools"] -git-tree-sha1 = "c2e72c33ac8871d104901db736aecb36b223f10c" +git-tree-sha1 = "e8f4378674a1bcf4dd8fdefc0fa979323ccb4141" uuid = "5e0ebb24-38b0-5f93-81fe-25c709ecae67" -version = "2.3.2" +version = "2.3.3" + + [deps.Strided.extensions] + StridedAMDGPUExt = "AMDGPU" + StridedCUDAExt = "CUDA" + StridedGPUArraysExt = "GPUArrays" + StridedJLArraysExt = "JLArrays" + + [deps.Strided.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" [[deps.StridedViews]] deps = ["LinearAlgebra", "PackageExtensionCompat"] -git-tree-sha1 = "e34a59ea9c7abc8f10bfd77578de9d64bded2859" +git-tree-sha1 = "b1b42ff0249fbb02df163633adc612b943c6ac74" uuid = "4db3bf67-4bd7-4b4e-b153-31dc3fb37143" -version = "0.4.3" +version = "0.4.6" [deps.StridedViews.extensions] + StridedViewsAMDGPUExt = "AMDGPU" StridedViewsCUDAExt = "CUDA" + StridedViewsJLArraysExt = "JLArrays" StridedViewsPtrArraysExt = "PtrArrays" [deps.StridedViews.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" PtrArrays = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" [[deps.StringManipulation]] deps = ["PrecompileTools"] -git-tree-sha1 = "a3c1536470bf8c5e02096ad4853606d7c8f62721" +git-tree-sha1 = "d05693d339e37d6ab134c5ab53c29fce5ee5d7d5" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.4.2" +version = "0.4.4" [[deps.StructArrays]] deps = ["ConstructionBase", "DataAPI", "Tables"] @@ -3482,9 +3363,9 @@ version = "0.3.1" [[deps.StructUtils]] deps = ["Dates", "UUIDs"] -git-tree-sha1 = "9297459be9e338e546f5c4bedb59b3b5674da7f1" +git-tree-sha1 = "28145feabf717c5d65c1d5e09747ee7b1ff3ed13" uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42" -version = "2.6.2" +version = "2.6.3" [deps.StructUtils.extensions] StructUtilsMeasurementsExt = ["Measurements"] @@ -3502,29 +3383,11 @@ version = "1.11.0" deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" -[[deps.SuiteSparse32_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "libblastrampoline_jll"] -git-tree-sha1 = "1d43a4874b879f381b8a3a978f0ebe837cfd0922" -uuid = "ca45d3f4-326b-53b0-9957-23b75aacb3f2" -version = "7.12.1+0" - [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" version = "7.7.0+0" -[[deps.Sundials]] -deps = ["Accessors", "ArrayInterface", "CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "LinearSolve", "Logging", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll", "SymbolicIndexingInterface"] -git-tree-sha1 = "2d27edb89b7c555a57b8f22bfde92d6828d11cee" -uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" -version = "5.1.0" - -[[deps.Sundials_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS32_jll", "SuiteSparse32_jll"] -git-tree-sha1 = "a872f379c836e9cb5734485ca0681b192a59b98b" -uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" -version = "7.5.0+0" - [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] git-tree-sha1 = "94c58884e013efff548002e8dc2fdd1cb74dfce5" @@ -3687,10 +3550,10 @@ uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" version = "1.6.0" [[deps.Turing]] -deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "Compat", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "MCMCChains", "NamedArrays", "Optimization", "OptimizationOptimJL", "OrderedCollections", "Printf", "Random", "Reexport", "SciMLBase", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "923ba6ce1ab6b3d95f5efe1daad92369553aadfe" +deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "Compat", "DataStructures", "DifferentiationInterface", "Distributions", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "MCMCChains", "Optimization", "OptimizationOptimJL", "OrderedCollections", "Printf", "Random", "Reexport", "SciMLBase", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "45ddf0d7564c7723760ff22e39fde90a87cd12c5" uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.42.8" +version = "0.43.0" weakdeps = ["DynamicHMC"] [deps.Turing.extensions] @@ -3805,9 +3668,9 @@ version = "1.2.6+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] -git-tree-sha1 = "b5899b25d17bf1889d25906fb9deed5da0c15b3b" +git-tree-sha1 = "808090ede1d41644447dd5cbafced4731c56bd2f" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" -version = "1.8.12+0" +version = "1.8.13+0" [[deps.Xorg_libXau_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -3829,9 +3692,9 @@ version = "1.1.6+0" [[deps.Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "a4c0ee07ad36bf8bbce1c3bb52d21fb1e0b987fb" +git-tree-sha1 = "1a4a26870bf1e5d26cd585e38038d399d7e65706" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.7+0" +version = "1.3.8+0" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] @@ -3847,15 +3710,15 @@ version = "1.8.3+0" [[deps.Xorg_libXinerama_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll"] -git-tree-sha1 = "a5bc75478d323358a90dc36766f3c99ba7feb024" +git-tree-sha1 = "0ba01bc7396896a4ace8aab67db31403c71628f4" uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" -version = "1.1.6+0" +version = "1.1.7+0" [[deps.Xorg_libXrandr_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll", "Xorg_libXrender_jll"] -git-tree-sha1 = "aff463c82a773cb86061bce8d53a0d976854923e" +git-tree-sha1 = "6c174ef70c96c76f4c3f4d3cfbe09d018bcd1b53" uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" -version = "1.5.5+0" +version = "1.5.6+0" [[deps.Xorg_libXrender_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] @@ -3871,9 +3734,9 @@ version = "1.17.1+0" [[deps.Xorg_libxkbfile_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "e3150c7400c41e207012b41659591f083f3ef795" +git-tree-sha1 = "ed756a03e95fff88d8f738ebc2849431bdd4fd1a" uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" -version = "1.1.3+0" +version = "1.2.0+0" [[deps.Xorg_xcb_util_cursor_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] @@ -4019,9 +3882,9 @@ version = "1.28.1+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "6ab498eaf50e0495f89e7a5b582816e2efb95f64" +git-tree-sha1 = "e015f211ebb898c8180887012b938f3851e719ac" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.54+0" +version = "1.6.55+0" [[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll"] diff --git a/Project.toml b/Project.toml index b13d7e2f2..c6d200caa 100644 --- a/Project.toml +++ b/Project.toml @@ -9,7 +9,7 @@ Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" Chairmarks = "0ca39b1e-fe0b-4e98-acfc-b1656634c4de" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -DifferentialEquations = "0c46a032-eb83-5123-abaf-570d42b7fbaa" +DelayDiffEq = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" DynamicHMC = "bbc10e6e-7c05-544b-b16e-64fede858acb" @@ -36,6 +36,7 @@ NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" OptimizationNLopt = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e" +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" PDMats = "90014a1f-27ba-587c-ab20-58faa44d9150" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" @@ -51,4 +52,4 @@ StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" [compat] -Turing = "0.42" +Turing = "0.43" diff --git a/_quarto.yml b/_quarto.yml index cb855f788..8cf205ba4 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -43,7 +43,7 @@ website: href: https://turinglang.org/team/ right: # Current version - - text: "v0.42" + - text: "v0.43" menu: - text: Changelog href: https://turinglang.org/docs/changelog.html @@ -180,6 +180,7 @@ execute: echo: true output: true freeze: auto + error: true # These variables can be used in any qmd files, e.g. for links: # the [Getting Started page]({{< meta get-started >}}) diff --git a/tutorials/bayesian-differential-equations/index.qmd b/tutorials/bayesian-differential-equations/index.qmd index 40400e0aa..ab2e5ed0c 100755 --- a/tutorials/bayesian-differential-equations/index.qmd +++ b/tutorials/bayesian-differential-equations/index.qmd @@ -18,9 +18,14 @@ In practice, these equations often have unknown parameters we would like to esti The "[forward problem](https://en.wikipedia.org/wiki/Well-posed_problem)" of simulation consists of solving the differential equations for a given set of parameters, while the "[inverse problem](https://en.wikipedia.org/wiki/Inverse_problem)" of parameter estimation uses observed data to infer the unknown model parameters. Bayesian inference provides a robust approach to parameter estimation with quantified uncertainty. +[DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/) is the main Julia package for numerically solving differential equations. +Its functionality is completely interoperable with Turing.jl, which means that we can directly simulate differential equations inside a Turing `@model`. +DifferentialEquations.jl itself is an extremely large package. +To avoid loading parts that we don't need, for now we'll only load a sub-component of it, OrdinaryDiffEq.jl. + ```{julia} using Turing -using DifferentialEquations +using OrdinaryDiffEq # Load StatsPlots for visualizations and diagnostics. using StatsPlots using LinearAlgebra @@ -99,9 +104,6 @@ For this tutorial, though, we will stick with simulated data. ## Direct Handling of Bayesian Estimation with Turing -[DifferentialEquations.jl](https://docs.sciml.ai/DiffEqDocs/stable/) is the main Julia package for numerically solving differential equations. -Its functionality is completely interoperable with Turing.jl, which means that we can directly simulate differential equations inside a Turing `@model`. - For the purposes of this tutorial, we choose priors for the parameters that are quite close to the ground truth. As justification, we can imagine we have preexisting estimates for the biological rates. Practically, this helps us to illustrate the results without needing to run overly long MCMC chains. @@ -240,11 +242,15 @@ $$ where $\tau$ is a (positive) delay and $x(t-\tau)$ is the variable $x$ at an earlier time point $t - \tau$. The initial-value problem of the delayed system can be implemented as a `DDEProblem`. +To use this, we'll have to load a different sub-package of the SciML ecosystem, [DelayDiffEq.jl](https://docs.sciml.ai/DelayDiffEq/stable/). + As described in the [DDE example](https://diffeq.sciml.ai/stable/tutorials/dde_example/), here the function `h` is the history function that can be used to obtain a state at an earlier time point. Again we use parameters $\alpha = 1.5$, $\beta = 1$, $\gamma = 3$, and $\delta = 1$ and initial conditions $x(0) = y(0) = 1$. Moreover, we assume $x(t) = 1$ for $t < 0$. ```{julia} +using DelayDiffEq + function delay_lotka_volterra(du, u, h, p, t) # Model parameters. α, β, γ, δ = p diff --git a/usage/varnamedtuple/index.qmd b/usage/varnamedtuple/index.qmd index 356536a4e..952574894 100755 --- a/usage/varnamedtuple/index.qmd +++ b/usage/varnamedtuple/index.qmd @@ -10,23 +10,6 @@ using Pkg; Pkg.instantiate(); ``` -::: {.callout-warning} -# This page refers to a future version of DynamicPPL.jl - -The changes on this page are being implemented in DynamicPPL v0.40. -They are not currently available in released versions of DynamicPPL.jl and Turing.jl. -The documentation is being written in advance to minimise the delay between the release of the new version and the availability of documentation. - -Please see [this PR](https://github.com/TuringLang/DynamicPPL.jl/pull/1164) and [this milestone](https://github.com/TuringLang/DynamicPPL.jl/milestone/1) for ongoing progress. -::: - -```{julia} -using DynamicPPL -if pkgversion(DynamicPPL) >= v"0.40" - error("This page needs to be updated") -end -``` - In many places Turing.jl uses a custom data structure, `VarNamedTuple`, to represent mappings of `VarName`s to arbitrary values. This completely replaces the usage of `NamedTuple`s or `OrderedDict{VarName}` in previous versions. @@ -55,7 +38,7 @@ Currently, `VarNamedTuple` is defined in DynamicPPL.jl; it may be moved to Abstr Very often, `VarNamedTuple`s are constructed automatically inside Turing.jl models, and you do not need to create them yourself. Here is a simple example of a `VarNamedTuple` created automatically by Turing.jl when running mode estimation: -```julia +```{julia} using Turing @model function demo_model() @@ -75,14 +58,14 @@ res.params As far as using `VarNamedTuple`s goes, they behave very similarly to `Dict{VarName}`s. You can access the stored values using `getindex`: -```julia +```{julia} res.params[@varname(x[1])] ``` The nice thing about `VarNamedTuple`s is that they contain knowledge about the structure of the variables inside them (which is stored during the model evaluation). For example, this particular `VarNamedTuple` knows that `x` is a length-2 vector, so you can access -```julia +```{julia} res.params[@varname(x)] ``` @@ -90,7 +73,7 @@ even though `x` itself was never on the left-hand side of a tilde-statement (onl This is not possible with a `Dict{VarName}`. You can even do things like: -```julia +```{julia} res.params[@varname(x[end])] ``` @@ -118,14 +101,14 @@ We strongly recommend reading [the DynamicPPL docs](https://turinglang.org/Dynam To create a `VarNamedTuple`, you _can_ use the `VarNamedTuple` constructor directly: -```julia +```{julia} VarNamedTuple(x = 1, y = "a", z = [1, 2, 3]) ``` However, this direct constructor only works for variables that are top-level symbols. If you have `VarName`s that contain indexing or field access, we recommend using the `@vnt` macro, which is exported from DynamicPPL and Turing. -```julia +```{julia} using Turing vnt = @vnt begin @@ -161,7 +144,7 @@ A template is an array that has the same type and shape as the variable that wil For example, if your model looks like this: -```julia +```{julia} @model function demo_template() # ... z = zeros(2, 2, 2) @@ -177,7 +160,7 @@ To specify a template, you can use the `@template` macro inside the `@vnt` block The following example, for example, says that `z` inside the model will be a 3-dimensional `Base.Array` of size `(2, 2, 2)`. The fact that it contains zeros is irrelevant, so you can provide any template that is structurally the same. -```julia +```{julia} vnt = @vnt begin @template z = zeros(2, 2, 2) z[1] := 1.0 @@ -187,7 +170,7 @@ end Notice now that the created VarNamedTuple knows that `z` is a 3-dimensional array, so no warnings are issued. Furthermore, you can now index into it as if it were a 3D array: -```julia +```{julia} vnt[@varname(z[1, 1, 1])] ``` @@ -198,7 +181,7 @@ Any expressions in templates are only evaluated once. You can also omit the right-hand side, in which case the template will be assumed to be the variable with that name: -```julia +```{julia} # Declare this variable outside. z = zeros(2, 2, 2) @@ -215,7 +198,7 @@ Multiple templates can also be set on the same line, using space-separated assig If you have nested structs or arrays, you need to provide templates for the *top-level symbol*. -```julia +```{julia} vnt = @vnt begin @template y = (a = zeros(2), b = zeros(3)) y.a[1] := 1.0 From 6f13f60b2fc472e25387f031abe348591f8abaca Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 03:07:41 +0000 Subject: [PATCH 02/26] remove MLDataUtils --- Manifest.toml | 26 +------------------ Project.toml | 1 - .../bayesian-logistic-regression/index.qmd | 6 ++--- .../multinomial-logistic-regression/index.qmd | 4 +-- 4 files changed, 6 insertions(+), 31 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 1caa92e89..3d6203804 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.11.9" manifest_format = "2.0" -project_hash = "0bd578cdaf4182551fb387b25bf090684f5433ca" +project_hash = "cb981272be13a9b492f5c49b7ce271bc1a8d742f" [[deps.ADTypes]] git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" @@ -1479,12 +1479,6 @@ git-tree-sha1 = "aff621f1f49e9262a34aaf0d57d02ea3b35aec60" uuid = "1fad7336-0346-5a1a-a56f-a06ba010965b" version = "0.1.3" -[[deps.LearnBase]] -deps = ["LinearAlgebra", "StatsBase"] -git-tree-sha1 = "47e6f4623c1db88570c7a7fa66c6528b92ba4725" -uuid = "7f8f8fb0-2700-5f03-b4bd-41f8cfc144b6" -version = "0.3.0" - [[deps.LeftChildRightSiblingTrees]] deps = ["AbstractTrees"] git-tree-sha1 = "95ba48564903b43b2462318aa243ee79d81135ff" @@ -1893,30 +1887,12 @@ version = "1.17.4" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" -[[deps.MLDataPattern]] -deps = ["LearnBase", "MLLabelUtils", "Random", "SparseArrays", "StatsBase"] -git-tree-sha1 = "e99514e96e8b8129bb333c69e063a56ab6402b5b" -uuid = "9920b226-0b2a-5f5f-9153-9aa70a013f8b" -version = "0.5.4" - -[[deps.MLDataUtils]] -deps = ["DataFrames", "DelimitedFiles", "LearnBase", "MLDataPattern", "MLLabelUtils", "Statistics", "StatsBase"] -git-tree-sha1 = "ee54803aea12b9c8ee972e78ece11ac6023715e6" -uuid = "cc2ba9b6-d476-5e6d-8eaf-a92d5412d41d" -version = "0.5.4" - [[deps.MLJModelInterface]] deps = ["InteractiveUtils", "REPL", "Random", "ScientificTypesBase", "StatisticalTraits"] git-tree-sha1 = "c275fae2e693206b4527dd9d2382aa15359ef3ed" uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" version = "1.12.1" -[[deps.MLLabelUtils]] -deps = ["LearnBase", "MappedArrays", "StatsBase"] -git-tree-sha1 = "fd75d4b0c4016e047bbb6263eecf7ae3891af522" -uuid = "66a33bbf-0c2b-5fc8-a008-9da813334f0a" -version = "0.5.7" - [[deps.MLStyle]] git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" uuid = "d8e11817-5142-5d16-987a-aa16d5891078" diff --git a/Project.toml b/Project.toml index c6d200caa..cf4773edf 100644 --- a/Project.toml +++ b/Project.toml @@ -27,7 +27,6 @@ LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" Lux = "b2108857-7c20-44ae-9111-449ecde12c47" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -MLDataUtils = "cc2ba9b6-d476-5e6d-8eaf-a92d5412d41d" MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" Measures = "442fdcdd-2543-5da2-b0f3-8c86c306513e" diff --git a/tutorials/bayesian-logistic-regression/index.qmd b/tutorials/bayesian-logistic-regression/index.qmd index 8d46cf9ad..9fbd1e66f 100755 --- a/tutorials/bayesian-logistic-regression/index.qmd +++ b/tutorials/bayesian-logistic-regression/index.qmd @@ -34,7 +34,7 @@ using MCMCChains, Plots, StatsPlots using StatsFuns: logistic # Functionality for splitting and normalising the data -using MLDataUtils: shuffleobs, stratifiedobs, rescale! +using MLUtils: shuffleobs, stratifiedobs, rescale! # Set a seed for reproducibility. using Random @@ -69,7 +69,7 @@ first(data, 6) After we've done that tidying, it's time to split our dataset into training and testing sets, and separate the labels from the data. We separate our data into two halves, `train` and `test`. You can use a higher percentage of splitting (or a lower one) by modifying the `at = 0.05` argument. We have highlighted the use of only a 5% sample to show the power of Bayesian inference with small sample sizes. -We must rescale our variables so that they are centred around zero by subtracting each column by the mean and dividing it by the standard deviation. This rescaling ensures features are on comparable scales, which improves sampler initialisation and convergence. To do this we will leverage `MLDataUtils`, which also lets us effortlessly shuffle our observations and perform a [stratified split](https://en.wikipedia.org/wiki/Stratified_sampling) to get a representative test set. +We must rescale our variables so that they are centred around zero by subtracting each column by the mean and dividing it by the standard deviation. This rescaling ensures features are on comparable scales, which improves sampler initialisation and convergence. To do this we will leverage `MLUtils`, which also lets us effortlessly shuffle our observations and perform a [stratified split](https://en.wikipedia.org/wiki/Stratified_sampling) to get a representative test set. ```{julia} function split_data(df, target; at=0.70) @@ -273,4 +273,4 @@ end The above shows that with a threshold of 0.07, we correctly predict a respectable portion of the defaults, and correctly identify most non-defaults. This is fairly sensitive to a choice of threshold, and you may wish to experiment with it. -This tutorial has demonstrated how to use Turing to perform Bayesian logistic regression. \ No newline at end of file +This tutorial has demonstrated how to use Turing to perform Bayesian logistic regression. diff --git a/tutorials/multinomial-logistic-regression/index.qmd b/tutorials/multinomial-logistic-regression/index.qmd index 3cc306a0d..130bea580 100755 --- a/tutorials/multinomial-logistic-regression/index.qmd +++ b/tutorials/multinomial-logistic-regression/index.qmd @@ -29,7 +29,7 @@ using RDatasets using StatsPlots # Functionality for splitting and normalising the data. -using MLDataUtils: shuffleobs, splitobs, rescale! +using MLUtils: shuffleobs, splitobs, rescale! # We need a softmax function which is provided by NNlib. using NNlib: softmax @@ -232,4 +232,4 @@ for s in 1:3 end ``` -This tutorial has demonstrated how to use Turing to perform Bayesian multinomial logistic regression. \ No newline at end of file +This tutorial has demonstrated how to use Turing to perform Bayesian multinomial logistic regression. From b1479748016e993e4bcda3be356b4c2b50efea34 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 03:11:05 +0000 Subject: [PATCH 03/26] Update more deps --- Manifest.toml | 132 ++++++++++++++++++++++++++++---------------------- 1 file changed, 73 insertions(+), 59 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 3d6203804..b5bbe8265 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -572,10 +572,10 @@ uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" version = "1.8.1" [[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0" +deps = ["OrderedCollections"] +git-tree-sha1 = "e357641bb3e0638d353c4b29ea0e40ea644066a6" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.22" +version = "0.19.3" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -600,9 +600,9 @@ version = "0.1.2" [[deps.DelayDiffEq]] deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DiffEqBase", "FastBroadcast", "ForwardDiff", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SimpleNonlinearSolve", "SymbolicIndexingInterface"] -git-tree-sha1 = "c4b5c6d91acd09165f8cbabc4eefdc10350bce68" +git-tree-sha1 = "508151e101ee796201a4abd05506c6027213e967" uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" -version = "5.67.1" +version = "5.69.0" [[deps.DelimitedFiles]] deps = ["Mmap"] @@ -692,9 +692,9 @@ version = "1.15.1" [[deps.DifferentiationInterface]] deps = ["ADTypes", "LinearAlgebra"] -git-tree-sha1 = "5e6897d988addbfe7d9ad2ee467cc0c91001aae4" +git-tree-sha1 = "7ae99144ea44715402c6c882bfef2adbeadbc4ce" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.7.15" +version = "0.7.16" [deps.DifferentiationInterface.extensions] DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" @@ -1177,10 +1177,14 @@ uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.15+0" [[deps.Graphs]] -deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] -git-tree-sha1 = "7a98c6502f4632dbe9fb1973a4244eaa3324e84d" +deps = ["ArnoldiMethod", "DataStructures", "Inflate", "LinearAlgebra", "Random", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "7eb45fe833a5b7c51cf6d89c5a841d5967e44be3" uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" -version = "1.13.1" +version = "1.14.0" +weakdeps = ["Distributed", "SharedArrays"] + + [deps.Graphs.extensions] + GraphsSharedArraysExt = "SharedArrays" [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" @@ -1704,9 +1708,9 @@ version = "1.2.0" [[deps.Lux]] deps = ["ADTypes", "Adapt", "ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DiffResults", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Functors", "GPUArraysCore", "LinearAlgebra", "LuxCore", "LuxLib", "MLDataDevices", "MacroTools", "Markdown", "NNlib", "Optimisers", "PrecompileTools", "Preferences", "Random", "ReactantCore", "Reexport", "SciMLPublic", "Setfield", "Static", "StaticArraysCore", "Statistics", "UUIDs", "WeightInitializers"] -git-tree-sha1 = "9d618572621b53dbb7ab47ee97413b2a11e3f1ea" +git-tree-sha1 = "334de475ff414c8eb67f88f57f7b02d40cd8f320" uuid = "b2108857-7c20-44ae-9111-449ecde12c47" -version = "1.31.1" +version = "1.31.3" [deps.Lux.extensions] ComponentArraysExt = "ComponentArrays" @@ -1823,9 +1827,9 @@ version = "7.7.0" [[deps.MCMCDiagnosticTools]] deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] -git-tree-sha1 = "526c98cd41028da22c01cb8a203246799ad853a8" +git-tree-sha1 = "f90494689e927268dec7bbd1ece64f134ad251f4" uuid = "be115224-59cd-429b-ad48-344e309966f0" -version = "0.3.15" +version = "0.3.16" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] @@ -1978,14 +1982,15 @@ uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" version = "0.8.1" [[deps.Mooncake]] -deps = ["ADTypes", "ChainRules", "ChainRulesCore", "DispatchDoctor", "ExprTools", "Graphs", "LinearAlgebra", "MistyClosures", "Random", "Test"] -git-tree-sha1 = "d49f255b638014e78affde6aa8be08ef282548e3" +deps = ["ADTypes", "ChainRules", "ChainRulesCore", "DispatchDoctor", "ExprTools", "Graphs", "LinearAlgebra", "MistyClosures", "PrecompileTools", "Random", "Test"] +git-tree-sha1 = "6f205a56f9222e4cfd086d4acde3dc475eb7493e" uuid = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" -version = "0.4.203" +version = "0.5.14" [deps.Mooncake.extensions] MooncakeAllocCheckExt = "AllocCheck" MooncakeCUDAExt = "CUDA" + MooncakeDistributionsExt = "Distributions" MooncakeDynamicExpressionsExt = "DynamicExpressions" MooncakeFluxExt = "Flux" MooncakeFunctionWrappersExt = "FunctionWrappers" @@ -1999,6 +2004,7 @@ version = "0.4.203" [deps.Mooncake.weakdeps] AllocCheck = "9b6a8646-10ed-4001-bbdc-1d2f46dfbb1a" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" DynamicExpressions = "a40a106e-89c9-4ca8-8020-a735e8728b6b" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" FunctionWrappers = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" @@ -2340,9 +2346,9 @@ version = "1.8.1" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SparseArrays", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "3d7817c992df89788f770d856f96a1206cbcaa91" +git-tree-sha1 = "924e1db15095c7df6b844231c00c40d756a7553d" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.107.0" +version = "6.108.0" [[deps.OrdinaryDiffEqAdamsBashforthMoulton]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] @@ -2352,20 +2358,20 @@ version = "1.9.0" [[deps.OrdinaryDiffEqBDF]] deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "156f2623ac97e7cf340848ba606f1226998980af" +git-tree-sha1 = "22b0c4f7939af140b7f7f4ce2cce90d9f72fa515" uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" -version = "1.14.0" +version = "1.22.0" [[deps.OrdinaryDiffEqCore]] -deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ConcreteStructs", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "8d8e8fd5c80b38c0cc2de5a8fcca8db1a2e77a06" +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ConcreteStructs", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] +git-tree-sha1 = "65363819a98d156fac5bb48b9c604549069b6d10" uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" -version = "3.1.0" -weakdeps = ["EnzymeCore", "Mooncake"] +version = "3.16.0" +weakdeps = ["Mooncake", "SparseArrays"] [deps.OrdinaryDiffEqCore.extensions] - OrdinaryDiffEqCoreEnzymeCoreExt = "EnzymeCore" OrdinaryDiffEqCoreMooncakeExt = "Mooncake" + OrdinaryDiffEqCoreSparseArraysExt = "SparseArrays" [[deps.OrdinaryDiffEqDefault]] deps = ["ADTypes", "DiffEqBase", "EnumX", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "PrecompileTools", "Preferences", "Reexport", "SciMLBase"] @@ -2375,9 +2381,9 @@ version = "1.13.0" [[deps.OrdinaryDiffEqDifferentiation]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SciMLOperators", "SparseMatrixColorings", "StaticArrayInterface", "StaticArrays"] -git-tree-sha1 = "c3706545346a550a2669d8bcfe6db683af04a21c" +git-tree-sha1 = "c85968ea296acaff5de6ed0d9b64ddb00f4ea01f" uuid = "4302a76b-040a-498a-8c04-15b101fed76b" -version = "1.22.0" +version = "2.2.1" weakdeps = ["SparseArrays"] [deps.OrdinaryDiffEqDifferentiation.extensions] @@ -2391,21 +2397,21 @@ version = "1.9.0" [[deps.OrdinaryDiffEqExponentialRK]] deps = ["ADTypes", "DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "65f2e40d7e9b1415c41838ec762777a4c36e4804" +git-tree-sha1 = "72156f954b199ff23dada0e8c0f12c44503b5cf9" uuid = "e0540318-69ee-4070-8777-9e2de6de23de" -version = "1.12.0" +version = "1.13.0" [[deps.OrdinaryDiffEqExtrapolation]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "e2f3ebd6cd7ed9c8d551fb10192644e8f6dd3cbb" +git-tree-sha1 = "129730b7b6cb60cc9c18e0db5861f4a7ed2c30b9" uuid = "becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4" -version = "1.13.0" +version = "1.16.0" [[deps.OrdinaryDiffEqFIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastGaussQuadrature", "FastPower", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "cbb6a36f09f1357a526c55a0a6805b60121eafb8" +git-tree-sha1 = "342c716e0c15ab44203f68a78f98800ec560df82" uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" -version = "1.20.0" +version = "1.23.0" [[deps.OrdinaryDiffEqFeagin]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] @@ -2427,9 +2433,9 @@ version = "1.9.0" [[deps.OrdinaryDiffEqIMEXMultistep]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "23602428114124a3e3df85fcbc5b461c79fb91bf" +git-tree-sha1 = "9280abaf9ac36d60dd774113f7ce8a7f826d6e2e" uuid = "9f002381-b378-40b7-97a6-27a27c83f129" -version = "1.11.0" +version = "1.12.0" [[deps.OrdinaryDiffEqLinear]] deps = ["DiffEqBase", "ExponentialUtilities", "LinearAlgebra", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] @@ -2445,27 +2451,27 @@ version = "1.10.0" [[deps.OrdinaryDiffEqLowStorageRK]] deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"] -git-tree-sha1 = "708c362418bd4503fd158f4f4e53151fbe57b46a" +git-tree-sha1 = "bd032c73716bc538033af041ca8903df6c813bfd" uuid = "b0944070-b475-4768-8dec-fb6eb410534d" -version = "1.11.0" +version = "1.12.0" [[deps.OrdinaryDiffEqNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FastClosures", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "PreallocationTools", "RecursiveArrayTools", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "9f0be4bd586829a28a04c8f923598497f56ac226" +git-tree-sha1 = "a75727e93ffef0f0bc408372988f7bc0767b1781" uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" -version = "1.19.0" +version = "1.23.0" [[deps.OrdinaryDiffEqNordsieck]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "05f3319c3bf1440897dc613194eb3db4d2d3e692" +git-tree-sha1 = "facea9aaf48eed5e9ba66d8b3246e51417c084d0" uuid = "c9986a66-5c92-4813-8696-a7ec84c806c8" -version = "1.8.0" +version = "1.9.0" [[deps.OrdinaryDiffEqPDIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "Reexport", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "7d63467f59f6504672ba93226f156f99c6095f60" +git-tree-sha1 = "c95dd60623e11464e6079b77d2ce604fb399a02d" uuid = "5dd0a6cf-3d4b-4314-aa06-06d4e299bc89" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqPRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "Reexport", "SciMLBase"] @@ -2487,15 +2493,15 @@ version = "1.10.0" [[deps.OrdinaryDiffEqRosenbrock]] deps = ["ADTypes", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "e4605c3930703b5d38083ce1a998ee824dd67266" +git-tree-sha1 = "f11347f3f01a5b00dae2b565e73795ee138cdc68" uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" -version = "1.22.0" +version = "1.25.0" [[deps.OrdinaryDiffEqSDIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] -git-tree-sha1 = "5d0a230f4e431e53af19502eaea8778f8f15edd4" +git-tree-sha1 = "0b766d820e3b948881f1f246899de9ef3d329224" uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" -version = "1.11.0" +version = "1.12.0" [[deps.OrdinaryDiffEqSSPRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"] @@ -2505,9 +2511,9 @@ version = "1.11.0" [[deps.OrdinaryDiffEqStabilizedIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqStabilizedRK", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "1719060baf014a3c1a6506113bc09d82a0903f0e" +git-tree-sha1 = "cf6856c731ddf9866e3e22612cce5e270f071545" uuid = "e3e12d00-db14-5390-b879-ac3dd2ef6296" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqStabilizedRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays"] @@ -2540,9 +2546,13 @@ version = "10.42.0+1" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "f07c06228a1c670ae4c87d1276b92c7c597fdda0" +git-tree-sha1 = "e4cff168707d441cd6bf3ff7e4832bdf34278e4a" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.35" +version = "0.11.37" +weakdeps = ["StatsBase"] + + [deps.PDMats.extensions] + StatsBaseExt = "StatsBase" [[deps.PackageExtensionCompat]] git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" @@ -3017,14 +3027,18 @@ uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" version = "1.0.1" [[deps.SciMLSensitivity]] -deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ChainRulesCore", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "Distributions", "Enzyme", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionProperties", "FunctionWrappersWrappers", "Functors", "GPUArraysCore", "LinearAlgebra", "LinearSolve", "Markdown", "OrdinaryDiffEqCore", "PreallocationTools", "QuadGK", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "ReverseDiff", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLStructures", "StaticArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tracker", "Zygote"] -git-tree-sha1 = "b099878e89bb8175aaba5d16aba703564b5bb2ed" +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ChainRulesCore", "ConstructionBase", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "Distributions", "Enzyme", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionProperties", "FunctionWrappersWrappers", "Functors", "GPUArraysCore", "LinearAlgebra", "LinearSolve", "Markdown", "OrdinaryDiffEqCore", "PreallocationTools", "QuadGK", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "ReverseDiff", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLStructures", "SparseArrays", "StaticArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tracker", "Zygote"] +git-tree-sha1 = "d8861efbd815a4d461f547d9010d5ef920de5f9e" uuid = "1ed8b502-d754-442c-8d5d-10ac956f44a1" -version = "7.94.0" -weakdeps = ["Mooncake"] +version = "7.98.1" [deps.SciMLSensitivity.extensions] SciMLSensitivityMooncakeExt = "Mooncake" + SciMLSensitivityReactantExt = "Reactant" + + [deps.SciMLSensitivity.weakdeps] + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" [[deps.SciMLStructures]] deps = ["ArrayInterface", "PrecompileTools"] @@ -3242,10 +3256,10 @@ uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" version = "1.8.0" [[deps.StatsBase]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" +deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "aceda6f4e598d331548e04cc6b2124a6148138e3" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.21" +version = "0.34.10" [[deps.StatsFuns]] deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] From b9514f21f02b5b475930eee0ac40c754d205fa15 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 03:28:32 +0000 Subject: [PATCH 04/26] remove SciMLSensitivity --- Manifest.toml | 201 ++---------------- Project.toml | 1 - .../bayesian-differential-equations/index.qmd | 6 +- 3 files changed, 26 insertions(+), 182 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index b5bbe8265..cc21b558d 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.11.9" manifest_format = "2.0" -project_hash = "cb981272be13a9b492f5c49b7ce271bc1a8d742f" +project_hash = "ecfbd6c449ae86a85efb17b127b15ea1233568c3" [[deps.ADTypes]] git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" @@ -143,7 +143,6 @@ deps = ["ADTypes", "Accessors", "ChainRulesCore", "DiffResults", "Differentiatio git-tree-sha1 = "d69d7d9e1756fff9dd5d3fd26add46ee5ac62be4" uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" version = "0.6.2" -weakdeps = ["Bijectors", "Enzyme", "Mooncake", "ReverseDiff"] [deps.AdvancedVI.extensions] AdvancedVIBijectorsExt = ["Bijectors", "Optimisers"] @@ -151,6 +150,12 @@ weakdeps = ["Bijectors", "Enzyme", "Mooncake", "ReverseDiff"] AdvancedVIMooncakeExt = ["Mooncake", "ChainRulesCore"] AdvancedVIReverseDiffExt = ["ReverseDiff", "ChainRulesCore"] + [deps.AdvancedVI.weakdeps] + Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + [[deps.AliasTables]] deps = ["PtrArrays", "Random"] git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" @@ -356,11 +361,6 @@ git-tree-sha1 = "a21c5464519504e41e0cbc91f0188e8ca23d7440" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.18.5+1" -[[deps.Cassette]] -git-tree-sha1 = "f8764df8d9d2aec2812f009a1ac39e46c33354b8" -uuid = "7057c7e9-c182-5462-911a-8362d720325c" -version = "0.3.14" - [[deps.CategoricalArrays]] deps = ["Compat", "DataAPI", "Future", "Missings", "Printf", "Requires", "Statistics", "Unicode"] git-tree-sha1 = "73acb4ed51b1855e1b5ce5c610334363a98d13f1" @@ -657,27 +657,6 @@ version = "6.210.1" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" -[[deps.DiffEqCallbacks]] -deps = ["ConcreteStructs", "DataStructures", "DiffEqBase", "DifferentiationInterface", "LinearAlgebra", "Markdown", "PrecompileTools", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "f17b863c2d5d496363fe36c8d8535cc6a33c9952" -uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "4.12.0" -weakdeps = ["Functors"] - - [deps.DiffEqCallbacks.extensions] - DiffEqCallbacksFunctorsExt = "Functors" - -[[deps.DiffEqNoiseProcess]] -deps = ["CommonSolve", "DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "PoissonRandom", "QuadGK", "Random", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "b879ca516034469f28becdf01f85f56b45f518b9" -uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.27.0" -weakdeps = ["Optim", "ReverseDiff"] - - [deps.DiffEqNoiseProcess.extensions] - DiffEqNoiseProcessOptimExt = "Optim" - DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" - [[deps.DiffResults]] deps = ["StaticArraysCore"] git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" @@ -829,29 +808,6 @@ git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.7" -[[deps.Enzyme]] -deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] -git-tree-sha1 = "ea65d3121f09b5f31102542db9445163b7c99182" -uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.13.129" - - [deps.Enzyme.extensions] - EnzymeBFloat16sExt = "BFloat16s" - EnzymeChainRulesCoreExt = "ChainRulesCore" - EnzymeGPUArraysCoreExt = "GPUArraysCore" - EnzymeLogExpFunctionsExt = "LogExpFunctions" - EnzymeSpecialFunctionsExt = "SpecialFunctions" - EnzymeStaticArraysExt = "StaticArrays" - - [deps.Enzyme.weakdeps] - ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" - BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" - LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" - SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.EnzymeCore]] git-tree-sha1 = "990991b8aa76d17693a98e3a915ac7aa49f08d1a" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" @@ -862,12 +818,6 @@ weakdeps = ["Adapt", "ChainRulesCore"] AdaptExt = "Adapt" EnzymeCoreChainRulesCoreExt = "ChainRulesCore" -[[deps.Enzyme_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "fea21cfc452db42e3878aab62a76896e76d54d12" -uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" -version = "0.0.249+0" - [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8a4be429317c42cfae6a7fc03c31bad1970c310d" @@ -1076,12 +1026,6 @@ git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.17+0" -[[deps.FunctionProperties]] -deps = ["Cassette", "DiffRules"] -git-tree-sha1 = "bf7c740307eb0ee80e05d8aafbd0c5a901578398" -uuid = "f62d2435-5019-4c03-9749-2d4c77af0cbc" -version = "0.1.2" - [[deps.FunctionWrappers]] git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" @@ -1122,12 +1066,6 @@ git-tree-sha1 = "83cf05ab16a73219e5f6bd1bdfa9848fa24ac627" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.2.0" -[[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "PrecompileTools", "Preferences", "Scratch", "Serialization", "TOML", "Tracy", "UUIDs"] -git-tree-sha1 = "966946d226e8b676ca6409454718accb18c34c54" -uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "1.8.2" - [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] git-tree-sha1 = "44716a1a667cb867ee0e9ec8edc31c3e4aa5afdc" @@ -1224,12 +1162,6 @@ git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.28" -[[deps.IRTools]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "57e9ce6cf68d0abf5cb6b3b4abf9bedf05c939c0" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.15" - [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" @@ -1413,24 +1345,6 @@ git-tree-sha1 = "aaafe88dccbd957a8d82f7d05be9b69172e0cee3" uuid = "88015f11-f218-50d7-93a8-a6af411a945d" version = "4.0.1+0" -[[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] -git-tree-sha1 = "69e4739502b7ab5176117e97e1664ed181c35036" -uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "9.4.6" - - [deps.LLVM.extensions] - BFloat16sExt = "BFloat16s" - - [deps.LLVM.weakdeps] - BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" - -[[deps.LLVMExtra_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "8e76807afb59ebb833e9b131ebf1a8c006510f33" -uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.38+0" - [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8" @@ -1514,12 +1428,6 @@ deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.11.0+1" -[[deps.LibTracyClient_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "d4e20500d210247322901841d4eafc7a0c52642d" -uuid = "ad6e5548-8b26-5c9f-8ef3-ef0ad883f3a5" -version = "0.13.1+0" - [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" version = "1.11.0" @@ -2207,12 +2115,6 @@ weakdeps = ["ForwardDiff"] [deps.NonlinearSolveSpectralMethods.extensions] NonlinearSolveSpectralMethodsForwardDiffExt = "ForwardDiff" -[[deps.ObjectFile]] -deps = ["Reexport", "StructIO"] -git-tree-sha1 = "22faba70c22d2f03e60fbc61da99c4ebfc3eb9ba" -uuid = "d8793406-e978-5875-9003-1fc021f44a92" -version = "0.5.0" - [[deps.Observables]] git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" uuid = "510215fc-4207-5dde-b226-833fc4488ee2" @@ -2619,12 +2521,6 @@ version = "1.41.6" ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" -[[deps.PoissonRandom]] -deps = ["LogExpFunctions", "Random"] -git-tree-sha1 = "67afbcbe9e184d6729a92a022147ed4cf972ca7b" -uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" -version = "0.4.7" - [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] git-tree-sha1 = "16bbc30b5ebea91e9ce1671adc03de2832cff552" @@ -2753,11 +2649,13 @@ deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "9da16da70037ba9d701192e27befedefb91ec284" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.11.2" -weakdeps = ["Enzyme"] [deps.QuadGK.extensions] QuadGKEnzymeExt = "Enzyme" + [deps.QuadGK.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + [[deps.RData]] deps = ["CategoricalArrays", "CodecZlib", "DataAPI", "DataFrames", "Dates", "FileIO", "Requires", "TimeZones", "Unicode"] git-tree-sha1 = "7d71a86313a7e2c6e4e21836c51c846a061e3735" @@ -2882,12 +2780,6 @@ git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.1" -[[deps.ResettableStacks]] -deps = ["StaticArrays"] -git-tree-sha1 = "31c086583c92ab32d82ebef0d09fbcd6dd2c54a7" -uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" -version = "1.2.0" - [[deps.ReverseDiff]] deps = ["ChainRulesCore", "DiffResults", "DiffRules", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "Random", "SpecialFunctions", "StaticArrays", "Statistics"] git-tree-sha1 = "f1b07322a8cdc0d46812473b37fb72f69ec07b22" @@ -3005,11 +2897,13 @@ deps = ["Logging", "LoggingExtras", "Preferences"] git-tree-sha1 = "0161be062570af4042cf6f69e3d5d0b0555b6927" uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" version = "1.9.1" -weakdeps = ["Tracy"] [deps.SciMLLogging.extensions] SciMLLoggingTracyExt = "Tracy" + [deps.SciMLLogging.weakdeps] + Tracy = "e689c965-62c8-4b79-b2c5-8359227902fd" + [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] git-tree-sha1 = "794c760e6aafe9f40dcd7dd30526ea33f0adc8b7" @@ -3026,20 +2920,6 @@ git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" version = "1.0.1" -[[deps.SciMLSensitivity]] -deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ChainRulesCore", "ConstructionBase", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "Distributions", "Enzyme", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionProperties", "FunctionWrappersWrappers", "Functors", "GPUArraysCore", "LinearAlgebra", "LinearSolve", "Markdown", "OrdinaryDiffEqCore", "PreallocationTools", "QuadGK", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "ReverseDiff", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLStructures", "SparseArrays", "StaticArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tracker", "Zygote"] -git-tree-sha1 = "d8861efbd815a4d461f547d9010d5ef920de5f9e" -uuid = "1ed8b502-d754-442c-8d5d-10ac956f44a1" -version = "7.98.1" - - [deps.SciMLSensitivity.extensions] - SciMLSensitivityMooncakeExt = "Mooncake" - SciMLSensitivityReactantExt = "Reactant" - - [deps.SciMLSensitivity.weakdeps] - Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" - Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" - [[deps.SciMLStructures]] deps = ["ArrayInterface", "PrecompileTools"] git-tree-sha1 = "607f6867d0b0553e98fc7f725c9f9f13b4d01a32" @@ -3111,13 +2991,17 @@ deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", git-tree-sha1 = "744c3f0fb186ad28376199c1e72ca39d0c614b5d" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" version = "2.11.0" -weakdeps = ["ChainRulesCore", "ReverseDiff", "Tracker"] [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" SimpleNonlinearSolveTrackerExt = "Tracker" + [deps.SimpleNonlinearSolve.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "be8eeac05ec97d379347584fa9fe2f5f76795bcb" @@ -3346,11 +3230,6 @@ weakdeps = ["Adapt", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Sp StructArraysSparseArraysExt = "SparseArrays" StructArraysStaticArraysExt = "StaticArrays" -[[deps.StructIO]] -git-tree-sha1 = "c581be48ae1cbf83e899b14c07a807e1787512cc" -uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" -version = "0.3.1" - [[deps.StructUtils]] deps = ["Dates", "UUIDs"] git-tree-sha1 = "28145feabf717c5d65c1d5e09747ee7b1ff3ed13" @@ -3473,28 +3352,6 @@ version = "0.5.29" [deps.TimerOutputs.weakdeps] FlameGraphs = "08572546-2f56-4bcf-ba4e-bab62c3a3f89" -[[deps.Tracker]] -deps = ["Adapt", "ChainRulesCore", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "83697ba2237663355de8fb0a800144cda44848a0" -uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -version = "0.2.38" -weakdeps = ["PDMats"] - - [deps.Tracker.extensions] - TrackerPDMatsExt = "PDMats" - -[[deps.Tracy]] -deps = ["ExprTools", "LibTracyClient_jll", "Libdl"] -git-tree-sha1 = "73e3ff50fd3990874c59fef0f35d10644a1487bc" -uuid = "e689c965-62c8-4b79-b2c5-8359227902fd" -version = "0.1.6" - - [deps.Tracy.extensions] - TracyProfilerExt = "TracyProfiler_jll" - - [deps.Tracy.weakdeps] - TracyProfiler_jll = "0c351ed6-8a68-550e-8b79-de6f926da83c" - [[deps.TranscodingStreams]] git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" @@ -3573,11 +3430,13 @@ version = "0.4.1" git-tree-sha1 = "b13c4edda90890e5b04ba24e20a310fbe6f249ff" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" version = "0.3.0" -weakdeps = ["LLVM"] [deps.UnsafeAtomics.extensions] UnsafeAtomicsLLVM = ["LLVM"] + [deps.UnsafeAtomics.weakdeps] + LLVM = "929cbde3-209d-540e-8aea-75f648917ca0" + [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" @@ -3793,24 +3652,6 @@ git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.7+1" -[[deps.Zygote]] -deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "a29cbf3968d36022198bcc6f23fdfd70f7caf737" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.7.10" - - [deps.Zygote.extensions] - ZygoteAtomExt = "Atom" - ZygoteColorsExt = "Colors" - ZygoteDistancesExt = "Distances" - ZygoteTrackerExt = "Tracker" - - [deps.Zygote.weakdeps] - Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" - Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" - Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - [[deps.ZygoteRules]] deps = ["ChainRulesCore", "MacroTools"] git-tree-sha1 = "434b3de333c75fc446aa0d19fc394edafd07ab08" diff --git a/Project.toml b/Project.toml index cf4773edf..caa0e2351 100644 --- a/Project.toml +++ b/Project.toml @@ -42,7 +42,6 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" RDatasets = "ce6b1742-4840-55fa-b093-852dadbb1d8b" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" -SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" diff --git a/tutorials/bayesian-differential-equations/index.qmd b/tutorials/bayesian-differential-equations/index.qmd index ab2e5ed0c..3401d5cb3 100755 --- a/tutorials/bayesian-differential-equations/index.qmd +++ b/tutorials/bayesian-differential-equations/index.qmd @@ -344,7 +344,11 @@ More details on the mathematical theory that underpins these methods can be foun Once SciMLSensitivity has been loaded, you can use one of the AD backends which are compatible with SciMLSensitivity.jl. For example, if we wanted to use [Mooncake.jl](https://chalk-lab.github.io/Mooncake.jl/stable/), we could run: -```{julia} +:::{.callout-warning} +The following code block is not run in the built docs, since it takes a long time. +::: + +```julia import Mooncake import SciMLSensitivity From 98100e28add29dc70db1a2b6eb1fac75b618623b Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 09:40:13 +0000 Subject: [PATCH 05/26] Revert "remove SciMLSensitivity" This reverts commit 4aa5135a93b5898dd5aab52ca17e0a4457de7d52. --- Manifest.toml | 201 ++++++++++++++++-- Project.toml | 1 + .../bayesian-differential-equations/index.qmd | 6 +- 3 files changed, 182 insertions(+), 26 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index cc21b558d..b5bbe8265 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.11.9" manifest_format = "2.0" -project_hash = "ecfbd6c449ae86a85efb17b127b15ea1233568c3" +project_hash = "cb981272be13a9b492f5c49b7ce271bc1a8d742f" [[deps.ADTypes]] git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" @@ -143,6 +143,7 @@ deps = ["ADTypes", "Accessors", "ChainRulesCore", "DiffResults", "Differentiatio git-tree-sha1 = "d69d7d9e1756fff9dd5d3fd26add46ee5ac62be4" uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" version = "0.6.2" +weakdeps = ["Bijectors", "Enzyme", "Mooncake", "ReverseDiff"] [deps.AdvancedVI.extensions] AdvancedVIBijectorsExt = ["Bijectors", "Optimisers"] @@ -150,12 +151,6 @@ version = "0.6.2" AdvancedVIMooncakeExt = ["Mooncake", "ChainRulesCore"] AdvancedVIReverseDiffExt = ["ReverseDiff", "ChainRulesCore"] - [deps.AdvancedVI.weakdeps] - Bijectors = "76274a88-744f-5084-9051-94815aaf08c4" - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - [[deps.AliasTables]] deps = ["PtrArrays", "Random"] git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" @@ -361,6 +356,11 @@ git-tree-sha1 = "a21c5464519504e41e0cbc91f0188e8ca23d7440" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.18.5+1" +[[deps.Cassette]] +git-tree-sha1 = "f8764df8d9d2aec2812f009a1ac39e46c33354b8" +uuid = "7057c7e9-c182-5462-911a-8362d720325c" +version = "0.3.14" + [[deps.CategoricalArrays]] deps = ["Compat", "DataAPI", "Future", "Missings", "Printf", "Requires", "Statistics", "Unicode"] git-tree-sha1 = "73acb4ed51b1855e1b5ce5c610334363a98d13f1" @@ -657,6 +657,27 @@ version = "6.210.1" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" +[[deps.DiffEqCallbacks]] +deps = ["ConcreteStructs", "DataStructures", "DiffEqBase", "DifferentiationInterface", "LinearAlgebra", "Markdown", "PrecompileTools", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] +git-tree-sha1 = "f17b863c2d5d496363fe36c8d8535cc6a33c9952" +uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" +version = "4.12.0" +weakdeps = ["Functors"] + + [deps.DiffEqCallbacks.extensions] + DiffEqCallbacksFunctorsExt = "Functors" + +[[deps.DiffEqNoiseProcess]] +deps = ["CommonSolve", "DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "PoissonRandom", "QuadGK", "Random", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "b879ca516034469f28becdf01f85f56b45f518b9" +uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" +version = "5.27.0" +weakdeps = ["Optim", "ReverseDiff"] + + [deps.DiffEqNoiseProcess.extensions] + DiffEqNoiseProcessOptimExt = "Optim" + DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" + [[deps.DiffResults]] deps = ["StaticArraysCore"] git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" @@ -808,6 +829,29 @@ git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.7" +[[deps.Enzyme]] +deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] +git-tree-sha1 = "ea65d3121f09b5f31102542db9445163b7c99182" +uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" +version = "0.13.129" + + [deps.Enzyme.extensions] + EnzymeBFloat16sExt = "BFloat16s" + EnzymeChainRulesCoreExt = "ChainRulesCore" + EnzymeGPUArraysCoreExt = "GPUArraysCore" + EnzymeLogExpFunctionsExt = "LogExpFunctions" + EnzymeSpecialFunctionsExt = "SpecialFunctions" + EnzymeStaticArraysExt = "StaticArrays" + + [deps.Enzyme.weakdeps] + ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + [[deps.EnzymeCore]] git-tree-sha1 = "990991b8aa76d17693a98e3a915ac7aa49f08d1a" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" @@ -818,6 +862,12 @@ weakdeps = ["Adapt", "ChainRulesCore"] AdaptExt = "Adapt" EnzymeCoreChainRulesCoreExt = "ChainRulesCore" +[[deps.Enzyme_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "fea21cfc452db42e3878aab62a76896e76d54d12" +uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" +version = "0.0.249+0" + [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8a4be429317c42cfae6a7fc03c31bad1970c310d" @@ -1026,6 +1076,12 @@ git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.17+0" +[[deps.FunctionProperties]] +deps = ["Cassette", "DiffRules"] +git-tree-sha1 = "bf7c740307eb0ee80e05d8aafbd0c5a901578398" +uuid = "f62d2435-5019-4c03-9749-2d4c77af0cbc" +version = "0.1.2" + [[deps.FunctionWrappers]] git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" @@ -1066,6 +1122,12 @@ git-tree-sha1 = "83cf05ab16a73219e5f6bd1bdfa9848fa24ac627" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" version = "0.2.0" +[[deps.GPUCompiler]] +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "PrecompileTools", "Preferences", "Scratch", "Serialization", "TOML", "Tracy", "UUIDs"] +git-tree-sha1 = "966946d226e8b676ca6409454718accb18c34c54" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +version = "1.8.2" + [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] git-tree-sha1 = "44716a1a667cb867ee0e9ec8edc31c3e4aa5afdc" @@ -1162,6 +1224,12 @@ git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.28" +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "57e9ce6cf68d0abf5cb6b3b4abf9bedf05c939c0" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.15" + [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" @@ -1345,6 +1413,24 @@ git-tree-sha1 = "aaafe88dccbd957a8d82f7d05be9b69172e0cee3" uuid = "88015f11-f218-50d7-93a8-a6af411a945d" version = "4.0.1+0" +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] +git-tree-sha1 = "69e4739502b7ab5176117e97e1664ed181c35036" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "9.4.6" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "8e76807afb59ebb833e9b131ebf1a8c006510f33" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.38+0" + [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8" @@ -1428,6 +1514,12 @@ deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.11.0+1" +[[deps.LibTracyClient_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d4e20500d210247322901841d4eafc7a0c52642d" +uuid = "ad6e5548-8b26-5c9f-8ef3-ef0ad883f3a5" +version = "0.13.1+0" + [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" version = "1.11.0" @@ -2115,6 +2207,12 @@ weakdeps = ["ForwardDiff"] [deps.NonlinearSolveSpectralMethods.extensions] NonlinearSolveSpectralMethodsForwardDiffExt = "ForwardDiff" +[[deps.ObjectFile]] +deps = ["Reexport", "StructIO"] +git-tree-sha1 = "22faba70c22d2f03e60fbc61da99c4ebfc3eb9ba" +uuid = "d8793406-e978-5875-9003-1fc021f44a92" +version = "0.5.0" + [[deps.Observables]] git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" uuid = "510215fc-4207-5dde-b226-833fc4488ee2" @@ -2521,6 +2619,12 @@ version = "1.41.6" ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" +[[deps.PoissonRandom]] +deps = ["LogExpFunctions", "Random"] +git-tree-sha1 = "67afbcbe9e184d6729a92a022147ed4cf972ca7b" +uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" +version = "0.4.7" + [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] git-tree-sha1 = "16bbc30b5ebea91e9ce1671adc03de2832cff552" @@ -2649,13 +2753,11 @@ deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "9da16da70037ba9d701192e27befedefb91ec284" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.11.2" +weakdeps = ["Enzyme"] [deps.QuadGK.extensions] QuadGKEnzymeExt = "Enzyme" - [deps.QuadGK.weakdeps] - Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - [[deps.RData]] deps = ["CategoricalArrays", "CodecZlib", "DataAPI", "DataFrames", "Dates", "FileIO", "Requires", "TimeZones", "Unicode"] git-tree-sha1 = "7d71a86313a7e2c6e4e21836c51c846a061e3735" @@ -2780,6 +2882,12 @@ git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.1" +[[deps.ResettableStacks]] +deps = ["StaticArrays"] +git-tree-sha1 = "31c086583c92ab32d82ebef0d09fbcd6dd2c54a7" +uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" +version = "1.2.0" + [[deps.ReverseDiff]] deps = ["ChainRulesCore", "DiffResults", "DiffRules", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "Random", "SpecialFunctions", "StaticArrays", "Statistics"] git-tree-sha1 = "f1b07322a8cdc0d46812473b37fb72f69ec07b22" @@ -2897,13 +3005,11 @@ deps = ["Logging", "LoggingExtras", "Preferences"] git-tree-sha1 = "0161be062570af4042cf6f69e3d5d0b0555b6927" uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" version = "1.9.1" +weakdeps = ["Tracy"] [deps.SciMLLogging.extensions] SciMLLoggingTracyExt = "Tracy" - [deps.SciMLLogging.weakdeps] - Tracy = "e689c965-62c8-4b79-b2c5-8359227902fd" - [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra"] git-tree-sha1 = "794c760e6aafe9f40dcd7dd30526ea33f0adc8b7" @@ -2920,6 +3026,20 @@ git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" version = "1.0.1" +[[deps.SciMLSensitivity]] +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ChainRulesCore", "ConstructionBase", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "Distributions", "Enzyme", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionProperties", "FunctionWrappersWrappers", "Functors", "GPUArraysCore", "LinearAlgebra", "LinearSolve", "Markdown", "OrdinaryDiffEqCore", "PreallocationTools", "QuadGK", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "ReverseDiff", "SciMLBase", "SciMLJacobianOperators", "SciMLLogging", "SciMLStructures", "SparseArrays", "StaticArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tracker", "Zygote"] +git-tree-sha1 = "d8861efbd815a4d461f547d9010d5ef920de5f9e" +uuid = "1ed8b502-d754-442c-8d5d-10ac956f44a1" +version = "7.98.1" + + [deps.SciMLSensitivity.extensions] + SciMLSensitivityMooncakeExt = "Mooncake" + SciMLSensitivityReactantExt = "Reactant" + + [deps.SciMLSensitivity.weakdeps] + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" + [[deps.SciMLStructures]] deps = ["ArrayInterface", "PrecompileTools"] git-tree-sha1 = "607f6867d0b0553e98fc7f725c9f9f13b4d01a32" @@ -2991,17 +3111,13 @@ deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", git-tree-sha1 = "744c3f0fb186ad28376199c1e72ca39d0c614b5d" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" version = "2.11.0" +weakdeps = ["ChainRulesCore", "ReverseDiff", "Tracker"] [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" SimpleNonlinearSolveTrackerExt = "Tracker" - [deps.SimpleNonlinearSolve.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "be8eeac05ec97d379347584fa9fe2f5f76795bcb" @@ -3230,6 +3346,11 @@ weakdeps = ["Adapt", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Sp StructArraysSparseArraysExt = "SparseArrays" StructArraysStaticArraysExt = "StaticArrays" +[[deps.StructIO]] +git-tree-sha1 = "c581be48ae1cbf83e899b14c07a807e1787512cc" +uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" +version = "0.3.1" + [[deps.StructUtils]] deps = ["Dates", "UUIDs"] git-tree-sha1 = "28145feabf717c5d65c1d5e09747ee7b1ff3ed13" @@ -3352,6 +3473,28 @@ version = "0.5.29" [deps.TimerOutputs.weakdeps] FlameGraphs = "08572546-2f56-4bcf-ba4e-bab62c3a3f89" +[[deps.Tracker]] +deps = ["Adapt", "ChainRulesCore", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "83697ba2237663355de8fb0a800144cda44848a0" +uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" +version = "0.2.38" +weakdeps = ["PDMats"] + + [deps.Tracker.extensions] + TrackerPDMatsExt = "PDMats" + +[[deps.Tracy]] +deps = ["ExprTools", "LibTracyClient_jll", "Libdl"] +git-tree-sha1 = "73e3ff50fd3990874c59fef0f35d10644a1487bc" +uuid = "e689c965-62c8-4b79-b2c5-8359227902fd" +version = "0.1.6" + + [deps.Tracy.extensions] + TracyProfilerExt = "TracyProfiler_jll" + + [deps.Tracy.weakdeps] + TracyProfiler_jll = "0c351ed6-8a68-550e-8b79-de6f926da83c" + [[deps.TranscodingStreams]] git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" @@ -3430,13 +3573,11 @@ version = "0.4.1" git-tree-sha1 = "b13c4edda90890e5b04ba24e20a310fbe6f249ff" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" version = "0.3.0" +weakdeps = ["LLVM"] [deps.UnsafeAtomics.extensions] UnsafeAtomicsLLVM = ["LLVM"] - [deps.UnsafeAtomics.weakdeps] - LLVM = "929cbde3-209d-540e-8aea-75f648917ca0" - [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" @@ -3652,6 +3793,24 @@ git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.7+1" +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "a29cbf3968d36022198bcc6f23fdfd70f7caf737" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.7.10" + + [deps.Zygote.extensions] + ZygoteAtomExt = "Atom" + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + [[deps.ZygoteRules]] deps = ["ChainRulesCore", "MacroTools"] git-tree-sha1 = "434b3de333c75fc446aa0d19fc394edafd07ab08" diff --git a/Project.toml b/Project.toml index caa0e2351..cf4773edf 100644 --- a/Project.toml +++ b/Project.toml @@ -42,6 +42,7 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" RDatasets = "ce6b1742-4840-55fa-b093-852dadbb1d8b" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" +SciMLSensitivity = "1ed8b502-d754-442c-8d5d-10ac956f44a1" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" diff --git a/tutorials/bayesian-differential-equations/index.qmd b/tutorials/bayesian-differential-equations/index.qmd index 3401d5cb3..ab2e5ed0c 100755 --- a/tutorials/bayesian-differential-equations/index.qmd +++ b/tutorials/bayesian-differential-equations/index.qmd @@ -344,11 +344,7 @@ More details on the mathematical theory that underpins these methods can be foun Once SciMLSensitivity has been loaded, you can use one of the AD backends which are compatible with SciMLSensitivity.jl. For example, if we wanted to use [Mooncake.jl](https://chalk-lab.github.io/Mooncake.jl/stable/), we could run: -:::{.callout-warning} -The following code block is not run in the built docs, since it takes a long time. -::: - -```julia +```{julia} import Mooncake import SciMLSensitivity From af02c6c978841599cff6848f6bad3648dcfa35dd Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 16:05:53 +0000 Subject: [PATCH 06/26] Update optim page --- _quarto.yml | 1 - usage/mode-estimation/index.qmd | 159 ++++++++++++++++++++++++-------- 2 files changed, 123 insertions(+), 37 deletions(-) mode change 100755 => 100644 usage/mode-estimation/index.qmd diff --git a/_quarto.yml b/_quarto.yml index 8cf205ba4..5d314f39a 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -180,7 +180,6 @@ execute: echo: true output: true freeze: auto - error: true # These variables can be used in any qmd files, e.g. for links: # the [Getting Started page]({{< meta get-started >}}) diff --git a/usage/mode-estimation/index.qmd b/usage/mode-estimation/index.qmd old mode 100755 new mode 100644 index cbc64530a..5356125a7 --- a/usage/mode-estimation/index.qmd +++ b/usage/mode-estimation/index.qmd @@ -12,9 +12,12 @@ using Pkg; Pkg.instantiate(); ``` -After defining a statistical model, in addition to sampling from its distributions, one may be interested in finding the parameter values that maximise for instance the posterior distribution density function or the likelihood. This is called mode estimation. Turing provides support for two mode estimation techniques, [maximum likelihood estimation](https://en.wikipedia.org/wiki/Maximum_likelihood_estimation) (MLE) and [maximum a posteriori](https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation) (MAP) estimation. +After defining a statistical model, in addition to sampling from its distributions, one may be interested in finding the parameter values that maximise (for instance) the posterior density, or the likelihood. +This is called mode estimation. -To demonstrate mode estimation, let us load Turing and declare a model: +Turing provides support for two mode estimation techniques, [maximum likelihood estimation](https://en.wikipedia.org/wiki/Maximum_likelihood_estimation) (MLE) and [maximum a posteriori](https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation) (MAP) estimation. + +We begin by defining a simple model to work with: ```{julia} using Turing @@ -32,90 +35,164 @@ Once the model is defined, we can construct a model instance as we normally woul model = normal_model(2.0) ``` -Finding the maximum a posteriori or maximum likelihood parameters is as simple as +In its simplest form, finding the maximum a posteriori or maximum likelihood parameters is just a function call: ```{julia} # Generate a MLE estimate. mle_estimate = maximum_likelihood(model) +``` +```{julia} # Generate a MAP estimate. map_estimate = maximum_a_posteriori(model) ``` The estimates are returned as instances of the `ModeResult` type. -It has the fields `params` (which stores a mapping of `VarName`s to the parameter values found) and `lp` for the log probability at the optimum. -For mode information, please see the docstring of `ModeResult`. +It has the fields `params` (a `VarNamedTuple` mapping `VarName`s to the parameter values found) and `lp` for the log probability at the optimum. +For more information, please see the docstring of `ModeResult`. + +You can access individual parameter values by indexing into the `params` field with `VarName`s: + +```{julia} +map_estimate.params[@varname(x)] +``` + +If you need a vectorised form of the parameters, you can use `vector_names_and_params`, which return a tuple of two vectors: one of `VarName`s and one of the corresponding parameter values. +(Note that these values are *always* returned in untransformed space.) + +```{julia} +vector_names_and_params(map_estimate) +``` + +The `optim_result` field (which is not printed by default) contains the original result from the underlying optimisation solver, which is useful for diagnosing convergence issues and accessing solver-specific information: ```{julia} -@show mle_estimate.params -@show mle_estimate.lp; +map_estimate.optim_result ``` ## Controlling the optimisation process -Under the hood `maximum_likelihood` and `maximum_a_posteriori` use the [Optimisation.jl](https://github.com/SciML/Optimisation.jl) package, which provides a unified interface to many other optimisation packages. -By default Turing uses the [LBFGS](https://en.wikipedia.org/wiki/Limited-memory_BFGS) method from [Optim.jl](https://github.com/JuliaNLSolvers/Optim.jl) to find the mode estimate, but we can easily change that: +### Solvers + +Under the hood, `maximum_likelihood` and `maximum_a_posteriori` use the [Optimization.jl](https://github.com/SciML/Optimization.jl) package, which provides a unified interface to many other optimisation packages. +By default Turing uses the [LBFGS](https://en.wikipedia.org/wiki/Limited-memory_BFGS) method from [Optim.jl](https://docs.sciml.ai/Optimization/stable/optimization_packages/optim/) to find the mode estimate, but we can change that to any other solver by passing it as the second argument: ```{julia} using OptimizationOptimJL: NelderMead -@show maximum_likelihood(model, NelderMead()) -using OptimizationNLopt: NLopt.LD_TNEWTON_PRECOND_RESTART -@show maximum_likelihood(model, LD_TNEWTON_PRECOND_RESTART()); +maximum_likelihood(model, NelderMead()) ``` -The above are just two examples, Optimisation.jl supports [many more](https://docs.sciml.ai/Optimisation/stable/). +Optimization.jl supports [many more solvers](https://docs.sciml.ai/Optimization/stable/); please see its documentation for details. + +### Initial parameters -We can also help the optimisation by giving it a starting point we know is close to the final solution (`initial_params`), or by specifying an automatic differentiation method (`adtype`). +We can help the optimisation by giving it a starting point we know is close to the final solution. +Initial parameters are specified using `InitFromParams`, and must be provided in model space (i.e. untransformed): + +```{julia} +params = VarNamedTuple(; x=0.5) +maximum_likelihood(model; initial_params=InitFromParams(params)) +``` + +The default initialisation strategy is `InitFromPrior()`, which draws initial values from the prior. + +### AD backend + +You can also specify an automatic differentiation method using the `adtype` keyword argument: ```{julia} -using OptimizationOptimJL: LBFGS import Mooncake -maximum_likelihood(model, LBFGS(); initial_params=[0.1], adtype=AutoMooncake()) +maximum_likelihood(model; adtype=AutoMooncake()) ``` -When providing values to arguments like `initial_params` the parameters are typically specified in the order in which they appear in the code of the model, so in this case first `s²` then `m`. More precisely it's the order returned by `Turing.Inference.getparams(model, DynamicPPL.VarInfo(model))`. +### Linked vs unlinked optimisation -::: {.callout-note} -## Upcoming changes to the optimisation API +By default, Turing transforms model parameters to an unconstrained space before optimising (`link=true`). +There are two reasons why one might want to do this: + + 1. This avoids discontinuities where the log-density drops to `-Inf` outside the support of a distribution. + 2. But more importantly, this avoids situations where the original sample contains values that depend on each other. + For example, in a `Dirichlet` distribution, the parameters must sum to 1. + That means that if we do not perform linking, these parameters cannot be varied completely independently, which can lead to numerical issues. + In contrast, when linking is performed, the parameters are transformed into a (shorter) vector of parameters that are completely unconstrained and independent. -In Turing v0.43, the `initial_params` argument for optimisation will be changed to be a `DynamicPPL.AbstractInitStrategy` as described in [the sampling options page]({{< meta usage-sampling-options >}}#specifying-initial-parameters)). +Note that the parameter values returned are always in the original (untransformed) space, regardless of the `link` setting. -Furthermore, constraints must be specified as (ideally) a [`VarNamedTuple`]({{< meta usage-varnamedtuple >}}). -All constraints specified will be interpreted as being in untransformed space. +::: {.callout-note} +## What does 'unconstrained' really mean? + +Note that the transformation to unconstrained space refers to the support of the *original* distribution prior to any optimisation constraints being applied. +For example, a parameter `x ~ Beta(2, 2)` will be transformed from the original space of `(0, 1)` to the unconstrained space of `(-Inf, Inf)` (via the logit transform). +However, it is possible that the optimisation still proceeds in a constrained space, if constraints on the parameter are specified via `lb` or `ub`. +For example, if we specify `lb=0.0` and `ub=0.2` for the same parameter, then the optimisation will proceed in the constrained space of `(-Inf, logit(0.2))`. ::: -We can also do constrained optimisation, by providing either intervals within which the parameters must stay, or constraint functions that they need to respect. -For instance, here's how one can find the MLE with the constraint that `x` must be between `0.0` and `0.2`: +If you want to optimise in the original parameter space instead, set `link=false`. ```{julia} -maximum_likelihood(model; lb=[0.0], ub=[0.2]) +maximum_a_posteriori(model; link=false) ``` -The arguments for lower (`lb`) and upper (`ub`) bounds follow the arguments of `Optimisation.OptimizationProblem`, as do other parameters for providing [constraints](https://docs.sciml.ai/Optimisation/stable/tutorials/constraints/), such as `cons`. -Any extraneous keyword arguments given to `maximum_likelihood` or `maximum_a_posteriori` are passed to `Optimisation.solve`. -Some often useful ones are `maxiters` for controlling the maximum number of iterations and `abstol` and `reltol` for the absolute and relative convergence tolerances: +This is usually only useful under very specific circumstances, namely when your model contains distributions for which the mapping from model space to unconstrained space is dependent on another parameter's value. + +### Box constraints + +You can provide lower and upper bounds on parameters using the `lb` and `ub` keywords respectively. +Bounds are specified as a `VarNamedTuple` and, just like initial values, must be provided in model space (i.e. untransformed): + +```{julia} +lb = VarNamedTuple(; x=0.0) +ub = VarNamedTuple(; x=0.2) +maximum_likelihood(model; lb=lb, ub=ub) +``` + +Turing will internally translate these bounds to unconstrained space if `link=true`; as a user you should not need to worry at all about the details of this transformation. + +In this case we only have one parameter, but if there are multiple parameters and you only want to constrain some of them, you can provide bounds for the parameters you want to constrain and omit the others. + +Note that for some distributions (e.g. `Dirichlet`, `LKJCholesky`), the mapping from model-space bounds to linked-space bounds is not well-defined. +In these cases, Turing will raise an error. +If you need constrained optimisation for such variables, either set `link=false` or use `LogDensityFunction` with Optimization.jl directly. + +::: {.callout-note} +## Generic constraints +Generic (non-box) constraints are not supported by Turing's optimisation interface. +For these, please use `LogDensityFunction` and Optimization.jl directly. +::: + +### Solver options + +Any extra keyword arguments are passed through to `Optimization.solve`. +Some commonly useful ones are `maxiters`, `abstol`, and `reltol`: ```{julia} +params = VarNamedTuple(; x=-4.0) badly_converged_mle = maximum_likelihood( - model, NelderMead(); maxiters=10, reltol=1e-9 + model, NelderMead(); initial_params=InitFromParams(params), maxiters=10, reltol=1e-9 ) ``` -We can check whether the optimisation converged using the `optim_result` field of the result: +### Reproducibility + +To get reproducible results, pass an `rng` as the first argument: ```{julia} -@show badly_converged_mle.optim_result; +using Random: Xoshiro +maximum_a_posteriori(Xoshiro(468), model) ``` -For more details, such as a full list of possible arguments, we encourage the reader to read the docstring of the function `Turing.Optimisation.estimate_mode`, which is what `maximum_likelihood` and `maximum_a_posteriori` call, and the documentation of [Optimisation.jl](https://docs.sciml.ai/Optimisation/stable/). +This controls the random number generator used for parameter initialisation; the actual optimisation process is deterministic. + +For more details and a full list of keyword arguments, see the docstring of `Turing.Optimisation.estimate_mode`. -## Analyzing your mode estimate +## Analysing your mode estimate -Turing extends several methods from `StatsBase` that can be used to analyse your mode estimation results. Methods implemented include `vcov`, `informationmatrix`, `coeftable`, `params`, and `coef`, among others. +Turing extends several methods from `StatsBase` that can be used to analyse your mode estimation results. +Methods implemented include `vcov`, `informationmatrix`, `coeftable`, `coef`, and `coefnames`. -For example, let's examine our ML estimate from above using `coeftable`: +For example, let's examine our MLE estimate from above using `coeftable`: ```{julia} using StatsBase: coeftable @@ -125,13 +202,23 @@ coeftable(mle_estimate) Standard errors are calculated from the Fisher information matrix (inverse Hessian of the log likelihood or log joint). Note that standard errors calculated in this way may not always be appropriate for MAP estimates, so please be cautious in interpreting them. +The Hessian is computed using automatic differentiation. +By default, `ForwardDiff` is used, but if you are feeling brave you can specify a different backend via the `adtype` keyword argument to `informationmatrix`. +(Note that AD backend support for second-order derivatives is more limited than for first-order derivatives, so not all backends will work here.) + +```{julia} +using StatsBase: informationmatrix +import ReverseDiff + +informationmatrix(mle_estimate; adtype=AutoReverseDiff()) +``` + ## Sampling with the MAP/MLE as initial states You can begin sampling your chain from an MLE/MAP estimate by wrapping it in `InitFromParams` and providing it to the `sample` function with the keyword `initial_params`. For example, here is how to sample from the full posterior using the MAP estimate as the starting point: ```{julia} -#| eval: false map_estimate = maximum_a_posteriori(model) chain = sample(model, NUTS(), 1_000; initial_params=InitFromParams(map_estimate)) ``` From 4f236795a84150f9ba1805af07219fb45545a908 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 16:24:25 +0000 Subject: [PATCH 07/26] Fix submodel-condition DPPL docs --- .../contexts/submodel-condition/index.qmd | 86 ++--- .../inference/abstractmcmc-turing/index.qmd | 329 ------------------ 2 files changed, 47 insertions(+), 368 deletions(-) delete mode 100755 developers/inference/abstractmcmc-turing/index.qmd diff --git a/developers/contexts/submodel-condition/index.qmd b/developers/contexts/submodel-condition/index.qmd index 20dbf1901..21b3b5112 100755 --- a/developers/contexts/submodel-condition/index.qmd +++ b/developers/contexts/submodel-condition/index.qmd @@ -44,16 +44,11 @@ The phrase 'becoming' a different variable is a little underspecified: it is use The method responsible for it is `tilde_assume(::PrefixContext, right, vn, vi)`: this attaches the prefix in the context to the `VarName` argument, before recursively calling `tilde_assume` with the new prefixed `VarName`. This means that even though a statement `x ~ dist` still enters the tilde pipeline at the top level as `x`, if the model evaluation context contains a `PrefixContext`, any function after `tilde_assume(::PrefixContext, ...)` will see `a.x` instead. -## ConditionContext +## CondFixContext -`ConditionContext` is a context which stores values of variables that are to be conditioned on. -These values may be stored as a `Dict` which maps `VarName`s to values, or alternatively as a `NamedTuple`. -The latter only works correctly if all `VarName`s are 'basic', in that they have an identity optic (i.e., something like `a.x` or `a[1]` is forbidden). -Because of this limitation, we will only use `Dict` in this example. - -::: {.callout-note} -If a `ConditionContext` with a `NamedTuple` encounters anything to do with a prefix, its internal `NamedTuple` is converted to a `Dict` anyway, so it is quite reasonable to ignore the `NamedTuple` case in this exposition. -::: +`CondFixContext` is a context which stores values of variables that are to be conditioned or fixed on. +It takes a single type parameter, which is either `DynamicPPL.Condition` or `DynamicPPL.Fix`, which indicates whether the context is for conditioning or fixing. +These values are internally stored as a `VarNamedTuple.` One can inspect the conditioning values with, for example: @@ -64,12 +59,15 @@ One can inspect the conditioning values with, for example: end cond_model = d() | (@varname(x) => 1.0) -cond_ctx = cond_model.context + +cond_values = conditioned(cond_model) ``` There are several internal functions that are used to determine whether a variable is conditioned, and if so, what its value is. ```{julia} +cond_ctx = cond_model.context + DynamicPPL.hasconditioned_nested(cond_ctx, @varname(x)) ``` @@ -88,15 +86,20 @@ Notice that (neglecting `missing` values) the return value of `contextual_isassu ::: If a variable `x` is conditioned on, then the effect of this is to set the value of `x` to the given value (while still including its contribution to the log probability density). -Since `x` is no longer a random variable, if we were to evaluate the model, we would find only one key in the `VarInfo`: +Since `x` is no longer a random variable, if we were to evaluate the model, we would find only one key: ```{julia} -keys(VarInfo(cond_model)) +rand(cond_model) ``` ## Joint behaviour: desiderata at the model level -When paired together, these two contexts have the potential to cause substantial confusion: `PrefixContext` modifies the variable names that are seen, which may cause them to be out of sync with the values contained inside the `ConditionContext`. +:::{.callout-note} +The same points apply to both conditioning and fixing, so we will discuss it generically in terms of `CondFixContext`. +The code examples will use conditioning to demonstrate this. +::: + +When paired together, these two contexts have the potential to cause substantial confusion: `PrefixContext` modifies the variable names that are seen, which may cause them to be out of sync with the values contained inside the `CondFixContext`. We begin by mentioning some high-level desiderata for their joint behaviour. Take these models, for example: @@ -127,9 +130,9 @@ with_inner_cond = outer2() We want that: - 1. `keys(VarInfo(outer()))` should return `[a.x, a.y]`; - 2. `keys(VarInfo(with_outer_cond))` should return `[a.y]`; - 3. `keys(VarInfo(with_inner_cond))` should return `[a.y]`, + 1. `keys(rand(outer()))` should return `[a.x, a.y]`; + 2. `keys(rand(with_outer_cond))` should return `[a.y]`; + 3. `keys(rand(with_inner_cond))` should return `[a.y]`, **In other words, we can condition submodels either from the outside (point (2)) or from the inside (point (3)), and the variable name we use to specify the conditioning should match the level at which we perform the conditioning.** @@ -153,9 +156,9 @@ We do not specify the implementation details here, but we will sketch out someth **Points (2) and (3)** are more tricky. As the reader may surmise, the difference between them is the order in which the contexts are stacked. -For the _outer_ conditioning case (point (2)), the `ConditionContext` will contain a `VarName` that is already prefixed. -When we enter the inner submodel, this `ConditionContext` has to be passed down and somehow combined with the `PrefixContext` that is created when we enter the submodel. -We make the claim here that the best way to do this is to nest the `PrefixContext` _inside_ the `ConditionContext`. +For the _outer_ conditioning case (point (2)), the `CondFixContext` will contain a `VarName` that is already prefixed. +When we enter the inner submodel, this `CondFixContext` has to be passed down and somehow combined with the `PrefixContext` that is created when we enter the submodel. +We make the claim here that the best way to do this is to nest the `PrefixContext` _inside_ the `CondFixContext`. This is indeed what happens, as can be demonstrated by running the model. ```{julia} @@ -163,8 +166,8 @@ with_outer_cond() ``` For the _inner_ conditioning case (point (3)), the outer model is not run with any special context. -The inner model will itself contain a `ConditionContext` will contain a `VarName` that is not prefixed. -When we run the model, this `ConditionContext` should be then nested _inside_ a `PrefixContext` to form the final evaluation context. +The inner model will itself contain a `CondFixContext` will contain a `VarName` that is not prefixed. +When we run the model, this `CondFixContext` should be then nested _inside_ a `PrefixContext` to form the final evaluation context. Again, we can run the model to see this in action: ```{julia} @@ -174,13 +177,17 @@ with_inner_cond() Putting all of the information so far together, what it means is that if we have these two inner contexts (taken from above): ```{julia} -using DynamicPPL: PrefixContext, ConditionContext, DefaultContext +using DynamicPPL: PrefixContext, DefaultContext, CondFixContext, Condition -inner_ctx_with_outer_cond = ConditionContext( - Dict(@varname(a.x) => 1.0), PrefixContext(@varname(a)) -) -inner_ctx_with_inner_cond = PrefixContext( - @varname(a), ConditionContext(Dict(@varname(x) => 1.0)) +outer_cond = @vnt begin + a.x := 1.0 +end +inner_ctx_with_outer_cond = CondFixContext{Condition}(outer_cond, PrefixContext(@varname(a))) + +inner_cond = @vnt begin + x := 1.0 +end +inner_ctx_with_inner_cond = PrefixContext(@varname(a), CondFixContext{Condition}(inner_cond) ) ``` @@ -207,7 +214,7 @@ This allows us to finally specify our task as follows: ## How do we do it? (1) `hasconditioned_nested` and `getconditioned_nested` accomplish this by first 'collapsing' the context stack, i.e. they go through the context stack, remove all `PrefixContext`s, and apply those prefixes to any conditioned variables below it in the stack. -Once the `PrefixContext`s have been removed, one can then iterate through the context stack and check if any of the `ConditionContext`s contain the variable, or get the value itself. +Once the `PrefixContext`s have been removed, one can then iterate through the context stack and check if any of the `CondFixContext`s contain the variable, or get the value itself. For more details the reader is encouraged to read the source code. (2a) We ensure that the context stack is correctly arranged by relying on the behaviour of `make_evaluate_args_and_kwargs`. @@ -221,7 +228,7 @@ This is done inside the `@model` macro, or technically, its subsidiary function ## Nested submodels -Just in case the above wasn't complicated enough, we need to also be very careful when dealing with nested submodels, which have multiple layers of `PrefixContext`s which may be interspersed with `ConditionContext`s. +Just in case the above wasn't complicated enough, we need to also be very careful when dealing with nested submodels, which have multiple layers of `PrefixContext`s which may be interspersed with `CondFixContext`s. For example, in this series of nested submodels, ```{julia} @@ -248,11 +255,18 @@ The general strategy that we adopt is similar to above. Following the principle that `PrefixContext` should be nested inside the outer context, but outside the inner submodel's context, we can infer that the correct context inside `charlie` should be: ```{julia} +vnt_by = @vnt begin + b.y := 1.0 +end +vnt_x = @vnt begin + x := 1.0 +end + big_ctx = PrefixContext( @varname(a), - ConditionContext( - Dict(@varname(b.y) => 1.0), - PrefixContext(@varname(b), ConditionContext(Dict(@varname(x) => 1.0))), + CondFixContext{Condition}( + vnt_by, + PrefixContext(@varname(b), CondFixContext{Condition}(vnt_x)), ), ) ``` @@ -303,7 +317,7 @@ When editing this code, it is worth being mindful of this as a potential source If you have encountered left and right folds, the above discussion illustrates the difference between them: the wrong implementation of `myprefix` uses a left fold (which collects prefixes in the opposite order from which they are encountered), while the correct implementation uses a right fold. ::: -## Loose ends 1: Manual prefixing +## Loose end: Manual prefixing Sometimes users may want to manually prefix a model, for example: @@ -337,9 +351,3 @@ prefixed_model = prefix(model, :a) (model.context, prefixed_model.context) ``` - -## Loose ends 2: FixedContext - -Finally, note that all of the above also applies to the interaction between `PrefixContext` and `FixedContext`, except that the functions have different names. -(`FixedContext` behaves the same way as `ConditionContext`, except that unlike conditioned variables, fixed variables do not contribute to the log probability density.) -This generally results in a large amount of code duplication, but the concepts that underlie both contexts are exactly the same. diff --git a/developers/inference/abstractmcmc-turing/index.qmd b/developers/inference/abstractmcmc-turing/index.qmd deleted file mode 100755 index 642b623b0..000000000 --- a/developers/inference/abstractmcmc-turing/index.qmd +++ /dev/null @@ -1,329 +0,0 @@ ---- -title: How Turing Implements AbstractMCMC -engine: julia -aliases: - - ../../tutorials/docs-04-for-developers-abstractmcmc-turing/index.html ---- - -```{julia} -#| echo: false -#| output: false -using Pkg; -Pkg.instantiate(); -``` - -Prerequisite: Interface guide. - -## Introduction - -Consider the following Turing, code block: - -```{julia} -using Turing - -@model function gdemo(x, y) - s² ~ InverseGamma(2, 3) - m ~ Normal(0, sqrt(s²)) - x ~ Normal(m, sqrt(s²)) - return y ~ Normal(m, sqrt(s²)) -end - -mod = gdemo(1.5, 2) -alg = IS() -n_samples = 1000 - -chn = sample(mod, alg, n_samples, progress=false) -``` - -The function `sample` is part of the AbstractMCMC interface. As explained in the interface guide, building a sampling method that can be used by `sample` consists of overloading the structs and functions in `AbstractMCMC`. The interface guide also gives a standalone example of their implementation, [`AdvancedMH.jl`](). - -Turing sampling methods (most of which are written [here](https://github.com/TuringLang/Turing.jl/tree/main/src/mcmc)) also implement `AbstractMCMC`. Turing defines a particular architecture for `AbstractMCMC` implementations, which enables working with models defined by the `@model` macro, and uses DynamicPPL as a backend. The goal of this page is to describe this architecture, and how you would go about implementing your own sampling method in Turing, using Importance Sampling as an example. I don't go into all the details: for instance, I don't address selectors or parallelism. - -First, we explain how Importance Sampling works in the abstract. Consider the model defined in the first code block. Mathematically, it can be written: - -$$ -\begin{align*} -s &\sim \text{InverseGamma}(2, 3), \\ -m &\sim \text{Normal}(0, \sqrt{s}), \\ -x &\sim \text{Normal}(m, \sqrt{s}), \\ -y &\sim \text{Normal}(m, \sqrt{s}). -\end{align*} -$$ - -The **latent** variables are $s$ and $m$, the **observed** variables are $x$ and $y$. The model **joint** distribution $p(s,m,x,y)$ decomposes into the **prior** $p(s,m)$ and the **likelihood** $p(x,y \mid s,m).$ Since $x = 1.5$ and $y = 2$ are observed, the goal is to infer the **posterior** distribution $p(s,m \mid x,y).$ - -Importance Sampling produces independent samples $(s_i, m_i)$ from the prior distribution. It also outputs unnormalized weights - -$$ -w_i = \frac {p(x,y,s_i,m_i)} {p(s_i, m_i)} = p(x,y \mid s_i, m_i) -$$ - -such that the empirical distribution - -$$ -\frac{1}{N} \sum_{i =1}^N \frac {w_i} {\sum_{j=1}^N w_j} \delta_{(s_i, m_i)} -$$ - -is a good approximation of the posterior. - -## 1. Define a Sampler - -Recall the last line of the above code block: - -```{julia} -chn = sample(mod, alg, n_samples, progress=false) -``` - -Here `sample` takes as arguments a **model** `mod`, an **algorithm** `alg`, and a **number of samples** `n_samples`, and returns an instance `chn` of `Chains` which can be analysed using the functions in `MCMCChains`. - -### Models - -To define a **model**, you declare a joint distribution on variables in the `@model` macro, and specify which variables are observed and which should be inferred, as well as the value of the observed variables. Thus, when implementing Importance Sampling, - -```{julia} -mod = gdemo(1.5, 2) -``` - -creates an instance `mod` of the struct `Model`, which corresponds to the observations of a value of `1.5` for `x`, and a value of `2` for `y`. - -This is all handled by DynamicPPL, more specifically [here](https://github.com/TuringLang/DynamicPPL.jl/blob/main/src/model.jl). I will return to how models are used to inform sampling algorithms [below](#assumeobserve). - -### Algorithms - -An **algorithm** is just a sampling method: in Turing, it is a subtype of the abstract type `InferenceAlgorithm`. Defining an algorithm may require specifying a few high-level parameters. For example, "Hamiltonian Monte-Carlo" may be too vague, but "Hamiltonian Monte Carlo with 10 leapfrog steps per proposal and a stepsize of 0.01" is an algorithm. "Metropolis-Hastings" may be too vague, but "Metropolis-Hastings with proposal distribution `p`" is an algorithm. -Thus - -```{julia} -stepsize = 0.01 -L = 10 -alg = HMC(stepsize, L) -``` - -defines a Hamiltonian Monte-Carlo algorithm, an instance of `HMC`, which is a subtype of `InferenceAlgorithm`. - -In the case of Importance Sampling, there is no need to specify additional parameters: - -```{julia} -alg = IS() -``` - -defines an Importance Sampling algorithm, an instance of `IS`, a subtype of `InferenceAlgorithm`. - -When creating your own Turing sampling method, you must, therefore, build a subtype of `InferenceAlgorithm` corresponding to your method. - -### Samplers - -Samplers are **not** the same as algorithms. An algorithm is a generic sampling method, a sampler is an object that stores information about how algorithm and model interact during sampling, and is modified as sampling progresses. The `Sampler` struct is defined in DynamicPPL. - -Turing implements `AbstractMCMC`'s `AbstractSampler` with the `Sampler` struct defined in `DynamicPPL`. The most important attributes of an instance `spl` of `Sampler` are: - -- `spl.alg`: the sampling method used, an instance of a subtype of `InferenceAlgorithm` -- `spl.state`: information about the sampling process, see [below](#states) - -When you call `sample(mod, alg, n_samples)`, Turing first uses `model` and `alg` to build an instance `spl` of `Sampler` , then calls the native `AbstractMCMC` function `sample(mod, spl, n_samples)`. - -When you define your own Turing sampling method, you must therefore build: - -- a **sampler constructor** that uses a model and an algorithm to initialise an instance of `Sampler`. For Importance Sampling: - -```{julia} -#| eval: false -function Sampler(alg::IS, model::Model, s::Selector) - info = Dict{Symbol,Any}() - state = ISState(model) - return Sampler(alg, info, s, state) -end -``` - -- a **state** struct implementing `AbstractSamplerState` corresponding to your method: we cover this in the following paragraph. - -### States - -The `vi` field contains all the important information about sampling: first and foremost, the values of all the samples, but also the distributions from which they are sampled, the names of model parameters, and other metadata. As we will see below, many important steps during sampling correspond to queries or updates to `spl.state.vi`. - -By default, you can use `SamplerState`, a concrete type defined in `inference/Inference.jl`, which extends `AbstractSamplerState` and has no field except for `vi`: - -```{julia} -#| eval: false -mutable struct SamplerState{VIType<:VarInfo} <: AbstractSamplerState - vi::VIType -end -``` - -When doing Importance Sampling, we care not only about the values of the samples but also their weights. We will see below that the weight of each sample is also added to `spl.state.vi`. Moreover, the average - -$$ -\frac 1 N \sum_{j=1}^N w_i = \frac 1 N \sum_{j=1}^N p(x,y \mid s_i, m_i) -$$ - -of the sample weights is a particularly important quantity: - -- it is used to **normalise** the **empirical approximation** of the posterior distribution -- its logarithm is the importance sampling **estimate** of the **log evidence** $\log p(x, y)$ - -To avoid having to compute it over and over again, `is.jl`defines an IS-specific concrete type `ISState` for sampler states, with an additional field `final_logevidence` containing - -$$ -\log \frac 1 N \sum_{j=1}^N w_i. -$$ - -```{julia} -#| eval: false -mutable struct ISState{V<:VarInfo,F<:AbstractFloat} <: AbstractSamplerState - vi::V - final_logevidence::F -end - -# additional constructor -ISState(model::Model) = ISState(VarInfo(model), 0.0) -``` - -The following diagram summarizes the hierarchy presented above. - -```{dot} -//| echo: false -digraph G { - node [shape=box]; - - spl [label=Sampler
<:AbstractSampler>, style=rounded, xlabel="", shape=box]; - state [label=State
<:AbstractSamplerState>, style=rounded, xlabel="", shape=box]; - alg [label=Algorithm
<:InferenceAlgorithm>, style=rounded, xlabel="", shape=box]; - vi [label=VarInfo
<:AbstractVarInfo>, style=rounded, xlabel="", shape=box]; - placeholder1 [label="...", width=1]; - placeholder2 [label="...", width=1]; - placeholder3 [label="...", width=1]; - placeholder4 [label="...", width=1]; - - spl -> state; - spl -> alg; - spl -> placeholder1; - - state -> vi; - state -> placeholder2; - - alg -> placeholder3; - placeholder1 -> placeholder4; -} -``` - -## 2. Overload the functions used inside mcmcsample - -A lot of the things here are method-specific. However, Turing also has some functions that make it easier for you to implement these functions, for example. - -### Transitions - -`AbstractMCMC` stores information corresponding to each individual sample in objects called `transition`, but does not specify what the structure of these objects could be. You could decide to implement a type `MyTransition` for transitions corresponding to the specifics of your methods. However, there are many situations in which the only information you need for each sample is: - -- its value: $\theta$ -- log of the joint probability of the observed data and this sample: `lp` - -`Inference.jl` [defines](https://github.com/TuringLang/Turing.jl/blob/main/src/inference/Inference.jl#L103) a struct `Transition`, which corresponds to this default situation - -```{julia} -#| eval: false -struct Transition{T,F<:AbstractFloat} - θ::T - lp::F -end -``` - -It also [contains](https://github.com/TuringLang/Turing.jl/blob/main/src/inference/Inference.jl#L108) a constructor that builds an instance of `Transition` from an instance `spl` of `Sampler`: $\theta$ is `spl.state.vi` converted to a `namedtuple`, and `lp` is `getlogp(spl.state.vi)`. `is.jl` uses this default constructor at the end of the `step!` function [here](https://github.com/TuringLang/Turing.jl/blob/main/src/inference/is.jl#L58). - -### How `sample` works - -A crude summary, which ignores things like parallelism, is the following: - -`sample` calls `mcmcsample`, which calls - -- `sample_init!` to set things up -- `step!` repeatedly to produce multiple new transitions -- `sample_end!` to perform operations once all samples have been obtained -- `bundle_samples` to convert a vector of transitions into a more palatable type, for instance a `Chain`. - -You can, of course, implement all of these functions, but `AbstractMCMC` as well as Turing, also provide default implementations for simple cases. For instance, importance sampling uses the default implementations of `sample_init!` and `bundle_samples`, which is why you don't see code for them inside `is.jl`. - -## 3. Overload assume and observe - -The functions mentioned above, such as `sample_init!`, `step!`, etc., must, of course, use information about the model in order to generate samples! In particular, these functions may need **samples from distributions** defined in the model or to **evaluate the density of these distributions** at some values of the corresponding parameters or observations. - -For an example of the former, consider **Importance Sampling** as defined in `is.jl`. This implementation of Importance Sampling uses the model prior distribution as a proposal distribution, and therefore requires **samples from the prior distribution** of the model. Another example is **Approximate Bayesian Computation**, which requires multiple **samples from the model prior and likelihood distributions** in order to generate a single sample. - -An example of the latter is the **Metropolis-Hastings** algorithm. At every step of sampling from a target posterior - -$$ -p(\theta \mid x_{\text{obs}}), -$$ - -in order to compute the acceptance ratio, you need to **evaluate the model joint density** - -$$ -p\left(\theta_{\text{prop}}, x_{\text{obs}}\right) -$$ - -with $\theta_{\text{prop}}$ a sample from the proposal and $x_{\text{obs}}$ the observed data. - -This begs the question: how can these functions access model information during sampling? Recall that the model is stored as an instance `m` of `Model`. One of the attributes of `m` is the model evaluation function `m.f`, which is built by compiling the `@model` macro. Executing `f` runs the tilde statements of the model in order, and adds model information to the sampler (the instance of `Sampler` that stores information about the ongoing sampling process) at each step (see [here]({{}}) for more information about how the `@model` macro is compiled). The DynamicPPL functions `assume` and `observe` determine what kind of information to add to the sampler for every tilde statement. - -Consider an instance `m` of `Model` and a sampler `spl`, with associated `VarInfo` `vi = spl.state.vi`. At some point during the sampling process, an AbstractMCMC function such as `step!` calls `m(vi, ...)`, which calls the model evaluation function `m.f(vi, ...)`. - - - for every tilde statement in the `@model` macro, `m.f(vi, ...)` returns model-related information (samples, value of the model density, etc.), and adds it to `vi`. How does it do that? - - + recall that the code for `m.f(vi, ...)` is automatically generated by compilation of the `@model` macro - - + for every tilde statement in the `@model` declaration, this code contains a call to `assume(vi, ...)` if the variable on the LHS of the tilde is a **model parameter to infer**, and `observe(vi, ...)` if the variable on the LHS of the tilde is an **observation** - - + in the file corresponding to your sampling method (ie in `Turing.jl/src/inference/.jl`), you have **overloaded** `assume` and `observe`, so that they can modify `vi` to include the information and samples that you care about! - - + at a minimum, `assume` and `observe` return the log density `lp` of the sample or observation. the model evaluation function then immediately calls `acclogp!!(vi, lp)`, which adds `lp` to the value of the log joint density stored in `vi`. - -Here's what `assume` looks like for Importance Sampling: - -```{julia} -#| eval: false -function DynamicPPL.assume(rng, spl::Sampler{<:IS}, dist::Distribution, vn::VarName, vi) - r = rand(rng, dist) - push!(vi, vn, r, dist, spl) - return r, 0 -end -``` - -The function first generates a sample `r` from the distribution `dist` (the right hand side of the tilde statement). It then adds `r` to `vi`, and returns `r` and 0. - -The `observe` function is even simpler: - -```{julia} -#| eval: false -function DynamicPPL.observe(spl::Sampler{<:IS}, dist::Distribution, value, vi) - return logpdf(dist, value) -end -``` - -It simply returns the density (in the discrete case, the probability) of the observed value under the distribution `dist`. - -## 4. Summary: Importance Sampling step by step - -We focus on the AbstractMCMC functions that are overridden in `is.jl` and executed inside `mcmcsample`: `step!`, which is called `n_samples` times, and `sample_end!`, which is executed once after those `n_samples` iterations. - - - During the $i$-th iteration, `step!` does 3 things: - - + `empty!!(spl.state.vi)`: remove information about the previous sample from the sampler's `VarInfo` - - + `model(rng, spl.state.vi, spl)`: call the model evaluation function - - * calls to `assume` add the samples from the prior $s_i$ and $m_i$ to `spl.state.vi` - - * calls to `assume` or `observe` are followed by the line `acclogp!!(vi, lp)`, where `lp` is an output of `assume` and `observe` - - * `lp` is set to 0 after `assume`, and to the value of the density at the observation after `observe` - - * When all the tilde statements have been covered, `spl.state.vi.logp[]` is the sum of the `lp`, i.e., the likelihood $\log p(x, y \mid s_i, m_i) = \log p(x \mid s_i, m_i) + \log p(y \mid s_i, m_i)$ of the observations given the latent variable samples $s_i$ and $m_i$. - - + `return Transition(spl)`: build a transition from the sampler, and return that transition - - * the transition's `vi` field is simply `spl.state.vi` - - * the `lp` field contains the likelihood `spl.state.vi.logp[]` - - - When the `n_samples` iterations are completed, `sample_end!` fills the `final_logevidence` field of `spl.state` - - + It simply takes the logarithm of the average of the sample weights, using the log weights for numerical stability \ No newline at end of file From df2f044c084aaff33b9cd1488fa338cba309e55f Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 16:26:39 +0000 Subject: [PATCH 08/26] Fix model-manual --- developers/compiler/model-manual/index.qmd | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/developers/compiler/model-manual/index.qmd b/developers/compiler/model-manual/index.qmd index 13f1b33ec..0edf49513 100755 --- a/developers/compiler/model-manual/index.qmd +++ b/developers/compiler/model-manual/index.qmd @@ -30,23 +30,24 @@ However, models can be constructed by hand without the use of a macro. Taking th ```{julia} using DynamicPPL +using DynamicPPL.VarNamedTuples: NoTemplate # Create the model function. function gdemo2(model, varinfo, x) # Assume s² has an InverseGamma distribution. s², varinfo = DynamicPPL.tilde_assume!!( - model.context, InverseGamma(2, 3), @varname(s²), varinfo + model.context, InverseGamma(2, 3), @varname(s²), NoTemplate(), varinfo ) # Assume m has a Normal distribution. m, varinfo = DynamicPPL.tilde_assume!!( - model.context, Normal(0, sqrt(s²)), @varname(m), varinfo + model.context, Normal(0, sqrt(s²)), @varname(m), NoTemplate(), varinfo ) # Observe each value of x[i] according to a Normal distribution. for i in eachindex(x) _retval, varinfo = DynamicPPL.tilde_observe!!( - model.context, Normal(m, sqrt(s²)), x[i], @varname(x[i]), varinfo + model.context, Normal(m, sqrt(s²)), x[i], @varname(x[i]), x, varinfo ) end From 39b361d2c70f8a8e6c84704865fa6fab4b393f28 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 5 Mar 2026 16:30:30 +0000 Subject: [PATCH 09/26] Remove varinfo-overview page --- _quarto.yml | 1 - developers/models/varinfo-overview/index.qmd | 392 ------------------- 2 files changed, 393 deletions(-) delete mode 100644 developers/models/varinfo-overview/index.qmd diff --git a/_quarto.yml b/_quarto.yml index 5d314f39a..9d1005426 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -231,4 +231,3 @@ dev-transforms-distributions: developers/transforms/distributions dev-transforms-bijectors: developers/transforms/bijectors dev-transforms-dynamicppl: developers/transforms/dynamicppl dev-contexts-submodel-condition: developers/contexts/submodel-condition -dev-models-varinfo-overview: developers/models/varinfo-overview diff --git a/developers/models/varinfo-overview/index.qmd b/developers/models/varinfo-overview/index.qmd deleted file mode 100644 index 063463a1d..000000000 --- a/developers/models/varinfo-overview/index.qmd +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: "Evaluation of DynamicPPL Models with VarInfo" -engine: julia ---- - -Once you have defined a model using the `@model` macro, Turing.jl provides high-level interfaces for applying MCMC sampling, variational inference, optimisation, and other inference algorithms. -Suppose, however, that you want to work more directly with the model. -A common use case for this is if you are developing your own inference algorithm. - -This page describes how you can evaluate DynamicPPL models and obtain information about variable values, log densities, and other quantities of interest. -In particular, this provides a high-level overview of what we call `VarInfo`: this is a data structure that holds information about the execution state while traversing a model. - -To begin, let's define a simple model. - -```{julia} -using DynamicPPL, Distributions - -@model function simple() - @info " --- Executing model --- " - x ~ Normal() # Prior - 2.0 ~ Normal(x) # Likelihood - return (; xplus1 = x + 1) # Return value -end - -model = simple() -``` - -## The outputs of a model - -A DynamicPPL model has similar characteristics to Julia functions (which should not come as a surprise, since the `@model` macro is applied to a Julia function). -However, an ordinary function only has a return value, whereas DynamicPPL models can have both _return values_ as well as _latent variables_ (i.e., the random variables in the model). - -In general, both of these are of interest. -We can obtain the return value by calling the model as if it were a function: - -```{julia} -retval = model() -``` - -and the latent variables using `rand()`: - -```{julia} -latents = rand(Dict, model) -``` - -::: {.callout-note} -## Why `Dict`? - -Simply calling `rand(model)`, by default, returns a NamedTuple. -This is fine for simple models where all variables on the left-hand side of tilde statements are standalone variables like `x`. -However, if you have indices or fields such as `x[1]` or `x.a` on the left-hand side, then the NamedTuple will not be able to represent these variables properly. -Feeding such a NamedTuple back into the model will lead to errors. - -In general, `Dict{VarName}` will always avoid such correctness issues. -::: - -Before proceeding, it is worth mentioning that both of these calls generate values for random variables by sampling from their prior distributions. -We will see how to use different sampling strategies later. - -## Passing latent values into a model - -Having considered what one can obtain from a model, we now turn to how we can use it. - -Suppose you now want to obtain the log probability (prior, likelihood, or joint) of a model, *given* certain parameters. -For this purpose, DynamicPPL provides the `logprior`, `loglikelihood`, and `logjoint` functions: - -```{julia} -logprior(model, latents) -``` - -One can check this against the expected log prior: - -```{julia} -logpdf(Normal(), latents[@varname(x)]) -``` - -Likewise, you can evaluate the return value of the model given the latent variables: - -```{julia} -returned(model, latents) -``` - -## VarInfo - -The above functions are convenient, but for many 'serious' applications they might not be flexible enough. -For example, if you wanted to obtain the return value _and_ the log joint, you would have to execute the model twice: once with `returned` and once with `logjoint`. - -If you want to avoid this duplicate work, you need to use a lower-level interface, which is `DynamicPPL.evaluate!!`. -At its core, `evaluate!!` takes a model and a VarInfo object, and returns a tuple of the return value and the new VarInfo. -So, before we even get to `evaluate!!`, we need to understand what a VarInfo is. - -A VarInfo is a container that tracks the state of model execution, as well as any outputs related to its latent variables, such as log probabilities. -DynamicPPL's source code contains many different kinds of VarInfos, each with different trade-offs. -The details of these are somewhat arcane and unfortunately cannot be fully abstracted away, mainly due to performance considerations. - -For the vast majority of users, it suffices to know that you can generate one of them for a model with the constructor `VarInfo([rng, ]model)`. -Note that this construction executes the model once (sampling new parameter values from the prior in the process). - -```{julia} -v = VarInfo(model) -``` - -(Don't worry about the printout of the VarInfo object: we won't need to understand its internal structure.) -We can index into a VarInfo: - -```{julia} -v[@varname(x)] -``` - -To access the values of log-probabilities, DynamicPPL provides the `getlogprior`, `getloglikelihood`, and `getlogjoint` functions: - -```{julia} -DynamicPPL.getlogprior(v) -``` - -What about the return value? -Well, the VarInfo does not store this directly: recall that `evaluate!!` gives us back the return value separately from the updated VarInfo. -So, let's try calling it to see what happens. -The default behaviour of `evaluate!!` is to use the parameter values stored in the VarInfo during model execution. -That is, when it sees `x ~ Normal()`, it will use the value of `x` stored in `v`. -We will see later how to change this behaviour. - -```{julia} -retval, vout = DynamicPPL.evaluate!!(model, v) -``` - -So here in a single call we have obtained both the return value and an updated VarInfo `vout`, from which we can again extract log probabilities and variable values. -We can see from this that the value of `vout[@varname(x)]` is the same as `v[@varname(x)]`: - -```{julia} -vout[@varname(x)] == v[@varname(x)] -``` - -which is in line with the statement above that by default `evaluate!!` uses the values stored in the VarInfo. - -At this point, the keen reader will notice that we have not really solved the problem here. -Although the call to `DynamicPPL.evaluate!!` does indeed only execute the model once, we also had to do this once more at the beginning when constructing the VarInfo. - -Besides, we don't know how to control the parameter values used during model execution: they were simply whatever we got in the original VarInfo. - -## Specifying parameter values - -We will first tackle the problem of specifying our own parameter values. -To do this, we need to use `DynamicPPL.init!!` instead of `DynamicPPL.evaluate!!`. - -The difference is that instead of using the values stored in the VarInfo (which `evaluate!!` does by default), `init!!` uses a _strategy_ for generating new values, and overwrites the values in the VarInfo accordingly. -For example, `InitFromPrior()` says that any time a tilde-statement `x ~ dist` is encountered, a new value for `x` should be sampled from `dist`: - -```{julia} -retval, v_new = DynamicPPL.init!!(model, v, InitFromPrior()) -``` - -This updates `v_new` with the new values that were sampled, and also means that log probabilities are computed using these new values. - -::: {.callout-note} -## Random number generator -You can also provide an `AbstractRNG` as the first argument to `init!!` to control the reproducibility of the sampling: here we have omitted it. -::: - -Alternatively, to provide specific sets of values, we can use `InitFromParams(...)` to specify them. -`InitFromParams` can wrap either a `NamedTuple` or an `AbstractDict{<:VarName}`, but `Dict` is generally much preferred as this guarantees correct behaviour even for complex variable names. - -```{julia} -retval, v_new = DynamicPPL.init!!( - model, v, InitFromParams(Dict(@varname(x) => 3.0)) -) -``` - -We now find that if we look into `v_new`, the value of `x` is indeed `3.0`: - -```{julia} -v_new[@varname(x)] -``` - -and we can extract the return value and log probabilities exactly as before. - -Note that `init!!` always ignores any values that are already present in the VarInfo, and overwrites them with new values according to the specified strategy. - -If you have a loop in which you want to repeatedly evaluate a model with different parameter values, then the workflow shown here is recommended: - - - First generate a VarInfo using `VarInfo(model)`; - - Then call `DynamicPPL.init!!(model, v, InitFromParams(...))` to evaluate the model using those parameters. - -This requires you to pay a one-time cost at the very beginning to generate the VarInfo, but subsequent evaluations will be efficient. -DynamicPPL uses this approach when implementing functions such as `predict(model, chain)`. - -::: {.callout-tip} -If you want to avoid even the first model evaluation, you will need to read on to the 'Advanced' section below. -However, for most applications this should not necessary. -::: - -## Parameters in the form of Vectors - -In general, one problem with `init!!` is that it is often slower than `evaluate!!`. -This is primarily because it does more work: it has to not only read from the provided parameters, but also overwrite existing values in the VarInfo. - -```{julia} -using Chairmarks, Logging -# We need to silence the 'executing model' message, or else it will -# fill up the entire screen! -with_logger(ConsoleLogger(stderr, Logging.Warn)) do - median(@be DynamicPPL.evaluate!!(model, v_new)) -end -``` - -```{julia} -with_logger(ConsoleLogger(stderr, Logging.Warn)) do - median(@be DynamicPPL.init!!(model, v_new, InitFromParams(Dict(@varname(x) => 3.0)))) -end -``` - -When evaluating models in tight loops, as is often the case in inference algorithms, this overhead can be quite unwanted. -DynamicPPL provides a rather dangerous, but powerful, way to get around this, which is the `DynamicPPL.unflatten` function. -`unflatten` allows you to directly modify the internal storage of a VarInfo, without having to go through `init!!` and model evaluation. -Its input is a vector of parameters. - -```{julia} -xs = [7.0] -v_unflattened = DynamicPPL.unflatten(v_new, xs) -v_unflattened[@varname(x)] -``` - -We can then directly use `v_new` in `evaluate!!`, which will use the value `7.0` for `x`: - -```{julia} -retval, vout = DynamicPPL.evaluate!!(model, v_unflattened) -``` - -Even the combination of `unflatten` and `evaluate!!` tends to be faster than a single call to `init!!`, especially for larger models. - -**However, there are several reasons why this function is dangerous. -If you use it, you must pay close attention to correctness:** - -1. For models with multiple variables, the order in which these variables occur in the vector is not obvious. The short answer is that it depends on the order in which the variables are added to the VarInfo during its initialisation. If you have models where the order of variables can vary from one execution to another, then `unflatten` can easily lead to incorrect results. - -2. The meaning of the values passed in will generally depend on whether the VarInfo is linked or not (see the [Variable Transformations page]({{< meta dev-transforms-dynamicppl >}}) for more information about linked VarInfos). You must make sure that the values passed in are consistent with the link status of the VarInfo. In contrast, `InitFromParams` always uses unlinked values. - -3. While `unflatten` modifies the parameter values stored in the VarInfo, it does not modify any other information, such as log probabilities. Thus, after calling `unflatten`, your VarInfo will be in an inconsistent state, and you should not attempt to read any other information from it until you have called `evaluate!!` again (which recomputes e.g. log probabilities). - -The inverse operation of `unflatten` is `DynamicPPL.getindex_internal(v, :)`: - -```{julia} -DynamicPPL.getindex_internal(v_unflattened, :) -``` - -## `LogDensityFunction` - -There is one place where `unflatten` is (unfortunately) quite indispensable, namely, the implementation of the LogDensityProblems.jl interface for Turing models. - -The LogDensityProblems interface defines interface functions such as - -```julia -LogDensityProblems.logdensity(f, x::AbstractVector) -``` - -which evaluates the log density of a model `f` given a vector of parameters `x`. - -Given what we have seen above, this can be done by wrapping a model and a VarInfo together inside a struct. -Here is a rough sketch of how this can be implemented: - -```{julia} -using LogDensityProblems - -struct MyModelLogDensity{M<:DynamicPPL.Model,V<:DynamicPPL.VarInfo} - model::M - varinfo::V -end - -function LogDensityProblems.logdensity(f::MyModelLogDensity, x::AbstractVector) - v_new = DynamicPPL.unflatten(f.varinfo, x) - _, vout = DynamicPPL.evaluate!!(f.model, v_new) - return DynamicPPL.getlogjoint(vout) -end - -# Usage -my_ldf = MyModelLogDensity(model, VarInfo(model)) -LogDensityProblems.logdensity(my_ldf, [2.5]) -``` - -DynamicPPL contains a `LogDensityFunction` type that, at its core, is essentially the same as the above. - -```{julia} -# the varinfo object defaults to VarInfo(model) -ldf = DynamicPPL.LogDensityFunction(model) -LogDensityProblems.logdensity(ldf, [2.5]) -``` - -The real implementation is a bit more complicated as it provides more options, as well as support for gradients with automatic differentiation. - -In this way, any Turing model can be converted into an object that you can use with LogDensityProblems-compatible optimisers, samplers, and other algorithms. -This is very powerful as it allows the algorithms to completely ignore the internal structure of the model, and simply treat it as an opaque log-density function. -For example, Turing's external sampler interface makes heavy use of this. - -However, it should be noted that because this uses `unflatten` under the hood, it suffers from exactly the same limitations as described above. -For example, models that do not have a fixed number or order of latent variables can lead to incorrect results or errors. - -## Advanced: Typed and untyped VarInfo - -The discussion above suffices for many applications of DynamicPPL, but one question remains: how to avoid the initial overhead of constructing a VarInfo object before we can do anything useful with it. -This is important when implementing a function such as `logjoint(model, params)`: in principle, only a single evaluation should be needed. - -To tackle this, we need to understand a little bit more about two kinds of VarInfo. -Conceptually, DynamicPPL has both _typed_ and _untyped_ VarInfos. -This distinction is also described in section 4.2.4 of [our recent Turing.jl paper](https://dl.acm.org/doi/10.1145/3711897). - -Evaluating a model with an existing typed VarInfo is generally much faster, and once you have a typed VarInfo it is a good idea to stick with it. -However, when instantiating a new VarInfo, it is often better to start with an untyped VarInfo, fill in the values, and then convert it to a typed VarInfo. - -::: {.callout-note} -## Why is untyped initialisation better? -Initialising a fresh VarInfo requires adding variables to it as they are encountered during model execution. -There are two main reasons for preferring untyped VarInfo: firstly, compilation time with typed VarInfo scales poorly with the number of variables; and secondly, typed VarInfos can error with certain kinds of models. -See [this issue](https://github.com/TuringLang/DynamicPPL.jl/issues/1062) for more information. -::: - -To see this in action, let's begin by constructing an empty _untyped_ VarInfo. -This does not execute the model, and so the resulting object has no stored variable values. -If we try to index into it, we will get an error: - -```{julia} -#| error: true -v_empty_untyped = VarInfo() -v_empty_untyped[@varname(x)] -``` - -::: {.callout-note} -## `VarInfo(model)` returns a typed VarInfo -Although `VarInfo()` with no arguments returns an untyped VarInfo, note that calling `VarInfo(model)` returns a typed VarInfo. This is a slightly awkward aspect of DynamicPPL's current API. -::: - -To generate new values for it, we will use `DynamicPPL.init!!` as before. - -```{julia} -_, v_filled_untyped = DynamicPPL.init!!(model, v_empty_untyped, InitFromParams(Dict(@varname(x) => 5.0))) -``` - -Now that we have filled in the untyped VarInfo, we can access parameter values, log probabilities, and so on: - -```{julia} -DynamicPPL.getlogprior(v_filled_untyped) -``` - -So, putting this all together, this is how an implementation of `logprior(model, params)` could look: - -```{julia} -function mylogprior(model, params) - # Create empty untyped VarInfo - v_empty_untyped = VarInfo() - # Fill in values from given params - _, v_filled_untyped = DynamicPPL.init!!(model, v_empty_untyped, InitFromParams(params)) - # Extract log prior - return DynamicPPL.getlogprior(v_filled_untyped) -end - -mylogprior(model, Dict(@varname(x) => 5.0)) -``` - -Notice that the above only required a single model evaluation. - -If we later want to convert the untyped VarInfo into a typed VarInfo (for example, for later reuse), we can do so using `DynamicPPL.typed_varinfo`: - -```{julia} -v_filled_typed = DynamicPPL.typed_varinfo(v_filled_untyped) -``` - -This allows us to demonstrate how `VarInfo(model)` is implemented: - -```{julia} -function myvarinfo(model) - # Create empty untyped VarInfo - v_empty_untyped = VarInfo() - # Sample values from prior - _, v_filled_untyped = DynamicPPL.init!!(model, v_empty_untyped, InitFromPrior()) - # Convert to typed VarInfo - return DynamicPPL.typed_varinfo(v_filled_untyped) -end -``` - -Notice here that `evaluate!!` runs much faster with a typed VarInfo than with untyped: this is why generally for repeated evaluation you should use a typed VarInfo. -The same is true of `init!!`. - -```{julia} -with_logger(ConsoleLogger(stderr, Logging.Warn)) do - median(@be DynamicPPL.evaluate!!(model, v_filled_untyped)) -end -``` - -```{julia} -with_logger(ConsoleLogger(stderr, Logging.Warn)) do - median(@be DynamicPPL.evaluate!!(model, v_filled_typed)) -end -``` From e1679d2f85773af5cf60e3176b6f480adac0c4ab Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 6 Mar 2026 00:19:58 +0000 Subject: [PATCH 10/26] fix infiniteGMM for 0.43 --- tutorials/infinite-mixture-models/index.qmd | 84 +++++++++++++-------- 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/tutorials/infinite-mixture-models/index.qmd b/tutorials/infinite-mixture-models/index.qmd index 464694389..676af6ee4 100755 --- a/tutorials/infinite-mixture-models/index.qmd +++ b/tutorials/infinite-mixture-models/index.qmd @@ -12,9 +12,16 @@ using Pkg; Pkg.instantiate(); ``` -In many applications it is desirable to allow the model to adjust its complexity to the amount of data. Consider for example the task of assigning objects into clusters or groups. This task often involves the specification of the number of groups. However, often times it is not known beforehand how many groups exist. Moreover, in some applications, e.g. modelling topics in text documents or grouping species, the number of examples per group is heavy tailed. This makes it impossible to predefine the number of groups and requiring the model to form new groups when data points from previously unseen groups are observed. +In many applications it is desirable to allow the model to adjust its complexity to the amount of data. +Consider for example the task of assigning objects into clusters or groups. +This task often involves the specification of the number of groups. +However, often times it is not known beforehand how many groups exist. +Moreover, in some applications, e.g. modelling topics in text documents or grouping species, the number of examples per group is heavy-tailed. +This makes it impossible to predefine the number of groups and requiring the model to form new groups when data points from previously unseen groups are observed. -A natural approach for such applications is the use of [non-parametric models](https://en.wikipedia.org/wiki/Nonparametric_statistics#Non-parametric_models), which can grow in complexity as more data are observed. This tutorial demonstrates how to use the Dirichlet process in a mixture of infinitely many Gaussians using Turing. For further information on Bayesian nonparametrics and the Dirichlet process, see the [introduction by Zoubin Ghahramani](http://mlg.eng.cam.ac.uk/pub/pdf/Gha12.pdf) and the book "Fundamentals of Nonparametric Bayesian Inference" by Subhashis Ghosal and Aad van der Vaart. +A natural approach for such applications is the use of [non-parametric models](https://en.wikipedia.org/wiki/Nonparametric_statistics#Non-parametric_models), which can grow in complexity as more data are observed. +This tutorial demonstrates how to use the Dirichlet process in a mixture of infinitely many Gaussians using Turing. +For further information on Bayesian nonparametrics and the Dirichlet process, see the [introduction by Zoubin Ghahramani](http://mlg.eng.cam.ac.uk/pub/pdf/Gha12.pdf) and the book "Fundamentals of Nonparametric Bayesian Inference" by Subhashis Ghosal and Aad van der Vaart. ```{julia} using Turing @@ -22,7 +29,8 @@ using Turing ## Mixture Model -Before introducing infinite mixture models in Turing, we will briefly review the construction of finite mixture models. Subsequently, we will define how to use the [Chinese restaurant process](https://en.wikipedia.org/wiki/Chinese_restaurant_process) construction of a Dirichlet process for non-parametric clustering. +Before introducing infinite mixture models in Turing, we will briefly review the construction of finite mixture models. +Subsequently, we will define how to use the [Chinese restaurant process](https://en.wikipedia.org/wiki/Chinese_restaurant_process) construction of a Dirichlet process for non-parametric clustering. #### Two-Component Model @@ -89,13 +97,15 @@ which resembles the model in the [Gaussian mixture model tutorial]({{ K - push!(μ, 0.0) - # Draw location of new cluster. - μ[z[i]] ~ H + μ[i] ~ H end # Draw observation. - x[i] ~ Normal(μ[z[i]], 1.0) + x[i] ~ Normal(μ[i], 1.0) end end ``` -We can now use Turing to infer the assignments of some data points. First, we will create some random data that comes from three clusters, with means of 0, -5, and 10. +We can now use Turing to infer the assignments of some data points. +First, we will create some random data that comes from three clusters, with means of 0, -5, and 10. ```{julia} using Plots, Random @@ -256,31 +268,39 @@ k = map( plot(k; xlabel="Iteration", ylabel="Number of clusters", label="Chain 1") ``` -If we visualise the histogram of the number of clusters sampled from our posterior, we observe that the model seems to prefer 3 clusters, which is the true number of clusters. Note that the number of clusters in a Dirichlet process mixture model is not limited a priori and will grow to infinity with probability one. However, if conditioned on data the posterior will concentrate on a finite number of clusters enforcing the resulting model to have a finite amount of clusters. It is, however, not given that the posterior of a Dirichlet process Gaussian mixture model converges to the true number of clusters, given that data comes from a finite mixture model. See Jeffrey Miller and Matthew Harrison: [A simple example of Dirichlet process mixture inconsistency for the number of components](https://arxiv.org/pdf/1301.2708.pdf) for details. +If we visualise the histogram of the number of clusters sampled from our posterior, we observe that the model seems to prefer 3 clusters, which is the true number of clusters. +Note that the number of clusters in a Dirichlet process mixture model is not limited a priori and will grow to infinity with probability one. +However, if conditioned on data the posterior will concentrate on a finite number of clusters enforcing the resulting model to have a finite amount of clusters. +It is, however, not given that the posterior of a Dirichlet process Gaussian mixture model converges to the true number of clusters, given that data comes from a finite mixture model. +See Jeffrey Miller and Matthew Harrison: [A simple example of Dirichlet process mixture inconsistency for the number of components](https://arxiv.org/pdf/1301.2708.pdf) for details. ```{julia} histogram(k; xlabel="Number of clusters", legend=false) ``` -One issue with the Chinese restaurant process construction is that the number of latent parameters we need to sample scales with the number of observations. It may be desirable to use alternative constructions in certain cases. Alternative methods of constructing a Dirichlet process can be employed via the following representations: +One issue with the Chinese restaurant process construction is that the number of latent parameters we need to sample scales with the number of observations. +It may be desirable to use alternative constructions in certain cases. +Alternative methods of constructing a Dirichlet process can be employed via the following representations: -Size-Biased Sampling Process +- Size-Biased Sampling Process: -$$ -j_k \sim \mathrm{Beta}(1, \alpha) \cdot \mathrm{surplus} -$$ + $$ + j_k \sim \mathrm{Beta}(1, \alpha) \cdot \mathrm{surplus} + $$ -Stick-Breaking Process -$$ -v_k \sim \mathrm{Beta}(1, \alpha) -$$ +- Stick-Breaking Process: -Chinese Restaurant Process -$$ -p(z_n = k | z_{1:n-1}) \propto \begin{cases} -\frac{m_k}{n-1+\alpha}, \text{ if } m_k > 0\\\ -\frac{\alpha}{n-1+\alpha} -\end{cases} -$$ + $$ + v_k \sim \mathrm{Beta}(1, \alpha) + $$ + +- Chinese Restaurant Process: + + $$ + p(z_n = k | z_{1:n-1}) \propto \begin{cases} + \frac{m_k}{n-1+\alpha}, \text{ if } m_k > 0\\\ + \frac{\alpha}{n-1+\alpha} + \end{cases} + $$ -For more details see [this article](https://www.stats.ox.ac.uk/%7Eteh/research/npbayes/Teh2010a.pdf). \ No newline at end of file +For more details see [this article](https://www.stats.ox.ac.uk/%7Eteh/research/npbayes/Teh2010a.pdf). From 1b442081708282834a9388a16ad68a5cf0803d5e Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 6 Mar 2026 08:43:57 +0000 Subject: [PATCH 11/26] Remove very outdated design-overview --- developers/compiler/design-overview/index.qmd | 277 ------------------ 1 file changed, 277 deletions(-) delete mode 100755 developers/compiler/design-overview/index.qmd diff --git a/developers/compiler/design-overview/index.qmd b/developers/compiler/design-overview/index.qmd deleted file mode 100755 index f57a96e7f..000000000 --- a/developers/compiler/design-overview/index.qmd +++ /dev/null @@ -1,277 +0,0 @@ ---- -title: Turing Compiler Design (Outdated) -engine: julia -aliases: - - ../../../tutorials/docs-05-for-developers-compiler/index.html ---- - -```{julia} -#| echo: false -#| output: false -using Pkg; -Pkg.instantiate(); -``` - -In this section, the current design of Turing's model "compiler" is described, which enables Turing to perform various types of Bayesian inference without changing the model definition. The "compiler" is essentially just a macro that rewrites the user's model definition to a function that generates a `Model` struct that Julia's dispatch can operate on and that Julia's compiler can successfully do type inference on for efficient machine code generation. - -# Overview - -The following terminology will be used in this section: - - - `D`: observed data variables conditioned upon in the posterior, - - `P`: parameter variables distributed according to the prior distributions, these are also referred to as random variables, - - `Model`: a fully defined probabilistic model with input data - -`Turing`'s `@model` macro rewrites the user-provided function definition such that it can be used to instantiate a `Model` by passing in the observed data `D`. - -The following are the main jobs of the `@model` macro: - - 1. Parse `~` and `.~` lines, e.g. `y .~ Normal.(c*x, 1.0)` - 2. Figure out if a variable belongs to the data `D` and/or to the parameters `P` - 3. Enable the handling of missing data variables in `D` when defining a `Model` and treating them as parameter variables in `P` instead - 4. Enable the tracking of random variables using the data structures `VarName` and `VarInfo` - 5. Change `~`/`.~` lines with a variable in `P` on the LHS to a call to `tilde_assume` or `dot_tilde_assume` - 6. Change `~`/`.~` lines with a variable in `D` on the LHS to a call to `tilde_observe` or `dot_tilde_observe` - 7. Enable type stable automatic differentiation of the model using type parameters - -## The model - -3Nnc%6OJ7w_Nm)e; zFZxocjUpTzXc#dxA>nE@pDm`rbjk-y|FH2h<>o_64e;BN3ZDSvMCjL#qPnm*ZY-TM z2j0n*zE`D>3b?x2hvpU%(L@wb+^r=61X9<~sL2rM=`ffhV$`>0m^Zuf2Ji%G z+e4s#Fp@7^k&I_RZT76bS9x<%#7UuidI}tpOgu8foANly14-t}3L47Zww$tGVc_D^ zZl?{plvYaLLo4s@%~WLAP$pM4Vb@hdfdO~J&Ev+;j-a*q# zVF}`22OJ|WtQAzx;!J(q-;whk61gKlv?a9gZzFg+Yvh3RJ*o5k$+k=YUeMVUx@3aY zI2L_Wni#2+$|M;`TW-FRYkDka4277;!gV~^dHfy9LLpGtyxn359kM(W??{g2!RC>) z+bu@F;vh%8W?7AEU^QISn`m<0&?%4TaS~C}(o-?gmK9Uy7ex?><~&(PnY%YdZ*uMW zNTds@v^f`n5ygzRoj(9t<3Nif|4bUY0zf0of{*2({yuVg?3-?D0gq_2mZ^t77Wg2V z7J=z_lq+YP)*e+t%ex>fu0$sJAp8l5B;yUczxtEYrwokK-n?zf)n4PJ* zosWFzrRu4cpCQ%=-VUm}jUF0Nm~lc-$dZELe(dwcQGTnk_l!&Yz#x2eKrWD@@W}2%H^z-b3?v z`Sy|%Kxe+QMf5j?m`g8-b-qj$3Yg0KUjzbipE!Q)&o#CiW=^3A+LNBMTmVxc1I1bB ztLW()xT!Y4xEwjt&TlUp$vd8=bcUi+rg&kgLEXxUkI-1+S5L7@p{5>tIC!v13@2zX zSr21_h`TK_mhGIaFg12G+-*v=Alrh$TSuX?s%m^>#<|)fOpXS4A7*0nyquK5SLod^ zRGswpvwUnRhgr7N+0kNSxSuO-8Q*o! z?3f(s?^b_A%>eD#l9jBMR&s+l6a)ERzrNFep(2-XIM{#eJy`g6Pfm6ycmE2+iCx^c zn5ZS>7g%)E*YNp>I<2r%bI<*NLzk^3)CcPU@<+!1W^S3ugx=Tta#yJ~IZvOT!|VFc zNNu*-+Xs}eozrnF>XBT>QrPR~i~tA*W_vJwmm=j}=ZzW0b|w>l&BI^7Bn!&^LZ3jyp#<*IOB3i{ngitLdju|0*dm59R9n;iO&2seJ_Ps=j z04+T|do8=8X#PW`&ym%C6X+Zm9uE#U!?$Zws>GSx=f>R?`;6-QS}^&f-~FtH@~~+d zvLYQhKbUR0I1@Gz8(`9pQf-kT5WdURGvT9UX}$+DV$DQ4{tg4!buIsyA6z`K>jK@; zW?Zk@ydPJ|_^V#>Dkl8UrR0$_v4npY1M$fpp#!ABMrV}Mz#a_$P{KX*==>i#^Yily zNxg0H#9a2@E6>YD_CXP6xDINT^4UmgDJpi?EZ^& zJs6%qL5-yX%EdFFt~fYy2B)3Z^7Pcc=%xxRat%LO>TO%kV>w?%U0rJ)$OV7s_J?-h z-8_2e*2hhW&gU}(R zZ)fN;yGhuSS`s@5_2Q@1q{Jn0Ieh-i0KE9mcM_r~Ff#i->bsSex(81|I35?lfEYe9 zG6If0P21>4uI3LvH;c)+Ybg1ZS=B5xL$%lUcz2<4s6};F0PkF@ks9?*jcbYPQz zN0jA2TPPX?T#pKTv3=dA?mQx_~*GN-3hqX-HZ(gEk zfD%X=NBm~0gs`9Q{|~)SxwS0mwvY`VMWTG@3#9cOJ}R_u=bOh!ioTuRHQUYXYCGKq@C#&#b-Xj1aEKhi^Yd4ru1B*U@V5SQ zjRr)ydM7x->3*h8%ciA1Ew4VMOR5jLXl7QQ@q2(88`xBTgw2oZCf8w9TU1zspVs6= zAZcz|3JMBgnG_BHx$r?@zEeK%hcHanq)1!AH_c-{@&;w~xp@3s4nWQ+5z*|gP>ikZ z;u))FZ4+rnjHfw-KRM~36C#Oc`6~_%bbY>V>qXq6Q z!f1!RFxpsTi?&xj>)}TmBpQkf@|AK9{|x#{4f*tPTdp=EF*1W##j=Pj66633)Q_*;qgmVLd#US4Zf{KRc<;6q<0w6N*!?5~hYS{k@2HTtIbx%+Ig7h0 zLk9C|nW&5%>y{1Q9{t6q>F1-Uv?E$xL`JC#di7=p>iY@>3!hWT6gewc&MDd@0!0o& z!h{UX`KdmqzcY^5Nt8z#)j)|L>jiz4hWe7Sx;#UsB^j)<&+Re|mWyHG;b6?wmUXEt z2raO!WV>tg**2)@_OBj5EwMR+S6d9Hu|1?Gr`O9)bj)$%Qn&e^EI~V{t{uMJX z?)aetz|$Cbw#gz{>#h!F5hRPc5mT&mSZ=8p=WCpF$T3sx%4xD$E^5}nnAx#DUT&Ek z_-c4Z&eDUnKyb%uo(o&o_7{+;CtL^z{I`KBgf{Z6cl~lj{>q<0j?I*xg;$IR8^c}o zI53rsy8_;6OHRv4>^}DkK06FqvFfl9KjDd1`MKa+L*XF`F=dR4%cWbRUi&GKIRmv* zWXYFUNz|bberb6x#V>4vook?+=E6cM)h~eF@6)hVG9{&tjmut`aog{Ax>ZbXfsq#R za<-^-+(#^yN#1=WaZ0Ve{YlcngTI83XqRL;ZSy>g#nMV&O$&>LQNZ!`FK#=#g!hJ? z52E#aO|R<6U6;Yrw1E*e;6@Bk8Goh&ReRZHB~2y>U}2-`3~ePowi~F*c>dTLFwoyD zieMZkBqTJ8Y;I5lM56^jXb~hF_(u`Mf&#t%A%M8)w8E!lJ{v-9eSG6co%Z=58Avi>Zg}9^me*P+*Z-CqLE}??IN&@ zyBw{TB5w|VQQw}@>S1dJVm^T2wn5lnNDdPd@806a8|(J)dQW+|g&;>$NGmUYVD;@d zz?ile`6I6W4aBKTBxBxTdXx3a5XaFX?U+-`Kg(WkvfYUy$thU-=foU&b$|&m3R_w)sbH@G$al5!=|WB`PH}0YGib zmEYB#b=fO6gHx0PJUS4JkKpSrDh~Vb%h0 z*iR}|dGR0P*gcso2ZhDrq}j}~N$C6vc$~a&uy@>GLy-J{3e0++W-T{B?#WN{Em+uP z&tYg7HSe7X^AKH~Wq%B=%n*PY-va;_;rINLu(7WP`*~*ySYV^d7}UAGmOv8Q?S;~Q zB}(O%^jr&Mg-0jByE8m02*Z*IDr9%)Kz(VIRsWP=@db5N!hYqSyZiafJ*^uG+R!I` zyBPs|n|q~Skz%?gG*b9jDWuH&;5(+Q63*`KWlRxWA7D9sXATfcX*x{ALS+tl(kj|0 zq(r#6Pr%BS?N4YJZM;CjdVS(JnXj!-XW+K%ve2~@uShMtVIh}SdbIcIVv z?uySG_ zmOWh9Ts_6X+5Iev&!6Y{GHl2F3npkon9UD+u!vUdB4v~`eC3<_{m}yU3R>?`PV|n? z@|U#%e)OFax+7!+()Xj-P!}@7>|mz61u4dsPfSeVbCvxo6QUBAbqZC_WG1b}NfQB> zkx=xnP~@ZUQ(F{&fo)>ETRc*DX`5%lw_N)7l1mPZc^RLu@K7--q|?HttI;+ z(+sI(b^Sd%wW^*M)seREP{x*(&pTMdivP9hx@e=#yu+1tTrVQC!0|dkZPVE)&e`cW z314YHEkE9|d5bJ5M`R+2l8V*sZKHG|XKK2~X14G`c|PA5y{Ruzt)4{bnx}`YFefJp z8*q34*IF5uz84v&%sp*loj@EP&SLxC;foGZ-(O{6H(p(ZgT6Nvh5XM}Z*K*QKl0eE zw8isa2Xter%fu9#zDB2z9rrTe4D`94HxJ1x=7NGL5!_`$drI`kQm474dP`BoEQ3O} zitW>UsAroKHy7dvs~Ea_;l&Ls=3ViXou1Vo-%t+}oQxjOEBb`QIK;g6^Ih}1TwUel zZ6_pWGJC=6c+5<)lmon=OFH$_M>I#H{cXA=@u{JRpN}kO=kVCJACtcyzeP=xXns|8 zq@~0Sx2KWP+CVsa{pr3gu_I0-_lGau`76k?bkWV7;#galzl1bzru)v{u&W&Y?aG+2 z0jYA|wcZ~o-7tUo{_V;sM5Sre&YSj=c4$%wvn%s%#QcYmSL7!O^iL>qPRF94HY7yE zBo#X6k*t52eVjn)&#*z$pR}Vx?^V`SGcBSg*Ig$byg{#A%}CZru&`Y(A6Hk~V)uu4 z*L%acFF%7-y=oODT>&vm_}ogwUX!Ntg1_X&gB|uVPjidfsVIl5yg0`o!i7MH{32E2 z%MT1EzIDLbgh`%kWjLsD09X8)OW2}mC31^84M{a~`~%&}Oej|gI)MQgQiGjf3`IyM zjlvj(4XiA)@+u(E6s6q&z01|%>E1Jb?wYpgs)_Tc6B|laIYIfbS-l~=dYxl=$X!R!Ilw*@DJlqHh*z6927R)&gd>sXV%cH-~pWn zd>o$ak1)AIiks?0QG#TbWKQ0V$L3;SJ=t+g(No*`F-)C){c?aHCV^d!&HJz$mcP^& z0F)e#693!ZB9(!FP8`12jy9(`P@4@deC4zmJUW(1k>(_^EGs~MYWBjMKGOMoe-OW8 zW$pyUj$rz5D0|i{b<2rYN7Y*J>Npf%&g{s#Cb^c{7Z)#er(XP38Fv`l81^ zf5o3DL2^^VIL;*D=yCMG`WPNT{|(#Vwr4^6$Iic$>2sKXO~@8Ct$GaA-h#N>7+ zI!iju!jh*jK?%%?1YWc|kNZ9WC^_LOkIwzP>6zKSjYzHoOA1{Bp`GEOgD`=6)#-DpYgFgiT%j$W@5XJQK}LhaxsgMg zf+mN-1Yz;jYLMlrH){q}89)pnWMSH=|YLoZ^j7@*jtAzv_%tY#kh6+gQ6FgRfgC z?qpLguc3v-7 zxu~#Yh-Q23O9pQMp8jvme7!XH^1DuRO!*d<2hfYlOXuUkHKQCdcwn))AeGN>Ijb?f zZV-7fhf;jY8=FA9>A1#pSlRmQw!f^5ZZc4ewxsDC89VZ>d!37}Z9ctRPSp$m2;0gm z5S}D}y77A?jY+3l=W6bEhGa2?&haEg^N7TVdt3&>u!U^lZYCu)y5OUMiSw@V`mItw zbnUByiTX}d8!Wi}(bg)~*OvE3tfwfj2KVwfwOpG+q)R^)=@a%oTB5gt+8}3-ef}rb zAEPna&i1X8+g;Eqr^2{JFA%tsKOB=A4pWzjLt^#ju2iKi*M{cMFKNA9BF5%Ian&F^cv@7f>o`|+fm9lAQ>+A$S1qo@J;i>QWwVIo^OIZaOn6ytuaN{(o{5rCEbxleDIki98R%lJ_HK4I`QDJ{ z?-#j+Bb9s+M{_@`v=Cn0o3MXa#@p~F)7jsaGzF_{jMdvY`?{(|onW_ee?eAAh^brL zTajwI?Ax?@^YTikzAcWIXIl~_;O8R@<8G)qEdA+av?EBzc}`TUCvjSTU#`rs)>MS; z=5X~To{}mqx(KcORzWe9SUo?(`R4>|Z__Q^zSslf(`|pgE?Qh6yiR0|BJZCox!+I1 zQ@=~Q5)Izoq1_)36gpgRHE&D}ln`rKg`eNfC3>`Z}jDT%G3B~hBz#*}D+R-(J%?y>85QF`afPZj(9SlzyB zU^qhh7T=;^-q#Oef_(#Os~h2xON|8%TU#r~=*Qn%?3)giNDXkpe_B+QA!6l-40OQB z3CqzJv1TuE7|5E5pi5*p6TGD4Xjf``yVmU%wfTB0NJ!_|Sevk-kGU_im~NeVSJy>`p1#jXxfpk?{_cvOWk zAr$NQ#_+7l9S%3mO-)ljY)>xSGZi}?SwI~#Q)B+debC_ffE^Vn>dmZRAgzKEr;%%g z9jJryRX@tah*Sf8es$PSoTC=arSKrr3t0_0m~oR9NTZ=*k@71oN9d9r3qR;Yb6NgUv`^yFxR;gxEMtr zie_#21Zc$%DjCL)%CMneIQ4ge96f~J#zap}Cn=L**FXZ{&?%A-`sT|`fx?u>ACu+6 zzc+`(K%33R+~ZbF9li*>b+E$UST!g{vAR{@9Pah?{@ zjBW3=Gh&AbQ~k)}jHIdQuVfR}HVz!C9Y$$VhHLANZjtu6blBD7hc)hoyWc#h(HhMj zXgR2x*wBNkEaV?l2Zgo8Q9aw6A)gg|$$XsYC&qt{js11W#LOY?kvivz!u^@+x?Ct6{{0{C!&9<2MU~flht_Vx zu`ydRUKLEBi^8(AFzFcKeSUr2jA=S`gn4@{Ie)~Ou&&{0`so_^9v;z)aNbT%qy8Rz zl&7aoHt(}iwZ^BGqiF$h^|wP&r8HDyzT#g`9QEWzCMTvyMGZ7nq_IAe_2Ot~dgqS$ zHp?Q$K7Kn{QUd3A6tw|qe|I{xx0Ii4_`yL+@?R*n3zSfL^{lOY6T^N?_8>85l+-^C zC!+1;_3ey37PH1qfK7-D>f(9ZOh$!03R3nEwNWMXk@m>M3ul@hbG-J|oYNM`ifQ+% z^wPYIOfDC7dLEA`Gv>VAwX)~XRbH3dFiawv5d|thQtEcbjP9Srq*|6Zn|N>1yN6fH zUQBV@qcQUN$sH~(Q?cEqd1JngrDWav@~Sfhm5h=+r+r85R@s?rDi@qlk26BHy6-aM zdfxOW`em4!z(sQ;ahdN=Ih)`*^+}({`pOoZ zB-Y|`Plf$mS($tZ%VS(gBgbOs`-Bam5WfsR&jMD@L!reE?3E~i7Oik+Mk(sru@-~R|4t_PpVRS;4gl{z1JwUzbC!9Adf6%OIJ;6 zwQakiTQEa`OWTYwnczXNJwFc&{UR~K{kH|?{_O&6TYD|+K)wN@2ah`q4v+CU8bd>a z+$^BAqE?>q?l@D`=7{SBIkU#y^dDvH4M)$F3=|@@B zBB3DPcDKKqHyn%6@m$gIYyypzs|xV>1Sj|Px>1n`AGqxPg$eO5x6v<52xTmjy;^R;Kja+}`_vh#5Z+Cq!^Q}XlO_(HD z)M23fps)C}VJ^*rIy7MV_FTuhRNwr|^AYxUr6G(9t9i7Yx8y?(;A+{gu%_FacjS$L zxNY8)dU3qB0zUU}@2cLP_|E*4G_GJmdNguTCy6>951 z5QpHQ+nzd*8K)1D@|rFuG+Uf7`rRQI$a>Id8yHdFe`ePE-TKJa%^X9;3d-1KpWez# znk=u$`N0R)GhK`wy`~eU-u54iZ~`i$Q^@JOe78^G>-yXnJU$V3HC~-#u<)r_gjw++3Ra<^~O)oUqft z0KMYszUdhvU!!(*JM`s+437)R(Z!lyY5gF^Pf;)G=l!pgZYIZzgY2#u=`3`sNY3N* zoUvpjr=$E_KG2+PrJv`i0~JOAA%@2@9F!4yPpPWq^XeL$5+C?YOCRj-C*PkLQnmff zD<5kVC;5(JpZl)=z+ef@w`u5JUhSY(NB${0rBYOz%?(W=o-ZV>w7sZ4y0fbIVy`Bn zkd`Nd`bbZe;gA03an)2yZdWFwUpc7;1u(+&u8I!>2?x{wCc%A%hVgO%LA#h*Evm3M zSBzy2>C~pqDe2NtJ#u4|m@50m>v^Qgcb6(w(^}5vd4I8|;zs|V@^Ay+nnA_Ya_XYA zAj_!eq*uc)bgR*tn&H#xV6@gHmg-u$Ocu?c24sKXh}>{%kcXH-`1b4hk=6au#?cs! ze2w{LXT+PUChtgKE13QVDk=hmhXU<*@%a}};dLIJKy?9ctaYSJGT1;fr7ncRZ|51a zUp+(Fi}x}SFR(^4_!sFocDgqTQf>c`FeOT2#B;Y`XlV4pQ^tT=a%(G(S`~7Zdj9y1 zjr`TTYS`e>a)~h3lCX5CC|Po=Z^4VlI3rcaVqPFeg*KaPz> zgc9jc9Mi?d<)NTf>%0Kb=aTUG#}Br>m9$mDqdX&Lqy2Hu*O~W zijn5=SB$gB04RIEQT?6h!pE+zu3SdMgJSICGFniwc7{{DVBk_oRZGlg+Ymk4jHKyb zsUMNkVB^s-eYDHu(r&f)(lZ6FD>He{?-s9R({z|NesQr;c~=r0EUAa>%4ZM|jYmT) z*i7L-9c{6_&Au!&;4yY}DF#+z#G7E%WbW{7RmRrJ{VQf@lBE^~dfJzNfK$4I}4D0;iB7k`euJ(`Q zYSBbga8T+(Ce3k@#uD30dQ_(Bq+nfb#{q@3)MW{sQA(zTfpxyLo3+3~)vpo#u=Qx0 zV}J-)ZzeO302f4z1}EyIF>QBor(%PcS~_=sesn(7uyg0js7&C>D@G@kaP^pNxQhK^ zY;%zCwZno)AF51=>0oWHytR;KY= zR_7Tz>8cG2Tl?7MD-E*ZA>qRZ3RCE{YZ@SPPS!Gf7>Ey+qw0RHdi@=eCRyMmRww4BxV*tK)42@B^JzOZQ{e5x_*#cY|&&o(1Y5} zV2QKmlU50f{E3yP&|bTT;Vxok7&vAmnq<05(tyy&HKj&u-+VteD?YPFVH~{+ zVfB$^X(WzD4ur*qMxW@Hl$YY*Re7#rQYF3b-EN-TfRY;aNWq`Tf6n}?I^~ShlxAO z3c+V|f>lT_r2I*^!EVj#oi zy0f!Q37Fsa3qHaf1}|$G`rBg3l+gH+AI|$ez=*8DKl((f#GQneg?~;!wg~O8h0M|I zw~9)LUjCB!o}1@XzSr-9BBJ1YQ4#IAoa3Rs*KWYawKfSW_>xa(kf!hG6*MQz{?Kt$ zi*`Ep_%1R0IFG%QFF|tKd>;*mI_ujt;72Y!S)69=yi=WGNLR>v)wFZ_3){&-EpQjz!y2Uvui(T5J^^vl@2zff$+4KuJExN9{nL@|NXnpJ)eWx5<0dML7{tO23%gUl0LSr30 z)uDGs(OEGP(pY7spJ}ai8cBdlSOw&&M_RXklUORoM9zHq&(*TR8nc(u%1fU37UGoBftQ)sh`lZsdVvEF8H5rCuA6r+T($H=oF}6;?IKj_z{;! zOG@Z8lrrFT(vX|}TxLCM+mztKowF>?=*Clk&5+$k!=*&AxrGE>1xb3OgYU*H(3`C z!`!}u&FM@(h8<6VlrxZH@0Pn7$0zQj(B8kE^@bat}-mU7g^W|>0Eg7k>VV7_>#*) zIxj;rGF_kD|I92t?~T7a{ps*)sWp4F{)IZ%wmx%Kr7yo%Y9Pp zTEX-~<>@^Il-!_};J=)I?4GlqF3 zsEg)DH^tg{dK->kgrRXYqRNT3L8!qC;`M)~p(JVA)P1XA-oOFcLA*N(vu`w>O?!5h zBTo6@C2PzPA7q$M+G=b3$zw?>Re(*i@vBIG0R2%kCJLX@(a0*{ovq7J0KL8oFMqay z>$a-ec9dsG6G2X2rk%~b{;Os$w=opC?*gsKH5$*z2f5^LQKAc}H$`Wmx@8u4ZSa!^NPP-0YSe_?s86?89BW z%hanvF1324AtP%n7hT7k=j*9wQ=Q>jyHE+5G*}t=HqALz%`x`dv#^FE8BPM-YE$!L z@%fHvWHa@Y^zrr8+0Le7pXWsX!XeV=5aVd|o(`35K3zPovaG9KIZD5FH5UtZ9uOCt z2w8KXg?W!^xo0X@o%7S6IcEbsm5on{#aIaow_qG zVq!*2VZq30ZzBJ)l3L;&#zlDUD|e6{n;Vxw7(|kaybw`&%XMn`8to^k62Ge-m7AW$D^(4CT;wA<>4rxEpqi(QJ9JR; z;^E~H85?pqh?Bb}%G$7Uj>GceC{yryzLWRL?ZtgF(>#7;iS}B*f;L;}nkqloziKyD zJG>nGS>kcRYaV-6EkE5>ak3=!q}ex)?a1aUu70<)+I7=9ixgX5$fN2Lb%$!9G13(Xv<)KDd#3p!66+WLn7!=J1Vb`cewt(T*ID_517f@h2dD-Vp} z(SkDd``T(xBJCvcJ~fIS;&G@cUnjWk4wohac*U&=878;wyf#?-;#PC-UbaN z|K}0%a7PR_b>d@fc_2^OVjlwJ^a`w zw!}*M#@#{3bx4H%bQN{|`qa{;E{+-f`cyUIO&V{nX1*~OVPDuiM{x3r?L}otxgJaL z%LJ;l3q}sgh3b?M4(r?f9{|NbI=^{xgZ+3(^zl%~W1-07m1K+2^Q-N$=2t|i{+D`4 z%Bv8!7#$D||FgCB={Lg*DtezN>wdDl=R^me<@!auUxp289UEVX9C^x7Z5ULKNgla` zg^p{KX(yUYhLxL0zi)=lOOb*_HvaX(@>@51W+xl}X>ID|zQMZ3a}v^YTWn}(Sy0gV zRAK$oZy(9pB&xdQFCDX21RGfK?28i8PuTU(ZF0X|D&}oF_UxveKP})M8*ZSIv%eiT z0yQq&{{LSl(R|QXvHP~2I`zG`#dj;L2P+%CR~gEEN7M`P=81-v-fms6`Q*H}Pra}u z{*&GQx2adO|9(&HqD}2j7xg|F>VKjl{AkF2tjhgvm3VZUL&w15n~pAiTbz_N;GUd# z2rwJj|2!!6ZvakO6g5D=e2A(RbeeNBxtxsKtJ%8^20MQ%( z0M5$Ke)cn6X|7#3jvhTq@t-O0LJU1esesZpDl;!FDWFzVvI$k$mg48x9Y66A8&EiHh(M3cizEKG5dy^;ez zjX=B$q*W5cdqpSJ_MQ;6ouV`DMJZp2t4WB!L6r)`I%Q@r^K-)p8(icskd>sEYdzH8 zeJn`_=WHqBaJ8MK{CblmbvLOeo?nz6{F~$7l4TUr``$_MjtwkF9aD>E#XNBl(e^B7 zJ|QIRSrYRzwmh_y-GN#u-t+yPd6TN{`1GOAezNYHnDq3 z(UgDL{l$N%`{#e$dDDUeSzUp}ik{@4?`Bx^QJ=y-wrWd_{BFOU8{; zy+Wl@%-Pf2mCn7sXfDIr^p3mCxswSKCTPW+9a`vUAu)aECBr*o)Zi#Z)&G`plWJB^ z<*{k||EiWvNUwiczf9)HmjC2v!rof-6PB(Z^rf~BbnjfUq2SVo-4D{}Okj(x(ZkC(o?KAS{X{7I zcva7{75f*yDfY* z2bOF&@n01(%<(%I#BJU3IpLIHDKm5)6F0^CJ26G-C7ti3%FGsQ`@_eUzuEZW=2OpZ zIk~W?b6!F7qJoAWm&i?u`CSv_;pix7yhk+tVjFp&ljU^evC{r0%f$XZF<@AB$QlMW zXj2iCj??xxs#}Nep{LG-cF-ro|53gq7VPerKL^sU?81DZ++WqildrCJRtc)t`79>< zf$kSU4;JZ}Gx)2+?N68V%`a(MxN&FJpZ&ki(AML6Muay$BKkLR@yp}foV;HimTur9=W^p!=l^H#y`$@@&bHnUzL~d$;9o z%Qm)LFg3K05C~vfy-Sw6F@}%;frOAkNJuE51b5Zjn|klPcirC4J#GJ1SlLdh#Q%mfyV@y5vG=vDJoftT(^=4STX(kA6t%zGBPrv^K#~af|lXSh=u=i zuqc(~#KgpCBSO^u^zg$E$Kp6i44pGR{_0&lPq|^z*{8qCXJ#rmcEI2k(1j(aftCUW z8_AJ*c#Hgn#EFP8EC_0AQ{7l-8Hze*VWm4rhM((ten;c&cb7l--q<^UQ4S(NSxpwh ztVz%f1ESgtPaQ^aQS1{J(S&G_=DcFAbkK{6=Ts)L$`u7eABqUrG9OV%$NjHP;t zF%f6vPiA#W%IimQBC0~a0bhqW6DKbvNpNWde1So+TTLnI9{0y@_gWG@# zI8W3X1RwR6^2#ej3m-fZdHuvSPA1z)e;XN`CJrwNC^P}QM{$B2jup-2>qYZc()Ezx zp>2&DmXCaMMbFB6Y>$kCC?%=K1!XR2f=pHt%bWH;RFbv;2vM>?N$6p4sXw9l?ykCB z-yB$W%gB;_bqA-x_!>qLDu~VRVI{})`sd&cVkkWBK{1aF{EVXT;IkKm`nWIQZ@E1y zW=X)uNBlk)Yx1kDGFMp*^>vjBoSUNakk|3~aaQVdx>#^xtY|I?*M-DN)SS!gy1XcS z#EVYlQaIHorQqcO_ph7%Z*`Fli~^MKs>J98Dih-s2x_T^m8@oE(iSEr7wKhbpNbMn z-Q)mt4mO@HnaeTrDK)d%M)A@lyc#P^C=xxdFte%q7-ehJ79)5+K-E_gDX~MMYAvTA z!YRUAnPSKcM^0}6jY7|f;;C#+AhXhw26Ci%0OZRCyaHJ)C;U&-izTB+OB~td0B-?* zE~t&YPiYaI5rIvhI1w-Dd+L%itK6Aq=ss2^T4os30-njoa)Q(k< zg^GKMmIOpbgC|tZ9atlu?X8?K*Kcke)DTt%v z)aBWHtv|)UrCYq|M)JX+SUeWcj0H>j#Nu8u5Twi*dh--?>atcfs$X4Rfy>WD8wq5^qHbi<3PT~ z4pNC#G<~gOv(K9V?cI0wns|Ab^%HRPH{HMMb!1w?S=RA_;`(zJ@LkhrRuz%2h~`2x z@x@O@epxkJXbnDT1q(J>p6&4Sd^Ej7{OAMm<8<>+T{B0D4lS$tNZ^;Xt}Fup#2vZS z&P;tcOB+ls3#FUg8P>^MecS1)q>Br)bHYj5PG6eJ*91~cp;Rl>OPZe3V1P)KIGI)9 z%`iK1%;R}l$2p7I2PV^V0RCE7W+g0T`hndQc$@N*;BUH}=>~7Q7D8f!X(o6P2vGF{ z)<09%`L8j!eCXiOa!4aUw2>T@?BgRo z;-Yzc#7BI@$DbP;H*Smtv%pxse0hAg{4Kh9!0)c47N=^Po{8o_HW#7epDrn=r1C$D z=6{ciI*Y{;n@JT-rotuM^`5x6GwyRYV7(_Rc4^4R^GArXR;6p&fU*FVk>w~dm(&++ zu;3<{wsK2Kb|+o_a|$?u!_Qz}{V;g>Ud@BI_OD()uzkO6Z$;#S50*_5iQ;W&TP{-L z6&W4Z*YWG+lNQlpnc8w}ZX}bLsZulFJ0L3F=P1(!i$$^=MYqUNfVe_b`4~}tKAaOJ zY*a3!7z#cp1|hY-UP+GSu1l(nNfsrHBoKWVP{Bcw_^($Gn6j=sG89uhFEJ%4g6Gw* z9dGQZ-La`BVO{TrO?BIT?EbMAsi>d&{^ykH8m#049^#HL0B(q|JxwbYNKlC&xItCM z87x9lFRhUJftQNkL5Ba}cf6#LG8^do-l9>pz{>xwo4U0^A7h^^9`S?~S z737#QZg1JSxbG`V`)^9BIe6Kn52+0aAt^LL9A`Vv-C@{wU*$dD(mmKDwSw7J;y}aT z$H>?b?V+T~T`LDyEErm}w{ou?UN6A%etE}v*dWJP#r)#Mi#OzHM|Jb}-+w>; z(EJ;Rtjs`ga^-f-)z;Xc)eqS$7Cl7E;M6N7YEb%Iwf4mJ_OSu>g(&DRI^&XK02lK0 zrynZa0ycP%Mkko8A)IhBOFNOT>pNaC{=0evkprq69{5mpf-5N^vP@pm8*Dy%Vf<*x zbb)5*w7%&_dUP~1z=s>z%HaO)Jy!0_GKG_Ekap<$6=0wI{Geazc9AB#+~5t?ct$88B1vNJ_#ETR1i$~f8e1iF<=#)Y53r(zBDpcSRBeR z1=7v4X~yY%%OHs6HW&UI6?&&jI|fe_`?9oLh6$u+F~uBCGdnU2ePBp$^Ua6LX_)odM({mKtaU}XrBe-EQkv{2u3fonMU)U} zT1Wtu8aiO45UYfX3K@pdS_oDhjPAZ4>swD3_Z=@AJfjVjjKFjO`19J?r(21tbNq6iuNZ8aPhdq$Z*+Ym@M1XHyg zCre2muSB6W;D(*qEaP^xLF;9B#!i|91R+Jtz6 zXwEXXnXKG%zI-Cb5Xz_xrXYI+e%d=PnqQycabvZ6{@b68XwI(~FO=w%|x%aUjPG zl$D7>Js7=dO0BG#@8Pt8#*PrquknO{|6*7xFH(}<1nE3&31@{*pS`|;;g z&lH$QHEpAasLApY%b$lYMK(dD#i%eI2Y4N$eWXB(ntP754=C-`PS)`yu#-1F;v+7a z$47j`M|}L*@ue?)DVCWC}dUNna_JRf34CnlQ1XRE~!1oZ&vfz0RlKikUw z?j|uz2zca?M`DA^=9h46qvLb0PjrWWmOxuxk(?y7zo3{!4J?ZP(~nD@Ff)&eG!X2I zcc2xyllGP~(HtAe(LEO-^BIz}#Qk32!+Z7juj^X7pnKuEj& zT2bw{ai`BGE}BbXG{Y@MF;{eFDH`V*0cZfoqY49;lcLBDYU^WXyP$T+3!)nFDblMz zygmXBR;OVxsD{poX#5j_&%^nM*GGKl^Ar@#m~wkKIZE!H*9BrS@g#L?V;>Au7*lSv zOwpl|x~PgcG~kqDMVcAnez^MK)!j>%4BWb=ZBI zaSu!MWXI4s43VSHK28G8LnthU6xsmzV`V=_Z$3&DD#WTv{0td6-+Ov@)xL!0ZChG5 z?`YWYsQyutU=F}fC|4FGw?>b$f}4m^0$>D+-IsPZ?EdD!%}d7?Y-!y5xbBb>ls^8#t{790gP*OOoGB;` zr0Km`mD7bali5a4Y3*6%UFS-<`9P;HUztm7Ec%HoH-gWZck)a^cQJ~HU!4) zncuboy?UsyWG1`J1MKD;U~rq~aw|sj%LdMrcbqNmIB{k0SP8J62Z{{6MaJnOn?1)c zbxc=z_5!Ny?4l0gw)vS*E;I8qe&8VrBKw6g*5T&HSkI)~>n_rH4j20}O!j;mP%lt4 zZ{_jT1XS?5&s+kJIsB_9)fh~-kteOe!xn#LwKvz?f9eW_ErG-^+>Fjmy1fN`TSf&on!;kmV9dF>z_tt$-8|1kUBo-)R)ac|RHXX;pjv#i3)@29IAJexV!+ zf(Y)AQGfNn+X*q4?u-)QkRh0DbmwS2=|&KR-4*?;TPX6zAfHz4JFJ^1D(-yhDwYSJ zjgC$yiHbz0(yhegelWRr9lJc9t@r2Dd($jaPw8O~xEZVK2GLypIMH1Gtgc^ySsEzo z-%ISTH_Q|ooGCgu7Ldv5%&YRI*#M+7aa043(;&+00v=^MX@90{EK4UmSxF9=$B&iC zJ#KuVcGuW36wU3~=J9N;>!d|unHh=`1%922MDb!u)tElfXgve^q{1m$=s&P$S>crM z<<#3#jE+3Z#0kT|d4uz7^4>x!^Q6dvdM)M@vXO z?sbkS>~W@fe8ffb_=u1Ah>t%z*m5q`0|n!iS6+$lnZH^zmnrKQRPq|tX%3&kY3_8) z(7YY#&xz)Lr_gBFU|9dNjs%ABiH64l@tj;AcNRYn{+9LsXOA>z5mLNJBekf81^*v< zja|fTCzD>{#BWes3{2(yD%J7}byVai8CI5}F0IWANZjgnrG{41y{TPB)cXJe<~lLGyKD}@UK$`=G;?+lq7C*vbzbcRd|RL&N8 z1P61-`VA@P(!BaEkXVE_HGyGD2C#3%NURqx>LFzt5LN?91w7Aq_Wdz3yuT`G@yM+U zhQ7ABb^YC@`#Q;hhjny+$|J-JbnkK0fQK6T02z5@_!rN1{IHF5Mu=jH^vfQZD9l^< zrkmISaO4vO+VleAnG^I1Fp2-h`|EAi?W=m%FYI2ip=VuU>#8L4?(<#e?FcJYz{Da$ zNGViwUO^M6#VwF#21(!EhC3GZEML_1&4iAX2WpcHMDHSV@bOIN*~Es#PjHAR9j8pIG-3Fj@HeTjF!*U zThnT_u>tJt4{}Ub4SXJvhE80SQ%&ShjXM)ECoQwN79rV8j+p1N zwX?r(Wk@#mNRy^z?-9K}%j(KDgG30D_gse7d(<|OqZ`T9g2fde6@03ZfL5EV2U_=Z zzR{Ig0ivoeMe9q}BbYng9856=Q!oZIkW%GOt_)<`fc{MCJrqmADP$zZ+MXc(78hFA zIW`fY2TN4SlZbrj4vd~aeP75iy1}cPsY4_7NiCvI7;C#`YVLSRAjde9VQ}SFyV5Nn zXnOJ+#*;0ep*z6N+~pML<=T1rO8AH|m|QbhSlRHDhO_`I4Ij%>xs}0GEBU^jq!~vF zOG#5uk>kZ^;B%~EF3roE==T=|7CX$N{3$j&9ChQ01z5mP82qO<2VF!X(ivSA3ml9`I)0&83i@d=A9|jl1Hn^_gkFVO~ZMH z*?f&ZRU@X@hK^rG>P}4k47E~OcSBlYEbk>FA=;XS-JbCMiTAsC2=GiZ&Y@~w3B`tBhS`0jB9d+5 zvrMiu?Qo&i{%)Ug%1Km&XD6tH*d?qv1&HVM767CBpiv{w*nheN<4kED03H`HE}F+j zTr`i5_=u1A_;aJNu`$~I8I?in>gwWq=C5DBQFJDV=D^derdab@8}iNR;!XHpXyVe} zt0&m&=*SN>;=@nFic{7AhkRCW5|bk@-(x(mqPYwZ!~% z-}5hz{Gy)>a56Tb!e)8Dc%r$W^f9Xvs;v0q5W*@et|aR7%L;Is zuj<@%ThkpM20sK&1+GzW?;}b&V`Th| z?mygJdG~JpfkzutYe=gLwTFnp*CuN87y=MDft~puFPaNXG>;xnu+Ytti3|Qeez)X1 z->!J*THq?ga*C9c%cHa%K+#;1qUJI(A53|j$6QwZdd$xlkvWmUVHopVW}tkk&q`6O zH?HO18+jwCYWt#rTb2%fb4T^IH#~2R6MM9G`_mn~!Y-DnH0C6;kLVs-*Sd9U$IkB* zKkNm=A$s@(%oUW82RluK0Wvm7dO^a5eH#K9jnw^g`h}NWFTX?HyS?VX#*Tz#-HQ_j z)~#(`vAJ#ambMKK>K~kd-&6g1j5Dl)bogj017SBaKWu~J1>Z}FwL20!H?Hkmw4rb9 zT^;vVk+x@gUpP>`e{J8ARYMCCT303Z>{!#b&P^Ox0z<5MBuqR%8~Npy#@*i-ylF+> zt@qjv*!bEYjX0%DSiD`{Py%Nm>g?;g?z$`1S{^khJpJ_395;U>1@$xDs`a-#I-|7; zU{Y6C*(_!w*v!p(&GgiSLi|?AIiDlZoV_WSUoo3`bgs@s^VqX4BJeRpCpDfD3whWc zX!+z((_BV{Crtz1c2~X`z8)&PMh0c&_FLze$hhFj&^wB1$1;uNw_f>$jZlSX%JPK#HR$Lkq&Fo1*pY7l~B8&s0ogYDh*)MS z@ctLiWLAjDH2~(GEz}O=mD_WTa2)w34Usf6b|GX`OyyV1zS;uT`@tfOCru}$S;A=+ zpsCChSfDxrD4x&}bKBV~N{r~`2?&<-XBsDtmg9b_MUmHoq8F^Ojjczm=C_7qtj$UUIxlu8fNNhg#r#2WCoJ0_l!qNTNUvw#)tpniCbYYb< zvyw|T0SidF*iSKNJR`g#oBnv2v#^d&ZWK~$`-)1$ewq%@<`_C&>dm!6XMi(LM_z7& zo+^RWxdUkS553knoOc0YV<(Oohx5xjj$a_7L3n@x=^x@Vpv>S-)pPmP?o5+E+XPoZ zD9hlbmqQ3j8fg|^jv2&y*z?#73bS;^U*oVrf|joFS{r*>AIdO7cqu^DJI-BWCnv-6 z#OZ+X5f{zlBR=9IKK}f8`Q?|R6Y;1SDi8?7_spMN&iv^G97-%;aRQzui00K66wQHe zKG5GqqB-*H2j$O=Xim3QF){t;fBt8zX^wR#yz#~xOeu)3{Qm-h{7;DHOehyWOVKR=Ia~&7I#VdBg)!7iGh`X!6z$YrcTYqcsk|je4chx)yc4PJuK@}W2?=+7GF?~9s`TX6K zhHDAbg(WhXl?G4(;JcPIe*eR?Wy32L4z5|=k@#@)5j;}R3J?`d7(4`jjicaEi89T3 z-KD`+47j_d*D!}nmVJ8gk|QqRI4zwkAaJx zU6>V0n>!eBCHfIU3wAiFo3jlN@!drjB$eW91t*z$zVqyXx?RhAmMrgGetY%p@ASXV zP`sbTEt+G63HpZoq%YXEx9-4yP2T+V!JF>1?YFvhXtk5E2mzK(sMY;}E4`=Up+^i4 zY8+P}wrrY=KdgIjOY^o3&D(c0?c3O}c~$Gu&3$XOw65FOn6R;D7YV%kXaX{f1oyBs&nsXkw#IgDMq zc10&zY?l5n|NMWTy)W9JAgl7Z^1o5hT%griQTFDR__6@+P(6}gJABMS-W(@Cs-4R$ zp2{=33LD2Ww1IazDX9T{-yp3zGpijLHeY_tOp3;zXYyuh9O({A#tKS%&Xf%v2aVeV8ms-VaWdBgd6lFNL|tJD z?g&6*F72DlyvS!`^dou|1i%$r>l#00gm*oa zWyEmB^m6iQZ~s~ST$&}2W(8Fd=+yzBjfZ3L@B+KpUXOcH`-0##Wg5Q;r{J(K1g`c& zCi1Axo2PM>bu;2Q97Q47>dm$QA7dt0=gYG>Gc4c`hdnl4q$5{m!D8I}W82_SlRM2A z%B`Hv(UVJK0y-5NP;1cSUct2&Zu>waDX ze=I=b$h~j2f%XmB`ed#V6y9J~&2&~786u5m-iHE-H@%uatP7_by&0ytG@Uoc24XHm zxz6R79ECQ}*=Gw(K)nwft(=3_fgGzd)5t$+gY9?Z8o47jK*2Nui3PJe#E5QcHe2t_ zG)(1`PZb%774s}-5Ns8*mqewMi^p^@(s%440Dr(HKa*$nztc-`;2$HJe~fee^KqoEP=9zBexO@6=}M`f@0FkF}$A4gmwpMJXt)GXX6jm@+nn4 z;52t)(-r)B%em5#0zGKrLubl}W(t!>0B+M2YI)H#TBM2OXvHHHz`zlnw375%S9Y1> zkBw}9G(UgUn|2k7Ra5C@(*;_Pa&5g+jpAAfe-amO7|n>qX9 zKmOxC;=AR4Cz?xtS`QT)YAUNNMkKUY49scX+0p#@70sg-a#+Hd&1P7h)`m^XhL+D?#Sulxm0SYmO1+kx`D9a759+=ZO7R&R=e?+P%KldIP9ryY zrhB2_&-anuM-2DxsZCtjwQBXy`kjV-)3Bxw;nmH32G=i$;v#)76k%M&SvS;exoPg^ zMZ-5AY}lQu%^WAwVC4pE3UC?T9=WiudiTcegoNg`-z$A|n#`6@R~)RqeR21q8a&9d3Ly}=s9X*@W)#x$?6c3tTFay3%U}NT4Ufq96Z3C> zoMI0LQ;h+Z?elbZb#%72%uP*-Lga?*&(9a01x_TZ)fyWI$^v9}@812>3bo2VOA3a~;p;>bXE>i7VSS zm8P4^LTkA{Q}4^Ha29H~pEr{>Vtw|i>GX#^&**_#?#wed(zJnWE6A^4+#Y+izW){T z=&#IU?^aJ&bOp;t9nV$yb1lH#p3K$voGJ(L4lYT+S&;6?;Mo%3fsn_I(vcb(Kb0$|fb1L1LHG%9Z2w-$(Xk3|EfNKvQFGlh>Z7Csx0t)@P zmbokwu%4$g%4Z8Nxw0z&Ztlsh?muH76EaO^MtDg3In8*10nE996iqm_A^^aRbnRTB zc@|zX_gc>js3%4!bcqV(JW-%qs%WmT*=T2vk{XSE-Y~5<^cU*L;Rf>k8cS((i@y9#@Q^5=csNbs}v+@d#)Mwnt<8UCe(v@QAJyAybLrR=RX9(nS_$Q!OgZw>{r5nvE zCdI=jyAQY-q3lX`ngOKnxokbWeW)=^<(WV_cV?Kp*;Z$|(UoCDb9A-= zy!mo+ttShb40NCc`%z30*`hOsw}xi*B^T5l#`ETv&dwgSaw6A2UE<&&&Fvk(nxR02f}$klYiu7Ij~Kj z6#&v`9a-A$r^}Ghk7og|IMdyv{rQTq%nISK4Xo%rr;CYK3a~dnPI_LfYJ8?__(C1_ zSU5=MPc)Fk3$P>T!~YkXRfuLyW0BPHPX-esj$|M9W}I4gY_N}5k?`?1XP2>!`M|Yd`vTW ztqV^ob!toE51;smi{|kWAMp_%e|CKJt6#kVwRzJ`H^t4uf1_v)B3esBEg&`Psx3@3 zhg{H><~kY#%70Fs=0x=|!NQDLpKd6(oIZUz?lk|)M05FLz5z2>Unn>+Gd(^#?F|Qo z&xUx7QHYQsg@H!!^?)>zq&ome?zIC;mvw$)<>0N`8aLLHCR{vFdHoA|z02hK*hU1L z((Y_nkw?(tD$0s6IYjiH5@2F1>shwCYu%Q{q=VK+Or#zhOXvW?R(b{Z%w)d!1@Xxr zuX&m|F5E?gdkO)@d!zi-;cc+qOUATEGvyy zM03jB=CIErG@mR=Sj1d}uE|5)lO4am^jmYYVUC+-x;gbfQeXgj;^0*R0?U+zk{1cJ zkd`|P2jGvc>Rz*GU~N+M-Ls%(Q1$^5_CNL88zh}lVtWA9hc42W*s*6}|2H;vE#6zT z^IN({HKf*!l7oAc^na)H$fmY$+&c09eSP#B2WVP};V*@>Zb>jWID|aj!{Mv$% zTMpFjs|i?Dlsr9J?4*#Qk9EX=3=9m!B3Ys|YWS?z>&f*97jk`wXng#|SGznfA4`I$ zr060~L-|@#?zM!9>Ytx!f_jE*-@ZNCsQ_mbIL+aUk3Vf>H3F2`%multv1RaRsgP_U zPu7g)Tc?c^aE^O*O#`RicjW5*=`~<{w!hIrXs^n^YbNRNHGhf$#BPvN?KwJsw$7ba zJehZeTpPnnHb7m^02R671@#uRRERfp=bFfSGnfPEB8tu%Mh(&ai`tpYGGB(lo(GJP z3NRtVpLT@8L#Hl}W?u|v8px4qUovb}<6u$ET#mt!btUqL78L)+!u_W%aVh2Q{K~ph zmA>R^)M_)#5P%6jWqY2c|JYTypD8^IOCU-J z1vD*5N2!Wno_<}0(PBKwg!b6GTNU1Mh z4@UBd0u7WR961(GW>uhcm`=+=*dzGMDsbidGpZb!CeU_Wx!RF4C4Bpoz@}|&M0#<2 zwxDVp3k+7E=zvmB&NY#@-OxG!%xi$LfDPQ0TZOL-Rg-i~f`yX=9OZDfgj1`4cr)>{ zYB;-~uTE-mO&rsEQp({_x^t|KpL9?>OMtsUG-pUK*oD2`zSCEHnVLYdak9Yd`fz|g zUj;P*dtNb*)y>rpMKS*@g6JjIK8SVG0DBsH$<%B0qeXfsCjf@Xm9L+8)rQYgT+fMK zJiE|kKmNN~s92D+%J30g&*>}lSxmj^9z^Tl)e)hZe7gYAsqizvmxs$|uuwmA)G(7{ z_GLi1rF!yQB?OY-bE|Q7_ymaECg8CkU;ff4HfhjD8onCz9}Lqg(W^WJ6(AYqzX`0W zE8~^e_j=_FbZi_piOHs+d5$8DF4!Qv^SAA`4}TdbKfhk!LG8A*xiWx+kR{2#P~T zR>ZI{egtS%PlPT#c}3P_i9G?T#ZV#;LSRNba5i_ikAo8U6^JE z!Qb-HRUdZi!pc<&uq|YOlDBq!oTal*M_w;@i&pygN=7?s886`zIJ2B zn#9H}_h}v|nKAmQ?=p|QDCBYx0TQO9t=B6se4)sH7O?pfcuVO7_XgwEx8<9RbI^$PbN96>Kn z)jsKq=k&ppS*rO)qPvtOq$+DUo`fUJrY9=R77kJMV?*6Bh$tbNzJ+H1{9H(6X29q= z(9hx^@wH`|sRjDDgN&mYi|zjqy^1LcpmDZ+_sCt#dRH$QT(-4k`JA?_Je)e9%EPpbDUC+H_;6U}>ZB46pHLkm9{N{c2iSG~m zN|t?ae!_c0c&~^e4pd!+NZ)J1Pv0VMd>FYl2PcMv=d9vl#^p9w5z_22Z&}%Y%j&+x z-*0|kiuAyxOas5@Pekxe!c&PIUoZj->bYyu+xJ>`BsQ&wOL%AF##bHBdudJ_jsJoh zrbHvccrL2>E2I$~w~ANNHL1mt-7vv0$H^+(pWS3s6TVtM5Y@wpd)*tv4~k9o!FEo* zZrQTFb5%mengiAMyej?NCd z^$^1)7E}p1B7$pptEb{#?Vin@YuEO#THUpJb?=O|Kc+TN_izvU2H);%4 zHSkq?tMC5i;6kW>?5Rn*I#WjPpb|Cy2VkF`luX$!R<60=A(v?vM;i7@7BeWeSfOl^?Pk_H}|5-Hv&>{7)>v%=Y`S(#YpCK*3 zZ$!X%x&a*M-gF}<*C5RYGOgm{Ch3T2{DcOS>wsmlI>ZBx10X<)@vZ>e17~KiX?qSbtZm~N@>0B&+fF+sFuJRly^Awb~oc=J- zFwIn15d7gx;L3(U(gm|Kd9qGUt+Qup+D>1>e-2ViJm|Y!!LhuuKo$Vps~l;D-ZMJv z0O$yIp1C}oqxEH1K}07IU>rHc&a6^sHE?8C@hLV(swtFROAcAM!)24N*RkRO=?izA zy4HVOKbB*J4f7>mBVC~}oWOB3MN>s)N8>JsNXHos0PeYzN+`4h-szy#380OI!jhjA zwt1xntxn9;60#3#p8~o&Wax>+DXx$Hl&JQXD9I(F;#-ICY<03tXxs?a9%x>>sBDcK zgd07m&>o`X;L@j97z3(VsU80`ModQ#yhlh+aOCJ!lB$&tSB&SEdMZYg7yzCRvgdCE zr`xud->rV}4~A#ou$wyA97a%Q+<0n9^z3RNJtwsQB`1dr04AEr*0dihZGAx-GK`a6 zADgS=3_U<kNEi0k|S;81c~#8#$lM0fAGNv z@%{5RiRN^oJvuUgKy#bErqWPj(*o1nW;H78RY47K`}~OJgf^a29ffT@dGNspqoM#? z%faW2jEq>JJj&es9Q1qnWi&$l;b6C z-cKq;U*b^ z1}eLuwaUT#(H`RdiSH-d8+Rl$ZQRtpVN>hs-PPNE?fkWa_+V8K!L@@B`Sh(RBHeK1 zXbRLfL%HFC5>ra#s7xjcC_PG8px~HFF3}JqnORE}3JL%>fM0>XEwgv5rZ}ocJSv*Y zj4Ce)4EGqJAZ+F+Q;fYl%5O5Q(}-;C$V5gNySf?i8g?jfCrU~AzN*_dw{Ka|yEvg| z<=vLMdtlYbejZqt3=J=T&Ts*r%n(%0sT>7XNwOTJjR$e{NhME-X9tT@L?KDR*>LmA zYDrPS<(Og^nk^&LbS!}Jt&z08IP}s}?PqFvD~DwlF{V-i$5%Kyl((m9Ph!)~JIx18 zq7JWU`Z^IwjTfLObQY_{k@=WCi3MJwO&pqR)boukgZuS&-qyBjTl>1Nk1g0+ zyYs@>Z#k;PN7ZIn*0zz(4BO$m4SVje?!Vjk&=Es+HK}7;PHk?ylLX$Jc=uq<-AjRw z-@D*j#(j1$n9+5$9qz2GD;slWxjDdSOAMgo{mJwTyPLOzhkA4C#-!T4Kezwf%fbi% z*TD9qEJQ8$Z2!;yU-cHIAp0ezrwh^hm@t1gVPcZN#&wd$`wVyQ zs<~}d=js)G%l6gnw#cR)()}&{UAGQ@EwORanvPZ5TXtULFGG3bz45np*WI?PcjcP4 zHJcmPZ);zhShMvN_iI-;-9gLU3rBAG+W1X7t9QLO^{$6FL6b-QikVx{?H39n%ElK) zx`6{_`v?srr90e1eD$RMj^_QV8<(wVTeYTREwHB&TGl1i?9OSOj?1UcI-+dlshDeifAsgJEp|5f*-p_bez57$gPFU zPa)kf4j|?c()#R`$zx@~bVD%N23GDaaBa^~4YJ)ce8w1f!UVu;a2W%AJCJJRGE7rP zwf-x^ctI#x1$07Uo0>aT0T>YAhWpd&gwjchgb1)ZxIiVp;j`tD!-hy|)o`J<^GDav ziatbYo&#N2@5wSl*5yR5hE(u@ms`fOwcry6%*#+w1=wsG&s-VJEe&Uy0H{4&UBZ#Es^~qg={RwXbO&+kE$v)hlN-P-Q_OAbZ^!P1OdgoACoZ9 zfgZ-HJPE?lk)cH4jnLa}*U>UQwbpmYJb0|4@Ao#`W5AgiuutYygj2MTGCEnP8T@56 zX#Gv*;SGEVuN3N}v^1Pl?S2b3OQIFvuoLM3B1P4COG z0lIxS`zn|$a1+_x4>q(f;`(_Fxci0FYVPq$&lASkqx$CamvBp%-0vfGzXYqk7P3YO zY-*;Z4ba!n4YBTr(dmN zO-=A>J?E}XI+*W;irhlGi?5xMyIdqXy+dn1t;)zT^$eNyl!*NTEw9kp5hr+}< z?KX5^X&y5^@c|8UoiP4@AShlEfh{zm%OVmEQy85Do8f-RXiqC~XPTk-F`T6(*Cr^U zjn1he91%!7TO&T=qIrD8M|{M`b(3$R_Hss-c71()vCK{O#n{+bd{Otei{>7;or&i3 zLkoBotHluELh})VpDWS)hBJrG%EGY*x@gv!+wCT5TSM&c-tg<6fM_10o6k!&lB(;d zmTry#7F3CR{wGB?$(Fb%|0Jq@igfl&B_ENB<_sLnbTrNw!5Pmr0homy(?77Dcam!1!({&H_mymqjD$I9+Spyu4BPrAmJPQY4| zXJ}>)S5Sgt$5n9z0xCt35Oc^=*~rgamWszmg(i#YeiK;OClfCv{L>z~RD@rjB@=hm z-MPAB)7tiJo0_)*MEH!OV3Z6fG9TEf<2AcAWIy73X2$g!6o+WAqx z4$?IXo_GT7Q03XO3#3mFvY8I+V+0l9hI2+a7LpqE$yQkN|Ad?2R~@*x4Pb=!qWeoy z?7cECC{jBs(4ZdbA0gv8oduifw=U~jy1IA8KFj{!^!(OKd{~J=q%}RYXbt8Icl+d6 z7$#lmVc?>qfI&q@#s~z-9Ig#$KW{We5vWV^F2>raD5Pf#VcF=ip+H= zD_0gO<^eAWQ-^zin%C%v&|Va^dV;q;67&#zKN$rM3A7q4Z(jEGv1Lh?q|0OPg2EeM zswo(hWdR_;4>dltt8Vk|+Kqc!c5ZIov9We*Qr%9kH~^l`Fy33F3F6K$9NS)baN*#p zCH;%;GaqoF6_e1|H!1>!V9`9&N7^ou%e|xvPD?1*9Gg6|sv}`-*Yd>1ZFgAjzeF?v zye;4z$whpu2Eo8J(ewmL1E+Tg)wdU|6v{CdrrJ9%QH=u*O^B5=WF=}9TRN2Mf?alS zgA+htntHMG>Dz1et?ya~(3M>cTatTH5A|ekYr1Xuz~XgniCdfYJZgJ#g3JPu;LXY3 zZLi(Drf=znj^$h1ApdjC-R3*`NPjOse4p;yUkA~A>XzGD_nxYKYL?9TiA!c;o``R3 zoVZ5F+#ngO5HGwv{3WY4oHUXY!4cFW18CX7IPQ-N(uhN}jGCJE|w|O^lz? z0c8cq;FCEz_j8Tp%{kD)dyDk&E`Vs!ef%1>9(l>YiHjsn$EWEbfYg&~;}2Jn^h$e1 zS(mmC`4x1k;=u_U#3w)ikw9+0AOz1KDznc47N(3O18>AQmam^ghDmwojW)Cpz`T{J z%aR0n%YutyFg*BHu;V0%xi65Bj&n9U;a!S!%W8*&j7q@SkW%XTtcJFt(pg=XGW9-RJ<8)pg)1HW&E+tA2aJ&>#&>BiYSGrVyRAjq?;9R;v_j|8t2-SO7z zq8}c{CxO2Rlk>2k8c?F0gApd*i_x|yctShuun#V_c#7BI5L^QwQ>o?wb;|3=beC_x9;s0Z?T`!E+Hn$PRziZexuC>@S$iNYjLYIx`D*4_1o{Q+JBLM(+4XXhO>Z~JM?{i>U0)R??Q}6!w5W_ z>=UU>iM1Fh3b@41SwTWTiiBBwv?4LD9Vkt!c+l}E@aoD#QnS2njP#_-JYl|NL5?}8 zB-PA?>YP9U7edq}EzgI7^6a-*?=m=EOCzNRo9|fMwG7fA_to!B)g754<3ZZsu9kKr z;S0z#m!b)`JnJM7)oVe*b#GWu%*ztRk%uBt+Zy|(sD`jbozKuljZ!=2WD@N1R(MCy zINwg%4(RXS(t7*quB}^|w>&d?+Q(MvJT)ORITe4!>q6v_U*@=ZQjbKtL81sIDg>ia zFCzv@5X0;YffEs=a1UKAt(Zdh42jgs+V(IbglZ;sJ#N7WUW>4ISxI zWG1!i$eQ-$pvD43WkdVAHNC4LqjFvMst?;=55OW`1}B&ZAmIn~M>e%gFDTe9@9K@VdTA5(wS6s$J)Mi>pGU~so8p;{-HK9 z6l8@l9!hj`(XI-Hw_?V2F=lsOhnb2AWfP+aBSmND70aHCH@zT!!0Yp}(v+iQ-lBRg z2_vNUp!r}z_u7^13%9iduAY_%jl-SGq9D2It3%=TVl?;ssoVm;aR z!~E8>-!^{tpkdG5w!IGy7C#~*T zuz2XEMUx8_4J}^Uxnf(>&KF%TIY5%3cSVD@;y~4|RXw+?>soY&E$Nc;q6Zs&=tG<; z9nps)1bZ-{93F*H2sMm_3m3-cO!4uT4#vl4Ut25|HcO`_1(C!|+M{z%flAO-oXAoyR_8x8lwhOFS7@T&dSa^UG)Q zELa;zwF2yg+I3aclA3byJ9N(E)K9|?lQfHb$OtSKN1+91-7{%r6DPGTKfFeDbGqjv zbPDCCx+?qd5hZDn73W!9f|VUvnX#L<7gdT6o8==lqo<8?`T?auP$u@ADj?y6GizL@ z>n2`n#(Cb=QAqyuW}AYkT6j}okTnlmxb%iViY1h3399#A3E3bVol43ayO~zGXOA1e zw+!)4J(bTAQCXPaZb~QpBaX0HHgz!jos7%rt>3 zA8IW?&SAJR9CM`W^hJLGmM#M6252cD1}@r`6m^=5Y^ubOp||UxnE>7|kinspGVpU6 zOB+!7Em{3rKolN^igY{&bp^=PG{K2Fa$HLqL#z;jhhQ*RckYAkGgn$pULZ{_#zx1U zN(dI2h)iB>AN^x98I8~yyuwIS?BtT9IB7sRzBW3US3Z}k89c7(dd0{Xb$=!rSg9y~49cCwiG+$L_7Il#)H$>pb3UyG5C{tTFr0@Wd=rszH2b^1TG7AKN z8V^|SIUbvJ`KU8PvEIu3gr%BH#!0cFpDHiu3EtJZpE_Klb zfwE=d7ZD8@A92w zqB$t$sGHXS)7;$J(!g}GkK4n4*P=OFxiMgCv}*yr0BJy3#i@yBFrb4$iR7Y#d>Scd z;&qcnGOt=PkFaz@giv%&DMY98Bsz;#ndVdgicpMoge8elF&d`D=p;rtF9<&C2*Q+w zF*4ml+QxwCNO;ATF2e+rr#5qj*QPEZfsbLGQ&CrzqH$7T#nDbJv=lrtKY4)C?J-vtbV5DAdU!icA2O6frkK_c66((@8mN;RL&@3n}GP$yGH< zY2H1}PE@vjpduQ0HqUpQ+S^$C_J55G$Ik3Xe zLq)Cq&|V!v#)7i(JTLhqge*&}@GyTx%4pz4yB$N`3sL;NK$j;xJ1gh$NUVG!E1rBN znqNokp*vhzgwW*(1$rp2PgHjiFR`P@F~$g|noy_7)OVX6UERH5Y1hi_O`GmD9%v>t zz`#-JIf`oeg%izb4gv0G%9#x?ryea=1SAk=Xa;}+_Q0Nbfd;Rs?H{nPM8vifJvz*N z2KqRF{snwx!U#F=;UzP#&;H_|<-QG7`&M*qS~aj@uW6ed!n0^cHbtjX@+T)LKChsp zO7K3qkyIN-Wk0NlFZ8HIR9~3PBZMTNETw^66;`B{h&Vw;A2vU;7{_ujN(WXY1&WgEKIt!i7irf1p8u2pAi&$__=4yB_AKTVv6 zo3b{xty|Rp^<}*a_f+kzBvm49qktXQPX^BqKAlvz3H0%Vf#tiZ62GT?+)8TqHt${2 zwP<6$9wXfRHwS7%@BG}>Ax2;;=zWLGm@6D2N zDZ&9z;T6X(A^&q#=c+aBE8+9DuI)dzzYOBIm!G{)d*^>U{%b?)+C8;9j<+10BX;$LhY~%SA9mk4^ zRhTHK0M3aw+cH7n;NUDCI9frBK!?Knl@kLzpr<4Rx?Y5p1`Q4;qC#}zg_Yi%szAvY zEx_|krDS*D?x)LqPija?%}}ns?gcG)qUWBng6G@OfT@Dsb2sUJuWqRDS|r63 zI%M+XT0uffB7=*mz0|Lx=mSzedDj5dyWZCHPt0-JjVn*-FTHuQGo-PB= zI6yzb>D3T}>HK3a3iM8tbV*}?Tpi)w?ClPd!4t(}$4jP;m(Ly3PP|w~Of#h3$D%&* zb_&1J9RYRm+N!p*iJXQpy0`Rt5!L&Z|>l(%q>HCFg zxJd8GtnoZ)3#L|b*%o)YZU!vpc{N;0MF3bj7{prdPpxtuwGO>%MT<9+#%JY@Qy=&< zu7-1fic6ixyb3{4W36F zNBb^4f9Rgg(urwRU`rp)E#=F`2-bHLb;b5}9QgEbGZO~EID$g!gP6d5k804qJ0Zh`&ZaQZTyFaqr#lq8}!E|gYH=vJIh zH&v_ljJSgEbahhAtG%rpQIU%B4G~H>?STm`%+DhV@C{}>V8j8S3hW>3+!AHxD(96~ z7AO&rxh$BP&ys#cSzQM)>jt{?BMOrVEi>b1^wYW4ku)o`4sfZ4F#r}#L?Y~PgeB${ zppN_adOtqmqIrD8M|{M`^`bdZA&KnkuYUEbFa?h#v@BS#AikqMA<;Yn5;=(GwN++_ z1Ffvo+ibeJS{w5hd}QS;kckpVhnMR^L%6u+D|2gV@}th5&WeFx$(Qk`|r~4K3w`J z&?!Unq7pBtft1Q0MWD+3jG08i1=0=4lQ`K1U3h{x3R}-@Z`!wbVDXZHTX)uOI@fT@ zg>!if42%+Im}{Nc;laYmp~p5LGvP|6%L*k)kZQyNW2`wo=A*pE-U#_bPq#}r{6=on1V=;Aq7u=oMk9z3}C(1yV zm46Yb>kObaG+9>IvJ_t)QaZS$=!G05(JKdtm6bpr z|EcrEy{3anO?R*8Sa);(SNFFk!eW^olCTu%s$g`0-gO?+LzG&kO{rFC;c>&hjAHy^0or}66qdSZyU zVE3onviH<&TG4VdbRn#1-LR!?)AsJwYde-L?^=Dj=?8ZB5fKXpaO%D~^5dlHP3wjh zEb3o)Tm9b4u1hp}&R<6w@6_J8ui>`M&C3@Je(l!rTej3DK6>p?Gilyiy?sUh*H`!7 zvZs1ye*MWY1bnk#V+6jl_6RC-gEySx7+ye7tn`FdGDJ0Am3Fi%j9PKN>>(+|z=(ov zRjwC`yrM==Xmf#VHwVTNQ~%u@WYiJOp4!BO{*}vnSFUJFSlyJct!L|+)@A!``^-ca z#0~(cl?7g#dVO!h!S$`+2j94!z;N4`}Z}U0Ws< zcFoR)ZC@Yz@0&)xvAlOFz~2`PFJ9QcdR@nk4Gr72cPCOQL>MHK-!A+1wubc!hQ79F z^wypAJ6@fBrI|FI>^pg&a{nINZTHsPon$$XSai>zmbUcS-rQps+*6DjIf>dQOa3-#K)hhFRD&+IC&Bi6V>2# zIL~n24&u2^W0d8XE*$zGqs4oAZw!#ipIr%O>%!SaU$P!Nr-36@(4gHJm7t8% ztU&US=;Jj+I-f1!Qg!0@_0D6qs`JHA2b_J{20skY6-S;0{?_>O)ufI1e%S^EE(1pEz4HoNIRHRZpd9M~)f#&uWK`U75=K zqw|QtnP(a}Ss?>8lHb>j_15-$yVX#VMSPm=PIOcI^4h){WI$fjz1UXb1$P*U%h%KCDh1AxO zOdy7vC$pg#P#H?86w*vHIoJ5|0j2Oy@Ym48>sm77Kvc~61uoA9ofb9+dQ18SCSw@hSA06qq*$ zC!936h*yHm1C&V?R33~s`pt<#Xo1;nWIi%P$?%b=tDWarjYL+P+gKr9oKG-PIvXUa zcdND`na(3cb>h#Jj6(Uumsab}YI0}ROlQHfcZ3S%^pQ?aa@I0S;?JY_h>Pa&5g+jp zA2%rG*NGN9&-_qPtrMo;g@uK2;N~YHnuC-%HaZAM7Al$>ES7SsRa;YS2?f2;UyNBi ze-1=*W;2gHmzV_bZ~yjhv3=<5q_Wv;Y9SYy8YM+HNSPwb*K7B5u8iy#4{@BSdHS}7+ZPNjT{?90f%?tQG@PDh#^k6| zM&cRJ9A$4z|C<;jJtJf&LZw>jSPv-e$@Kp+bxgpPPe1;;f@RXBlwqIrS}b&uoMfI#_y>zTcENf0u*tY_KciEnPH-2jwx+yJbFxS<>Zw-P_% z24uEYl_Yh&O5N^WQKr@{$A!onhg%*-FyLh@uR3Km}0TO!G-sgY&v$>bv z;@^Ltl{#L1qy11A0H#L4;MdtTV3LozK!eJHf(K6+}5!r zp>26W&+0WDt1tHzyAaFH{NI75kokV|fu&vFTrl#@z0Lc7)c7OtR$t~X?XTIpsbwu7 zzjxIqtQuGZ==^)l4;jYI(_{k3B#XztcFXA36YKUr)BfrlGE8{J&<_wbqnKuaig+3e z(Hu~Ul=Y%vPobzv^a=%Z`#TQjiA2fY? zgiKL=KlD=n%TPABx&Lb$ht}Vxzi*n@;Z0nfy}Y4m_19+pd%@_<3H_^A^)I;vT;bgt z_L%N`Tz9C9T&7Zsw}*5+V7q5^%hJV@UtiLF%LBFdj-vtJ2dBXp8Ez&`Z+5-+yWtOt ziFuOrVm2}s*h>3s8KRt4zDp)8#*!!(y>na!=zIM23!-krAJ206NX!@yn!f3hVcj04G`P&TGA7QecJ# z1nltA$Vr_evpkYo;XGFA)^v$X-i;`@bcW|1_?cz&oDLFDG22r`!$Fj#61gn1RCzqK zR80;yoWD9;P!h@jZ@Z2^0-T%*I2?WF4BYGelP4-6%#-T-`q_d~(vKSxVsY^B)Ek)r z?g~i<%zD{O;Z;XjJ5FYJOo$#mRpC9PlT<Aao*IJ6ix)c`fX&KIOI9kfZ1yX}bRb3Mts)`C>);^&KYQ;1-PU!c?aFpMN$!+? z-C6&gSu;soC5oK{Ko9^y0_;s9C8`(qxHrj`ZCSP~OO~q~$K8${*En%6vL#s(d+$WA z>`h`98~Q2xetYk84nfEH@7#%#m5i_#qtFrv0te^pv-kVG-}81oaulB23)!u=)v`C& zxF7rid;Goh9zm#QQY6s`d#=2nZyLwwc0WD_LGq-b=E>eYCl>Fj2jP3{eLFmOf*ek` zw@*D-0b)A3xqkGaa@2<_xMXdBS8L}mjGo-KYv;z`+`FqDH&xtS0Y`r9xRrV`kUvCv zOvQD)6c;aKAkpCKkgy2BZxi1D;L^jNHF?!Oa`iFc48ZUJ9-cfNlNH6|7F?pQuu^53 z5#d5Y9tYXRumr6_c8+jQk!A+r8|s1wLH=l8|3lwG%Z2}@mf&seXLr?1ylWyWDVC*a zKSAmPqRX6!XdW36(L6FDBQhf6`=oPv$DNy-3zy63TD+s9BeJjiFN@~?=lTS9Zf2sn zsjj)H7DV&L#`5OoYKQ~v?{m|iT`nSXe=kgP>19ib{~!MF2T35HiaDH1|N5{08vZc) z=MQ*Zi9-1@U+}VCNWs>@2=0(2U7QmHBk3{xa(XrSnnCj~_r6+IzVW&fH*^L~ipe^w8}Ur3t-1yKLxxgU+@6*!BT5;0^2C48y5&gvHG9VJmM@jtfy)UGReA4qWPU zpMSpdsjLQlTz_1wI|}TghYkDBV$Ui4L5{euL1**aHe#_p?6`QZCx&DiZ zPiCP}mh5LeXsVyHxq0gpn)3@s0W4rXp1Rz_kTvjj=CGY?rWe`nICFP~F*ChGp*JOD zbt+$8cx{Rx9uWqm;LUJQco~7e_}NCbTVP{?WBY2~%a67lFmaY3RVRs9O13AkMO{2P zdGy-ytFJw={-pnlNi;#uQTz%g(BMbI?_GE5hN8O7x$Wz~kb8XgGas7ciH&xtrV>u_ zkyLcDksz6_A?k)c(6@I>#m4Jvu5CvxSYj0dC~4>@#xx9|p$A(JZ9je8llI3PsD--P zsjFugoxQsDmuZId=z&$S?khI5mY#*yaUn*~NA@u1-}Fga+HrdXL)C2(sOy&Z=Y1Aj6X7Nu2i0td*kw|FampD%V=LXMvH#&2`btt*_l;H87PjiMI<+}%`Pm)C8iPL7tW*PL#Ff0h zGSA?v4`F{jeEc&_sBU9pDO_$cV;baAg3UbH90wF~RhPP;y^z>BAv`n0k+*jS4Qyyw zx4JJns()p6N9Ik9x4w^lpVyEFU=wg{%k7DoU0FJVc0*HX)wvqt>7H5NP=WC5U7NPrv*F@;XnBVQ2-nNiQAsxr2OP1XF4Z( z?uiMH2=Ri6PVk}gz5t$u2>+c6S{9o(RBTYWGUDAbwNYN!r7LL4n8TX556cvIs`34P z=p8r+tNUVB4P23KR6p7K1RODH{?Sf}rOFeZ+@| zlUL7CD3HMA@sFX&`&u8)Y%7fFjgIQOytpOLj-0d(%V41lmwR^X*b(k7zd#%i{uzGP zi+Ic<Wn*hl&24HKb9QJ$dknwn9&D?EG=XTeP+<(0H;McatjspB-c6SZB zp$XmGFtD#2rcYAzM8+3SjXY33cV~Uz?n>K3Uyvd(Lslug(5?g3>=)|>9zJO}coeyO zaJ5Z;WF5KhThPP-{Q>Eh{yXXza6R8%2`+4~na|$UFtO{@xr0^ktEca+3hiq3-UuRi z>-?Q9SRUO~b>`lh$=yx-t)1w`)~UP8LoMTEQ5M3~Dcii`(c@?KoSwU*5_sr=U3DON z&)<3qeCyM9mCx+PGX2!Obsz!rw^dBs{dKTnSjbEF;DASDnj)MqF&Tb>Gdyv0aPK!~ z_k0WBnxVa?;hh2w1>o#`dmDgKGJSia2lzI3R-A#b)22a?GwDK0XqI9`*FUu>3?uVn zU-v$I^z3iz(R7g1|Ab{>08hj`?FqmOu>~Z?Dob(9q&t-^Tv?8nFl8`9H_wf{&^Yp| z25_v;z0-->7qN0Yh5Fwx4n0@}lJvr^3io3tG3$=j_(03$@g#os#da5zKpsAhYR(e; zPB1{F+0$c__g607Q3G`Hsa+>0_m&UccVgvpg}Ef1WBz0`#8yCv}}vPEsI?G?$(199?q}=$%PiVL!9(OJTE>o9~M9o5>~O~ zsRA4`=kwfi;@q9zF5F(p-PJUANA=J%4e*vlYeGnBaK$%!jGc+xl_Db|nny-tL`GzU z%TUDjD_K{*`synxn$tfir=_p2FCv=%Ae9M{ZO%2+gHT=rU(L;x_4Va|H3!f+-pedE z5dHn)S?F8%mw)*eT676_*a6^G(%FA-(Og(`ay&tgljS2PN}eq7U*{|eIHQ}#o-CT(2z zs&s4G-3`0J6S{zcc&|uZu&_4ecpga~QG(n57;dn=p9T)Qh996gC#-c4X$Y=4Q1Pq<3W( zbmc$j+%tiuVYR(?=-#51?1HAu-Su}(qghIbp2yGN6+GI6It>2uYE-kg=i$Sx_a8&w z4m;-GM;+R{{xbkHSB>PyO* zlVpcT@!6s>x&-Qx_BLeag5~nXb7;11v=O|q3bQ=bsJg1@su2LAQU?&-?cf@M4*(8% zZDk;U>f5z@hHk`$cAmP?xhXVz$aF~GrUS)ubzf9reUSsX=!r@L7|%!1oQ75LA)$zb zCDnya)V#BGXLeg*t|2e8S)bjS1Nx@EHKU+2`vZMyU{$|22a?JroKc+H`oinA)e|?Pd4h| zA zG6^!gP!9@GcOWYWK=bs{2ngj3h6~VwAFUaYi4}q|p}`_Z9j17WVJHfDaSV;mU}Vjr z*bm@)XYhAx8@FVd3p47{uC6QlihYMjAPh^c#6>js{=hr%(O)vK@)twD$TVr+KJ%7` zf_bp6J?TdyBWMgNA5)m11+yy%W>7>tQ$JIGZ2H70w-auy9j5e3^TafgtHFlga! z1pKSf&pqF~+Wkh$Je*EGf|4MW05P$dN8*jZj|hCg10KukYH!JIEs3=!#kyhugAQSqrG)Ge5%0~?2P(PX_s^TnWgMdChhDGEyh@(9FW-EnGIgXqH%J%H8PGE6N?>;?# z|FW=Thed5jYpeK_$p$_kT}z|s!j54ZDq ztZSQ}_!b+qLzpOn*E~F~X5!hKrd50BGKM2*Tq+jsiR0@?s^H z@`FAy%OcbhnEBjx_Dg%9+avHtLQB!~e(@dQ3`jw7mr z$oY2j(7h*pw*wre1|)mafv+gd9NS!AO~O*f;}YhPU)psr%lcLY5?q+F&VQdH2caeP ze7S#}`EJ*1*tIXLF2gJ;VNV$LuRMjWarBu3{8ay$`Fl^FyZwacuG7iDC=A*}93iy)_qAM69R{BQ_znj8 zduwZe%F+O$c}q(TcAYoXg_{xn-bHizE^2COq*Ew7R2EJodPe>54m)YFxx`n&D`OtR zju#P?gm}?`!I5rBAtwuahe0kOFl9eWSKM@&%Y>vgvDzZfuwtb(&8f?1*8XPtwOOob zQ@Do*WYY&b_in1&w9B=}h^#(L@1;5$-sjLvL1{q`@7+%tPMIak3cR3zpY?fZ03tln z3oaP{Sv1pyT)X=2%IQi2v~jXKRnwMpTgxr|$P7|3**}1k2Ew=R({o?vG!-RwCnohq zgDR&mrzZEMuC%YpH0YkOKR1PZarXF?LszWoy{x3E$PhHJ0)mC~y>gUi5$HqRFAYCe z+Ek|P%FXT47j~>kYtGTQHA${j1=jT28}IB#Gv|nrU-0WQG_{gLe}$SF-otsF$O%e! zf+aDoKOxPc-)nmqBy4iHuw2!L9GeaF;a7Lhz^+Mx<_HS$o16r!5VIFT-z9IV#5kK=sc`ZidKJy?D^r6JURE-rp8>AGby@1_6qmv_+CY_QzmmKDhA@> zdM-pL@{xKiA(?r!IUOlTZKMiF-w zO?M(=No`Sfr#jUZ4S1Y_w!GIT-+IsW(XTt6f5Q6c?uuJmQEfHqy!rGUx1P8KKp%6M zi^35%8wc{}olWpLvMD^=#aNT|m&LuBycJ4<*rHxxuW-X9a zWVQsAD_LQUQQP7)=0pIDBs%3+_C^8hsKeJWh{kVgx>wbqOzOEZsb_V9Rgq%Nf^%DM z)D(7QmX?>C3RMA0g)q1Qa^j=1HJpUE^xg)9AB|O?(V4Ec$0v0ET;3C{G^8rc`XsmZ zD$9Kq|#VllYaG0z>hWMHv?%yNi^3?Q7cF!ROPueMd*xS{TbkLSL| zxFWC6doh7#EBMyOyPyBf%v)|`T!7Ahei7~!*h`KvSb;`gL+R-^i5fay0P@4JCMN~Jx;G)dzEF@i_VGiGLHIHy1L#q-A#Sz*pmUH_c$ec$M$2Di5JrpWD?wySoh@?|SkinhcRdbdb$`#HJm> zx~hP$V}*4VgR75JMU{A0BrX9>);a*3GIw9)*sgE;_MK>W>K09RU?m9gg)xS%oA{7mrq;we{DH%G*CHAiv)D-I75yM;ZFHUD_V$? zWZ*?oW0)m8_gOJqv zrGw{!^d87k;9f{v1u(>Y&hSXAlZXk-NLW>J^l9l|c*)C|qlcI5+yp&+o~Y73L6PN! zIv{OZfGV#bn3E3$ezlLMy;cnIZd9Bde)4qiHyy}`XFxowhX7yZ6Cz#%Lb1Uo0>GC! zPRL=yTy9)KAeHf@x4@Aj%+a`-rP^eOthTr?FE+jhv9#5X6{FV4e~OhDvVIFJRSm=l zT(a&W4MWtjPh*7ek9+a5pG0AwMdk;-p4wXv%?$wj8QFczSKdzpYv@yp6u_ld9tP`U z$cqb6yMu)9<7x5rJEA$aOylO4EpL(3Aj=5fi#851rHO{pv-I!736kP-(XzFloM0>^ zlhbwSLcqEI^x%Uh;i@ql{1l%bA;N4CqF<17f9Jy?gpm;$5z#y{A|o;)1AU*#H!dzN zTrLM=)Ib08Kch$o@ee1RQ?hwSdn-82!DbFwpdgxecC-WozNOy1zkku34lqE42cXgK z-+c4U?`-*gFikZW6c&FWvD;DTkqiX6S@wr>{A0>1@_0RUWH#NY@Ik&PHah7|dY z)B=NdN5YwIVH~%Lz~>3o zk&Ugn8tW>hGX~7m(E~}B_eUr9%b+46x5vl!uTJQW$uOpGKfQGv^)vho?3W1-mI03Z zldi{$S~34x?odH=q|Tm}Vvg@#?3h6P<$)7#%)fc7{nq@ZY`q~xV~OE+d^v?({%uQekx_H`2T`v`|v0lnnm*@Ow2=U?;$EHc+d2n%O_KrOal>9Mt1{x!%$}@?k*VN}G^8-4;Qfu1pY_0sO)hOtTFbDrAabF1+BU_A<=L zvqNvRjl9z_SKcd#uRbCw&mbX;5q|nC6RaH!)PYQnFF4|)=7iYKY2>r`@GqsJa0v5D z$UR-uVX0_3kA%ng1*uoi!D(b9C94sxwA5Nenb1VY7J*fKn4dZ*Wd70rC~3oqUAmIFEuDZVn&)m!s2w)W4(BySu@2$7%0#t?&xOXaHj6c@RB~}JFp(Hj7 z-S2JQyg349`Lm9&c$_8C9M&_#Ljx_%jqUCA)m5iD+MB1RCIpd={m!BOyWC()dpR&b zNg&tobXlx!iz7T2^v@gtyg%VsF0A`Fu(TE=?no{mu1zt-5%yKYW-X9Oh(jZ+F%mWl z0g_<_Dz+EoyhEOcGYm?(J4R_vT3@%Wo~`##83kLDI6N+b}74hrhC@7OB zYAF~M{aDAx_A8L`dCGY4h>1y9mI@4_*~UQoQ`Uz|8?w@@+5`*WM0850BF3=_?9z94 zVd4ryNC6lvjQp=oypmzakvYbmSB^<-LxcO}430Y^hqC zHlrJ>zm>-JtS=4{?Y@#VXz60KVsdV)1Db)j!GL;7uFOs`C53gX8^)UNy8d=3mS(k zy+f&LPk(p%V~{ZaaORWjE?so*sswjjsw)LkZhB(iP-x6Ll|`M?s;x)gB0{-Yat0A= zo^UQmd`XP50O9i7Sv2`{)$_&8Yhz8(al=vIQ+A$BSOKzL1csMTGHvc^0Es>N43 z+1E}Y&xh>S`G#VdGbz>)t8{1;T^eZ7Nb3995$oeGd!Adt zQkqGoa-}2=CI7;GS?q9hZ12hh_vJ}W&8ogDAvrVCochV^hctoHiA-y%3)D`f%o49N zrsj2J7H?8vsEu~1`7O0g!xIi@kDYYlq6H7mueR=Lts zt?58E|M|eBc^&yD(6PtePv$ijYV3+sV~pOU1g$^Os3Vr;igBf zuG$VR{`U+ojDhS9Dm zF94hQ1sDDU7|kiF<)RBJtE(hsjSo*ClxkyGuA@$BhSJ7O4*4ss~S;O-5ch|7WyD1zLCd|YftAmw(J z1|BkE96~5a;!5ypgvyg_kQA87A}%DRh;sZ=urtqB?xxg#9&Z)nGS}|C$^cE2M%J4!` z>s`wQ2k)+tk zu@Xj*ClEqEQTchQ4hP7qpb)|UOMe^3(FOoSxGxMZO4Ka1deAIrLFOhY4ftK31C${r z$gEyb@_6q-&fJ9B<1?LJmw&FVqEps%BhIcL~uD%!&BSEL}1;S&IeC5m% z>jr(tA1y#&sEeEpEn#qk)FM)|;mD~&wRoPPp9}nsGrww_-CgCoyY}22C&wQ67PaD7 zlQ|laLymzE$Prcs;KNQdauRalTaZL@F6=AJyS+@^UaHkDZ)*G_go}VQ=Y;o27?R)B z&AIPM;=u=$?mg#)>~wm6g*X!;^z%zsD=%i4BXm9n(MLu^G>?qPh>XbiudKPLd?_VX zN&CG62M$R88aZ754aJ-%GQ=NS$UTemE~jN;e1yd-H=wqB@8SJBcBRo128u4>W^?*y zX=y2(RAGgLA7=RR){BVYl7Ay0Zn0RB5y%SrMxqN5eTIrCfv`t1!s?qB{6k{HEXO|? zdL+ADt+poVteOqA>#BlP#2U=ty%Ns|+c}R&>Le<<@C~skfh7kJ1UA%dKvoy(1xIR- zH1~!==jcM5K|)6*@E@L^c)z%L6R?}J%vzO61%5^n2^cHyOUf|h?K3?#h9_cOa z_xIM=@4*ck=Z*$BGObe!AaY1bR9I!eYFC<4in?;&8+`+|$V;)Y0&jv_G81tk79aQX z0_uAD3;Q=JgG}R8D*&cIS-&i*^!Chq4EIl=bCloeLeBNoB_Ix_^uQ~OO>0*@W;-~G zrYY2df}x@6P!lSLWWoezJUEdH+txf|eR>{53$i)qS=vN!z6~F}MBzdZfee5>iGHBtPF-!d5!gfu zw@hhG0WUDbOD0`Cty(0j(etzP`G>2-n<4TQ7k<+ff#(G^1YAUKP({!XMU9x0DQnoQK zswZ|$bJ4fKZ)#EFrs^Fz9U1u+g|;g`#U=;n3NVxgFoJ1zscqYfC?1^7Z1ZS*Pw!rM zBs9Kc*)?D`&v0aB8FD{h-@(yuRNCmMiX1%rpAHAz8w{;^UsL4;IXt=f|kTj3KuGP3n2T@Q~gi(->0ZmXy`Kak1SAYa7-LK;2H5 ziUTa20qI;#v?zf^8xj;gUg7`{2RPu}gQ9F9GVq1GLAb^UuvXmoW2_Ds;la#~9qGJe z=DG!|RI~dG-_redr>uf^x1#LO8Ju&eEiD`zkZ8aNukU2;y zUe7#sWW@zPTJhtbuDI~0(jw{~{^1|??b}BeS`j=;Wc-4`>cbT}X-P_pOd(Dpjj)0ddkUHNpB&p$>EB(mcu$4<(PL0iBUe_4Wj&(Z zK+F+cBtJq(dw3d=q&?As&6A6ktg0YCk%kKrDN_htXN7NwXzn8wX<_At*M%?(d3<>C z5(#%iD}6TFjDf zu(r#3DPK;&Rr4HGngb+AftK{B8=7pF1nHjGvSGFXwH;cc0;HY_3N%b3-UW7^IGO{( z+EVm|Gs`~$MANQCuQ=tRP&t$pfH_pxmQ2meGNy<4Ir>HOH!mz&7@igzr{)j=9rN&m!YlI$sy$`jhdY|-bFvtHj;oRLft&3-T^QE&t1q`s`9e4@X`WcAa2(9%qtpB=(xezmfHj7CkDOhoq(nqWSZp^v*6F z8p(7Y7N<#-Zrn4(NR1cdb4PwsnPDm?hW4GB-gRth-%0zC6BrG|3LlwZv}eV2pa@Jy z%RdOQ>uE{C=EG_vY?#g;zC8@zsVocs49BE|Jt4ciD)b#yU6jd%(^LpQ5RK=;)k-R0 zaEZWYw1~(g!Y@@Ff=jtRk%=}kBBFU@L`GypMz|;&rdrn3)lno%IG*K`PdR7R zTq;qB$*Uo;DUMlMUM=nC|L#R|sTkw+dZp&{@ITL-IfKGl9Dbma84hlcSbfjUp{Xe> zm`={2*;(xD7K;*LkVMKE2kQ)j{jESJn43e3vlxJYF&qpdcw$)5S#yYgpr9>F*Oigl zsRZwK1v&*k!r-k4qy<8#9pDB0qiFIBMk353uPB1!eZ|5Y8Z#r~Beuhv%dgr{y?txd z_9tD3Tl^IP3KtaiMc4!cKJ=IR-pp(+0t0eNk21xe)^zH!96FVCb&~T^xm%`dTl=i* zC6MsE6eNuNHK;bHwJ@$XWu-e_ZdJl7%xTNcYS)9UHNGb`#j4#>v&D_fcZ}U%*q#eK zip%@{w`??KYh&328U=&y*S?cEZ9tBW(^}&6#W&AE z?4I8H#zhbcPkOpV?5|+T{)e^)?wr0 z9^%WDq%vOU2WD7l!_G;nBJ9!^yBB(u-O*};Ms3Uom`1K4=at@?t+nL{jnvfvDL$Dz2NeDD^4Qo4!<9nh(%?H}gbB^cc2-Je?$a&`cv-)7D z38_;7+~z&syG8Zu^i5#aPE%SEc9_e?0pdM}<$(b-P}E!+V@r*|!dNp5+nO$C{&AE1xcwysy1GnAH$OiPivEnVwKlbe&$ zEl@7Xfkus7``WywwI!9C?{w`sFnhSLQ3o9fmv#T5pgHHm{`ZGa-^+_H<`}ZnM!DR! zI?i$#&{yhF%lmzw6g95<+4$v`491q#ZEl{bA4EMR_3Kvk#;-aX1GTQwmi*J`)XTGP zuC3URW7Q>EFHdtOr?;m;b!u&W!S6=j8bRX?sPplugSiH|!g5)HEna2Tm)4Z@VkvfB z?8NsF1&QN`(gX+TY3I}Frrg+`xMa&ptuv}M`$JteBmaKJk1>d5N#?a6_#z`#zT!q|-VA}I}IhYCO_ctBP?8>>c_p;S} zF>BgNpEth(RH9GkJ}s>+&9Lf{o$}39J9>}-$m4Kfwjpb7-I}y+d4ls&g+ac%2jDQX z6xKV4diM?NE9@wUv8`0NQj|c#G3SC?zY3j(4;tSJ@s;HlI`>0-D8z<@pfh3-#b!?s zUwlN-W@#D))C;{h!5By9f$j~CKx{nq3FcNo2MCK)qw11ijl};J;`s%^&_^g*LBSIl zBOX+{-TL+GQG{_989&?*myyesPXz@9R5ZT`=YWz{hYMGHS2Pzru(aU` zbTs?BHEqv+V|lXT0->PYA;GZAFO{|MQ(^s%4GK=!0A|Pe1phnnVuKnB0{0U4 z14m!_$veR%F~DKr>mSx?0R}B&PcwdEx|XOK!tGt+)r2*yKo<{HC5cu`MMOd&C!#HZ zZ;0I|__g9xa1R#E$ud4blz$;)p5Y~vbtugL8*U=TLU|}C+KmGO-8+0Yz(^o$u>%K* z8Yq&w;&{=8FG-!kArwj6L=(n|@q|o5RBUW77JrJeOyIDwIJ4A4zWnqcqow*vkXS$H zT8QJsHS_|N_Nfeu*Gi12y7EHk1re`FeyNwdxS(M1#`GHy*jW*wE=kV<9FJuLr$4Ud z@LrK)PJ=Qe5m^L()0fIg25|a$#c%fZ#$@#vBX1;bh4}IDH%4ulsl05J% zC*exOCuBLgC1Ar$ zP{d~b=ZWUR0w!#GLyjlMQKbNjz3iVz|Kt7#oL$#lcindsa~Qd~x#5rbVFs38g6Ghr z9hqO7efci;owvDfyT`fbjp;Wl{Z&NE_VCmj1A80T;gDrFfUtoN{+Z_wk2oHB#Ie5y zRgI!ya4m77IfMxbOWK3853Fx5)0+!Z>}kMNIE79DzWf~Wfd8}?IUqvwW8bH1>el5o z7aVau1x`?p*gy*uml{-2(3lH9mETg7+n$%&m6B=KZmudFLH*SEPT=UF88q?w_!|YS z#ekjw?F=FWLF59kvbIg5vnW!WQAzd~U{ky~^xFk=j%cBrHJFIjD0S=f@l-?HyZ^l4seuCiO5 zXio+cuDnB;(_VCU$L=B2`w{v>NkdVZEj6Jx24L<_4Ijo-UqU@#sr3m_=ME<%P5q^n z0_3He+q3BGnufxp!G!3Z=)Bha1C~b|$o%Z|;hYXFVBcjXWritx`|x#mCxoL2LvIYe z33!&(0NijSLUmzt?Y3t^PwEZogzo5s!30%j#@#J@&Jxj3+*xtdnML<$EJ3yKoTNT* zU=$||H)B>jN5Y@n~mo$^GhEVC`|oym8DMA!ko&6|PW=q%|Vg=gFK zKs=XO5)-U3I$H*K`Qci-vHbeN#^S8H!m`?}8)`OWwxp-IQ!vHIqRnb3czNnoP~^dp z4JX*!!|&#_q-d^3ppo>_b%#i#(~H`T0KV<|i`b)*lCe%Sw2Y16vP z2L63zZ#1WC2WBz6KB!6XQ!WoLXOg! z3FM+R9hvLfbelTY-!uHs9?OGO=p-%haby~Wlkn8!iNcob*rAm%eJhJnFc z*X`1J63(mg^70?yHV2Gm!J;|F>aS?1t6!FA%?cNYpWskTZ&%t6o*ucsdidVT(Cbe0 z^_1(OQ&aahEZkbXu%~|heTPWB!pI9=Xr%+`949C;B)XB65@gt=G!X2w;c3~4`~{_T zQ??4nQ>S)-!0-Z`WTYit?+_6&u^tT~wI9DhMu-g!vXJWl3N?NRwdMxtLPX&2F=R5K z{V9U48429&0Eb;lOZjLfv^L`EwROg%BWD8 zSmK6rg!Ttpupldl%CvuiSm8e*=j{(lqG+mh|MEy+xk- zZ$j8=GKR))tGF3p2p~-78nc0z{K1*GXF<55afF1YNdg`hUY~iXuyS3hH9y9#%x=#= z$yRiZ+P<+@9qf4Wn#!FUPp<{PaI`BfZX_YEKD!guFDx-|XAA4sKm;X_8L~SvGP>09 zgR6cv`0p7;-K(ZI>G?5BG{bstRbg9Uj5QilDY_JT5WdZ--RORB!e({q2|HzFp-K1o z+($ve9-QN6p6@ukwkaC}ku5S^yE4n7kvZdHd!yo=t5cn_G_(4F(felL?Eo_ZEq*-l zhn&V75ZY9Z^vu>=FrKRoiHYv$ct?`Vq?5UFVqNMj!&mo$2yO{?CHkVY zu^8Sgz*0al&u%OHHF^>6sPLZO_ujyl2uCRf;vD08 z<3VRkcCXCrNPEa}Xo4Oz4@QKNtvNX4@V2CUt~$3VH)`+~EBpTgh&msf`NIP4?}lc3 zq7|Nh)9pOHAUz=O4(K}5qX(nnEl~yS>6S|~xV3Go+?A-XB+SV*TN9j#*Ppt5jGI3_URl(Xljw*`wdpl&d4O+{b+1lw#Aqz(GIK`EK+2^< zmtQ$_>8+pdvm^T)AW#?_p$jKqGiu7|gp7m?U6&q;Mk;q49ORYVkbIDt+g7|t8t&PU z5Ro^B&b-Dwt#qwY*jL})^~*WjC=Y+_btCJi{y&^R->|qYh|Q-YMQ`T!3vcP$GSiKj zTPn(&Tqj5pFr(Q}-`0xldSg1YQ{;5zDvgRg zI`gE)7Fsg$u~dHI0+cjC^uihB`5b*z+@7U1DATNI5DxL%;QNzssJ!U^TJhr_lN*}= zl@?c0BO@c>YpuvSDl&ekB^FxFSFEkA1*bVZ30GWv0R^>W=`)v!=1iDqK8+M-*d#4Y%3jE(x_7wzDJ}CLbg&YFBf{>`^A$*4v7LB~{JVb0IN;r?h415cOzfPlm z=P9qrOMLHmO#-}fhUmpX!qlcl;2_rL86mq8|D7MJ#iGZVs)tyUrSFFoNO_pB5)f); z@C}gYFt~}AgkVOJVtHCK;EB4*hG94a06R}D(wOuumcs?z-cKhMD&=D1Oh{}m!!>)D zKY3ae5ZNGp$r_J8Zbpc^4AbJJ*Tze@4~h8U6Ec2yf&C&(eDgRzmB9xOf_o@Dhazr5 zf?u7d=NN7(5F8RnfOO+yM3yUHKVijVE2gkYx%bS{x#vN`-?NzXf{pEhkvqh*VP}Px z26j;53cJ*cyW}xv#Z)2$NuB^VB$=fFpSb6uj2eL?&Wdummz>4~J1z;-9-)~@1S`&w zPaFr_Q{19(3t)*!-{%*!cr1u}$=4D_Kdgb3c+xQq?0X#M{Bqq~`pC$!;=>vo$*IE7 zH?m9+mwu60VGj46O9&uL`=m}Rv6=yk*Z{`&!(EkQsVkpC%(<{rn&-qXCIU5&jEHC+ z8Ikd~H3V}a6INxV88U*nDBJ`XG2g>aBlY}3zaArmpNMT*A)4#~9djWb38~xX*;ovP z=i%T*0Y8r$?(hmysIiN1H#Ur!OJ&^5%uMP9mIy65IXMwFOJw}_Dlw8e0N*_N=%XwC zXegCR>FkogHPQ(w5FyEaMuPe>68xLUI*NC2nz)T9B1a4)|FXK}$aO4Eu`Qq65aU+NOjINu^Db)mCx>Rp2B& zl0-L$xDhltf`;y3_oxk8kYz!1jJL)hX^Omah#cjG&Yhrv)in;^13RU1_A4T0qW?xJ-l_r`qb=Dk! zQOM1zWS161L!h50*)GX5ryX`adJZE?$rS2?Lp1%sz+?K3{8XDJp- zHY_is=lO_FpKPk}Rtx*mK)qT-qCLk;?b{+FGR(>yqBKu0@(!a>U|2(8!;gUs0gi~) zGiY>Q_a1d8@F-G~TuN}4Z<;MpSQ3CT9MvDCv8f+*?LUXPH^eo|uwM*+p3$PaWaNq~ z&cvj(=U!EQLp$m$Xet0{HK|*X*HL&^`R!w9kZi6(L5b!-)B+ZRUMHQ%@_YWB-95MM z@84UAs^=(j+>4t0=A8Bo@!bjW-Iu4hV!`_iFc6tL78(My=JYL<+lEj#bsZ6fa2D^# zyc94!{p#4u5Eh!y9Tndn1zCdCv!`%ZI{qICZ#*B3J{&prf%-ssaeV=R#p4{wdP63h z!`OoEhpTn5q{u82Kl~4N->+~a#rDN2tO{VTl%wOA@$bbF!nZTWAlq~0 zz-5<@{|xx%e?VVdTYYDCOL3ArIoXv^+*0uNnYV!E1bRWkOxwD;b&wqjpCi!EpYS}q zy?LF!D?>IQU)j4d5wd433edG-Vo}&MDzi4-kdbNB!^>XRs9)WG#V>9wJzcu?h@Q47T4{^8( zXPm;Fl;BQ?cg3dk!~;s}dkf@H^$ee=!zOtat3(Xu&yq;7;F*P?t|7=!^U~r6DCtkk zKcsX-t2+}m)fXu(n)TJCoq-l1FgZX=U^o;4U++v9K3Hh#{~H^a6%ZUnGk2bPXxoXK zu03_@onPM#v=*qsW~S->dBy+zqZR*j!3F=g;^GUj$@ib|J?@c59+B2p5s&#_eHF6o zTb>e-c@i`TcIS|vb`=Qc{NMlEg%uR6*eO<#+7#$Y9>jF%+@k<=;Xh%jJJ~yS|FOUw z<(@n1#_n(L-P1I-yU}+?wg0YD!w0^B36qM6_(1t0B3fibMr1@rWclFig)DVti1AV|7I=>zJ5BIEzY}<`xVBVl)+IQTlbte^Sqb8lzDuh% z$W*RmNc;n??&Iz!&!DlO7`HTr&aP`JNpUC=?MWaFr<#)0Zdtlf^X%vm47nz*86XUN zHSyKs9ZzJn=WE+DbQYb;lB%%FWiENFBR0M}F0nfik~1|B9%xNYwae4GQcF5Yp7H#O zX#1g2GL4sn;sUI6f`-&^dQtcVB&V&R@g36wnYzN{*Dj*bo<#^Uh z+;nHi3nziKxP7I6SmI#`He+~Y^C#33OUsZrKL}QZ+<^;147Zsva z&HzuQY1S`Ua!9f(m=J5Fq? zN0mBbYLt6bTu)+Jv;LO)oBEK8C+1U766Vq33|g2(Ga%Vl1S+2}JhAiW&MoyDGaJ+L zjOiO|*0ph+xF+l2A(!%{sW;ZN7H4;=wFVX78bB3=AjhQcSfJ|ws0UyU;MEHTxB&IW zks<;7o>4S(chfC^$d7Zz0c0k>HP;NPE=BE=Ff3vLI?o0vivbPeOYheZXc;pQ7uy#P z=kqIzZw#Q}Gic(7^~hR7ags9@t|L{K8iHz*dgI{FHz&bqKIihgw%6~JIZ|S*v06tu zQ23#UlHyEUS6}qm*k@B{ZUIfSqsGUbPnt3zv(7l6xzpd(8tubTO;HB{cD}nX@{_uNVLMLeTc0$eL=Y#*6 zXp^Vg)3eO!dLxMA3Z+@DwW!jJD##;E=t*4dj8C)ZL0*49^iBh+xxVtMHFX6L777&p zYmRRxkw8r5XBiIx?pXnE(7WJU znB_>i3|N(JiBc3 zcKrBpX`L;3f%om(7dc5IYwLy=VDxP?|JdDy?0UXpd66;vvWHy3;#%ly3*{Gzi>Dc12o;uAs8u zI668DN;vN04}8-5erbJ9sw)oM!632&fLLLQ$+RnOZU5yw5zpYawsozKHoHTAO-0!Va$+&qi{3)N+k9##NOj3QDKe}4NZ+&Y_p@kv zbMvMcXKcJ%rgiJ&)}(Y($^rAfAP(l5ezx^+adWn!Co!sbRcvM?6)bc=`weGrZpkUAOn$CWzp>Gxo-~J;)yndi<905#`ZvF zrm8D7%ck2GHd?A+hta@0S!U{=)9G!WV$f^Q; zlmb&(FPWr>%mMrKMTP}zG5T`2qNr{olr-QiZ)_--#R?muAIbl@+X6H`aQ=yFqz`=tdEc6OAKE4^cV8OQ8x2{MM`oWt zijLpo+Evh=sqBiETVm53kn^cjTa)74S1651?@YW-GTFS>ocyKQqJwZ(nI#^`Cjj@~ z)VlrnbQQEDgHHRx{F7O&84%FAwqf0Yx`zf(_dEW#^O_4YfbngR6?de)G5*{vCe4C3 z+y6%Y+l7rA0C)mvv4CCr7=5~}d@HEoG5wdyT+zGwZXZHJv{na2xZGyl%Bg=#vZ-ZG zRlGG3@Zzbi6tyuW-=xpzOoaHK$GD9cKD3fwBEd-cKy!sO*Uj8 zr#^Ba*M{nKYO^}oo~*DXYHZ2iE>ATpQ!GlQO&-^+O6pW(n9}4H_+F7@Qm(Bl{b1~! zaWo1rcer>vQS&3_eP!ik+bVZF-TTy8H0QxggGDdC1_Kn%08{5An*V6#%RAfe+)}@x ztbTo2`Q}Fqk5&aMq+Xxpc5?oY}gUrIvbMPmcz6$fYm4Q2=%vKMz2UfzG%s(~ml z+Fw(<6U2RpXqH-q$QsYjiaq?i04wHr%If{wTdzX%5KIwp?ZX`eeDr=a`^e+>U2x$F zd^fw`;uU~0CtQqwSaIPE8@EY-vhe$0WNq+QT!k!Q;+9Tgj`w*NJ6alB8fu&Bs$EXI zm370oU}R-wh5KWqZx$%(`V4P+{Mh8)a^J1xp*yP1-CJSbf80}hmbUW} z3OP#{Bau@#G9n`~A|o>XlzREFUREA4#5if|E97Oseem+`Rg=C5`I~8?*CG>0mQYaLIs?U0PFOL!BTSO`>xzjy|2&oT{@Y z>rKl1X5ACqp&Lf81Gl)`l9F!FZmC=6MrMY1s1Nub&uv?qX32sG#5K*uU8o)2*YmFD z_3asn-SOZDR~j=^)+}9D=5>`@$3S62o+0FXYx>o!1}!kqSNE(0&wGwR{|)+L1obi4 z^%gw7SpQV`gOyoAyMu8W^X0yB|kJRCFw&?+W}r*GJS^B4|A zKWYzVWfB1K99jU#F;6=QSo{q{XFhIuMctWu(S@8x=jVxIQ~X;dNhBYO^XJPdDE zW=jCBj>f8zxf8*LpVgTC@yw?fZ^BUZ4Q>ja=WI`>wk2OS@}EG%Skqc~>(LwS$hfm% z6Hwz5O$o)OlG`h9KMOj%2R^T}*SGA*GHTO+_}r@1Ix^zi@zKMpuXL{j>~*3mL2gbg zZ7=+C;geZRM#jV&_!YUi6C^B@utA7uejZM_Bn)y6O+V*&VogVOvNIasA^O$~ z(2+OSmKJt_B|Ii^C@QHpHr0}h%On=K+@dpV+QXeskkta$j5^?Afy)pp&Q|5Nw#}pP zv68c|8=V1gQ$k#eBcIQjz6C>kSR%46i+Ne>L(H;>8x_$++S_<`1x z73+wO?^&7Knf|-L+i#tHeOvYV;^xdP4W-AuU(XT-JDg-wXl6&D65dWEH0H)o;$s+ zZbOCxSWNNhh6IQxP`7LIO?d@P8L5s`u(4~~ln|#0uJZ!pn%75P1Ff7F1M%QV&Z1ct z8iGp|#~5%l`3u_bFvAKvOMRql&f>}dB;UG`+k~ucG%$(vUr#ttYiSbx(*inKYq7X~ z$qTCwqLl|Jco&u(6KJyZ^tv>=HpQ5l-?8Sz%+V=ymLbBf*?Wt3iAUJ*n6zt zJpUUTApy3Iry#ss<(_=xz*6qwk1xa&=?gCW@r6JAe=h!4e9?=%Y0AWiknaB4^6-^B{l2EAhMtPcfOv2=bL37vh5X<2 zcRze==)lQ^53IX9i#w$f*GgK}Q zOQS~NdC^h|xfq~LfaYK-50D0Yv>?WXBS|zr|GEjWn~u6T{fxvkUqCeO1T96Php<7H zU2X@y`s%BtzD|jU_`SR6$cT*p;`okC0KLPKXnyg<7t`Q!-$lF^j@A$w`{k*d3L3N1Z3=*-Yr16mj#Ql)U>9<| zG41Z2o4b(>Nb%6N{(H~cYpQazjue?QA+ICDF&IFrwLRfM@VWFB8hw<7E~~t z7$tNE;MygztusP(6h6s0b`IohQq=RX9O&a9AO=Bd$NqHAM>S)3l4jnxrTKRPQWoEZkha$-sBAq_Mz-?7D`OnBGg0`{L6~ zTD>I)C@T;Y8P&fs)uqxm=5DLo@#e^zP+IU|$SXsGxV~L1hfLQi27jL5zB0EptE_6< z=Blf%D&PK8`@`dC5TCqY8)rB#5%S@q9!BGvy0)j7lC+kDtS)skg=J+${r7~w|OSbwG~_J z$mBxi9aUxUY^w+3qWfiK?c1lJ2ZflR&-g}_jczHOv@nZ z_h4>;z~Wy-fiBc_&B>i|dpt}g+fQEm6{=icdyUqZ6Yq#qx#ROYHCI(_Y6Ad1JeK4$ zuna!o$I%>|^FiJpz#Ver0`X(rypFHm+PJl#DRX^G!MfVgEzLU~?A!aBbI+t7uK~L)y;)& zKt>SLg;+V<@GDr$8LF4F^m~THp<@II-DuGUctRZ!#rN}XkAM#kY>wd|Kt{YDYg(Rx zIh<%n9FblUc2D(mD#=Jj;D7wbe+D1238{1 zjiR}t){W7FvB^DgCA9^29J_r0EUrN?eva>P?*Rt7%puEb&AUd zpODpBaFQUiPRE{^?F*}q`VgRUl7d$CZc1}@XhEkOTY*cp`XRE%%Bn1Ojh=XYz&Sh z^#!m_=V$2$jumsz&vC<$pXy9R)LTHlSLR=X*wqBU&37quPMxk>0~>hw+&v&`k`rSN z%~YV1MRobvojK_Mac)b8GFa6V*qq-WJ<<#*;~wd#r*iXZKNyaLq^q48;Kif2hq z={!9lMLky1Y$`>OXkM5 zt+zXG{~daJb5(IcYnr?-0k9|cI`;p+?7atkT;-YXZ)&o4+y8U#-kWgL{*U zWXs(K+hAiGFpvPrVz7F%io3xC2rQdUvP*ixhF;uMN787dQSZI?E{&uaO*wPgd!Ofh z-*e_j!2T~R7?92rp~%umGjq;+%KLkN&-dq|w-DKK>fYjQ8|v2p(kG-cl^N(Bqb-(?<`cfcn?|WhJCu10!392^S zb@*cXlXq3_*ijX7Bx_$Ysl=5SK_=S$1ptU(+yb}&dbwbwquby21J|=J)IQrm+8xAM zO6pIyJOg@nbba`n-aieJo@p4=3Soh;^v#O=js?A*s=$O|FBAEl9i%mlq^6UsVp3j1 zYGDoR>hRkk^}sP-{>_GO0p;nSb#FK6z{U$6SAf5+iahy2r5d@!maXXh69#sQTE>a2 zt!a5#d^#hyeefcUe)XSaIj8>=Fogg?OmO_di5}WWL^!D7|751qdsS#30Vnr2=D_4NzBeEoGdGlDsWf6_0`o_i7v zAcmI@u=rWq)2wSU!H{*`TnThTD8)tj#dd39eojdtislsVt;`LlIae+;gSqZE-@SYH z2f&x$=)@C`pXg>Anir#O3tR%HnI+hzBADaWEVIlq%d8JCQ#3crtWU96^PkEPmh84x z(K)%ySI+XF6n0A&uuH29)q;2yncd^DbWo9zF%k3Pn}@2opWgVgIjD%LQrR=Fcb5J>;Gl)#>SOCPxEUjQjkf- zMwf1b0#_6)*tlG-S#v)snrn+^L>sz1%m9Q}FJpAWr(rS#c!c2QwVMmK2Dhx=R2TA# zfuDf3^v7ei_v*o?Y`W5Hdk-Ey=mpD_I2UiVHj#hMe_mT+Mc^- zN#`xg+rPTEC^R|i)DS_NGtg0@+ai}YECUnzmfD?%GLKY}s>GJ~%@xS~Sk|~|Ps#o) zk~4)pAtbT)@!iE+gKF0=ZC<*jamDu9(47@qf~uCSYW>#Q#+92&ckV3T4{@L?yB98Q z`R1zHbzO>+t{cL$jP1!j6x6&Cz{fj^gZC8Qv7=;vNXfpCx;s`kuUpi5+rpNwuWVn~ z;qNOVIlD_Yz~5ii9I~b2j=PF?Z!X%nqCR9vTgd8`AlO7eb>C5P*S(f++ez*_(0V`FZKL8 za3`A8mIpH*-c|;Qg}dH!yyiv*3!JqftJn=^X+TJKlOCW#Pofe{H7O@*dF`b0-kO7p z+ZV2Y?N+lL{NVB9vHZfI=rkD6(5LH3)pOn7kFJS%Y4GJrp`M~2aJ;E_3BV{)+Hf-k z@@O@wZ6)0RpHX>ch6K|56xwpp>W+O&5(W^IY+NJQ%8{* z?ekJ^9wTW`3cUl-GL$zlKpd^4VUqMx<2;TU0R><@BP&!Y#6gWKBknfR_HfRlAoMS3 zzU{Wwf81TU`OgEtli3OoZb{7KP_Y}xKmRUYZq{eeMEVX?-M_qP^@_Iji|W_i+O_)c z+rPQKY0E>I-%T6Lgz(-rQuk=u;X4c0FK+(FTRU!v?ud24u2YplHE)+~`}(?|^>wSa zG;D~PeEiSk_eabAIkaZWSNpyWshjI6Rzqm#>%yy(5Rj{&n-VA`Z;Zd2VmtfWj#prb z3;vED_nuo(oN!QInn-_r{6ESCJ8HWgEk|4AXb}Os4Y-gBXR8UMheH-O4D4wilCMQ4 zt`B*k?k^~wq&u;8QL3Q&7DTcm6HE`Ph zTool*;L0w%yn~01EV%w=q?g}tJ=4n3ZhqZ@r@w!mVg^}!;_TZeQ!&4`HzHg#*B5+{ zUn2SPZQ1$OtfGS4(jr@RRT&e_Wpysx-?BR{MrdI-SGsf#q3ev_!Y5y{4A)|M;gc{; zN-(aODUt%o1bzw6Aqq5|$;9-Tn`M?+W|{S$l_{E=W!9&8Ps=BpiV0ug8aeSEIhLk`W%Qm%S4t*X z7#LrjP(*zS_vV{#8X1V}bA5e1(VW62j?=7`$#uDZkS9wC;S+)G1u3x z2&q}Vu5szchP4qjM@K;7rfh=fiBnrEH*aiOzN&K3hK5Z*V_4n1bbam819mW$ws~15 zBbtgutHXBEcKYA_FWr-I=#G-RSJtmzT)*T%@tz?t8Pii$6Y1JjwsTR}S8wn7AKRDcg0g{XjbzIa8i=XL$%H_}_xG z(xSW1)+Sbv;+TgAvI&a%n zdgnz~x(m}afrv##bBXClOy&}ENzsE@_d`nR*ZaTr)!y6o*bjqo`=#=qZmZt<-^c#f zHwM4CKkLvGwbI|)qP|Thk&5la%J8TMN>mjY!tQbDAw`h$HB@K2pQn**a*eL zIgo=s^t|`^;Id87d=S*S8u||o7avCMw!pwF&_Cgp*rjhCsuXafyKw_L0PRg|aA@3N z-+M>V{_Q1uc9!jptcigEN%ySSP1+xUwV8@7D>@e~YP&U|H4+X2a5>wgf_+8%f-8fz z0&b{y&7pwA@_f(^YZ5h?D##i%Lp6hMm-M7I7f6FvG;P^if5 z7uh%IdcU8uU)TsoIb9kRCn4}4xP0rjs$CCd-rqwS2!n(3#1{~`CP1v`qaR-)G;;{R zJ5o8+ioH@eu?mtpt+F?WjP$Shdd$Pf9?MRWFrS3ABW-OzvsAa4sqh7ux_Rdz6n zbe(}vab4oU2n^~XYw$foiy>be{d|=lHAI9>oqPH`=dr-Ymu^^a6QyA+Snz`<&%v^q zq6(BZZ24Y6WC3&Dbi-{YRL7vzFs4rX&(Zf0jk3*KGG;#_i?gEc{C zE$X@Jprq>$V`Gvo$iey?L$oLy*{_HUm?p5iD5S9=;>jFLW|?J{S!VqwWs2rzne}Pj z}Hr?*vw{W=FLN^M-t2p~R0MCRTfez<$M&+l!L=c)>lfW!u|3ysVIo))Y1v+~ zc~Q?dZtMC-h>`q$-IHSkm2lt^JU9L#kjj@gE(vZ}2fx0z_TGnvj)qokf}qIl6`S|l z4yO|91W0QVdC_}jXW6zjO(BaLmIpPirg48kL3JDURJ~(&rERn(npA8j72C;*ZQHhO z+qP|^f{Jb1wr#7@+57F&W1LUx4?Jt$b6(tV>twx640>cAeI-@1l=j_xt0(WP;}y`^ zplC2?K6G~!xy&gMxWMka`d2MNE2Y*9R&A|W*KIn*BLd;O{ix*6ycEA2rqlzn8)YIh zfx%YIF5mhcbIlibtB^kLDQ3-=&o=oM!7Ecc?qj6Xo)}WO;Bw8#0TelaM2Y7pTf5(_wJ|l z?P&gXT+815-ow@H>9-xE^tdS`w|3w`@?!rSFnf;pcV@?kZ&Q%dye4E-AhRdu3n=q0 zD;4O?N9=7GCd3Sk`BrkhA8G}s!hBRSmSRu9*pU!W+Ww@1zO{dTQpk#iDFR4^*`z^; z0rQP{l%@j^&8n5kpC&7-e88|nv*dPENq8~NCEy0@cK3b*kW33iG#j(X>h~99`VD0- zmJ4O1I#Rcn8@+|D$ZikHP@=NzQ0%MaJndNoy{sOp(@&$J;cUJ26Vq!qHUZtz=Yd#_UVX6HDySfq8nULDB zKOIi$qWAYlD4Cs8-=W2BJptR$J*TCXP33$!!Fpa909i3yierKuudm7FNn@Xo7{(*C znLKYM-385YYd*`t^w5w=0AfUwtC7Y!@y4&sSKalwEK#$9nQxU3oANu3w(C@ z_-qPP6M+{uo88#h;PS4htC`sz)!$Xr^wG+uOld>^x@!viI|~CZ`@N-fWruI&^P=7Q z$2VL1mawr{?Y1YSp)N(Ewzg-mmOK&iid&uyL8!77h4H%_6`IqL?TP<)oMf0Rhb8~F z*r@+v!laDU8qC0x?N>*S34EsE%c+D$zKyC-C6ce!UOGfZ0%J-hE4PHdrUP=F2=EfK zz^jC3cL-_rMara}3!`S`+L$Se6FZR}LX{mvgB>!XtaT%(^v}Th(q%;p{;-BLVrF#| z{2Ji<43dsYk8IP(lRw);BgnddgKPKy*LCA#=ZerV7>t*|NbRg6HV3BkdzfH?*YNE* zH8O_(rY+}Hy%!pDU|a9Ir)aM>h1(5qp^`! zT2g{9$5&q44@KeE=`tmR*jX#qRnXgcK7KG~z$LK1C7z1!<)3{BQxNCcY?KU6OA~4P zST{iNy@KA||1zpAvjwBtF`1^kkXImJ+}x zkx_w?=Kt|8ZTVMeEOmOyu#h0uKvcp48RIqi+M(tm&g}suq(3XJVLT7vbNPLnKM!nF zb3L!$P!f>BGp@s1(PF2r(C(kIelFB-UkY zjVz-)OFoJg^q(~S7G=oc11iv^3Zk^qBzHpma3PI9af)P07qBJ_3)IXWge!JI(9I~V z=!Ew}5f&0Ky+3EhB=mVfzto<0|EQ0Rw;^@wS-mB?wKe`1%deF;s8&90G>1b>x)t7Z z$Ar}ha|5N1(oRAvj=pGE5XsD|{(Ac!$)z7cS!}vB_AdN;kKh$Zy;cM#??Qj6Cpm$UrjP24>yLwuK{n5vZyo3h#W&2>Q$N+w;oK_qxz5y$d8| zxN>yUyb)uCZbAQBh=}hbbDI#wUWMrrZy~J$L;X%~(eWZAy3&@lKHz`DLu~v2h@4NU zMa|eWI^~%;r<(WQfuZ}8D&rdr7Y$uI^2PpFLR@EVZcS(eQ#h+Ms`{B9gw94apaJLT zj<20gC$d`!z0&mZ=uskm^s$!sb8<|`-})Fdm*w(nccY&Y^Cxu=1OK5uGjbV)Z5pON zks@4~2H;VmBF6O2A057yxF1F=7HMyfLZP~N4;+KR$u9KLW&%id}e71@2O-g4>zh^ALuR)pdV`Q55R6Sg^fsvG9? zW<pKjrrlcJE!{QCk1{-Jy7heGP*AyLPgX3thB^tkiUE4tYgNuq-Tyj+rYCobArfqRF(- zU3_x3_N=f#RM+UVHQVAInhDPD@-%y8N(6;Nr?+U=?WBFp27HRenvl6Bx`HJuWjh6m zA5WxD@+Q9BcD0Fh>$w%gFdrvme=UFYxfEngxZzDf3dwO^)daYy0akq3_%5&e2i%Tu z*$sW@+n$}<(>Ve>5}_fY>Elx>6{Q*IF|`xV4H)2OjjxCXc#3O6lS^aGG`qm6i%k+? zm6i}5LE1tWd5k&g>#VOLV?(g9QhV6%QO7%?7x+UAXJ5(2*mrxjQ0=8zJlzQOXPwvt z=*c=?Qe^&MxYE9t#oBFZc!<$f6g*h3NoeCyWd`}fCr69wF&XRkXE`bzN5_>97}tk6 zBZS+8N2-1?ha=|IB{d2k1@Gka+|(5MBrKmIG4jfkT1gz`fN2F`rB>T&G!>d2m1gc1 z_qFosj~p!Zk44)d=k|e8!BZtBxW$!GuqBQ;D9Edw?g|Ey>5cbcu=HX;8NXZj2|_z_ zdQ|w1kV;Kk9d|p&vv+06sVcpb)S$i3QqmOK zk0HN~;l}N%Dw@`qFfS?{&M?#rTrO9A<>+b6M~LN6l^|O@NG{c6Oe?$pE|rWY!v9W{ zitR&8iqwVT&y1FjI6WLm=|5feXnzOTGgSUocwnu6qn!^LIhjck=Xn3IV85$G%wSEh zuRCsQ8BOPlCkkPN8eD;Vu<>F<$q--g0)4i_u=po2c6#T1?@s7J)brx**;BF*wvRIY zOB&+l^pt*|F+CjWzJ!4#JYC(Xfp^YxHvq!9p>2D|{&rWuFgiPBbuu>M*z-7`^iDsu z47+>*qUwW9#TK?w4-PamsjI9*d`AgQZb!joBoQ2lv1&uR$HZo8JpLJt-(pp_{jBEG z=O$k2%h=i3`hI$Rcgba9*|~a6z5|Q@P@t)$#!|=G?M}yt-yf*xZ`O~oS4YHadD#Z2 zcOvv0O&{bN_w9=Ki63tViuIP(qyym)&zdlX0Da(Fzj93|)KX%EAmdg6g#Fxcu>saR z88ELTaxOYX?~*9n$?&#~v@wS=CC3u)so`QM)^i>>qA>94PB!Kt<@qOrSqO;Wv{Sb- z=Z-CwF+(s;OjOQQiHT-?R)qzKFo9GiG^-Rp9r`kOav(`$2LS*n8C?Y#oLd)D7Nsm+O~C?g_lj~}O&xUWoF6!a+Wd=#d$ zzGg{wKmrl;k0G_P#uYAA=4aR}>F+Bc&%;Pn(x zYHHrU`UHr4*@Hz7IUNv63R)8&Q$&wc`W4oJv=USzaT{qMAv!P4D_R+cm0v1Ovb$I+ zS3DcQRw|gf z(Zu#FD1p_q3E+;>v76XNTdI~_uq}ubDJ~`yi@m9 z3nH(z%X1#j^-Qb-C?=Q^(?qTq%_h|P)ySweiqH>C=nhc0>ppTC!GEpqg=^RVMSGhU z=6Sf7etvU3RY6tkgs`wmo)zyiac za>r~hZ{ETW1v9+_nI_AA9*QIA`q5F$o<##k6KNnxoHg8%j7qF5Cv+elN)-;Ad8^MR zS1{GyD8Bu$*W7gSrj5wF;PUH5o@54=l;hIx@_3=RpN( zu;-g#R2a>Z^CgRr)CIKwL}=-W;@`3T1BAlF=sE>mf{0Qt7k5dA)FHZJs5cNhv;)~5sAaP+QaVf?$e-MdQ&5ppdADmiKC_1xavb*F~ zs=3sb>1Q(aDKofppGn9WSaPNni~LJY#s)yYo2Q@w9v_|vBVz5f6OmR=l|Y{7F$GHT zzy8?_8v=<~RNRPJSVVztn#zK@mX((Dpm;t;v>WJYWxUc{#f9lD_Ad^Y0>~i)OwWDpeh4KXTVB-q%iSdnhKU>Zxqf* zo;Bfz71yi-?i`N7f3L8Q`hS~w=8>5+P-VKd z#hFYeJ8sfd%qVt@G&zQs!13K2o|&^)#HFmfp=AhHR|6kF#NGyn=#h&=mWfVg@z$z_)NL)7)~pH>UnX`J%;wF;HfMmgVV= zv2AkCM@J8F15wZ<<3$oRt4)XfUZ5=K{9cxTfPnQb19>ufh1f>$S?BW1XL-3Ou#-2D z+<3>z`|NP!lmHwxt6G)D7V_iNvdKh;YL$&Tx?+>7)KIJs>4zR!&!$=@SGncYc&W;U zWS}3@y$}Ru&6&B@R=ugoS|zTF7TZdgpt!#M)ia333$QpS^FHf5vMN4`a+in6#ygq{ zb)Z!c;bg=7j;Mlye+`};smfLHa0o0qAZ?<4`GzJko^}`!g@_EaJ>E2iGqb;Qx-xg1 zfN(3zO4>g~AijOn?B{hRc%xhpGVG)hNz8~sLjyv38>NcjQ8g*;2hIS7Z9A1sK|{FB z?-~Tbv!{yzBZKDJktE=K7Y8z@A^ryTg<&O=js}A^O`tf%tgd$E@E6Je-kz6w#}a>l z#7u$|LtrXm?gSzeR#fWT2=gR*unijWnwKi&c?@tjWM%f7fF2-vz+e&xJvi?N_5{g4 zZ;HVdk_?PfhmYyo2TM9e8`ehBIlWD392F2@d+Wasf>5#EPW2CLGDieB+!ELb_0K>j zof}tXEnEtRz{GlPSB?6NS}UXtdl}}I>G>58;#U>v`@9ysvLMBCZi3~Ol$u~m`liHL z;HS;8Y}EFfC;>8~y5BHJAf+Uo;e>Vvv2n3tM`9THL-*(R5sq*+l^V$n+3x`#eJW4b zL7G6Sc=vQ$GyHVFP|VO`5ar4tIR8c$-v&s6$dk;)p)xfu7w+4u{JQlFxykpBFQyWW zP{Rn0X+@VzKq4iB{^K2IwTmS101ngzv7$qvm1mE`r?-ye9LM^7u&xPn)TvaLCHYvH zH*ux@IENfM)$bs%F~NQi!j?I!7Bc2bL!&mo(Ek>PngM$F6sP@Om|W;JtdRyjC-2#L z7Sn@(YbMO%qe2QU$EoEDxvI4^v-sSrEW&q{7eGBHguoN*8wj@YJrtwY4bR=dw%NG* zj*Y%)|Fve8hvZxed!yRNqS$lB{LQ@yFI6u~V^D-sQ$~=fRLWr-aJ;OXdK+8F(Z_72 z3wrDvK*z|$q=8t@zyZE*91f_G3NVV(TY+`x8y?2UthSMb_z_S1yshuEj3Q1yKg<(x zl{InG;3d@qJp-PMuo-pP2(y?QKa6D|ud66OyvQVAB zI05G#3_tHPct4stZX+-y6|jK2_}9{6VO*rTrM5=PG2eJ(t}%>SVhH8n|f0zb|>Co2@&Yz?<{1Q3Q$haAqYa^ zrZnTDB?UOyE;J5L!RRlvMbu0RNM1d7a^Nk!5^XbYE9w1_j0OzIW8TKzgN)^yv{t3e zYpnMaaTmFW@%Pv3y~ZnnGH$A8=q}{jRH{d_5b^0J%cZu=^iP_qMMY;~LA_V7~?7-Uz!E-}Lm6hLr5+=1- zK(Qq+qVJlXuYLgAL{p*4)w&=MH}lKdDEIIao|05R!M2$ zmQ*Irc>Uj%g_G$AiyE~IA*kb`YRoy20p71|2${&Ig1<^~CUE2-2+w`FoggcT5N!xU zVfG*2C_BUFmLmT7f;je!qk2!d*LY8Uz`cWm>7*RKp;UJNBbXI*^S+mK4ZOZvB{BAybHH*=}@eZKL z_h`HDCH_Sqo$ROfD=<~WDd0)N7Lyj{<-Z1@oDZAsBbu*>9To_1a7#C}t1`UN#^O$d z)&k-s86@tIQmCq>@tBHj+o6TCFc}=VQ~&?Jrqn))kg^qHho_uL^swfL;Z^lmTkize z7`T7O!XO0XFV;A$qF8!$~@*ZiB2zvN0_>h6h1Vd!^-HaG=4ar7$j^12xFV0uF!$hUTt}~ zR&%q?++(V}MPeA#;k)@2;|0S;Yw7i+Po~9=5^h_)jkKKmwQg7pTO1Ru@RK`sMl6H_ zjad%^i^HL?LUC(~`rOtb(ZXazwl)+ps+D?f!Ie;5Y7 zoWYbc5jEjS#`r!S`^B8hfsoE@j6;6r4VnwHh@n>GyTljO)07}z++g1nkagZ;yaIPd zr67>`koRS4MuJ9PALT3S9(7sXzTqh&PA_0s#4@B5ILqkOO82@i)!Vi(>l&@bowx;P zo7w$Q1w*KM)(LgDS-A2(D9-&hA}a2(O1-D?N!1*3RiT}&?o1lnB5Z5qQ4%vRoP1z9 zeu7kpKD1wY2Zx#|Ks;Llbo=+rN{!XDf4;g!Ra^mEOgCV&<{2E+3?SA_J8}h0O+S;_??y~ zA?VQ$a?m!-`{+aM&KKxtrT7nN2}0?OzZkK9ul_$6isf6_DJA1WT{qqpVFJ0a3EyIx zGUOC)9p|Zhwheewv`9-r`K+NzHrKe5p zjp^PiPh-VtJ?@WuS^6M3iF4(yfs|jfXT(BbeQwSyJFRk8f%YYG=IaW1O z93wm6?%xa6p(OfsNNW%;6&0e*2O}C8Zi;W|haNgJX($t@(uuu>M=Az1)i!lE6Vz2)Vf11BJ>Q@UkbPpuM_yLvxKa zY<@{)6TjOem!Ic&;_>!iG(r6~*;Xhp4eUmWko$8g9mBH!o-v{*;1XdW&7PyEPX+mX z@+J|2YVZ<*28-LGoa=|7)N%SKb^O)Y8ZjpW?q%rTNP5J+A4QfY?l!1>`C$UjJw4`{ zIcUB$&La7IcaX4mk_{#pqjRdd0GW%rPbmre(<0UCi=U%1zNjgwP@O3*!tSV094|s2 z*x}MsDcMjW>>T7-&Lz$F`1!++%q~R-1Cb*QM}RiiDwswgClx<`oC!&+<%(Z82bX+E zb9#r#NUT(86nRZP{ZPb(lig z@2!dWRpnGlAGQ@MU5!phE48tR%qd87nAQ;IaT)VP5*o`Y3#e;h$l(nwXJb2qyTQi3 z%9Pdh^p07YqlFVv?sxgTO{Bb2C;!2)7lg#T`MvUN-ygowousGY^Y|-ydlm5?HP;XK zFpY}Ff7R#_heJS^xkowGTUl9A z;*I4f=N(DIs3Z_tAki@lQw92dU6prG=%%I1l05M!A{L?na|U#o9Q-C@<}g*Yh6N2i zS54OdS;d+8zXxMyrr*8-f5h^8h*{(@m0Ee5dCj?!9^9nF2^F%=u9^Y@bou!rG%SWA zp9-IH&1ZcFX6eBFvnHPnVwp}!`-$)oqT<2AnJSaWO2XQNyo(Mh9+r_u4I#`0t+|SMcc7Y=lg;L@SOI)-&fYNty_q(_LL!(uFSxqDX%k)KC*1FM1O6jCuO2*Ea+)0Gfaa| zIhdj)tLg~{ujk~M-4w69_d^63I)Q{A`h=-6xzhEdGH5e{EGTVS**NUD+xf#AI1+0j z(=zuwbgW~7BaiEWSIg%U$nM$TK{Sv}e4_Yy@kF2R7=(%tO}bIm`axKY%(yuQ32%kgdG^^Ga=M)3u5y6raI;NVnhKzb_zG4b7ueMVdzsNqp!q z5b$S`2W+;>JC_?O{(=soGr+O<-gmzzHNPX*jwc+dc6(5(Tx6TVSs-F}ie4&IARz)m`@cDj$4Qg0iK+tU zo@4X?_W5Z;HcV`yYK%&`Esa()iG#?J9GI76TfsT+%uS6h7b}<3(BYUrS!^^lTHU24 zX#R6S=c%=odd>eMc5QdjvU2t7xa9&PnE`X$Hj9KwFMGapY_k~&(5e2UWDp@+X`+U;-ZmLPq zD?{`C8mF#3U7>4$x`}cq3iyXKcI5oS3`j~{-eML%>=gimGm|?NX54?-0gJNmPsY5c z!8*WW7QFkfh}~Dw{dboAh|Rl>^UQ6ny~)-wn4B8n1b8&v%C7$|cND|L74xOcL05-Q za*`CF<-Gf&s$7tW7}aG-)StQy=W(u0j^+ED&lGu09rb35&$*|L!Y-vFz%y?!EDWiEb^*c>XuQ)KBw z1mT!t~fmC)IwK8hxf43#APpAB<6;85k5(9OtJ3UZW>MWcw-pfPu zf}jVM&_~gPO#><8_zNxmorI1!6=Kg7ehfELQeY0Kcg6x_P6Tt_^f~#txDx7Bp*?7n&qK^~nL6QquYeVH=7W<#ZG@yg6_D?KwUhtqz4`00 zMI)pqDH*B25Jucb?1@%gEy0K1zduWoVV^h#wQo-xYlM|ZUzVWW&qlzHhf{o!aqsj2 z4PRppt-D%h?sZlwS@64;#15*bjr=8+#l@<7`L0^)J&ndvr>T_CTxP2hO-72X5$s2o zfvkqU7VMcFBnk$7jQABi0&>YKV7#Kb>UI;;{gtyQhBxWHD>gOroFIx{NdD;0?^?}d z1xO3iX=RzyK34OC*TE(#qI5BHUD|9acU_yWIhrLy)^722yPG~Zg3>9T7zyM8`x^f< zI*dni?{G_OI`#G|BL0aRNd~auGN5JKHsr2i=*Zy>KG@c_)otE_qs<)l5zxLq?yUvC zIw`=JM#=}XNa{rNqASO<HTSQi_}3Z>6Iu+4KNNM0j)K|$w{wL;1?{*Ex-2(*i)dOiVz=XT{bW z#Y9dnpoD`#n>>YY<`;pvWE`$QvfVKAo&-`8gDFF{&;t(iMA9c}m?hUhnc6D;8btFG z4q)5d&NDyrr~uOC3+Xa1Yzw5DfwJops+8+y!?bb=UCWMWPG!Q7NSoZW$gGAXpVZu3 zEYso*)d7~QEUfRNv8uweL=2mPG4T7nMcQyxU}?qrH=*xNE)E`e$bKn+PHS)n$Yznc zLDoqF$y^g->xj1dybR!)+qvp|uA^p(fyCT}t5z&5k{x<5JRyBX-`PRpziN(SY`Hga zeJUfV)(?I7x4%XSeSSaiv&-pZ`V2*IE0U3e!y@;+)}+r`#-xkG`I!iE`#RS(ePwAm zS%|HU1e$#(3q|(fW#)7h<0qC;R0tnCOx}m*D|t?ECH52(O^&j#kZ#Ljip^g2PIll) zXt7(OBl4C_;rux+VXjOvZ#%v)>JTh`bXC@9SZ_8?@tKIf$KQ$li zi4gmb>m|(&)L|G8Cbk}yH=b%a`;sOzu6myL9Dv-qI{!qR&Di%jsn2(wPZXTsQ{Ke; zr^u#y|0<9&bLQ^;P8-M!Yqk|&0slzuyI6Vh zR7jTAOz9Qm$4qI_at}fI(H^C}n{NhKyaxh|cgx&ZaeK8LOqQg=s7X{ry}HXI&-JBI zg;Y(xX2Hr7Nu1Z0m&90&T1OnPC{HEOTCthYBzzL@3=a7DBfC=>QSiD^H5)&w3+PD$ z#-1!Tg3ZxQW&WZ=ZWS}C6Ot|P+E9zD={+^G`DmgMx;k!E_q`0VSV0B<<2XC^k8 zly~+)FWQzga~>J)j2RqBDLkohG?|G@UaRC~xV_8lihmAvj!$&ujH-jabie=Sa|`~kQY6(}I2a)F zA*o?huIDnFRzDCwchy)L_Vyq$Ut9>&9Qok4!ngLXFFMb04@~e8IaGAO z9$vyuP_YR|!Nz6K8G7bxe`V0$JT}Sz`QrF~zl?$LEv$fVGpWrl%ZJH71+VKhhcB*^ zQ5-xc-0Yxd6xkWH$b5PvuEH+!sV}Wqqa2zZ;%?7FPM`h9}-_Mtnz(oyb~7i2bkH=lNPe3=RczJ|BNsUmfI1>oKXisujKD3 z9;KQxaLv5^`V;LNX+v&E;{b)VPK>gC06bbjC=r#Pd$=b1e5$iZ^vnZq0!yOt*_#Vg zhB2M!=TBvEYI!ZzEOoo9Tm=DuRq0%S_(55@9W{vu&$Z+Q6XsJt(lp-kP9EH@6`ZFG z#hsF$tY8$DPsZ?2*VCWTSt?V{#T$gU=ZF4Mk0vu2H$o^lnB*XeU`tmTW3NuN>3A!aDE}z_v;j?$>$sYb? zioD^K^;{?U+WgBOWF6)-*g_881Q=J7%9{x8yL342vjMxsx^Cbp*YS)G>rFnpyKf6oK4{+Qw+AICsgJ&xWEH#VJGb40{#>c3U0hZuyVxe(iisI=VBvEg+X zFvEpPJP}|<3L4YFo3Y8tig8^)y4?u|_y_Zm@l5Q9X`=r))WZL&W_Jm%VA=-^>dmgX zayot9aUb0!*15x2V2BP@XaGmkD|G%aaU5u!&rF)9^f;qK+5n%wbFR?UQ(=2- zz7$|AaEQJTcY$rRyfvbB+8pM%?RU&Mr>1^V6>n&!?&SR57pjsm zo@eO%-X?Tw)eu38a4P1Vv7DrQ38B%P(8GRl#RO`o7x_1*@`-JeU1`I@O1)~{92!~i zUBc+^BMmqv0P_E{f0-f~B3Gg9p&pbok0rML0!F`SU5L0fkF8M;>aCR+VL61Lw zz9p)8~eyRV?80 zWx{z)3^i%JJbs}}5eD2jUg&$b|26?BWs0ErEip~-RUh=q!`-V?V33;`T64RsPo9u{ zI=k$BMAcH~)yl~U0y7|P{(2cbKi6)jDQ1eR-mA+JbAB{*O{CCJ8zHdrwoOM*n6l^K|*btS)J zh5I3Jz1pC<_k@mWFH%Z;M`j_qgYKNv@!Nj+;;rUaJ7`7Cm6%Sh!M=$P%AVC>gPOM} z1d&nvK+!x~6pf>|gfeu`eiRK51sui{d7C)^IblyDy+xN+sA z zo;Nt`;P#`>Qf%ApZWjn1FMYpgz5B}dCw?I#FaY->ECE&Ti<{@@F1-bK>o@^s2ovn@ zr$0QT5DzbaAGBU!gzbi6=id3Of?<9JM8smaJo=>0f-WNw^CUn)z z_hKC9%wrgQci-gV(m*cS)htK}E96QYynPvA^WLo11;PCo8M`&~;0)RF+O=&j3+exd z%>1!~$0D&A>*}hCe}-kx55PY^hqy7_f2(5Ll>p~p-79ugWe@u zH_jE|4GB9C0V_e z-7ukyFK=5mI!YHc9BbBAbYEKN2(iDwC8vAEp0n;tR`k4>QhzefBVt6M(vVGa?vq;o z0j$b|-WnO>)NWv4ow#hpRA~mB{nD z;fVUK(me7-1DU)w=VeRPiLI zOE{(5uFbCp-WkbTa1N2SK2xTe?HPC2aVx4*@QWh zZFfOdj~0-rY|vs+2cp`B2lv!>;f(hgk)Sb-?#cwZua_Q1&x&-YA?`E1g@x+=GMhq+|DgPcj;Pd0!u4gQ33UqTzkH_(Zfwq_I8ZM^Tcq;apXdkYV*{iFa_p+K=8)_Jjy2sAAX!<&x z#~E{dMT>BzcNLRnQK^{_DxDst3l!Q*JbnS~!oI}-F2sz3>9r^2T^_CD9NPf- zJwK^epT4f9+J`i??HYL#UEJ7ega{PWILp?H;PC=pAj0zuv1=|I}n*H;4W| z+Hv%M=!+lJMt{3M^aZJkTzCFMm&K7Sh4%FbE!Z?d)=@>4E2=U4#(UL$o?C=JER6lm)cUfpb`k^xrsXhAqT{eX?PYj3@1i~B3BVha2Sm= zkfT(^u6FhXe>N9yrZ#ZQ<8wMFLU*_aN`JLgaB*xQk zG`wvJI)kY?Up(O6a(wPOUP$v)tbrfVyX1ZVRQxWzkuBKt5WiR6!r>1L;&=P{$Ur?J zD5_0n&hake;y`<5wEip@Y%Ep6nDeIH&k~vQh8A(M&-5yaYEPQ82+%!FH&~{|=Y!;yA-KdJ zz9W4B^zT*Odfi^p^r8YbA;FqV{49hmR8}uXT-U@(;G7Axf1@8B^J|b;xy0otqUIvi=gu$d@~7>)eJS zAZZ+G+<2HYc6;)9`;hwxi3^I_iqCgRjj4TCH21qgNOL-m&u*JpZzCecAvG|lxw;7{ zo+dxtsmvn)O#7rVw~4+C20lYg*F%IYYXE}{&0%y|{%Ek6mKD;Ery zcVfO;%?a^RU8&wtZMw**c;WX4iJkj83&VH@w40o2ZA`TAs68Koo~@+5zDCw|(@W=6 zww_Wym}q(0rcDuy%XPY|GvoiO^uf2;p5xYcr8Vh&IO!y%(0N+i3@Ba*vMF7KwKH)VD*eqixN zl@o9VcMzLhKoZyk`;3SbHYxC~=OLAfp~#JGhQpb$^wzj!2&-C`Q5r+FxXjlP*TJY zay{xD%)25KR@;l4P4z@s_m+-lFQN0)J1;UcE*837UCZfLa&~DlGDL=YEK*tq6Aqh( z8HVQKq;ZejrSVz>F-h?_HOG-FoQ5y|r%WBqomjbO1$YfsW|zQ4PUoJ?xI&Dnq&zSo zxc^^qV0Y`~op}^Bw^R%b>OfRkEIPZ9)Nr8_`F;b>?ZhpHjnZEXGGZqI7ciBsZ+Bli z?|;h10muf}ksZS0BdFRl1UL|`;(wThZHT!yF*Kla-uFx3 z-dWH=NseQcv;mr z6G1lcrH;Xk<=##CXVO^q%A0!`N)Bs6cN&1efy70qEy^^UI}75vGocYD@B^D72azBL zFxp#J%QDIvZBtxqSW-ENbP@&^sM86%MFg^vwuAeTqWjRoYGSD7f32`j7;v;^HG;lX zH|p>No&@w5z&R`K zj6$s+5dcNxiiV<+-}ihl^?N}dQ&*~h%$Y4lN#rb6oB6OK85rAcgT5Gg+3%w_j7D=) zg`{b;fw0o-kKINF9Wks}W4_;-Z8ioYi9@u1W}JO~Oedk!N0 zh;4`$<(=TuN3!yEOb*b3W&#mb4lf!ivA!L;aiXIvlxWH zYyJuIV>uV0QOEfep^d-Yt^+>k`~`fh`oFpu#tWmBPn4-Mn*#g_^0hzQZ6R5}0^BD~By1rq{^^$(dknh{&-C(8o_Ps(G9Xw25@KY{*~@(H zo1Bg`D`>e0h8O(WR2IOPBF2XZ5e=hgbXnRK6mGRNj(aZZ)m(lKB)mqPWF5zwXlfIn zTgtq7r;iKAzSAGWdJz9Y#ZRLi{b1kb#8~bK2U8GR@2CMK)~?or6=z=R$|5)dT{uZiu~Kzr~YL+>sIu8D^FDy%v5GoqQG^+)2!t!g`j zbl+O5Et>53 zjHl)mO}70S5q_{Ds0Z4EcwXFXaCK*pbWh+~UQTulaefs+PhIB^HKOI8&x>qikNxS@ zaOv$HD)~uD7(QUkzT?n`#h07JjA@A-UK5Mk*oZ5ms@NJFi*Xh=U%GZTNRL5U0j&X> zlb_{VddzK%7CT`lwozgLJ77>1)1G#BKIV7i)sHR3pSa|-3n0(z2Z3=-1eHO);-kLe z)wqlWIE5WGmT7B$fBV4fVlNAG`Y|6S4wPh$ET7DNk>+$vf zp=}BOgSOd9n;2)qrGV*IwnHRF9>Y>jS9>rf_E@Zvz1H<*SLF|K$?$nAoAdu^1WnRm zadW0$Bg3V35Ysv1$pa*_oBtxo8P2By4o4H21>q)*tWQS63Z=L^L`OYUXbZEaM>6r@ zTu`kD{>fhYKLDygRlm>|sgc)@fth|pVM`ck-oZKt!wt4HW04c&;-bc=DAx?7dC ziJV`QT_0lyOp&qI>N-xp)pPD`V(TVTls89LDHJyIn;;{9sB1Zy3Kr(h9~Y2U27v%R zl$bk~ls^<_9f-}Iinsd0vy`YTXKdQQ>8!4^nGmoEJe=-d6_I|heJdcikECQfBJG3m zr9;WZ&geYvF+{z4!;3uOx&0@u0Bu}kJEGeK=Jf8Q?5-5sSZvW`SmDI+iot{;Xcthz zEWNRpNFyR^>YldozT?>wk7s)l3rBuh zg7Q4N+9iW%&OM>mz-c~;1Qs%IKF=AQKM_?hdORQ9;(hd`dWqxTs=)s5JDNM1oQI_T zx5kltGe(BbStld1r((f+52pJJZ*;aN+6Kmd5Y`>PC_(Ewd+|Ox_Pi(ozygnh2(Uol zl_||0e6y*&y(w9+90GfA@_3Om)-Hru2ao4X#@eRhZR(%8VW@x$f06=ZV7oP+%jr8& zJQQv7B-sX@O8egnK#k-xL#CKN`Q(%48UHhx%o|1Xf!+>XG>6ZCXDKeqrzhaKT(kNc zjvP6{Ir|H4xQ=4Y;d6X!99~mok@L+zP&8Ko2<96jjoO=TOGcdb~}x^{c=I2FoVQ&Tmqju9aOE2jp{&V;jk@}+Tyc*G-L!r=Q< zPj_V44#Bkg&;9Yh+w3SKPeZKC@S7_V=O!sKnZ>M9X2jU5fiQOcZz_%Xj(eSHJrHi?vx_s2i+L?ZIEb`%F;7nO4rmIednj|Lxni6T_O2 zImpd2%Ph0Z`gk=DMRVd*B&K+(yj`7BNCZ7{lg&@4^&7Qfg(ozk%2^`-`oo>pgMu`I zQBcdqsK?Cyfuvk9y37-s+LZVoriJarW`XmD7M z$L9_GvJ~DLT{58}i+=B`^6=PCyGG&VPZP&;CF5}gg9-MYBx~c@G}6Oq0t3$!kYlC7 zQ5&#{s-8(F&9FmMcwc?-Y5s@;S5!WV<}qo$*equh>gIqWpZ+l}1Gwqf<^cjYHbE&z z-5ie$Sg8`|gwIc=GI}~rrcK0J9O0Jf2%8vPG7+5%ydCFp`%rXhBcSJd-JHl@BXp)% z;1v$USRpO8Eao>~0m=No%}4?5=;)Z0%4pWLnatp4m5b)Roo%{kUYKvmw`CU<+EhiF zCtHJ!z2V_ueQHO^L0mVlsj5|FHaHoTC7_tIOM@SdNZS1Lr~Y^DtiEey!^%}vt2ft# zY^+@oRKIvt!@A{7o0c~RZ!O$WOiJ|YnQTmxrmGk-r6Ebg0PDh|XxbdHpSYC8bW)#2 z9b-Ge$CtAMD;5%0&dr+B#h0v*sz(E0X*{eFSi9244GSUH4%tBZ_XmB<4n8nzo(?X0 z-vqs_I+6uGgI9n_$=6s4GQjOJ1&0Wa-=JH*DHEGb(Ic2+Hy6(BFEvM7K z_}rS5(eY9d2)-1+LN$zLxjp{sR79RDHmfuFs+=(ZoDF;mQTr>?WHhz4^Of>(YY)n( z0f8Q;Lm+|6O5l-PQZe{ zDMjtSvQw!ZWqS7Z+g>VZK9$;dAyugwXV4Ot;`um}{Aypzg^b~tjOjRQe@f=`)ppoK zZn`VrS%&`AIuUh6h|h6ES-_|4jmh_i=ZwZ>kU#g4GK7Kjp0o5PWI_leKtG0Gu7nNb zKrc8zW^nQeD-%lIK+~D46G?VZu_wZ9lMz`$e6}M#b08tRKRLVW%vDn9V1RIV*KKDn z_QmD6qw+vi2l_|%Su4ogg9%yAgj~?RC*y6N=saJf4K(!LXv=T{tV!fehh?=Trx*Wg zHU_=cklvG5MiNp%#~+Ewok%Q!6jo=HT?o%}MOgY%vdG)Ruuq}60d^U@J6$v%OtdsU zm&QbM#005+)~Anqs+%;NxzZn#35xS@LeAuWG{TMp*uBI+_Ueo~<7+U{8HM3EO~jX5 zhZ6FKlk#CRwkBU8)ebyHT%`SEruwLzM3%Ik&dU4#JMid!*qyK+k7p|3C7!5a=kWqZ zZ2EXyx+B3h5n=U3=MS9D04q8RR>j=_qgtWte)g6`g|(gwGSY9bk)u%>NW7xNSlwZ{ zdQNLk*)t>DY`%^kj zj=_0x5&=lEmPILRCRM7!i}XX0_-RC;xyVj)tbX!0914r?#>=sv@Vg6!Zj(s>uc2}u zu~~EbRLJ{0RJ4;zT3_P~zPToPNrYv|aAcFBet-zZP)>>&M_`sw6V%NCXU?2iFtgZ7 z?aepe>~sds_Orqg&HCb;Pd?xq^H4O0yGJ&9Z8n>c*U!}R-Me=)LJM;(nCiJ%W|?J{ zSs$b3AJg1J^=ME$`y~`yC#YVoXw9uUG*Z!~wak8(H_&|gjh>UKAR11^6}e;V!^t@V zf2<%r>K%hF+e$~z*{sPJE1;i8lXJ;C1NamZ^rN7E@{iSk!|qDV1UEX6nya6@Oxpd_ z@2p6W#HmwU;EAfo)GIC0Yqj!~R{UL&IAxq{bFzvDXILU*nuGActV!_Wa_?AD?o=26 zF>)QzX^xnyT>zf$r=q!sc?m_*H8phR3i{9=w?S+sq+*iT(&>oIjwi1ov%81XpG*aJ zurIu7_!xdusT*SUXZS0Fzprgi$)1P>P)2&wxp&|_PobU(0hS-Vp}*EwfBN!RbPl`# zpume)`{5P(n3^y~`cAwDN~k|7Ya%{(BF;7)mM2E!4kl)f|F#-U<(;JN^wpshjP!Iw z+v?AxgMAzH=n3Kl?=svqfe*hgY?;p1uJ3EAT@xnTG9hTA7&3r17yeQ{ZU zUhzg}L5yd`Sqo_)qff!hNOQ%cjU}WFBxQrm+!0Zvgq4er75L-xaTi?brv82fMe}LW zeL77F%NN57hmKpy&%O=smx<;o^OUI+RNey7npeSN?uiB1OZMo0)S{L}MJ{~-MAjj> zpZ-no7;It~mRSPQW?-*HXE{!05?e2h#!`LM;CQ_d(nzxl+AKWSYeB8$EYM8HEOUwhY&1mPQ$l*H zH$2S~X&pIUYy1c9ie>|smjovH|ZNltpx7$spbckqK zK-(d1xb8+koTp#TzzfRzXT2&Tj|(cbFT-kY59xfm`rJK*cZF00t!-SszBwqka?9R= z`%adh8zTLp;-aA!ZWbRv6RoxL2GNzf05*h@Aw+YWe!@l9#s$0%)21}Sa>xVWjhg*m zCvTWFUotWiexg@jIboLnY;x=!uu9^spKbbD4i4BWUd-wmM~?Liq0Z&WHol4ePcY~T}NWp z7#L=c*~zgoUwCf&*{h%ra;d$^)pY8zBhDfmD+GP8ZDI z=#1e6%SeLF8Cd|Kj$NlL*5@xG9A<*_{Ip~sF4q@c=8r1xO3Fsv8SnMosKFu%hk%6b ziOF_7kt;+&c4hW>?B%hPE8Sp@etQ)Ef`FX?F2-jWC8g)ngvWEF@EliMX4A=cT7GB8 z^@D1$EBWFSNaPWg(f`Zdn+C~o+-KepMT(TyI_y{}w2rWMKiFQ|8}^1*8?s-?)?tS1 z4_=3MwF-yr-PbFMBnETegTYM@f_3@QT6#?#lqlKMO@aXC?)#n#1I#^``@Uy-`aY_w z@_jP1I;YSBfFNy=!1Vu#R;xIu?yjn?s?Pl7lh40Cv{s8G5H|)4qIIrFRad5>YqQQi zb;8S9^o1H{w%ozW+QU_sXPZ0Oi{VIBKl{u8d$KoN<(xcydF^?x6`C)c?oiNtLedC40+bZ1PMScs&l$db4-?hoc9fxn>Pp_^Dqm5kAf|#9*{XOu1fekJMaU`GylU zWTR7C<7aHyr!YS)Na5 z7~d1o5J?=EjP#ZR0&XRiZ?0`^#Pj*AfQw0fWcJwjvp)&fwC+|qmTNq_bsZQ>Kv~y# zb^ls}hmG(V2C0?U)bSs)qYn0I7vk^R>i+3{N8XNTmLresn@tuL7MLX;gYDq z>IjGCLj!#P<-p~D=6Li3Jp;QmijQ0Hk=>MRTksm%ni{DvR54bO+ClLwMQ}QZ7NfC0 zY9gq&m_W#X>CLjS`NR#WVy^ z$jK6g+>?I&uUf#ML1QD;orw5YYH(*u{V15ZUEcv~?XD~!>X?N+8AS-gbge+{W+`Uy{+va@M zj%enU@7w_K5X3ymS$SGZu|$HK4SA3{2=CT6`{o-v@&37E?nqfD{N~G5z?!~=<}Og$ zWtN^3iRSQVBQyq~+mZ5KaNA_LbGIrGd3t~y8(pdGVxwF9s7)ppn(Q~51K}!9rrfpp zjGOziFE3!fl2zWV3g7mL;Qa9`ddm=i`8rE-5S(KBQ-fvAQp*(MTpq_{%u=6%8U#{P zr@B__-6-b>zL{%T#*U;#Z!*<7wcUVG2Y;%vf1}zDvb#-W&hHtuC>YzSjabPJxh)D@eA##{xx%OL(2#8 zEOXO(63OFrok&Q}lyxDgX0L5pk6+rW=!n+@w`+oXHNHfNEmh%Is_h&(>tauN zFkZ4*>x^COUux>wfD68c$FH-0+F5M&F4ns-tb&l7aE)uD-jV(5Va5aK@!*}}z5fdb zx+7NN+^F*pV=qQ|v=5?jqI@t!Gbd=fm!_M4vfF?e1Kt_DgJVO0eqltFM0^gQwVamZ(;{>v)ubX!kI2~xIddX~;O;3=MGz}z3@yqtezcS(re5$BGNSmb zoL(VkNbs2$$ZJ62x(;?eboR<}gA;QsqGhgGoLx(7{d;3`O}5OjK&Gm1w4pQRSin9a z1PK2_9ajv`u%oW^#A^$oLy5g+ce2bE ztq9-@TolnjS(b?NU>iNvesi_H1(`ytwcd%7-MwGxV%PTeZp>_q4@WlV`GLV0$WIow zYrUxwSFFJ^a^{uVkAM1Sjy!zi;YW@lv-}~Mt+scUhq?`U5+L^KT+{E2^@LF$o zz%9+@K{LlZqVi_un^Q&L|YC-P~9E2uGkVqs_k*k3ESy7;ho;ZL0 zytSH(BIZ~CQlw*em`;bgw4L^&NYMV*a)-N>rA!H!MPZ#?Ai)9coIENF);J zb?ERw^IPq=W>hP0DCANG@{TEAPFcrZxf5jxQx$>TryU5$MgYjjGgsJ5 zRupFBMK+ZYk6m4xJJGRQXNy?UK&i4`G!xmbK(fv+djBk^O9EXja3fh zjyXXU!_~oXxhGa(i`Ck;syjeY5f}oPzEas9uC{9p9(b9tJscW>3}$(a%^T;rg&722 zukYS2>B4JwDm#|WIkeD@0RB3!m6+ja&ncO18D;5L#%4}l-E441Dm}>xFF5-~t!)P( zD&_8_h7JMcGyKKC>z5~1PurL4eVa7_1atF{jY@Z{qHnJ>GfG%6TT91V@qHm8JY4Et`|<#X z=0EUG9dBh%_OK_qryIN2%{>u{oiC>bY`(~DKGO!^o+@!>O5JlOY@Gk{&}^Or5|{42 zFq`|lYpcEs&hfQI2dY!%%CIq=>#vOSW3|I>p1TsQcBIQg8zsmjam5>8a7HEx(#Gwv zQrBLEd#lF1T4Ud7bZu0&0n~0)+1Yo(OEnI-;4xSNpE$k+fOYo85gc1{%0iT-{&{G< zx-C-Y+pY0$G&)&#Qh?*^9ut=8oB;d&t@$%8ixnN=nh+?w*0C&|=4qC*W(Udou}Gxh zZ+$b$wsjMZbKf;HrsI44tGsG!%B%#te>upB6nt1H!>pA6dEhZ01z}6+^?&Xe{`@62 z%+H;K%yx*g)#v*V#g3~6C)--1jlD3l`Yc8WT(P6xL`87^jFXAtu^gH2u(|WD#8EFI z@|PRCu6_0jg4)5^_1fOVr|nx+U1QI-uxZq;Wyy)X#qWl$ox42Oh%Elz%x8S@GS~FE z7Pgr`r*@3tXI|cEw8P{cs|@Z{1s7cN+&hcwPD}FGgB&-*kDltpSOt=i!u9siGnant z$a~?~MPr!w1xTZ2SBB ztr48k81>F~zB7?XsD7_HV^z11L?V$$#iqOaWTnUad*A!skpq$p{nV*bbPNyK8F5<_ zZcXVye=(G;{hDUTff$U9oNSMmJED!g-A0rpbRS~ zI(Etzh7-Bm19S_Zyi)1ktL=@H1-DOxX8&oJL&iO}a^_|BR2zFDuvb39o^m4?WUm3? zC+Z^|b5Pr7OrLVE)Z6wd9r&Ph zl`mfHjFxmnOKm$}>ITk^$cPV~;lYa|@)pq!Tl{Rtc2#Snl1Dtln2f@eAknc(FG?nY zKEuOnaI~G~6MtX6xzGfEw`Z-^1+chN-ML+9hld(Q>`eO%f?rZ1A|u+nk~!)!N`3L8 z_RSi{!YTiFy=}MNuO0IkRS0rvXQRoSI6j79mMyi+6xP*azn-d=530`BR%P9p$#Y%n zja}i2j;)4{+|_x3>-pi&H?Kv@ z+VoNf1~3-uoQY~=ntMUdH-0k8K{M)Dem#gInLHXwR9#!Ca`F*~AFZ&?*u*n9be>3k zV7JDDfe;*d6dH}8I%u6A3GAEIZj=LsgFaU6<6lY@FD{C5tb7Y~G5va$O*glJwxb?q zqRgTF!wqa1!dqhbx%%82-V?*|K{U-?brTHwX%u0Eao@%53bevj`jL3M0>}5OJX*FfXqz%ZMt@N0}7g)ux+*|l5ciC2YCvlR0fM3M{7 zm&cw?AMZpMOYG^;Lak%)vmN+SR=;{}y{5w`x9?S69me&tz}COnw{)swy#Df3vu&lh zXPYM%^`j!|%&8Vk`!GxO&aug6gw)%1E8Q3tV%4FnoC1=-oOF#>@J+C_=Lc4syxW)z zfkCOd)>r=DFT4j?=5Ku%jpav=m`-!#M;k)7ZDEssy0>R}N7i-aG*{3Z55LbjJ~m_+ zx#Ij@u*;wR^ruzVPImLq!E0z}u&zUMib*6AiNq`wJFTe{^7+LVUsUc|HFZh0f-YXX zNQdsw>5fkG{8^FP-rAU-n@Pl@vOj#dB@2EcjK!KtBrgGn!$GGDi9{liUbhYfG&gin zN6TVx=Ab4gA$o>`<19ynKb}t2fRlo+xfUwha{n+kd&0&OCu;o3r`-VPE4B8Szw?0` z8flr~p+(|5z}B%+XX=<6u_1_|*eOR@$lzXuYoVciw`H1%JnhlXUEV6anyl_yuDy{f zu|-N8s}-KLQ=ywpZQEb%&ir_a4e$bwOQ(HX6%G{JgiC$;v>hJ=j>;3Gqip&a-)5s9 zzTHhkX;(Nls_i@VPK2niqyCj@8`x!71a3&5G)Jqj06SOaYG27zxlk>0w=%R*>D#LD zL{V`7m2`p3N#hN`@vXx_2vGprYxH8U9vAKE^$j2jUu&k*sDOypb{Relq3eR%p(@ znLhpISzb9aRn``-Z_|G?At)p7XB2LtTDtukzYrz3b-btL&9Is zX#ow#(b%qVAp<8`;n8Y(P}~yK82A|6d=JFD)R{cyOqRJZn_;ioGyav(@ZUPZFOTsY z63i!fwgu5Ks8^XNaV$1=u)wZF>M1>=$)TP_cKt-#dX*5Q<4^W(Y0`oGb+Ry$;rbmxw>O@FC{XBV$BFm(1*H~Vy8yQ*XO^Oy1dhMtjLe!%F- zlivB`_G#qrUmC&sSrOlYc?{g7kN=owbEn!dU;ryU>egz{PayyXCmrYJaW-?YW25vc zqI*!2bGO`vYNeYszRfaMyw<~hw1_VPw*Oh2&2hGQ(yMlf5>g-F*v(5(6eD|Mp!Q-DQ_k=40+cn)=$GdNy=v@5gYvw>mf^YEnv$myX=VD#g z{P8ZrM_H5h&%~1$c#j_yO9MF7t=$gnh&lTq(+TGoK^wCETmae*f{rY~-nBq7| zBoc{a`B9K@bMkiq^N_~I#^jHPieypT@WO=)YN8VTjueALq+4!k>SieDcRD&lLGQ-; z@}X^KT0AjwNJ*Xf>MDT!+#32%B9TZW(reP;C6R6E%vqT~Rn@&w=|R*9yR-sk7ZvZe<>^D130$s7^(d&{vP-v;ky0_zwX z{9M;YO*;(B*z(=-?wyL@R=G1;>xq@S5JA2m-XEFNagj5<_T{0S+MZNZaId5lr7X45 zu0*Y4{N$w-+c2-e2r8P<1g6xOGd^~zZSjN+f#VycZv9w)_Nl;1qa$jc6%Kq|CSPZ= z`I3|-Hy6d_FxtR3Gbx_4)&f@hU(N`-dAfD8s!c2FOx1Qozuu4Slu0k#XfbT)DNC9T4rDe2v;4~(7RZfLxI+l=tm_!oU? z6lwDD>TXmzovU}UD=Qq@4sT@IZZ1D-+p2XUMb&C&_a_0L{{SDKCKH!fVpmy0-;M2#<8?%FLCrAn(pfVLQV!Q6#t zr88CSNmjY>h*xlKK6T0mcpa^6iGAlf2l~%>!pEJtqYk*~F=m4RZod6I2wa@6Sq_&+ z;AgK7rpx=*O6;r8^@~9TWb&9t6(@5<+Qy^o`roxIR}KQ2vy%4lXMfDU$YnOu(9Zsk zmwnn7ZE*CS{wEg2SHMv_x7c@0;XKKfd9yXnk&`d;^IwqX6p99lXcgA76sdE?OZ^CQ z#}QyJuHpJ&BH>>kb$#wkTcolxRp~{BIHHQS8vOCb;6l|^);1@y*OPP7Xs z``0TSJ*R%mk7`(W?bi(cU4Y|KYUk-~{{ zRgwItRql>dhj@+0x=uF286*B__j$)gLx3l8 z)cCfzzu1#4_vOlLs|}aB|M~}JNy!*@5F>7aO|kLQ?TaT`5dEQ*+7n+L!3V5!FRTbO z*JXDa>LQTJ>^3pOCa)EeglDC>Gukr6t|g{VbR|mz>C(VV zvwifRy7{(>3>3~z5Nht*o;ltYM^#Cr%~birWr1X6C|vH`uC_&LoslXhVnFcj2x#GU z_87a_04sfevOI`jmRL2QxjkBK%UqepZth92mE!xt1FYBB#QB!_22_2t!-WlWYm@{N zf76dQiSbgTDGp#$JR1+OA2}^0shCJ;K_S%)Ed7A58J;Bq&Wi$=dcyQF=keJP8$a8I zzzrN~9QMsGhs-U=vPkRA)#IID&G2z!uXkP;LBRJ&b2|n(A{90sI={!il$Edh!c|Va zv}f-r_|RLY{;o}W)#JS7r14J~ORk@C?R*A?=sxgqc=i|SUzs|2Y58;~YO(6af~n60 zBNaUe7LV3@gi##h!Mu(zct=yn-W` zn}`oLy%ednqfF??$&TJEXUqx>I zS`(`5Uf%oW4K|pT$05z@nc_^-c<4@+&n@7OI3Jkd@&8%wxEF;&84K*qo#?_@ipdbU zQcMnL{hhb}>XC|CyWVxDhBfI8xj9=7KKksswzN3w_1MA9LCgaI z2cS7>fu_WtWI+^q5hRuUQz21>>!ayB$8s^nT(lI4QIgH-u5=d${%^; z5%q)e7k}{=*8CP~0u_g3XIKmP-F}~|x5tkueS-r%hkmzZ$#gu+a-d4`iumY9KT2l? zi9{liUY`yFG|$O=36>Ah<{TP)Q3N=MCM5^W35NQU`q2P9;DDZ6&xe5B!qVG&JvLw8 zg3J~aIfV6iyUx~gL6p1PWRvGFE!FvfMB|8Csq?^Ei!zn$m~El?vOXWr=p5(8zS%S1 zd=>6&W{=FAzOqvLO1j3LF0~Dc?^RCwNkJuD-6O+OD z+2(fkbO`3$*^_PSu0b}RLUT1 zqDEqhTi~4=)g6c|NAXNRd98O{<5d!qpuHQ7!Q>Ojp5{1py}lD!-oW<&mzsRX1c#Vd z;^g!4@@jKyxUzMp#=chX-!2ct%Dmc_2l1f@D^Chw%lHC!mFEP#l`i-M2b;MBKk}Tw z;v30``1MpCnv2Fhh<0Z9nYPUaZ{}DaTIyN(oR9nAMd(bla~h~OTH=k?;5fKvz8>TO z<>y-w%!1=H_Em?O%smpBKiLUaKC422%uA7Phge+Lj&tyti=>wro4;Vs)&yDEwZzkY zWMN0kyP{QHa3Uj|M~1Or6lA%{F?8Z;tjY!FHAk-XwoG6n!vw?M$j+bbL@GKg;ge@t zHU<{>xg-E?|Cd@v&RkhP-nmiQhEVw3hR{Zho9E*nYfseMCXc_uCix&r@bm36XS%j3 z+wi@_k9LHQw=aI(&Bs^p0XMS~=i8=Ev|YQst>whvkEl{>i1*3xBdgD|SobQMO|Y0IM~QeIPv1uT+9q4f@Y7h+Ge#;c zx%GBt{G4s##MQwwFNZ^mxMtEhS@Tv{(ed53Z$~SGnWsaWwVv^_9c&zc+u%h3ay;WG zE)vz#1JRLZFm7Z=Dt)xRYwm0do6Cu4ACZi&@v61>;s(Fum^yoP`CDEVNk{l=bA~9c z%Q3wns_ZUhBhI-sn+UGS*Q&z+%?0_*2R(E223*S_UDnt)w*s-{Oox6$xo1m_HM{V2n-gQ(EEpw(S91EvA zIAz{t17Gait8wU00l2$RCUNJ>{#bR#Zj}x3*6U49*2^JtR&HGwdDcIHF&2*XY^i^@ z$$^(|0|Q6c`sIPyQ!Ux20L}X+Pz5ob!yo6GI@#0xxhI_)&28Kiyv4C}3S<)CX_qaY zx|%NU%#=IAHLmS?glqd!C9ZU}Yp1qzv!*jr)de!X`n3?=hZlkbop11FkM)B7qdw$% zO*`Dv$@Wzam{Xi@ZvW`U+_!pArZRSYW2?3+QDw`NbY)7N$m|Z+1^|WU8#`B?3-W}G zj4mpX>SkUCFzZT=L(ilo-(0xR`CpQj+;csj&$7k(Kijfi4fA!scGN%F)W#OGnsmX8 zCD-ch2pd5S$=L>btaE{H;S$q4Yiv~KpQ4G9l_@szkDjUKj-|$yn`eK-#`ic(H~8lW z_MXN@veCq3b1RCShLNsQ?Z&s0Eq5d;?8uyfff|AGYkwQWS3G}taIwC16Ta-)HeUBK z%(p!(cg?@Eeb$B(gL&7)R|vF`%)fY*^QKJ|=k^E>^rxMf@u=Ol(ehBP+JVSiK{C(+8)`Mijw;_)Os2o1?hj|C` z;Uf>LHnenC5q5loRp4>sMJCco#A`}u4x2fkIhOmcb>F3=RWWc7Jiq5X@3H#L<-(V~ z^d)v{WG9J4B9V$#5)R5=1Q2uU?}atT{6GDt|5Px$j@my(a)RVL!*H6rLP1Z!YYY19 zH^;6Y?slfN!3n`vZoM32{GHqFrt^bDB9Tb1Lx&cc!{RNWxuA2Lwhf)>K;Q}cjF&sj z+h@!??!MK<(=TtxU6{)g^YaC+@m)JmdRdCsj)2_WT z7YH)`3G2kaImQjufRKIR`NkivG+&uK)e7(PT765r)SIZ_?rc^ONIq!;H(#&yph)IM zqa9>F=UbALlQYhF)_39Z$mvVt7g{neAyOvIZe-X{mJMpGFO_RqMBzuhWp4F{eQYYu zcPe9g|5KiorKT>U)R!rB-#ppER#M=f9N~^dFz~?2g6UG<%!$rz=ad;4FRkopvks~Z zlgV7$Gy1mK0unncjF_JUN!{Qf_QphH{%e7;6IU=ouu|W#UEj4)*EV~)wf75G<2SbD zLFNMrKODL7g{za_^ssRr{?0!|&sU+`6WBLthWtoxw|UwKbl!Wh1;=f{=P|EpNfu-Nc5^Ix-ULz_MQQmmpQRqh2hkCZxNHTLNf zukdp~6DxE2oE7=zJmnn0I2lVkks;#IbLuZSvp%aRiklzpkXxxU)81}~SetEj{an{x z4Q2rNW{!8xe8(q3QTPl4Ie|cU&IRdCi#>{%MLBsHUM(NN!|TE3aXhE_9D)O-YvKyc zPX_@C$7YLYax>dURq@rt9wFW*n-L$UGM7Y5Owy1QYtuQI2RpP9$s+USB_e{-EIwTRzDe7 z`1N1^bvleid-}+BHu5t8%>!Nspm|Twb?BkFY)2`74ET7#Fp?@2qpmOcLK${Mu|*^j ziA1`K4sAS3io0qhrQ=VD$(@_0+7ZvfO1!HzcB6HZyJ-7klV`4kYg&_)HWX$=Ax*@B z?^U~&>pIx?;WKA_&$cHjoG_tpHam8!I@0A`aFK638=5%_u-=6{@x)PYruzDBb?ut2I>tI4rY*N!Og`6lPeaW{q*5OlLu*S^^F%GkwMv}@e2Eu*>d+U z4f$_8>Lg_--U_fgk<_{tx4%E4w=L#cXW(1sRVewZ1Xj-G%*gDtnRddTvu3JKhKF?P zhUKF!k!USqKg!M zd=?XKYK?D3Xm$GdrQK>fYP#YpTdi#$M&a3+jO6S&LwdQhVzLBx@|(ojq>kb;kP#>r zXfF0z9#oxUYxw)KBAdm~a?-KB&ZbXv=1M&L8aZwYJ0|560Zl;jjGQu{=ik<}-6OVM z3}|S&JaoCd`Q0$lxdN=yydWfxC={>WQE%2E9D2yY&v+xYNX$8L|l0;U9BKgP%7StiGC9PW0ex<(W?S7vinCkAaQpU-E_ z_ovH*L?V$$_o72v2$aLSJnIDg)Mob<&vdfSfG>Mjt6h@~4)&AiY<(xfSWs0mRq0EX zc(k%W8l@epoD0pi$a6Q?9P7XEO1R3sUGHA1?f{Zbm)Wz`?uGK!`IGj!+KyD6Pdny| zR|O^-x|Y8`C=#o)oBuqyQqjqt@FdIJD0Rp-a&r6l#>{4hPrS5OXJ4u9T72OK2qG_R zxW$5>y)xJANj)7xGRfKrHyh4@14e&1yWHeL%*$4-bFs0F1*3qDfV6l;%&{=t*o7V0 zEAwoW*|3Fs6|S8I-*`hi3$dwFw)IK}tm5$+|5AzShgyBikq4n`I8vfn2C{ z%$;=3Hg|0tcdb=+@xq~HomzEZ?`e0U?Am%|Xrn$fbHdB6Y{N@F_QlTmy35Em(Mn*S zcU-&3qu9~Rz{YI??>p3UY`=Gw8mv06robMnMdFHb|!%oB*CXCr6qTcz9jhv47qwXtMS^J z8F{kF)OHcJp5u8bn#gm{<_yyjE=}K>$h3)z1->^~@i!TEkFb$EX5aT*WA`W0Bd0EJ z9Jiyg=-~O5E$56R%rezPY^uhgxuNa*a}5iN7k@M?l^BJSUC$pq3D$*cTcpq96itur zAX48r>R=^)xbl;MB{3W&H%S*Crauly0wC&`A_Nm=te64Fo!M#tbglUAK_ibhaQ4W7mr6Ce&}c4`3`Ce z-v>Sa9J_V$teIVIWVbd~MurDA)|VtP=OQzi@-mMV61G8{%&Mo?+uM7v zkB4R1SEL%DBoc{q$RydHnoeXLE`9msmlY_NW2w= zySXhLS`*pRz_U5CD(M2#UL0e#Ev#m6k8B+O>p$1JUggOh3nG^s^+?B?Y$IRru)Zv; z@jF$HSc!9^$+q%hH%psEJLkUP2glDI^@H-q%Ixu4*LH(*;nM96r!rf<9aI^t*m z$G89ShFP9*mo0qFwa|EJ?WE)S=@vGT5vFN@FkOqwCoa!4+gBPLs7IP8aiE+g>RyJ+ zd^=TvNNsnd+#NpJ5pQtLp1LyoLIBKHGl408b)1KnWRhsxa9+ldnU=|B6&2ORH^_a^ zaUSuJr@y8RS+duRK+gzcF=TYQ;M0<^axN#_$_B^58M98Q3||qh=A0&z!D9k*GXswB zj9e{g&QHME0~VY#$@;#%I%}AOf&Co>}3NM%nGz`ByFOF*N zlqUSwFqa#`rfq2Zyf|YfyYTnLxrDN!b38Z&D{?Emk;|vha8GxR71nez%!wCbpeRr9 zGlETLB=r`#Cc^Wso7-c?x$r%o_y^ZoL;G%3=j`cr7|$~~VXl`OBPMWUEW0l}^8A}j z^SYgy=^_`^KAF`do|SfW@!e@=P>hyeK};0L$IHln&8aVXAD|ogZr`yGBJ2Cevb70W-2tRXITl&xaL z*V9*rMNJT{udi2qJe9@yOTY9>Rt}`lX@n&_a$IbtxmtIoisgj$^ zaaR2CH-6(ch?rBOOFp8Jo!+2NIL)0QuYGRv@Xx$dC|m*b#~**(nqMR@9F=TNEhrL+ zL?Ydz9(-snBb5!)SIew55H(pJ5`2_ba=dx5EmqOFR|&%F+9`FRC}_IGA1<*2CC@iH z*bA$(4X&M&-J8`eWRf7Z1yR&{a~sjRo@jX}eylrD)t{;9&z1PtQ|?@uYq_R#?6iI8 zb1v2s2YKbS2}S0z320aH@D+3eW@Sx8t&1{`X4G|tyP-n~<5&sF&mI36o^ zC2K;nja{&o_n-SQ;@5K(o+V_tOz~6^;8?7`@vWXnoy#ck1AHf{x;E=uC!4RbU_`tp z$J|4wuB2<-D0yl;?P5>(BDMCRb5{}3zWR(eTIo(5a|5OuWnT6qUtzt@-gml{weHT> zy7lsFtfXVRv6cDOv7I6jfLB}uv`t^z;@RAMY=8qwByPO-t<#GMhFYQ~P6erl67Ya;ABZQ8J9 z=81H&i_ny$ObgfYi7~nyX27TNCLTxe<{*(~s8+Ih73hX(<<~_<4Yog-;ScHe7J>AJ zxkB1vZ%>P>gcsWE-qHPG5OX;RAjkH--qPEilgC6|di*a*GY`j{O2Bf~SaaR9#xr$! zsw5eHjb=5|!>;FFmM?T_zF6Py2xxhuy?P%J$S#TbTOWDot)d9%V|YCDu&7N+4dVNx z|F&=B5nXzn4jUej~?Nv3B-VH%~4<_Sj>OJn~4vjQgspDrT96tjGxNKSW7L zBogV6Nsgpii<#qAfAQi)6nwYl2u_XuL{?Dn}<7p4yL z4qIaGtSH=OvngV(+Ei!GoME?Spi?7?L?V$$ch{kS<{}mPmU4mu9r6?r;cn&lG?mi= zYm?77wi|3~)$O~DJPLfh&biju1*#i+ag?pG#jg#{HaHP%5bGZ%;LK zEY`ags~yYLP9%fxRCnw)b}gLhGCJ2ms2RuQ+(j))7xJixlqmhUD%iNDr={N)Zc1r4 zmRL3|`K}SgD>9eo!cDeFUFSwkd#c)(e%ig(Xk(#GHn=r><|iAcx;CEg!yaTMHcsZ& zetd1Bu4S**8?Lu6HeMP!^#eA-Ft>b+%NwXSTV00!D9ajeC9b zynUmxb*;W@p`l}^(Y{%CCGq?!t^4xJeQ4Z%wdgEJCI@fSi?*9F5B3XmY?>tCiI9sl-kZB&#Er7$YSTBIUD2vAYI&( z!Q;dzF`>_AhyiGh?^W(^+1=!|ET~z0wnW5tFqD1}-ble-kL&wz|E~miA8iKO?!B=M zC=0Ys3)P(078Vh*9Q(kAmMa)ykraJD#&V%yC+ynr3bl0T;6J>SDwD%g8kv+Mv6I;u#! z+ITh=cX#K|>eUsq+I_J3Q%jjJQyB%sdy=J6k>7yMX%zw)@W=vvkhw(hvvkI&qDPl& z_C(!M3$Nelzn%2P^lg$vl*+_C{tsOXy&;W!5-9Zpd)|0Qt?V)e6%1eeGX+5Ld81n& zn$O*qcUI;l;KmIN{W}GorpS+$#c}!kahi*&K6a*aDS%pp;(ACdj-9M*&wtp)u%rBX zCk1r-Y&RtxzuIGc%90@%`IK00>uLvWuj=n5?zP@!0G6A3MCe%JYc0%7eB3da<{G%q zqkN%Fl>vwQg@u?QI}CjsF`5wao(!hl<^4yWkp+&JMLdLslwoeZ-JDT-qx2;|>wx>Y z1)qP^4I7DcCA?YYJd{rbQez&{64|`pTn^d7-97z0q%~dS(?9H2eB@Q@)yWyv@=h8b ze)7_3d0u(UJ{;wNhw@E9&{Jt)>#pX^s?kFC zMPBz_f4Bli_FgZIpo|O~I0fX2Z~5ynvGUrv*eK1VH*`b@=}^l5GBM{5rl^wMxl11$l!`HNg}s?JExs= zKry`CPN!x2q@=}Rf2`(FRfsL|g{3#f?{`017}4ET2~#g3tBl!FwyN>`S9eS4eFPF( zcP2A2_e@H7K6(&nm@_oNxAS~QQ=%02O+4_H|Dl)U&w{)y#}p$LNX)vIwuTd@i@m+W zeUjwJk2KvmhSdd6GFCFdQ!w4le8Z_G>9@9c?g<0SAZJ`8WK)3x$4= znax;JaEEr?<%L$(e~hEHH(X!{OA{ zf=7@g!!=TnG!j~|GvkECONgX$!Bw;~W(hKea_x#o>zMKxmX(@r#g6!;_3n#&MZr&oDo@(Gr# zV-f%+j~k0=zlM&$cpt?>`*Qun^|f7Olc`Syd*Z~;3X1k`}dO#oG&hK;FctY4E_jmFkM`kH_9+gEP~>HCF9?Zs*dt| zJ$TFB;{wal-VHcd?_sbi%!8?W(>RCvOk?`2#6^qt5v*C?^5dKDT_0JBt*YRE!>6ZG zG7&Z zfJ$!5`j2K`K4p-{+aI7%0+oMB&60;u95sThrr;)TTUNK{GICY0dHN3zZEQak`}hqC ztQlWR$4k7S71HDNb{~m>Z>MGfE&4A;uSfp$-|Po=JzmaUpS!Tm7}rwHPhQQqGwl_l z^3biix8L&*np&DRSXEcY`dt+u$YkiV;MGe~sQCZS+*BsT020mZrj)f(I|hZGz6wv; zf3=Hj&GSkb4Zvfh^~@v=vkpNV4lt2Jh}+eOIK#g^2|qN+tfPL!;G~VOK+)e9I`dQ# z>yV`O`^PCk8IER!uy@nH;)TV8Y88W}jq8)RD(D$PwfI#1a#+3dsZ5?&3=8@pyhMWq zTDYu`kQlNE9;QW})ie&LfphRAB7Q5apTo^?sW7eGiH^#9ezM}9-}zRZ#<9|V=EgHl zg@vY!D*gHcK>r;oG74oyXs|5wR-Y7uJiiNJf2D}r5W!f9qK=x|O}5FnNs?i`X5wzz z{je4X!yCVE2frKQ3?#Ec!XTu;@s1@&17TRQ2?#J|bWK^aAer@eS6P@(ZF<4D3TXNj zk8N%~hnO2xb#)m9IC~~ACaN>xs!7PWWJ3$zQ-RBcwJdrFj~6-qFMIw~VV+{0@55TI z2LmLR90Xg{#{HuqObE`5m3-$n~CLtr)tRKM$PYkNQ#HbTJ;a>~2d3 zIesCUVGBTsz7i!5_8jp(iDX1Eym8_2UP7>{GBEO`k_LNnyDM%w3w6o=%#>`kL(+D| z7|#+Y)^2$p`F)=~BluXW5W%1h@0RSP&!5*>wCg^j%i1711_yczp|BGIjoRsd$7WOr zyF!(7&ej-lBYWdHsqTKQuZi~Sej6IUugoYL8(Z7Ih>Tp$nn&D-OW;SgyH%*&n)&}? zp?rJJj)Z%Nt%6OTj9>|i%7qVz8t_Nmm#%wc2-pcA5tR--484Il?QdL^MZj4d-z}Z8e~fWQPhyEI z@{ul-A==GfkLo+Z0c94INWNmfCnSBMf=1becP}kDk9>{QjWoiFgP*Y?Ow(9I_Wo@rp`p%PmSy%89yfo(V zC|>6O{E%A3#QEn`qq%^qBeDTHn^XL26eZ=Qv?-0?wQ}w%vjIh6k0#vZaqQ>B=&1ZJ z5b^lyb=Qm5EL&WqS!)uiZD@_`p>PR(A9O|M7F$#Wm0l3qKBD{#E%RM%d|U0)Xc4FP zOw<~`!=XD*!^1|U!7(-6cdMjYMNbw*F_?mw2!E|G{Qy6Yx1?T&0Gp;*{GTzMR&51> z`BH9}D!5#!W1$1>c_7_!eTn(2@Uca##s*!Pikak!kMdmZbr;xj2TXY0a7%*HY{ul! zRlGl5mGx;lo$pHuL;robyc}UI#~Jc|6uosky&R-$(Ze-c-FlKy;XNw+lsAkH{FaJBKMLN=y*kxHS!Do@qX;XV5k>0c%-io|LobxCB^}@ws}Ij>vcpx?#U5T2cfm5O8!y zs`r=xD4wh}IEYGpoKkAjai!DU{Hl4cx|^N+Z|?55HK|LLr8fVQnu9zR)Fs;&|KPT@ zo6~zlp1Y~yjB4K|Ig2Av0b1SX-a0v#d@)vq&sw!V^<-ONMjPvi9Wa>_&y6Vd*%MfA zvFnOqc@LFkD_LP0i7uD>gBChK<6dn*Cf5$mq)HH6DB-4A(tY9W|Iv_oYS`0L$$&GZ zVz!2wMQdL_=j&XzxlA;)bdOYm?s$va{2c$tetZyjIs3(|sDgz+b{ODIP! zrM@ENYRhk1yUTCaS66iIEmK%Zf<5mon>vHGbV$4X3a#`0S*WJFsJb9xs8+8YjCnQ( zb3&ets-X0ND~A&5e*pu7vs}GHq*BoP-;T3pG*ggW-G5_1s4nO78sRU6&c;1pkaYB| zPWWng*{1_@iT*Nk1McxS(2WXxanS(^BT-Sv@Nk{qyE)j{jD?6Ii^+^nkm&09Sa@cW zc>&;2J0tOlw_2R6>Hyw&0vHq_9}$`%lXGNbYojN)$hWxCx-e6>wDNB$Wr3R(jDZT$ z8Ox1Bz&ubmHPc;g(|#E+dXlmQwj3MwhBC_i)P01*p1OqjCPz~+|IpSZ(Rr$z+f_}Q z9;WjUDm4?|$if)7FerS(#;6oe(xv2ksCGPOJrE@w^`?@Y@jyPyfr3lcAstOF-HHK` zS|*7-tEGv&r*MCR^-?~ZSl0c6fFNAn@ni%>BSdwj{(|mZ7E7(}vl|aV26Ur?34pO} zMazngEgN-1H)<43-0RP`7yCAV2$}>A4Z-JLWTZ3S{^0$Sc4}aL6g3d<8AFSkdV*?V zPd$|}KWg4YSa&{{oQz{zRImS1x&FZHM*ab)+loe~*X&d&fPMAQt|&OM2q$X!I9EoQ zaJ-GfieSZh|An$iQH@y}CIc>yPj5>XE)@~e#4#oM2 zQ4BQd_cSspOcWFvgWcSC>=k1|+?(oG-Zieva)ZF~of)VZ_x~>2*Y^%TdbPrxD%1UG zYO*A06cgA)=SkkJ8Xg&3V!fLP6{coo<7<-m6kQ$w#&xBEiZ8qn8cp=E&;mtZGi>SD zvv+632%1ukJoGD6F+Ix_lAps!0Jwx0O3fxPOEJF%~K zu{1QP<_r}mMC5`}>I4Il#8Z&Xjq&HKIjsvO4<;6nA<_PY2Z?XTY9tb1&Mn>0XQgIu_VLN#M{sN*A#Iul0(TE9_!~iX>>cz z{BGMS-7x9v7KL*oPVC1+lMvp*p z_`TnnH)K}=_8&D<+`&pdTUc|s%qxG*6~w=eR#xYGq)6OjRRc?Jc_}H!5J<jahZc&CT+3atj zGqp`)G5weO`y~zXDbyiQ!iTPLx}N(QIzq!UR9*=`nW3`;H0nRc!A<>l78qgx#>Ymt zryVjCLd6)O(l|;_DaitrqigYE=&&y3YG^`#doCN*Yk+t#{H)Htg`br`A*Hk9_wV1G zoGvuq!pM9gswuD|5chY3Jo)e}=D9sz3p)Haf zdTfR1>-3G27WJjX)aL!3PZxu`pYV16UvQ}47Y~KnvzOB|-1qgOX?EXE zmLv+aJp?wK+#ZF_(*P!?fPAmypWxtTVyqx!%_u6GI@Zu7r{?#hzE>)?{r9vY_g@de zZ^o9fU{brJy9is(i<|9p`PJ3{7YF@UaH^r#fg@Sove4^tL_G&VBNoSc$yxf$R{U8}Vo`XHF$xqQ$dbXKT)!{7qXvJ`Mi zlMST?_g~bV3A@T=>}-OwBE4)ecZd@S$kukbb(_ei2F6qNvJQ)TgT=m*vAqcnW7e@X*wyGe-_kj^#o^VYPE zJ;e9#-1+$;70wf=DvEMps+rJCxr)^U{;Mpjz6X7!o_eM$r}}{6tJ6BTG#jLt#V>_$ zsC;dPsj@H%`i^VQ;l3F^&MC5x$8sp2-SsrmrC!gXo_e{oQa|s0KV%&gv)AdO~2TaJMqiapYbCYHiSEA;rq*#8KGPsdzH{d zeSVNeM3ys<0|`aOjzuspi65w1lMV-be0~XVjo@H00vRVW({X7j8AieXb}tqG4@}{U z0ib5<&uvrLA@j%Rb+zl!eJ(<1DqRY+C{d)(|Lc27?mkL>MyNdnX;ZYNX90i5ZK^sB zE4>b$RvzH$w#Mgj=c}8of&SaYI-Eqza0AN%5{#a<@Q|dRXQ}f>Qd#kK(h~b?+fWGo zb8SRcNdu73nz{L%NwR;g#qm&Q<5}9TdHUKDW6&m#Z8pb~kP;%6nH<>bDasMFYC2vb zT2)bOD2fB9{}2a(=ZNztXP_DVEKPWJF!4n1kfvDge=i~XKjAN#{SXv(FLp@0$&+ZFTDCDA| zc^S$;s*%iO*^n-={xH{6qsyPA$y#ihCX&=typ1*n+bYK!^`Xgw&ZrH3BZDBljTZ!Q zrLPajupAr=@i8ne0gh#XGl&?W%sTp56Z*R76Gexor!2gK5jSRu9UrLEw%_$%Takdo zd+;qv+Z44Z-oE+&J^|T3-2>8*HzK?81O$yxfS+IXI|Q`!KQ72%dQrgF(PzI$gFH_a z(tN>~_|(6T>#u&cEX6YpuQv`Hg!2ErgED+FoCXK@elI6gT`|R8GZU36Yh37-ShI%P zW53gmFZUL4=$eP2;Hlv-Mne?qLWnOORg%d5A~^l4g_Zjfd?x0-(Nl#F-=_{3Afz8B zmV}jzq=kZbKWeqN=h}tgbJ@>U^P>CiZkPg<^e1^u&%8Y1k_J7BYBlJJt`_Cnn^aI* zL9>xlnPJ6%AB~iyIwoT2lD|Hjdapkk&gRo_3~e4z*$$t^;WZ25yD(V!EsN(4c!ymE zgQ+bSS64N{Guc~Y-CnB}8WI0c8i>?@U)!vzfhK=N;-7m*(GyKs>iBW*RVbkGVuNs-55Qcl+~+Low3ZgwEO* zoFolNj-rl^RWD0FS=mNQAP~4vX|Kse{;l=as246)%K!pew_wiLVG`KCXtooa6Wlj# zLFTy9dLGyte;0Gqay)eYz1tR!O@@?TfA6mCo0ZChkFVYEI2f#Aj(8X5w`2sQf^Z8R{4_aLPsYQcYg7ETjuzBvK< zw2_PLhCy1skHu1m%{Eo^Z!PWQ{2uggpNyC0e93~(H`**pr+{Hd+{ z+@T4^Mytp2^4bS|`{;MtIyx%XyJ^4cSV-93G;mdXyB`>(f9}pSIyx!{?NT~FO?}!v zf9l6l!uC8mJ?#>k%L{Ashi5M@EMAU9sPpC3Y=wVIW9d39?acCPOxmC|~`0>>t)@aLFFs`l+Z*5B;!5hcQz7uDtZS2;{+ZK*< z@or9OhSnj5@`)3xPB? z)ZXPyixd85iAJvO?s^@%bt=mf6S-a(JNZKDLIj3;-z3PKt!n&De5|aUK9H;mjF%Nv z`*k7QUBvpYctsBp|3vfIfWz$+eRC`RS$b9aHSZK~0*J#UUrwM9eU7M(aOi2KSlIlx z>p)QecLo=A|2Ky-b4RWASklN-C>qWgL3KQKb5)2!gJ?>w>5QSQv;*m0lrl0pJS#=s zw+nOg``ls{AjEf=RUpt}tvt)A3ykDIYKTBYe8FQ!wWg{D4oae_yF$@z9pf*S1XHzR zc;86}0|$W!?SgZe;Yw^qeMZ0DS)4T?)psPKfJ zHqoZ#|5J^x|5FX?Vkm>T(aWxp=BlE$$T{+M%Q0|jWw>u4W7xcY1@&*&n*KMI6@nNn z&UHKsLpf!`4ZGvx<3H?#`f4r}Z^_p6tGv$leX(LbaQE|#!)qf>Qn^RUZP)AbKvuZ1 zMd1edE;W7QOqGwqU=SJ{bpD#UuF1C&;euK*UX`-A=pcbUBc9fT*VM-OPxW{xvJ)>f z*ZXxni$Znl)#+|QQF+Ub-SLVkHY$aC?^<)IJQR$~&%`vUw4Rk#e%mwnG4x582U;ax zCUS-hUH+Uua@zS`%VWSY{!63f;b$I$vZ&n|NvZL%~=1~mv9_2EiwSq2=+|%axs9ry8q$JFb zy!q`#T6H0xLx#6n=+Ue1zsH!_4s3}#OxrEil3q%OuDVIeRE-LK6)hu9c8?u|UZ;|o zvq$E}XYZ#^g^4Q@9HcT@Mop|iC0Jb~sP-=}2~2WbeEZGu10tRs20gj;#mjqce3~gK zi$eYN+P=H+>s)QFUOnYc{6zOZaH-0_Wtp0a-m749l9gW`5*4gPShno{{r5zzzw;9; z#v1FnxVX0SnpFKRBKg59&@VO%3(#MG*ZOI!Bi~MtER*KvE_CMQiCKJ(aemWr;^e=i zA?iQKiAE!k13hXG9>`d&Nrzq6=u4ls>)3;cV>xbT<(Ng4b2Vll@UZ64V&<5;2Fbq7 z?XqNs`iH@SKlwA#6aK0zb#^SWMQ{B9+FVCw73`s<*%)Xb{(~=NEeNB6!J{+C3Mvl-Am+E(!{=K(A2p8rT8bn~7%4AK=$|SsgAcmDJ4Qe;c0r;5k zCVmZ{%6b%0s(wH+=P&v#CzMJ+)-u+^HZJG{Bb_m!za9$SHVwQJc;UkT1E)icF+=7=c?t7~e zQ3rsb2JZJ`GT+}Mi=KYDt_vd2)pr@9quC!Eg?g=3-O35xMqRH~oOt>^NIFjTFcDg@ zqJPNxddYfVLh5_1b8b?4KK&LygWRA@{T%wf`>S7@A+vs@o3l}i|d&r-f*xP^UIT~Cz6UI zojA{=ej0f${6ZWY+mQP&AdJ4Lj*bqxtAB=So_2|ofCv(FHg-&4v6@OtgF6|$GVH_S zS5}Kld0iMMTFO;8Kld*i9Ly)URxwmml={cdt5t!)@{xd|B6)XpYw$mh80TE}JSjK+ z9nSbS>N1x>s<-Uy4Ln>~l;zG=r9kK?=&c-9vt*ysif4`)Wnmny6usU)=lN9g0C+X`l~AYrD^Vd z$7}(*4;fhGyL==Tuhf9DwJbJe#E*SNDV^zE^_;zy9j7n$g#0esqQQl!uD+$S9eqtV z)FI1S=Lg&L)PjXz-7tPLhdTgb2~l`Q+SFppX8^9+=Tqq*hTZi@&Yo4hsBG9ZqfGcZ zxO;kTFg;bW5S|6U@wcE!#;pF_Zeq8c-}KcnL+gHk@9fBZ0oilOHD-zy8$Str<>!Av(5?JJ6RiJa3TDhPv%_>`BG1wR z3S;xXzSa7nH4vgdu&R&cstl+bJKW!|SvHk9QOj1`F7`;#n&;`fK;e@bw^`)# ze-RvcoTd>izJYpUN}LQtU?Mb=Yk>?iL6mkmeDvlVKeiyFg?XqPEkw&gIMK_|vF_XX)d~n=@}qiy8ctkS(aK z|2J&E#u-iz;+!OwDmor>kU^C@3o|igjanrn!ZScom#w3d-Q?Qv6_<&@XXzaCh1lhj zL$iHI;!ex`(7EgTnhhg9|JzpVKwO>8hrbVXM$I)Bn&0P$H6nX6O4ScP*NtuV{+0Og z!7v71^rWTq;~40gDP=PlfenF&O!ALBBJp}m*H!RSI;Z@u{QP%!%W`Ppc!RWQ^{Ce9 z2xY_f+}@*detW}{iFEJbUwa;nR;tBsQ|RQ#`DxK^F1@~AYzyEsr;(9fZ(ia7=R(`S zBKNEl?I&gqH-=L0BisnDh2%72f%C<`A zJUzk~rEk0{YV`bPr8i3jZ8&)tHySuyF&C~3*mVj54d)sm5D@9r+2ff0p z_^^t!CsK#UMLt)u)S|iwbT^`AE5d03q4QGfbLy;FGq=xN?kJ|eoE54Ma_a5q4&4yD z%&Z^J2K$dCZLIju*lu%D-~3N|h`4u;qgcP04jZ=7FwxmE4avQzggarZv+&E4|va1Sv< zg-g;}WSNlJK607eKCzET&fDFgg+JADpts>YT<5vax*YNh?>VSvtg{pAEr}aV39b`@ z=rT5Jcu4UDj7vaj^NvP`B3AeQSxm34iV+mX6ewt&cI>mhY_XymPWnT5{3T>Up!r~g z&VOlTM(MkA=G6FpN}>wqx%yFy7Q4Y@RPyk`PjDqql!#$Z-`CGF)}O#xEJAN8x!RTq zEtO-^BGB)$x9?#R@`|kz?M7xlUc!-oW2Vbg64tOwp z5r0I*Q^m|OI*g4iNOd`|=V}58%3Gdhb`)8s$KZ-VaISl}o5cLF0U15@<7)Rxi~OJJ<-S_ip@F~=IMU%#jWph;C8|C+zb+E>4%VS{ ziqvpMdsMaitC=)tokmeGE~)p5^Ky{J_QOz$pWEG_=V`>93lj{$J2NZ)k`^tIU>_2g zc4p7~Zhd6yw`0NhnEY1`f!r3D2htY2gbbyqwK$dIJ1dpzKN6?km5-(Tjp)!o_pH@_ z#=11ESR%q~HqP?elS%c=^PlvVKJXvk3;xc!vPocL+P5!p{-zzLW&p)uXY6%^Z|tSD z5pRIki^Ds6bn9;dQn6x|>a$Yt7!NnM+3WO>ZP%Wtf;Q&C+-au%fBSs4%*rk2^Zw8C zbJ~zVq&Jw`I+BGe5j&?>4*Ulf9UF_c+u=fX2V~|C9KOO-HZWdkgk0I3*31=35sruH zK_|Kl&9c1B{)QnE?9sC%@WN?~C}UISbPqbepd$rCSR{C_|JJP#yBrM;_VIY3+q@ zL%Fx2%zhA&Lb7xFwto!z|KoHMlnfqcsyOwlm!})I8)PAeA@O8#mZ=eL7J0!zx})`2 z?pcwMvEQkm2lc=sadx@ekHwl9IVf*>v~yGk0!1DP|0~?qqn_mfUviz@J?WN|e+eG;H;_1}AYk3K203xt<5wola_&kjePEFGWxJ)Nn zkmT)#_QQLaOuu?=T{Ls8Wd1i_(dw?#SB-7dw|bp!nN6R@r^V?$uV=-2j539s4J!2F zZ3JH}BGeEq#42Gx4-n`I!;PP$`C=Z(O4UhRK~Uw`ZsuekkkRn$M(T75Sk1)$_-t-UXpB zzM+iewEvDg0ov>|G?EO46u5v-UujRp^2 z!?;hk;242RH*5_{q@^^K0F-Kz;X_Vy6b1rYYReum5aIYshFl4A{&x?*)~hJERClDZ z&ZdS0#p8%VyryqzoBhPF`|p4w0XZHY+ER(1bgLaaja7eSD7;`9(qQR=U;S^^1f}ch z`CrFVpSn#=Yif0nxzm1PhOr^$p;LBe*ABuKieh);^8Un8#-vUV3BwNVUyf>GG75T+ ziHQ0Bn>O-iQSu$44jSejz1MElv-}=4-N)sX++AI7Ax;Mm ziqI@+wzBn1XwP%}F%w{Lw^}uZ%Vs!Oz3_0Qd{pX%0lLs@HX_z_M3;;oTt5+7uVjnz z=^345m)cs~dY)60S_-mw#ybiy?W_$M&piEs!|KYW%6fz6DtX!NPVgY0V~VF^U{Gn< zl)X`7$M>CJD5PC<_-Dm8J zaoTK;-s_k?Z3Y1c|HtKPw$p92)8u zk6fhyVKbZOAGNEye-7xjNk-E|UbD%h^S!??W2cMRD`Da3!mq4TZL5_WBpWbAXIMZ@ zpKT`d;+KT{ZV3-=akBo(@W9nLmF9A>m2^Xb<1E#*SKDhoR|PDFDpu&5XJMsjM9}@oz8=X%`-2(K1oozxAhJU8>*@G zQNoEM^8HliqzyX$toxVd-9y8?VYyS;PCl#u{YdFP$+6&Hx$43q+Tz@_Pzl)KprfOF z2wt(r50=nz{})IVPvnkY)4E^VocwUY8X^bbPK&oFtE?l!+mP|H&>oO4a1%;xG0rR7RVhkQq2}ff%ls(JpQD=Kik~4Oo zOxYr4@V$+aDBB=wgby;U)6jm6_Q&^r%&|?$V6N*6!i5_AaN^FLxpt{axzT3|HEUGw zl*LjN+Z)xI;9qfejG)vdy~AD4bL53z=nfq^@)^pelJ+)Jw&VqR?#|F(uRggDRSZv) zRHAHcQGOCuzw7C&hwE6qGvF*ctNX>Dz#j7Q9_p}-ih6$Z4T zB)+d?R%j#@;o)cZX|3<5Zjvc#%94oE4KNP_-yjn4xCufor=%jldeY0Ejma#SP8ozs z1$n)$=pv!|yaOXXnTcNa=vi6_OiWCyN^U{)Q4+ew-fa(j#$jvf`PC`QOGjE{V(Qh} z5k3fZP7wW3-2x^wIt_ic;w+=hJxY*7q>!Ajar%Sc5{Tu_D^=het@>r>fxm&cJ-5nZ z^Tv7qFF|Zy;`%I{7` zOeNxKy9%Ul^$LKJB6ka0aJ>a1+K=c}h0 za}2w^O2@!Yc)g(&N=La2g(obov&Oad3FmrYQod>E`7y*cZL%j*NZ2C5-%w}QG~4F0 zZRACT$OsNKqDhxerz^imgg(ULeOx6z+Ed0N2T2*%2H2^YVyeL_j|&LsewW0G4m$st zNJ})I!dLLiiZJ%;68LwKkTqxAS5_6yu7?Uq%KW}iG&#bps#&DazNl10ik)1sH_>Js zlxVqx!qlDLzhcLKgT%*UfTTS8Q4JqdhZ5VyTy(XjbMXs-$bz~9ef500hj$ItzM!ly z%&N9ieovTGA}sNtR;!I)lxmY>KjkGNTu>tcJlPnMngTh_KjQB ze9(K6O3RoJuZ~P^41M%EZ{i0YT@(*wNU6IP_zw2fF|gp5^!D=VM_+{I2iJK~wH1)j z7eZogEEYNoN{G><)A{~*Jh8k4c^dy6UX{nsEhzPDh*xI9#Sm-fWi$PBlUGJtLF|z9 z>=@1Yt-*_53R141WMgZ~MKc-fWo6)a&X0>OJ|q^J&qq;6*{k+rz;SW*+VEj2)k{hv zOXh%FRrbaiFXZv)$fWTS=_4&e?>pCUhQ`p2Q4XYTQBghJ@MjE3St%xZ;iXb{d z*Fx3O?ZMc#`0#xzL@iS9V>S{#11;RMZr1hM6GlLslX0!d$f%K3NjVS8nv~I{a?Mhj z6VYQ5Fq#3hX>A{^AElrD)jU#&d73sOVPd)D50yIeB6KL=w9Il*rs!MClc<_( zLOs?to_xCJ`_FkpeB~;QxG1mHZRpt*{!bAh?d$hr?)rLwS>LyoVJjaR9z{^I==)Ha zOysmJiz@Tt+jajg)QtSPmdL%8N3{Kh!7 z6SRF{L$_^OAVCSlvu}AC3WkM5{$(1NsgYY(q#IM+72*~oFLRpvban3f>l}p<2cwi$ z8ljTLOVFn8qeoI?15&%rxl(hRD4T+vpF?82hFr9Ktj$|-atLzS9C{%DvN3RLo#gx>37>ONXe7EgD)t-Fz`>|Ai3XJB@wJx=5!Ms$ zJA||tbKM?~O3uuwrtdCH?#2J2H5sRJy$T1b`x*Gq#JR6Hg|;O~9D=&;23Rk#seoklQ`=O5kiFXHtS%-Q(#r7#oL8*%T(VDp7|ezNJezy^#s8W}{ZM)s zbKNvO5LzeUf?o~pg3lv9Y)MLQ%Kj$a#XVKuV&2Zw*y6Kf50Oj6!aJuWPemvjIn1@6s-wHhy)TH9q{<;KsI?Jdl#;LBXY}csiF{oC22TP+f`I zv1=^o^W{jSD!=uxRue|!S{dWVuAXmk@q(AZ%mz1(SfPA6KM9oL99Q97*Ja<5PJUD4 z)e6baqsqH|rc#I$2nZ42ptuM`B`#_lW+i9!%0zRq3t{K*$Uv=9`<(;^wi{PqVy8S z4_(`Vq+NEGfteUBo7E(>9h|>EwRO-O?Bdmz>M-F2j;^Yc)iMB3+|FUJqa<2F{FrY` zGNT7Y$4K{uIQY07Z{#EKGs0Gw{MH@4emVY#R;Jv?U7OK1a{2jH?mR9`#u$;MDI2ib zh++-iT8ZNNgtkC5s+4bMXNQG_brf1kaD<$waGfm_D8g{F6)$V$WR2=ZcVb7oo2;h? zAr!Q8aEQGt*}qnI1Mlr+0D;O#0W2#Y=}tDkG)^^IChiYB#|!7RaC9wrF~nHI0X&@I zOnWwwo-b3bjR$_CmFGmB$#uT0|3+wqyK-_*&VH|=JaxU_(;2RUMG8g-psH+wgJ;s6d0d>*=kqRJ9=!@X(7 z5r{{-r}kPgdv)C*a^iUAnXsLY*48BNlfiituBFo==Z7N;6#WL@;+|GBmw^|9+sM4> zsb)(Xn@?B^(6$8t07$L>E0^8hWRE;L9@9NVGKkRRIE3F{oh$8EX=UgWG8=bP7eEsM zw*5sGS)LZDC#RqgeP*m*D}zY!i1VhatJHR4pAKzdKPe{%B2-jV=xZh^-Q?@m-ZZLw ziXn;;i^su}1eB+3yKVLct7@dKC%Puu)z-gaJ2K!C2do#TGeK#< zy7JC%tInH!V+EMMu56=Lys(yMD48mp%PxIM<8dul$pG^tQ+TTvv)72|f?!3G#L~@uK;UBE2Z2IhBgf`PHn58A#c`PV4{CT#5rjjw~JEQ%y1R*GTn7 zDHmc2j>4{EkW8dq0j1LG=dr4sM&9R6FawMFf8U=t{tQ7lrCO!u5r=Bx$2UzhD5|a= z=ZcJLhwej?%|-=q=_6#XJPlamfE2W9wOuKl#YaWu)YS49>yE?rie4Z~w$;~_hd-&W z0?D34$+mI(FG?`QZ=QL>D~}X><_+9S86z8E1{zyib!B8LznF*Bfo+&kH#B*S^qa$a z9j#W1xCM#BJ{VWx26&N{@lDQ7+VI;gEw^xxNJpU}V8)Z%mkvZWW6|vF`|(Yz2O5QH z#t>x})>2GblJpJyG@rE{(5qMO&Vu<{T;FNw>j%-HIBwjzkzK8H{p~t3F{G(51X*$X;;vf}@4dwIkK&lJJ={HZlVxhA3uy@l=tX zVx1a!s4!I-K6d!Svf3Z=>gv~7s1D+09;8W4bAPF0(QJIUZ(V156CCn?CM>TB+pbgS zCP5>3e0zJ_HYrFm36~vWdeLxjWv=Nsk1GY)8<@^qj{`x+J>m%)-`uFV+qWY+SWWLF zLdu5j;9m#@9TRtzqZqXrL|+KE*LOJ{!L_JWtO$(W2lrO(M)$X zh-{qtW|Jd&T&1Y@NZlg;nTt)Bfn5mMc!QZkfa}vFG0tuythH#_Y9)s};qIR6-QHQr$~+FfwylAZt-@H;1l% z+@qp>rr7C5O<42N1hdwKnVcSGAgqCWd?#0k(XAm_^b5g#O2omN+on{e1$g~>DI{-akeWGk56Zv)Wp>K9ofErP;F{WPfxe{!=H})0gjeDtKe{j|IdWt&L`=Q zE-y*L9MM2YQOg-<%Kb?CpJwem-9xH=&2g8k8A`lB9=`uL|!)f|AM^j1aK3yipxJ$8?Jn141fe-fx4t@YZ2I_RF}crvck!HT z4f{X=l#v*pr?sH~Dk&;@{m^fjrSgY>c-lq;sGlF(x*i4Ad-gKlQ<&vM`>lDA5MsCz z3;Qg%ewp_TJ0LwNd)na!Sn1rxHy(lahsd$_2KZd&IkPv^w)-0O!r8>xl2>arCVjNl zu=6ny|J4{`OcKxTmT>Y!0Cs{fvidZvTzG*mg#}RY%0n)#tT$S@572A54QYbV>(+Cv z6cOod_Yc4&FpB@|dBlIbxs0R#+OeWnrrmpmc4`gvWN*IZgI_)Ue7 z3hqHv77M-$F4{CkpBY}(x(=$%{$<2bosqgn#iqUNI zy??h4Z3fadLW(}}*pd0m5OUOEd46sGwuU*uYyy`6GYcdUfr6|-DIU}>*8Di^lkqFJ zN>-nGV{=YJR{$lk6-uEu&pHy?#p*GQ%q0_Q24K)&1|}u{_Ba^uAXkk@1$@%K|Gqso zRZ5$Hm9B0Yl1GhO&6~>m50;g_oHL8uDLQ*v4aovI4EwO9>|YJdXvLNv`G|}uE5fMh zM!NE|s9zuN@Bdsd9~Gxb9C$Cf_Rx(;&aBb_r1eRY#Cf91p&;I+03h?vl_*9jZ0bMk z7sdI=w1Ao`sXKBoH|E}afc?<&)1}k zB~q=3%2?0}FIuHXr(AGQjPj0+jjeKSY;~6ZE?_IHIosM|c~PB@e@YikL@?kBBxs9D z_|l_o!cDOR!qZw6YJQ(G=}iJ!oe?8=+tv>w;HGiz0Tk)aaq%Bsw|&z_X7l@5Y>EXf z`#r5O?&#-7f?0XbRPzOKNlD?t(k4fRKS2h+TGc36)n;xt)76r*A{8e4^$Tym$&h)k zM}Z5~=KB{3qhjQ{5p(nNkp+->-4V2TiuMDlI0B%;$q!p_J^AbyOBx+g7yv;fqv1Dw zdBAJz?HrZvdhtTIyFgA(irx>cuZO3#bbAC%#K+cETUhPuZ2RTQk%8J7`G+Ok+5T-E ziK$w?!0_|qg;s=0eG=W0Rq_s^Z+?X0fmCKIFr8h6h|bo|HPv%#a+684bcD zxx;_672a<3*i)`9ANNw(#W{$w6}?o>W|!^&8r%7x*KcuJXTT41Z-B;w?qB0UXD9RG zuxjDQHL8=BR7JKknqi2xgt%wDicYVFeODttx*>S+ zOW`7kQnAJ*E^;UURQu_p!vAI(c_H?Apk}91V)>c;<_DrQ(_S}_e$m~yu?toksvLH5 z+fUn+=zh7g!)-dZx-IS`tR9|E{uC4y74@mF0D!L`DU==8p{X<8Zg^6~yS|&yuPFu9 z1f6y-BV(vIIcwuQ@<~s|F-AB{$s4A4$~GD3|Ne5XAVjZOCR@y78qgX z=ysmYbD#5K>iQZgacY{&fVI}*{>VW6MtdX1>Qb6Rx*vr_f!DxR@Ei-2xJ}COjd>bA zokI3#rf@9COAEWsk_8UQo~D4#z9IDR;_c4GX-#ayTF#zt+f)Yfz-}m2El4&MfBzwp z{y2w}rCFXOL|F*yYfxvL+T3o-ZsdgA7M8$pBMr%#4kFMZjyl$20%NFAoe)#m9axap|6V^fnjj0;w{t1BU`0~0y&1lChw?%!_Y|otb*feZ(lZhZus-X;R2UI>G?8@;JCF3 z4e_0JT&lK=fi&kcG6TXyZ9(&UW^sx0i2V4iEm=NS!?zFLoiyX(d@OKfb<^EFCQ+ba9-$4 zTLm||Zj^PdQZ;BGkT#cC#}+M!?FGqL|AMOATLsfsfiHkZ8*(i6p9Anz?5p@vo|UiI zdRxlZX|o2GvbARXIJKZ4kK$M$&*nSnxuP@4!_I{oUg?1S?E}4@@2P#-O`~dJ->+OHY*wWXdNK}?wVKXr0}<4#WuW7=nzfXZH(*pAex+(<+@*L>D)CpKS0KbZF6ZxH%GT-HJL1;dahE#1Z)%0=+`+p zc{xL6X(fIKBVu2B$Q7+p5$=3@3Ni)FEe)cwFvqK{=pD;e)FkjGKc+>=MJuc|e=3NA zt?bBq+J~zDdB!5gNe6tBX=ERUD zBkmVc;G4~Ko6n$6MRz^}x@q1aMtpRn;_4x%Das8l!ocWJ-O%g(b9rac8# zuhosan?{*wf|rIj-t=R9U{L@%zPnGz;I}5W8v*NjP48~Vsz;T>7O`DZv`Yj9B{C#T zocqxH%FHH`8JN>156-v&$TPG4_o7Rq!im=^8NeJ5DeTadg}1h$O~BC_1;KqiIVtO~ z`gkA@Y3UGuxlRcymPDX%4L-Rn?~_40W^3HuOCUB1fEL)4r_EcnmQZrFw`PLw1^N;m zT?;1V&2^YEvzn`5cyE>!1L6vAb*SdV2xQ%IkguB-L1CDz0W=};{x6=ZxZ6aXg!R(W zQjn=C9Prxc zP7OzestOyb#3oCoqv+J;q-JBoDw8y}i_A#0FANPo+e?F?f6qiw=a`^6;hvwB}H^k;D#HYn{CQV7cI|{vo1%||TBGrUh3$VIE#&AaR z5&KF0j5^EF;nkzFo@411UNQo(L9u}}IK;V%hdc|uZD)FLi7za|&DhB3gxHzj89UDn zd!A8z9cFaZNUptOmaco8{QEHZT7A9Alrd)4!qSU<18FyYZgea1HX|pvYkOKDc z`0qi~3anrDCG@EBH?SAKeHi3nir2=#HfWt;nfy(khAnw*4;RF87o)VN=4l$Eyne)! zJQ#Uwl+E_-OERl*HcKRo2dVDRY%?b27lDb?B`aO0uoBM4)a4=fumCJ?KQJU0*KKI>pOU$#Wr!EY3&`tlGoAI62}O1r@aVUV^I~qK!GfG z!xqtU`qsTj6=9UrBb%estwY!~1f}N=L2avR3nZFj5T+iR_L6di_vEXQe(q$k?#|M@ zdwW-Q^h8T>{`!JG0u;kagY=Q#oE^NXkKaV?xAu)VBJZ_=rfASWU`V&>sx?%`#eOvB_Npl@2qJISCGYbxb>CnqjjyAD&unF0ZUa3fO2PR7I1px|;ZU?HxzS(1|u#TwE zqVI&;6SwGg=}*!DW_W7XnF8(l`qk9$xP@A+TLMp1PtvnK4L|Xa-*@L*2AAq6AJ%Z@ z7`IS5JUt`WhcMU5E#c11Fk<>-;K{M3W6oCiEQBAn9o2wer#zlw%Au*x8i8EWgRNsR z&?3E=-va4m8@T|ZxJ!QVXIv33G)g_UZ@So`r$qaso`_~Mv5T=}G z`$*$D4;>ISBX+A`)!#Rc5asvBJ-VHc9M8(YdaXG_^-nQ-3hR{{*LnDRmW2rzzpZBz z^G;5=#pwB?h@rxmvM%aVtA+hr6f2zCu9W2`*x2UOMZrp=_|?U%YPl!J))ET*kxd2Z zaz%6WtFoDJglq4M_E46+)*nCDtLC)N$zH-c;n_^+HF>=Cy+K<|Cb1HlAN#U0ofr6HBYDjoFpstV@*2$nV+3)#IJxv5JjEi3N*%kI(r+@H-W^tG*jcy%La-ltFd6p%mo>{x^iBk$}q2!ujM?VEDc;* z^TU0urQ#q*`v|Fk!8k#ohO>z(j+jzQep?&PdgXGZ!hNF>Q>|3fLEujp-bsYZGL_W++ zAI0!|xN*_t@I;g%ldAV*kSz!`i#Rw?XsxF}dyAk-;RrI$C_@}=4pFY}-^WA_T@`%2 z39t$-7KL(v2qF3$A%tS@Qre-#aB0uPnRcH#GZu<`b9}}=%Cxhho5)WkE%loskV;*YCbg#xx?lo&#|;_yYd$r*fo8kWW=;i=6qgx|y5Vomk# zyh%Myl(!NBkp0opXnH&uYL%f?S-aS*#6oGR&vUIe8dCmmYv&EJiFFLtQ9SN_e5p1m zauxeLI~cT1jB&0sj<0XHx`tg`wD zKGaBjSoDW}ysjS6;u19a+qVKyQFbq5JpB6UheN0_693OG9p-6Vpd<;C`vRPn;J2xBGM(MQ6o$ zbHZM*!Qkj*mqN1_Ld++OUVL(1XNns^nYoRJk_B{w)hfokwEZwI$vSY|)pjY4k%2Jb z<$1iu;<*=2nYmr`P|+NFeR65$mAl5}+uPqj=ahgVh-d$Y!=LkHOxhlesc%?>tfuC zQC6RW75V*MO>&9yh6wE{e3*RIzlyxoeVr<+r?n-gm9%ZP^QuJD5%+SSjUDI2Ye(9j zDmtrkMt(0oOD@c3ko7m+SBls)WSg!dW#At(TyCBJ^rFG~Om9M+=;QM0hcM(kd$>%k zg+~cxO1iO9R0B|8zt`e`evM(X_=KnDw2T zeR4HzCD+-M-Hw$ZB0l^n%o+))7N5)(SYt$E#2By3$srsx!8|8T)G+MX!ea*ECyhb{R|us9w`~*rW`blr@#yI41>9j^%q8X)(V^P;B-CK`S)ez9@c0|!B^ zoR1n`r2aiJ1m30!-@u*+p!r67x{3R%hXa<5Z?o1&(s2)2 zT(jW$evU2;JGFL-H7s&w%G5=_0th9Fa(2P)=;+eHJnX{5HO#(C(eitM5gLpgH5`o6 zj4@u6fZ+z_5hN!j{RZ*6sOZ1PCRKli0*ZaTyoG){s%{gyq^5+S+M|3} z_;}LWYYAhML+k2b+qi`nd3YV;%03L1bg$10)yK}mS1s%tqL1pOFF^+^-!nh`7`Ns`#gcA!#}G=%<=$`cY{{ydUIyFu_gRg z2oU@Wn*ng1=QEtQ1hbgKZ&E_8EHO4X33Z=I`E$5X8`0eD!kVQrh`njej6@0&R+b*f z$s}p|1E-OLTIcI#p{|L>-}oaPUS~zUP-EWVuzeGqEKoto`s31Xvyoz5%Tl`jU+|L% zP0Oi)y2Pk!g3(e3%_%=+$$uT%pI?;!Rf!5?6$>g{i;o^tiPKl<;KdZsz^@u;7RCEa zw7xVw^};aSIp#qdZhxX#w$3n6MIdsCa(w$LeXHZQrs0u7ogZcnX&0;J9&5=FK*#7u zpIz0qm{J2}dw|6BXA4F*m90(~e_oCBig?z;8EN)YtR>5pnBr5{3YZ#JN1El1Lh>|K z-;p_EoYkM#oLl;~38|N#mik?cHJ)^gUFsfkyE7gsncO8#q7amwT`ic@Dkb`tvd(59 zQMTi{?u)yvIJ8ul?W*1byl{aucS$tlElz7S?5Z#LC_=~*IoGH9z6J?QB|tuJ4DNvz z$*sMV+h!uO0?J72=Q7eh0PBbmwkQfz*Wc^#_8kw$H5J(WsfjVSkpu*ND9sv=*_Ul3 zVPr(YCdaoK139kWBVeKT&|xl2jy2{OBI8iv#x*bg&uw5FO?=xbFrlHgqck|Zks!|{ zSyzg-g^YnJ$~?-%UO*o)*j0YG`G+vQr`d`&xm1;!^=fMa<~4HxVEB;_kA`1CI`i?^xeQmz*h7eL?`LoQmON#V=rcYy;$?$xy@lp)D<>+~!IGHwNokZ1!= z!@qw5{{C^akQ{m`sC7K98o81Z>)k*xjZjrpC@>l6K$tKky|yRwrf2gTF$*?uz*7GX zn7A8DMa3()Q;^V3d6bUq4&5dv_TC__?lf+*R z)gST^ly z*9Fp2Ak|n{rC#`RNc@FSU6fr)ww?M@`^IBUv@THg zyOte7y;coZIDA7a!JVB)EZ>ZY1PPacb96mzO90H z0ATpsDGxPoUe8Wjf&#_G&E#5+tFT7LI#HP%q~XIrXs=V9%ZVZd`mEW$XOGs5nPfYb z$3;auHvaOea~8@Y{?5Lb9^J3f?Ugc@qekGshevjJRL3Kl0jW5L4G2CUgY=z)qfjEp zWAL2p^`ei_CniZ^$~H}tu+2Sv>2caEX0N<~$Y*KIE{q0i96OnaKPBcdGr%J* z{c-szPbT0hZP~GUQYL!E;NOv2a`^&Fa>NBmO#Lv3h1k6rY5Q^c4MwbF_c7xg(7t?-O7BbNx<(;aDRnrD_Mlb95A{Jtk} z4~mA9^2^KH+Su0kTUyv36u0Zbged50=P~CxbFK-Gk4*$J({&-8<@@H=y|IJX^EynL z55^iyzeECR>I!O(l*>d35Kh0fDwL!)A$2xx)mpb^aGajZ@2qu597R$uWtRrPkEVbI zlK&bGUWf7H1ZYhJbd>?*{+_&i>rVnEzp);zy}k841_lS+*Oe~B1#;@P(m!SaY$A!@ z3>l#*5nJgp6g%Zq<@D0#Mq<{8tCu$uC=z# zHEG8QwkPCoyjc!3<3~macHC<4Or!uBz5Rb-MvMrBD$6}hp4v9KzE-59RzY|212jd@B0(`)05y# z#K(F3hD)mGKqk&oNnyVI>5k<&KURxf{r=_tLz91KoIX8=TQDmOo@Fe@*+Q^@$+;{d(kGrF> z@q-cQqQvAi?s!@nOj%0XFc=-$ajPBtpeTXdQY&s-YLH1xdAg0;Gr88b6e1{O;0ATs zRHGm*78%|3TZk&XEIHjFzh4~mV~Xuo;al6Ovya56R|-xccK5rR$@2(hT=Q&?ZNECe zsUGSs_{PYdrclkCpZcoKq_r8D14u{ZeLC+-x7_`N253p7fb%uY@A6oL0BAAK)SMnL z4#ALQB!4cx9R`|sPft(hub_;L1#J7d$apc_!a`hui6lcK^Vc+s%gLV!BalW~5ra5w zvkT;;1m%XW`}XrII9fu5y`twzW2`^bi@t;irx^qlqlp+WPEi{3(VQQ#h4fDL7QnkU zXloQ{3+5PnK9Bkhk2>4+;)Fo+0_gK>NFtFv_pcUvI1tF#hNZnMEc96VV@M;HI7mhB z?FNjtaLQcq20!3pp zUYo~bp(}X{ebrDOv?#-V#s7*QEuE1)>>#H)fnC}D%!5jOQulqTcF)vFVM0NO%*xC9K3Ls~q{)H=6?6+?D@d^ma=%`3_S z5V-8dGJE7dIREU>&(J+?JoP$Fs8S3%?fheG!lwQcFH4Jq4(Q5XJtu?-xP4xdzE19$9ai9Yh2knxcOUv-WkdoTWeLCQ8nb z;^8%<{+dNz%{*3u$CfLy7MmC8+sdNKC$n*8Sy6=&fj<1ODnsqLa!e*OqgfvlM6p_I zP8T`2s|u~CLzf7!{-$f}SYTPMPLYQN6}A)^-%a_Qd&KU()XZ(@N@u8K%p`N}m4(sT zujA*l^=iFnK5LsT_vEyXT(Shq$K7E23di^}H%>pQkW!TT3YRPTx+u=&dV^K8>0Jea zp%2(JFQ6ORfCY$R9YNloALOGy#kTwmS$4= z=h>|GKfG-vIxD&7Mh{iCiD|)@3rw$_DV2p+B1BjL%njB^?!Fq@pq&tp+$@F~7l}q? zc=1yd3XF`=4I-rOSsAMFipzz8qv)ZsJJl#Tg1EtD0&mAPG|;pz=3%LYLw4G~l2lNg zc_iFD^PB2it7SKk(wU?v4+`$9oqZ z?n{vq-bL;n(E+aVkQQbGEyE(sDspZ|8=hH!|);0ycfg^0jztal4nci6Y z3A%Y%n6A_b5Hi^<6AG{TL-jR!`-w>fTN!L>t8L|_OPY-;hYHN1L}OWyCsF<~+ukkK zO&kwI4S2P#l-b&dF3m4Trxq}5k87TBjM^IOF( zGq6qFj}OlQHbu8Q9yoeE5f`H#8#TdL+GI&J4PDP3 zW#yZfG4-V?6p%LjJ(o??PSFN|X7=*L7pn|T&@jJ8Uf(Dm4UUb%>b*+IueVKYB_{erdydhC7KXNMcsNKr%1cce+A*~paC64?RUILfyxFMh43JB ze-a1b-InPC+?4N=*^bzJ1Qk+)OoK=G#Hn*#`9~XHZ&+WoU86M_%I|hfixm~Dc!neU zaEW17;&FLKz{>sb6V}p_$|cHXFM1si$OALbBf{$;DLjP&C;H8CfadRB7=uE04Lm7A zwm<}^AYOPDuDR=XKkirjoLE1||NZPVcXB(d2zLFU0VS~vj=1ZKMdw>=xRJh;WI%uj zvct4>b?w0LIb*L6Wrtjzj}h+QF=i~aRW3OhfLu_o2Yu`AQ)3*V6dXL$x2ZfGvTyTdlh(nO>j^jCMFY&5U^}vK-rnJ-=+eq>-M;$~bV*y41iK zcM!^6&BTa0pPuVia!g0YzMS?z`6l$IJRMK~tOq_T0OTYGVq?)NzQuny2N;jbuLr?x zqNf!UtrXb3KX$fOlO0m@%gbbQ_$#vt(h-9v2bFhK@r4yK54W7n0^L|gKg59LNrHT* z-rLH>ruBAVk?B=_oP#2M)Y~yVTbGv8g0Hkd5 zI;9>Swm1RmyT{q*I>UG?u9h+wgLt3Vnk85DzVEmK_OAsHls?=vYiRge`4!caLpinYFa(%nIMod$vqXHAc~?s%JX` z&T&ScVg-@R>&J->h2aSVkdLegT@1l%$Pqvk*L{wv1>MUc1+IO4eb2rAL=N}LNAxN0 zOHs#ce2hZl?h50GPOHh)Muuk^sKvT#EtWj}z25m}oymn$>fQe!60XFG=P`5*QxrQ7 z&+f9G?gzoTfki0L<9!LbVZxms;Os{p0XHO_iB(iTZiI!&(|~3c0J<3YK*E{R8-&XD zOykr%bzWznNy3A`48Ic9b4AUshq^st$(5BZec38un;lf@(%U$4J1J z9!RF;ONOGycYW6L&{*xk7qINVaHivuM;ah(p4*_OWbEf~sM>X1f@guY8b`_^p32wM zRonSkg@V85&@hD*IevdPx!c+318FVvmgpUarKaH>H%iAu!034g<=FiSzO%oKzf6a7 z?ESLI{j1+9JfKZAr|oi^{BOEy4p6`Lx$C>sa-xggR}SMzt0D7Tcjl(5j$+Bn!Wy6+QOQ19CizRix$ zP4#~?8rmv&W$3c{)cMuh_)1$t#HYV`#0~wcVZ0_|DL(g6;Q^$z;)g5(ij$Cms-#w! zBP;x`aTSI1I_5Ez$dWf-7ZZ4z0MB;IR2ACRj&ZYaD5&dfM+REp?6Pxakb{iGaFT9P- zJ@^Z3>N(BAN^)g9)C!3|>0sP@Kl;Jl<9gxyQ`1{fgMNm;504vv{d2yim`!Rn<-`Xo ztrH&}$;A2KjzbmKej&?4A8gUSu{b15V+d3RivPfW7uf!*D{Ddn2m-qQN#N2iM8L3U zi*K5ml=pwuJo8#3w4KviO-mpuRFS#V@1=9IvJ_Z|*GQ1rgsGtN*dA1ig?W1!Gu6#6 zEe*0qfIexuBGlgFWfTwC+uVe8f^sRk8u?FqmW6cf1dIzXgK-sYNt!0L*=X!&4N*MN zYn-yvz7H@%l-UK(n3rBzi^8KCEn8B#1X;7f*e`fXP?GJ}%)pPwtJ7jm)m%kPnWMEw z1(%OL6{p{qUpDOzu<{;>LPQQ-(1EPzSJr_ZLl)MYTa$1(oJW8 zVuM75Ec`|LkuNRs9(L%w`+%1l;k4We?C2@mnM;KKv+A`SbNZp=`;i7WT`>VC>UFN1 z5}C9LRc2928(W`QLU%K%y{|Y2oWgFrnxIu3AZb3vedYl+3&_IdJsw+OQrsDAC@U+s zMtZ~h-0muowCM(XU~296_A~WR?4U43;1uH7@m2z?2V&ee<H=zJK5`se8q? zoz+z9Z0kxADX`ax^z@J5im{Fm!943L_f|7J4u(~WuE}3 zMHgRaIQneT_Y^W{==8ppDs2-BkSjk^t}L>8rR|+sHxYQa(_WlkuQ)A;e+x3)u&2n} zi)@47j+<&5a|;8Cq9tx2_X1Y5+Os_w|1fQl0GBrP)|1wxwC%YSU4A|xQZ)FVZ-Ba7 zv;Jm4Z%z1Hy)YY#NCN*HZ6Z6jTwt?8USa~+N^Rx7n&U1Eu?$O$^QJxDgdX{UGOeh# zVhk?ZR@p)e1*SEGD;UA~X7x)FDXB!$n3kOwI=Sevz|kAOBP_rqAkw)_)Atv!tAt}V z*{31D;ME|ZB&++rr-za#(JLuXd@()R2iT@hTX&hJEGln!_L0tE%7 zMlC4!iv2tpoJ~kUX+g~Dcx`r9W%8(~<4WjY(RMl^^lQgjYUpFO{L)NL_4KB!V-!k* zo&6hqn@@ACcE@h&g04FeZeG(otpu&Hq(ZP}TfK$Lcz}#n^G_UD%OUK`k3&R0xSA%Z@7zB|CRGFHpt&sH0%})vaa~ zNyZ5&>A#(b#oLDg@`i~&ZY5e#RJ-_09Ijx!f&@I*Nb^XVk<3%SBqO5$?^b_QDhv z!xK-RQj2BYrXm631%OotJ zNFw4hd-6m@ySM*x+s| z6FVHQm=I%p6YQ5vNv#*;l6ORF z?P32gMD39xm8wf`sz2_NA6JzHp@$L7sDmjuAP=d$!JDQ4(RJisDJn!Q!~a_$=iskZ z!ahc3rf~jN(#jS5`(Y}I@0Qi4_DAEJ_X%Xgq_+0*+4hx3A{!1_0eD9G^O@P{8>|aL z9#tpOwD?ev$2T+W*FN{@lJ4H!3o^`5E(mI@at-HqS77JucAU-IMc5B#1f9LJ95$lX z+E2(9;Xv1Y6n|4uTq5*LmQMl%U^<$*x^$P$h1{LxNXc#{=pr@NlopRazny(&X1*_O zeqq?B1i#(YVdyFW^*j2&?21Um90c`$K>EZ?&~1E?n6}?YKEM%iK&0XV2N(??|5Mru zdH-qOIAKC;f4Vz*th*<}fku`rz1yWvP9nyH{Pd>!%N@f#w`1YJm@V+K$gD*En2&}0$ zbvv_wqV1uMI3gU6QU8$@)S535I?=aHrkBx<`iEaYZpd=s$cz~gy2|^RW8CYTI%gh} zw(gF99qSS!)>$%ZLoXT?EuTyxMBIhyU?lX+LzMHCfT z?0#wTw86`(VdWE=8`yVKYPc2QlpD5ccl653Lc{gb-wafL`|;&_NsqvYUeEruQ*Uey`8-YG;4r1HKMj!U%Rwh+F0xT6stf zT^BL0FVy5W>whoeHh=TqF9_#7H2v`qk5O0@II`=r2e`GNExgk6{IFPvK0_J{j5)nN z;nuEv!wvzlwh7#wE33p7awvD_)nZI?`7L*sGmxO&*V8cY?q!n$fEDv|6KaV5WFc3j zA_h2&Q^O@+g&8=sH8%E{%ZyxC7n>QwBz~k!)csy$L7J0f^n@vgp*)wniY`&(#6(0G zGW*KH(Vx%Nq8UBcy~~8)Qds?|LvAL&_6Q_~DjMUX03=zxA@0u^1Z)v7ffXWSX#l;W zTZvHqWg6wdCWun*$l}bqS4b#{RH6J_&(!cX%sH!Pxeeph{X`VIksxD|ygsL(5E2A? z{C)g$l$~K2%(w1UWNny;thqxKa^u{Y%gz}c8{1ZxXscZN>8i?|U1D|)@KAae19FG|NRc8`P!1u1UM&CNM}rU_mF+Mpv}0Kbbz{`Y>5 zZmX+;WQw5E(_aARz<}L4DhqPDz?vdpi(PB$e(VcIFaO(7lT;IzPW*HdEJ++@@$PgA zX#bJP-@CtBeGaKpK#q>3>85@cs zb4e;WSW_eycUUj1l4EOYOMs6lDG&co{8e((o}O=ubn|RpSVI{MYcUX&MOsR`aeZz( zd=D26U?COSBe>1a_fatz`M6_G;(J>sV+UfRFg{WyK| zooFe8yqXu~%G$XFY?}CW44bVTU%zpkL_|^`_J993<>w?_D0PqTsNwq7`*bR3=Rs-K zwdc+r4h(dcuH%8#^OUhO^8K$&wW926Be$TO=iQuL?sR9=pBCEJOTJgZa)qNqFeD5} zvxU7iOIMA7)hTuv0#CQ|EnRa=z&asFy)$EMyvmjiIEWxn_-GdlgWV0^?4Wg5YuJTUK%0RMK^n}r7 zFdyVZ3@Av3_Yw1dO3~%x{VI6!Haa?R1tm8gIk^8yNQm=c&g3zr%6s_d=Q%n}Wky?}K}1Qk)gh*o z>VEKsJIf2FPnTId@l!6ZR~oD)T~{e~D$R4RY8NiF__F|_pm$v230l8QSKTPz)Nm|+ zmfbeJKf5jrAc{Hu^O?H3nPjRddjgh!6<48XynE;P_G=0SZl1U%_eMr=)@XM(=pF>A z=>yEYk{j*yA`I0gKZ*Vz0IlGj%Y{Rv{#QG}fCJ8HO@0hVqU@ zxYL6_FcErubG|LORpIyq9C5g<$6j^Qcfh}{p6OrtN&6H0C*ehu`ssBeV(%~WeTLN{#!dg zrD2T6e9Ru0DwCLF;ij3O1+V^*{4;f^9a3>GsrWnEzkPy63$HufjL?85>H7Q{T$>V1 zoSbTpdMV(|p7+@JSq?sbGiy`+KVlaNan}9iH47xy~Ha8 zd9JzFbY>lIIQOCgj((@*TR?+lp=7l#SO{4LTo^6^CEtnu2sZWb=j)s8IJ-gfnB-HS zDV_ctxlIN%S$O~Aql7L#RrIsM`hW{2G1fpR!fX(M^UXkk-y71*erG;PiE~Q zar|WXeLN+T9aN}` zjvmI^t?XzICmT=I{8{aX0*Y1fteSjuJ0Awn+b~eg`++--+k#6Lh60CmvnPcvvO`Se zmxv9Ns%)dQdj*i)dYh|?U^io7DeqQ~$Y~yr=}`#;anw{mTu9dPi$nJmXtY@W9llQY z#=}Dg@!s&$FJRN-`A-bj9|>^i11Jl|zSXsJxQ7bAzW@C+Hvt&$FuG2i7nGIB$s)La zOn5?kCLD_z$LRZ^eFrX^Ww0W66`k)AguF+1-+sKGzt`*>A8@D+n;^1%O@NbyFA8Z= zazFyOD1`sMG+k$YMTJ7;s1eij^U*ev)9(DV+>15kXhuavO@wR9pnO`IpC2%n8G0$r zMDNsfYq>E*A>{0_EKRp%0gx~~2C4(n7})bNNl3{Kv)cJ}zVTR1b@c}4I$89J#gU7h zUW=!io(&~Xch$xI`>~P#{n&^F>wh1=|6OR>#I~`wvH5~)T8yQM^QZk#A%N+t+=Ru! zl74e=9Ch5|vmxOrJ!Km~+d~R0kc1m)i4QYKmoxO85NGuhASfQ;$LK`9*1^{oBu^+qziTSrKk3(8k>IA?Rz>1pCj*`8GaGXMJf z#5YRUQ7_Q!%9{p2^(L#^hRQ1Pw8gX@g!MXO)jqi@R%59OL$NXFr)C!CE z4NKDyz3D3qly7ZrD1!fUw$;v5wCn$8ZO`s8sQc_}v-cEZCs)nUbc#RE3z{{U zz&W0SBz{g#Y=|!%b-e>Jc>^i=MF8w&G^W^VYYlrd6dICrnYpN;> z{^9s=vnFHOkw}?Zp2wqLe>MDloXB;$pM~SAVQPgTW2=uJOWcqz&j-mpb;}Nl@9WG5 zEn4HDpPOMJ_V~nKU}dWFGCe$->O6o|oqeuCEs#uEDl049c*q819WK=mJprJ&IQw4& z$1HB*TXRdola{}}AK>eP8m|0`LX13?{G@k*8X_hxteMkj7k^^5qi%RKT&RPx^wizW zlu2|in)bZM&V?m9^r-ebSsV^JqOJ(w;Ateid!C~3^spypvXH(DjIQDQGmw@l@~vM( zJBl80I`o~T>Hy;%fFfaTm%D4DH}9f}9L=sx26Ts{WTC*0aK3s#>#u3~@1`TY9bYTf zZGQF`r+(}rSo!xOM#2_ZnVD(Kn^1?Nj4(5n5*(zB8rWG4KpBe57r$OEnSZ}wvN z*2{Ob3HWHl9&QH3CbHw>AGwj*YnTP!wNJd}Two3UJfC8Y@gYWla>Y;7ks{O6vuS}A zSWGN#4^S&uUE$Yj;Ht1FLVHbhIRX-P*L{C|%y>rFsQ$%+w-;DnLTW1U`bnO7heUtR z#S@GsrL?*8va+H=tFWL%@_WrJb3D>m__L5;2*D zh6NF7pchJzmoB3ObnyQl7I%IuKHJiEm7hLykkl>aLi^FSW-#ZCB$@e1Wwun$U+-L&tLxyR>PG>7oePq4k%0wW@hVnimIUdGnV> zY3VQYvM=>8>wEEkx~r;Zr|nI+^-(un)u~fqDa%qbDUAwi?~>E4yCc zcPJ~J+fW(~pfza!>J!{=K6ii)>QX23`-y`Sm|DOGJ4taEj}!`u9N%;TKGv6W(@5CI zcXkQCp758*6Lff`j4e< zrZsq3b|0}?k80X?%9xm#PJ;ywjd=?>~D&ZtAQvAmv8Jbw_C}^TWyUYh!p( zh5yIYSFlCdMP2)-paOy*-Hmj2Nq0)8ba%H(cXvsbfHVv-N=OV{Bb_sJcYpWzesx{* z1J0cLoPE|_d+oJ-3jPSGzYR~bZUpTq5+(hCjIs^R1ftaJpm57#)`0_ckr{HGq&x(33)8YojiXiMZ-V$PnD;y?{m z82kfgxOH5vGf=*)xCQ<|y_xlcO;Au!MGA7)aVV>|9kZZE_y*AD^_-iSFX*x3HpA}M zF~HJYBTS>3sIUWG&*`3)v`cf5ksJbDaM>-?`-{LO7p)NSw`Z2u4WuQ<<;l%rk)hj~-U zv$_c}oRKv@n(e34{_CTErLP*@acaLKTL<%1T)e6~LBz!|a8*RF~0so?TD(A~^O z_#iq>ssVDko?z#O0*tk>Nrz29amw^!uTrlDhZ|R$UvJ*!-2?1Q=!gB2-hGZ zpS{A2Hi7;{H;h}9y6ri+?!q-@{KV%tCq`>Zj*RZ3$QUNf5 z4dOjv!ECgtVo{25YJ=hC|91k6p|B)nR9{28xS%egV9bJ2iuRgr%C^G0orA=<`h${W zI56l1o&7;4e~17DYlBM`Sr;&X+*uTJbQn|JW}B&Kdv$z>M#KB~_p2qsLA#nZX-{Ni zWFb#_a`TqLTg{0@1MMwVWwRTS-8ZIdgg-htV~sjun0e@M*g?wx9|u+wr^Y%V7FCQZ z1k$OZe=#cTrTMx*B}X9er3`7dz{c-+lp6KR-02{1e3JHjb(afZyv8GftL92Xq7CPM)r)jK*_Uxt{; z4k(A8or>mL$2GHTC&qn$eev?bW5Sx6O^{bkn^Il$g!|N){BvljYMY8`@CM_G*H7kit>j20i)=Fug0SVMsrTgkxJnBC!=C z1Ij2t{CaQ4hKIdrJoAD6o{uVu{JiY1!a}K_#zCDg-^|xMD?0nOl+aWs)i#(i1MlRQ`SZolCN9XX(( z{>S9)`2Th5kk1EZ{8BGIzG1Pfj}{G$ns- zZVm{}HI0KmGa8)}D2h)dkd6^U53ITw1+CS{%YNoT>W4zMxG5|mf;!$xy0PYqS)0$U z^@$g#ezvfn->Pd+K%&??*5FOY#FmVO^=Ge2WiYcMWX7}#8T$6 zF%wXQ2e~&Do5gk27u1q&b=)#kswr9~RxXb7I3tN6=B~Q5lok?-2~vE1k2hPITu|I^ zt3bp;!N8`#iKvaWl935-f2X8kuGn%HIB`HIzm$`Z8y6%*1iO|x^Ph!SblUH_>!0n6 zUhddfPZRRk>;cou4AJudc!i9(4m{C+-A9^mBjmD0E}$m6wRA|0I@X#G4h#)N_4~?+dptJbt-XeO6%0hB|5Cn}z7tr1p0 zRcy-s7Wvf3)~Dp%bJ%RoywRWr0loesjGyv)ttVVzFD)Ul+3tPUQtNk)Y?0Il~YI?5X)M%ppQ*1n|t~hh=KeF&5=Mk9oaPT>c;Jz(fCI;OMpSRL;@-8#! z?%5xn5E%v<7@N&GIXb4fNJmvp_rC8MOxlDDP+`D*@x(m|`61J0+GAQeX;r2ynh6}$ z=%T!1b$F})Q5T!mcDx&!Sfoi;GRqz-iBkI%=ONYW^XO5!DIeg1;vl{Y}3NzVQs`02NlW(m^9J069%Nkko;Yl(Uc-Lg~4#%cj~?7`Z?L zl4JWp^N&75^lrYd3G!wZ7E&m~Tb6Wcito^8xMuqB@bH9L*5-xH%Tusiy_&Ip$B#8A zPoGU@M3DiN0(-oFf$sG@*DmPk@oq`pjoqd|`1u?oU(+yvrE`rENyhXYzEc~U2j)T| zRg|Uzga4ZD)Kz7p%ES>*j7>vjfO4DLRz;4rZFY1r!dz7IMmj5ZU=(lx^fOgwp)2N4 zv9-4s7DGNTN{V!*HVEd~d3bnmyn2p&0~-S`vcG?|GU|Z;?kU0{S5bZF_zqAu>-OtM ze!uns$Wc#3^5ObM!&alfK<`UsL0j#ow-h+pA>LKD_R5QTQO`jlrR3>FB1tko_ABmo zzZ3~0mz9=EvZN2I{vq3pVhd9jjvJ%^m<=X~2hQtJrQEshogHKhb=JtK%w+u#4I=|; zj~4_3ux2q|a?%P%V77;$jv*?y`Y48M6^i*i+RNu%fe?JZi5FqX#K80ZuN%sMBaf#J zy1iYlzfb>swqXny{Ft@BbJQ%p_r>s@++ai5=|G6MUQ%)NhGE1)m_uErnU<>9J^~um z-mxDic$h%o?!noA$zAIco7a8oomUp3L562F&jM$zt0ilb8hKMIT#twX&$k#>OBjP=_VJT}eBW*HP+irA`#9 zCBda4Sw)_u5ZmB)n7s5`=tvHMFh+hb&{q(kkObIn#!I}XSRi_{9f=%l=!I;E z8x&zfbb%*+IoqctN%ekpy-Dr{EtAls=F!5gq_c==N>0<9{LEh?pLiEbQg~C|v-)5@fC!?h`FBr@lW9tft;R{6400YZ1A0>{=&6x&{ zi5p1%)BVB+{u9|otAwi60hPg2FQwT;HY?B3EudV2yn!X5m z$+xumU(Bo56~7pF!}{P_T;aly!BUVp(}zMIYAkv~a9^+vg->Q67pvbKq;b;V?i=#+ z|HgC+>A>Gi=IElSez=O7;)(*nL;4>WNB+jptIpcoDtAgJdL#F@+4~1Ooge)|E7ru~ z241_mx}@>L^$QFkXCNbQ8PXKe2g+V#J5Ch*=GBZ83xOPkIR><&9$oT7L}0*sdeE%( zIwm2Cy2S+Gzuewmn(G6tI$3mPO_W*bJae=-Ct|oV+U6$Cy|=MgK)FH0_?`-UnhZ$8 z5aq91D0q2hhUV&eUeIlk77$q!0NQrMB@Tn@snRYy0sYv=Q4i+$n#sba4qa$VLdL_) z^jX^KuG^p1$DPJKqSbf&U0hs>tjI&`CFWNf-;e)UH60e83r&#k%5kL5+G+?LD676O zHxx=~Joso_pj)P)Mpw(hp}KZ(OGflo?dm^Z67bW(F5G|=@S@F@0t>wi zNr+8I*aL#Mhr_!NfMJRK>mDu>vtM=el%-$ey}(C81EU1Up?b+3iEG5{s?ZuhHFAiw zR4vi_Xa;ba*|^3g8`5Cq*A+j$lu~!l|KXwytB4NWd%vdh6U0IoBi-X_#gmO^G)AxHYL^-UfW!vE=Qci5`HwsKAc1Q{W!6R%Uk+w;HxJ!?;jaV*5asnh zJc9O86EP-14<6~U12jHSw>4T$$21NEj<5$5-blYePyWL}myEb{0o9SAh~nM|j?JX_ zz^pR6!w!AY&?gmPm>o5F9~{x?XI!AFEL-x5YcG`dl8bl9Tj7&1;n&%IaR7OpSTi&+ z)hUVOFI}6;PxxDj)HHdlm&oCYpx;b%cYh1}C_CO5^NVrRZPjaOLchf(`VNmj4A3h- zjV=2j54z-PKV9C<8mGu>>AEHjr8&$oERfv?Iwu*{GbLg(2mOSY>JAo5J}06*Ki`~t z&GhU!IW|3S$kE}-Cn--`-V%NC z2~hjyTVrQ(u-G;gWMhgCFRl&boPJ-DMAfx;#11~6RCox`$QkcuYq$-Ad$;hO4mYJ* zcLiRcX3ti4zfe9?ulR0cHF2Nw1$D>8PG+Q$k)mQzlu#%36(K(Uv2mvd1&RfC>*_bu zzn8siXlFeCR@DMB6Lenvr6{-sl;Nu^$EjY;<^38SXpFKTD?#(pNJq zO7M=m|KNziF-&iCo0TT1-=w&qgw5>Kw(jImA2RRnIVpY*dTt%a|pL z;Gn_Xz}f?=gF%bULssmbmgC=_j$?U-x1;^WT&FL+WQGM}g6!-j?g8I{6N_}i%M#Xr zH@y7izhc~(w&8yT5!%lS8bYawnGlAF7=DlMX({UCirm4pVp&n!}=${ zWmH_U+3`FL7dfXmU9sXE_W3Uw-cWk5f;}=(ESX#j2Co5Ju6xNu|Nj&+OF55AEaFmD1P}p0TXE}OU_YQc0f9PF17b)J!~;# zxFZB%{1mMfr!r(8-dT&B)x<@AVRs`8mpao$y@v;#;01kU)KrMVo<5Ty^$BUg=*f8w z`bOLl#SGh+ZXk4)R%Z#9nqWBs=(q!sgU!%QG7KSE> z)9=nPJXjbsO9l)Ydiow1;L5Dm7-5OF1r>AfSNO$t#A3el+{MpK|6(M27ToG`(Cna} zZ3ABx#<&W}t!gLnkm}q_QqU8EKTb0(6;;$s>ZxDt?F$T`59&RB#?=}o2s2qGMC@9o z=fY;bPQ7`g=yMgN;{Y7DuI~yKkW+y`v@wc}&1a}MSNJ~y6$NCcwVeUer_s2aQ4v000AhwBfg!wQ%Sp*o1+qhV0 zqDaP@lzH~D-9&C;aa1{uOrZ5>B%qy^PCCUA{oU&w?a`YKKC8D6rE)=ke!&y$uR6H8F&mMdg*rE?31c0$-#wYle%8xnq)*@Ao_V->H zcC$ZDAh6?C*ST=c&MmsEKSa@elujmLCK)Xl(QvdL?+7xrP@J-z*bkDOJSRz))x2EEa~!V%u77Z5Hgo}j}j%# zj6fiHsn87&Gu+09-}4)nSH#>!gKvU{ELguE1YsH~1zHt)a<7wq@#Yil8P?Td&o|U| z;_5#~@;5i%oK#@FfWUUO%1TP3MOCY4&U0kYIMIOPjMz5`_l}Nlp{RJbM|IAS(4F8{ z7^fq+Zp)3@10Fv{vUzIs+g;B}J&1UJ{NXHRgmr*v2CV=MtdY%sBVmE8nf z!x*t9AuGL60$^=+o(JbbrWyPw zKqx3tE3J|#UzR^NV9{^hZ;1;(giBJKr->HyMrU0E1oIXykzfxHv}gZClr%}bF zWcmZSmB6~cy*Vn?xV;U0d)nZijt8i$js^|B7Y*6GwYr_V+8bsPaR*X1Q!#3d!@7>@ z&BZE2G$`ST&W+RjoL!^RwRV7 zb;LqremU8yMokX?6dKshh$R{XzWCni$sQgQ+!{FZ$79TCvDNkAc8j;O)zj2phnx0c z>v{A~E2kFX+GoK*zRMjxx0NNi@QjbrXTzBUmW~^I%c(<8b~U5XwoR4i?m@k6Q5<04 zJ-aUhCNZ-Z%1?17wz56z86F|i^?`k!xL+)6a`gzf^t!An@W}993&qn&(TbkypvjOj z?D-8;EeB%xfD@V=3WQsea#%CkSd~`wqzICO37~~^qJjI{@`-b`05SHl1P|&sPmb-j z4Y!-UcQwC`V0g8QH>ArYntkm6_l4N4VbmJ9Pe?H@1rE7}G7>on|GU-iUsB!bOS*kI zqzPcCnA#eo%kSNjH<{=Y{m)?6mpto9um3>>jkAmeZ{$@pd<(ZaV~mM>!gVY-s4`DE z)UkfVUF2b8<^JtT1;_t6qnsW`CFit?<@UHFj^AlpLx*#W`I;BX9d+)y;jwl+KLQ*# z{%jRwgRj>sd9Mx{t1EFwZi@MM9qx86&>rCQirNe~4h^Sxed2zTNyo_MqeYCF8wRd} zG`Ft|qv^Nx3wLmyBP^F&hJ(ETf%}mi!Se6WkHE%1{seA%`;q5#llB6V`!?}lV;Zh; z8I_X6UnGyjJsW(7HgjQvmgZY>q&M&5lLVm6203y|2q3jGNEfvfBm0ng^G z(F5vs3=UwkN`g(VL29Mdk-I9=!|XXT@-@UZcN<`s|d?RJsB5O9@;PqWGJ^Yk=ManGiP zQW@vAegj9b{@+owX1n`@e*f0qfw!j`-{}Kf$nIN2vRTjV3|lt1l{D~76YwYUerQU6 zxA0upaBq_-Ypl7n2n&T3eDAuXrICvE6mLFJDD`;r5Ot#u*k68V%u@Y23P@^NU5dIa zmtFcvdJFkEvp*g>L~GSN-2lq83ZLoY`n0)Ur!YvHGfNNKFcbJ-Vru(w+Ayz@q-?iv zLu#piOg{$LyMrDC#F=tzJC5-+eiZtoxEhGM@wk1!&rV=jlY`am(B%Pv5J9U$th+pC z8d#l-qNBc-qw0;SFyt-@+C|Wu&ADRQ$=QiL>l@b7X{{HNwtwS2k=nFuIi-OSy+SXyaE+APgrrH?4O4rH+LUPAOBEXPD$k-z{k0)!B?rU!hMU+}Ieqai z7U>QcFvR9NxRsJt$db+wbH#e3PeyGRQ~GZg_<6#KBjpmrLVPm zQk_}|>g^$_8MhVF@erI<(VDt~f3*XB$Nq4CHdfVV+k}}u0tUuhY;^t_ChY=z^qXT^ z#;FG1xm3}3Ea}#u+jJcAtT_y@p>aagTG-{^Yx8nG3XDCn1cm+IGq4Fx6u13P5Axw| zhis_&#Yo#1G&j;Up!$#lH43mf$l8Kd2ciQqG+W&k-;FR2zpMSpLZ6=IRvgzuuk>2_ zzox~L_1|4{_Xu^h4Lwq+_$&StXAzLG3kfZ%bEusFDQ<|@D^9=G{d!0W_A+JkhHgF~ zb2z*D`~Z}{cOk(9-!g6GX#PHvt=6>)v3mabDr ze(XGBBY&uF+i;N&IUQK1C$LV42ZUKw!IFd#02pj^s0f^)*dBU2Y$dWm)?Q8cS4cXW zUlh{;EuFZXou9par>`ktl=p{m=T4sou-J+;M$i{(7pqC8_N*JCgk1v4@3Su-O7#qX zt{oV!XuNla)))#6TCS(Dxvo007f?Kpz0L;6c!Re~|q`b8HL$nWI=U zi}N%6;C^&57NFv9pO&~L24jZCzQdKXdJ{OYC@Mq{Kx7B4$*sUJC0v7ZuGDyygDG}{ zXx_cH9#PXKcqj|HrCUZCwtqp{dN@6CA{hv7^UU4w*80uFY}GrQyeC;IbtqyEEED*_ z(f+~1nORMxy)^Of^X`|P=3>k|I~kva@S^)v0#B1|pS7O0iglWny*R6R_KHEeU7U-q zMXff~zRH%{wnNvF?v}8G+wsW*xt6@wK;QA<1Y6c~wjkd%zTGzFY&i6TlC!C4_tD=O zhI^o7=&g#*S@jD)x~jHo{s~gE1lyI-rE7VH#(hS%wL72CQ%AE$HxR zO5twQtEW8*1r>dDxG6L`tkToH0Yb~_&Koz2mv^sti!_zBHV>!OxoN*Pl~J1^yp?6CVpCiLWd^S&&5r8k8~ya;BXB^J z7~}PVRzMz%x#meYJvm5^d*DY@nf6hxtEch1GIsQyp!I7yJ$Gl1s5PAXp`O9G-{$4G zU5-m2pu(H`*K+iKZzazEY~^~lDV)_R9GQm}sF%BsqbSAS2B4;>ULbamIki7UKJ-oF zTASg>@a=nvToQS099WFu^pecq;~R(u+}w%~+cBroXkCesE-b&P#l z8nVts)vn7*F!a4k*%pw|DzKawD-&2=-gi9#3$7B-Vr^Z09`q8t;?ZS2LFs{YBcpMx z^3}C1hKg(pz1!&a_7)*SxCat?vQfey4S}??cz|0QA8+&jfH(?3lzjCWpiS`qJM~}V zmHOBvOA)$7khypPEPugLt5es{%`gF>=a+Y^>KZ|y*Thy~S zEed`(a5|Gk{ddvuEz$o)fxL0IlRmsV!!?wwL%yPx7!p;t!{yGq7i8C8noVwrwsbf| zq;M8DfMdMi(pO|d=an+o;e)&FCSzCcFEmzIm6?Z6LPA1HI%?U_?s*`dIyyKgXFIeV zp>wiTRlfP*8S8;dt+L*`@R)5@%1RbTKy)u~o5Sij{G*#o30%HJ=~mUS3XJ96KDr-0 zBG!HnE$Y3WYwUlA$yV=Ec&3@AYa7(NE?=6ul{(!gVwa7ig$j9wJ;x(B)@7fz5 zX23Ih@~`^aEk|byJI1)Gg8=Cld?Ozbw}6!61p>is;V~=e(lD?2%+*^kADEb@vKWG< zMHhxkZj3`}0E`09MCX23TwWffIR$XRRJl90L04mFht#TFq`8{1KG-y3&jiw^WPJEe zzhI?YL%ieUcCQvXBlAE3oHd2OD?}&KZ8eP3!`Tqh`vel{#tAfTJH&Rn0eW8%EHSWS zZec-NlEz&$WT$kmL^YPb@cQlIgcG7ae=irx2y#W%9#)lMD9V}Ak2>gd+>^?^xyXNX z4k7q2_~!VR?Zz6{-jE{WP#{(`p29C}yNEXr%on9SP*#YQ(SQm;o$o(O`t1xh;L=;O}x^qD+Mleu_$o&-nU4 zdEzIhLsqZdclCYEeQ$L-zxMn|BO0(J?Q5QId)s9Mz+k<9o2U(Gvk-srsZE(-+~G4A zxtN*)+CSY{p?LT3cm-ZDHUH$pWNU*Vbo^z-tOkh|NRPZq-yTA^v?Z+c#5MF@x|h7U zMa90`l95GCD~gV`h4^@RwTR;Dbz1DrRx|JYY7frTBro1>Eo^&A-H_ki7Rk4vbIP0z zQ2xLLGVMbV<_I>);JggpN=AxoB)4n%u#-o<&jpiZ7DHKD6wOXsJ@|xGpgl>N_?J~^~}s5*GWAk>0ZAB|+wz*19<18+QUB09Asv`5TD^Mq&;qkdv?wmbOV8;vw{JXsm6B>m{d)X$p}q; zGZ{S}%V{KU&kJOLeXfXMz=gu7Z zoh`B<$7(D;scaZPq3!$Eu+CXU;{x=$H(YD1o7XcmFZw|pXRMp^P=2NHo-PWaT>@wH zRO(4$+|ej;W}$JfYQtfI6<$tX-fGZ=bG|~iUirOR9^3#7X8lsciwU2S@tzUv2$eq6 z@#G{QTVNS!Ig3T?AQEB+1J`)7?+!jQQ#DQKgxk3-sjIM%N)tJG*YRYH9E?y zzsT&#t(mr~Y8R&Jf?*#bSu@P{sxQ3a=hm$FgMx&cNUIsXyRI@j2RMH!SNMKqi{r`D z?qoqx@brrS;|^pMS1P4e>i@3PGRQZaKk=1mv|dh0-5Q|LCTsMlmFefT@3zU>FEOnV zzGASEA-piuj!$;(;5T%#J5#~>Kl>J|?eq}BLV ziM#D0;UGTfeuI-}Y(9TfnF~nH2H{!_L@Fxx%SR7+AYyu5Rm0qS_L0EIpERlBBWK;H ztk+ZJM!q{VK`CunkBBmttCHQDpQagZaffGGozQZtcAF{M`*T*^`pq+-l!$23LiF?* z8X6)7?yM5a@L&#ago=yBD>TqNlDW?a!epn>Y%LG5tuh+Elt{VBh-{vxTrJ``nT`z` zPOz`nOl3u{bCFrC(fLVB4+%15wJQa;p$%vi{OzLls>t3jVU&A_;q71=)2=x;wqmef z(lR8_nz8--Rw2Z35KAquT*Ir1n`H7pdGE|QfXEh|uj0Yw?2{Qu)~n+bbVpQS;rI%W z(56M%*P(_wk`=$Diad%F=WFdqlZ>fv2nPLVJdtUd>wCf6el2n-?Y+}P9Rst2jH#k=bHCf zIglr4)hm?$db*)OS~7&sJ+vF!?SF7P>uKBi~t$HN>G{zx_4hP`qRV+Q9Ecy^cR?~#ZGwrXf9FxK-igwMw{wGA(1 zg3e_?NoAtleNLiKc>$I%Jx@S=!MwATAycAh-D!jx-65DU_YqQ1z7ZUk-CY|58^jAc z6wTB3UA!<1`G(;a#;?zN{z-SWQnBz{LxE<(&l=M|i&l84U@>LXYO^5U#y;qEj6#<; zeming6Bl0 z!}pj>wvn$Pz7DEh;cI#-oe2nlM#JYbVQ-V1&((xH5?YOp14c?Hn-$(z`j<@-e_nH# zstCayYh)QkP3J^ZL4*O&oN-ojvN$;_g%%xWJ|X|^`H24f!Xq+|(S0{w*Q$2bedMqF zyTz@0<;Ki6%)TFa0SG1N7vPq?9jzIiPzKtQFTs-j>%aPfY+PFuY;gEQS7USQdyPPh z%ng9Z^da*Qbu;dxH^lF8&V`Yl24 zsWLO^?xEARS5b8;IivY8VBOm-Oz)F?OVNxQX3q9MG#<2bIT;-|JqA|7xyYi{c6(&E7=ChO^5@&Ued76gETt^v{c-!_q zWebC=7drg3JB`&nm=xX`3QR~9Ml*@+6f%?^a2a;yJy)Q)vk%d2)w`NWmC3EBUDFxS zK);vsUQ-bf?YqQ{KR&h`kyT?+Pnj*wqUjinv;F&h((-_5pS81qq<;_pd+C~i_1fD+ zfSmi={8@}*QtH6QHa@L;Fd!g$=a)$(uSOdrY%(ePx8R83kmR${n@wZAZtKnUMk!!%}Z7YZ9@eyA_ z*=KjQ=0oDZ%8H8Hl^C~KJ^(B^wfx^3wc_5Hd0HSmpgfZWho&LXp-#r3Vgg2Yamts+ zDcbz;4%{U}Lvz+yvK#q2>{!*tzxn!&6Sbr!ais0bP(J%mqR!>N9v5Df1*9l{DuiJ# zed9~gV??e$Xfl2%u0%Ic$S3zy7{vfC7JWBBj1G&rrwk2$n9MXQ*B45CmI>aR>hfS= zdr8}Sce`~3-b2{zM{5SR`eg6`JEiTGkvA$NByBcoxle?oyx%a8kMS?mZ!r6*KcD~ZHoK;VMxsuoXPc&V9KA^O* zp>EkN+|wI`sndBxCy0j9bj-c~?3X!17oK3qY+g1KQcHY8gESPUK^9bh+DSHh*paPO z+b!A`?HEgVeV1ALl7Y8o52;Gfv7xHR)8eaY`OVDwcCHupIz5V1&QGzmj})oiW@4-k zD=0)wi%{>f8I8dv72`uCyP60%N44}-?!apj^C^u`>l*c7+nJ@#7t@KJrkE{MlE2R< z%#AnZjH9~VRh6zNaKX4*#*}ll0j`G&;ChA^i)qyTE!m=LM8H{gSdPXinc(V5< zixByuTl1HprE=5&0v_9bR7;!6*pbQf^{02=QM>k|D<;1mYGm=l=`nGne50{Vh^!V* z*SXdGD`3q7(4Q9KE#A`ucHynDpDNwx1GDNB?Y~8_xj6a3nvhWYlLBU(LH5OeKzGJO zIv;Bt)6&iaa*?9ru}7F~|E{mimG9Lr6am6c)F$RC-o^cpb!?8PI#uCGku0udooSUh z_C#UI2k6LWyea~nS^=EVKaT=L*)s0Cvd|8}5-+GGQ|u3??Dy?W^;IqLa005GOL-v! z_Kjd+)FBn&uPm?Xi5UL$=YJ|jtwEGp(Esh-OF}@?EPQ?k5GAVqtHePM7tjY~H_ZW5 z*D;__W(lI7!O~MVVCgvSPUC+PeM3tca6XZFrd_4kNxVz~P+7|NBvH1$fZqyGal|T{ z(sTcky52+f$maAB!4v*?a(^>cPqW`-6cHH(AjdLKL%u8%pWl3HRdCe`w6(uklkWmj zv2sDEQd%F5XexEY{i}JZ%<^pj zHzQ&3j$qpz)xs*QIG%4NP_AebvkzE!c`y>c;|W*;dDZ-`T*)8nyM}G%57DI0Uv6)n zu5|o)BUP2ST9^0J%o9EHs{^VZeR_#Jj_|9I(iE!TP7=+&X@S@S&UV6T>Z&g&YYV5y ziUYURZzsyWP)#>!c4}2M7S*CYpipJ{%;@|yk&N#H@vs;wrzUyV9<(y!I1XwPrT~9h z15qP_(;|FqW_?$q@6XFbg*~<`7xXA@_pL;$rpc;bntZc-E%yWnbBjpQL2zKQwkCsu zLPVQy`=|$k2xuxtmkOHOY_fyiqEg*4Z|$mAls*KzB3J@A6NS1kvF^)BH)6q?~kWLp;*jt%K`DNbkS|JHTCy`LDk z3`Mmz#Uko=iEn#~#1`%_-J51DEMB#SR zz8`hL>8uCHR4`h|4ulnK@Cv(e6GsS`!Z58dtg`vRN)5ovx(tHX$QD(MsY5ou&j3kq z*LVfxAh5T_y}iO$i#>?SKp6iX*yz*>l8oD_h@wCbm!+BmIcVE{PtoHb*jvt*)4dAB zsH7eSO(ijgSfeLmMVW`j#ikwwwmSD1Tukt`v^ zF}bUGb763aGHt&%z0Perlo4}eP_wEKTa1gnfEJY*sZ7&r2e&fVDan>VPA?18L17u1qrA6FD zGgaDqQZ{{yPe$wZxIlS87=#vV40xf+Hrej5+E;9UG&sya?B*TU%twN@4^;|7j>fJK zjZyF-=f{(h^HhAp%|RYOy2Y)HQA!u? zcjpj+7ch<6nPpN2?6rn8PrH2F{cH7|+_vv1+74%A)>8$mDyU z%6jF@voO*M?yHWY)5cNX+1#PmGic6@aA+cF;B=%SX+ZqjKI6mB|D9R#RCyS}=88jV z*NW!qL!=B%BNM>vvHqwcxaYV6R9B@hP~2UFE;<~S1k{f5QeA-OjaUx_F<8FIv8EqWovgd)rb_G0@2l_B<)ih%9A9aK~iUv3Yi^rO=BRG%F~3 z-A>T8Ur$N_!V@C-{#@q)o9KBp4T$0-M(z9EqL>lskJ4fUUoFrTbs+!11@DUAmtU|IS zsgfbSiI8hz-S^n}G3B0XgUuSv9=cuH)iHFDJkvby>}Yz`)n*%+Cc#qMG7k4AbXUwe z^}I_>owZxBND7`8{%&JUUc7PWX}!`twDeGm;&%0dJ@Eo*BSooV8>nRUQPQ>PsYThE zW-+!trpxh#5Vw4xdfDrAG21BSNp0dv3Ps6?4Ij1X>AiC2Y#RpG=P()O3lLYI1U3uF zFq-Q3Y=NR=mm<NkiOv*SsSDLiW2&?9GCUW}Qjfh&&9f|yAH3lVI_R^19Xx;W zb?-ZI3-!0qwDZ|pF~E9l(;OXGK5kX-krKq1l|x!RUA)PwjdTWPOepA%qc*&wz+0L9 zUn3-B%#k96=Z`_cyOr+MI{4BQo2a}iy6k@CRO|$tgRej7->tc09Eg68dzEYKSe5q@ z>Xx<83r7ZS9xCGIu`Da<<96$~7k|kI3QAd799IB2RGdnF5o4P_M2$Z3I?XNj^RoK$ zb70c^v=2;A0I1DnzPM%-Sk(gs+f|x0zYhIRW;jOf3)Z!Is1M78$9?8*rpo zPzh3c5(xQR^+DaZ_=j#1W##o(`v|sJkY-io=DT6^|8!|>$}5X~aFW&2p9^Umg<*#? zpLo_oq)NQvx6o;P84AotJ{EcW-+f+#EMPQv(&7tO4D;FX#~~a^_uv}S47-+ zb}ALxpNn_1pdJ`>rLazplOHTd`FW1li4hJ?@!5um)27ce&$by|aC{`LBexlHil}Am znQ$mLo$X_cQ$0X+?cD4aOw+_$FrMplfNEh?|8T6-aIMqQR2jbbu^zY4X^f7Upk*CR z8-C?+@yTk^1_S=dlFAqMlOUkzX^%?}GoRAav1p>4M4PKcrO);-0K|M*`r$>DDHK-o zjpRE;ky`I;m3Q`Z-Nhe|UI(lsw|yIzHRZDj;)ih|KEupxRx;DZ;N?$`!!FQjYgUm* z1DDh}1JZeqnKjiS`@`6;eLZ!OR9No|eLl#NGbMMLwQo|;@kA50a-ZPCq2_0Kw{hW6;xm0?A8Yq@KjI5 zbVm^?K3P@OB=vVIh`e5qP=Usc_Con#bgz%$XWnl=ZxEV~AAf5NQy z*>Ge+J>MuLOOk?gQpy*%(`HcSIDQiCRt`-5iZ1N6n9(wIn{jpRW@5szoO@l7Hj@SJ za-&QuOpsf{M@ob(xlogqsQai_7tkmU#qIh0=ya+Mt}-O}4K)4?biK793g^&I{(UI! zk(<&T(9@vN!;^v%g{3%g{_p6FP!dOG5=iS>IgHzl3I7E9k2*g++&WTmdpi6}LYMV>mgPs*b) zU)F5FTFk@4)45mnQLGQqJ*Z%FLl)YxGotIz(G(uT!SQeG64mEe|VeIZBJ zd_Bj+u)XM17}8FBq*=$z{045DcXtFf-jjdC{)~QUfp0mw3jVQ{RQ}RkvdMl4bOCVb z5K9YvqppE;5d>7UU)h>Ek#aj}aCf(VCtry9vqxN?>CgLw;{MCS7AXx`!-#kb_OfFa z3H*Tdoo=Bi4)qcZQ;tPl1?o#0&PJ;sO@a}|_vfdjCqzzs89V&bEuZaHzTIx9Ow<}n zsUmAeivtesX6Sj+tt2+nQYv<%%G1MS1;6&jN=G@o8N`tyB?~J2 zre0Fe44RPp?YV26jV-oZA_tSGMR8~$XC7}(M>~`~0nPfqX4aoCJn3VCD%ezfkl>>B zQ`qV7s6a+dBpO_>(CVCIk-pWESdQUQ_Qh#WZc1~6?dqs@v{Vdvy@kNEpMzjXz3;w+qwlSg4>Bq zxn#*oOHJSMEZlq%w5Hot z+I;g9!h&ha(S5%!Vb#yHfUZeSGZ6kDO&73#%E$?)uLRP3winz4Tk;pJriZSLob0JTZ zc>M683JpDeQ%rBGjfQEWDbp#u9%sOw-lPKNzt+``;hCMhW4$b^MHSE|dn8%EC(FTI zzpmf-#P++LrDL-@Dq7F=yVsoObT_a!B{ zKb+A0G5xJ)A1E@n9P!5M{!ub!Xyy$~uvX}y(A@buXyLPC`PNuo)PzP-xWQ^u1m0-vDdJk4S<`tK+=O>z;@ zvt`e+4?WTeS>MpV{zzFeWa^?gm@=x+O5CpYpY`=H&xna*q`(BJSMiMrab_jN-N_E1 zjFf%ur#ScQxEDwz+&z5JuJUp~Z-lo?)Gcf9Qfmt1U((NgHJawBvlG z>8GAamDy{}0OG~W>wvX4dev^zV$NO6QymK1+u(Q!PZ<2D(DrMvQE17QvehhYKiE69 zNn^*U=Wkxl(8Jt6w>7*p(5b%@D_$^z#4S6QEhK*XEtK9-NDlhe&9bhG%PMxMEJbqD zy;55Z`xh?aej^worN)|rmdw2roGC6$<7M^LL!fQte7!Ha>0!}{v%j}H6m`e@HQ77Q@72(CxDKUOz$ra}yF={5_VRC?R#K;`lIL>~YOiS= z8nRV9!QFKRD|$@VLliA1j4-K*6oS$ar!+3d!U1U;S3(^YdNIkj zIXMIE;ZC0MZG$8eRv8GExg_x>Czi`q1+yY`Nh9$ojU$JWq~)-`L;=1mqw6J>k8*M{ z53FRXs(LKThB^)Q0-FYx7sbw>Ode#;g@T=5cU4$?q420`tdN(V37<|Qj|^jDFO-z4 zbeT2sUS8|vjVL;M;hAWq*;6x4v%+U@#iP3XCy+OzAgX;v+?!tv2!mOFACiu>r zQ*ycUSPatxs(-Pcl!R^E0hJdlD>#3D8Vpd6;=;vILEp!sXP4~B5uEGF;G0{(V;(t9 zM?blMYX=#BNc-TSIrpr27fCnMf8m??kbh`m-fOW2!R60iS>0mi$7rBtxO-2t{@D3T z8IUN5Ntb4hJZULe7vTQEPV+k7E=0HebuFt6OAelG<|ybh+}IwernEK zt7Jh$MkA@{zk}SrgtSEOcCj-O>o)K<+pt#SXD3&l z49ZA*LJ2nErB0I>7#*Jkq`Mfih~3T|>d~?bmBFv!l@m`?x$%2`v!a_K^BwGd?M;~} z_n^4t&Oqd=ma%FeJ@)%&olA^5;f!8&j77iLCh9N8sZ^sBRdU0q2syN3 z4+5B^dNsy{R1$rvG@crML6$y?E3V57XH--;wB2}gxTV505G(4#y zyB>%-#HC=XlpqO|0;VBuKM9U2kkgk`F3bK1I?mFnDrwLmWXY6t=fafmi_^QA^KfsG z7N?r1GB`a$Mgw*0vDcM|3}7_5V!Z8XExGj+m*wN41zpdMQ}C#x@_iZF;1WC3b1JIT z&c~lZor?PBh}rt*MayWTd-i^on8U3pzWF;Zq4lm_>iVYDbFN=?EaEe%hk2idLhh;0 zj>vJ`>v7#m?3O#(XcA8V3XJMJwj38PHN;?c^pa&JP8 zi>N~vq*ym1L(k~$t^13u0>hGY3Yk51##bN1A6JT2LsdAA1_T_X`Dh7~O7QLSP`b$3 zJ4-rs(a>$`0Y3LcaWc_s!REuZ;VN;`1l*f4ubnR+GhjkPB0W*|;U{BiAyeE)9>Z#0 z1C0_?2<$vt;lczIpQo|wK;^HhZ0l{}li!r8lMXXC%sABVUOT<bY+5? zk;O4y8*!IAi&vN>Z1u?TRssBk+(V4*xd!Z%Iqk?uD2#%n%D!R zHaqpvpNvZM1hQ%ttdhvBO|27|4TqO+6A|AxF>bY)EinsCY!SLv=VPu7v*=yuVt&XE zMgEp>J3f$fbARP8ht$JjdtSlueI}HDUI#T{M5pcFj%oj}A107mfRolAuy@BFlF$m`J^$4>*HVElp$S@R58O+*M++OnRc=GH50rI1J<1teRQ9fGOv; zuZN91h26sA;{wjS`Klq%>>-Sp3Wj9X^r=^(D(NI?Ghx!1ZG>d@f;19v&A7L|eFG|e zELO*wEo__k=jOit@*ftt3*@+TCL!Nu^yOKJLAq_*W6P9F+IT`fH}W4_@$aU%eLJUX z7Xs^_q*#Cmmp5RDS!jNLOx{=+Sum;l3^%s>{0U`~eCoWyYt(KKl_ZBjG?ndbB1T&S z=IP4jvI6f(cJp0)*DTcp*qRBw%sIIqj^PW{^0zJ=Q;RVG!Pg?K8gkoc zG2Uu`^}3JOa?)ouxjeE^@tD`T7zz_GI$Q?VcC zI-^3DQa5JkRByW^uBUXWcJ6%L#xJ(PEb^$pG#*|O6E;k>YHk?ZEm~AuXs5UoI@QWJ zCvJZCDp%Xx=DiB8$qNx26Yr`BsXtf=wrFyI(Sg-=D%WRGrkIuk&LybobtWKto5Y?H*z9jL3X>SLb2E~Jkj?#CQDabJdNGawp-2EO# z3(C?WB9n2c&#kC;QU%oJ$6GtbAZcpIji+y&;Enc;I2iM1q*_}8){>MYtHMvE_7-J$ z@-J||7D$sxuRkG~2V{ab zU0Oph8KJ?$N)hT_*LWcf`jmlV7yEy`TW+_8YgTdUKrcCy83g855smkSv$m{&8Q-m< z16Qho58p;;mTnuDdV~9aJ)o?|CsNxgD!5a6ZXjgYh*}EyK|QbQ1oO%6d*BleYVjzn7 zFRw?Ijiv2Iv$1|qwi99ddltoVfY-@1zue59;CLkRWvHp-c2|cEvHIE=#KiE(xo{5u z0S1gHsI(-}x(=cYB^QZt+=V<`#izMaPFndj5hyjSU(-n`o9mKVO~F{&)w5;08yFhlUpNVPWCY8AHVUL|U=a}(n6x{-Lzy%5ttz1Ssk(*9g&~_+ybxo$WyJqbNa`L%*9~WAz%8X0q zDXpMVzy;re7kX!(uZv_2s4E#@x~kLCBsGyVZI_>t9zH>}*Y}*=N^p@i-G!U1K>xBK zk9-SqL`D!8bnjG+HM1X_*;T1M{S3n);dX8Q@2Q0JZx-^(#MB@my?xXbYVNfr553X) z>o3DDG8%R3GmZ2B{u7J*_fI>@`J6cy^RDc5yhj$MJ{YfV)6mcnh}R&r^H`JpIm3-+ zek`PA>x)`rlP`{R&F`mHv~N=aPNfDiO+i1+Dp(zSH5m6sS9Y(495)!VMbQ+9zlunB z2E2&l^NR`lIupzrro z(N`1jW76Ae6z-?VjG{!*ca&`!F)cz3g_KJAfekc&_y&X#be~85r_QyO7i+>zGB|j5 z)w)fjY3ab;P_*quPS&RtwaRsIs>T7IJSx1k_dPr31~UL8L>TQ#)T8JEifd44kua*L zraUh_z`gv~0#b$Pi1O}N{x9D6vn)O|a}AAr>#K9s52p5iE?!#{d-%DCVdN%LALF~t zqf$vW!vrt7fjgQ&XA9UGwe0yrwf&Emxorq5t3XxJBkZeIs>)!#Y#b!_CR>X9O8uw7 zSzAC*>kVk#QEW02RXZXA+IOzG6^^Yv`NAWV5D)*)FOB}sNY^(URq)O*FnpvRu<9@a zO&Hqk7929IhT^2Rz>y`p6lTX`9u{&FzFhlP= z6d{);0ItLRGkL9EiN0r`lhPRC`YxA>0>E74d2sG52vuF>OTP$^I3YT@7>Q$V(2R<* zjE4M$6h5N97aj9PB3VoYp3=2%Wy`6$;1B8IN9vi0qOViNGwn_qg++g-NiuiZoC3dg zD9&^To&k-yq|giwGkL)duyeVQnlV5^+&MjdD;YVBOq=9z3S5iFH?p6-~LWL1egL@Bp@vE8@ z%`jW+!?VZyzvgyM%gWCpeHUfQ!UjnN3>XV}64A(=Ppo%1MPMlbb@!#{6Poh(;^y^Hu|s%4rkryNw#BbO;O#hX41| zZZQF~vN^2LTd)Y#mX4w%{OO9h)^)r&4iYlR=ySi%SKU*xruq5}?+5yWN-MLV+nRXO zh9XB#SPEfe==yod-u9Dn8QgLQ28nxXcS`JrykB_8-`ZVMxjp>;#k+m1{v%imjT3hR zA8jvbwPtj=mo-EdLuD;gtU>xVCl?=SmH(nRFRN{34XQGUd%8DF9lYtAq6Czury^i`DdWE|zlRL1WMme61N4wwP%EMeqv+Ax+P z-V@%PzU1@b&l}ltl;K55xAH(rQ`N!=q%58Css!Ps3p^X@%_pU=f2E+0H|y8@tuSi4?*47bT&G#p%=nMQ{Ld4jF>bz2qmWyHcS=Jwf~NXv zqnSUGk|Qz$K_Zv**364fa^0wC4BR!=ItwrZ+XGC?+Ua*+g5*hT?cr_eRo0QYz*@*m9(ad^(UJZzYt*X?+kV<13gxCMkoUj^ zec_xLIoxNWW_gf%`uD`04%!SxyrkXt7v%(-X0JIcOU^Xn*Y`&PX!gScv37`h)?2Uy zDM7wct`<+dGo3&!`gxtP)W?!w8i)>HFY+}1MtbqwNjdsdRmt1w7mvvaNi(kGufeN78bC{fLllCmw~OggHc>5BGYI1C)u{V)+E71X`&>m6Y&gY=PmUcK4*G6!RznnjlC;!BEnmQIzdL?2Bq74v^94Cm#KNaV)oWXm6EPR_k&)vlZ?iKOPSO!K@~>T> z0@3zXcu-?#9HnyNX3Tu?O=k^&_SBi^}!GCZ^=H)-;xsV;%G(<0Db~Kclu|!bw{fu*~HKDis^}8Oq(J zyE?zFz-BHU(NHSG$&0TPzvTnd)moqUb)YGR9i$_3400As1LX^b;Dg9(idELQXT?Fi z-i+{J_+$%_U&p+DVu+RS56tGueT58grX7;TK)COD!Q!2}Ku(y>3xQ!5l>Abep}amI zS>z^=T2PiBT%6Zvo(;ipC?Z9??m6W_0p0?sKP&TPo=3;D;EL*LF8si^WJ@9BZV&hU zg<>^lcB{^m{NoE!Mhe4jWZ3Mzj5oj`wnTjP2OVyau{os;@^kSx+4nV2jo5e2q?6#s zh@Jp;G=U|HSW2@Y*1Oscg9pN5BZipq@7AQ8Q_1bSb#0;~EC3KSAo|s!!#f4sx5P3uuAzc%o zAp`@U`-RB$p4iF{syZRoj6?N*I4iXLEN&OwceQCgi5rd#JlJUhG zTG5XzYndUhNIz@K0gp&X?L(b41mGkcIM+M**#Lx;5j^@t^AkMP_xh3~qPZy63@^0k zHO^Z6P}=tXr;BR`o&npA8+EBv<`+aZHA142sQud3h*NSC+tt}DXD?!81i2y ztx|+)&H`;iUZsWZl0KyRQ*L4}GWb-d|MQrgT$TFhE@#SO*wn{_uAbnFb-rF2S2hr* zRlsAUR>qpokoUMgJ1c@A4t_wib6bi{Gi57JOr*BioY3ya-Lg1*W)?}4^BuYfa_Gd) zIhHumtN(Q7My!xMq6#u~7YgIIMJ*utO@&oyQIE`uk8@gY<>_GsZ%}GMTHA@FLL9+i z0^GN#JX7ra3fyoq$1h`WlmfVC7gZzF)$3=w7giFrwN5!@%34O{SyQz&Dvhk^Y&uCY}-BOC0|xQ6&X2PC97|SqVT~_`QIk-Qw$q zER-eBLV)s+ZrWAnJO4+KCa3U`WnGMiT1EJQ1|@DJ@$=l*Brbk5+^EbBY)0`)#D+G5 z@$@lz8M(hF1_>!sJX1Y{;H{#s7(Ucrc8PiEO%CFkv`p_+2vhmQECxsIw~+>f=H%{L zHm;#@M3_mg-|;oOA#mF8oFq(VQ-}_tL)SN^UsqTn+32L}kEj>S!49YjM|*-REZ;`~ zwOWiycOD-iqjjJ1BvZb%V}7A^UWBqic7ZfWri{n2*_bII8E>u(vG7VRNFT0Rge(%p zvgL_IG)$EN_a~$ccOHEx|6S%uJk%yGfK(H1N*pX^Z@gJ&dRWGdD3wmWMHK#EUrA(u z1Di=Vh#?I|YIHGMl__w&@Mc$)m$K_Sk*G}H@@_^pA%6QTE{Rzw>DjhY+^2|$Jet+# zN^cNtX)D!^ra0c|4OR>OSiV}c((?!_B_jbnPuO(2k z!ZNPZ54TU7bDca{MABgKE@#CN>Zip7zSwb$+v_G;o3w_1!HXq2(UY~XgOy~vtuaON zptA|!S1pc_s>{OW;|w)8J1Lm;gZGOQ%Z(&)$v-WK`oam8*^w*MOlC-?fs?2&YA|-Cz8(a&;A^Se^i3U@k!>BHmSkbbc!t?dwH+ zdJgird^r)#SPIFNX5Rz=e!7g^nHk`nyeukrL`p?HP`sJ(VBntRq119OXw*ZzjQ7<# z5Xg{d{}zZ-(%tUDGi5M;wrA%|(q_fi({8_~DVL?UE!1Ri&ULz0B0Go7WKET@6<`l6 z9w{*D3FZS~We*RvgnSFI-{#hmm+GLMQ?rZF0q23uaf#jFrK+_HziE3?h+WoyZLGby z;D}$L$6D+8Yi+4Ql~`#aX&2 z5mvZlJjgjarzw;eT29pa?LLrS>A%*H9IubHv;QhwWZ4piOc&&ZpO^m>pMGZf@07k( zDdZi4_eG9PXl_vDu&a3x)>R&Mae@-;RE!f)h)?7cO${#psfBT;WQ{AiYVbu_=H58 zvFp4j4^|2cKX558r=YweL@7~5=djN-DgJRV^{LoUEOSV24? zWm!KXt+9u!T4!k1iVDu1)euFXLe4EoIS_@pqj-FIvS0_WCkOt@L@PfI@?2?3vN2@s zKw~tF7j8&6f=F+ELOtp~OY$8uaG&w}D4>^0i59?K=;OKJD za~(FYuv~d5aOBIA*Ke{xur_{(_Em`wLzbS_emPry_aaK$-sEP|bMZ;vY}(DqLpKM- z)di6v5;p|lasJNaNr}q2oN-4-T)*}?<8!_8{FIuGE%39ZLz^-BYe2S?exBkq>zwD< zUY`LQlbQgsv?0W!TY*LXNfvFG6|{lGtqQ8)%46!7wfCTME?(_i%{~Ic42+RIJsxD# ztq??pD;*VrT-~>nhs%ZTo0Jd2WQ__zU@e?lTv_szQVgRyO51#L65&?v@5Oy)&V6PI z`W~B&1glp0gpy4NwmF92@ao(I=}Qq`F5!}A`HRZHI9TL zt#1v@+^D~qG2LQmB2(otq|v?r;o;8xxv<8l5zUt)$)LhN!vLw^c7?w95VdiOZz7yL zI+$x5q^dbWpSGuG4}mFIS71NFa5n#9963r3eEIk_`p19)gLt^Ki4Rll$0go+Lef;r z3QCLo6+~VT)LCq>3;R=Md`E1ocy1;l;IUa_*;B~v5!y-)Z7v7XkF-H)+}n8a2o`Oj zK_W?jHpVfEn`J(F8D#23 z&8BVQL6-wJGE@YYBje4?(O%)5h!@I$?L#u`N>B%gBsQmSoiChcdM9FPOSwJ!p$)Mf z37C{h?MZ`5G`sdo%>+*cHqLWJ*-gd4ColfOQaUoAUasO`l%(b1NQ65HgxIR2-HTA00RP&Lq z7rE#8ilh}Z4U({?g!X!mWLqe<^*TM_r$p!W|Ka&^UgVfz;;G5`MbZt69x(}Xn%E&r}*jThhfkzbIeu% zNQ<4*dTcn(WqrvI(f+$qm8~|zB@{{{4ma#J64PR6p%QlH>)ano&kb#Q4m72LZHP)B zMKb<{u8f``MMq>1!l7kdpu&SDJa@pn?X-gKhv5|G1D78C5tBOzu+UfH@8|4||H#3A z+|`Vh82%Ci*;m!^Z4V`mTK-vF2P_NazfWuYe_u=G{+_}7{mm`>n%~oLDNG{pVn2oT zBqNjSfwu?|NA#pg_X|)AfEFz8*UQL^mpQvZ<~=OefI*BGTvxH>GG#ckGvdjTRkQk{ zAvh*OCN_8(t1Gj_rLZy?Bjrw_zfQ3)L(EdOm#DcFaL}zvpClL72$lc4Mdm-n`ZdnvS{%PcP-t>K5iB(-sKN+V;W4}mF91G-Z>2+P+*)$+6-B; z5aYK`o@zqqOp>PGyWU`~U%F{q+b!Rm;Wea?a4$g_%VKn)8RFt2Xc=-)lF|ONANa+j zC?e0$pK>jid!9LXUmT5Q$%AK=Ny4o%cE9(L@s+Xzj}gmS+%N$Nrs@B!c0daNbsE;r zKfJi=Wr%EKy8V|Gr!md4W_BzfwD|m!kZyw%79t8h&HrCPRq4e0-pJqAzgOK43D>_b z^8Y*}2lluT&k+`Es1Qw0WwGuor94mo*y)=2Kf2B4;gL~BqP0DLEVY!VvMMDw z7L{{~DFwH_W1k&JB)O8$gobYwYc0*~LaO(l!0kGfNp63`rFWexQvS{lz27&`VyI++ zo0TNGKr1rrKGAPzfVw)*OEn=TK7;lA;EBVYWX~R|TZ9@jF}4D}-i)71R;Psp6Sl3G z?6a!h)lRK%e|Kqdn(D5*`{cKW7CP*XiG;}*H%gy0YM4-9O-X57+$>K`A&r*Co>h{? z)V&stBh7It3s4>|D<&7uJbBu}v>W9tBvtA?KAh9;Jc$T06#gzzv7|Nf-#LkNgmrz)cf$*g#NZ`xO4dZt#ljZy% zmGFZ0BXfm3!oXcrWqTeCm9I3!MCYf$^BWFws;uJoVi<376~;>RBz${1$XA=2^W5{GPB{pH_qvCj+CW$ZXkeJFU7IQ%4sV6NQ1uwZyqMA{(r)q=> zyahE`ty1j#Ie$Dg_L7<4VIo;_m{?MhI!f0sJHjTa`t~htl9o(M@&B0gkpG$Va+Kou zDxz8zUI$}jnU}@dqIv$yr3X-qe>qzXD2b$MgxGm)CM2WR6}xV*i?F`Ac6|MFE&PY% z?{&@JKl9SeuSGDz_hWiJtWmBZ*tQXhv2zEci=joL*h-AtvUjCZSWv`xmiUD`R=Ivq zC_`x0QSyJnwespo!x;`5y#i_pujpwevtSjYDE9mW@SFD0xX}d@WfTPd#v*#CKv1AR z%SEF4?00atUUt>2W}_53TT4@I@g~DwUSA0{?D7AGPP;xm+gkq4Q^)!!>t%Zr6j3pU zO47aeON`P&lHAc*2rsuy!hU&AG9{n1W1&1wP0;QmO$Bx`6b4Rgx}UH{p=Ya>vZSH> z&`wkOatB6M>Egij4B4$;cfzt$VxrtH z<#l$vjRraQO#=&1o0-jL8k2*8T`>W*DRA4K5A7H{fZXm~aPcmvyqv8H>LR`Ml+GjN* z+~zgF+jIamRtKF7O-8k3PRAdG{HYS3=^JV=fTsLcxMo>Fj}WYr!3o6`$S7b@xvpH0 zW+*>P%+;;0{0pvgprMp6@K-lgOvTyLO+QGa7rK5iD6{!G#viz5T9-&Ix$2Pl?2TX* z;txL>6omb3e%t}?nti7#&_<^#%52;F(R9q8k#6Kfn}e{lGR)Y79ATu$q$@^{UD1(y z^~?UcQ_?u+Qf|zSLBG!F79HqJ5`g16Y3r*&rw;m3sXHc9){9?On)|Wy08A)QP6VNq z=4&YeHyge|m<+^;9G@|tv>EfAO*b$vo+(|W>y{^-63s_OKEm6%{@moPN6dOe8aHFT z{fnIbL_-s4ZvWkO%rtOIpOue>?zEcsGy-P|?a=Or&()&ZlT@xh4(DfEIVqKtdtit?4zG!}n0I4Rq z^}Ds+7_Dy7xY5zvBINlOG3=)tI}j7|-LIbmZU~UCnL>5xW7Ch8Sp7O-*CkM4=9ci< zB`|7WH)sKqtUP~cfmOkrNNG>H9;grbB^(V{`AuXkS=PyI*Y?VaJ_dPr+}y(X{kwQ)rF5`A~zK}35%UyZ!9Yiv1Sw}e?Iq` zBs&{2o|~EnHi#eTi?Ay@tA&Xt^cX$g)2LDT3`M2Di=WZk>F&=$#w;L93e%!0$*1CfU_IfKnYp~?4vA=8Z5)|DzWh74 z*Pq7!g2+BmOexG;HfQ*0X|-Jl$Uw>oGZEli&le&Pgt(>Wo7^aZq?UZLRws#zv5{tiSlJ!=# zuXP99u)t>k%fw#C^_^#*4y~FkN}DjT<^ml-QoTb+BDlNd_vDGapID51sad!)IKLlF z2IpU0AnyDK%I4yjQ^7J!k>aof`(BIB-&e2C`k&kz_+m5LPK*_0>KHeFrrs=bLqM6* zYjD~ML6VH=EywQ!+t|{l%-T;(lqCowbu)L8()wH*C}|>3O(L3q3j@M0+zY5`%OvDN zkz}ad6PG?u7jTs3XXh6kZB~`dQ0us@tGWq7`8d8j$(QqHLLwjO>k^MD-XBMx!B5lx}$%i%rx0my=KlHt$Hhjeu^cHNaE!Evk_kMbB|-ie>LI=9&g z$os7KbUanWuuROTzmnK9m~JSd0+S2j$V%ytoKcpq|9~p!m3(Fh_zqTnK$5x+K-B#b z1Q1qX-Og6~)CbAKm)Ki$(|Huui1L1D-}mQ9o)(x1VWkoBD_?SZ(_ppc-o#p2ClR$ z^OP4!j<`^W+xm}zMXK%OL`GhjAsbKA1$YQh&nz`;13T`$t5?df|M!-VYxARC^>&EDMdL^ z@GURYLr6=!;NN96w?>ch^__r`7;M{NHc zLn?arUlqG%=(Q7u9{+Edvl~;-QfQ3iBc4k{94j48Bcv5 z%F1iwct*`I3EQc}fW)}+bWpcf%y35jOLNGpI;x|A>!+5&oJ00ihl|18?BngGt!eur zO{_NmWA)KY(j9o#y!V8Vj{24(Vj3Z6Z43#TW{M8&5}8ipDSLaq-GcyVT6_q`EAVH2 zC=*Q``a@w{;j+h5*F{c0KrZ-$kk;;_nHA>!-D)|8Z2gtmf@$S`v zZ3ehmgT)GX^jck{%^J&$$rQ#^8#$UUR(oUfv$(e#-_&S1f!^;$nATTKFp4uuT6bjx zryRYQP@Y9}EK}L}7RBPLlWnqnAxvRzx~}t(Z54SBctDkSn1>ymQ*A%>y4@76-|@`A zCP4}m8Cy=b(!A8O>9NJ}svyAgeTYWike)|RS2f;bGe>VY71YJhR0^T;$o&3DMHTPM zsp79SuGu{C6_J@SHwzqGJOqNqJX1nNXccoZzWHVjPibsXUNbgNRAwxjZ(NU|dj35Ry>X8_rIx<+SSRk^^TYyg|Ie|K!cHeajBYnKq{J(FpnM3O69%hUo}{LJJd8G*wr z@Hxyp)icg^BLsFYBIV1ZKfe-V4uXeHNLwRP;-9i3UykEzy$4zc8xa0d`610nH=S6Z ztc;9|J_M!B|M@5X`!9pPhRV2+o5u$OmS+LI#`*^;Ys4LA?eI4ab)RI^W7(vn=57(8~xawK@zzc=p!=RC-{MY+&3`R6$jO;8@NCnX>1RR8M zF+k_kw?34GJj9oiwZ%9ngw9NaT`;@VZFien3KL7g#7{?F(Z;o8dNboBD|NwzWhuiI zKfb^`7OMbKuNs1(9pz(=&HTG>$=O(w)3*nc{H)I=b%Z7koI9(nC3JS5r*a@2PpfS> z{EVTHYbY{#;ah{OCIJW>e{>oRc=5^*;3re7zFj)(7yD#i%YZ|G)ZS(0^LULxk-~Yx zGxuz`@$;o~^t979rBn73O7rt&3>DAfDheww1#6*rz=!T=_aD&6r&B0@SJU$lq^NfKE@v1adeR$LSIdqM0`F%#At(MS zDiK3yQ3+rrwypa)Uhnx#^>UV#iTF<}+3!4GqZ~}yPRMXJAXw{?g_1+q%=i5!SXipL z!#}&P?C^xJL&W#tJbXXmtq{o~iBSLMZ*-3wS_wTogKNW#JSCdtMU6pKFpu&xpLP-o zKHJ=?W6siyloCUJQ8YGxzfT$)m^&j|c6tirl493IxO;d|&q|iHnhwYPhO;KVyMb{} zQfzb;#I-n%aZCg1>OGVU_Sgv_x>**6p{Iu_lzDW&t?QE)wyX}>@l`KPj z7zUG!h=ZcWMDkGGOe*CR6(uDzQZgVt@&BF^$}cvKiSfm}XfvOLTl0TzH<+H?Jbs0Y zF@si@LZbWHUTUt|KN9xFMg8<6`rIIMp-ZUd7=cYZ`n%jy_xLEQ)KAD^k9wVuZ0nHu zNGTLz8*kgwieRWXUdfumSCP9srb%J0GUMyuu$l(o+KDt1|JEnbwJS&mZ&I%y=%Z!c zRb@qt+>v>eGQ!D;o6_l}#ydUN<13$+gr-AA+6e!JhkAaRmxN`dgK3)8`;!a(ELCT} z-J+&8tmlf;$=fzbW0soIZ(9OH(dofh{Aq9UV{>!S$Sf~KZDueYZMvE@w-%UlnL5hc z=ClnZs)zW1o;E&g?l~?E)$oFWu`Bt9wUzZt9LEvY7gj;9}vrx7s^e_B`uY4BwnWVGopy{;Zj z{Qaaz94mj)_lC41$3Z~(YE$jzCbAh=Q;-;Ni`RN?Yz%p)1=w`g*PfWq(SW;@{|z#> zaW&l{oXrR!>g4BcBqDOMod13O`Hb+Xk(2-X(KLvoA&AduVhrN=R~L%V#n^E0gIEl4MOjU*}$jVPUIuTc9Nl^AdHyz;*dpOPv$20 z8wYO711@X!h&LYva7%Ao8Bcc}3!KYbl5z#-wg>HQqG8h~KtZa(JW zhiYkGlMQd;xKKxzp3McAOW!Ka{z*?@1a5IC^6eJ6x66mV{v8`*U5&xxe1@V7g$y-n7rXgVzPqm)NED~rnZjAk(jz1kc$=AHuY3;E zfUxF@ofqJTbfF^{l7XBFMsd&j8+KEm~=HMp#*D;3y@S-E1mBYuxBO3a47 z`vuX^)K7Hez6dmGAohV~(f>D^?cc#yrnUiup0XYXz&;~b7Y5NFYalYoU8$i9{$R8* zUOnl%k#m`ABD#mE!ShnEQQf{P-qw;9vzZnCk^9GD=ZlrNK@-t<#P~b|7)_!zQSWJK zD9jhJ1tw zaN`8k^JxpR-%uq4Gar(wzD5j7-n!~IK3}inNgLc5?&GF7GhsJ6FkE%M9LCG#A_mOFFxpzPFt$_$^;a1>lk%J#R-8x2uiSsX1KmA;dH~vQy%mL@^&z$M z%O<~Y<&+-I=J3+fZmYQ(_#m8~I}K>HwgnSU&(!3W{e4Pz;?||LrMi%O_QWN{_q5So{NrD2>v^47QlQXH-2>){8CbyJ0yP z5}iLooo!aOwiQ*m5q=V0Hj#!H3^eCAF0h)$ZbJ@V6t-sePTBFG5(2IhVT@g!fK$fD z&^49QivnR7F@36}xGfcpC&=}&;5Js=OrtO-m=|dXd)kv`uqiC&cpWFp z{mF-kWtpI$8X2M<`RbJEBo`En03+z0(cK)^*&WvXi+%GQZPP8|moo2#STqKM_}S9* zc`y?cXY&LK*V)N_(AFaL+-bmpRFD;n3s8;V?GMA6J93-uzyPeS=O_BP21j@?Gj6k) zJ{bN;m@rFfzAIeR(#fGO-RFdy_@b$ki2WhBNv3V2)ivVxf88CKt0FSfb|>hpXDp7$ zZ0L^RkCSqZl&MXqwRO~`BW~TMuFlpzc(T9`vZ|;3++@ZKLWGxb|f?>+y7W9VUk2rvsFU8a|g%2K$c_g8 z(gzB_AvZS4Q)iv``+kOY|Ig~WN3JwItFD;XkTDB7wN*ve6~~O=b_zdBhTwLp-a<!gm!Wg-I>PkQ#C|}{yf7{r7ufx4RiE)z}Scz%ThEG2}Q)& zAdIBi0)%vW6lfjYdLX^NED;2RE0)v4Lad;-E?{uY4oVP~7x=t8G z27uWtghL)l7LUqr1JO9VXWwu*ulcO{!1b^~dpPgp+Wa_N_yEWg?>Nee@^ZWW9?ITp zx($q;;Pr*z(z9jdi0Q8?8`1gr!F$L0Ohu0hn3EVp8IHk|yt2D^i|gSHKDj5<38*_& z0oQ#V=j-fNr%B&d5&!Ooo*DOzc`Jr5r2V)r-d9J}EY=-`Di@sBMsXQC~R=`bZ%lNw*PY#Qpa zj8II!Dct(s|Cy62n3$gzZ1ZtnvUj%Q)l5-JAPyh>HtcPJad@9a%RO1y6V2dTKZ`qt zXmtI2rq^<5*l9hJvtfpCH_en2Sng~x5Y4`}5{{$j;#QNBRnW5Bg)NTc-j*#`$8@@5 zhMbPaXyaVABevUYT>SCSuhI-sK0%=4d#$TBVSxRHzG+;6AWA$*Rw&xYfXvhf8HBoc z1OFE=o7}S3Cr1OYL2!^DLrtLL} z@AFTMD6Pef+w*qt<~e%JkJuA6g6$6Sb|VYZ=j2ew#s7z-bKtIY>9%mEla6iMwr$(C zogLe@ZQHgwwrwXJJGnXE{R8{mW7McstDd>$EQl>O;U`Kw=lh7iS2=J2o1 z74x}6GhN;3DXeN~>{zHA-FYQx6Vvb08_Xa6N~Vrah9UtKYKO%ydd_WAE0DAdlYs2Ky#cB@|H>k1!oV2+Ha1EX@1 z^0rpGM1Hd=*yQE=Uyb;m_OhP}vyd~Q0c)=9Bv7sAM&ZsX_0B=;iZN89XtMga96T@F zNQ!?M2Q#57YxZPcLaTd3Hk6i@NzgwQbSAUIeYes4*-Tu4nyc#S=872GL%cS;To7SxLs z3E4W&9^zjk7nS)O`&3fb@rL{NGKbRkRA%@6oZ6{?Z4==W>KQ9Ld{G=SrHAl>gVeff z)KYjbcgY$oFig><^7Bs1M~-gsfp06paqD*&hBhik*N-i5zRiGS&bxxJwgz{llkzRZ zIUGVx#-@OVU(sSQKVz|&tTt$9nC6Cd*4bOk&J;uk4Ax8Md7o@16}xJC|NZ+=#<<&iCIe?3-flHtZJ@-MSU97xG~I#57oM=kZKZvYp##a|D6MgYFCV!1gMo5 zm5mf>5K-&Hf-%2VaH;#ezRc_fuinM6wjl_2iGgTkn4~M2p^Vy8-(u0PW3}>P#JM&W zr-##L$&AG3TxE@?aJBn)a#7mPW%$8v=aKqZ@y@UA^x%0DLgOu znLOGOt(D4IVQhMw>B}XKg{*2#A)d_CWYhUQ@%hje**M06AZb0K4Y&k#Ca-1D3i5faxzFCJA_Cgs1c}Uag0yoU z4a`>VFB+6klRuN$R0iStLnbRs%f}~zMmQxwh8ar(#wx!m<+aa=h{__+5s&bYz})*0 zRt$x3WXe9}T~9xdZm;DuRf=J$zSJ5w_^Z<>(_j)3FC1q==lC#D2HEnO$fvqa%-y{`PzABDY&1|7R6CF9vCpr+L z@P!ElHPBw4v@@?m6QR)F0MtnNyZLUgkzI`Uag9P{=~f#fN4>G=`8Jt{GRZ@E%$W|y z6I*g&hqWYjyU*S9(@*4fAWmcK4eOI;2jPz@5-$5_^L?jr0ReNb%zpv1*fcJ9S%6mH zLWhjn-Pwe5zPfd1jTorXx40%(R#omszbALkfQGefgSc=#cF7y!T`C@xnY}a(y=yKVgUd!8^q4-KY+t|R# zgt`N8{~VL|{p6z!TG;lfq{G5av|BO{CY5ICAK_MJpU+Iq=C-s3O3;Z{>y%u4(06x{ z5TMmGb3#x|RmXe?ikVi<0Bpqy9pxY!4;u7bk3G1chIBp%H)qBH4v#fs^9Yx}0h@CJ zjOj-`W_LcF*6PLgVMVYB|E8mFPDps_SSdDx+-!wcs|Fde?Gui17&ofO%D4TI;NUQw zjX&1DtVmW!G9a_rt%6{mn`xwldN3~#f#S$Ab)GD@)SWwkb0IgaGHGW=MM zxniVrc|&<%tLyE`)q!WE8xwlN>Otkt&_sz<6*MH`Y`4QZq`S)zA1|uDn2XN+Rm&AJ z5i{1DjlIS7)Z-Q@Bp&k|2P&219||hON{;ed{$o*Y3I8}-|1QNq{WI5KrfTTlPaF2L zvV;HOuwJ(~dXs{}Jnq_pKt`V6cy>NuP4#*hoA&uQcr7N|tkKwuJt)&9iSZz5ouE1Y zbqdY1G*R@A+BrBhU{T90?!ZKf6$cUn^knGyn!3 zsSxedb1xmUnd-^Yjt2?V>a2-6P9c7C9&;d7>ZYi#bNr>=@DY&TcpBtSNL34g)PA_$ z@WEG|xxQQu+G@cdY@pq7_6cKlZOh_1+zXLm%sH_(s=lNFM%|XW50xEE>ck1*4z-@T zM5fpkT5%*K_B5xjj%<_*a_X2C!_?&xraYhxU4E)vJenRIw$p{vC`sF78J?s5`GG;m z^VJ^g@jd@VVDr1f=gE7b-^vN+gWV8!QpDE zvAF7ZOGaB)z~@Mny>2k8Rw^rPzEZQYH}u#dAl5`g4kzp%d7KHyFU6qeQ=ipMQ$ib9 zWqb}g+q-w2oz=1DN(f7>lrG{&hoij}L6f*XD=+TF=$q8UkK!5uK|{}T2i_A4*4G44 z(`g)tL*F!VWT8!e5nA7UQh#>u2w@1RvcRkk^R5`4(}18;$w-toC$%Pr1#S|W+J6u! zH0TG<`^tr+t$OD}vD;}fz%gAvL*5*FWsw+udY9p>yvDQif*1Z*Jv?>Tc>C!$}j+>WP z5f+H~r^v;&!z*XfI{isG1*c_KHL`+aYDgY{1$^q1U!zDMqeX9pH#-lLTSQXVT_wzC z>q`=@++0WGHlUAOx$zO7Y=FeF3JMblM8wq1DR0l4Pz4txL1T21Mkd=~Y{DUVt~>D_ zGIQ!`5D!ptWTXsGj0_#p#WgsjtxNcWOMtx6&jJeW?}Ywu1^J$ zK@{uw=+h+G7^*}9=FQV|7iLRwMcL1rVI0=;hY@3a9P{E8t%=*?!$O#%9Ba_&wo7(G+aju0&wTGQYTQ?GU z3@bJ=T|W$*9aAI1avpDiDfc~7gdexl+)h^o=#X~~s#QgndHtG!s)*qTsXx;`5tKX< zU{w}^i}0%~@f5#8fTnhY-+IE|a@4xY;bI?clhxfwrk z2QvRBE$qPj5Venj{8io741Ekih_B;dZY>|)O5^$(qfOMaxO}>z0Q?p|Fay(UP?(dc zaH6XWFS-n72#E0SPCu>pcDjm?B;tq4C>+hi)ow@W*bE1@+KjvD^xEm!KARcYYZauq zYM;xzhBlyKhpmeO!Y^JNYj>VqGuSAV*>glcdNy&fRItR#i5Vro3^Z1VdO?ru(>WXm z-uwsYL$vC4BABZB3#1y2K zX);v^7W`kxY%sq#R;9gtpo7S(!r{v^yQ4~g(GEwZ{*8A80j{AY?Q>i0LtE|n97Br} zuB-A9b(a=ewB|G(hLOA4Q3lw?++|ko6i@nz7X;Rz>`*?hQsC^g+3G#LwNua2cu^!i zDSznCaD5H5PLRSOE;D%}j*G(no(vB32aGtsGV-)drGY=i;UE%6H;jkBj@q$k8hC2)^Do(jt+wa)X+qLlV(p*$WCPZYru(;gtmH8| zS#)S3Vx7yE0t{ReHo6W0c&5VztB9M1Mndtw|FXny?z!Zx;RY)@Jx|AJPZ^4_p9 z_fzbF$dEzqp!y4DXECpUT$x}J6MvezCgp1)5mdE=<_2n~7k5gERmq)d;%qgO=F1%g z^&}s>D-So$7_5V+pv)QV+61x6gNiHcg@M5}22)cAb2ymUNTMRu! z^sh7|B$M~=d+-*r(3reb{}Zxb`hOIda6NWG(R$O+Nx&2VIwSS?k(qs)K?DTPA>+id zTb*&U2{PxLzKMDLxiB!7Jg)|_p|C)k5{Jdl_cZ!s9-~sf*xQIL>`e@F6IQ7#jXJGm zG1~zVsp*ilFC7K0V`8ks_F+!mYoVTF#wCZEVTjS8zS95*T1sTY*3+=1Ht|gI#{}$=zidL_S2nI#SqjcF|<^ z;HhkW`k6jv<}K!)t9e&SN?B{3R-grl1=V0A+;BA;J2sWN!w`d&0u!A-%x9>FN%0J$ zReySOJF^Bqtu$#pma`2tP!J~4^dQ>5z?@}H=)yfZ>d4T=0!mKv#}(GUR_vDHsKNs+ zvpy|HT($5PN+FYu8A{9FshykU)vz9abJTD$((fMVu6rfqcppwBU%+;CsBu`(pJxS0 zh{5Qn?Ukx@F&{!3#UFETnuK49?CF_CnsJPQ58!pGa`Y#}wY32~Zh$go=MQGGEc6T9 z_l&dCAx$^wlycTGf3rzA;YFfR;_w`WHNVW`EG3wf)cy8B7YDQy)@KCF^Xp%MP-%ZHe&9+=h^q1Rce9GC-N!F(!Di10X|3f4@36G(;s zuqU50v*HYnROusCW&9JOC%v7irDO zI)jiU=|gq+g#yZLXtGjhm3U8!@p!dVY1OulFKVFNC9(y*hNa%8$tz4HDI8so)6o2( z!bEAc)psd*({-0Cy)^ky{xS!ET*VprFVzQ8Mw`D36=})+zhrQl-`=ET>WGLtTB+vG z4qk-6`IhdjthgYpBBr?8Fq37It3)3b35)8vHgP5w9t4{-*YTov-g4Dvs-GlXU%T}<9ST~3P2=IRt z>qr=-kOG4W_+R?)GXiwvJ&A05z8A&xTCRZJ?cnSsLy8qzA<@$epXc0ykH!!T$(HwU zes`rgX5|2vme0xUaJUTfu+d~QHoRQ-kj$uV!A2_JQXiFXfr)KF$u11uG|xP-e1Qoi5`n&F6H6aikY*W#06^3Rfff*_$s!I zjs=>2@S%{dm;xOXRfM$7z}}a7i)|U3dZfxV$Y)GH9m!2KpYc}qSy`{4{t1YW8K){T z8K`e2P33&{phM}%Xk_(gQ7Fnq2~GqFz<846f1`xALjPkn*6NDC5k|8S#ojmEpgBh0X?jt1Vs)o_|_ zvVu3|LB|TQs#imKw#Qsp@Pd}QXnNj>A5cDPuC0d*?IW{0FO>j1fqH9P;%);?PQ$0j9RhnteiU0sriCNy%CoKo3`(xYxD6w;q^rM8e zU?QZle^b&%98oHJ0SjT=K<4@DWy@XS2<3X@3hzJUZ(06i{oPxUsV^ESgMYqC zqOTI?+j+;|?dG}eiBXuU2wSDkmS%*#tXBItgd&d4;p&3UmjcsN12!R2e-I9?cee-m z<(Qu{@Oc?8z#utUiON<{e?kVPv8hbuTc~J1VpZE*_$vol@Y^uW8I_4|rkCVH=Kp2j z7XyO-8Y)&ms1?WE2)h7d9W#<8;;oAMW@|w;>A9B=Y$a-R@@8XHphyEjkpz`CrsbW` zSA3P)UQc5$@7mpN{|q zx8-v*;tau&nNBXRf+xG6X3kr9IB2q1Y7Et}`p;=S`$X!bl9rQzaPj9#}~Ae^9~gFLu{x^t%fK+#kgWYo1N?orF&lhsZ3 zc~?>z;bD86$)y{-#8=M z3@3S2I<->UR%<4qNcXqBJmyLX2kLXrnX1rRJvJ#B>4&#rfIss>zLsx@j&;ZcuDNCo zE=exp;uGL;|5rL|g#gN5#zy2GqZE`wr79ztkp@d`_OjKlJl?N=2p0+ToDAujvr;tB z+#3HgeGS1u|L^XOKu7_|e8?Zb__dm2+R=GBJlLqq{?NzAoBfISd1^*4GqmWf%Ocx~ zI%G{##k3*sf+#x|+sKB~`;MY^xBLWAi_`sH+%45&aLA89r39#R0Ph3{@HuE<{rsm~ z$~W7n-+BT0#kZg1h@PskU>L_ZQe?TsW}2sK6qWM=&|jTzMYPTgz>TYd~-iXa?!f(KPc8~GNey2gei(+}Hs>Ho)%{XQ)|K{m`gyRsK!n^#N?OS-4&FK3WJtCWE7s@H*)WwJ%6hOrwuQ zZRsmSqe-;>Wd&aCwM-WBAxmy zlYH7E2jVLBEWao*L8>W>YBv=6SYny;W*d2=2@g~EaYZsF`!Nhrc1r?UEHs2UD!(aw zECeMn0c(;_kMCvIEd5jxY%^v6b26wMAe@_gOkz=G93Ps;VK6&AmaCAZF}5m+4hIXt zfecTo7+Y>pEbYZYM?3Cl$nl(i6v1bMd72w|eCpnxRX@0l zw#HLraWa{MOhe|643Yr;OUDtHm7f8gLU;*3u&PM3j>EI9hw@&#BPEY;W=M4|z*z-Z z{xGmI(PL%ku_AKBURH!UiT7HGDPK%QFn0b2vdKd+`=~n%1&7ehELDBbCc(8aAIsqtSn08=_o9HdOVCx{ zG{bsWIaA9`b@fwwDw)myj#7MNn~t`XP+U#_Pr1|of8`F2#D_MY@z1-}YK9})r^juk z+0CY*XqRN+Hk@$pPR7TA*;IZKY9{cxY%vETt@^7ngE~R4(nBN|s|TrVp~B7VX{**~ zZ-eJkB>t=*>cpUCc~6jS)_L7| ze#L5?wO>X@zNN~3`m)76@b*rdX8M7DLakS zhuKfb-%?{^d_2Za9`vD}P&mn=cUg10IGs+{i+=2Z-&$-HGf=lHHJH7J$))shgINZ! zN;7eWW%n3dP1L4;*H3|t7`iJ*`%6MnN1!QX&b3&|J>3Pr*Nd)I>f=4sfuAaGRqc-2O%7LNALHUHuZ-mD&9 zPH+{!IdF8GXciUg2a?X+MI}8U`?pqd-+=N10XN;=Y&HRZ$FnRZqx~GsXL^K&GcmV6 z@ZFxO#u)9ObCj&g%b`QZ+{lD_&>S^hY3H-%UPF$`%3c485E0C4hvfY?rQl;OKL7EK zSBx?;7?A~Vv-g?D^%%7Bs6$r1);EXnu&--r*s5-8iOW1iPF9)=I^X$lq~WH1-T`2{{jJSnU<2g~{}2y&dJ3ysTD-*)a69rBvMPSR@tp|UG7+_XCb6}V z+&q?it8#v4>x0TWYBk7)F)Td~K4x1y=B35dT~tHhCb$eJ6TeThbxSazS7Kpy63oen z+((ffKWX0DE#UWHN_*MAm#!|(D=+K6_z6i5h$op$%4#N60ng+&1eI9O{dnYY1gv*% zL*TWN^qk@LR$H83QRjiFzi z3|daz2Gs8*P4yDHX6YH&CDH@jex4A1r^?!)bx>$)xa-MLQ36#R`sKUTdujUb97mqB z{B-LC)8gGT8gHw~dcKy8^n;IX^pQHI^M0+<`vF;WJx|JC7VRg;WKzLai=kT2gqmJv z%gU%@Sr}Rqua%_^>7C)yq%U0y?Rc29QHj-@XsJ-m44Pc(R0nIVlCgjd9Wr&axc42O z9bwSdHU)|3LH9CnD5VE;^92p-*Ny*+Iw<8a*cXSHu!Z8ye9-k{qK_69TN}5}^@WsI z)39HBdL};8H<&cpzUWke-n{y!8R01P4P;Duedg-Y=Lm z%#w0HYEK%nU=An>!l9B4Jxk-0-SFQ%FxSF#4^++{fkHh5cfEhHWPL)y;tl6A51XEV z8_~D53MaenQg642oDs;w%QWYy@tXk;XUtw~>fe8uIMaaLUQtwDyhKs%F_K$#bxt$@ zxD~kt)lNNL4O&ZWl~x6BDx*&|Vb_W{E0rFOBc5{D3vvf3!>)Z-yI_OJVdMOn{$nas zY9fWHSh^N?Sl@xmfw`h8(p6pXr{zUj`3d$b5vSXa4Be8p-6bxQe(Mf8m4*K}pV9%!(UA2~~Dp^M!SD8)qhh;v;?b~V^Fgtj^))Q8NRE#>8qjB3yP;5M+C z({RZ6B)raZGF4@}ZHJq*R3|%bUo}>0a<*JQo3@iBcqT@lYO&esm@S7o4mWk=I(4Q( zdpH_yUd9%1W8pH@e%&x0zMKi!(e;)vw|jo3RaV&HDs!2t53d@Sw3_ua?1I}k-!~fn zqaEH05p(A%T@H?mdx`IFz*x;Q4T97Ut3i=zrtbu1S$4Z`jGvBRRI#h`N9CJ&P=;?S6shoft?7n{o6eqrVBS{eQ9FNysUjydQxY1IYpi68kR^1b5@DW)-2w@0 z5C2N~r{G)A_Is!Y$2xWG&bVsi@0m}EG6FMq4K zcmJamcGWikj^yA|?Ewf{H*}i(r(%z=EDN{wj2ixyG~#ub^H20*$dwx+_o~VZC+8%n z$)I{Kz6dJ*_(4(Jsi?PplGK(QpR@||oedtcJ*|aOUg63LLGoq^#uGt`>mP5@AE{NY zwHl}Meq@mF{r=x-_^3RtfPJj%q35kJJ1U18Hkr-0wJMnhYCV4>(L8*<{D{huMlUaG zNHmV2(H;bPg|v=}JYuCL}>k@9?6Bx6O#c5i&@ z4W$(Sj4e>SABjDahXVf<`3?7D`50h;&X7x|cEJ1#_Di!B*3;AuzC|D_FY6UGp2 z#kw{NHL`Qx!soK}Hq?~G$!^qB=XN|=M7SW0(nj*VAAjLem7erHnxktfq$H!J!vx~; zvRdC_*J|=#7-s66=ua*-Q-LPedRG+_h$48aKQk*syI{gnj}b!AP*R_T4k)y1@?!M3 z0I$R3X{Je8h_O6%= z8Q{R?Rz8NcMlu5MR??|?_%mvavhDb)ww_oiA+3NC4kn*{mM);D0>KAsJJck=c-vGxCcr=gC_LqsfG^`vv#;qtpmV?)OzKd08@@U*M{F{A+EKucgTqh{8d59-O^crwL_zD%NUUw zmd{7nBO5PK_-Rj-;g^4FpxIrNi2Tt^T<`$`T+c(-lrnOrF~!fq8?0VXR`UGhyPEw( zX^)@cFSvY3h9O{*KEOYZryR3m`Ni)w#$u)%x;rvJ9mK`uYGf4WC3dK+6+LC|vSY2J)EeeNMEPxkf z8OMA;yyFYPFy5=+x5|s%2{CMGKz;0{`VeB+WqK1pL!{ThJP~K;PdTg@it?haAALrb>Y~lZ)nqm_c$T zAyQZu4<9O%#;6|_fYBUyg{0F6%b=Dn(QM_=K1dpTcH%}jCc+N>dJn!bDg_l$bwZ4d z$I=+cP#jiNZnHgHV5!$CGu@vD)oGTE4C{#0-1GSRPa(=Ei-k0VhaTetrA7=%NpuSn z4TYg3JYG?lJ}ydhY=7>3oAiLU!~u_$q<5L|OviU}I*{%LUdnsWA(>`A%V*-_cqcS7 z*OCvZ5!l_Ux;wy5au#H~75iG&9Av^Kqf~{l@oo z!1s0H`*ot$`?lo!{p>q%c?@WUzjK{(&eI^h;X z6B%4)8Q#igB5{W>rTqJ)h7;6;W#QwF3stvS@;K|o+(GDf<#p}sf0#=n)5k!~YF&r= zWXv(qFZjqty*H)r$9nIJLQgf3z?UXD34rn%U>DnAv5AL=Vbx4uIoW)&2k4y(55Dok z5lb2^G6jD&7<3t@wikoFKY_T;SXnrohS+lGn3o`JU%Tm9o1bU`G{QSaO*Cc zZ`yZ#`{;3qa8(lLovd%m$x6CTzWeo`&Dhks%-Kr}QXn@ZbN8E=t<(x^ zi$=7-t=ux|2=`f)r(#6W2~8_V0x$C1(YV_`=w(YL>@T^0?h z*Z>5&%l4Y(8;$shU}JmmyI(Mixn6dwcNBqCWYF4tF7_7E-wkE?&f(rtqp(%c|Bc!; z5}P_Yr$D`!;U5KNtTv37)WOfrrFlo{lp|UIuTmHF3ta86a-ri5Rl>V@-z*DUAc3k7 zKh}f=Yhev=!(U?j8yK=x8B-r=WH$KwCQdHPRmFH+qJpGru?ZW`VHzFk%E(NSHj!&b-XxNoGC=O;jvg-D9eEuke^)6sYm ziPT{uSkj}WvDue#7+;xK8EXq+xF~UGHNenDpW}bop4;+naY5l>y6BV$S}pav-u)(n zc=cqD$`Fqys;C`pXXFhpIoW1*DEl|J_ve_aXjRU7D{;B6yW)2SSLdSixdM~JBIIdj z8va(KH{m^h>(+M_yj~b*eB29ye>IwlQV2>K41%vX=79Kh>k0xXL@K=&RW-cDb=o`@ zpDg^}kC;c{Q5H13VQ2?G;l=a1iaSGSq_4+BB{|-u42F%|oO7DAld&wBM#qP!f(4EH z=^DCGLAY6WFc_*-@}Y>kv>Q0NjL<{FBRn<9~S3;_HX_4k}L+kUiFg z3S2$bE!E!{>&p`QjYAkq25}Ye>&>um2mC{+x*moT>=I(TtScFYSBDU513hdnpdF>x zADfgAHmE>{XdSq%_xR$u2`qzE92fJ;bn035ukN0Bhtz%>8GT);U<`Ai@h z#QcZ-p=@Uv2=COr~KNyIF=571&@l6Nr-7e!hB?8B&J5cA66I236igz7eXc(2x zPK5hmv+QpblickVXyIsuHvS4=t?z5b*YSpCKK^QR&FEX^c69apc;b2PjmS9`(DE^7 zpXo+_Q>aC&P&3NP#rs!Xyiekz$dhHE8~1)p>G(2svW!!uY^|1ZW7?F>O1J5Kbh*}; zNGkIN7ox}T5eoeMsP}#JVRHC4-X|$p9DpdWuG?sLf4bzlRp&BLO+`xWb8vgmBynVv zHb6tIuG*-ECU~AVUd+=K3&e5Kr86VM)7_)O;7wKNxg-pPX(x&cu%F5<3_|G!3Cm6(y(i#?5P%}>&Cf6UY)H_ZMgl8eW^CMp1gD@$Z8YGP6@v8 z8h8xzCB?eEnTc*~Gg56$y1lcEB}exRyqC?)#VC;5=45nC*Q%d+PxiHo(|ma`oULgR*DKgGK;tvi*K zb)Fv!F_pi&Fc!iGHQPyg)Qte$Y2uft*)(ZNwRRd$^%0WI?Qw++7`y>N$pLto=75Lk zC+J71fqS#TII7b*gt_&MbMQnz@CUUJMxxh` zzrU9yQM4u#<@R#2wn+$g`RQ^G5$czDhg{IrUQj#R70pBO+`jRA=ThLXl_5v^E)HerxUp}v`A~IfDD>GU;(EC?^k9?S>>fjd8vJK_>nS~ z{ruH4BW^a-c=}hZP?RWp2gPL+!B}Do^E^}hL@9J_TcebTSL%Av_EC7=(D%ijN?aF^ z1vcc#Ci2F$=p^xs;&YW6E~YL^zSi(671gNo4*gdv9Wk7Ca+j?d&Xe?u4k*(slMU{u z#5-VsNLO$_LBh$pZ<1POP(9CtaV(3fE)u$-UX?+HWr$jn7Q+-h(X&ToIJUlrwfFP& zK4>*W#1FGz!bBxYuJ2D-3MCoI&286>^<# zOH%u)-(+RRo?@A%As^UY-1TOsK7N!f3S4szg{Fe1S&lBTY5Xf9XD)uy+VK?wa8K*| zm>-cHoIu0VzO$j2qTte3uN-{SHu5xF;|K4?nm`g0lQVp;hN4YNJbSu~rl}YdcQX4G z=si9TvXTZ&)jVZ|^A3!1Fk)sOSWqIsl4dayuZn5~QcW(8&@sEv0R^$7f~Y zw2}Vx6x4S(!S8@d(2v*s;;&E6a}w^UB;(a=mr-lQD8Cl%O*H* zHet!I~ZTWFoGjje4=SlG+V_s7h) zVO{v0o`zrQ3)2T0e9oYp{%Y}j*S%3HtP1v{=s6d^9PV;Vz)!|MVh%sKwE69p^`4*Z zQ696Y%MfPVkpG$1aco%*dmU-M=Pl0Xg<*dc_kA>9wh8WzVZRwvIz!Lzrt*Z(H$70) z(Z|Z88X}0#@%;lzGa`#?6P~R871E$FRu+9t?*I&AW)i1A20bQ0P?iSR9FkZgHC;$) zZ9h}m-j<`!mC{|dQ!gg(7n-vYBMN>3NDb!MPE}sWf*EN+?(kMYnygz@Lcj~sD~Y*P z-7ZsyUrUK^s)cc=Vb*1e;LCezi^5+mloe(Ugvz|!;&QqlFXGngsnKy!(9E+_m{AjW zJI#*r65Rh{y~m9RntlO=T%?fVmB^rcj35xZxn}~l5{W|iyM93)FZzstuckZ#e4a1(8x!&L zR08qvBsV;P;Q8-{aAwY0=XFQIVGjxe|E8WE0#6h1Z)^_y7{;S)_h;*Dwi@HN2O2n= zm1j5lK}mxL=DKAMarDzL`+L=s5!SrS=|wg&3)^U}A;^eRbne}8=aR&e``}-$NY4dl z5y>8T`lx?;XZiOp1TA7xvB5a5gU6F1T>4h^VJ*{`N;URBh>EV3ORw=%dCTpV(tJ!@ zA8IAfRa{Qu5-8%Su6cxKz$ z)@{vFI+JyeNI7p!ML3b!b$hyM8q>i8*@x}Dxhit=v|M9K5bpMwD8)mO!hRfOtIx3) zYO-f4O!X@xw>*-g0)h}lfe+-7*Ff=UXbCkn=)kBapHc~Sx*QkajU*PtJ;QcY0TDfe zk)15dfgN~Y9jm5 z7p2@j`Z#1_c~hCo#)_k95n6%j@j$uIU3;(pGJfJrE{JMsdJ0`lhV0G_K^LXF4%WtO zcK5;9&>ZhuW?77K2JbH#=p$4B6447PGTANuYFVJ|X*#u3_5U3Ht&{o+!*rzqGvL@ylq9Ms`iDoJw*2}znug!T9&T$F8aR$3S3y$A_g>=CrXg!C`wx}_6C%stRb zQWPOU&WR_@bz+KbSW8Jm*oTHlb3H_V*x7fwDJp;Jj$Ah9m~97FJMGDc;wqG?^2}ml zElpvq-_FymFxwK|_9X6TK6F~t9uX#aW_TVJ>DU-97LD|?^cTF7-yo51 zD&w}c-MMY=tQYA~mSN5-pHRn_n4ypWcN@3;aM^X%)sQA!7j_D|@Z9IKKqC}Kfs^ZR zV(QN3$G-H%zUz;A@7%O^mDrC@PkH;}qE}GBiB}2o6@Bolhbc9DqMVw}q=r5fX^1e= zTtDA%P?F|9eY*UD5^``D2ZNN`ZoBRJ>#rYUVf5(H@N?X_abw4h&CAO>b?TJ%ot_n( ziGytdOEqG|2q#y5LHx=A{wMt0zkk2HOr2g-nwV*5p&3FWuZV#?bzGeB{$EXYYE{*V2iWvP2>~+D><$+D}hnFXU z;1qc0Uga@h9FhO=lR|0kkg%c0y=j%Bu=1gVHW~dw2zS5+eiv$Ej#)Yhyk&X<%LdjE z6|rCizGUYz5X=%wCdO1qJl{whnlOe2I+ZOx9Y&~nXt`vXaExEmleev!IuNZV5(bw< z4=s)Y(Qd!0n6Bkxpx|NujbL^Wb7T3`hmI6q^!e9VnMj^;WU?~Oe2_9t@M;1vt1>!r#dNTw01XvI(X@Vyx>tSk>bT`8qnA%ls!4nB@X~A6M+~kQJD?^C zSj%n|3D>Wg_KIhRg2uJ1tfUzt&AGX@j@>(CeF?KNLTttXMi8DK#&lR#(9~cQ`7zq^ zf&0rBkG`?_%zMv%S@XpI&)$1SM{(u*zH7Zd?p<%a^WHf=W1A!iAruffIALQ@R;!b; z0Aq5HKoTMu+c2f`sU-mho1BC|5;+-+u>li>Kv`-@oht12-Mgw=4ff1A z<}7pXoatIxwtx=RRn@ik{{Ftd&-ZNUn#2EVnsMI5^|530aRG*Cz+{G%MuPzYXpb-Y z2~4rW%xeGQa45nrewkcnIn#|0M`>!*2V3VD1xB#DAu2q1AcIcy=osK>VWE{+Pxf5< z`p24!o!5HlkOb}3%DIUcVqcgn5=+`i1I8={HIe23)Q9Ypsxj1bPP@6=h|oY1^{e#nICM6W@pe-uj(w75G z(Gc8+=7--V9a5_t&dc|tVZz2l0BwfpVuJMHh{+vfjvcun`KvqY-{A17b&KXQaZ6xx1LEoZmwUn8r|H40FYhAQyLmUSXztzmdT&V| z41}g8@^Y84lXnF@yKo}il6FbWWs)(tohlPpn1K^5g9h*iMs9f|4Ma}D65XOX?~(m2 z3hrVleVFsX@mLTZYQE!LlDcF}uszD4h=y*b=pv)ayLFTF=KlE8!d*>&IwN5~*xHtJ z<40V{ZLUJPOL-CHrde03vWK4Tso3__b;Sq5P9-Hq8u0o;QKSWXJGr=GXT#J(miVJR zs+w-qzINro4%Jb&eOf|PJXn7gJc-_qxSbHcdv#Ms++GrOltdr3sSe+nzK0x!rAgAJ z1vjSrfk~7|efSos!JMs=8AczUOHLT$T+BPRtQKT)e4llKsxw#$(m*XcX?XiokFwq# zcl=)BAq0WmoWAGcr*(LH<{z}c@aQBKWB?-Vs*NR;_fYRA^2+It=Y-(bQ+m8i^MB~u zo69ZkshC6Ho;r1^bVw zREztM3l}c*o~cI`%>~}|{q+Pudz2&*&gl>-#)Jygc9FOmR+unn-P3jSnGIT~POzDS zL_9pn_|yA%|8= z`4divhSYU#qsaBDgmZ@NPUwH6?CcL8E1GpkO zDN%!J2Qt=!{v}3RM_&dtkwPG)J1ui8!%e^8_Sd6|;)8W@h$RGKVx&H1cxg;XY4orP zRe&MVzi1Nv2;nUI=XH-DnoBS@Ie1XE#nO-8M4WRD{&}D=v0sITekdJ^0WndZ%=nqK zwve9t#FBq;OIYEY;DUH4jKg$sp(WA7brGY=qJ|rzAmRs^QitfKKcAP36U0fPInVXA zV#$j`C(HBTWYd;I?yBk{{4LUbf!x1Mx|&IsRi?DiA3XRtxjF93v}X!aUd+>iH;rgS z{NRL+D~%ah93EI2HP}RhAAJpRphbgY<7d|RniSAdhnGhor}3Ghctoc*k!~w%TVT>K zFU?6LW}4ljVb0AE<=s8hQVE>U9?xkO!m;i zwDq8+ZhPzQQ@!7HNi-gTC4^JIIfJv=X@kXqw#y%0+B9wJn!nWNw~Ae`DX+bqTmOg34li0WdKu(GT&-Wy2Qk)C*rtA6bM1;0S+n z*eGM<#0`osek%I-`@H81lX0c_R7B$k+BY~PBlOARH_ZCz=GHMqGki=5{VG)O#SbeB z_o@?tvkOFk~&m!KwSWG8D6Rd<0SyQVVo3D9vN5|`@;IvosN^;@`b^n z`6FuWw2%@db|z3C8B~T(7Y2UOl(nz4(>o8N+ses3&fBDASNpNu9Vfda?b}IvYo7f) zC8RVaxNLHeVKUCw3whJ>?(OEOE*-0#IaAwlp2n4{;8P~4Plh5W&1Bxf4 zbn5Uzi1kr{mFjuh->^yXq_ho0=yiS3xCg3nPVa!@-5&G$)YTyBTJ^XVR}8@AB=?)i zvD4((8FKqJ?Kl!1FoB5=63%~-YWNth=l_IaF4qy|C6VCrgh_2{JpDfR_MCa|y{4Qj zVaa@wK966N?#!BH&zS98nBJ4Q@`t6bquY_tR0H1Tv8Zu_I~9KT)Hd%$> zxyQiZ_SE-Xy$kF|7SM%<&bZrM&U=XF95vu!c6V;yE`3JV#=C%J+FL^7JScOTu*wfXO4Q``uw3T4c7_v(z(2wck_zo|Lhwl zdAcQ2Fm-eFGO!4}cd@{>hGs-Cs(BEHa#d*)fZ(7h|Og>llqZ8#!cq~zW6?Cd>?0=_sp(whoZ3s-S)fiwPLz9nA7-sSiYR=MTw1WB zDW0NWtZ^qg)%7=0c9UHeruMK1uc7&w8X!^8X{G)Dl-ANhop|(b zI@lXa`KW^DjN$JE^>{1o|G+mnmsT$Qci+B!p5nEnbU$PgcmFXyKK?)R7D}a3dJ3fW zhs5z;I?W&Y1yAvwqeoq}aFWH0d5R??w!rSeo<&Ppa&}0<9~%p-a_P4hE^nAdAyN-2 zkA&?y(5M_ynEdDO%RA|KCOojzW*$sY7f6lo6Y)SrE!{;>xm-t&&W_y-;Um%)Cteb|n1}}y3lugu^ zJ$>h@W|X7Z63j|Vj8+(pyGSd?C@_7HE2rS%Fi4{n)sbalCL4!fjnAn02$+;$?5#1< z&qT2&!Nyo*D#D@*S9NGv^yt#)aYgFPOP~GrRkFv8T_$=9Qa=?M=V$Ktz}J-OW7dWk zRl{_#@C8p&klzMu4 zcu*>=2^Fh-%xQy6igAVEKIRDck$ueyR<1x=X%tO`H6{!&B=}dQ4ALw8j7qATm&FB` zqJoT5e5;}mcNw?-)n*!-D2NZ_e+s;-*4x*4ZIhK5mzi4HbzHIC-`qJkDmNL3c`&I% zb=ns;X!DxPlse9f?ov0pqxN=RQ4}pf^5n#gny|0ZN-pm}CL|3|k=oBi23#Tbv%OcI zTRS^IHx-*G{pE^t^lQ%Tf9Sh|&J0DM6-}gY;7Z zjf$XhHF)lz(~K@uE@tnxlqOMjWZL$eB3FhNXi--PFliAd3zSf(F6Q}s?N^sE z3$(P-n93em32;)K$Cc2|xf4Z1dBVobo=#8efMhn8&o9CQ-mcGswI6|;(3Ih4_c6pN zK1;bk8cvXgm-1&0FG)rd01VntekbQD*ESg@=;Cob4>3*|W|%VE7~!uA_p6$MbLX#1 z4Kz#x!^E$QrqNQB-xx8VViKPF(pO0h)<&F>M$+-Z#$Tr}P0VfH4EPf0?bpbii5rw52HL$5S{gU1NP~+61*##2 z$%8Ax2H^Xpdu7e`wGwk(q}Z8`xu&IKifEAx-5wzLW1okbqlOnK4wH-2gTdMvanx>; zo-MZyMt=DUtn?F#UP;Z(>;NE&U~jt-4}daQU|ASG>fB>puwj5y*FkBBwN&>PFA z^+hwwm%qLDv)i;-Wxq|jFOt?5a;JrsCJr{nKU*9#!1Qwes_03DQ)#J#A+0Rb#K2}; zGQ5cH3p<@&(cHT|Zqb~L-MAn*o0~eq5{zjJ*|F2tR)5ft^TzF!Z+^dOH91u6$&_&8 z7;QujLwXgL8O*DddI(ivvJu{vH<0fg)KSh?aSto%$Y5x&a-whj`e&Ix#lfA zESmRSW**}y_h2Y1|4<_CLn&VmU!3wOmZV)x@mns;sw6+sMUXsd@{&vCH{WF)a%QE_ z$KsHNd|qy^&qWaLKsM-k1bl?)09%t7=W@BgvB zEorw+TiX+JM2I`qsXq8)`fkZ0MnnrIy7g^&)a011;9(^9Z07RN%^gn3T)=vnrSvfA zFnBOY?5xZzaMC{jPfq&`1$N9@$gw%!w5HVoRAP-g*sHDSQXlD7)&F7+_e;#*uZ3>^ z=eI_3V*ZvpDK#ysW3B4rt=f7ZVmRYXTnW7ty6TjtL2gu^tc-&|=H|MF|GPq>i(Or?7x<}{l+WXFHPU_)6xUvplgyLJYYnTjitYm(&OF!!M48S zdFHf)dfwC1^MA3;O%<0!bLnr~TK50=AOA!8V{B~fuS)QCyWRa3c=1uAMtLgZo{n`1 z{PN+4AHMhAdmnu8!MpFi>wZ)BBf*OC+)wgr;C1izYd2`z1*{C~?3Bk2dQ;>?mpjSr zX5u{qGh|HHXCi42gYVfP1&hcUTlvj4VOVLjb&ZAySe*x?T=gPq4wD#)!0JS=sfL< zYp4B8n(Sb363J)Oy z7+xCnY=QRk`&GYve6$O$R%`qY|8f__w$VUPFjW@pcyEXyVTe%$nhngb5Hz9P1LBM_ z1Ax&%=JUi{vkBp2Sx^4!v=xS)=+?tK++LN?nhm2N3lT+85yFVUTn)GBv%+s5qhZ>_s7sbpy z{<>5N;fXw5Xe18p<~OiEa8E;<24LrfjWZ9mT#z0_uTJ*f9i(@`=66Gi6Okn8hh~D} z*k|(-OK*MCMtcD1U@OYvk=WsyNOY1eMd^&e`fyY%P&ElD2^$VHxgO4CwZA^f-w-z3 z5I61E8eCxvn*G;M3DQM_Wk13g7gVJF3My6j>moxdp|D2< z>k}6o_)Cjq9T)L^?3r4gJxZ?ytqAaRlxl{WQ7#Gx4k#>t>UDD8PNQcW>`;pDUC}?c zA$8bBC87>MOCME`_U`_*E!6qmK6lRt=#T&sC&(O$t`U5p6m@SATcH{_^;uD8Eh7|DSovvjr))oOfyO1V^3b zbe_-5F`TDp?sb}bx5q7-%lfK=b*o6X3pOr|%y03uNx2s9B27Xj9Zi?kyxEzNMV4ec7A&%7F2A?*b$;6ph~^F{MvRr% z?T^74{oww)O22}{X60Qi`)sm_d#jWm?qtX;Xer?L;m&H~rP1)xxmJkg^XG7j7vIlX z(z7g+EShr(m4IGazogY~(cQQ0iEsUdXfC+@5-wMv*oTnoWd^^#PB_=fS9r*QE@NOh zSEb+eNbly|yqi}v|K}DRa4&YS@+>b+MW_~unfqr)FU%>svT8f|j>bm`lpD)4(llH2 zb&%7UUpFT16_iIv63vcai-)%xF*7I&ApCQ>@fW4SPCvNfg{;7~ePkNM0;9NpeVabvn>Os_B&m zS|{6W#wzW0;oa%u=%;l`@BzCtq*+EqStubeuF=zRhv(D(_LQI_yTjNA&L35;CbBJqaY#o~{ z(^CteRH6Ar2csoM#@@>b-6gn2X(ewJ(AHhcIQ>E}RN5M=QXi6MkFyj_(Oil-*kh5~K zgBqy2h;6_9^w{0c(G*=oQ~8 zWxujW=+RX8t5Wz?DdF-CD$xd+R6tljC`4*vQS+|fegb63I83S)mv$`Q`O%;1@~??^ zktEST+7h=d^(l!7sZb9qh=i&Lt2tOuH+M-?XR?m5M1+H^3qh%%>3!lXGEXr4N$i4#`q*f;K^0gL8C(@Rv?L06B7jy5hvm+ zyEWxYeJkSqDx-##hT|LOU#@wkfHp}y1%7%(G^3g*1^`iFN*{ zeGnCZ{e)0HxKim`t_~!Ga!3K4|vT)oJhUQ1YpN>pUuvx|y ztFtTKu+VQVDo=>|?EY})`l0%S5Tk}-b1I_$pr10hEaAC=S>Kb^+oW^Jjz117Ng9Ya z;<6}+=D|A6#Dh!hw6V^LYXcNT^UwPy7p4v^i9|calVy_!RYU}oMZ*gpWTI^oLk$x{ zjnCj)iGztWSEQ{r2+i`0bG3m1?@nf!ufjjP`7*tvtU zCqWbC1@gBX?!UX9Ah;?Lgzp>g$OFkP(%(wI+jzH>?r=EV!=;UL%1?2+9^hchRx4Yq zwYFV;b4^!PHkY2xXDsSYUvh8RYO?zPv0LRvB{l}z9>W>t9wf{oJ?`iLi^%O%ktHo3&Cm0xWB)Kb{NuW59h|yi{h_C z%-w1_Cv&}AKpw%xj1lDNiiGob5SiMFFgAyr6y_@9xI}Y1)6GS97MXYRZr;r+n*Vdp zN~AkDCnr?kM%zFxEZuc$+K#S-JuL}4&&}S%9kt;8Dp3}h4~U1JaDMg{i>98BJ=s0w zAWyD3H1N=A?O4b{jG%HZ-t_9L+xfWaj@X*!S5DtcuJ2GCu%#ch8Lwj$ z0!q~?SmkgwdnXmZc}CA>98$*v8Ro7<2rnbaP?KPzE2Xxjm`**Sle&$ZT)3%4 zbAXGgb;i^}vu;e-PxN<~(;V`RQ#ySdt%Xq4sa5J%cL;3S%g)`_p4&;=+cdlHCGWiU z>h_j(=W!gFEe^8-fx5t?i@_<)pkcA3NS5ywSKm|D^{VPE+GVW;w_Bdmr*pFCf4vagyUA^k7AA`$An=dR8ZK7+dy2-h#>ufCF5vaJ;^p|H>6= z8>gcTMpD>&ORjF6n41t>6a$5N&?XqDpY2_0ktrD z+dIQdF;DAXgt81(Yp@||vM#j+cRD+zLYr?MoS6UW_`)>Ed0;XOFGzU*ba68kZe8~( zI>I=ci4`<C`GsO?3qB(%w z_$qAH*_e)@0-*}?i) z9NVGP7#oXEhX6^4#X~kn57CD~xdVkGv@mtXnLmvxN*I|RGuo)6qIp#us1$oT&(JTJ zLpsY0^da)@1vnO^JcT~DrW$j`6sL?Tj|(UX8)BpeYX2>vKZ(Jf5Iu}gI>u@A=T5ew$gci;CrcHa8o?$1US#P>7D;1Gf5J|-_F zwPuCjl=D&8NW@jQA0KUqA5bx6NLd&XFZ&xO57x)d-~N6lTS80KbOz9HesK7Uu_dwa z!h`W0P#%UWZB(A}ugCOVY;UYEMX)-9U1Z#9C(1A#6ABX~6*$zW^*3ps)<;ovNtqH= z4Pb(x)oONRQZ54fieVD7?o|1>jhdheC4e>oW<*d%53Y4N@RH$x}|E8!XD>c4F zsTn&zX&{YGe4(jeL8rYtEN8~&rwlCD1e!FsR`E52IF8>D^NVlC08{wTO=!-TG^!Mq z{3xJ=g32R8iYH+=06<4E!-pO{+9pErN0o6f;|CZMpUa(Yy112NFgWC|>~1^rLg_1^ zIyJ7k0p(#M%<p|?1pT(Z< z{Qb`_|FBBlH|ohXVp0CxH3G7W(;-MPV^AjqOhM^vhHu}s^UjJalDXKHv9vvFwROo# zGC#d}=RtN!+obMuS`Oj*-q%w!Cmw%vM}qO5YgaZMmb4Xz$ht9jJ4=N@3+RHTeZr;r+ntL}wHDw0GkP45~yM2VeJbQ0je2oxOFUHn4rtH1-=@}aA zB(1q5(V>O>ICp2K`dC}s>E?vfJ?f+O*aLUx?nWwRCwmQP^4}Q zIlKFJ6Z@`)ql?Nf%-ei)(U$wAKTz$J$sxRpo$b*y&ALh@IK!hIA{$-XSp*0DFg@hn zr}d3fxA!F0wM5r;Dv#dN?1$f(ToRc_40AHD0(xjVnP_u$X4#2c#}!2Kp!bS>Qk%d@ zP5Sh)ooveBl+&UpO;o_7&n}VL94vO5&i2^ohv(SnEQuayOX2OCNi}f30~Z6PIpkwU z{E621x`#z`kAZr?JdC;Oh(4KIpDY2$C{)k0+xJy~x6o2q; zT1`Vjb*H9I)SlrYPtGa&vRLySv>I`QMSVrGJvt^Q%{{K4eITgNC>$F8HOcuFjo1>JB5t zW4xmIBaL6O^`_U=chpDoqzer8Bf3OP-q}m!>|rOzdUTkuUVrcG3md0GKN<|=u_<<#<2d$BQ+j0`o zjsXS@*b9S8!-6UC1MW^$0Qkkm@IX^!NHG}1ia{pz|5Krn+h~aJ<*DM};z$T{LrNlt z8mP!VE>{T}21Hrx{kw%eCS_cy|3s~NjK?G9Z=yA48U%Ly&rw}i!(xflUM8@~hA5|jiPExNx*}a_vh*h#-}~{Nbtry3S)qX0Jfu_s*Li&H8#0a5 zX=Pd2*00VKj3|nN4(@N546gSOa}?b1FKw857v*%3XAE~X&k-FbI*z}Tuktgz>{Btt zzYLL{lb_SaM}9Hu4l^I}k_t~9`&O!1*pS20JgPXce|dzTDLMoQ6rB>*dw;VcpfnsP zaMTP&6ehm$UA{C9!|R5KkjR4h!=ROy(MACuy#gotN%NF(C90p$naH^Na&tX-(C6q8 zC&qa)-(7}En_JM4)Eyhew!i>>k=%J!H!ZLn0CB}glhUs^!lyz3G`XKa3y@BrZgQw0 z9Mu=l)yEgapCI2wuT_sTY6oo5ps@oyme2wvm?Sul1M$5xLj;cnH~il>MgD7rHr$j+ zgE66FJ2=VpjqOuWBOMj(lZK`E%lZqJG)Op-A0&eFX?*sz-QxfQwD8P z4$@B!G)xANXGp0kR0kuu>S=S>(_3SM3pMLcmtnX5vO5<@mcgY8z?y)K3fiRhsdzb1 zKXF2F_zN523$E|%VC@|j+AmMco7Nvhe*NUJ#Zlw*@qUJQpkojv+Dhv>)^8iC@py!V z`lFCg5i_8SLXc1-^EV|9tVkJDl>`>e;EDvmf5v>3QfK?Y!6Zs1uSl%`0`Vws5IOhA zyLq?Ax7m5Ng0S+8-9&v$?NXmHZ?)~*bw7KBxH!j=x#ZrG1(wyT$VY#slL1CFamZ^> zc~TEUlB)+z;AH14|7fvW|8>#)LBKTJQmh%8vAo-*hgbzE3>b?gxT)lXj80qU=U+I| z)5*ex&dltd#aYgb%-fkcP0QD`e)JhRe~~HXoa7ns6wN)2-M{~QOm1cNeA7NCHcLE_ zFq=?=dP?vV871mr%=ys|>X2!izPvUwdOs+tQ5Q%sJMqxjjqLsc3%U z3}z!zQkA@V`~BzA4!IyBcu?tC>DT24$MnD^x+9&buTIwVo$jiDtMU7X@9)34f-G8O zTd<^a=^NcyE6Bn{R}Gb<3tdAn?$Io6(KU>{Gx5*A-3K}^ap3< zopS7_!!rw%*$f^b2vlStTC#^xLZ&p6nuWSs2|LBuqeOe|R@(l9D>hMoIPEpYO12Zj zk~C#uSh9u07EyLfdx1zuchuFQT1HRiFW0& zUiFE##6y=>?8GOMv(6mA+|XkqeF}WkZmyl2v$mwxkg#)n)XA2_+TN6-_NYS+Wo=91 zq0Xq2opC2S;_9vHqrkgc;_F&8bzPd{aGKi{$Iu(m6o0rS@o-l{UAyW?ySlFB`hEEV zp*{z}l`ow2{0UGuziycvxF!$RxXbG4$`8ueW#D)Q|#go2Sj>phg zNIe1u5hj-0&&!-^n7+5qqw$|8q@_E4$_)+hLtYWl-8x2=wNW4&&zAv+40;J{t>8ioDUTbsQPoU3SX&PN?%~{F`lLad)X$YFA>Kh9 zo=}i_oBCuWyB0{s&3Whb6E;pAWJvX?N`r;`g`$+1yH?@pcS+lG>(tO&A$LMhhF%ZB z4&;-8ND(ZJhiDE>ZDg@#<5@E={`O_Hje^TQI9@SUKi{`l0le}+{foYv;-0FE8@x&B zU-D9L(M!YO^)^QNR;dS6sC_p@!}lEmz;wR$nf%nqucm%cv#y2QgS!?-dq?k?mvX0% zD2xj+Mk7QKj_I)6)IDvrPynGaLqrC4hE^_!%i~SU$Gtd8s?r5Mg%M9~3L8@r5nQQy zsyxoGA}Ode31E%Tk_4Ptc!#0a!?YV*95;Dg(iL(Oe3E_3pMH*OXA8Dj?N zsPj6w1laB_{?!2M4WtQ^W3;4YP(7tAmRa zp%Aj+7B8cS`TpfeLB{w{Fn{n>E!TvUrcPcrZFA#}Bjo6mVpM<>f6ztwnKgjMjMgc} z6osSyG|(6eW(!(FhLa`Wg48y0h{Q}VN!wi zBKi3iX}v})Z|>hPW&O!q?l7u^@22R$=7oIxV6T-BMW6zWjB^qNVml zi@URzwk};x)^Bu*G9a|eh4Ew%XDLjQ3bj@Vl`Y7i>ECA=tDx znXx^kMU&(hqlPv*h;-QQz4IPPUmz};j||M-CGePMUddfYn(q-y2d#}lh87(>dC(Un z8J@+*cDnkyy&wAEQY;zjyABGG>$TDQFKksPRU)E5D}ah6o|8%wA?3GuaSKR3D_@9sK3LRVPOOq*VCPSQMA&L=YR1=-p#vt zH?L^^&ni05QI)n{c1gKEXSs8;w>KvrZHqkSP<;pA?u}`?NImsYchP=uiVr78dhX0Q z*r5dJ;(U|h1bn;gNjrbe`Wj;b%kW^$be#A|qPgHX>ewX*IdzuN91J=Z+DOBv$J^3& zIyE(2aWx&P>TA; zlf2`8+TP16_d}LoCU}n49RwGttc&$d_qeoko>j^{N#fGxWUqeOdUDmyOS8A%O5NFz zvi;JWtu32=#_n3!v+1j2YQb|fGM*yNIXOI&j-m|t)4LukMaJ+NC_zrJ|z$)p_4g=e}LWxJwlXi3QKG&_67Audh6O zBVljD^y=HM9Jm|1ON8JaR|}K7Q~6zQ(z*MIb&bi@_md7brX0GJdZZzxz9r#ktERRs zxwavGH_qDav|X29-NmhKl=I3Q9v%=;5Punz>YXn9!;0qe_smHJHfYlk5fPrqa%_>2 zk)E2h+nMg>v3QE<_wV0NNlC$ThYlV3-FM%)HS~vM?!O~>BMubqa)|YwgqDXM|4U}N zcl&!om}{vfuNFADi`PY(?rVkSq`#9@b@|&3|9IB6_kip`5F!L|_{{@~Bd6p~{{b~U zTKdB($0n^jKud|FQI_@Zv^Hz z&0m-5SC#T)8T_6R0fz99;^?tuDUh}$r#XCPo9`YNSrQ9!F{NpjszFRfaOhnWtJ%W7 z^!oM@h6K=uLkbn(KloR~Ao&o`a7lwi{N|SzizgN)4J}aknBoUi#Z!5@G#1q9pYGhf zMw*`A5EpC!v?LPlc%ZAX^L`bI0Fye{yh|!=$_bXR|V?NBF0l6jO^O@_;m~TPdlUkDO7!ics zo#$UDmX>K7M0z zaHV=sRoL+2umSohPr)N>N-QLMC*`FM&({Q)v_4Sb%?MqLLl42r>t|kY-k{ox#Whmf zF^+L5mCJmJAkM0X6>CSAsDq8sgY{E@dOy{T2Fnppv6Yl(WBN z$+%aBj>w`p?=k>(66@L%hEe%i|IHMhj_VPyrvuGn!}sQ~xk|)KqR0Wj z2&C#@vj)~_TmxI3M?k)2a2BcRj>(&KhvmeW+(fiB;PF9*sNgc~u!5vDN7mBEL8%Z0 zHW^`YxxL(d(h*V+|HQVqe*@0N5IxGMf(IFO6qu}`FF&8JUVF~iOyvwh)v+*hC0zanvPxssNGOi^ft7!8HJJnj$XSb&@S z3d0aO3huwZK^;^WKdNYIU`aBXBtT{lE_*RVuSWbS%2Cf3rW$_UimQSeFxj*iUP0r{ z9i#I!sD$B|1XpPLn^b==$3MSe>V@VD^qwL*?hs39_aQjwN8~2}d^ENw5k(Gka*Quf z4F^fdm^9~`)uwAZ+oh?RC|M*Kc}#8^;M`X-5xtWj@AlX?2VMOzw-Fj@ag*yJEl6r; zBhAe>R)cE292uA-bD1L}yEQ$F!Ms;!r1W5Uf$QIRbEMDQr)*?;%l z=O601dDv;r3zEkgJ8WYhPz)2ugm+N>7!9sq`lY10k{7<-6h`gJ(bgWq2ou1*$Oefjdy^EGKIunv0F!Pec~LE7(=mOE7TcXT6}3)NaV=+)J3g+tNs z+ERi}f(1)D7BB0`$|8$qUN1Be3tGi6L-KH%|83FS;qKY;XfBYl$B6@zj*dI!#tUoS zyuN%@>#EglIV*l#^VXG5KP8tg(4Azuxt;eg_`7gM;$u6W-p#vtH?L^^fAYq=LQBjI;Q$;xAs^^%07~J6{A%rGeA?DRjmle6t z1)5h%c+RtfN!C%AhmL=w1H`fTEV`DZfvGa_g|1g`5psi3xoylB;E+R<=-<>i&t>mB zJ8w_ZUoTPcdaoqwI7Nx##`WcO&~C#WjaOz=wI}ZZoTNSeDBRHP3DrN&+D=aJl2*fF zSZQXwQ_dR~WR{EMJ9pYzzP{Wr{Qyy%cElX*&{pH8M_JdYIMSl6?W;VyH}_u= z&6~-c0GL2$zdxS3n|uU?lkWH<-O9s_iruY$I*W_M!jQWzLx-IwuEcaY1Y?G0qYdV` zmX32*X6$H7sE0$mOLMd>@xb+0z9#jQ*WN`u90#lu-$_{1xPvxoc5J?JWJ&oCGdK69 z*4iWMtlHxZi3fN^?Jez|_CH=~{OUq?`89D*GpX((2fN9BD>+~z`?|=XF0#LcR5#O} z@*deAAnR2E~L05f=lLZiO?cJTHby4UAL+(PY#7&nI6K5 z-qh6eP--at##1+!z$}v9?fEO}{`9Lino2LP11M#6lilgydfSv(X4lIiJVw?FGx$#V?Cd3pL z0?}L-eDqqXeb_0V{w}e8aH)WXZI&y8jSBQD z1QjWvs}3kvfVDmQ!0HYvA2825HLyb|ur?CAwm5r4Ng@t~5AZUT=xex~)}Yq- zl}19i57jG>T#7ybM5jKx{*`t{rei|C{b5S42d$+q4pb2O22<*?qmwGTYodZ)$2Ge@ z8(x}-tl9x^Wa|}yRmq^457tGFEe-dpiUaz8Od+^E$!jldZX!-FRyH>r995tKj~=$X zm#-X#M9nf~|6*ijDnd|YDVR+suoOthlzEQ0s*K{JnNGZ$cl)nwR*6yq4^9W!y6xu5H?OT&_48}1xKI9U z$;!4bS!~Zp7Z#^m7c6uvU*5blt21{)+lF%Z*CUEBKkr?=jD=h|y;+*tGO<+t7! zx9=ubuTxYKW_k|0_*i0Xe}z&dH~WfmSeM9xJ~@_F3Td>%&VnB~$!bOa$?iZ*mW3V) zd&3*Ak;QZE8FQMKWp`!ekOhk`f3uC)rD2StJ=QLpn9C_8NYs}{3-o%V8ixl*o9nY* z+eL;>gpDMOPxhZ6KU^mr9iVF4xgL4Qw9BG7eD@YQG_bk?4ojzv zG+rfpcQr3x-LrU^GcyNrxpiTdEpyea6>pO7F5tyQ=2#bgg&wZmZ^_N;#Ac<`RR=V8(#3k&A*|cK`ZKp=p=Ex0 z_p&#-pq^*Ux>;bNcoqkuyzH`Q&fbQ9s9D^#+1+ywk33J7B4#C5fBxyiKi|oDqdR+* zEi0!hGov$Sv1Re{dn?|!@cxISvyBGWW2!8O9qk#<>;m&759YqBNud4K49>-xsp+bR2m=uOGfMieS0RX+9k9M!^4MCws-N_-bd&De&d*Cshlv zyKc?=2F>Rb5=03vc%xnrk0r#7Ogm)ES)7hrtc^k7`;g^QCz?|-SUn_~3trLuA8&K3 z&ys`{?0q^JTMJ*8O%MOF8#86`Ep6)b^~7EI{*7*75Bfoh5HXa_`vfO z+#mO#?1&B!fQ5-CQEnRHyuB+fqLq{y=>D|98{25Ej_trC7)pVIJv z^2iZ}m}d%;X6*ccbsBL@G^aQHM$$D(m-_FOh}4UOXdY;a2jgO&?G&vy^8%WqM}PvM z3maAj+VZ3jQ_ORP@kzz=E|A7}^OErenlU=05xzLI>?NqN0TuCsOEi}ou852ze39G> zEruE%JqU8GDbcrF{Y+8f@#b^PyTw;`9Uon&1S@%fIq@lT^gwg?s3Of_%LQ6P#Uhy&%`H^}Bco9#PBcCvOoG$9~!{64B+rvs?fKi6fi8Mv%!g#uW1q9G&rp?8S zD~&loj#wnW@Ne8`q6S?e_S_;3uhy=CM(JOr3ev?7(IxtnC(^jlvKV;VL(3>J0~Yc* zr7OUHcd*4Bz6*95G|92V3l6-Lz1^ptS)USONE}kG@`FiVr+RuzME|PTekO&FSqX&~ z@*;506?bYoWqnV8_?}qtT5$PvSfoSCqMtS;j4Dit{XFe^^3zYG;pN;kK*_;0hx6J` zHyO2xVMVboZb;hKd!mVScQLf5lS<)s-Ra8l8{>R8NA#EvPSxtgr)pN!j} z8H&Am#GFBl1J#1pUsWl$L;N;=6iaEa|~~S-s4*ljRplM`@>6ANTUrk zhWVA@cxqnSFt<}0$2mG9;(nQK$7U-o?>XlR<#RdEVKopiFJk6M_7!a*_C(V%$jbeU zVS_i(^Zv8}ak8pVQ{1?s$*B4O(mmtI%H7?EdMTcWKh^x>i|eN2Y9CxVF-Z5^*fNc8 zal$||VBcEk$bgs+u8JL8irh{$YBv4`C9-f~rAIX@eEqC%&Q!ay3VIB!-#k;O2!`ri zreHauh$09NEQgk@oU%3jB)LQHCsu0GM`5FlMsapnsKkXUzhyu95fpWl5K!Ymi3mpt z_HdLpP`esb84afYaHMXQM2{?q@zrbm%2Ngz6VY!mqImKc{S=h4{Lz+SQlYMcvj8jl zFoPBHu#bDtFo-(SI(u7!SK1=bE_V|9IuF1+5khuw|K1z#k|}Ji9x}S)nAcb>?fZ9M{P4YNOS5g6OUeAjWad0F za{-x?-kOzt`rWr1ckQ^isj}BwzvO6oq-{*Y+icL94vbMNNeyrTI(y{bfHWzZ=}-c)b6{8>$FYPCJA&ZazWQP$a& z_4iWu!25(Y@OEiJU3$GeWrq;6k3=7KL?3BQI&ya2ZW>C(_$f@>q;vH)BK!S%*y`GW z7m(;Bl6;MM3woEBztbv>tzs9X%w}S1VId(rO~15Kxq?}(v9fJu3;QceYf1E3XIOnx z%7HG$iJPw;X;?=)>1Aw~WWTbya=0CmK0=sYin#?Hm>n!HMIL@QCSJ?M185(eJY}cy zlKVyu6_KYSu7w}V=ag4~F1eYPvZhkhf}$iL?617wu@X5+o&$xE3JQeWZykL z8pbx-u|=2H-;=v3`{6E!;tWCyi9AN4j@VTD!8~b7sJF0aY+jCxXHzIUJ?3=DBy-|C zqVpa>wd*4H-aFZ?s^j8nyR`d}z1a=F{97k*Kzo>}LvnrICl2`FS_wnALBbZTbXp~? z=zb)ZUny@++1;)=2!MWwtnLze%(TrUm~yFb#*5^?;eSzFn9zk{cT+)h`FoIH_pt>o$H6xnC@ZvPCTxf`DX zJGrD&d%DG8{r=Br){xyl{`h0}b0y6k+e7d2A8yd-rRTaub8Ox-^_Vv5;)OEA7FB}m zgtF0ctTl7%`x8o2{PaN9O+rQl_8QJs_(^XQ z$_v5j_q^@6Pk9Wu(gRDQp7>VruT>E*QNwjWBu^YvIT3*7 zF$GEA-#RbVGH;NM2^$k3O~QKY12~B(`q_=zLv81Ic6A-;JT?XI6l zhF3PYAk?e-hOOyh%k}SX{IvDZPV@q!D^bruH+%`(w7Ok#-9$lS{62srSo92NxQ( zLjNT8G38`Dt+evwWox;UKGH$uNSmw5j(vwi`Clp``)`UIrHe*`0@?_Ey#759?VD_S zK_D4c9tm>GAlQ(NNrC$0&|)=O2T)dd+N=oDPv2}g0~nsoMOzc8p}6TJxi+QK6>sX$DrQpy`K}M1p(*G!R%o_@VU%(?sCl2bQUQ%&>1qjMBaI4DE!7q=5Uf$kC;m zJ^YzAB0zoL*>EKCi}<1CxLRV69Xi~knfRr8$DPC1JDO~q=mI~v@p>GQ$(+`*Vs`85jLs!<`SiJtC5w6&XORUf$?TQg>8r?%Ys|OHU{#`g|6xT=+Vz54 zcQ+AaD7LFJNPYk(-2|AYMrM!TpSwkBXL3qjDyEw{Mar6DD?}%oZt%E2+HLaa$wXCw zLcMxu+l`fUHIZ+&wJuxHvv6_evV|Q>vK!ZYLfUDC%SLaIPPu2g)84q^Eiwnyg6yW8 zrA;fcdb8&BRBa;nJIK9W(&k{bF}mE7yLPP1fDT8qld`XzbU&~#qPfsc;!5{*F|S!% z78|74?1-w{tsSJu+_Gx5bHOsQ{B3e*KNfpk(yU2t0A~w*YA2(g&>^|gY;;hyGZlc{ zG9iHjreme6IQ-|}@wUaQdX{E)EX}ZFrt|5G`HTf*=Bp$#yL&?}Ba$M6fP<{TcJ`0d2cJJDj{n>A%MtV`x!Jjrs)f820;t|a$BS1hikgq`u=J@eLh)` zVNK7pFU@ph&c$wbW@h2~v}7;pSe((Dz1+Dt3sF8rFU3$XZAi&9|ke z_b$n{XJni!F#yX$&!a;c@w&;88sY8t$%-|kR7V^gt+Y@eE84EYGXwUExU>ZeOIbk> znC*+tg{2wx#nbFLGr5d8WPS$8$mz^n+MT_CEJzm@EOo3e!eMVDVzd0&Y38}4gNzGZ4)odE1mV_P8S*@duld_V%c%0iS6|-X|Vv7iGT>VJVudw;E(- zDn<+BHg|vhx$j=taVzCuYkWR!oODN2@kSI4xJ@+1o4 zuldb?+h!rRJ~%JZg>{J}V=S4K=<+(dq=X!^YusMU1xc&Vyu7`%S+sWfellN}_hb+CAbKGLF zz$z}O-fpuw@GNeW%HP-DzyA7bPm{Q`-MMqeQ!#%?-FRpN#L10kaqqw{@hsl$_u3fC z!Y;Lv@O@4w+-kl&sUMw}FtkbwkOHXOz^4o`C!D>397WE;^gs+N^UTY~lxYx42mvwB zsDLN^nY{QWX5q!ivi5Yrz_PGWWhy|B`&Gt1U8Q_(V+um~3Qrlw6r>;<6ISt&rD37^ zmwhUxfWJJvIN^NL_jD|3`d-8kwI~({Tm@>x%s!jnPrT7dt$#L^ZfF1$NpI21OuX8pfE(pC%k4S3yR` zYf^ZN88N3Z0mhi2x@e@Hf@JdiIs{$brem#0+k{2QtHuceFR!U(E-IBS1e-f*m0>;{ zk^xn&8PoC7#*)^g!ZLD7llQ(pv{D(Un>?y8BBVs!-QpH>s0pBhR`1o89Mu(P#KUb)!?Kmqb8u0m!FNhzoIST4L zIM;vJ90dw_{%MT3ty4C>LZKph1zrkFb0(o`P|^r2iJh@~HFat;Zy5LoB$xV`RU-@4X@v_~X-%FH+IaVH$$WDnCxgBELf+`1kkD)H*###F zB^*V5+gt|_vnjadq4o}{hzQk14FlG^JYn^=zZ@p#r&cTigB$udgk9iJd~^s4)quJ) zyiAElqB+37IDXQG+1u_MfjWbk1umYi>h)1y&6uz;enfFh2<3jD)gTsz{gATcVR_n_ z2iAnGO^Wz5enN5d$YK!8HL!A{PXgc?To^+t;*i~n4?C(TzUWp}3uy*{^+(c}z2z?> zO2Toe4=#yEJq8RAgpr1rl{8gVANADc=zrT9H==lIBR!HL;|%@gO$LKFSO|^C=0(H_ z_jJzIchKsA@&?E%Lya-My2wD225xS2W6ZB#qif!}ucz*-i^k`^N(s^>P>Z)AY?z6r z1>jTTT;q(R?uBphznWhJkLAU}G*nh#9{1l8?OQr!gg$P#Sv{Z(D3$o-2S0D8c6V}> z+<$RH0>pF_10b4*=#^7)lTO%w=w`ire^WGf(omUB(z~bmSi~1I;Oh_6sR5RGsw(Q~ zO|;fxp!}E#B?-?K#=mu@^gD9LLMJD!J8$fN;j5{>x}^RU34Ud9q59Y{dL;^4 zKY}F-IlDz-ixT-yTsnmJ1`jR@7Xg0i1E2MiM`G`Yu%U= zTA@S`80;C$p8dSf`+HO=tXvk5Nqy24@L~s)QnE@0)spB`W)0OVS$QT|r5#r3`-=+U z+UDA7=>md=F$%FLSkZYN^0-+(GgN3r_0csR!v%tmpmkFr+J!}qzJ6m+H0Br1-36;P*JI5% zK>48F`4pvDs~^^>Jo1!#t26FqWp!?N_saTryLav)r`w5fh`O?ZSzLCmw(SX8$gmqM zj~HcziA#7d!s^h+IlCOBx9iH<_l){?JaP?c5)P%NYfZM{U^$rbH0sAMcQM+#Ro6)qIPTu-&U)V`%l4`?CcVO{kuy@cPotm>0W!t4%xp4j zVE7}>(Doy4NzM|3<;w5hHLTX#WKseoi!#lllHtpzP(X9XpH8*Xq*LEtlSR%$Gu9IceJ|h1j??Gn z{Tu5x8nrsg4${&F2u7puN>c;rI=fo!*2&Nn;ZdqB3XM%cne4;a>4BD3?!55#ZQqPD z*`Kz;o2j?TltixX+fhR7F3NMqp>cSc-uviw_FAh(>q?UwGuQT)mEoNA279HcA%s?e z814>)4e+NZZmwES_pe=JSFCbrR(R7fbV|_hVb!;&)K={(bZii1_WcbX0H$xF7CnAa z_R)|L%9I;vryHGLMz_&zR5bso-<1TowQ+#g6y1EE?0KedNrf+>$r0IXi*K_;)b}Tz zB<*g75+r?e9xmv9kbDA)ur;pT9MdwGPY{H!gE{#WiL6C(X8+e6w2P1OKTuS6Jb8f3h_5&0xseZfil`&cJG!BAP=C$xk0kxOa&2jfrL<6BKJ zZPvJ!2Z`UYCHMK=<8L&0GzuPhLABQq*JO^ZbBXGpbi1QkhvJ(066=hy%^u15!NpCs z+*=%H-s9z~ygUq*XH9moU71zDzx2n~_bqB2if@2u4zD-#cf@IenS)SJbKEI!h;ZWJ z>I8w{it8^kzW;Ng$ltpm$#YX{UvfQwFi^cMF^z`U=AQQ`Rlv?8F?-=>kfrQj4G-`u=W3**q5Rx+4;(izk2mbAfa-k(r4{9XqR7^(&AF2~*Fl?KUCOYE`X z#Hzmdst3u(nB6xpo^Dt@MJ%^m* zMDx*ZvwwVz)bHno20qvmn)OJ*nwP)p>+An!>L$NH`mq!CUkOcL!? z-XJ{@pCy5;{Zt8<+7UDJ!hnE)at)abB4EwH1-dUTNVnEssL^mb6x{1;;DU6W6EP-{eJB;$!Yf)8|9@i zR1Ri|pc9Z#k}9VUVy>f8A^R|9iV0Fj0{p}n5PGnJ$x~R7LzP}x@eUF!rxeY7Hh%$l z6i=2WB^PCP5xbA?ArAznLb@u0E6R1;-u|2IiBIQ=0MG!S8E*>U_3>pChE8KGi^Y!> z&i`fE{ONfTAm9VshjM#c`3t+_pD1{3Qptj63Znmg|E!mH#$P3!nj`N5%rdDw2Bc{W zI|OK0`)B0EOx-P-QWE>yg2jUva*C&5s_r#|?}6h5L;B=W3TBzMI|48Fi-PdS%A+Uk zi3p2iVd7z;-|}VHsE7Mf=&N|>qUfl$IIVdP8LeMXb99uYRM&Z0ExwBv@f2=qR2OS8PUlm3| z@&ETDF)!{)LWFGT?Ss$niu>h$(W3`qCltg^L5-w121&eYYPYz#tM^UPi*gIXawn9F z@KHtGYu2{J)Bc-|;9e1)!V^4Q1<{=AFZ9rWc+X|#!NMKd-)&z$H8=T*y$S!mKjyK+ z@sH+5J-a7q&X%RAg{xaUmxgKk9p4D)auQqVjbpR7rp(A$I=N`kl)S{5JK|p5lC1mo z-CN`Vc;(1b2m}T3ky`ox0SGo4xiY%_LoQDV#W+*DadUI0E{iBKNUAQNPZ%! z77iuO&0@Go^m58?(5}lhLa~C~h>{`QG`5lp>+}av|9m`3z{{;7>2zt~7MRXphqIT5 zmvb|RlQWYAh;ZrPYvBm6upj-lYs1?{xsK6fLjAXClq6L}-ct8|@;UK4>>QPnTfO2U zIdpqHKp!%)LgrFa#S;|*hdR}*Q-Dux%h14ZJ)l!R&}WcSb;L%Y?E{?JZVuYQxQhoP z*ymZHkjoXV=|8);mOJVYcyQ;z`gbg<)r@>K6jiTUZqq58oFq&~vn<{l@YON|cQS0G1NB4j~RW`V8 z!@Z&sYL@35VlKilXNJu8KK%3G>NP`JxkV|%`1lnHmzo;PJt_r(tSnWsa-~(Pz6a6# z(m9muy(1ckf6V%h36VPCn)eFn#}9h%tzPe3u?nY_RjM1(zHR(+H)5oN?Fc@GbNAB| z;_ltM>8st!)lPYqO`8q`N0Xr%Cz~}R4IdDPJiYt9PoU0w z{ER~wHy*Leh0F2<70!D;dPN%DMz>MX{HK0b!gt^BvmlpDLDl8EOOARX>TFSs=J-~p zq;)W{(ouYq__;=O+!quK++1AQliXsEbl9WXAk>~u+lTp6AWffkU4C<~A>p_$uHF`3 z>lN2|BWsPxb?4;AX>umzbugUKIN;^ileip1h(AZFmETz+PMbvy=ETa|iw`=A?%{rc zn}BJ&2j}RaLi-(M6DS-ctO+kcqG|`?zq9@666xmdS@_!)+$LOfkkfX@!JECgZJw$J z^mT{1DymB$km0rcp*sjliShG-cpymS82Ty9xD2} z`EETfYlUY{f~I{jbzk?wQ-*|AQ|uX+xD~rcjv1+EI>1>CxYZ>PDFk^^$%m}s2D=y@ z^Ex)X)fLq-7}wgJ)HD>=YL0I0N~$JR^ya}!?0~B9dm7;R^A>V#L-jyxjX%1>6VpB{ zZh-i1k7^e__QPDjA{K9dLZ!RXN`AO95g1L7)-7hh^_L7T3S;;;6x)KeMNes;G_40=T(P> zVo&)Zo1IZj_V~vB_!IVbI&i#jKMHI;S{b}CHL$Ux0%474b0wU4li9k!#X|i+da$wqeSvcxY5BhFPZ~!eA~T4 zHqKVnMI680wrq0YoJj?9XOzY~lb86ymZVL$b2i=C`qFMOWWI?&6&FCMj2>4cd9ox9 zLNF|}CAS+*9NH9x-g!lf#_kP!q9A;FUL15=L>H!>+Az#r^bN%E+U7-%?*qeu#{B{J z{A`I>*YOeJ5NG7ZjVX?TUl_mgY!S87LOz~W9ySgD=u$B-FVl)ZZkY>41T;iQ_E3;% zm}F7xD?1nEwC8$gU$@;W#B~LEHNGI8JHXu*(8ZE3Fp^m6CqnpYAjsCFGBV3C)r99k zG^MuYW4zx4Hg|X#RLn z?AU!tfQO)lF(WT>!v2__?~lL$%8!14rf+=hyuAO#opIAkVJ@CCIe+dW$E)}##vu3n~{ftMAX#1(MWxq zmP+@}S8*e}N z2ffvV3N-ed^Tn_1NI+M?V?}c*WxjacBPgXDh@X%%AH4!NrcdpSMh52O-00`GM*b!* zW=cuKqs6nqkb!xBeEyuVdm}bgeEzM!37nsaSer-nr>JZb5 z;~y&$0j={y=>o91VVXvJ#DsnG0Xad?<&0dEg~Fhrzpy=~AIc0%F=&AwKB3YZ8z5-? z6kEsN5Hg&jg7?Tdi1~~2d#3G@JW@(|-%l6K0|oxsg4ppnQRDJNAo7pH@hT33tsb;` z@ZZr`@SBn)@XO<~fOj{!bpBI$3Ca0-JB^Ste||0pfw51OES{LZbjFUP-{vl!vw87( z|9uBbEqX{bn726zpAPue$02+*Kl=6UiAbzH#E={DGO>n&1+L#u+WYE!8orrWi;TdUU- z6F%0!u%Kz!`a{nq8-mXLlSh@8)&a0GQ% z)+clnabW;(@c4vTGPoY$Bxmd0_uet6^*(h5bXACr(E;6(4 zUmnoQ$jX(l&pV`Wf9r@wAAo2sTLn;wTcd=I98js?z6boh?+;&)_VbQQmxuq_3BQg*XJVwm|si#=>Up-Smk~oyjUR5PW@UQlCm? zmdh;~g>iRz3Y!>LaVA5uim1tbh!YS{PW}4T$L#|%q z^#MQMJ%-2L>+H&2>z644a_G@(jVe6@LW?3LAeB2cSyoj#-ZJ()kSZtAbWe)ftDt2M zr#_urz0A1+o#yRZiChLK|A1O*(V^<2G;Y~NY(tdN6R*(6v2IV>2gs(4nxpZ@v8?q;^)T@nYx{YMU}0MHiPw1vU#vM{c#stjr{b zD~LU)15vj26^0d8u)-A4eh?-fzi8WmxHge1jGo4y<2JbDd>xO79Zu5o1PhHc!iT;${C|nNQU3$PPKIx5V8i<1X zxWO!Gc8WV3k*&RPm86_Ps?h-E;yvdcR>=7rCfB5(n!sy(#SDXXd{d9))LRnk@4i_FRlbk{9e-W z`%8}Zt~hyr@qzB7{oa+817Dsdr~PzFadGx*EL#G6oEGEb9Dnpj1Dw2W*cW|XEN$sv9<2#1~66NH1|X`yQ146m-i($A;8liZoIqv7$x4&`wy-; zOQYF7_^}vqYbEN1uTb?ToI6_|EC?5SKwSuO5tVfa4nnj!&8iiQ#M@w2Tje zSwiQ5U={p<8_Ev(cWET7xMeW55n4YJd9G_wEylso*m*X!fJvxyE~xI0t~1A-Wg{*b zBuy8TCuxEgm()t{F$c+2*%7n27Q7v2L^FK%LrE3(b?qoWT&-yLg`Hud+U(&q4&>fN zxA>wiIYj47>o0OPK}3qX0;jEa7T4k5J&_%j*cvkT?3Lvecus~F$USuZ?Fij@2YCAk zcPqeyXh*ky_+=NTck_w^Oywbyc!;l3S69bB=5L(o41x>7GBcVAgN9OIo})xB{@R)_L)Too_&DhjAE$hpD?Izxyh= z+;o)N~YU5ycFx%_~9Qo(F^*k|O& zzgV0&Vb7cw%aSjXAro;zt_8{A-ws6oDmQLg9(Ipr8$Mkm2J-~zn$-4QCYqTW{i_{- zx`csK@l?sIaR(w0EeHV`+-fMl2pgQRhyHbZe)PDKc&LZvwpt565ps63fX5#UmK18N z+%?n7dU3IK{)K2Re8=Z|1^*Uo*$%-{vCrA{pCQEZN$9ObvtV$BVOg>({QBY1o0UG*aee+TA1dU*cSqB&Db!;x~CcKqYC#!sf_ zBt5b#Y|LIL=3&s0Q7nOJ9b*VOKPo5_5olQyg+Y6wQ1Y+)#6K^i0`$b9*)z))pv*v_ zCHXNE^5do!Cr!*3!+SoCmW%Lb%#@-8v{S&{55xOZP+9WkPC;-b4EqI90EtZ9vjAm` z**g;Z&7u2_IWTxj+=^vOS^F)?w!j6x?Yo98i|$ z#B9!`VZDf)oXds0}yKz}8zRFwn!X3y3FFMG2;|`+YQ5#!7>HTnOy35Ieou zqdFanANfZ};onQN9yz=5KN=OyN4I~#&BHK40xhVSX2X$hu6_K;{p<}0OLU~ddJOk& zI%pN9EM0e|j_lmwI#x-JS9p&d?>%v1psvPw@Q`8kTFP(HKysB6naq_Y?cVS%F&&amPHEyYbRirRVCDd(b=vF1{%qj*9kTjK7lRYTYf#A`n z&p;L>IkcbLybSr(Nfm9Ma6O|JF{g_LO`=hTYOL5(>+vII$haxefI>c?m*d&|TD?=I z^2$|sIeS)S=cgaiiHq+NZ|vyF{=k%$;ZSFp)7N$?^rUz%8R|ic3~eXo40#Ujnnikt z2GiGCG^k!ET*zpZs~MRBSQQjAyh^1{rR-J8Z+-ASF}e6`42pcecD`4yCo&aE2!NcJ z6={AAsv{W~E|dpgIj4EBGA$r2_?Mon)#Sou2nB+}ny&A749ySQ;EQ)td6;V+U_5+8 z8o7RBSg9s54OyW??kJ=2u8rOl1^hw>v(eF&wUNlwpv~CS3R8L(m^K6zf>o;+ zr3&Ik|P6V%!}T$JWgl_JAzatW(;w2)xyHyS9&UQdWI_y>~0JA4V1IvA^n55GT(73 zGFTd%E5oP2tyQCp1mn3!nd;J}+GKJ|`a9&nDVWgEZzxcPgc+Dik>%_W9A9WOGh=ic z-9|<8pS)=9;?~5x0T=(H;TsNO{IFvv`lwUVWD>VnC2jqZ$_uh@;3zU;nT>_^=e>hT z^-yL_qGn$tB=xGhf2^m|qnUKBuJ^@O1?E;*qndk@uYyw29pBg+-{uN$4}>>aGg=^b zTBv87W1sSiPF#ws2m6+uBJwLOWTfmfR(wGMHMQ*_!9(e93F_ePy|N4B^k>zJq-fLuseZD0Ji zca|M#mL6cLO;r7d-<+lOb~oQ_)=6&vzU5-dw`ZjLEPF0vF=+bi%Dv?$ZBY&E{IewL zJQLQyhF3%8zO}T5RDv=_7yN!QVtLa|I;4jO7FAlK>#%S3n1;@U$Ki&iw|sPYX6H)$ z#Bq_iwyJ{6tw&h`4slrZ@kqO<)huZ>$3jN0F~)vJa_(af-85;1gNtzlZ<@JPd>3!l z6WQ*HflS%4E>5?g6VI0aw}`T+R5G+*Fhlm`=BxIJ9+3o+TukD+{{ z`do4s_I7`Gy*sAa8PkT5HzYNaGUo+Z`GbVLftWgfbn9?@%TQv6G5QQU?@Z^4T5{IG z+a36j&}-5Y*4Sneecl`0HY};>Sy)51SjZ)EDyzgF-R_8Ja3!=l5*uuydJL&a+-QC0 z65+i2lmTn+?$9a`I__CG&U0N{A^fSmsMp(yC- zkK%h^n)iz#4NohN1UCv)dQ)|^o!er9*vij(hNBtwxqRzABO zs(KVm`cDV5FZad(feqcCy35PMal(u%nuUWn zrX+r5?wiO*4G@bX&>gdVDS+LGlby0>!StNy$$7E6ZXQ~B;`h%LE}m4D0M)#+{TxP#}r_c7R@M3dL}R7g`MJ8@U=VUg=cmtQI{HDx&W1!>H8wa z=g&g~?lapH7MHHMNsPn9iF?aKx2xW3-M-=S&b!`jSiI@!>Y)}o+%xnO#|6@Vmbqu9 z&ImJJkZ_4}UBnpwr-d}A0DvZZ26H2Svm@@LrQOb58n~l2LNp&ya&vlwUOk58b%tP9 zyO#+aeJZT`xeS@0rWOc>le>IW+@Yu+=;z=dF%17P&+^*L8lsdO6-Ky3MWN5FfO(%D*QLWQrrp9X4 zN0+k>6FIn_K2m|qNg0u*dgb!lYu6LAg#(T;!nNA#5B8AwsM_tal9r~6Z*RQ&;RhWX zSF_(8H0R~s$b6?y|3PQ=TJzz9xSH^jqMs3Zi|FSU(Hc%?HA%JMpP2H_9L1O zLT5cQUHf=E`8g(K8mJx4482#cWu+;8nH-$!&U6Loy3NOOkt;XvZrtS1tRu=yHZ|2J zeaoj;m{drTq(=KdS_)ADZm#p|*P3K1XNK0IPIIbKsbM)yMOMO|2|D zPX_Ly01yzeJPGAiBkjvO#DT|Mq~8Dz2}AiI6dB*U7J{|fmkOC%i~uxjRI>kuDy#$OxjvbuXZj^*H@oeQ6xxPNjM-l4AHK%G=nY^ zM-%XRKu!Q#$M<#(jOWU}%+=)VRmzDGL~~!z>i>gp54n?# zsf!4_y^J@AF|;_zvCZn)o}?qTm|D1%4N;AT#D=RYj*@!+Af|iJ!QZ=Wjje~Vm)9{7 z#d+&b4YX8!!f9MW11;TgEyHoAhvF_eqig#T8~PJl{9!F*ZuO9?3X-{j_-V8nO&#H5 zzDfU<)4lP>N!aOug|${u6%$2uZ?TGz zc-dl4Xg7+g?QwOGo^9eblc?1K|8-Q0Kk95C;*2}2$r056Sr(GCN7QVSG!7+I-C6cc z&-?Wh`9@pgJ#>F8EN2qT=sy8jxv^l zHHNMwC&}Cni@|O<_Gxu1Ze~$2NMy zTD_5tNc*%THrf*FEODoxm0KiD_Lyd9?)KOd)NdZw%9uR-jT`T7@bG97E{)Y2(#Tl> zQ0xEUqB**f4F_-a0xloXNET4t9IXkx;<~}bRsBgvZ42wn5!EO;SmPT8V(SJITS(aX zyGcjPhpwT=-NP>phskwSKjndv9Sa+3Y8~{Fj#;0jtLu-(nI`?2IY) zq(xjcB(AW(cL8JJ=DcI%fxmmvk-&l`V1l|AwUW7wVBC{44BtF}|6Hug&r9V#O40Fi z1o}{D&*=6KUK8Y)DkR7>-@kuZ+{B`vlPV?_Y ziQ-BACRBZN`>)vqvqY_Qe09JYr1I+~@P={`9Ei#LqF{x7I%hsq;79gFjmwW+TC6sbzIt=r ztX;`~Q2$GL6wJtD4=-kH)5e6|325MbGPdD*=H&FlUEirI#Pb{7bT*mbL z$oXHs(M@5^wBw5SIr0l#-}?EYMXl+~Z?`R)Tp0UAX#`3FF#Lia0!I9_oCQczq!f{o zs3`>t@K+$eU)Ynl{?6`Ka^IMiAOFkT`4jg=O)8rI>w<7dy}!(tjN6wmwHTPO)N@+8a}fqY*HQt$Y9SWm4PlIp1Cz)Q*%CrjnN6(b<2BmS%Dnr?U!~Z zzrJOe{P26o;Xd5^-SfMX@YWDs`dn$;(>Wr_ZO;=U{S|g;uwPKCK!)l}XyrQ+=KX2O z(%ss!o8R3cy|>6fQlWZAP8>%2vC_Gd%Ymku3!NR$gT{!7dt*2U_neu#CE;JCHVt0` zd*tnk&!+7X|Ht0>|GIBJeCw~|DUO+LQ=0`9C@`^Fez+#a*ROnD2GTaw&H2KE5X3^g z*x>fK>fGmF-?4OhPQsX?`A?M3f8@ZtC-%-7Up9Mu!Rz4IfbIUr#;yIRD{%f!?ik=3 z-vBZ3fL(_F$omBtzn==*0MjibzbIL!s>1^dYg)y8_Z}xV-K? zi!R-sCi7}_UbTu-RAnZW)TK-J$+cV(rrNH{0HemMQ@eC2*7P?m`Zt{FRRL;_hM`-7 z@o{K$Mos#FHoZT4J-K!hOCe4g=E{hMUU$*X+p9B-zu#nE|B+3mr}DR)@~`{!a>(w` z@jV$jn?lAaz)?{Ts&%MCkebR{Yt{hzLBZl_P?J^elr%;Gfj+%QqrLa1KM<=C2Z9fl zq|DcYhp`UhG!42lEZYWcHef7NG?&XSRW3%FQ+Dd@KYZHG(UBa=gvcWW|ebwsVZx#9O@7`+#)m&;}gwG8^n!`@8t zV=Q%}+vqmBjf&>~aIz9@e+!~H{oIFEw`4Oy!z*Qh`hdy=fE4WN4NAOK$vcIhP64OE6s_G21z{;HM*lu zT0cIA^|F<>5OI;y9CeEfe$-}ISOfkBOzVuODiB`Pmwdup)Jef4{Ne)|=rz)|a{qAB z32#h=Bf1J{nFI0d)T15SWQ(rz#@5@TD!h_LYh;sM(r%Nqz;f=2qz-pyOp7tTzBi%1 zE3wHG-EJ3kc*SitQRVQW?>gVEhHlQW#(nyhedjy`XUJu{q8YZF&7(T#(W%In$3=sFSJCO?-Vj=dZpr&k=dCe-?(D;-hCow0Sj zNp;3AZbBGw(mNE+W&p$fm#zIt$H=@6PV}c0f}!|2aLMg4)Odbl`EkqMPQnB2IDD!z zXj|w>sk)nZVmOh$Wg>2JhMh9UR1GCm4kn&5#8*OacSkq7qnohv(9ofq8?X1!do+6g zK$mMix+Y^ned59jP*~x!-XA_KQiuLo`~BrL?zy!jg1+uB4t+w4A+Es`*9a-xmE3`Z zQgie%dp!C8s!90io~7Se_MM}-F@)A9kuD+hTYxt~}?B`HrA#LUQx1~uZz zGAcVxDvyKy2%^XsKro8HfQ|rv86@cG`ADRU1~ml_du3N-(ZG>=RJ?Zek-^tD)09G( z*~b+vnX+5*baCWU1+Prm8}{^$@FsF``A5q@^ag?h6cPB)AKe>?tVk&4V1ENe^3slF zw@Dw%T3KR0&)ka2QM|Bg$=G7abGyaA+b(%7R}4VP#C;Kyb6-O)=)}AQ@PIGa@#d!1 zoqxJe{MM0o=Wbml-umW;^*KGDVA3lyWkk?^U5pZCX0RiJqy4IL#;eP z;tgT$k)AnQlHiM*yoJjE8C+5eED~UxhV?sgL)A`}g?U{#g z$nnJqAdSq-0~a2ts?mVhAQbf3JqeSFlOHLG0SbI#!K<*4<3LOP%{-%qJ8 z;X9XKC)X=1wJ&ai3?1`$*@7{pv&ZhA|8KzE>=#YWj~Z9Bc>cB&3(fVW8VEo$PTnpZ z6wR4X^H#{E6whJ$9TmI`^alhLU36nc);4ki!Oy3#v;?Bie zF734jTkZHrIRNO-`EHi>)wlX?Tj)K7(MASzwVNgt#6MY1yA#G0h9L%Tk9CC>1kG|!J{-wp(g`Sio+^9I~P zx-83!(Lxskc=zYXz4a|SUfs6%rJW0(-Wu~_Zv0C-B`c~{XElC&gLFCRU5?N_=I8AI zsFnLTv^*zo`vt^qh$F;s`RX2)%dx|c?h@;3$b&76ME3^m_9%*aez#^W9$uqXb$-n{5L?WznUVZv@al&&54b|3iWpkfF;S*SIiJKeEi?X9=hUs#=a=Dqby z)iHAGGO-MCpJrNF;~h&}sg!<0#a5@~L6(kM!WC)*%*a{|Nm*%9XFSMSL+;)|2MQiH zT>PCww>FTv%A=L_YvdH!0s4v}#i3V0D~E)AfAxA_ejfSe0Lk59$WS_!Z}{|YIP`DW zby66d?V3!JIvpq*D{R_ytTZG|)0e%G^b7?!dOI=MZ@>3@*rGvwVbf%OnVyAcE>rr_ zQk^QfO`~?Hly<#pP`v{7cCfi2)0;J!_P5_L>ND+1B_2b6s*@pS75fI?H%!nLy~>!C zN%kHj!|3Djg2f6O`~8nTgw+~~txGGX>=BKc(d%sT6r^RsZH-qqsbtJ|M=(AP{-_m| z+Y}0~Ce^B4X;-BXo!*@Sm0W9AW#Ww^1{Pm%TZ8Tb(cGX{c4fn9ew|Ap3#ON|%#Ufj z@d(RddY$Illxf_H$4<_j?ajzEs?`o4WmIVx|Naa;X=$NjIB1}fJ+Sg=Z#pv&;HmU! zR4%>J^3euz;SAauoVskX3PhST80W!PG3fN9ytGp-H)m=9YKIo@&}I+m)*IgWm=qTe zWZ+-qfX`50zb5_eMwB01^u5^ZeQVz#D?u|?;+PsUvP=r4F*BQVoWU7r6`bZ?a-^g; zJDv6lNM-Pq2ec}GsuU-fL!~gQZn0aa*{U79L_A ztn3Q6dTgi$Ji3i;quZ!x{!*18px%T14ELN-sl#WW z2KqPTSRb#Kb5WF(-AGphL*&Yv2Zs`>jq%MENrNw{&LKL{sjH-Db;8;382Xrt>#A^vf=4(qVVkB$q zqI!$C-6A<-7PrH~?2d2fia%oBc8y>7GSyvF$ew@J9e#E&p=}6z5=nJfqvVube9RYF z#fna&elVC&19{pjZh&e1!J^}&a+u=GY5%^DM#A)yYpUa2;**ZVT8rekS5)hjv|e9z z3h%|vFWByoz_zQmmzNABp74myBO=uu(};I%jBT*THCUo6dzMtX3(>+(f(s>v>-D8Z zi{7KxK!(AP_Cv={Xa+Uj9aiBIoy7k1C)E#&8^JgCM>RXc>n$;eV6C%APIlK_p)c$a zykJ~jiBE8p|7A&;;Sc=}+_0J@SG+eCRUnVlBWg5Ds>}&>26*{n+Xpbn;&uo1&R5uD zkK1ETx}&Pe{Pv#3M~BNhAevL`4CgdItNgY*xfe<7aJM+Ty-W zp_4q`G5{-?@0#oWL03mk$KInij&HqQ_NzU~FfWhIoke}tg|i{wBk>aMY2=PhED%9K zem-v=boS3L7gK^-Fyzw{3PuZ(yMtJB8V?nq(-Z3sx{v~)yk+hqh49QdUnGNt0-yWi zC1J={{Pou41H+(|*}3p-J`+ulmGL}R$>3|d-x{|ENsN&b3g%+a#_fA?M&6v?eH{xD z%NxhunO=~H3I}>J+V*%?Hiu- zqqfGf&XX@}N0@5d&&wjG6-QHb7-aB5>{aArWiey-h-dFuev!TDBxWlye9^iKy7{;g z@h|p80G#p|cpzobu=!6cT)b@GS~}}-t8*vkXJk1z$6tu%L{P~CArx2;rq5A67-4w^qA6sibRKNuWAbsP#m)PA$!W(0J288x)Z_~Aw|QRPVoAfk?vnlwn|96K zyyWGtV_pONXZt)bTYkMGZtho$zrI*FK&%Fe8}RYVXb3j16iN?86oWCREHDO)4MVMyuR`Agsw3 z{7gVpt*?dRY}CkMwT31LTkc(WsE18n-p$Pfg=su;-$5WUIHoxu&Qf@jhqvt}HZT92 zW}0}!QpLRG^n*3Ocd1qrg&vY6zNn#L9|+;s$3 zh0f0FYuB4K8F267`QiWVPtWYhSksxg4rXKud-1!tAkhF%XyL9!UeCqT&^L)x4vq@c zZHT8twyNd556KO*;W`-Z3T4PUY)ymGo#NM|4J+ji4OR04D$4i<+=GT{UcN;y&ybp} zLym1*Aj|p{Z}~JU-Ktcmt{|I(1Og%3t&xL%PUJK)bU>x;{PSjh1kCjvJ!>}-K*m#- zvdR^Z$o=YcK({@Bze6qu2<5x|?ronLGn6iM8h{>fN!wM~4n+n$?~F!fQ@lk%CF!bO zz1pl*dlYg*y3C}PL4`+HD>+d|Iv-Hrt8M6Bb~X^?7)cnhp_oHJryhAt8cg)mHZDz} zxRO&V!YNq>z02C#M!Jdj%3!9U5BO zK%^)8#n+^$7%p<0ezXoGR}5yPUwh|68d~e}T2EE=q-RmdoAT?^ZJI0`3o6{hY3}8k z9&lUXa1N)_*jo%2&J*y6kVNWNuJWi>+O;WmINuehe4t%G3Dyl>+M-Ma+vmpWbkcXn z&joMr4l^2o%Fk!qyzF6t)u+YbQPF&K8{I}l^Pjw;6m&fCs}!Na$Wr%r*B_b?$ry-f zw?#p(Y#dxvM>IG4p;jUmW%VV)!WPKlo`?prpt*ZdjcFfX-puVcj*;+Y65eLuBy|#A z*A-uDjqUJ8ow3E%UtM*8+~(FP45wbAk(Fm!_LHk`eFIOiDXzsH-rMXC8x-O zbMDAs(ri_ekHxRdW8VlS9eJ2IKcb?l(tu5K$eZd_!!j zNsPBpZCH53_Q^Tg(&iJUe-|a6a`%A!lW_=PyXcn*YeL4WY92-X@J zo9`{FwMMi#0c4j{n8l}%Vv7ASiqE-Y&qE5giB35Zs$jZD*eRKF;qJl{dF0VkH0PytwxEfS7?kze=4mwev5d8W60Pmw`1lRdruE|HYpN4c!IG#8U zBIl*^k$9HBuABegM00F8IXVCNVSnX$;4}|~h=%s0rlw}(@BSc2`snt}dtb>gqq+c!;J8 zwL8n)!ll0`eQjF7?8*CL9xD<}D3wglkDieS-8=>)mT4vPpW8hM6Iv?Wr_`>-UAZ;HAgNHg|*NR~d6On%5 zli%)0cxgx6OF41R=82vLCw*sZe37~Hg^jY6}Qk&122+m)9F1kb|;PB zD|xbL9_j(0dqZn}q9ls5b%T68cVf}&AYaejwsa6B$AE|L?{WzJ&YYz#lmg1|q)Uc# zWU)b*Ii1c!(qw=}QQ2ij-+Q`v;iILZNA`(<8lSy$Wes!5j9G&fQqe+&CTI$`iTRby zi=Hk^7*{fXQt4cX`@cByTVTr5k9;&h>=~6GTWPGDbNj8s({mP1E=U5Cwn&``*%B+j?a|^i2l5y^%1qV01+w$}yv5RzFA@^>O{`{(Zxi^G|x_bW)qB(~d zrnyWWP$)sx9^8?OYZuoe z!mX?rhv~?X?(BE`vP`l{9Y~QvUbk!0TxuDFU3|GHLYn@G?;$f4p-5q_83GnrX=2 zXVa|Z)Y3GcG7ScKxU)SkzP%^){#P*Mut zpTr7v+#jKthw7`mlZ-12<2KKGZ)c7n6E^%5c2ye61~l7Kqa^K@ILDw`_nJ2z_ZBYOiG$dsYgx1qtSyMM9wu+jRYs5 z-2+OD8-{m<2E`JmiV}P5=?Z%WJyK5fN}L1W+b}9E!d+24qD2%%YCixw6^IhGdw8-L z%ZH0F-cTi%1Dk?o79hebHoA>&quZ!x{?iuCS$0JGa4;6qP0VFC`@%P+lCi5 z4#ZbmqiP2U#dZVv4ZYZq(Bcravf-`$$+ga+Uef5hx8k^WP8Ep+nY!AXSnZ9dG$fvO zgmsXJ%fkuv7uFo*kRx0Vt5@ier!!kWIiGqMUTHYTJ>gdnsP{R>YHyw`B|(>lk#`vf4$b5_!5>(#-T zUg?Z&fYThIrcC6SK*TX3ss<4S-g#4On=hin6jNv4a)m~2*7kHRI|ZjXLn9^Yx{|7` z;^y8Z9j@?Jyim`=!{mf};15^s#MQdvFCw(l6VvL7Z0SO3Wi!oExA7}LEJRyx-!eF2?*W zmEd{z8eNf7&4Qt#Ii9_s2Pk%LR0W*%*0@%C>;-$&X=wML$GGAey)hRYQJ0LOcB8lo z(laBfwMRFa6WZEWmqLOM(DCC$7aHt_o_dOW5h7Um)NP?d`iG~DW8j9!y*KJ?VKjCX zu5h#X1Y~ZcuzExn>=7;Q*k)&3?QrBtTD=fmV&zPC7-SYwysdJQEQ7kAjgcn3%=41D&mhV)}`*Tv*)}+OS^3n$VZaGu(Lf#^%{8RRe5Dg05|Eat=6ZeW> zEq|N}=n>-%Echjk)V|oqawDe|CL)^kvvWmeFuaJ%MVugd72d8`wQu9^zDWG_&cvDd zi=N)HbisC6mGLYL%QVc5;m!eS-C_W^Z+Bf?wo|j<>*cV1NBnuorpB);hnp=_jdAgQ z#y|)i;1_~GA2Q8Hisr$yj(O-y2!w3OyaN^W~h2zSOfV1-{H1JJwNqhW_Tu|-(F;{0Ya?nN^tOM-B#&Cu_d@X*o zecV@&uOBpzvs^M8!-RGwRNeW$8JxfM_3@Y;5ABL@WS4(1o;uAX0K1PX2}AtA>ZZ@k z^wyJ?6PWLb=E6<}jpU(c7OD#@D;UQEf_FYtTnUUkRRSZ*2JFKQxQ9^zKj`8%x{YrC zSfaT<^y%V)qiwusezIaHOAqs`Pc4O=7B=TwpL~prP#4Ez^irS`*V>Ewx?@Km{!(Ct z5|(WR)XC0myO0#heFlBR-aAyZr!zg%O?li(w=C7G19e0S?Hg`rCp8qqJg$aF&E<&7 zAk+@)G&eT9O^jHZvfN#x-{0KU4;dORU|AYS)_5>7DhV}KtDQ262u#F=iR0hQ#+;HT74rONarE5UqMusP({GkjbqgJ`K zT3f*$D&^n4b$iXba34bp21?tcQ87vl=-Z4&F`$+k-+7ycR9HP-8EfH92I9l1NDs(X z2V|KD^R#5FbZZf;s&Z0%?;NK(kzKPhV|NW>{75;Ol`P=f1Qa zrIvS^L)^E(EH9&(nFAkhB2KQAz~Q<4_F9`3g18I~1Q37mD_*Xdz@x|{v?QQF7$$xN z7WIIFO6NeP+|SA&XFDMN`uMhNZtD0ER&!@aI~UfBm@-@*J_PH^t)a{;vT7AN1Dx8m zV8lZ!H>9rv{RV6qqfTy7N{L#F+6FoJEis#|rz-AhGD)fm;YG#}Lve7tBL z7#a1&TVT#Q?kqnBh1VHfKa^NI5K|S1?YJ{=52hwWGJ=sZ2w7I#?ukAPb(riKe(+vX z&*Edq@N|iq1{XH=#-H>-0F7)T5f|C8vv-zM`|FL|+R{aDdVG9yYJlSBddV5-p{~Sw ztLU6N>LLO>?*im<9ZWH-=v=&#OV^z?V*j|#o_rEym}`l(V3d=nhR%4%sTbU_9c243 zZ_wu6lAqx`(B1FX491^?5qlu9x;w6ZSafD+*%3?ZQD@9aXEI>oZT@-Z0F$|`ufQ_V zS>O9$=?OBc72bLL7C_-}vV$!HD!M7Y_1Z^G)b)MFes5)yC+rN!E#P;%MKvf741atH z3swi+R}>ViP=RkO{?3}*IuzGrL?mfUN9XdIu1{OZZSr7Y1%|>G-e!ug2hAL*m?p^y zv!r=g)X|sRXy3$n%!$uQfp#vsCiD=YpW8?*8_y$#)GR*cNNUE@8Y7_EcOZooS*%0R z)dTUhT}zs6y4wJP+oG!ojPRmnLu~uSv@+@%WNG5*AkQbE*=}?tA7b(_p+oQc!6LGk zd%xEgA9qJ}_`}+q;#ymLwOv#T8$QO(A!(A#-4;z4Bk;>J7vd<&fwW#nRi8hcXw$OS_eSg@y@UD0*f!IaYa`+6fxSDXTx2DJLV$mRiY2W;=wg(n?fp5bWnJWr7DOmkr!{-YS~quc*m zo1fc4GBlXxA%FM(B_-e6 z4VDt6N6*jy^7)PpfgB#fAACHWn}&Mf0TyCkfBerNn?F(=pAYdDAZ+lp zr|uSib|W7N3}8yU`t^z@_r?FbeD37JIWtNkC+wZ|c*!eM_e9VCYE>sCP8j~&vgOrn z3!mAQ^qbv_<=<{>vYZccs5z@@fHhH0g|Uwen8=Wy%l*Jf=c1k{N@`|UPbjfd&=~_< zG#0VnC0)_Esn6sj&d86SoG%_zBu3om#G-h>!Kd$uom3F_OkRR`^KvJIQ$O|fxj5Zi zux<(ZCOfkBK*zxUP_5$*vyoViT|qy6)RG0zl= z#^!}j-k0!rKCn5_<4YHSHUHd>cxd8Dhtwx5&6Lkh{Zo)n-1Y!%wnB{O6>=Mtm{Mb7 zrSGlB`3x6ba^L~ZaU3* zgQy&?d7Bo;z4VnFemWFFN(yh^^m^SP12(N)_ylf|pDI?qK&Za%6=H9^lzNYhO}Cfd ze_^F95D|XhMln5H_N*W|Gr=7bB=x`uj0qhFJG%X?l(FvMN*7*!1b92VhbrdWX!?R; zIxm_B{_>tj$Oe5ljNX6;XXb{zpP;Q|(w+#UfKtj$Q6xUpG^f`~m2NM6@{yuB6OzY6 zUm+(uGvd4m%HZ6ug#Ia5|L}$?5rKyfefaI)Z#W;drjKs_i0f1Dh)pCff~dW;IpA}l2lnhsxa!)FRow5)i?PT zs{pb??`5xnnH|z3QX*kRho2e&k2Z+fO5Lzbei@G+Ho~pTl`pvhpv`X2DYRv*_DSUd zjou{J4$76D>~z#D-E`(g`P)SezL>ADt6g_UOFcPu*pQ)urVlqU)u7cnynXnKacQD= z04~O}YoANHhR6_(Ds$@8gBh8ZvolG5H|gv0e6_^_6S{IeC@5f;BM{P@znS<9#5{C! z-TSN*7JInS)n16aQZ+$Jr+mfWhAgsgKNZa#tYynqKxrH@0ABPYl`>LL8(?&DPpZ_a zThsO4N2H@;h_Y+aFh0<=p&eVKDbTWA_^T53a2wYRXU6SZ1Sd5 znJs&rEj`_@Re~6E2cGfcHN@iT&nX&AUrTEzayhK`AhY|_a-2~pc$ibuD3nI6@~7*q zQoJ2%JSSg$Mjl*m`(RyH7HSx21dtrL?&i8oQd?vB<0nJ<3^W`B)Ty8bAww04IZj&8 z;Yrah(s1h9rjPnE*83INR+Zc%SAkqlQt`SNZK*?Lq}q&c%3y$)C`O4qAA^ZIIt1GpB~pnUmwhJ~=rjiBB^5GtTdclh{c- z{*(N3l7AB0lDLCdxJo2Nip1VPccanR2=0LN>U!^f_q*ShL@JQXKzR-bfqzmT zIbHBBK;h|`r=mHBV>6q<1(dV{5TVfSIl`XS)ZCnCTL%W$v|o9+0dV|O4nXs*sToJ3 zvs%b&qk_MTX*s+`B4gh<5}msrBtAf}1^1tO;^Md4$#=UVb9Vu@8_POGrk>I7Z$DS? zA;7rllcBDqJIUAE$o;Job9aNaCg9F;7GS&Z*F5~-qCPYMn!Q`Ah#_X2#tV426 zOFFv|B;ezDr_C8xv~PCy!VB9}>9pEWyc1rMo_%m){;}}<)9UP_fVsz?ILyvnCaj6u zvhy-r(EL+`n==?1zB8t|5N3hzQ>RXa-!obBUk{qYUm0lbWT`^{5YN!<-{>YPcJi6e zd`27q`{9Wvo)8eZOEbTdNw{V@2&Wck&MCc&9}P9jW1-Vio>}(QpD+2F%?|@loC%SG z0{CBm=j2-p{^QxD0Hv8Ymzh))8L`oVch~&I=6PR!CHrq*&HK_@bNby-~X4t zoB}Z1|9ENPbC))U5YEI_s~@&)`lsjS|Lvw6U`BuWjp={>#{c@_2UGs_)djD0eu%Vf z16qq@Adg>B`vGK+qZBn|+bM|J8B_rT{++;FE^NU5G$f}nJ~0B9I`D>)j5th{C@C_F zk6Soc0H|XTGXCwRAOG8r7XWnrH*e1S;+uJ2{6)^+{(KI&LH^Ur3#L4~Xy0fHXY&cHiEXm;zwR*>epaO#t1lq=P{zVjbHp8vm|&H2}# z=7G5UmtS7^)mIk&%TM$E>4m)MFE7h}@}VQ?&JYPn%mtg}fdYocS}o|Fq(NmRN$A7D z^7c?Dcbhg3SantyYYp8URqRlffgwm`HxPox_I_e3hh!4T4GSXIxDbsdsuzs=tgEKe zhR&qhtAaO8uQNOmbXDa>n<<>I=wv_3@SZXd?~$hOpP3*@Sw#7 zfn(IvWy1i~7tKLh&j6ZHu2(ZmS(MZrqV_P33G4=^c$P(%rX+7Ob@QJ`;JkzCEmc0T zKywD@TR^kn6osd7KT7t=tdl}F#H$qH$f|0h!Giginbh-BVW7D#nCXUQsO+xLkYb!ORJsF7i)b0Pz-pi2+Yk0~Nr$?tAe$tb~pY_tdWg@HgctGQCv&xuQG<9-Cf| z=0}iM^;7~}8~0Vl{fPF0JtiqCBZb~@u;wIy;4#o`()m<3*bksNaK^#x5rkYQVh)NW z<>AUQwXgt$O@{01NGE7dA1D5XKk7eMlRG-cwW2@p+Ldlhs)0swiNCHa6Ok5tv4dh7`j z4UzEJ*;V!96;@aUwp|ZUa6N?ri#Ij6nssC zGRnMo<-#IRECD?hlxHcU&Z7Qul)C{O97JHCG7(&P?ePsH8Nw9-ltVsj01+4{KgbB0 z!&N}0IlKfmCdCz~)$a4F6)UBZN)QT%dI?kxWORb97>0{-yoIO{)=7;0)8j^^q^jVsw_5i>;h``ZtWs*{QBb{ zT)vt%92AqX0)V{Z!D`v#hvETT9YD;rf&#$4Qx#QE20#q`yN{E>o}=ql_Eq_a*8>#@ zwHypTtJL~+TCfh945X?uxCE%Qf zJ1ojKidPU|_m=?2ye?8v7p|z*E9>Nv3PAI_UwaJ}iV~f9O}m$at}}6w1^w;mq?wX< z;Q+r!+~<)SZn&WNr#@r`nrjZwoHbcP;ym`P(-S!d(%A=M3!6Z48nE5&?>CXHWPAY# zp0rP79|rAgX?i1Yu7~C|3@&Vl%xMG}jmVsip4^u41qV}kd&cticRjQt@%#mVR%v%R zB*vWYqp~Ci2y*@8V!^xPx%=fAC%_IgmD>ickLpWTFhxZoI&HLz;{+zLth|q0So+?0 zUIT!_pc?}W<@Ah}vB!=vUrAe95)4b%pOCUzfuWpO)B+xr=KZZBTVmwJNNC>f;n~|k zVTL?#f=ur`U-%&s00!hs%eRyJ+5t2NGs(UO8-dxa&1~(Sw>$C6UaAj^yz0cG?P;KL z!#=b3PR!b>DWI@Aeu%>JRw;6J> z;GOHscMdH+FfsQ~GP@mE@Y1vvIECT4`%YBsNVRbewt6<4+|{LR>OJk>c4GNEmzRDR zUfdd=)j6KmJU*jInb#4@Z63|t2X3GJ^LCx7-iAzac;AER3m^rP*ABum(%ja>jJ*T% zcPH1KB?oZmS#GJDv|rdXM9yZB{!Z!G&rBC9Pl6RbX4`W74s<(^2*={URW19FvW_wI^~FKirNw7Yly z{^2=o(cISI1zV#pcEbMS?B1rNGt+88W2v(H`Trd+3970ffJ5AW|NX*#lg0Gu)18p_ zugAM#Z<9cC*cAZr0xSQGn&#}UfA9x?!1e<~b@s!81q+-ng#8Gt-;LWm-#J^V1c*sB zMr4yuO@Q9ECQeRyYU!6=ob%<^^S<)h^sl`#<7*q|f%x_R`@-@A$x~R;wCHRmmg3aM z8-DuLjgS1(EAzhedM@aP{N3iPFTC{izke(DA77qVx#tHFv;Z_ISIz)WkPo{W?*GZd zUwSnU92fuL%{gCwHK%UhlUU|WJD5(WmToXfYm>P!>Jwq1Fpdn{v|*-AnNHXY+XQV7 z1ynj@jhPJ^0PJ!pa(Y*3ls_H^6#ES6dgjVoOSacc*|hxMUtc_ZbJ6M(&+XFNd&yXs z#7rjqAq%Yx?rKO|+HDyMjZD^*pge7=7cE?-HOf-f=>uP7E$19(SFtw>Tj`P0uCu-~ zXsb_NB?GVb?40()6?HAocaez+L`WH#+CaA|!=Pds>GPzwMeTUKdrR%Ur`NZ?_QIw2 zKOER~Aa(u{83>b*$-Fvowo`S}q8=N7lFCev0}n$@Gn^aISe^AF;{{Dphf`e@IvW58 zBj}zKOkq0QsEAE$op&qkbcon+3byTaY1I-8s?%Y}mS_kU6Jb1ZlfkS8H2^mpwxWi{ zSc*Eu#HlX7#Q{gK*uZ=@Et^S;G^WxLg@$f;s?K(66C+f<1~7#68PzM1k?Baq0TjjZ zsDz$pX#!Ntq_M>*N&mF%tjJ?Js`e%~|l7{nF2;{nfiD`16eymLM$v zYa@rV6^%WKz? z@eq_)WtLQ3zBpJ_3)(M$Xrl}|2%48v0Hz77^K>ODj8AxqwaxFMqartcfS#h{(Ccra zkhiZKJS0Id9RPY#6vQVsJZ6+6s}|@~fy%_Q*5oUv!26UGm6Log@zy{kfOt!dq?F|B zdnx&gHz$B251?xCa^n zSZR6p%HY`6cVKEusiww@k~e$55xQj2>{_ycPyZC#+40lkHMNLwgKoGtK=o4c)4>Wj zB((?t$3Qs0`Q1JBYoQK7iz3OZHS463ATsyMN^}rC_d@?c4G80;%Dw1bTLRd3d91KF z;Sb6IzY#1CL0`hIeNf1O779{Psv?~{i1Ic5Y9rrcl$VEn1<(lr!$JxG5ck5Ji6)|j zAmma-^2<DB&(@!;lYcKY$GpS z<=pT?=?evW2eO($(A>ys1qJgF&n$j_Y*EWd-a#PghoJB8UV^D)3GpFL05{BcuRllH-Eb1UtXH?FK_1lKQCqd z$4iUvf9jD#>5ECW6T^@g$qPlM)NT@<`lFJ++nD<|Z_WDR+YkKr*Y5uxujT&Fr*hux z-X3P~Gjkl(QTYR4>yv8t5`K7f+%3wiAOwT>sD(greM zSsF5jyH&z!Qee#rKPhW(a7qd)uCOjQHcKj&0t`v%cw;yk*E7V&B|=LPw}P6R zmZPT4zczT&8zpzg@mw4pq!PFN#D^rSP-slH#Zs`P?0iBYr?`ziYjpj|S#<(5XEg~J zB^U`n4n91;A3*ajzmfenuTTHW%~Su|rs@Co+`=BEUx4OP257D_7hD0pixNvlCCSWy zwNpZQMmP8ueYqf*JG71rZocAz=5Bm?L38Vgr*hDo!nj8I?e`|Yl+xqTye04zuL$&g z7eI50NUQkRjnb?UG{N;B{TQ4r5j6LEKs^KGP$K@S-l`zTd;=Eb~Uny#p&(1AYqBpEOPms@B>J99|G_fgPgi zNNEKrssIoZKyx6Q6Y%8plwMuG9z-`aCYHt2(k`93URPz7tRSV!l9i-GDJWCjk&{v`=7HFPU(r>&AnjvWL=viTw7mb#e zC4cl3dH;jq$|?}rR!WM}LGc^9SR%3p@u;otf;*Bz3-cw-l7!()HF{7DuLTh%2B!gV*M%-jdO7x^A-eJ3_fF; z8H@^^CMRQ|mtO!)d31a&E{j%F!)U}kg`g2+`23^Z8nEJoIt^Z~Xykg$ddU+6d|U~5 z;1*KL1K>0ZgAB6cU`Pv{4RKGtT3rk33(-#6jyE z6z8EHQ;y0!F~0|HPN?f(Cj_#~fs-Ck3sCF@#tMYsNqPBbdFjPf)n`}L^j8Mq#>VnP z1#}7csh=v`^JO4vKk6^*t*hyN^l|m|H`iq~BeCPYu>Q?uxTr*T%1GRz6 zHI=DdTk*13#cYYVEwFC5;ezHaXikwyCupvql$wkaW)lHblT^; zyz|yzP0*O!V%8EN7pk_8KXd>*9uxESq^E-4_j?mKTzyO3OS zm?WUVJPC+BP!LH6VC(M;Eo=(SI-bZrGn#c|WMSv<{A00M0Lt%Z`_|^s_f7!G;l#47 z; za2kMnGG#vyt0UQGQdy_fsV!Pob0nt;Dg z?VXsvCz8Dnx&%VGfR!IsvfIM58=>MN&uk#8E|BZY^%FoN=*Uiq9{)7{1}PZ0pFu({ z5^{mEL~x`uF3TGx{ZF)vECPxA)&$&pxefBH-DJiAFbl!pVM^GGz+GrhlV=IBa$!XbwMvJPXMr ziU0bY!1u+A7mEX6JNew_KF8SQ?j^g!S$LYtYjEPK$pKC1f6`+N&!PerR7y1tF30D| z^(U_XY{{`zbDM(C4}!<^I8I6i#W^)gl>?D41l>Bc-miS{;9vjZfv>!E-(SCa|Ev#7 z51FU16GuTZI9^+Lp&o&4;X#z3s@bCqd8E{0I&;Ac6Va(!I%`V@1~k=Q!KWiU)9pLqb7|1{G=O8^B=#bDUE38IGVZA$OgT<^eF3Rdh+gy{0K; z9i8G-X3l8PAyRcCMf=%g6l$So%z66gy@C|(C_N*covDi2FEGE@vea~Lr321PLb=1X zX=!u_(42xN&?A6jYYH4+W`!khgHp?}o6p2DjAmUYQ466Kvuva+WLBmxNO6=~ zrPO?U@lA&&ygiwY3cU&7_5oKH6>;hbdhph`(fb8~GoWn4h(H@T0R5(HO9oMMKdRiK z(4KlO?1SYA)Tv2{&$yzSR%wBP*MJR3JFXo1;@jE(_r~d8esk8JZ~Dd;-p%^=7Z)8L zIz=R1s7MlGTw<-j5h-rO=t`gZD7S8K*mzl%Ibd2<8A3Cd*4r zzuyFAZfPJ@765O?iQsZj#|E8ltt624RgVRN;g$6O#p+%vso^P9y#-*R2zH~OwF1H> z;Xozwqsz<31J&gH?I59^z1C;nmu@ z)Ya>v0Sn5LM4q^`wuY3gAY~87s){3(LA7+{aIlt~I1RPSIGv_d!Y5gLn4ji zgp^f|fA=Yv_v4g4rS8}k_klKdajd97ssvq>QsON}g^*~PdrPD>5{isH@m&~j3E1W3 z2){;ro}pSV*}j=X2ZMQssPj%$GKOmQ{K?Og=ndXsmwW}mwEy%gRX;Or}nE9FltPIzJEG-11~5&<=?JE*bLXztZb(*CMZE~1#y27Xy$+x5XjIgJ}ZPdX4(xK+ z8@w=GT1h-LfSyO7XjJ2k1&U#mNP#Z|EfnC1dgZF}{427*PA|e@L&{qO&YuLnJivL+ zSIYBIhi3`goK^64fT1T)$G?Jjs!b3>F9n#sME3hG*VU1cA^7N-oRp!uk0UqSa6$7= zb;OCqJksr6Y|3ntaiR{PMd$ECO^A}`wMBE9QnNb~(~kk=JeqSfJm)YFr9sDBuRBZL zBd7ECfYD_!y~gBZZ@K(S9}pPZP}9-7^pn1gPdV4w<0-{Uh64nEj=V)-_5Or<3N zS*1cRaMpW$FOwNZw3&xN(*_(zM;5m9Kh)H{a9{63jeUy_z*qPDeelZ&2(4rtGH17w z>22hJ17ybD==`m1zD<$K;WS%Q!TLu@F>@<2OpccVZGT@h`_TBjj;_38;|n@L|NYXk zZI^%4hMBHT^Iw%Im>aYk-B1Jr@Mb|tW}N~Awkvv5#k*b0b|q%*B~x0+)RtKGzKbh% zU4FI`oJcWU*VBx+a8nT@QHk*o$4NuQ`x5DMuSR=b2-d*Ho_#gpt511KfRhUZ+wqEE*SDSoA!*8t zCd^P7>Caj+^plOUXB8<4s@`(hR}3J#S&AyyKy#ML>s0RwBsKfi_EoGWJ9hUxx@x4N zRQG|{MH!;c07RBAk^)O({-U_IHdX#aZ%rv!J|=v1*VliWB*T~zYLVogJ^hvI(q${t z<<%fL0&*^B3R>dP%Hcb_b-lL2KT=&y&Kx0WU=2yM;)ptF11~>6Tu~+k%A&qv-~vlP zQD5#7Y2dGd(q+zMT#Pq9DvtSr(}*)r;ybui0RZf$F6!L3eUgC7T*1ysIVxWnORNs*3t6D#(t#U|N9?DcX3^l)C?VUnKyDBOSZGlE#C3;%A7`8S(!3XG6=k)~^6GUoQ?u zyz9yKW+=H77kYxr2=JUaj{xbph4B4Y!&&=OQEv$@xba- z&=>bElPdC|Hj@a{kY`>V^Vf%h!BACUD7bjAX6blMVY0%5GB5d+a%s&-MfFH+U974a z!FR9^&41IlUBBZYl~BffdQhe5E2E+7v+E2f7)q2Wv>@Ni^2cHDda> zMtAnxGG8j%EgmCRA3N0l;6AY2Ow4Rf&N&Rq8x!-}2SKzt?=WzFW4Vo^OZJkVjgxca z#PS^j5A9FQ+HcNkiqF}9b>TL$1=!CKz^^07G)G>U!bra`&+i(%Sp4?+rJD|WKMe1P zkz=H50Z5}X^gXyQmU}Ec`xJcwt*Ow=t31c&YjTEW#+kFO9v+ zgQT2HK%i1z)Cbe`_S;hrZa^* zfND)abEG`u!VZA$)-X`uVOLQQ9?3c+Pd{YL>M&*=m#1||Q;(6XlV(;YXv@IJhq4<7 z^7aCS{M_;#eN|1QLBjF?ENFBMsa3$7GiiUcNeN)>m5d-1Ovwv^TJ2FRok<6k|*P6zm!TVJ)#f1W?@CbTRc{oAFnM1EtG_(R4MhF#X(Rz0l@vlnl+@Olbku%R~?L1`;qfo>IV)l z`c($!(TT&UTSVgw)B&Uy)uB+tT4-yqC)nX8D@ylf%sjOJ@ zdJIrSFY|!Z21veW-b$dck39Qhbm*Y%N_ZB~{xUS$=c~{v{7MN5r-0ZrDOhn0^rq9i zJqucVOcN>r)Ytgjss5@ey%dx>{0XqW1i2VcECGEo_FRJQoW9}iU_EGU10@;A_2U6= zw5Bo+W}%=bUW9g|pzJYNwNBr<6MD9Q1O`1u(4ZTB<(+Zg8aN|T>>`7K57mJ7NU2d!45ILANqGc(St~06Q-<*YM@?uHi23{=ID@~hC{I-SK>h`o&fp`e z6qkamIS9BX10Wq6j;apxilWq)yrqsue(}b*I!dLURl*w3x=z0L=GibDtPn6 zXeFa#jN55&i9F<=gL_s~-?MwTb~P!hA_ZWJnh(6}sJG_In(qKNA9CR&zECD(1AR~Z zFygN!#a>eA0Z|mm<4ODd19kqZt7;OjzD`CW`g=Ri2J66?HWe&~l16_;`Ng_ga_%D8 z)7V#412-W!vXYW~Qm`B@sOqa6_t#uqy@p)9Ncye~|Lpn8)iq;PD<^z4qu#3Ss@m|z z7s=^1?2w~kZ>(vHwxfa2Zen!fYlExS#=X#2;UjPrihy!niikN>cgj$SNGU6lJ%w6n zK0(=fxMBRDz_VBUfbyW!*WiGKI_mx_QAeIouheeiP?=;AAX-) z)Oj-(fUhm2Ytb$++XRQnNEV#zk%{?x!%v;3LNNs4=`@zn&sXjlo41clJwT?n=-CHD zv-SYI9?NM>%s$ea*8tw6<9SWttY&%EVek=^vYUq<+}lz7J`%1aF0rb!Mq>biFOj3= zTQ5JnJ^tW9`2k?fpECZxqvU}L?R%5FJl+l7bUK-m)=uRw}jW$L{~h*P2E=CeT9 ziAFI#!|I++(E~`(FOB=f$*jv=yLku+NM1TOj$>Nrxbp~M{0D*-e4t1`nP9|iPj=&m z=bHnA#`z;e}U%!4m+c`r>@v-@vKvlrU1!Df0&wPgMXV

zHy*Yd_f|Mja;HeWJ2Gy#ad(Dz(!!(r?_Qbzk8eKs-#5+vlXs^7$s05N{pH0M&0c^E zG+}j0-9AmRa&p5BH||{U41$8@y2UhC)$qnQf$mK_9#Z%SNQ+4R%1d=?$k?c`>ZLLn zAhnew2aiO{>jC0SdOeZ4(&4}($pDyt2Gyc6bWki=eQM2WZR`q3kCUxiK|&h9$_PlM zm)B~AwVJOMp%p5Xx%E5bMbgVcO?d{q=n1-gLULe zAE>QxJrJq_hEJYr-2)XhuqDW6N5M`Lm9>jw=T4!u2UHV41wEO#w*GO=TLlu>Kz|;p zE*c9KsilR8kQR6VdX80AC3o#6u?YBb%V-2bvG~E^?)q;T#Vg6O04c7DmsjsU+sN)Be`;pC{Zd!f+Fp4rroBXi!{?TLH!v$DmCu!uHDdE zz53$n`kvZqQeI1zfOd^{qN+T+vJ6GN{pj-vgPa6?c7K@>0N#D+L`C6fMNvEeJbgf= zp|DYv46Z#3QX%J05Rgw(vEIoIqCsj;N|Wo?$M)_am(PJ_3%Z-ah#9I(ZiN}G*bjBX zw&-ShWhzSY$+WlN#P^Iky-=`CoztvOKO|=#jc4yj zWbaAOKA4=<0&s9-;oejE@1f+%C^=iRcWhpRI;%A?ujAUBmVx=r$-D#ItC~rpg0$!> zM0vL>w07UXl6S`EYylAud0MlQ1;X4dR~I$L)}15o$d{IHPR-vJ$!U(}9s`jRXoo?iYgs-sJ24SH-@Bf#b9=|=!-CRt~Z)9r5rJbjEPeFU{o zy1=$Ht3}T47+BEW|6p@u4${~YImhEOkHqG*U0Jk~G)gGEf}GOb z3%G`+vyNO_w1w=9!$hgGCM|>V1RCR~^S6Py<@nrPK(y~!vU_+@LpY~F$!Q|959?D~ zjA?CT=1K4r)utVa4qoo9dC@QMa$gv4 z`1(&C`PvKfzw+wbe|mYrycbIPv?0^7&!tjd8Z%twxQZKYxN!$Rs2QL+VLt;pxqWwE zph~UsDZT=!EI%BmIA32+CPFIn4wY5rZ~$HfWMUi$vlIR*sm!bS%S>-6(5}tmQebKi z1^v;-o*_fMXci)k_CNYKNSuRCx>Ql2dFn~gdabxVRZ$uBtROzLSVWw?q{JvL1>F_k zLC5_SF(i^#>gAP2MFp5uMgs+rihN)Vr-D`5hHni8>WQaFDK7w{NRU&H`76n;o#gse z(%BJu@eTP0FAP=Hk5>f}!1FCB0uVe@GT~$RPMk0%)t3ctIp2<#~jFvNp1?JgR zsR=o=IK35SG+(J%jn`D!Tqj(^mU@P3DEt~7>Hh9hQP1lB>Qz18dy>8f4T4a)Cl&VhzLz%mjRJgA;3SlB4kQ4E|tP-+LA&A2_aj;7)88Aut- zb%u6mz*~1;iogEztJU@0zS@DxRegcgV<2emtDNu#qZM_Liuw`%%D&*LtM!kLy!a}) zcmYlU81@M~H_eqacf*Z)Fal`eSXMg{o0hO1j#FTaM4mf0Ja31QeOR8_ zmdxE{*I ze17Y2Zj-d&L=0Rpb5F#x4qSbB2ib=pw@z#Iz57SNXHv^}jLbh2%WfC|y84WE^1z|cg2t0;8c{k4ZYb;N`{$+T&F89n{{> zCGm#|!X0g}H<){IfCW~Bu6=MfX*?pF5)H0N51j5eTVttoUBf)l*iH=QaYnDQVK_B; zgpbzEuW9KERSlP6CgYT+OjNM}1#`)y?rbc%q(t+Z2ahxx*{9`uHI8eCq(rDwjuFP+ zL8|~=+-UB{*^L|TAWdV<_z-|iGrarOmn4ktwJb_}@T#$6b{>QgyR(#Pd%)$ct~wf%|By*mbQ5hgp0Zs{sRW!|lB zDa;Kw?(hfIN=#T<%90m=VlQ9ms;eFM7R$au&0iX>syqqO7H3Zy#1yb6W+j-`0q6JP z#no#>H;wY7ERXahPoBAS>W>DbunM@bPdzDuL!rAbdvD_jZAoZ)hR zw4wy86ajjM7ZQ(OEAgo4#8?sv0{7ep2z$DuEL~O_E?beRDoKEHx3_EzNW0BP+E;Ht zz3K8YfUrR!Jyud|KCz*9Ww5uZ0swTwUl}V!L3SWngHNd%421mUu<=!pXNd!7O(k4( zjX8kRh!KyVNCJsv00Gh)KNpW%XTsuic(7GH!R7fk61DoHtSXUhl1eHS2_XudE z{_x6GCmvl(u3rKS)FOg2`)l+uMlBIAK?j648X^i552EPk3@j|>1dR_ogBoW+UTGu^ zl|2koG-2iD)jG>isaY0d-f6*H8cIDWN$zg(j*bV zuka{}$pA?lUFb1ANaz-(4=)6=ydu#PwB8Gb3!ro8lYq+sQab2(jmU#e-PaX^ImDSJ zGwc?xGN~yyQp>rfxy18+ll~H5ePI7VgF%?|b|rW3AAa@ii;q8cas7IbxxcpliJt#_ zHuUy8>yvj;wxqVwN$x8DE$b#-#;hh0OqG z$?0Y9CgwGRKsMMghI0#&eE=iD)XPIh}nVmD3c?Z4S+Djm$WrW*tw@I2@bXa&_5GvO5l%8|iUvaN%|^ z5tZ_qrL4nXtr?rwF#%NZIc?+FyHUjaq{${{oz4#UpUsie55IF|@wW3zw_K>-&9Lbh z74X2P{86cA`Ht}HMv~Ks?C+_qiMfZ8S^FmD?!FReKo3$tdR2|e(NLfZYViBQ=knhj zTC}}y(T;0NcaJr9<5Wy34kmK6<*1QnTjHXIaR5@3`+b@uzu(%u^zH5?9}F(t*Yn{1 zD~o}KzoX~rqX>n|n5VI21g`rGRtd%#O-G)%mcYtC%#$)*fuwa4W>v5+mr@iTm*_RZ z;{e3i1id!!{gkOsJYwIBWX%n(>3o?mWqJWMp!kQawF_QMje5~rh&d6-ph^3VZyw)C zGr4kxSSxIOVNd|wz!BA~DuJf!x704Dn;I|(OsejpC>nboU=yH|DXjAhy40Z5c_4SX zOmjDW!~EfpBfkZC7Vvl!uVvq1Z{PgpH=Rn>zfsVf!T0yye?RQO$y=W~btToLNVm!$Xwap2|xG&kHLy&G=a;m@Zf9cdV}o0M^E zWstDATvsoZ`Ve(pUK;ZT&#YTZhI^O-q-t`kT|-%kBqGAyz{%P<@Pi**UcVvy^mF9E zK{7FjX`2CfG?3o!ezHuvjx>#ysPTR;q8# z2;MLNpl*Lmaz|ja>f)x=TvlAq1gA$XM_^Y1Tsy@DF|Y)UI&>04hs7T z|ByloHb4O~lFCim^G*5hTH4S#JOGe6@VOv)2SglGdx^=j(s_hY5+(W~de~TLV1*%_ zJIIXIE>JHyr!e#w-57Tc0<qV|eynQ2id8+cGlmaA^Lq@j1uhc^yjD;dIvio<&>ZZ*?I6 zZP2HEJ83K3)V1(E5FD4LwZ>*09$$Ru5h1Z%WBrTvq_Yky4;&#mXX10WUtIpd`KMaR5CyvdohFQrphEVPq-PIc z`osraqi=v@7}p2W(ECYZ{;1e;23W0TvKbWE)Cu->amojPeRiwllqxrbqg#i_85Mtz z^BkYdu!OA%ITVUiThk|&@uyXImN5vuntm@3C_MWjlt`7FPd(vliyUNX{8%5aqcLp(ULYDCSqDbI9X+fWw7GQxJ5~JH-5(-Zw}lUK<&?d_OrL9X^tw2utqh_($Z3a zyt8O(Y9bCQI{A1~EdY@-xSS#8fS!N->tFv>fQ}pY90unUH+Sto-EiY>3-+m;+}x97 zg2>cp4%|{eDOfdlvz%dr=4>tJVhC=yac4iIc7|dw`3s396|srS>%XOzR+C3S_qjIi zU3q-N<0L$Uwue-#Qm0gECSZvv5A+g)mbXT&mY`b|7__FWPzTExLelVYPirr{miB^v zbiPzs5cB0Hf~8}=LMc#&9CKf7_nHj=%8z{eTcJQDHM9g>k%D-6QMjTE3@W4E@j(Hl*2MrEiYlL^@z@HS8lCMFwdvJ&xZ6Dq7-r%O!V(-7B zZr`fz*Z~UKTE`L6--Xm{*ampks7#JUOWqresV(bZ#;a`7<1rP3<$xw5{=xQIiawvY zQt8bF)%TIGJwdam<4hFD8eWyFl)yGoS}TCJ4vN_WJ-0Xh(Aikqe+^{r#zSrHO-yx+;HO_3>P%N?ODD|RW&$< z%cmdFSA~v8IPWQ^lc!3y$8sC>S;r%@I;6al`m{FCB|lTP4b4LFflistP^x~vw`b9Z zdUm6n)iOS}Et1n9dxU94e&|z|B#y43nAk7@b!wjc{0EBox}y#<5z3a?alw zxaMoTTHJD>_)z$3)xq`yXkO^$|ei&Uz#qN3>u z)lU;>Im|I*IRDUjmMufL_823T)0Q_AF=b(jiIbCVtz$GRG2=k6X)SIj=*(9p2Hk_n zaAP);vA2@NtfmvT%%De4dF3W&(-T&)x39jH4eEq%c9S8qW-xZBDpyJu2V**p|JLMR z(u9=HDctV%j~ zHVYlRCZLwu5K$+%rU-{YxnpD^rEJ|fTv-Kb+N5MTDSO25=7R;OQB*+uRlUKLq~|&+ zeol;$efzsttsM*mffasv&C1xumq~X|^3~U_tX%I z{QC5{ft8O+1%5E|lq*WZfs&NZ2e^N{47k;6x@uP|&-{d>Lr6+ynGWW}@D$S1m_5S( z6QOT^$1Ew+OG~1a<>AWmWLbH%2BWk@u z;+uOfE!wKjI;_q(q|G`g%{g#s@rUFD^NMB@yhgnzh`E2P+uty-aOY_59(8Innbl6f z#&aroV;)6$@j3eeF27K^MF+*mh#>CZ6J25g-)!PaQbljtAj{`y3QSRN5ldT)#8MUu zo9U}*2ohTbVVnsPNG?bbPA3@VKHp5*o7RA3zISU)#w!PC)DAPZW;2XThe?P@PgXG) zHmq~YZ03jpXF)gA1%eDy9T#1p?`T+i!=->?zatTvXqxcXH0-`$hZU8Bb8Y=zG!SbU z0%vRxkO!{NFS^LcD3FMO)p=?C=0dq)S56j!bG=J$Q3Dj$beaXkD~_F5>l+K8C$7lo zy#!T|OqAKF3C@0ITI9r%G!a`e=@O=el969o9-HFj&OZ@LkzCks0(uU>_u92pKvY5eeDpF z(b!T{vXBl_c*Gg*a>ETbKB+v_$&6u!hro~>?vaih>U!^&WPBW(LV!v|m9J$X8fkEf z5_^?GKg%hblx=%FA_pg)I8j|E`>IGOsIL^0V(_IbHp{%-RY7v`ER{ZInVo?$(?fmu z1?+W&W`aQF?(R>vwMmCt(bqA7#W#s=%TP)Ln&Xj<`np7A1yIyU`SNu6ideP3ud3$k znhl{XTgcb|yaUzY6n!nMZx@q9Abo@3r}F0Oala3&O4GiwM7c*U_kn78qO8x&b7VtvwgBr+6rR0}W(Z>~PJgCH$b7hD@iGJRafv0{22VUCerg751!wGXPNOEy zg#9K$vT{j<;^rJQrz2xh6d}rv%CMOERszlla=I7_Cml`X!-kcpvdIN`;fAPE&?{hA zMGV7&tz`?NP=&Uu<0A1~Ub6;-j=449W=6Hi6u=1Y#HYB;Bz)r|ySJ@3a+&6CxN*;g z3!2~d#fXuCm^(mE`ozaMGHxdE=W!x!>b<&T`@que*B^T4Y{BNp=Br#*1zsbu^$NAm z)+pZHV)U;%IP~EDp80#=YvjSk{`tEvFWMS@w1e!4qdJPhINH>611ArSRdID(^q^66 zk{7?Rjn0XRDi%nspl+CBa?+XX9ktBlM$!?JjKdm-YLLM}X?BMi)mlM`bW;=R-gNFV za2bRQLC`i)o$#~+{IwD%i_-2y)H9|@lQmsY1sL&VYFs#8w{}JBnMrW~#5V3scg^5q zd-7B50<~ROwiXj??Zu#Qs_|lQofF3an)W}jh%Mjzw5Zz^3r19DYZq8fsXFhEvzAS_ zw1}~Qctc}yG<=7uMfulsZevSaW3Ia$j(~-4CLYc2?o60i0Ocf8*FtP2e#s|q6Rw=^Iz}tDc;(7Qb+~?(R~{1_#c1#@kvJl z-^KfiQ**-&H{5XJlbWS)?G$HSaY%2d@3ac zGq|*(L=f}VRV(S!Ok0$~!Qe46G`QKWWCkd*Es}9^@xt{Dj}7<(LtbyJu5Q>L=vuof zw0A4~jR{@G=vSPwvC@=xowA&**aA`bW3eQTDvBUC3;|8xQ;!aezxboU)fM47e`tNJ zvFSB(`8fln{SFE-N!j9!Zs#U9Ve1 z`XQqRJ{jnfO17dDePpo&Q0CC8#$Z{K2tiFNqjYevw9LV`4u)aVB9rB0EX}SX8pH_- zQ|%Ys%Fc9~Sm&i zOB2;>2MOJ7^5RSZyIyTMRv9*L-7@%=t>qCLNt66Gs%8AW=-a7OSWTs+4kr`gmQZb8 zu`nEGsB(*NLlvE6CUIOoH||0#!U0L|-@pI4=bo#tuaCuW87x3>S;kL)TU(pg>jeb) z3t#xc`Sa(+s~G&vHWn{AefsoQzVa17oImrK&m28^lu)>t#f|R{@xRkxI5neqx3shf ziaP)BInen@fc_+Z&fh4zF$pMl{{GQN9~EqOaa6>?mv{N*Zn)uw8=q+CmN=ooT-F)G zQ7nuMzFf2%*WGZ#jZY*`wGlv;TvCY@gJR_l)oGDyIFc<*w5S@KS!M6kBAWBpsuD?r z$(fU+^-!{5Cpc=7G-R+z#gy60bsKBu$RZajLFVwS<*_gOQwg(p>y4l{5pTOl0`0V!?nMKv^V}! z=kh5T*TQZH&di82GB}+Q{}mh5*BqkW&b|Rffadg-iqMt)ZJy6Y1~=RqOe%yz$A_Jl zO!Zr=QxdOHIit(46911ncSfYsKY|xO*_%rjBW#VoY>5jAd_eq(DW@xrkAR-x3c$xi zvPkrBh;awOj(Mz6ej!-Gs**C zQm1x~CN+jO(2d)wA*+n*i?gO`z+Z5sprv>>lT6La6`0b)^ckI`Qe}>3y-uIebiR?) z7{#Wj`G;_Q#Dxf@pKCfZz7V}iIM-4GYdZZ1Rcl?;&+XGRsduPq&q}<+Z8)c4&El|& z>CH*dX7C%+jFV~gUMCzGw@U7sHNhLyONuT~oYV$K$(Qlvoy}Q}6+;G#TyxCj3df@@ zFxuHgWr#%~X9Qr~TX!hlD7FN+SQS`f#oOzC%SA2SA!mgPE%JNaSu2!grbM_3X8Zn)vbor@b;M4}THgA%V;Qe&77 z;Ss_8A|kyqtfWb0v>r~rQBBD(B#UB96;7zivx2^ekZMJd&u(M@smKeWeYvnylXW5s z`A`FsQ{Z}mm^tc@s|c#1(V`@nylI2PnM4dV%2I?Am2lzGGr(3snc{T;IjS8y+_h?5 z(pQrz_k+@l94P2r={F8Ekd!3&TaFR4x^k%sD_gdrh>fAy$hA%GrkNv6r3G%zJha3P zb>b)hs2sypGWA|~0&Atx0$6YwcTrv!%bIPfla5)lW+l$Fb6wLWk+n0VU2do=WOC%$ zL;L3QP2ItEHyl{DputhxoavqmJl)34`8Jt7)*_L&CXSS)`eh>_x=jYRFO8nj56%W$ z63jXNj&!U{Y@HWMVv}(JlOH5Y&oyobswJJJ2&NfJDU34zjA*=OU~myyH{5XJ-U=5q zzujRvKy$;`Rr1$53OT78cZ zow`T^l&-|l@&o>)av)iuW}c=4W>}MoGTz z!vUc@y<>P}4bwFm+qP}nwr$&-*tTsu6Wg|JdnTMD6P%v=dC&K!|Mk_oYnN-)s_bJ4 z3GDroEgQV}bKM6J;7UiI56AI$s$4SqD6i)(#vwJSIOlrEou`cR^@4}*dt$2e%z@X+Gl1| zXnz&PRJ;EeRBErP>aXjou4)=$`+dt7k6<+-jFVe;8EIz~M{J~TtYu!M2A)MpanrM~ z|FYnquTOSoioNEKx~tnXbCvZUX*|>y=;Lg>KM<3fQ8XVX#!|CR`BZ7U(9d38R^h6< zhs$8Cw3FJ@8Nt;<*i&+RyJs9g^45l{&vnqs&oYVc0LJsY5l5vtDPNX~Lxgr z)N!_%lSi_m*cd6cwoc(Z&C_f@p?;}76h;J<`R<*N_sGc2x)3Sn-H{_0G!N=`!@tx< z1Xs)5d)x7{Z0^)ss@#AlY0o1upG)!2^K?*GwPrTH#sD|Ks~FKY{1I%agKL$7Cnj%u)Y73=?uzHY z!sZNz@Qj8q3-}Rw)H>Z>d3hhQyry5-%~B3s@XMa=AB1dRL~}}}_v@Z}UJ>?0PWF-W z0bh@Vev+AI0D>W7P)e9@$L|+M5L*wHLGZC#U&HX62Ho~};LQOQ$lXjxf*%8Kn&A_K z0=}91x9M}QWOr|p1bbvfSi&h0>kgYurxLIJXERwTd#9XJ{r~a=KqTuHG3AdDQ^F8q z>;cc_ogin3JP612$;+QqQJeS*w_?kNNU zzsvNYivA$Chj~GnrZk6b&7h0tmG#c_aS8(;hZ08^_u@ zK1MQiUaCZ+%+NE&X2>{7r*mmJ6059>FdMs9M8W;Z09mn`^MsN~XNb|outiqhHp#sh z?*Lj(Jj_sREWA-(XKh-5qpG&<7zA!%x_`qm)wWx?dSRDFT1kuha4rYSH<=3EYaF_n znVGf2BEs_fLGC9`JWXTwjMAHSOm>9z^6(o+6QJ%8ci9uJmm30x(+!T*qTx|kT%Qd7 z>A>3#n01Bxx1)dtV2rPHT)vbsXW}{7HVPqjT~39{IBavW>4O?zpba6O&xH+KZir7m zN^S*H#$J+EZ(zkb>XK46BNeR)O&YZ(#XBtQ97A#qXVi7En6cDrnOw|!9PgbIqhYro zm%)UuBp9~qQyqfRHLYQutx|SiWYOx)TblG*+#`YF%8>M(V#cp8)lyie`kkk(!U4~W zCj#xj;{FaXu2AD9H-fBV)ln$SE$0|1Pwe^LtMy%KixvWtjvaot65jpxSJIQ9rg?Ox zXpcc7xxLM5js6gm^2WhJjWiUs3fI&8LG*s#(f=_gg-sf02qU1^?J`;QEa%f5!0ci| znc~aE>99jpXb;%C0JINBj_R6`ROoM74d0hCHXQPl{|B>+m7=Yxa7+m~QPe9y9kniY|qflm{Hq%|m#ck*W zsI8~NE*CW1sWr~5Iy>kCb2UhGd~|t`86Bn79h=e2?>v?pK5^qtWOUO*qq0FlFp?a= z2@E~vD>l4mn8> zDOCk7z7yF^9R|RxkcF4ck<}PyYT1MurNrZ2Y&kb{MyIhgjrkJ6$eYCw_tAuo1`2j+ z#%#S&YchPd{uT+1-HXRUwbIS`18{LZA~TA)N?UtgE`sv@(vE}EbC>OgR>41J&Y~Dv zrOkpe-{ZR%RlVZ4>MEWCa(QN?oIZ8fSqCJ&dYTrmJr#>hPFzpU&PjGz$4y5o7k7Xrp-h@j7)6@x@T4!h8i}_=-k3$* znb}I6z{5zzY&Sn5_luw-q9xW4#}+KcxmY-vCxs$1zJ?GLuyNMclXw~92J3!pzS;s^X2zLrEP(kpt1N%$m;AJj#R@Ou193TK-jTjn*v6yUf;dRYnCk z=-nAx2ZDZxe+9I&YIrY8E@~ovh?--(JjO0bn0tq2PHG}xp<@SQ=zWCY0eo-<`zRBB zLj<^x=oB}?e!*(z z!Vn$gIh=5y4o&KbX#EQ_;2tyJH6noPk{;}oFHa#R4>iN${}R^_H?)<7AC$#$I2Y+2 zb(c^5&N115*8w?fj4-)d%0{6Gd>tU(t}SqZPp4_IdbuGrO?jylF0Kg+ zA13mOs1yV@^d~M(x&zB+jj&&x7DV}GXATkZH3nPNW>>C;P55TI%~tY7BaPhB2&-7X zXkV=>Uix$tSB_PuUO08L9?EY|HOZfe=IHjrE6hJgRo#qG0mEzR4zbT+G?JC2&a?1j zU|-v|FX&089g^Ip@T%gm-_Enb8=RM~w$;lTsbw}i$gL9TwaPfX)VkWX;c#@j^>41ZBsyP$s&7r548xL$4=K63IwVe)8lRF<^MyR`XjLa2BmFi+fKp^M_oMJ-` z*$8>wCfbG2EZFRtU4z%^P!$$|XSKWg#`WP^l1teMZV{l>3IPSBoHk1yTTE6q37SeS zEZZztcRQr=sN!(2x<>loER%^E>$`7rfPq7+ldvo2-Idg?l5B>TB<}DIy{mm*b-T20 zU#X3QLNoO+2AXL~y$lQ0Z%=uv6uAxf?y%VtF$hZQVH&lCu#E5;A$g49(#NW7&Ufqr zvA@j0S7`mJ!-h;lc=7=SoJ4rvV0*vo`T$Ji}GuboV2w_hwUU#@mxoZU_ppciMb)y+#bloyz~C~ z%m3;p!$zQ{=L>fOS=mhzyPlRYWhnP1rdok2uhB+(AhUI<)wpgzPi7~so96@$72R?^ zrN|P;R!h+|4rUFjYnfultdB|}e67celSAq<1@2CMxT?2=bunKK(Mh&Ey!FO92Khjcn~e0dxd??Bx6I;LUq5567+#eE(PkHmqDQh`aJF)4a5EkJqdCLYn8d5EKXZ8VJqe(j5g>R)u zayAsjBxFNT;2DZTBY7xPu^sT=XfOFkiXc=G_&mfe_pIA0$z(sBm6aFc9_UhD&juvE z0c;xWKkko|sN8JNapNSi6uLH8x4CaN-`2vy!U(Fn$lAO_fAfxC& zrRO^$ArAY_9k}jN<+SuF4nHUf1!=(N+Awo%&(lS^eV1NFhW07#fB71|`q89$zaB<_ ziy>@LgN#B1;3Hw(d+dstW&vx)u#Pa7AF6PNg9+Ff{>1#WusD?S)1ocz&d zLydQOPJCVn`-Xr4xR#dFDsxL-SHxvJF82P+^ynmZAIgdMr|C=c##q(hgLB6Qr^)_J zL{Jd05=y|^X~ue;?w_L=#y$YVy|=gb$Ovfq%YMN2MQ1@D8KXpD2k+}`wZZ=xP!*CB zjy9YlqG%S40(#^fyUVR%nYKNI@k<5l5x{v4ymfx>BAzN^wY6GIKy2BXyySE8kR}d1 zBlb_R&#}!-|C!)FHT%e@4PdzqrfxCeq4c!zm&KAhOoU&!9TkG0URZKX*|~Q=z5@UQ zJ&*4YYW`?DgN(OPb5qo;{M0Eoyqr;cfw;&$*H1U^EZR+@wBwpwZz6{|qr&=4V0k7x zXHdFKaE?{s2wR0A{Mf{I`peDgThM18m_XCLytmuBJLjYO@2^Kn?P}P(!~u%#90*`t zdkGwCiBXqdy_`gDP{y2_i4sh}rgqcmX1JJo=CT^UW_QOrCezK_t-ZTHKlZ8HXQVhb z0+C)m^9N(g_k8a1eCGc6|N7H6;-jw`rR)}^vX?2ooR?%ypSHGffxL8HOCp~(H#5|H zNEfB18g&$9t7zRszjZ9Zs6@(&pU+-=1vH4;Dj&N~lDv=~{q6zZEeVQzc-g#8nIf_; z;C`hRINkp?>xh8MaRcDbfe2X!P~@DSpWEU}Q{SelI_?0axHyDkTllsOra&te*G;fw z{S_;xm!Q0BjLuIHbQDNkZ@gQI-Fz15t4v;Gi@;D1S71(_HSZ*Z7OHE_F$R1!6Yvp2 znB?meys8wbx7OiMJeVJ98AGn^YO9Lus=P=*$%uf$HVnrau9I2Vi7m>*)}a@hXv*yI zsd9)AB&wGPWs1}7KN8ea>ISBb1Gt-v2cG>Xv7iSCfzgV~S>epH!%yZNCE8}4m3xbH zh~br;G!>?)u^F*S9acosu+^M6my^kfL5cBdo~q&%zp@f7N1{+Bnfs&9CIgL}Q`O5~ zvNV^hg+UMJwhAPE=Y6`s&)g}_Kddcyy}yBed6h9ni_Fh50iI7F=Mn*W#9CA+dVswX! zP9tqDc8xPb9fnohG(rz6v={DyuFDE~S9r+gIFqwHzOe>Eo9Pn@tDj=CTjvrVZb5Gl zGDahz1oZ&Q)6U{rCZU9)ZkXi?K+03qMw((R@cWVlX}m`;9p5?j9r!dmRCdH=f@s_1 z0|Q1*(kmKg-^BN)@`Jd~>9g>L<`(rk*Dj4cXmPHf;Ow95e{WQen61Qxd&x;$Bd-yx zZ7Feet~!TWEi(ssN-DheImKF(?8?PHoIS6SV%tQ}+D*NEmhW@sp9E)^j$?qWilw4^ zkXM=O=x8un~byfp#zm&l*eklVYigiDiR4 z$RwPEeGiYAfoCl9@@AQ3vzsX&x5Y-yTB}C{=EaqsTs+sw*O)bVe>@T>)}rsGjL%+W zky0P!mCfwtU!BwnR!3Htv|pn2TeH*jpBZpBfb;}A8)++3YOhY?oSACHg(eOiUUAe) z{CJ}v%dR1J&7vC~fr8=AKQ|7;AelywVwq7(!m#+Btg-h92amPW3C;SSQH){YCFOmF zPwFpMShc(WjCo4NA zW{AKhU=eB211Exih=@pKgb{&nB3J3lK#*Z#^F)OkBwH&zvaMKeey>OxL5WBqEX%2o zxttO6!Kh7(tNdW$5y3LO&K|``h5%wmD$W9V zjjoy?Z&Hl)KMfg7NWUWE*80W4#OBFZ*?}X(9e{f1y0h-Su*ph1*T||dor-p?;F}TM5TQs*&vNFdY@DW%^%&;ZD<>(*$$c-a4WG07AF}{1fVlI5 z0E2I0T(aZ8u!A{xuB~JF&$0C@gElS>@ca#boF{ z;42&R?>~lNd}cuLlynwCzpSE2GwevrmkPl6M_6W{+G{5Ijps=%@HhJT^;=zC<7f9g z%(nja2JnOzxyHvMG0k=YC5J?IYM72T4pO5`NRh@+Lu9$F2 zks&GU`nrChZG&dP>r*YsymBSbUs`fKQQq^QM z&3Z8rC(L>GHHCwg-P`a+ET=^SPunw)Cr_X+9?XF{2+?s53bAFqb_Xfowf+B!hEY&t z(wW5Oiv2CGa|jGfdHZDo^>~OTSo()-c-*8LZXC&-Eu6BtnU57VP5z${vHtVXid~VH zWl}kLQ42DePN~i;Td{l%g!cJ;=QAsa3bkC3Hdq1J2Ir%m&=RtYi=k)aB%nKVB}JRx zC1OHjEUZYwJZEIg70s%VJA4zI7Mi;6kah9=4&y;{CwY_>cH;JK?Ui5MSD7;CBM_Xk zYPw6SbQwBj+({jG!);ZBdIa6qLnEM+mN(qbI@AI>TK8;1(Rd^*Qyn#FDE~Clst%L< zGH3sTB5ay{eV*CA!@-v59UP zQfiI4k~wicEgBU@i7%aFK9ahwn)ZsE6kq z0?(q)7?^&_#hUyQxA#dX3Ka=(aVF~3z|)VfMbFFXR!+kNJIM znp2?dp?I5?7v8JrD;y`Cn$xXFwRvA zGsozs-^IcZ;?~$1IO>D49(L18_z|t&TK2RlNB4I-Fl^w27DJBE3>aI6xxA_D?2Z%d zLgKa|dkq@9r1b>HJ-ml#(HXW}U^(WgV6%jD<(+)JwPJ0CDPqYY`|S&VV3eX_L z7s$9sqPjrF*N1VO!mh00GD=?Qt+wkbg&zQHw>O$M!UFf_W4f-x<;_j0nX8zPYl;yd zi{+F8!o~^9oA`UzNuSWic~;c=@~b!Jp}F6TW9mFO(o2U1fEy`02q?<2|3TJkEoWxU zq<#2`{GF4{{-?HW=jZf8UR?sh{M+b6?gp=G-LR`lUpvF@!`>5W<)mUdoJ|VeCzbY6 zlN&1E|MM_-#fxBS=&kK=2hoj?t$KW4PmlE#hIiS`Bh62f<>-uDn!Pb|zM&vM^Pxh5 zL_&NsndLRezLMqTfJB)2e}3DzR5gRVcpA_;%yG4bzh%!=p^&PuZH! z?X%2L{EId38)#mtU3@dU@QRSDL3b_cXYBw|sIfRiHmVADlC!3;D>Cdn6`x-mBOR4P~`Rh(2^we@#LsPuVA%co7X9Fi;Y@@Q}9 z<6h4CCJzPTs5)&4VrPnCQ2{&8GHpnwy_gf^;isyZ`0>g#nAP|*2wk4Vzu25tSba)l zTTk8cQAfa4A{zc8ZS@%{=sXym0jj=f||y(S}t0xoLTQdlcVnTzt}nRTD&HRBjW%xOHNaT z3#Oi)pDS-KTX0y;DB4^gvYcL+#rQPm^|BMwFD#ir#5@oMoWv7J(ZZT0d^dnYxI)5bWQ64ZsmK<77CLtELUGSN2*#3}e zd}{V{6qYckJ__; zU$O!_d=!Q|zWKQnIt{44O@(<7xyl>*M!Z9PvdQYqcu71ip_2qjoJTi?r7wDT+?HP9 z5wNeU)Ru%H$0tTGVso+alnKO+XM@r7{K~vM%*+Y0R;ebqe3RzIWoHj9CcolgpNtNJ zl(CfcZ=n+>84^FVOh8!i*l`B`Lhp;y(7u)iH^3)_h&S17s4dDSc|S-9qP!>GP*m{a z5?1^D0xr=KOLo1JbmbkZ-B#x3 z_&8`%SJb|Y=alaCafJOum-+D0vN%Tf5Yd>CX7!kvbP*?Viffxix$4Crj{FUo1DjelV;Wd(rWDg5iF?pgDsj3tWh?-t z=RQ~p7&taHP}~!qN-0#C$&E2GvTg;{*qacCS;AP9$XEt(pbn6PTAaZ?gim(75$)QG`a0sDPs5b?{#%Lg zr}rT(;bcx|7!|p0+;T4&cEJ8nNRYljzONWCr0tP8XkZ?6WK`^nzIYYKD5<%9cCIbR zwrdN^hagGXrmzxr(p%!cb*TDL4Ef>y?8g71-! z7sTxoUiK>IO9PeydJTTfWU-cv%*J^FNgKA>r2P~#R+)2rO@tVkf)v4ZgfkVrj6Myb z8tK_TmKo_m{h2KiqN#3F(*U)gM;4CTB&MOzQ=1r0A72k{B;a#wg%Nl*+)e>MACH@r z=Oh__T6FVtxt;%F)Glk|T?I6vaCO`gPA?;IjnY<6QtFmeQEbz=G~6ILp|p0#2^GB- zHU{)@9o!+NGef~i=Z_MUgIm8Wl@lgNtS10uLDdWnQKL288_65K_5F7^?)xXj<6!Q} zAuj!&v#+Bsdg);fvbc$+uOIpk)ugtKb=@2g!E%_&austuzS;Mu!tiN90SH$*`q;6{ z+OeXD~=<-MI%Ah8bG=YALoeq_*%{3?`<4K{iIc7W-02RN)6Zz|{R1&On4++K$9%Z^;%0z*@)I*M4 zr?rp4$IZ;b5$0`9Uw6DIf2RIBm3g@V()=Xx5cl#+_PwC%H+fiFR4J64iJ2jKI1jDQ z->ot9=rtEZy&%exV#YEKJN{y_6)NbkzS0s0U2~r^0^?cfT4NDl4e4@2p(T-Q!Xy5N zr0EtZV(T=)`U^RRF*#0*0p#$BQ79S=3kK9Cb_GxKF~Jg72#MvwZz?esJB}^kxQsYN z60&ig-aL}yz(HghbjipaEVl4eUMb90GuV5mq1XbSKJw2`CzCAN&W?G5!`2muqwAdI z7tbF3m?Yyo1(N8i_8K!E%H+MUPI|q%YFk0JQRNSP8LhU82%I>oEt#pJgX{J=u?kCVbl^ixz?LVW<@L8!{Nj7aUm#oUra zb5eww!DWfiKQymR5Dd87mpBt&n~d#nk*x4YU*U`_!C${`DumNphlJ2J?D4v4ZgB90 z>eP(ze2)i~4!rtGOG^t2jR5thgx}-8iM9lp{x*vI=}s&zk2Tse0|PY+YicWYXtM9B ze>S6_1RK#3zfhkY9wc|urbFS>XJKIJ7LGLJY^w}+4h%E6JW(R*dtvMEMb0t)T;7)# z_@ACm_TU>2#=;dl1|;4E*s;+qGkqHoL$dflnkz8L8BxuxXGr7pf^sE`T-M zD6{bG+yz}ZmX=I>rOS4+%aFp1L>*Q<+G>-P=q56X*OjI@ypj(VtaZ_a2KmuR2&iPl z-R*4d>?bdy{FcAf9EKanah-sOiUmz#7f;(>G%e1(Z5T+WO>%>Uyl;PwRjGxcPd0|| z4@)28#N$Y%7L>|-=s^LmsNgaH2(oMmK@yqJaCEa8i1ALLdWi3OGpzDnz$>h|JHqMy41R%`78Ump10cVguiO6z@QZ zN(iSO-VH^{El4%IKl?fCzC)Hj@Z*F&lq3#(#+il=`l&=*JZYt#{DbU!FQVSL8*rMi z&%@Eid_sqDY~9lw!=t{Qvc(}zN@1@i+CUtcUx`=8+WV6kUt0v zug|JVbTK(`Q!&SLv%L8?DV=NWUOfVu9f3W7DY`OZ$2gh06s#!GCR$3|x-XSlBp}X? zR3a9Z2|`JW1o@fL4~)rhCE@Q5Vet1%)*0x~+7q~2N^zUlfF=SL8mIcHP3cDk9%5|YW*iP(Oej_wtX4~`S_u4aM#I))=BH@vLw+UAaGD1`YBd1{5(p) zagL+m;u&s6vSd7~&~lJxI;0Oy6XEKC$ov^`d0y+#OTsv@o`#|`>YeD78YM!EE*Z3x zM|-*6y7BfS6xS0w9Z8+(Nw_I}{mjQd+bP;e1P!K)H-&*%zzlFDC++q*OsycP(W=~8 z(teUnEBiGl*WAqGvuQqgMYyPng`kE1EZP8!Z%*GRo+(W))kM4wFj~H7BZIWA*6)1= zQ>dS=A-#1t>N|f=H83#ve9c5-`ZRHp0&ar>k%<>Zms^l7Q(`L`u+k-+T3vw(6cV5O z5_Vq&l#C*e{@8k4jEz>xR(B$7uF6JtOX-3iz+pSaIt5BmA*F8w4IOfTN}j^XUzKb! zJ2te`whn7ug2kBD)$Lg^sNX*&y86xpsrI0%g%bv~*Ln+k}T&5V^w|w9F!ABwKO7Pw< z(Y{DhT(D|F6Q~Tx3GvOa_}Tr{6b+n~l~B7@23_-pk}=k@#r~$lm6@G#X7E;45BFQ! zu-!EknzX!xl@>K4?BdW^nCda-g=R6(CEth>`vnfsxMirwGQtfk}0&{AxP8|}y$J|fe9M(4cynfB94Cj45|A5Fl9APGLnu2d~ z7#a0)H7nA4zUWYe$t@(HR|G1P`unQZb=-TCIHXT6rV@6s?FpWBq1!LCUjRRW+-XxP zF&kKXi@Z+$EL&4k6U1boqx1eS&Dj5bRg;kN<0y)f3hFDZ!M9A1j(~i)m^&DUaOKO+ z&Mp?mnAPC|JSZPq=ITk*9*fH~PHCC)?SV0{UW|!QsaS0|@~@^nd_yWEG8-mZh)!NH zJ`vqq@zOAK!C*`W#M=-*_vIgpvi*WQ4@rd&`W#94`DpCtwGD%vD{_?(Bx#f(V^NNab;D{C>sqUxft8s-N+Y);UNV)r-26P`JF)D2^ypZ zh88kVu7nH^V#EjZ0>%KV;m{;plnBdlxNR(6l68MckEzdVyl+>RI@qo$v#Yit=O@H`>J)DT4vj)xR1H3Q`MII!EV$?5r;UH(%}zL z>i?MzJy1D9CvI|%T7^=B!%0Rs#XeM#|XG|AdHHHDCY0#BR^%u-6KUtVI~cC8_GLM zydrI~Ow>K)YL+=mJcxV5XOn@)dzP1qR-2#)-stmPfMiI*^wbmr0iTwts;U%-(@F9? z!@=^wV@z~(O9Mifh%&B|d&2UUqWG;2SM0oe{P6+ut5abF0KtHXi8-t}+|QT<#P)&N z{|f$r3vLg}RlmzAuvZ}N@bt|lu=frAG}qyLoOq?=O+JXn>OiyrhW%XQ)ry~=a1+DX z_W%K4ju)BvJ6!84I0AqqfHAw|LYfDnDJ&vHr)M2YOA{q>qDrTTm!W!5+UvaS%13$D z%X$-S0~fyGZ=(=+&o{kG0j@%zq17ISRu~2;uil4ANAj$7owgRfNI+jnRZ&oduem3^ z2ZvrRDeG@Hb_I+03O9hVVUn&(ZM|TVpQR-@TXdT=(yy$fn74Mvq@w>&p+o{Nm#%bb z$eZy$(I4;4LAl#OV&$9mK0iCzcA*25h_{We$XScV`(6g9i>#f27I4o4!)H(EqF4=x)7mtB0)w%UT*k50SG<7NI653^X^=isJqVj*b( zNJwXq{2_u_@ibx+2Q=6)WuAo#uW?p%il1glc{=VbRWenK&Z4ofPnn_();ziEh!T}< zWon-`uS617yI64o{rw3x&YFbNbZ4i3q>Y!>#2DS|#f%n!m;5DvQ^_LAjGmAhNBJvs z+O_qEY!$Fm3I)E?Pnv>Tt{GEpz|rm21W%0TBiOqi1-MAP##=vQT9s%oITYnycR6ZB zNMY#uTZ6N)nM?-ftSX-FBc$rAsh$D=$vRoMs9WYD4Z{KLtD0!2q>YtAD@%*oCd(mM z;b&<|7 zIlm3pKV8hqBERU5zlToakB0%86~@EkS6-n{-iXk&8c>(0i9nnM+lkBA9lza!_ioQu7jl1*hh7pVUi3|8-`5&AC}%dpy}3tb0|T|*j#d9cY5Ta@ z+uccV9>umVJa^sKCz41b;Bh^s>Dxc9`@gQ+`=0CizyJ1s1Gx5q2|*ky2+OQ1tP1#unDv^k zOA(iD7dK9y6r(F_alfA%0{E{+#}dl+Yxt!I=VxZv&L?tctz#$d%~s|Wbrl61z!voS zl1HLl#8=jS#9-l>5@xb+C7*$@tyAKBUPOv%Bg`w3!HQ8Xo_>GWUiI6z@+Ic@?q|Pt zb7=qC!1|NInUYtTA=RNw?V4m$8)TMgvspa6T&>A*nw-)pAO@%OLqT(i^#wG!N@-|- zIX?*=#%|?av^3?Gy?(sd*(nr4BR>s-%EC98v^e+-jnKG|+kBG-PP4QW1-P|Y^ zdn#;`acqQzctnW%1syRNS9e9O|AK^_4Bkv;K4uA;J*^zsS)b#$kPw%7(Qx7SaCxHL zcpI_3+G@m{-7b_bh)bUxaW(@&)_z{+Dda1!Y-ts?S&`LvODQ_LN-7U8`@@1x;y6F#QDK~L4G{0R!lIdhCcm)r@S zBwncSS*l1>S!JT?Q==kiIB${j40mE=7B5vlSNo4c7I9NJrS!I}Gn7KI}{g%A- zZUeF*Vy0rUboV##sji8Y6hF8ES1|FyE*4pf%OJpJnV0$M5#s6{rZ-~Zy#f3(#(BVS zY!xW9;b)%AQ)rQPSl9tUDwiA3qVY`D@~hl%YPsL{Q$4Qgz1TkD+nI0S06 zp%wI#J;^g@nBC9EZ-4Fiho2x74u=TtguwHk zN`bp7<4ynzyGqkLryyheUc3S%)gHyKBIHFVfe$Y$?{h1nMH`}2FG{*wz-l|=WJXzJ zxB~ZmZX@i0(?Qbu5+szA=bC`*=VUSk7+z6I>h%q+Y*Q^J1KG^ECKx7VdKpN_*f3prrUOWW!=0KSK z{SC40hfD8i7loUI`nQ?$mcEiwP8;oqI$8A#lSL-8n`m?C5;+z5?qzV@#OhEc7Z)zs z;%eWFBoEfVy%3oq`{-0u za12`U7IVsH^9XbKp%^nyblH^l`#~bXB-S~S7MO#j*#RFe^N~5Y;8y073r>pjU<|cA zom=e>VF$V5J0Dp?#n>N1o&1FhOK#9^HX&}UwO!3l7vYJtZ2yn~ubD_%TTs^s@?ELJ zb9pu*RLt^7Qs|j2VIl`gv-~PWg)JsV<+x=1o3!FrA!Gx8guGR+z&J;ZM6@S#@LJL# zj;?fAr+_rwi>H%|-M6Aa2+eRS9AJGD3e*hmH9<}DFp>TeNYF{Hm@vEKqe8b#8E5jk z@ndSoUo0EdDH24EA0S>1U$aW#-)l;P^^TN~9SioNeLN$d{S*s)M19z#=G}cUnNuMr zTjRMkAE&$>9x+D#vAy60KC}r_QN4~7rUcBoa4%%+flA4GiV-_(BJHq72A$}KRdNgD z3YrFu7$cT-usb5OG|zA4_D*F z@BC1xr~V(7t`_;cWiyU-Fl4KpDK&X7*{rG$3&=}?Lb^a;J(mLR@-cs4T<#$R--pEu zN;D$5aTF>+7J9aoiFK}0H>S>@eT+kfkqfy8L*c`+pw`*tB?;yb>{cdC^ZcN@md(WN zWt6o41dlkd2vis~D-Zx+t>lW7ljo9#<b$YNK%;oyAtHO z131>=;C1X6d2ex($D+ZA9*#17fXK5n!>uCSIbDamzKyoG&|bZF%D&<MiESoolMI2yC(2;Nm@;(>>6 zsBpwiEFd_2sp1D;EA;60o5^JU{Nr}F)49cMgcGy}R~Y4xOPnMPUeD1qkeem0Z7Y)8 z0zQx-5EC8PNs7lP4(ceBx}w3_nln4Wtck@`&ANi-rNpqnV?{8iNhIfLLyW+?8q<-f zj(Rs0-%m<;*O&VWxjr7uG_ANV*B_hvBTnQ=Y52-c{D6|B|3DmiFN#QCiAfV{FzUnn zVx^@A)4z%5v41W0^AD#AekZI!mG>i6m(a;gpcat}NYy<|w8gtfM{)KIXbyh^I~N+! z#|x9QTn2oopw6N3KIOnsBHNXC^(j^iVOMckJh-vg#*J)A_;=a?vF+W_0xvY`- zz2mo^`;_Q)?H@~WBfrO;#e~|{I-cH1c~4~&_AF@D8LXvDVtdYVL66y$A*;XC*zCB1 z0f|yev8`sNx~%@8kk4X_S5~6C_!H+KUC54C&6)R`wUBTW1!xcDxm?PN(7vg)VQ6(N zBhyO*9d8v>#mCfVzoQP4DHmfqt-ko259N#ppZ3sUUwiztm^GJVw@NE*gWCuL{9*#< zNUupC%D~7L*WQ{jdGmdRGy6w4ZFP(`>HHUO7J|cyJl6+C#}%bXGc)3mf#T(#0PyhO zGtL(@VOVqGsLQAhXs}3jP9i}FIgXLi6!RX7qM_wv;Z@O6X{1>~?hleA&0V5lxz}XO zMr!md>jRb($R0+uMfk!_G}RzG^ud#4BNusD9pbA287w=FAqiNyX5GRJ@)-@3s3kUt zS!`cI3ko%mX)m}=hE7B*2HE)EuE8V*%`k+v+sIDIazbWujN^vC$V^Yk4I7Ypt$FN; zMG()UDyjG&=Ly`{&F>y{rU#^#3e*;D7`b>z5!q7~G2q@0a*MWeEZ0rq_2T(!kyXY9 zdh_v)=P@rpSVB3+x@(Si8fJa0but+5!&&|6k{@X!GJg}2KJbrm#0axlx8DPI0eArW>hQ92!r@O_EfSdA z-R{mNx9#FA=P;hC|E#(%c)t$eVrI@Y;@5x&vXHAN7(aR;seU{)2x*C2Ly1LoWvsDY z1VR&xrQ#-%>kLkTTF#yF37wdRfmelC;h1I@ws&IUD@*;f^#?K;5h}f@vGwX9Gx&J^ zW-yt>CW@BMv}?PN{IEnap)cCtCD7<+_@oUEDcT0RNvj&%{|BT%Tff98q7wBvMp}0i z?E4iGpBz2c$lzBGDsN&`Ea?wRY(? zOW+g<7ClwLGe7=o+VGrFBeUa2=EmKq8zd zsLd;=8ACjb?ZX;4C`D3O2G!_TyQs>lRwT)2pep96sVmpMM@*Zbo5` zc>vA$bn73@xmu2Bxswccc$MQuuIEr4rv-A6AP|IFAVp%d`qXi)0VQH|^h1zmk!H@3 z=g$w%nJz4t(ecz`Z$UnG4wLoC2v6Ui_lq;3Uv~qw2Se{i4F@<*;JSxCe5{i)PX@E2)|%dUR5Mc z^~4a^QjY=OB5AC>#!xN4c#)Ku@ptzi@x6=wXKT*Q+J(wQytOh-t|TlZj&nIYf%=ip zPw-%2LrYg?IjGQp>nZ4abd4!KIdKoVfKVlm>IJl>HSmWMTvii0Mo8i?2$eom=EkTx z0lWiD>xCFJ%RF1QVx>?l(ZSJK{2X#VS=naW)t*+=l3CoDQRGU`ZyUEe_{tIX{t&&O z1N%#+oM>4D?@mF@gy~k}wriO816a_D*;a~l>2Micn)m@GK_^wV+e)12<i!%N<%oV+-oWAag;fe4x+^$wofR%lu^(#uGp1c(3iB=ol$gZ+HTZH z#DBa9Hj+!J^Nz*@d6ZDsoUzZHdzyK_hB1o|9TibwHyj20BO>3ai2^Aaj1fUSV80zs zlG(4XG1NTf1M~!pPZd;F+;$9_b4mL}OIaYX`tq2krxluh_lVpi{qxMBt(jt$NO!mX zhHtmtmK*n8r1h(Oo?VNMzVE|0iLr1H#6UlfBlvY}Pc;D{*c4l&f6kXn^PjbUZs|K7jR zK4MeS$n~)!HjEyY8~gqD96K&o((@p!gcNk0RRS~27`&??r`uTR6)!_~1^J1ox|g4S zQPALHBu8k32D#4l8(Wq=9bU8&ZkHARg~i^qkQ)Y*{zV zKpIo8zkj%KHok7q9P`hbntN8P6c;QO7cJxF%n|0#YF)7eojjqjdxY|oDO%s?p0`AvJ3qK!Hoss7KWke1%9ZHsStcbf;f8U>D&Wis-V75o zztO`@EkJ$f+;57TC+zmd?-$a_&u8vL`@10*;aNv5u#iJo-$My-7pHky>RGphzP`Gf@ zk*Ob?n!T@P>XzEY+k|}`SjHqs7j0BLl*6QCHDwKIQl6NH&Xd;wXC6@WFpoh~;8=-t z+f>5%HIGk7lBm=>p1rWr2s%C|zteF*N-E`Tr9dICSiT)2_e|jfuCzdH=3tkhA=-Tn2oT1SO7FKNi;1ThH7r!1&BVhFz=Kq*v|s80n`4$CcL_lpS? z!K9itM@3IsY0y%HY*oR83KW0nV(I}`);athi5w=l0r1j_j!oUsn^MjtA9W|y!5y!? zD4cvSXsPn1ltb~rmt5K5C_*1#c6*2%FGF=-*1WuoI`uq0_t=_-r^g)-^J3@eDO`t&-xZ+Q;Q{Th6lE{~1o4!SZgQGM_H0rvMIezu6qR)carV)a_3e()U%@mQR8)Mw0{^}_G!FuCxX$1Bt z8oP0EkJGP?jg19N9N6MO6@T^BS3wMidZkuZSF;tNN(S$bal<1<-mB4twX?JH z)?06lQjei`va+&_pJqbmH$~bAdS6)bOV)r?T|11Wiv%%ebNvkpnhR=Xj7j$xCnswl zUbp|0i5^#!1U!D1qRO*S!rCCDfihACQe!8w20p|!A@46%Pq}|x;_$4;?_EC{oGOQJ zb0p_348X)oW_V5^@;j<+h(ec2c+N#U1(R_`9tPF&w@+>R&(-5cZg2oPe9wlMALd%_ zU-!g48)NUtj=ghp((SoPw`V2)U|nX+8mu!Q}#(jw7^dBi=4++ix^|#Y;bYa&Tu**Mn=*Zq2sdn`^sg zWBi?)Vjs*&owe;{7gqO^IlA=Z&C81!LpsPcT@ei}uaps`ARRQPc0tq#_w(K!oj0S( zvoLn2%Xj+uSKLch0GI_g&*BvqfB8JBJ7gX~Gd|twN3;5j_LtVwfx@iKNbzetkR}OY#Scc5hMPwc!c=MdC^|Ey(C;|vx73BK)d2DWmfDk4+MZeJ z%Bbi`De|P1xyBS<9+!7~%KPpOA5z#?rcRg`yC)z#=^myE<{$t=SiK=ma!JIc(}xW< z+4QCv$Z*#I`Y1T1fq?Aj)`Swe_es!8&=ujz39S}ElP5^6m!Uze5?l?U+tv; z0sHJlp~Na*O1USc#A7eNFs2ZS5b%AVvLg~B4VCGogXR*Q+Hevq5VZhRB$X=N_o3Q( zTl&WD3t0{XEhR2nW#x=q)PNP%dy#}EydYAtF0^IjIa8{f_6Aoye} z{*wcO#r-+mMwqxi`8tX{Js{5-*wd6l4MH)%p?;M_etteBQ-iH&>6JquOPNq8WW_DxI@1J==Sg@JOzKk9g0~)ymW;CC3o1`Q6%EySCd z;F=pJeMFKZjY6)m$fI`0h;$pDrNi>O-~En?m;1K)-@W z95sj=lB8>QlQJp@PcbN63g0lG`2aTNGUJ$2U6CMmzZ6(gHdFT|)dMQtqRC;Co;xkU z{`^5DStE2yQ7ANzS4>cp{@sa<_peC-<&Xz9#@wCt#BI6p!`C~0do&l%?qNE`N{ZU) zWe`JV`G@rvpbuQ6dIB3>sGrl7292Fh3Fm=l^9 zi1mxaj)s)sdBO;xmN5o#9@&^`Q#QWlILbhCxV0nq_=4w#XC;lyP8gOIb4PB>uyqMP zUp3(}@`p(tE)UXlZH5`wA3mJGkTtf*k@YrirwC!5N~G(>k1rS z@w9jOGGXD|(7ajQix#xK@FFU%Fpr=apC+P?pyCTy* zrvdrq*FNDXp}gHaOBe9-7JBC_<`yjt%$eQw%rB8Q5F$;^62;2}{G$zLYD|PvB}F!GAjtQv`RB zEuluH*IZS=7f_j!nzOsw)AIrC?MN=~O+OT{9}mS;yOQ$H&E1ZtuMm&1X1MB7sy2LY zUFhaW2UKv}S8_#P>W;qusl`W)L%yS)=Cvn?9DpU{AyXa1b-L! zYD%FsVra{93Q35v z>h?;Nf5#Jvb;r)DNQWDBz@r}jDhbfh25|Y&M<1OvYu5A6KMxL~fKyYv7;tKUYbmy? zp}iVdY=pl*Ry#O~B7ODOM?Gu&#wb;jPqaugXrX8*wsCtX2V8r^_rAHk4Igl-5LXhyyOD!nNlo0= z0xrnXaFnU5u;&c+Wv(_?YJJ~eDu#5cdbplBgb-YZsG&$6CT``u6I1RE*YM>cat4t(}!(JxFb99zIW{jZ%uCpMkukdi6}*A%E-z!GgW0J!eky_ z&9EbSpc@+kUOw$V)q&ar7^eRBP2 z+WZhxckZv}wtes2Hy z5X8R*0c?|m0B++|i*vG}x90P|!0Fm71e{XUL}k?H{qWi6dY3H>E}G$AJgaN@!ZXX3 zqoQ*22%7QPo__j`Xwo8yO0kAWZb)w`^5#n1`{jqo9476ZT zc)65-i^Z7U5Kt42Mhw7!|3`6pZ8QZ@iX%yqRERd|hbSn7QSSnnw;pzV3y zB~S7T=Zj0`ii;Py<}E$<)bq&Y0_2H^;A2sHO&i?|GfdF@Mvf3M(+uZaxI8wWv(<2x zT31rVrSU}#vv&iF8MBfVqKyf_cRf0_qVUY*1Bd7DK_8JvU`yHBq*iw(7W1hM;h1s| zaSmF`-Qby-+!&5;K$eDJO4&yf_j0?t>Bit1An<|IERl4?K(?bW`IHtE{{4wllXst( zy#K`XLiqRWTcjW zr&PM^HSjoyp9F1{@ETWQp+B)S6k8@*YTPMhXQt$#TArAJV)ITOQ{M2A^JllZGYZhC zLN30dJFU7UqpCNx(q}D!n>)3l&t3uQ;lae>?(v1F997KNdVFTVg)t?a_bTd zyg*&{>Mnb^^h5&&k^fpsj9c+m3Hv-3#vkCUB?tt>lj}PGPa`vO z&OR{8Q8BJ1z&>sL})#rdSr$UUc z1!b5E6Lz6Xm;ofx%1;=tka*QKeGqW8x88aS$kBjwKk~>UfU!RQaRKyds;mw4YM@k4 zm@olI*`W2Yb?a7u!hJp;K)^-|N;D8fItnk20*mQ`Q2_MS5p$8mCwZ|^%p?lY2I{wQ zWRxq!$9~JT0?-e&cdntfA!d^sjnZ|2!C>rsbMJ#MZPhJvx;nV>xvfT07O** z>r1{5qsCl23e}<$JG%0>bR5{yUa+mbs9O5)5^{DTZy)l70a{YR2B7ID>=G=pPKYYjj|2B=fZBxt-*IB=l`_o6VQl2UJlZSSg!Mw|hBJ1c?`Z*SeGk-^+OF_+Nf|^li(k%!k)FzMGwR z_r_lg&w2cgoVXF2k{?)|I%nT2FgTddu8Nwdnh#|A}zpI9=z2%qxr;Lps0|DBwXKHKDy_ z=%W@CgudP|Eh!;Q!ATxGqB*0MQ%5V+@tDf9oO=3~?iGtd^QUo3W_2x|*Z$1&sHoCB zfM$HUY)5M?ifpYwgtG;6ML38l#x6Gqq#&n<6qW=+P!?3X3rseTmP)&B5Zx0v_p4{U z3#Xy^^Mtv}{qq*XsV-!{2g0`!E18Q_N=~FXr5PWyz@;QhS(o-zwAMFSvkKGf`7n$S z5Kuwon?gz z3(@EbIi><6M4BcXsG7A6`%;D}Fpb)GT{t#vPhWZ|8dc*?Evucj6P?1(vgrhafdZi< z5EW-XI{ZS(rSS)SNu}uLmBHkL$7b#1H#C9E=;ic1VMhhf$-|an*;W>`6gnN{m&cS} z9t$ecrQVck#aaTI*UhPwEt!Ygk{SZm!$E*4#}ro2+liUu9J6`COd*6bRIG+gu7Hq# z9ecO&!zp_JCPt&{QS4DA?l>A%k4Bd&iFubMZf<$Eh7#wmaT1k@jy94`gw9Ug!^Is$ z30Pvqn^xzKtCQl7^rTky{NW_AEhV6@moI|TS?j9jrhw5SD7)ZdUOFws02_RhK{qA0aP7G0r{6A!CEX@O2UaH;e^A1_zJ+O z0}fz$*NIOYM!z`5C02hlV{gaiQ|MT@c6xR&B_BOe$t4_avmZtORU5G9UwEf6NPJ1* z+>q9^c4Zd8HuR(xyOWC~dnLfiuEb)0D%3WL(5RCwse8~VFC?f~k){KEG@}ss+I=8d z4$3ojyn|2x04&&LE#m-<0vVgxx4Q|$b;>(rNDoK?s=&v zrSAB+QUJ}*jm+rHIFj@5>hZVbWWo*ZjQPtvFIa0C5(LGTa|D zmnA5eV??z>aJ{vAtCMEoS^7uc`&poso zaB~jV*m)+2E)NFtXduvBWP0?(ohtua>BFm2zWqV$ZCghFaCQ85c0TsQcWi6xwu-8} z7tfsiL~5`}=6q^U0_Q-0BOI(S@?{;({_$$tEgK%YW&7w`H^l%ZKJq>LPyRZg6?Fwr z$0_m1gpz0e?^gT0*^k|qJ8ERk=vz0$jNFv|@H?4XTZ=`C8k0se`r%AJMY?7Xnaa_K z0`7PK#hA6#8{_^s_M!J2-`Se@)emC6mS_3qHtStEX+QqUn91)fI)iy110(O0P{!lN zy>RKF%6D?#D{L%p@pcl87kqN_nokdk;K)mAQGwxiAu64R6#}9EVD8?hMr6m_zBT^t zEX()S+dxNtM#;-vu*dj4ux<&MR~R#fba=b!e)sz6r(bJc_CFsz`?@>71b(Dp+!JX4 z%`w9TXFRUYe{+KLCohW;mpJ$}^?A-d`LBiyKFTVCe--jD-eif&)5Z56C!*f z(;R{$@H)2c{7Vpvkl28+dl0~JF|icDToAJcT-cLPBiQOVYXzTJ4k{(^U?8ckC%!z8 zUhPTQ8*sdTcFG4WV|RG$2fzX`7!QIQ)lPefKd~5Cw`hY8HZ?#UjdAxa=yl=_Y7FkK z?((J<`z#efd!x%*?zfeA90xC_?rR@&z@3sWB^3h_eKGSO0`{cnhxMO_rkh1!^!zzj z0?3Axb)^@093`IgD)c`7Kmcd^5br}OOb>bC?@OJT2SPCglD)#4SOmOgZ}N!~ldFq= zQy_VvdJx33CZwsqIny+;usyBHV<`m$7VzAz)FNMExe^P!@=8}?wcBmaF#_pc91BAp~>q)HhCV_rPHHxV~F;(7#ie7tz$8iYw_^$Lq*B?${vOJFo?YP#F z?QKmj@;OR@DDAf$^(7v^Fs7(_K{ncTse8;0G^zrC_@)W)Ic5H&>W)+pY^e>vXeU-V zlk5AE4+D`ukX+tnFKA0E?y^?_&mCys;FcM%)xd#k8uLDUmp}yQ#W&7_xC$u1_!0}C zpyG@x4W=IHuvNjk+>Tl(PSj7^2jhdKY2ZXE5b;PRV?AyF%AuJ6AacO&fjSLE0yvs& z;|knKC478|drV&6UuqCOqyWPRLFg7IMFBOB7nz=qrgDxod7v4Ji31U&AOuIJcY6!a z=jFIYlvLMcKY)II_Q=fl5wHV;GFsgMGBTpI(vzGI3i2&!MITPy7yiRhv@6t>veT7b z-|9H*v>pN}b2!I9F~)5xb!QxMCf4$CWn9AE)+t*-wg|*ZozFIa^n5U(p*Q6?db}2- z_Rqgwf-a(_%)Fqr(w|h(n^EjeDN$k@LBsvhxC5x74M{-J;c<%W!k>V7>#N;p)g@eN zBIRogK}vqy>(_#s#^$5=!{X=)C=U5R%|Edii2Oi2_uA`wk}EDuDDvcXAk6S2gRBs0 z1CgHhnb$8f`a?ojX1jxg`he;>nsN^4m^U>wnPWJ3ArLG;=7`m#s8jejs^A3w$0ANJ zyNU`nqcC>fD5?dws&pYzXhB=?!zVbIf2T~OrA4aMNQ;qrJyN9DF>X3m*rgTvjfGa^ z|JkZc5aPHiCjn%v?^>7q!*`SShRWP9=aU9kRtzLU)4D$+rdctNgU5Qfu-!68y+a|t z5ST|ZuYPlwSx@6`HNq&w#uYpjmsH6AC4p+5XrdfcU{rT-l4M2woNNEJ&hEr|ekVKb{%p&GS))hhJn`KvkKeu_ z*1B<82kL`XZGrZ^DQK{WU%CXReh{#<3hzQ)e?0y6gX>do%}%{DJMn=HPmIj5{p^np z7fiVdUP!2JnN;&jC33P%5=K14ASzK@fAsx_*4n?jVbsXnxO;NrN94rczt;Xj=_>5@ zi4R!_bYOm+^Tr)H@x!y@?%9$E%IUXlv5eecv8|it!s>F=E`c+e4oqvjzrL{XzMRbA>k{w9O5*W%=01MkrpNAC`_mEGj}O~!yEQlQ z?i_oQ?-Ka22e8fzffNLWg23VKM&38Oc7AVN>O)ycKiCjIVsq^O*)eKr$#Z8>n?mc- zJUgjG)s;ll3kwY|&iQ3N{bR&UREPCmcN2FH+wojxP z7eB%qCT&JvRiz%TdHk^)4oA#GNHaARiK4A99BWa9t@GjJK_(eDz4ptr?;A^nVVw|x zF!KdwMMjiu=v>dP@KldN;HiI!qV6!g4vXxf4A*PY8$)+kqDv0w>gGuCj~pw=vuZ2R z>%T{Td<#`HA}4GVHXNhsq(SNy3tJhINgp=*a1ekaQeebhTmZHkB=Tfm=uT+cAd*ef z&Ka`rVN$K>WBy^R(TD24lGPGk4@kHa%GiF_4w_^6Q|jp`5pV;8)3A*`H!3gadU|1K z;T$w~37WQ8nY$#oaK5l;TKDpqm*4m`azfLz8`f!9se}DUsD`Xa#6?+cHF7$WQDkXd zQKBGw8MQZ`Sh?J{Xfc{UN1Qv;yL9pCl~1F?CtyZq1zqAqO4m`ObvM9HLy4BsF>Q+) zbzp~bMxN){`6VG_@cUKNb4?(xq`x(+;fA$&Ve4_PbBG*Va@ylXoocB<#Rl*-fJ)eq zGJ|woRRXe*WG5w|F35oO2)uS$;-7^8%7M)PlHqPZT7)8rWW-%iUHu}EyY25>BVsc=v_AkUPUs8eJCECv^kJk6t^ z*FB@8H@(82*eJ);0niKvm0OGnYc5IQWPKRMeb9K4X4 z52m1CLFu*Ev^h$og{Ru=2fSme!M@UGg)&2JkNv=jnLE)rGS(92P&Z841ID3(tuSCM z2w5sUi8Uvu>_OsWRh8a@QJwhtrYWq@Bp#UgC2_9m1EY{i_T z7zWm#QsYgk1@Jd)F9W%DFv)D5uopfjM8ruhE-nU)n~yJouLC?+vet)^8v9afK~yIg zU)qvU%;&UYRTkJRKRPn^12_v=Ijofy9~z# z1|*zv7;tSM_`^8#jVU`mWgF1I(Hl*DnHBB?eERX$IyhnaECoSH_;B6E`_`v|#=|1)U%TFLhlSTL5bQP>bry zEbq1)45!t3V=-|aRQ@}Y3qPE`4=cY1*ttkf0GY_Sn!Extq9cm`jwPyzgiBXf*SEg) zttgY#C|_2q)#`S;(X}YHoAId+n7-O3bDAWw9G7IZ3dKX&D|oHr2lA5%AZfJ^Qv+a zc-uryH#){}Gu1kmF(x9(lzl@OyCMM_MWiNU64EgdlGMp81;Q6M?9fOkJOmb(B|1oo zAs3=LB<%I7fcW(=eR!I1;?y0BlM)Pq!@6I>yC--3?5zp+ueXD><6T*!AJ`c8V0Qey zVDp%haC>&b{aaEWTxb2>+V~M0V(;8yxqD06BX6ZYpZ6yhuKv;_UqOTLGg1Zs&8bx; zfF_{yo%q)=_pfu@o|}Hx7W@4hp13>9Heu^hC(Mq-7vy6>^Dv^vNcesI+J`ncZrdC? zY;)YO+}L67TOWAO{$jzKBFWD=1)wFaOY+>m(SGm7#1ZRaK=*vu#<&q1EswnI*w#`i z62wbZLYQ2kFxiDLy^l1HH5Jq82bODhgAByyno;x5S5F)X*mRcd!K}nP*Nz^(Eq?gs zQ6n}!cF+6qw`9i*%SpO>UDD`3PCc$%;#KiCK1@#`#f`kr{D1b|J2W@m<$ri zIUod>9E5W0oV#y2@AsU0Z%cSQ&z7m$so7cGYHKt?>h2r*o^!sx@9*e4<+;B;JX186 z?iS7ej7L_HXdGbCN|IVvqZL(&%56a@ zd`91i6fA8AW%{7MN0dpDfge61$!eh#6x>BsiI=7YP4*2P^5not<=1$nQUt=nWUxj#)d6Zx%rm- z{Jz39wjH~u16stKfEL{a8G^-2!A4=9ntMgxlE{va@-Bl_aJKg|lcHtmoELd{4J0yv zI4!J;^s9;&Q%(>kGEAuG3(k~&uxL&ddq2x33CJ9Cj2SM+NXhP@wMEYKG(IE4nVAmp z8qEz}y@A)KNokp$oHZlcwOrj2Kk>PEk#TN zzCWjL?M5;(L6h3$ai31x_+bANt3L4RS>u`9%*jwtiC62;A}v}-N}C$3u_)dPd6o!a z999Rw)M?74ddW#ldKTSExtPA5zzh%+)yKRMj1MU(pK;~j`+l&B%(G&EFE|egNbG|q z%AZrE=!H9kUt%vUD8DIBUzOU}%pmu>e|QhqgZv~u$F(&nT8Xdcj~bD0KTdZFtN z+lkldAOT14^D#Sq%x<%y`QQ9zV+I)a+n3GJYDQ%k^v$}--}W&3FuQ^68SqBe`9d4) zF)dC_3t7}o7B}_3bd-GS5e2oPi=nyK)RI+sJNAe}3$#eHjhc&FO-U`I3HA62IoKK6 z;(+ZprUgKAIBFfSjg*V6X)#B4j4f-Odh=UY+Ldt|Ynp90CgZ93*OI_6Aex5pxUWbD zYPq6AUOY_@$G+>gUp_p%$i|PU-eOy}wY&R)( z3i4#YN-nNDVR^Ya5Z=IrcR*@~EgDITP*MBhtB2oer`V8ytcJVkpkW~$$t(;rs@X~3 zaMxgbE7>_gP3}A(8-5S7EYO?g<|~Nt^em=!ashRMh-xqLA$9O{16*47NYa)wkp zm1I;L+mCJ6mY%x3tj@Ny9WvaN$y^vD25itt69J;wBrqLc<1M|BW zQO8Br2jW|&!cTZ2t9@ZLzVH^f+959E=c7xJ@Y&M0qKfM@`I&jVKdT`S-r|XqG?SD|m9w!BiiheRf(_x+nmeVDV2kd{DXJGv_dm)AiY2bV^Kk{;gfj<_(G&|ulzO}0-? zCe-71P;{Xvl~`OG-L8o4>&vQ5hwji?JQRyJTly2LhnLm$MW4oHOfBSb&3BfbGMC;C zQrA5dLlZ0N9ier0Z3|A8T~~(^izA{9We*{=Wh$w<-FT1|W_+?fKcA_o89hO zbbVi9r`PNKU;pcW$wE2kEAW-$Yfvkfzpt#UBx-8t>|y-NZ9yxUB!_Lom(2;v+L0N< zsY6y4997b^imMWW$X7uzTq`nzx^(dnbp@;vu9+!`MIB1hJ|lH)pc-h|IspsQ0pj@0 zXGw6HLo}aX5%oxM^uK(rs~A1%kg08K!7D-Zpif05@@a`vPP%#-dV&AT1V2hMMRWB?O0*!$-5@uf|15Uij>v}(F1dgAVuqK#T-`RY<2fMu{#15`-jS69xjV{a9_kvijh}yNjAB={w9D%v)kYD_QCJ0dHMG20*K~P zdfK?baQTCeWYJtwMf1D-<082$9rXVypflN&*-7ZlR-7Kc0_tjrdR#>c#iClC;w=@X zHA zm4l#0AMi_Z*9$8y2vk~R5HKHegiF&>H=Q$Z?AS_jMVV*ETT~96Sw5)cdbgKY++@T|rYyv1fs9K9b#dmU zD2vFV|DF<`SiM=2(XU=vg}1wgKlyZU%^Ig6S4znunFfEMaV$I8WK84ewUfv~kXQ?Q5lu<$#?kFQO}jO=N!T@lTalABq}@n4 z%!M}quZ)~YNYX@e4&j7@OOD(2T~WHXIBLzh^O2N^!H8V zVsbr#A_F?Aty{I7WAV*ocOUWioy2U$l1x%8;N&8?`pTK9*v^r-7UW?LB%T1c!=h;# zk8ZZcwStH;u=FV3JnW%%=CY?U0+beaW*k?(l#^I=`SkAH$R=jDQI(cVbVqi zTzGxZ-$NU@u-3^W;9@QhBvjwfpCX^w$KfT{bpR9tlQ@jq*O#6c`{ok%$n@J=-q1__ z(6-^EuW%_&#?_A|G^2jw3P+k~9gzAE%{|)luF$id=<_HcShQz&ocgd@U|U>~lwvQe zxyTpvg6G2^LJjE5Kv1d^L8Fm9152B3{H_Pmy#0eKBQeKW?rV!Xo}L1*V*HC~IR^y; ze~Uu~Lyo<37JMF}YxZdxQMtkO45Ip2Of&uE@Y;bDM@g4Uo#$eL==C!dgH4nDfm!F; z?Dl=S`Aq6M7GPkMLl*zLzxz8`HxI&CWC8t^S6+dtJ~JY9RyY5PZA!l>QJQ5{U5@o= z(`A7|50@)setB6TTjx~KVcPqq_Q(^}Oy(i#dP4Fu5w^g?8rptaP zzx~AV@1G|hB0jM-A)0mgG0)P?8|)mm4c4_97$346kXYj>e zZBJ??mlVpKqV})@Cn{b1{Pch;GOYwtAa07dQci4KP#gh<$(-_q|6H*Uy71GV#a`kE zm-^iVS>qWY<9N~g4n)k|8}(4BW^QFTg!{vT_3|a{ofXYz zx4-i3_iq8uV#&;=c$SQGdqLsw_Fb}QJ~KJ*`zu>_ePG4!eXv^!<8H~FE&(xEMr96D zb|+W8-hN3@%>rZ^F-$)~0oUY5A6hfAJ?Tbwrhzx;UD?K|kGB!0i_CCL6EXu=r6wB_ z3BAfT;zJeBLcj62DQ1NFvKds1{jn5$25E-ou8g6)LP1mD8*KdIg6yUs5kj1F=;cS96do%ZIoWh=?dx~e zZn?C6-T3}u;=@UFPG6Q1QNb^K;GS@8a$N|AQ4!qjUT^U}TTTI|*ZUB~nUjxi`1E9= zPvNpsd4s`g)RT13TGqIYTSq@DV+UAbVDn(LMYbs@HHo`xN#7@$Pk+z;>BBF~*+l`p z5fv03&A83`5>y-p?uBrN`048c%A`X*2XzCq*QK0WMDim&HKI9 zZ!h_(|BZL=Y}|ZhZNat88?LVh?fjnIW<~SA{SE0=_-}l5 zvpuqV9LD4rYP%kfsTV7!a8GjL_UIs2llF08O;8>u5?cXR;WS;4zlY*ajQ+k25~MQh z*~sm+r%jPZkbVi}aVoxHGPcbcc~;akgZctEhA+C!8BzxiIE=lH=xV3-1Oh?<`}SzM zp*D^uHk`{iPNO~r4r~i6P1Gdj4XuvE8gC3$bxB0KJ?hM*RfnjceA07!#R&kor=n~8 zAx!|BKx4l^nM38Y>L>)9k8I;0`bRcf;=4_8=j<^T;5CNLc`T{^^0FgjkIBvMgIL?0 zfAwo9(SXC4v|VOhH@v+8Z3o=erm)(vq*_us0u`9rx|wB*GEZJUh5S!Ak&)HupnK6` z+SG<2WSjJM#!GCLkybA44cp3Q`5A7tVs zC$QJfgziC5N1{8X;@U2*JVD*@JX;8htgc|DZyVvRTm)6j@o;M!8Lg#xirLStv0W2U zZ6IA{xdL0YGoEg>~R!FeM(n zp#O@V3l8#tk1iU`7xeD4YGvBmX_zS%=B zFWw@^^Wtf0r~)F8SEqbXGxhFK$zNk(q z=7JfyvM~)fyeN(Iq*u$>)S*p1eE4}GvZH_bH(;HQM>UvYJ8ilynNb7eI(ihqmv=^; zM|A`SaLTj^ufbIfqrE?}8zm*t&}&{=1L_M5^?=vg;+mZ?tv>MjBhS+6$hs@sdxHZ> zwf^W%v#uRi3!wZ?O$|B;T#>E5s1A7EDR_O9o}-CBoho>MKYNu*tYOo;8Y!DxZONsrlG=J-f|r{}<65+qG-gf-q_5ZQA@A}@rg<|C`Ctd3JOydm?dS6#03|Y>?hM}FyU^ofCQb|Gn%_q zFA~q1oV~p4#F0cY(`!Z-N1~JXYFxd)_%!zMl5na*GSU2(U&f!XHMnPp<~)&uvQ_1p zOv6GTjZAChY=tMxTq*{Em^0X#)2d965lfV6fnUC;*?z%-rwA5mC%f9*eGg}V9eaVk z3yKRMo?hRLMcbA=QyM-0K-k>9&po>Lg#~3Hb4$bL?@OFpmIz+W!Y^0g>o0adpVd56 z5<2HV*gus&4{I~%CBOV2<|-LLJ2zv<`DC{Fe|_EMPegNez+J@i?zzvO_%dR_zPLHX zI#5#((HXMsr6FSW$+6p#Ja>~tbHCi>&EHjn;h5JBu1t68$xWc3JW{^+(elNxazhPY zSn{fgISW{pJY@qh`NMl)==5VHu|KYec(_~x=E(z<;m?#LeRlqUmlbd%`6MZ=65?Hz z61jpTstpt0`>@m2zcO<*ngHPUpSve?-rleW_J%%D7XQYrJs(~w58wXk&nlA`dp-QA zo#Fp@IBx!qsC6gb@)3(fY-Tc}GMJ9?q+jKe=hhbwC}T6eZN}ntbP7E-O#W$P4Imz%;iT^^V;;31A6# z@xG?}nzzxFLM4imqNabeVq7S(p`mpJ*9D~EbUl~gX22&&>qg=T?@&korT zEqTf4=;Z6~IWyOf=d2l9lRuVg7|PEkRVPqEVUc3NzFW$?rfz$N_x{22G1a5M6ybnS z-!fIWfuv_jDJwlW`U#`anT@M1i=<}==@}kdrtBfe?PHQ+-dEs9b}}|(`S^0p4nneiqSE0H*hZiCCP(;-H2ui4Vv;e@@OUxrf;pOSGYpW&!zq(>8u! z!(BFFH`Cq%FK7YKh$#BhFHRR-f**51brJ*^bv-am$dRpPKXBvZPX|vLnp}olh~{=9 zMDq-ip`XA_(j64dX|Lz3Xg<5mispa&n~6Ga$<*?Cx2AV0rq>jA)}w8oOlWXa4zi)n zPkP3ORvd;B4ZHCe*y7P0){q9ju6;7Tdg=}84Ob$EVM#8mcf>Vt5fm{2L?H*H>ro+Em1SOFPcKM9pOD>VJ``5>3`|)m0cb5Hr&V|QqmmW;L~&iLGDUu zy7bCP(!nsG9WHZ1gD<2V?;NVPJMr7$n5Kb^?UWVcp#}&%vxmK<;q%uK1d0?^xZN3E zyv+?Fd1ME5f@?ax5ocYI=iJfVC|!VTZqe0G#syItj0U;N-=sAO@yIa}0s3;ZYqaVU}~s^XO*R$nsO( z=r&)(SphE;K`Sv{?KyySoU!1x!^Ph+9^2~PJ0X{(oqKLVE9an(N1uX34z-iN&vA2iU;yN_Px8l&5q8qHQv<~Y|gAwnE>ab{A@F!?f zfC}#pYj!7ej7C@E1er9opaYo`&rXEZqi!UCs~%fpim5Ye0QYYmj{S-pxP$BJ`bX`z zQAg376Mexl&P z)n%~u_dE~k*(^b{At{8v`h(adWnuje{oHFTB4J0FKhq$s}<`lAu?2d=oO~q3( z$2xrm+7j+0UN`;fqdUUZP+0cKYxrqkXi%K^;UWcVqNk$_>v57sh&}A{)lU{jKUA^k z!Lnb?-~Zf$<u=8wG8sEuN}{ulZ=Iy3L5k*| z#?C4qEAcLVK2Ik>GHDIp*@)%Y9nnA9ANfEQ?^iSJGVki8x&oh~SSJZxDb zutQBJMUv{GqR(TQ?0@_1Kt?`EDX?T4$MQ4896d=jjIGx_pmoGK8Um+O;wa`9e7 zOhKLu)2K|i(ClMI7B zEBET=&BS4$z?N3DW>4{sg08ZDxoPFa)pl|HCdJ!C$6ur$@I5n~@Dbathq(X<(JoQxw>}a%{5yFHor^iT8YI% zee2BQ9$>om4_>)Q0c9GB`EbBP%ws}Jt!3BF8*4WVzV_QYzk8e1og~-J;{v0?y1eg# z($_d$@|SDDF zYGiC)OF0FjwKAsxB|NQWNL%Yo=mf@ODzXNqT3*v@PN+jhB7C@(urrWu2bVWo&1|A! zjG&36oEg*Ag4E%S>Var};pIc5S?=AUW+HmCKjQ-7#1`KMDRV0R>~M7ZczpYmwuy`G zgk^g&q}H6&IjL)a9BhiEnVIl4gI?{?w%N5%qML28?XU*>LV@tEb0^dcEIm#>A7?&3 zDw>~5-fxaM10Xea4N52<)#VJU2Y(#4YiPuMtDCR@!tzqi9LMe7w(a~_LcKGx)2V5N zXb#Iftl9m`s~mf;QGGn1G(B0V%M439+NeY&-J5`qw^A25q*5*DA8kWP^)P6|WbS4C zy8PlgOTyW)*mK;AU1V|d)fGpsAML}-jcjNTbk!uh!>#RcMYh|tH5Xs`hI*6n{;RE1 z@lAmc3ZijoTWM!NV#CziT~x&m$n!2*u1CfDRyDNadJ07Wj3owL0$uLNv;K%S6gK=J z4SYnqU)wdMZ7{89xD$H}Ixke_v4k4DTQQGjlsiE+4GCV(nC8|zL6}JM<&oD3e82gMW`%|Pd<-i2M_ltY|x+>`VXdQq`4tu^M z`m}R#6*6qEAfIzknT12DK9_pH5?>`nG&m#ciMAENw*Ih2*OIfNu`u9wpm5?0t;YFs zX=|aXJK{URsUO!gP};bzbuy-DG_GkXiUzl$ZeiAS0s=$p5ZX42rVhM*2W7|CAXU{G zRp*T8aYda4(#NJdZPFZbBsAM1JA7fC&X_aK*PC%dufE@YYgs+7>2Zg)0-A4%z630c z7}Dxn(rA9W7oX0%TIMB{yx>)W<7cGLIH!39nfu?}z@7^q&?@#*t>R{v_p%d5}4^~a0*`p6j7B(cb(0yw7# zh@y&A4lech88mR^LDyYQ+Ud#%V?U+4sG31JLk#j;1yyo|8hX;*1#5ZGY5rt+9OTH; z=4KyJpfQpZq@>7pJ1?bP!hS=XQ2YmpYmzSSymSp25apY;Jtz&(0BBK$t0*=!cI)?3 zMx=L~xUQ1XM*qbYXYb)VwP)Q|9jsSdf`l$Az1!2CXz{!L#~&n`yW}ua`Ud%ZebrCz zS@Mqu!|pru!ko%~pIi9?T+Bb+yDYIJ7c(UeYyW`Uo{YROzneIYUON`@(b8wXOnUb7 z_~kn?+%(_AOKS!!O;nKnLYI(06f3l(GEDFQi2T=IB-~#S_Kzit0Umj}Tsv>?b01Y9 z4Bg4*K#K08h~_j8j1Riu)I&)V4j7$|OFOys$s5t3lF<0wBU+wSK59^pX9G!G(|Bojyf78${N-u4vGbpj@`!8v)8tu;O%e zM5YILX|r9-*Xf96eX#fiJpY{X&;_NDDb<_DC{3RJ>yCl_|GF#U@x2j%us^y#Y+h+7 zKrR)eF>L#aU+jp*|9xQJi*w8VVD&fX_rcQ2zW+ilf5* z_|h1GfstoqdO_~5S5*#?9VlK<<5fJekjDn)aWeMHT?zM9MgV;ONM+cA6)!9(3H$uY zK{@z`pB=Dgx4-i3-8Y;C`R?4JKx(>-XR(x3(vO1pUC~@pb-F*tFqftw97>P|9v)5s zjrnPdl8@3y?%Z*{`@vw*y4!0u^lg2QT)Tzar-kt#6oB^((cC9XR6Yk)OII7A?)jmB z>$4pBdHjiEgn41vZ;B)si6oCTKGDxl<>h zs{4YCSOPaAkCEC_Sok34Q*Tq#qIp1>iVHKwBO%z7@`FV><`$P2s{Gs)?&BS{ci$sz z&?{{c9dsl$!X!ZCU`+aAUP_xmZ%9)A8Etmj^W`QQSF_QUR2;axW`jtBK;Gl0Z(gk#X*NJ0=S9+*w9%hJoa- zA!%8c*KH-^0Id2&*$d5%p@*vZjErrcBI6U#TgmmS^n1U+u0?kJ>Z zTrlz#<`V7uzaB3v3}mK}j4W$Tnk_$#tWGAYvWH*;4>;_MB(AOs)s-T5FL)f>>=|ng zB>{`QY>(Bb7c*1+IVsNURK!1$U?j``YB^Bv}1dAp*?%eQ1;q^ z_qGwc4cJupDjbqWxTo=sUIrqi`;hvkt3`#Q1-Z_=Jij5|k(E7}YaA=gnJOx{kyAvz zy+J&X)x}_Kh6MW>X&x-k@_VKMFA}+@3^0LHATaG+NJU0`g4dV@G7m{xWiH4^@~}(3 zBQf;cEYxy#n-$If_BRXeDrPeB(s9_0-MV&QG)O39+>^*Bq@$>boKHPC6<6(H$Zv0C zgH78B^0F=J3D{3>%6+tBk?E5JHw*9 z1hbRTt!=0c1T>JpDSaDSurn6>RU6Q@1|queB-P>2OhP!P^?c@|`c~+FxfZFR0DwS2 zhC$mM-ofeGrjm|Myje#MUPWnN+&?!B&_YuvKm*VnN<15mVG0I94FciM?@Fg$L5%-Zwrpn+cO4(YWq-P zBLYr=4RKSJ2%=U`jcl!v$?8gnZC4lb$bUw+KI{KQoJ zsoP6Vj=$bZ8j0n%=iuLmo<5dPN5aqg7PVYTKS}y2phx(;-yGcl4?g(vo)}PfYAqbsT!xuZC+Ft)?R53@Ngn~C_w;lz4^EZOI( zClgMP1_zz4Ddq3!HS=`OAfp^AlLDn-d^(H>5+9|BO0+?GwCu{z(pvIDhb^WKx;DBT zMiOc#mQ@3a0P~npMpt0uG1X>;7l{FLrY{c9QTmF?Yb_2T+l56I6e)nO>CTstFdUS ze7btX;aa25kmtX3X}az#sU28;+L}<~3~3M}FZ#pJp&LV7*8_Y0w<*U)5HO1lfT$ky zQjA1h@acNoku~4GydMXdwV`p$j*1CAi~($RD7U`}vq7M<+xKjey3PEF{LRF~gwyGq z`NN>cJSd&dl+kCm|MHEKON0K~WW;##jb}fP1rK^&g>Fu{_Mu|!Pj|+?@L|%f&I$}A zA`{AI3X4G+?6iC=&Geg7osq?P(Pne{uYnn4O@78QLz20r)ZZP<=Y*g4*UU+st?0HPI-RYE6E2p9_g>K zQZk003hUIsuIln?-?s{lp($+uon0XlpMHB_Nr~Y%pDg*smrH)LE%rB`CcgN|ORIJl z4v`7^JR--UAXNj=j1GF?UOp^rWk+p={K@N$zxnj#2TC;md~nf^_y5Pd0}CnlWABov z^869N*XSN$g6t$v}i65n3IHCbzw8euAH$VX9s=R`(bBLNKU*;_;~40h z6@wx|U`A+HV5V-a;)eV)vufG9K|Ln4c=^+1A&*srJX9Vsw=Cq@J=#q*?=dGkjTT3p z={KK8KDKM|d|2$upL@I<^p(i@yW=0)6ThH50T(mg(t`&V!B-9{{gZnVqMJ87vO5|o zKmO^_eT$y?GCbtNU2wNL&a`@~D`Yd_l&`{TXg zbM}TU*cW<#7kr_nsba&D2ec$@ca6r46JysE>`CvddEs^r9<~41&o*5{j(9cxb7%LA5 zN*B}*+q}vQUn18BhYR22Qwm60?nqwYNO?IleZOKV!?=#$qPTQCif92AJwQJ$@ zzgpUL3~tycW+C-)l_NLVm#s%<1D~~a z@}upzPH35!cM07s!?}5moV6z7y4&yko=o)%v_DCvkdc|;orbC~KA{oib1hd;33J3GnlH73CZWTuj=UHN68nH?DprAa~@$lzq0}$>^2zN9olL>w$b^*Nup_Yh1CL?4UN*R17@TV z4}?rYH#f&LPQ^A_VjA)44o$r$8lLf5pQaAsioTe7Q*0G^jk%}2beD&I+c~kc5l;fz zhA9E0mnI-P;D!!pT7;0!;lxI)6q#)ty=2gtC=JB+;gzYFlYWq4G_6)`w@Y^cVUi@Q z#v66)=IU>-N6IY9Etk!mbOb+729i2a7;s19n4I8Znr|hX#zCK=X(?1R#~ZdrHTa_% z;fRN_3{iV5v0*aqlr#3YJL;5&hFF55(mJ&KBx$!Qa%sI|WLb+HBzJACE56kP+W3+x zsr(wicXGhG5;$!kH^1zKff~eZ1dXB?fa4a}a2>Stkt5eGy!Q3j+cl)kB?qhC_m~+^9XUQ3y1;3^RMTqgZ+MZP>X_0_>K%9a+5%7?q zkIxM*sYcz!6VXn=Cb~KlGZ66#<_UJe7v73G2k&ENzx5 zJIX{t3Mwj!ojhorlUqaubtTWF0W}o-rf~Vy6Tsk@TL<9v=;2X zT~~{X4Zq+HZ$sp%UDt-@3?OJgHb>FLs;zQI*Mq_jHacW?95M2nbEt6m%BN777>++J zhIaX0>~U&=xT!bCohC(>QSh+G;wo(fT*##DK+gnXMenRQBAuDU5DWu}hbrcDDuxP! zO`V1?V4u%3+wMKP&2Im#H$R=a(R!m&80=Om)BqD;Ce&A2z3S;iG%Q7wioG z*=LED$drw(J(XNf)xP9W4Pt&31M6XrfV^DuQwtn*P6>>V9-!!MQFf~ZArnf*8})a& z<)tzw`;?vAu2uYGJJJyWnuvt{2om%!KZ+S4Hi|>iK2i&|C594;4rKZ2QtJXZ~nsl~1tJr)e`YSTxeTiINx@Tv%UvLw97(+naRX z-jK)37d>A3BJdgy?~IPyzh;0q{i>B)mP>qUtwMEpLB9Zl)yL=~oQjeC3v~j?c)ah5 z=8|}w3_rOu>L0%f|4~Kglch0CG+%VF?~|`BP56 z{cve4?AVVLM?AAf_tQNwZ(iLqDHpXV@s94i3?VTQ|L?BufN1`BN#sL&7XyTXllULo zmW;_Ic6OR%BtJ{hlmasjrXaiSRMDLOjsu;I-H@}N+aCW!$)W{JGzX;R*&UiMdP)SQ z!9yyzO~!xuaro0^ng{o4o+y3p$&y8nmT2efjr~z&?40r_DB~2vvOo0U^5|cE5`Ws) z_Tjh1u;gRE;0>Qw`X4_pjb8M@QoM?bI{N+-(OjaG38MNO`Kqy|XLrU?(>g5nl_B?4 zKL6Mr&B37>S!0`psm*SG?c49)vKo!RHNbx@W~7^Pb4`2qQ4LE{K@;B*%|%gtd|w8^ zpSsXl7_O6|oP4CQb24v(BMW+K2FXn2Q<9xV!)Q*yNYNXl`8;uZt#oA|vK5amF_nr!z=37 zXSxiA@xpX}@@h!-1I9IE(jq5LPvZ~+a`qujJ$-Tr1iD{+ zasr|FgR7=UDGk7J16=d2?g7b$#;mpNDX#(lk{c(h=Hl$s;1$`G@&am1j*QkT8nVAE%lnre80J#uw{ zsf-dehO=U&+e_-Y9q<3n16X{2KL%)Jc<{-%YLWW>uU>=#?lb72>U#ACpE3X9x;Kc! zquZG0&MpL@dlVx>@zmGxUm+8UCa;Ww^y<*st&q}dHdTsfYd6~u;1$wy1sk{FCkSLQa7crTqjE>_pU zlXRRn8P`bqOnAwihBT6y?McZVe)k>Xv#}`^&r-h4WN=JuKTGcPQ;Zw~dVdG;uNI9& z+5P?<(Oj6}G?#>60xe^waGdkTZIYJ3rKU*PdI_B$nb|`{Yq;JPfhK|a1Coy+ZoKq? z!3q!Lc>=QSm?Bf7#Eh?2a^VKKaEqJ=Ob%iODl(jc`**tsH*W=-h`b8XTtA+l;eu$M z3{ZRKSfTOGhWyDKn7a$XoSDeao+>n0(pO12>AtL$lLa}xOudwn!DkyR*~vD;N+~zP zm$}NHor%9CX+=|pwdBf0bSl!hs{aRH|5T4cN#a=Tgt5q*ljG56__ETxS;<~wvfr?p zl5pUH&&qOTWw~>*al5$r`etIo>fP?30RYN`0cpA>*7GQ+6B_z?RlH_Dc!DlZiG3%l zC-d`sSzxndiCJl4=IYUcY+`f! zfr8wea=sFP&Nr8x0c!=qwiUBdk7T0J`Y$m;4(oJ9e%8C=C(Gc-lEz7%xqZn*D=8RQW zjpygXI)-4l?gng+QrLWyx<~uZp%hJd)6hl-lFm@C6ou8%_C!-W-4|bEE!f#CGqVS}su0>_ z)>Xj=4dc9oW3FwyoO%R{Q2<`4$ld81kEx}xrSVkE4QS3yB-Oe1U&HVqFFxsH1C@3w zx%B&H_^fd>K(Ij^DBSMDTPPOYOGhT2s>T8Q7E@SmkfE24`yv_;h3X1z0&HX=ruy2; zUz1LP$Ay)_;iv6O zTX6BXbs)O5*fibln5wD7lfy-gv@9WaNZQ!LN+%S7a}F}ZdKx6OUixX`-0U{H&2ImF zH$gn>y7ALbmd+{DJzNp`cQhR@S1d!Hq zDkA5V>7Lq|ka2t~+N-FJKw+BGJ|I;O#rt<3x^?a)KYo4goJY4eJ-2E>; z`1PWH_-f(*doc2my@{cptOjy~W}1mJQcq`y=J(JJ%n=!T>F;!3n!7XMe}AQ$yD#)7 zyI**wB=phUQ7`UHzD=g6yd03!e6YKV4V+qn^~>VB>Xj0eK=o}i@ur`8bN-$v z7^oj9iFmA3hl7*d`iCjZGkmhH1do6q*Ap<)De*wXWW^QT&VdU%!k)80p-KMPRc4X#UKe=v@~p=q|WuJHUtE zmOfh=^H5pX+zQ>3#bMwJ(a6wpdNn>&9tNEqU!T~m3)!~3b+Xe=93OX;{@eD%$M%NK zE&DZ0=uhp^gl~I!j77CGT})6ctK@s|ERyn7_DT4+^_D%eD|UXlWB%t+7px_hZ{v1rWxK>cRX*p{E2G(K&AEkw(MVQ7 z^fdP8ZX!;O9WjxbaIatJ+px}QEJR`|S_eGotKg}(<-l2-&ZQ@lbp61_^(0`%@|IRB z-SSh5R1){voZCw$jj!QAp|sGqZVl=0LrFr33`K4$0!keYa`xg_{yMil)1RI0GG^NK zhW;Xmm{UYTmBCIIC<3b~yR781VzRmj40_?WRR@=<)&1cHs)i$OJ6Kp0V_Zn*IE(ZVeV^Su7vhr|Zv zxQCwR3+JuIBCdJJC+!tqPO8J0B4q*~lkLu2GqHUq07?p3=^jLLtJ|Ej zQB2M78&Yk?REItTq;;1u%WGgTrHm|_AX9Na&E1}9JWF7<^Luui z70v(lH~N9ceY%g_NIqrOHn_E&mc;h{#A>)=T``T`#Vx*wE(&grYDF5S9|)0dx3=PeaB<5~D>2 zdw8`i`lJ=qkyvVE26Y6+UaCq*)i|Q+fB^yD+!EE{i0Q%uXctR-$5d?dR1_7{uf2Sz z|J9>oOHMmtDP7tU(>)IQxemH^jW-%*VW_&z0bOTb>?zlwekM}zEE+{w6k}C3^-&L` zUU-nLG3P8HO%lxJq1_X4%?-)>u~T-U%nq>wlquKkfKA&I0W?hmfa#v_W;pjLE1luS z@T9ib6OeZi8VN$nxDN2^^R7@R>|H=|PbGAKSB~PuaKZ^s`EC5Noi@v1rs4z~+!xy9 zh-~qOcS|AX2I9_ulP<}_Ep!iP*%Ebp^`w36hye2)m5*jpXtKwiA$v!0z8rL@rlT@e zd|o+F!%S?y?VLQHja#>bOTFKPEjbhzRW%?kW?8+b3s7rpsP4cReCKARj}b_!{ku$)_?J8j_? zyph*N<65q7JVk7x!VpwCB1NS~jsKHq9ko6mP~{S6D4aYKzd)|MbOc$T9=O7zo5AWq zq9#o4(6#N`E-^=^o1?x5o}uRnn_>G^k~(jtBQ2GG20v`=d+8`x{3x+ZCf4>XJ4x!u zcy~DYec&}wioRP z{oC4PZVx5$d~lW)oMKv$QfrEALgKC?rei3&b~3&Omo(}P&Zu)-RMlkEvC-5f*9ZOL zE|dF%8?M*RW4~^`Qgu7AYAC7Z+Nv{wDkpQih-6kYpWSA+|IV9}IM%YY02(E^c`Lj_aPBBZU`}@H(m{zAolI5W*cw%2 zql%>5HU&v((+S`v=^7@JXFOed296cqIo>H;w;+TWW+jPotEo4N6ItC*lI399es=zI z@STIA`4c6&mk$+A5|{j2lA!dcGbgh9jrLD}_IdPzQY|3b_g92c3vl_Ox%(C)ba8$~ z%r8G*dTOGLmTPJCS(JN;I9Y!YVbSp(>aYFv=PMp6iMfBj=KjjX^U7YFyZ3pB=Koy& zn;#tt{XgX)PXd$jMXH&w#h8)>dRIM_6;prkBAL2_B&;LdF}n@-?~D8Y4r?IAK3=?V zL2<;hUoQRZ+fkT(VR{x=+y*vdD^Mh;Ma!S{4l)# zAeodz8(TgwF*1uBN}}{A_|b7^o4-T*<9(6y_J*PO@z9<>vV_7H= z)VMlHJ%%cwRs2q*tx9O4$CKvPd!OEw_@n({xK1A28*=}?a1h%+I=72{3TU*r|AjAJ zd3ay+eHEcVmg9naXfKt^Y1cv-yCy3ZJ-H_``s3w2{VkA(Ai=+SOocAC1}+=2U9u;0B?Kuc)i?%`_x2ShhCD%bnkywMre%v{ zw11Kcsp-(^AezJbNj3Db5vy9$RBnSbUfWH~6NnJ>W)(oC1?s_?muk&T_ZX0Km@TH~ zS`DB*=z&M4bZnnXwyDtjrwsZCxM<{{9eyR?$~f6_!z=VCiPqF;-BjH@o=KyObjPsL z{5|j>B-Fd%kH6K|zjl*Hp9|8oTffSlpE&@9uBjRJe5ZUH^onHCdhQP&`m=IjyLQ8> z|LUtGO>fRFBBK)~d0cav`wI*n3irr&rRVTaUG=LZ<63);(UFrbrKb=>&aJ`%;)B1Q z;~ADkq%C9^qs_wcL*odC%vu9eEq>FTtsnX1j~ENw@_`*5c7DDC&T&u9W~ZS5bq;gZ zYKZ1OgVCD1mUOj~)_T&?N}9Szb1Nmlm?rFno5(5(;c*(XK>P?m3(nA^UV=9x81lU7 zxi<^fk^Vcl(u9Blb)h-p{nx=v_hqCb_S2r4;x}fKlym^-$@yLwu|+|tTcbkkqZJZv zdMHs~FF*KxJ5Hxk7IOR$(qbjOp36&j>w)%8$8k3Q@iP!|?95>F1;_~X zp}sXmx7Vy4$}O78Svz6KHRa}mo#M#Nb!O+_aE%w`!w*jF{J90r>^yf)t}oN*%gh*~DP8a!YJ2EW^)>7W6O z;lOKj*?`*6HsQ|^4GR4ozI9R43_GwtqSq494QDi`Z6y(n?(j2sljD?I-8z+2V|}-q zLCuNM1}_^JPzIoWirV2J z;)m8@_Xn5P`Oms7a}u+aV(|^W@otRFRnU<5-l&kBJE0J2)f(Ash`BDG$#Q1(TUw3 zU0N-a-l3RsdDQjdnNK(LZ$1W5My$;6qUidd`)#X)uCZo{2Nr zg_E)7vSE&=r{>llI>1N)>Ic0AmZ&b1u6r!8=|bvZ>e}`*#4NR7f&)OuIX1_#(%C2N z4~N%LQkv`VZ#5R%yXR~h+Q?_YHjzbGo+ZBLj$Z^lbSsT$iy1F;tPC1aT+NfS9yk2$5dC4J1P@?omn{Vj4i>@d|W`rXm)=6LWRV~`K;^$u^{%lwLPd|_O zw8b`(IRCLfD~AapDc~aIJLz@>E1KclK`zN zx00K`+Me|I9u0UhkCZNcq9Xj!;ujw+etv%W3-^^jH*a6$Pj)1vR%{$2R>}nzxoP?> zlUn=9_`iMn(gP(?5AN5_DF$|f3XYE-(9JIid8RB9+>9r7MgQBj#KVI%KGqj5(F9SI z&B6y`qQ!eyB(wWHe~t|O>laJs?~nPX(&ry8e{p_!I6^OVrJ3WzM$@=xTNq-!akHfw ztDT@H7rZPtq9(v?nn39PP=3m-0x zh}@fQrpy?|MJ2P$)7kB>dh=$cf|ugb=R-8-Gt!W`M;e-_uSUJG%(#Tvok!vo6S|rU z%B#_sz8REZK}|TMf*_P=%jEUVTcCE?vZ?0l%%sc^l9et}M{PPXNT=4X7uy@?+C!kD zgH9#?k985)XyUi55r}OfA;OQN@w$+-R2k5rPm=4dZ%a~5B z*0~0UF*}e6pZjXEGMS|1-6~o~IH==H7p7^YsFq@>H5~Y6zxBh9ZoaW~@blf|+8`ry z@j?*6A*rlLaYp-*8UT4OkrovF;U!~3cQ$WwW$1yK222LV@Ec%3T)KcesFQh_DgENg zt()sNK*xl4+nSpxWUL0_rmrZUIBZtJoJB45_AHbHQn8zqX>QQ_GFSN0@?4qO(Edm| zxF6}a*RKanMPfsho8HJp`sG~H#9B%}_h)86ofOj30%>V|uWy0a6fBoqL+c& zJ6hG?%Qo1u(yf_k0EnYEg1m|j38R>fL!HggJ=r9~fKP!hJ%vZ>KxRsSp-Y^4y*rbB zG;qxWY=WPYQ~<#XZ*1C3tXL=CxVml)B1WaGG;?7lpPI!b=ib@+4&J#J4sDko!Ihd? zFj&k9HQtIor9J$>ut|H;9n&_VZQyjB{Gz6-tB=u9(MqV=yRaQVlKy2)eMvREuI1Y6 zHB=xL*@UahJ^a!UxW8e6w}22G+2dZ+Jr>`3KJ^#~(d0|pFi7i~Uc4@#ABeo!9^E+`{n`a%wKufdAJ>9RPE$fR zUJIt|k)%W9_gCrLuri8Gn}2NU**mYCo=Q4Cr9Etot8&KI19-w~>T#e3mp61LA4cq_ zJnqT#Jvvejkbxy9K|2BV+Rt)U2a~GEd8im{THvMusy%7n0Et7wI`Dv?Y>zqvv%Hm> z)4RqK8ytVUMqgb}dhcDB(@=1Yzd5<=Y}&pH$zNSCo*>-;8FD-T^VoT6+N_K)OS zZfxmcqG|PqpGDyW)_(ZkU2*k;aYt;?rz}a;Bk?EANsXqkdP#ehM6`-wFxMZoEIV~> z_1A$08}X@pK&y0Zb@kZtlS0fH@?w)WwCnoIwWQO=B1**RY&s_4$oXb!v07a^i;ASq z2c3qPAt6H>b6h7aL^!r|-d^@KEyI-SKU0aDNV6?VEyF$qrV z_3G-J0qbbZMDDx0DqMTz7zqR7=7L$ro7{PN2c&wQzUZ13U+ zDxQ02U&zxXQHfP~3oDbKDo#Z7;!pO(gClX3yTh}_7-|9{eyGm}C+kDLSo!Zemj7b= z(qDhREcBz7n=C!Fpb9%QHH}N^EzN&b82FrxSyiB~u(bu?58_me~$FIkr zYbBHSruM2hvMd#xI(7Em-{1H5`Oew0_~kV-MyyR5Rgy5WDt>rv!qBRuktL~r`1jkjDgu_tXX!+Jch zGIC5UC@vGnR6ul&99tPN0s{2Lh^H$jjxI}m>&saWiPcVBxq+bmD1k@aD^8S*Tc7sy zhPVM6qQ+E3jD^x#8asMT!e7?DJ@L!QZ!MdWyfS@L<8FsUKk19!7J8xAe)5y>7nI)a z-OFG3UGd~0C6j>39#I=PvMlPA)yb>w)IK2{R|EIHy1FrA`x5n@4^`Xezp`f9%WJ2+ zv@Y$HwJCpCo$|+3X|xWpcFK#Z5??7!dSPwsOC?FKu1(F_G5?0p=>GXTfkauu?VABh zCrYq!KRL4=be;ZH;|Etq4=IixS{D2K_LN?6hT~<5Die8rXfW?ZE>P_YZ@OyVl95%3 zz@ZGQ1L_38llYlC@*Kn!1Q`UVP|pWGKD^=&D^mxQMUJjd9JxMXG}UY)v^i-TDYqWO$H3vmJusENjt8CD%Vwk#p0 zY7Qb~_xR3F+fgv0EM-7l{4?bfN7lvzUp}BFiXH(d{*`c@Cl0Ah98;PYT{kD8Ci9Jw zcU~x+Hn==>P;D}V_2=rMezPI|rQ)d@?(g@p=f_O%0$o-0+Rc9`noG4Glu0(bPL5cc zKtV>;v7@SD=o2eXHXZzgmRl&ipM;%g;qfaUz>9lyMwiCSYbk2HHP=in!+uUiCiY$? zg4YL*u}b(Kh?Nu%;-z9YjJFcKgzimv=KZEYh1YMi=(D{_9klF#DaWG$YFrO5EoByK z6;R(gO?l+pSt2-@(_HiiAC}3}0=aat)oi38jasEgsU%uGMVvdFokXIt(4Vu@-2j%} zF7B)KoZ9ST9&@l+;1We>Ary0~!2pFfkb{`POiPxI?B0#cARt9-(mupP*(P@uK z_~CY~u`_?+T|=&a`w8$*1Rg~8fKx;=CnQqPlf~XB=HP*G`H1_cOh*hR;pn(kRKP@Y zXq|{-Rkju6kP8>VI=4yF98xy6?XYB{wxM@wRGw_DQ=8FcR+EFfv9+T|$?j>)%l8{q zoG#O=Hvvu!?bT&YC)z@2e{RreGLZV1eJj5}^4HtgUWXMy+gd*T2zQHoR77st^jdIH z04wiUw~AKkeQt969C*`yl}gZN_!RF!vGu5+(jt*nPiPTBW7Dc&A$KbEo-89c;2uMs z)nvAqjZTvRY9myBP6@BB2DWi3@8bJv5W}HzD&XdBEL==_9PAqF>;7hYPfi|DD2Z~8 zSDEh8z>{9|2n_)U8s&WMKKnMW;FtR2xF9A)?42C{wLx|E#s^)-JU(5;fhVrj`jjfT z^--iDo3@g*m0b%zzF$yycfq`ydGjCSe$<$s+h)vlXtHe@Ga_woEtvnLvK(?h&iznu z3m;4YmAah&v1lIL>-y-1oYC;zz9-xF<6Omo@)?cH;H)7kt&pBY)JP>&(La^w7@*mh zoL(vFvWOyGRMSjOuhxuno>OYUFriL)bvm?fn<4kw-1(%ng>2mpq!02%(ZnF=-ox?l zC|X1wwqUZeOR9z4O0HgQ%FnX^#)51E$k1TpXbldW2^s~^I>4PHIM;P(AHiqt>cvNS zc`g)1AeyUm_$=Sc13agZHVym~joM-@E4M0g2rcboikb}YSjgX&k+x3CEq~HRK3Rq! zP`qB?&i!fwsxL_9bgGmTsjpHIrG_S^W@QphmIpi;9pE;GZbL!W*XxPH&i|BD5tfnO zV{cpZkw=9jSmrd>($oikc_r#wJ<{jVORt2Ua3@)KghliJ9}Jh=UW@DHPV4=dJ8hFG z3>uzm>Nih3?2OsxN!|Z=+O|u|ZDgMZK5nFXcBD~Mix6?5ZTdcPj6DAEJg6hi*ps%X zV?FW5-Ki(k?tYgRns^{kz+t^@hfoN~Bp z#z|MyvFqSypOV35fo~t)d3z%$F@eN$?kG@DE^=`f@4mC&vgr;4P3MZcU1?_^HA0U@ z=pvpfz%R~(!!%Pd_Bi0|0DremKG2!EA0eE9#AD9b6SkzYU1_IVpo~vB+m>_!G2b~y4&w;MKORxoE9e@;8PCU zlMe!+-V^sN^|r_EYo5OMdd_ZYHzx9=?O-`ka0K6(w#yZF#ujygOFQR{0lIxJ4kJrk z5ot;|rqdgwU9-DixS_=KVlV^(tx>I+Ot~K|-RPn?gMvFjq(m6z%Ud!A@X)0{c2AOuN(?ukn@V<^~irV(+-*monfP6!h5GP$n2bT`a zg2u`Ho}ms$PW+x|9$@4@w%3=Sg49LMg zGh@JaC-NbP9w+M$QkWk8)hBq|Qox6ubbWTAD`j(Q(kaW^7h97Kxu%_LP21H}bQte~ z$le5+AjAc!ifn#vms|rZf{&LDFW#Q3q*1-|&h#BE(+_kf>~T%m*EH>$J8$o5oqX6E zi*V7S0LS|iPg!CQT9OZUBGdGiCXcwiQukiINJi_CD z-tl*GaMY^AaV7D?YGR(*2tae(%U>lN^qy%TkC&WUr8@eF;lST+kVhVd5odczP#diu zoL&1u@$|u!$xm0s{I&*`+r**eQ{Gtl?jh?%H@*6B65#?ecn9g6v$1g4+Q|cIrwp!1 zrfdxsH2QS)q(NJf2bCrLWzEdTq+Oa}d{jFZB&RtX<=Uf*$CQJs9s`ARP)!UK&9~3* zp}EAcD9cf!4q{(^sS2^5{{g!6rkLTC5yQ))0J8?sWpL@lp%rf;d=j*lQB`TLef9Qr z((YuO=pb2(mUOc+!?;g#~_@yk9PxkdnD~EuGycDA8~>Y4nD$`m^`8~ zVL-{m5p{8cDk6Y!2a*MzcdD3I0(71{1bas2~&YM5($ihn5Qx!X9-6)5*_WibX z`t}w#qxBJ9!Uu#$c>H5eUVW^(o{*5kaK82n?=JV;gQ#kNSn1VMHN zRn9$BScbeDaMDkL*X1s+0xyEh2H08yY1pYZL#cP@R5tDG0JzCnTDu0BmX~;Jp-^TM zMXvYSMvKDa__5|}BZw}L@Vp8I(HJ|-`LbwE_l*<*W0UyEe$T_jANaLK@R57W84%5> z2A5?3&D^ci0hA2L19V#`faLByJVQ66N-FC+JbU&$%*}QgD8HE3>jFBH2bNyFsm1ud zxaV8Q>lE9~v2YMv{NOx8w=TW7QR=scVyI~K&-IgbV8HdP~sfK6{2(>?lYV?4ii+U56p%PGrF=(9z z3ev%|g%}OpoW2pTPG_lY%1lqLhT>w<)c|cbe7Ow#5Mu3m{K1Dni1<`l0Yy5ePzw5N zFm`U1l+uVXk)u^exjT-?dp`yplWMrKHvJO@Lc?nJ^q7_qO&&yNV$60cwGfLtjb>nB zfI1;G?h^R;IrN1nQ716)DjnsPWTC>5BW9T&452RV6vkFz?!WCfTjda zZ@hyF*0pQ6X#A9Sz}wTaw%nDTOEkG&b%slq?lx-q<;%M^)?O=LdubjV4H&>*XT0qtr|7td+>rf%<4A0a2VAy@qXoZDs#!{6STAZUo9dM7LCww zr#W{nC^rH4_tjvt7&~=&A@`EBfp_lT!WECP;yuhm5 zpS}-}?w(|-+(Avg_s;f5pP!*xs+U+354ESBY)v@pkGtTHJldYNr`2?V>?EB@`#mwh zN}O?}U9=@0zYklk6{4Y|1KJ+;j#GA1Z*uZkTjUw=J?_ld?%Q`Ccj*4C0hkM5UhF9+ z+u{zuk^SJE?XJ>BtQ|xq;9gQ~?~Xqdm~dQvFOoLb8h z4pW6O^)NizP|PVgeaf+h_x6%ao@<%gTc&;EjNTiFp}CYu1Z_(>_80_@X(!#2Pryp= zNj%<>vc`_v;nNf&Lg7p(~=po#ZHQy|Hs)I*P^?E#G2mU7TVeZiN&>87CY*rSe= zv)ysWypvCZu6}dI7IKBE(R9g0_j|aKB6W>+x!;_DBXa?0cuU+NXYvu;&)qq@$z2Ie zN5hw8Gy6rmZ*ybQvh!^#z6)$>CKo*Pn=ApEna2f|iH_?xWy#8>Y`^Sk4|bx_ja+~k zr0Dmrlhf~Qfe7n~I^~Hx(=_$KmHFQgJ0@vB%Xluhs$lTdfSVdeSYYC zI#@K@@66nMW6mb)+6MYcS%9dMHGr|+O_AC7T&%C3J|oV>^{$KjqI`Joi{yl#>~@OZ zcF^L7gYxT;yc zyj=Cd>L~-NlLu^!d$wjg_#5Cm_peVLwK{F_$<;lyxjDc9-1PFe;MSMFTa!GhBDG(6 z9K5t}-43abhKx9*cG7bd;|Es9jx0(3^VjbjabJZWmg7B~)ON;1bKS}J$5h4-E02R{ zKBO)VLa_Rqg-kRjGN)F+Wxfk}p`$C)ev8<{x=91e#)FA5aAPW-559o$d~n5hJm~OJ z@KvT?CrzTnmyrXz5WnoJ={^c?@9^r_AvJFetbAisb<|6164yT1hTu~+>rvsv!?Utx zfRotevT#Ys0CeN*3q@S~gc_oc7WdQlEge}L2j=zQstJSPmoJWushIs`=N8zI``6H5 zQj|3CPXjkjLjELF@_*kv{=aV>k3XN!<&i^55}@af*^=@-<}a1DAPxsYsj9&( zz0gbUW=9p3<=vLkqt_<(uZ|f40uMCty692s;}@U$3c%VhnopQFa#i7=9l@)e~a>j&xrk)+Q>VVh`sf--5KJtySS;xHBeG)E@deOpB zVd3$s9-Cee7FnY%qXDpB7a~3N8mA$H(`O+ZvfHqTT)j^h-W*+~_ZCDcdRqwW z+uxD{3$p^EIY;fK`tIxk;&64)g};Y3se0*#f%Wow?iDWfDL^yNu$t3Bs{q-YWJ2gP zP)LYYiJ;3SllkhWf2YWDJ|HnPNSEV&?m~~w%xM*%qfjff-VFb{n3cgR@)~I><`r`5 zLi_S%P5Fx&a~C}N+Y0}#{WLOE^tePPk&H6pPr)(Sr2}Z~YFe-mwFF3(J$gO#eF&GN zZVUY5E@?mF@Z8Tf`n9t>>LO%&5=~~OF3Y!T2d(>-&gw7IX**97Zh_7bZTWl zp>i7Z9=#UFSlNeLN?n6 znA3@sUHu&2Th|mq=@&n}IBD@*oA+^xCKo*r@NT=aX2VwO(BxV)d3L>tH>tVw83Yg^ zRhBUOJ%V0`Ec&95*UF_s^oRS~+-A-rCys%9?vopud&y~1^E7h|2>)0#XB$#kGmj}YgY0}wrN{?FUM|nwyz5zWP{XTP^Ri6#eImqVt!fMvG=HxUQ^P2OP zK+C>UU~ZgmcwAtBd(KC?Ms$n{b* zzXq6f%9YZokr9fT0X{NaW}UOpM8iVif1jmv8wxKiTte$x|Kf1dZMK`+wzI{Uhawit z{wVeYRHlyX`Q-K;B7$j7oBO5OAr~%+heud6|6hJMq-Hi6V&LncE-;4et`9geuJ**8 z;F8bqitiAF2n8H&WIMtsCZFg|I%Q3|;*LHaNIcP&y8GVDz2vW*p2TE)ggScnhR=rtTCV)b}8^F%V1L-;bv6B%6pM z_Pj6Va!>3r>*T{-Nyi+CSNzeJNz`dE@(>K{ooVOpC!cDajBLqscpJF`M{46a5Q?C%jeTEEUn5?n#>m;pf&bK8U z1x1HUI@>mVKe>tN8M25KFjk**KQyey2X)xZJlAX&>tVt(vno>5DZX|fI+PN>8;E1( zMKa;ME9Q91^g}JF$J~*iwH#@ma`G`sEODoVxbv+^2b#XTfjf{SYZ>j2SiB_r`vTofSZ?G1u_GdrkMIzqMR)8BYKCf%{|>T z+td$}T{BHgrQUhAfXC9rOLJM7w!+pi0jZqNUN8F}v~k)`2kl#6&Hn<;bfFn&G~B~2 z2JtdpN{S~3?PO0kc}VT$B3&5^BE#L%yOlTg9QDEb@w!~RpU5U1E+DOnU=eR6Hk*_! z?xzRpK46OY>tjN4FLuUXuq0jVOgLptJJl0=#2i>#fgz$ z&%6a%8I6GqNT@N?F|j;&@5E=%0fAjJaYW6VxQ(iah^xt;PS{3Rgr_h6EBbY)0(#z9av%7y7>2N()yJr{ANSy|Gjwvf?J=e zesdrY;nk62*T?PgpP>97R>HxYiVSOBkf&h}Evma8J6mRbo;Uuls>o$VRmn%~=n=<6 zP2uNs(s$AI0gHIWub~OrLxbY(lI}^hnPaHT9W|tE!jPI66omTK#~^qUGCEEnsN_(? zpQ)KRxGENGmZ4QNnG;13`u%Ep8&(#9lXGl&B5O$%3 z$FF}t#fGICcn9jK)F`NEe*T=Kt8)KHH1~d=T`tR)*j9LbzT1s$-yV9raogS1rQdz< z>7@l9G%Wq(?yU#J?t8NMLnu%_O(v}07PA(@oTxI=R8RFB(WnG3`+na0#3@?-p=b^m z$Ijg?c}9mm)2&q?tq}@u5A3~6G;blS#AcWMI;7Lymba8z%b92nm7HYg@K?Yb+&Z8q zK(tW7LrU&7;q%UH>y99GhD2(wqHCeL!P= zIBya5Z8mnCt$U78$y-0mrkV>UGEvX&$<>pKm%P$F*m~L#$eEe#S7h6b6vP26HDW?} zrOA>F1vZmp(E7o(d1e~?2zO8jLf_-MTe!fg&w)-#I{yRr8Vc<_1SKHt`FF5Z7#6sO?d{gt-{Z`ko~OhT9j0B zUI@*Fp%l=c-g(yjuwl^xi^&W&2&bM#4DTU^6s~QDZm!Fa4QoGV%5WGny7UU16?jpI z+yp=zPIJFOPX%ke?on<5*d}PIV5w##ltUxR(9s`?=G>1&bB+lzD3IK**aYW3$VGs~ zqilc&!g1y^6@d1DWkkyf8Z%k=3Hf+A`Rpt5DZAB{kxg}E+fH)s8o7+yNpkf#xp11a zzy*Qy8h^mnb^{C?MIOn>vSw%al)0dR-!06!yD-1CAO{^7WVVi|jPTTV8YrP2esjho zfw5g-*Uf>$9rdklUHZe7^DS9>xxw!#$1Y^!PN$FtXbynq7O*7g?aV- zGA>XEOXlGb7R|%s$Kz}F-DwBm=?2K#7kijQ9dl1Q&^rA@*OCW!3NN0^+;&o1cdO^rByTO9c>L7MyeoS-i9X21916r77a~rRh>Ilhj3aLE z)$}dox?kkjJ>VA_oe$QYKB%rfuG@C)%gwI)7U`b%o5~+%R5#3Acf?%czlIPm;yc&z zZBgxE{pRoH>}g3nNTSa?nX;#23LxW$;esbom&k;x$Fpem5QwrHXQfaoOjTlxZf9bynXV8d(+N2l2411c6GnK6(;2;KmXf>ZvLK@ z_SQ#F1g}3Bzb5{(t2>KZd3VzZ!^YMvw%S(5jHPxKfl%Ld= z9?z}3x%zP9H&?oDcMD8-mz1bQZWkprtJq=Fi6OD926 zd=}o=>bO^nQ;*utOLQ-3$BD$tWjAVG{W|T{;WqDNFu0(a%juioj9@Gra|S-lGy zKYOtP9Ot`u;H2q9s4)+C}*?+_Mr|KvC$A-xN*c3-^8>64z5CNO{u(}ET zYu|Wk%fx@%fC50m>njqj0>$-n4^}SlNqyg;@;MdKy{Fnv|E?qr=f>cgw_aWImp_(A zpu=G8Iav6?6!6O}S*~D?h#=MJ`-IxD&O=EjMwPmW^vvGB0L72dWwAI*LAoDM9S<%L zA~%t=iFD1;h= z0tyeL_;2bWVbK2Fs<`aEOPh$zDBr0F%*m8%^$&tMT)qz*3($x*79I*-p(Z9l8RNZh*Gl zZc0LAdz)1~(zT0GgMvUxJoID^_cj(nX z%0Qze>F7Ktpfw4%>u3Kk+`Q9Lu+RhOjZ)*+E3BpryFQbr#TArW(h0?V%)-$o@4ZX1 zvdEk{L;(tax|sD2$(Rk-wo8|PZqY}Or{(f9?U$0ay@C`rCVxNF(;V8$abk#RPDOLj ze$Y%%x&ina$mIx4MG?ZTOm8a8BR6lfHg~w?U*s5=ROoY`f={Y3GeVMNy^vh)ZrZvJ zno4t%sff&kIU=nMI9DJ_%C0ryB7NWR-Q1&pp=;d7L}LLerWlEE`b{ET2Y+H%;0nxUPGo^r2xCeURg)neu`oh zf;seDIJ6`@!lHS2{CM0Zw=(zjB<|&5439m5xIz+hx;yUMoA2$DLD(J4W9*anT^;Od z?O%PPEo~3rEzXEDi2ZcO9Ju%1HgZD{r60TL@~*qyHut#ii~FQY2qB^6wwFFJB_t3m zAp2Nq$%RKi$K0RxP4l#U&8hoaryjhWwxcooAUVfkA(@mN;F)GC5x`s6UHNGw4ZU}G z>K_vFfIVT!GT~%DfS1ITE7K) zTPUeVQ20-NL4uk{H?|=cNiZSPO3wlEO^1EO)$XNdTIQc>|L{E7+<_xT53iJqAJwxmZe*M9Pm2$g!uY~y0 zFTx%>yewf%Y5efIN&PpxIcjb6s>_?DwjtS(t(&#I{Q#=AKz@tzRfIcu^XNc`x#cl%LqidMwmM>TMa=w1U%$LA5fqCd z8!2jIU|CH6%GlBC5_Ys47O_=hrYDZJ3L!~)&uhhRk60T&vNC2!<)pDy39o)N^&YYL zf@z$1o-c!pQ4BA69Mt~-5ewi#N6P{){8DqWn(WR?FdStw$acJ8dpRN0yHdripwXAl{qy2Zy8mi09%PYo?DZPr(TT zb2qHn!z!p{8*rg9Rg{#1vd4hhiO*C`8d{SKg3z)nHGl=-{-xj$Z!j1PZ!7#+KK5By zdTZUwYm#x~0lvqnGOi@?%`c`sA{M_Sn#-71x{&CN3a3i7r-L}Z^?&!qifQ9kC5)*^ zMyJKlYGCvyjaVP`N_i^o^Dpb)p0PWxfwWsF1kY|GU3zS!U@dsZ}(L75H8a0F}w+1X=Js8vE z_$eCvEMHYvHJ4^(SgtHx_^?oqfJErmkh!hdc@|SnyViizM=*r}uy%uxU{>3W01&I- z!-ZiM4CuSrM)Jk-fGS(e(u0MKSWesk?r`eWev=-;I<(gt^9xDSBU+mBF%el5sLzKF zZXdjX=IZJ;vtH030#N~HT ztQB20$uwV``w{pOum;&_b0}=o)<*?J2tOn$g;$%2L*W3bTbBc0JXA|wl@2#FN&rG88c0Lgwa7Rm>=$R6p! z==G7#F0y4?Cmuq}&?~56sPs1xSlZf5+S@6R2YHg6ZKQZ@r$NIR;LBD!GBs{Z4q`Js zMl&~0oY%n!tXXDnMUv$ru(^xpSBRjXLAooFm;c=d+sj#qp z#cI;gjca~z4&~SZqoQyx!stH{&6(32C0d84v1|kCOkRV*twEOnW!iX`e@5&UK2#c~ zpG)e`3*D_Gnsc&fE|5M|aHiS=7~9&EJ(r|slXPWk_8fE}Kry$gvYbW@L~|>6L^%Gl zRV330M7ve3f0C03K1L4j2vKj8mXIqGb(wvUewG!?}kXA3J%}MLt_a z^K7B-n^ZlzOd93-^-8YyeF?~Z0Xdt5J|(*Nkr+)P9|*7yub=bQZFd^-0-7v@1|tFi zWktBo$%XT{6Mt_En}EwyIASb3!lHS2{AjpI)8Ef^r)~Gf9<;@uw8xy`B2IV{4ql(L zg$jI_w7slm=cX5JrgFQfMBPp?d*O#E4^E(+;1|Zlya)%HU>uA(s@S$gWrZ z-UcffV;zv&w0SS3kpv^r*zF#9yyo(aMF$$+Ki;zb2D!}3nI_a0fr$!~4caM3ClwD% zxeUmvg`D>2l3S4F^m8Wh(!aNp8>ZdXsXP4|G`Qcz9(@dhj62d0fFYtMqn+stZyj!xcQ3?qHWDJrpwWkdWTr3lly6)8Ug6 zUnOUaTUv1i&u2y_;CqR*5`-~4!XrF>EraW$JpM>Lm%@z&>6@4@1RoC+_^8VGu_ZD6 zD&Ok2CF-U1smHpnNK*-X<&+^M&8H$Rw}Ex1w}2ZyxN6d%@=5)nM^^&_GUe~rDjtx> zPGa-WASW5q1@XI`^lZ4eX-Msak!7Gfr~S4r=HF|^|E?_N8oB-E*C0Dbf+GQedsKOB z|H|kQWyyQ2r=|IdO%QMdxo(ihFRe@kZe?(NER5|4OMG$t+gm+nZMg395F&l6PH!E? z=qm#%CJii)fd73Ygw!g^ra%TGjKfb=OoZVV^p$bzr$j89-iQLV2WDO90)8ob9KB}G zuTFk?W6ZPF2;q$FU;QQkFP~knaIuhQ&oA(X1<(uS+;2bs$5qoHe2)aoqn&?dyd zP8?ksIjS^jXi40dbt!o#KDW@;Felr%3ZYCBStARC&S631C@ik({;n~rrwpu1d!{@B zXq4w`pqP)R*z~dq1FE8)-Vg_)J-+xu@zj;qYHb8ki$@S>f~${u%;<{A&)!)GJ2<^- zk8gUpbn^4-;t?5&vuM!9_~+I}Ph6YPLhNFY15Wy`A&6X(XV!0|hT1Q9Z_Fsxz5eCY z-xp8AIrh8t(|-Te{r-+G z4t1ZuNuG2NJ5G4op&_qZC~8&)&i1Vz;863NoP9{sO1b;Q_1U%B->sZFwlZmKb>!%h zH(sci2oL+{k|`hEszZ+@CBre3EG5x|5iQ~It5M8=fXf&< z7nli1&jVW=+M+i*2f~w23BPMN3WW|ERkO zOyTkcT576Vv(;Yh959Rh(6SX;*W3lbVRp)@BPwzt>*?^hzug7A1IfsMr5$>=+hoLJ z;h}*F5dk{}x%<{5)(9d{)2m>2?A-x8Gz||_!o#jX0RVPy=)54X!)7k3=GaZ3h3MhW zC2&S7RW?vEG%DVtbm-H;A?Z<@NaYsb(d8thpRnN(c($*C>&w{&kGvw6yq5{ZpJXYZ zHSoY^35*-Y09xYXRa-wfQdP6fISZ$zN0h6e~+lYvlE z=;q+aLnpnzWInOLe&HyARTmb(4r~l1Wy>znhGtdEC6H!r45z#v8j+)ZGm6F%KP1g z`*RDs^RsOXDTAYd;zWzN=uYmU_AiT{tS)`LzM`?Dykqy?t`jE$_wJG_4M>TkuxyW& zIBm4>0G}Q&G1n#E1I+v$sry{c#uR%g=l+mr9^4)WMRT-c`5LP>qrU+pdWhx(1QK9U zR(wvJJ(9f3BoW*p8ZtsPEjnRIHZ{6!56J8_SuK&Q7hdPRyoDqqpUkF}468O%H0zOM z0NxAE5M;(8HJ4=OkoR)js>0jz=39PsxM^W#_b4cc|IYke+p@oP=Hz)**&d}rV4QIfYyhiq zX!9I-i(T_S>@gMD6j~0PebgH=vYZ-CcR>MJx2`vLL5?Zr5Ja_P7{PR_ed;g4eDK*Z?7VoY(b5?r)OADixamrZy1AeH_57_FTN-EYeE9KM3bdB?KZ3*n z39wBjAIh6%3p<%%>JoTgUjvjV?RMEzA!&_?_?f$GVhE~-3*_cw85myEE(zTIhk?y5jJ_cyP^K2rHSBqynRUeDnz*+#- z$B(OsS$bxrja}+~iK`o}JNh6T8@4YTR}3?LWWTzJL(Bg10=1muMd4Y+^{a?M!Qc;d zQzveF@6CGL=KQgICiK}?)=z(R)#N{XmH4N%sn4%ZMEK_m71RFo`IPg{>vVT2{z985 zzq})sz0bT{`Ue%wbE5OYgf;2?%Tu1(ob=q5xPH|WsS~{7F9SElPy%>m+)Jxd{&sFP zt%A@xiy(&1TQRh;Nf{$oX~G$1nzBMRpQ|C zWI)VcUzv8$dBGtW3aEq3=i_WFR)pFocy?#VBm1W1;KVP|hLlE)DUShO995RzRz!@h zn)cz1iXJLnbG;uSUgp}%@X(+|3`Hk5HOt#Ci+8`eTK~!As*3i57s-<*Vg-_%F8`n> z_>|?medP~5aqNvjxKw=h@!zg{PkYV z=;En^YSM<3Mf?$t`?Y^TknE81gw$GH6Y1h<*SRPmnVH!jESiVMuU9vx=E@8u#NX~* zwZi~#irQw*c5mAThp%5w6=Laz{yA6bvVXRU2gC*kN127d zQmetxP*g-(TglEHk8|^SluAykLX`sE`F13B-nd2q5x&5a70X?eysW0sXL!I3nLhoy zZuNUm&xK4~x6XVQ(Cy}C;L+(?1X&9K^cnf6{O1WY6)hnOAhT!onC5hu)qpr(Ubc)1 z-+p=m&^f|uA)Swjt(9*3(3f`h(i2l24kjQxL`Qk$Cl)UtJ$6(}15ywxuJ|`@J}k%q z5u2zoApHZc@d%8O#;fGS{)Pp49u3MZl*)p)26lBg+#%M(buMa5XheW$4uf+C-rUXG zkZ$@*6dm^;Y&02KO*+WIyispaC_0Mfkybbmtbpdz(yGHlV*rOhc)!~5T>MT^bP++y zou#v#J7{p?gR4G~?Th_V!VFJ|;v(sd%?&cmgPt-@ZW^P98k;+p_rd1fs2m`U6}2U_ zfZ&{LS-gZYbPg<_bgx0n3sP)KkrF?k+^K7Z{-^D-C1(?J7R4mo3?alitrq8Vxz)=Qytl@ zL}lU?deD=sCVjVAO@n_?;!>ey0a2(0^fMxa)@4G_Z{9n_%X@96c!>037a;Xpd-O$q zr8!`Rp*|h8ACE4F)b9XCz`_<25<5}8MhRgPTX=*;^YHlopw|&Qv2D9^Dr>{-clSP= zz90VUhaaD&CT@DI!F3OFESQzNd_mzDtcnXxDH45xv7?BWr_(%BpIJYWtk`;}PS7X! zg(1P{4PFQKEs+L4ijsiKaY1=kM!7(z=7Jj`ju(7v_sFp%N8NLsn%`IVq0(sGL#;3Y|#U2Ov)ky(@u7yVWFP&k;?o#lLr z(v|xcKwOGHjJFs6sdUZt-8PFMGB4`{69PWL&w9b=@u#*FLE4!5y;QKliW~1}$QLbD zafM#xJse#5U;2DWsi^@<79xCa=badeXbUZmI5B)c!y`O?O~d~Kz(wB+Zy)kQsOUJX zI&n;OBJv5LKKHAO8(A_rWwp-2_+d<85Ad9q(WQlZ#1Z|qa&X1OF*WhSE8?Fkiyd5+ zlzV!)h4yjjcqA$A$47FUwwJylxJ!Z zp4k*Lsy=$``tf5*#=~zubVD3PkyOAzpD?s05j6(-GK-_flqZa!V*On=)b5%qPU^lT`kYF^%$CXlN&W4FVsMj5)d*a-8&Co%r>% zmrD}S767aYni%?3r@UM|Bl64l{(gFGJB6zRL|#haW~OkdVM?HP%2QQ{`|4WVYbB{; zswR%C25u-~U`+%l6z)OA0@kA`-(*rtk9R`Wokw^6g7 zmzn(-quD3xVN!>dyqKY@Mrv8*dl50L*Z>|fCvly*KE2zr+%B!uyi%(Oa1n&VW9{$0 z@LuKIm)EC0TNMwqJw*Q()oREJbp;2eWBvk|!EI6?=TEr) z)0_lcF#@zW@$KCtQ3b8^JxD@aY9B`42DLGT$awZ^H}JcJBw?-8+S z2zc&%`Vr_WVg@Aj>>jP!Zc6uwx_(P*PCn`ruB=Q!r*q|)ujCquy_0ZG zc}t7!zn{H30B#YVL;>=#275_5_x9y_iG3QZnTp+KHzx;y_V&~Bl4wqA-t>Vy{?-G> zQ8EFx-eT6%U`&PXK@KerNjgOES3*T!s?JMVyvzdR1gZ0kmaDz=M=5&*YKqO;`PJG7 z`n(Qvp`S8UD2c_VFxheoZxj@q`*;a=_9U@dh?nNsGVw&9t2G>eGk06^bFJAq_(YRA zS_&4=P(sQls%$a`9Vc_I&z(;iuK{9itF3yRH`j{jf{b)vjzDU1XK6U?-1bGEqV_=f z0-KN4CzD zr$KuJx>futmCLN}%Gb4;vpfccn3*nQX?pVKonNw)M$QR+bO>3-3CKkCKoE&2S>OXc zpR21UC&!JelhW+ZQhN2O9s{mXIppqRymbyHD@hWE+?*HYvxG-jG!Ks-ZPM6P$3gw( zJ@xm^M zk_j=;mw)neuZ&S(;H3HTzh-+AzNhj8XLIRYkPZ%eF@}TUy~9M`k$=pgzLBSK~<4}Xb&ih9927I?3(EtyU#kMb-Y|ZgTN;|BF^z&%>-*@$oklU zWpP6{q=7D-d-PK~raq>@dnLWoFS1T6v57b%KA$zHHuAaZm;p4Z$n zJ~d+1l-Jk1le}*BvF3xc1&u=(w)6Q_sg%226EhMozheBTvd9U=?=`VhkY8ZFkiaIK zh-Hbh+cx`0an`ke1W@{V*MV~L8vf%J?J7Mxfuz_9te*H=6Uu1>|k@iJU z?>8@#$^@Ap2h=EiDQsaPEw?0`I$a0_*jj}Zo~aE`q}IOx&-Ffp(0A1+7yh}R8Y1ya zeZ;lD?F2$`$CbW4q-@fN&55AjpcL_3Wz5tma_Jnpf+d2P?3|ML39^@mZ7NYj-h0Rbky@P&Gzwr5AbWHc<^Yk=Bz@2@VY;lh z7R>`Y1%w%*)_JqEyv76(7MYVCBz9^uTHjwny1VIC4%(O7E_}1MIeU>qk?&JxJJkk+ zi-PDa0V^yy+U{I!mp03%*TF$=)#?y_C}`e=xwS)^?a}4~*8p?9S7!{U41A`tr6?aS zp-pm{dw$Xdoo9PeTxEN#mliJRGMRvV2RYrT(}CmcRno_@skJzOcp4}MIC4xkK3I%B zH`5%wZS`do_^vb%O&&9Gr+am?9Gc9wocZ2W8)$;7n@&vFx;bT7h#qrn)1)sB^_v3`h zwWx@6A!^$1k|Igr`~PNdTR{$LB*df>Gj(p=yc>l}X`-paV%xvRqb>sA9*5ek&p_&C zk4cT^>{r7tOvx>%Mm#Psx_55|RHSdR`p-BH9Bj(Tqd~X|m6(;~%r;%m&n4C_G*5e} zd?7l5vbcoGl%Om0WlC-_PL?b}3IP8-*lAxog$w}``^*l(q*XTi`20?=U$S)g)bwQQ zpasL<{lt_*`!Gb#OG3?2Qa8TDY4P>WUqPn1uXpB>9*3h#FW4H-odxaZanXW@1@r7* zEVHdzMRxBd9j&zVOe+LFT6Yin6nmq*AK!LYmNw?*b>$?>%y0kK`oKt$&es_;@_x>q_EnP|wqPxtfKdC4=3+$$?^van03Akejln&-EHH1E)k^jtW9(1b_873f; zJ*8>^-9Ji`F~`DV*lMcRT^W?xX^sYaN5oLqSZ}Ooc>ME4GmGJ)P3*kv=of?S;X%(n zP9I*z5r#*2gvYOGgg&R7Jda58jrapSJ!nMQ+#As-^<^xMC#2(5r;?QI6qi_}%4g2s+SU%^e zy2#&FMLt~>GiXy1)KZY6`xTELUXz5|h?3Z`6^Ss3KV22~e96=!J?CkQx|?nW9MY^E z@Z1+4BB=A}s;B{V@xw}EM^?oTt&RhPHJ!UsR!kpSIth4mNZxn}K)3(}GqiXD z49IvbxFJCl>7dV6#lq@7wkB=dngnpzA^K1Ja;g(M(15RvSYgfn4Rskuk1me@fxUlq z$oup`U z**7h6Y^5Q&&UhFL*FW5oSgM?`Y%*y0qiVpj4WfUKY){ zP)L`=?-qsNw9ewp1WClgrrPB|uQ&uMDyn(?%<|@DhHSV&C9hksF4qjJQv?X z(h|A+?H5YZo~e%QU-Q<;@(ExHp{n$6n^K>vo~GRY5hC#D;*t3&{2>vZ7sH}?c>HQb zbHc1Yi2g$qClqjyuR%WX81j8zmjV|~dnS06w!_Og!=&SZ=j{HTm8$i#O6E6c`67Jrdh^CV)r3yh1c#{3`Rgp0F-d(b0M>~=bMS8vxhmS=||4m zb91iIm5+qUnH;oro!+W8I`u#vYi%Zt=L4vFcWFYfl_QtW+gGk?)0#zHK9UTpTB$mzDFQ{gL{*qrid6|-?d6`OE^7p`Ih&j~D<4xq2-&$Tyx+$9pXmj^tIcZGkgRvW zT0yj*r`PB z0)53w5w>m%Mb={x$otp?`8~@#>);^t=kZ%l9(Eu5wxPPDaoMu&ZSBTEhf+uxR-R#lkrQ($Vv> zkUKPBuw}5^@Gqb0xFQ`tex-0OB8U-(Kr*vHYr(|?sjWD5(c?m9;#}1NxlS&BN6STh zQ|IKz4oDyaAD!XZ%alPY9&+P4ZHZ97>o#Te;IpR57T?vkB1855T{sCC>V{e-CDB|u zMByaR@Cb|M;qk*EU#tU!^^BwFM{PJ_&{r(~6GghRm@|4Y0@H(G&8hIs+I$2ODvySQ z_ke81<3mD&>@k<(U!*unf$nX1X_F*KCL=*g+>lw%v|7lq&YIwi!UYXJa-NeQTX+TO zF67|P&{|OBd+mXKD)DonZIk%@C1x*Onms>1&8wl7C!b^vMza=AU!t1@XH#o7rhGqZ znBpX_6KV)v|1WZpWuRL5PwAQW70`byBS<$XLO|f}V%Rf3|84Dh0kEua^H_&jbmT=)<`q;SnCc!q0E8z7_JcGK0A&_Uh?O;l{0r zbVq≦W7EM2#wg06nSyrr5#7Nz1Noa#F>Q&KDB!v76ZQ>k0;dEnWxtJNnt0iO{Aq z_U3hBAH*IP;-*OB9D#!1x(IiT^t`cr)_{$a%H1E-2*hkwM#60Vd}S=cKZlk9(h`p^ zfb5{;ma@rpZa9UVFc-rMjHW2Y6vxc%oO^89n6lI%mGRU(UQYG#XORe6IelTns;JLX zhEzuks*eKn987jR`4N>g9}>U~8XQ^$zj+jNb3kB*RL22bGNLj8SQx~9j;Khjys-^C zFaW71)+?XgkPP}cy!KCRj(V;xdeYyg`RL||$}K?rR%S>y(~`h6G3!^B$ixV2Nq ztV;r+dt^mi|LPcE-|;HOl*Yqp4v+S;^-(Yv53PzC12#+Pq)`vI{hU-NXUj4haW@morpBG>gG(aTy!*#5r@mVJ z&hJ*vn0xFio22mi1Csx$*BOVMwU-NJ%!olrUB>44WxrN$cxXWSKl9niHF7~-=drth z_4@P6wd0Cs45&?ewkBp^CC(6fLJq2k9c%e5%m&yJolNO|zZRi9 zw50F59RR}HYB0e$?$W9_rPis+X<7Oi1v)c_lO$mCerc2BrY*+Er+}>pNKTs#*ar$g z04E9L3YMgY+HD8H=YjT0*{io&bRYOM=@7O^roorNEbXdvu&`m@b|B)?;gMQ9q-%zc z3Rm>;Y>ep1E<3y&xc8vB+ms6`OCZbO(iecw(22CqCy#9G8b~*BPWzqJe|wUb>DSI8 z>P)zFd(7F*dZRtJpi^UL%gw!?U+}1K(L>Wh*i`L$6R+2MmFX^By4|RR*PbY{-I~0{ zxdo)>Udx(~yA3MpGtGjVUgv;VKW7e-MIYqnz<~UuuIiCNi|PWWMh(CKdwyG5515ib&fNsZWUQ zJ$=HComO~bm3m13R7_0Iv}Wf4L34*`j`VtjZW$a)znfMm+-~W*O)RZ#MkOr?WU1{s z$nLo$!{9t~mb7=0(yA6M4z=EIM2xBuuNSed7HH)cPTwrZY01rXX^a5`t7h**XhEbEDd+);SFYt%d^o!X*}+0UUh0E{9@mva--O0F1uFKyyJ+ zM**$gZ&X=yIkzDZl7eULpB^*n1B@D~>CB{EztV?ssiDNVY7=Yk9ri zwReACuWbboVVFb`C?N9WJOrV*w&iTg${8ULK`2Wg@-R#!=bT|+hRHK8cXxGF{qC)* z?$>XIAXtG0`JT@cf(h?+uBvm-J*S~g#@cMO2E*ac_4LtZ@ajjJC$lt?q`9uMs%xMp z1oZ>-c`v{~OR(HI3&oH9JAqeV9%=3wuo%60(8*Ids&mUP+^V9tN`2!YY{!5(UR;g+ zSn76gn;q3y<`_pa&y&rJr$U%BfK-fD8ekZ#jKuLhV0dpm-clmN1*egejT(mcq#%ZgC6hN^hw$FCZy@* z#yM4@x9$1o;&2P(JrFK_2pS;3eBUZ~M9h5$o-HcaK~I&uF);@*3Cba_I}2Erb7&Qj>yB=Z}z@wG`A{W;*<*x25g zu=^X$i{J?%5C{Y4{tXOje!q^A>-vMEUUgvV2Y6yyFYJ8#CvRkYXYSo#jeYZ5cYbfl zATSXB$x9C$lI?2x?x_4~kV41ase0pUi-!PhjY{Wt2Hm{ij{kTuZCOWsk9x0!rW&Ap z%N&uxo_0{MH( zTN(E^{3`o{S>xY-_{F^+b|GZ}T}1fb5!wFpXUG5GjdYMFqw)IN_uR4wyu5)y&iI$t zGj3cm{2Pmh-mqi{P~P7I@9($n0U90LKW%K>c6+5yK7` z%)8n+8-(`J-OiEU)I2xn`SCw}X(X`c-(N8L<^>}m=<L|K8Rtp`>9Q236sB^+ylE9n zGV;=&O=)(3r_L(P*%V1xUvf6$rnt{}qbW~%C;7#GQ?6F&=b$_Q^Yoqa#Lr$B1GfNN zCs=hQ^qsA4MP;YyU`Laonba+>5_E0k;1p4)9)DemH^-Z&rRR9%A7x%KD2sV6 zT6si@@?_C8ciP0xvXYLs7h)}VKLcua@U*+ur$F0#k~BUlKhU+Vjyaxg%$7$7lZ1&$Sx@2xfOP9 zK{)TBaPfojnNxZTCbELkXzuJ25C29s9h0m*y7ptB;p8N6Z7vLzmWFf6WnpP&X`%h; zhhVbY{^=)Y9Wtm0t|5(;bCHG8{UsEmLf? zuaO6Kw9R`7nghE3_^i8gAL^N+?WbnVk`F<7psXXmJXTsJCr_3Q)$+C1%dErMYflNhGJ_z$1^!NIO%x87fQ??ghuvqoZeW9?01akmlb1?PPNjip`-Q zlqfDtaMY!^IAV$uV$#r8#>BWRR-dTPd@3KIa^FGU?mf*f`@D< z>=jiUnen7N*$hP{6AzxGgScn5Lm&`oPUuU*vi@aK5hTrpNw_qkfFwhm5`gCV7M!l~ zqd-dvtbV(x^sWf}yqh9k_ARm&-XB+zq`8pi ze+7?0U=vmTlp{QWk_ht1YSdvk@Gv!ET?^9l@=0^YOO$5GMPt9x1@lg^cAgRbQ44%< zpOZzF=9hcIM86BZ-+81(IDs&LU?pv)gCiK&MheLwmcjo`>mL+#Xs^>3X zdN6ao??Zm((3{`5`<8ik ze-EVD3x0Xi(m~&Ockq9{p7n#*v;O1t2W#!a$i1-WNqOd;zdiWVSH}PFl`;SI+PKLJ z%Ojvs!@LueL|ye0#(Bz^ZU#1(IRHrn{l?v!<)N34zxQzCbGhq&J7Lw6qgKosziifo zj~|}8?1|El&?&~K%ey_cHt-E`VY+K&l2*Q8#v&JQub4`MpqqwS6Y;Ph-n(Jg0 zW|p;vhfV!?SDIW2%NgGLulEz8m$FbRG?DjAD$*fMU3M^*MC#}%QuBCy8+U)s=J9|``e~#BZ!9H3gF;u&xEH7W$E(?p4f~@v zNB;EHk#{{a?vv*AAsKZ*3767ymz0mVdXor*fsChL36)e@UNjiQg6BO&>%oETk`4lGOC6u^The@MORI5`#!5WUR&#I4?&1x@sxVNA(0tO(( zIZp0GS(MvcQn2sk7d%fAeKXsrUFGd4a(AK@WjmX+1iZKS1`(GYL(TSTPhyyDJX{APL?|rl;Ge$&U5n_c#IV0T6q)s z)MA!jz{+#O`S-;OCOGAV%>|{2*A~iF7=s`s1a$P>UC+H5Eq<&!r=qQ5R(J8Qj+K<} z`pa)*qzf#>oKIGP$lWfQ0v-;boQXU)r>z8xV!|kP$K2z~Cd~~c>AGHl5*#a9+^QAl zDj$pHq3Z>BsiR-{w2F9caZ73L{yC4y1Bdb1j%_U%Dg^~ox&LrWVKKN>I7NlM6_t<+ z3Vj0-$`TO^Yaja#v_JFA@!1uf|#2KazGjn9wQ0x{82m!=(mdcr zW~$UKw`a`m%FRiXb}nuJt=D&Wvm0`vB$!C6v8e z@Kid2NOJ;_=7jUEGLvf(9nkFZpjm|Ql*m@HlqY@D)ud`kFy9G8JubN~WOnnguG!TO6OH!U>ir&2|O} zbn{gRu81oVUy48hnQ5UCwkBz3bMM!$A!+`3Pj7%6cY~|S)LMxrw71N`5rKo;|3fct zBmVAhFE>T}=o1It^o5D!s-Hk03}n*Wd+eFD3M}a3O|tuww)&Z?{_@J1HOt(FPh|D2 zbBCgS`K^0ydG+VFEgl4h+PA+v@`OB#qlv5X4{;&Q#;%|9{a1#AAIP`g{>8T!-*L z<2!@Fr{$YVv%iKPclS>h-Sy*nzr1bUT^MxvcKWv${`Zd;i~=+C6SCVv3oXsyffj8N&F>#w z`F!2nd9@3|G6Z~mOi`5A0GPL>nsaTRFV;Oi$dE!88mb+^bf6bC+VBFo6dDjDlCx8Dm;wC})B*>lw26#Pl^F%{_BF=C6T`jd*I~of(;RV?OiOt|DdP!~ON7=DYpI zL9IwIN=_c|A=MF^rlZdIkowBCm}=5jhr!v_vF$%!9Qn1SX*Vo|#Mi;M&maEHH}08P z{q$K><;RiiQ3fwD#kRS9r!U%}mG$pCl>H|sNj}}{1q}X}8|)YCJKOO!<{}UTYF5|A z{QzP{qi5yWqK}^hb@{)&H1;pM<~7SEhKy9gbGGq5!cZYZniH-QeE8AXigF7)e5V1O zogc{uwQphg<>%z#T}t1|&AJUAb4W$`s~gwLE>g8RX)+BR{TuKV<>3&57N)2?)8hQ` zZ=l-l%A3rKrvo()@p`+T{sa7g(1C_Pox!pz+-fgddaiWN@!$VRY~O?|7>BqjCEj+T zO)ost1;j2yVirIa=tNnZ1Jd>O;wM|m3yxHj9{S5)WN!p}Wncq3dJa7LKVS?ZL3KX$ zAyGKZ$*F<{5%UACC)$e!C zd}7z^KSn?LR9aoGj$YWX*~%{!(~PtBMii-6tE zJy%#5D=P%f7aUz$%N{u~V^(`{d91iRQd|_zp8~Y6oHV($XvUtuy&_wCff~a}FrYtm5}#_e6?$`Ve0qhPQXq4uTczN^ zQgHT#KT5mP)unz2x9AS-dSp(dq#W#Y%98womOn4085$1_Trf`AIxoX?7XSq72_7> za41(4fZ@-SM8RZm8FKQcK^XudC_74XV@1>Cv;sM0W?TNl^7v_8h*vbUVq#HqA6I^@ z{WVWKISlt%aqG+A-4Eb8haB2SQ4YB3#|z*jR>+;(q#a_Kn)g@_hW31(Rys(d1V7TZ z&-HtEBTj4oakQkDK)tp=GdYqA3`)<@#R z;!0`3lHQ;`_36voMPP%k6={BXq;0CwIq*i@OOo-sq`k6)C;3kv@IIO^6ERBo+@!gm zB`AXKLwaK2A9DhMFi^ny*|P*6#6l4b=VYYx)8GHs3lIG8wQ;w+dhh@D>X2xCu-@77YF7{Gb2x;yeHK?NQHdnaiY+*V&5je808+moHBMNAj<|JLrbRcY%uh zmia?(T$FzEqR~HnW^5~{^IT;Gh96|NI6XglJ?qDBX50pz%S*@n^OCF^7o>qf%74C* z{r{Fu{QlzcU}*lmc|ZG?`M2r?iBOj8uCwz@A;?qGHzHh z^7c2z-1+RdTDhlM?tXmpD^phf&*-;HidR1M=DF1eWOGyx^(Juywiu|Cn5Ea20g5`!Xx8a zrtyqheovu4sk6=W#}3J!r|O^k_m@ZCK5rDrwC{L!^xN&9cB4mZ6eki&>829O`Z)UtLSGB-{1Vo?dN57ghPw_f4t9LWh`coRSfERu(#D$|8ZI_W_vU3k+9jfDr zB_MD-cbRvvlC5{@<`+Zy zqU>yzi7@^wIFju@xO>*j_A)SFskHMePnXS*_0_HHuw6 zHChDX-y%6_CI@Bcw8?HxY3!{{EYeDaf;Dl!9Wqrx4Au!$rkF@O74y zgC4dszofNT*)BJ=;HRS#jNf4c^jI91b)kstgw`*P+GiGvYC-+J!#xlLI(3?xKLrfO z?UM2%rL&>oq+2CMDmTu{T(5}~_LO6y39PU{KO2%Y_2Iw1*jzlPqvWwOWsjfv!{6kt z9r!aQ!3&VOyx!S9IWTT4}Dr*ETH4=%s5Xnxu8iiaW4)#WOoQ8hJ(uKx40Ll2UW?YU-c zQ)xx0pajBZc~LoJ!-Bmy_^pFSO?NT8^5FWxwACp^VD%oVC<;x_3FVcYe(EnUo3MRT zGS8dL>l(NKX?{L_!+dMYmLoGNdMe9%@}@=ea$#d2a^S%1N_lL*Hr7tb)a0JhJkT+3 zXcBK!P4ebU`ps0{Z+KjdpPt22`>q7j{Jf2#0hQLqOqL0jvVc}Od@%gmKb@U5XU7wd z%iY^$2;x&A3xT;Fk1vGB#d!OjRGO=&gvWO?UG47MMwZftjr>eZ=wCI*!8TnlYRq<$ zvU+oP@m-Ak(G3td>U#`}f}tKL(Shy0oKh(Ba_urGnG{2MZENKmxqBBR>S=!&<(}l( zvKyOU7F3=S2t=9_0#9FIBA}F+rlZ|6Szz^&#N|J zr>~6YykD0AHl8KBob;5#Gi(Vi8j&i?PUb`*~1aDBRMgGS$m(FXGHM z#B}^Ptw0;NZZy97r1`}v5AsrViIg8s7C(Gf7G{nEcaw*arMyJyi|{#$9DN$h^^x?W zSp$qYk>&)#z`KXJU+zkNkzog@+bv_8+(UP~H1W2%_kL|b_SY9@fB&t_e}8lM4;Q6> z{p}H7UyuO|_&47f^tE^HfE3EdSN#cO&S43QaI7;+W&H8K#5oOVcYlK~VPsS?~{(bJa@4i0fhp#^Hv**T+cy{dC zXw6~S{-1vv_r15WzO@uY>%Ro&mK&Fh_=k6g{-5{ngn-bypS{0X_QWC2IvG9;VO(8L zEc@e6Ub^q51=(P&{>^vp0f&~aFZty+-@WVWOYZpklDqzS@!%WYOaI#Zj32yq@5tAR z_9l*k4|@V*MbVu+jGg|+Ep^}-03n7{0~>eCs^Ye&PeEM}JH z0ecWPb@gS5!_QsCMX{y``!8IK_e)gO<4Tr*>#%t|eoh@29zbfIx}@^VHa}Eob55vsXQ{ zGkzE^XOWzpac|2VGdbjLDrv49lLK)$^1?Hj4uue!N!_BgH$JyC4VjyHL zfMCgdHy=!{%jK(Y%Ck*!)27as<~0{S94kU!kp!eff{MAYVn3*xLt)dS3`AU{XXg`- z!&dRhQ{s6KhG$Ig1rOyZ#l7VZVNmA-xy>_XK_p|FioV3{2uI}p9owIn15)d=vmZGG ze?IcqnS$~ovt}Kh^GNeE&&$1gA$3#V#lmk%VGOdhg?_R#ZbY*97ua_wKf1v3pZx3J zqQ#Z&bV%teJ6S%1tpE>hO9dlJ_e#biE@U!UK}8emXDHgcW1G|Iv-02p*>(o93gIiZ z$rpp~N6_7rTT1EW$Wtc{&we;mT5eCvgK`3&Hj$T350^}2`4G$qI__LBYzdX;vBD{G z>cmh%S?g;{WLU_~(9y>q55d`=mMf-B1NA-F!9xThIK#-CSs=gdDlX`G?-j{gRX3Qf zBU-ZQNYmSIw9TD+=DAno(F53>rF6Iu5^0)Y6XBM5bDPU�oI{)6Of57nYnY$ZvXd z)`8#smhWi9X^})*>Qk@3d3eSnCo1Rc0~3;Cht-F`2~fiozZRW3So=jE6$?8Xc5gfL z*S|EC&kp6!w5M0{oKl{L#xfD;zySSzL8%27ZNXz5d1c3ER_uRlR>#7(WDit@SVVe( zmab_tvSm_LojO?Y3y)*!yoS1W|K?W^T?_RXFv+osN}-6=Jfm#alaI;cCvdz~ZyRH_ zo^RN}(aK}P-ITjCrR*G7-+LoqP}LXgy;s%(F|Utb_)TnTT#Mi@`vwHAh7d6w}&3@U_Yu(lLdMqBQ%A}OsFKC!YGv6nmV0bh+yl18nc*o7daPLVBOZfpNQI#*z1-p;6J)8gE^Y=oqDjCVphY`|2A**_ut6+w|S#}@Yc{9 z7yk0bx9+<0l?M(a&U(Y53V^~9E7B%A=e4X^&|bgr=(-cKwNrLPWlv06+pOdN`Olc5$|3BWi z|JFA$zc(-a#`%LGYZS6cZ(K0!wuRY0nm6_*FN}qd&oi>ih7ET-!J!@jVQB?ygUcO} zw5mkoQ#6x-lqfaqT4rf=jqJRPObHi+Ol6zfCXkB@S8akP+On`c9Lw$rObP{K76@N; z-N2aWV23nwy|YXJO9T$m%VcI3S*^o~bT-YkI4 zoD6RqJK67?G6`|4U`$y`Y=@VP?Cv{gA#fpnh7Eh5y zVEGO15anQ^VsYCu_W;-Lh>VA2OQ+m-l2_M*{8_HwAi>KUdPTayB--lav9K==<|@V* zSGYDl(-M~6uejb*%TXzxs4xXpa_7r$o~wM~^utfex_Y!!c8xhr>`F*;7MMpcnJmA7 zjyJ~C6AqQ+5JC#|4Yj~d;C9-$mSj2w6#9Eq)a?=M5{Tnd9F%fK?5qaOUOmnvBKGRlp_gCo{LSxs zfAa_a${TXUXY%Yx97tIh_O4mFZO8#fWYbx>@1P7Tod7VDmZSRf)Bu#Y`s1l-5`qyS zf;@gA1eWn){(DU&kG2)hZZ9bV3;VX>LWltED68zKn0>nZN%`I~xp%jWc1Q+YT$q;| zEWHbltqx>a_f4hhyBrTr8NsJ$%ci5{m5HLt*t9~Yv;rvm-lDvw88anZ!!f3lMQnYk zB>HkDA}}BdPed39+dNNaWRM=|Hwg0NaK@6sp-D-iat4oJ_nB%6Lu>!I_P^CJo2K~T zTc4S_LeRE1xG}!5iYd9A}tO+C4NznwEHI4+dDbbSEp95esU9qWXS(3QtrCG@Qmx-~Oa?QLaE#Ip6np*m`EnWa3y|i0cQcu2 z$NPt}3UVy}B5$w0v9}kx3+R9o2m_QfH={|?o)LAXeBs_7D82SK<`2I0 zoe|%jf7f@H4*AA{LEoF7@%;s(AieY3O9uU7-n~0RhxBM=DXvy8B3#sKx4yJ%?k}Ic z??*4*`~A1GZ(4LWI7Hw3Rj{%>+cj~r zZQHhO+qUa{X1>33&ii-Q^|bc>EZ_HDt8BhmW3b!!m2J-K?eNGZMz>?Te9*!Vdp*cd zmgz&BHW`54d2&eoCyey{TBCdf({4u_s^YXn+W#IUC~XPT#s1f@2ay6qI{g z8^;-aaA=u^rByN18cjZ*5(jnYn8~|fJ5+#E^PQysj_0^C*o-^Ky2x;`O;)#Hh5G`M zxZOerPz(W5&^$Fg`<*Pt>pD`v8B>uEnTIqQZiBHP&~3npjA6po5MAGGh35w@;)8AN zM?#tJFQzLn%6;QZGU#ta3dI7}3K;v5{M-r)yu(y}&tJOR`;=x)Vwkdtks#TwD#As} z97m%tF#L9Al2y_uXh1%SYV+#un=uT*Um^m&J_H0Ks49P_dl8mRZb07Dkdr?+5CJEk zlX3`M#Zhrai}%f0rlmZhOG0@5LsJN3TYw5#$~6gLe^1R=)slzgaUnLgYim1NyPX6x zE@3SnI49C${d}(EedesG<4DL{)cS)#NBJe{Mo#{DdgLpRU59?qW<;nuNC*aYLBR$8 zA@%c*lMxlAoGUe@5Y;V(t=2ZDEW<(3AR!k=t4O+8wtiutzONhfm*6#c#x7*sz9jv- zLcw|9llK?h*WG+7+!8Qq7Uv;edt;ZC-Ua{d_>u==eyo0Gy;Isjl`jBS^0KGF%e0E2 z^ASqj{;1#|6FM4GN^01Z6t%EjpdC+2zxI6x@na*DnPy5}ARWx3Ae%q#91=YA@zB)H;KhMLl`-Rn>fx=9ZyRRDXoHl8{5Ks_C zH;_6I8P22}$ru?j2aduJXi5gI%ZQFcWh|dWU?j1BU80FUR_cO4V$f(Ka_shu&`D_! zN5ZMsME59u5b z!U(J5f469ID2P{tRN<8Q!PjTugppY5%pbH$;ag0krawTmdj5JaEFN-fZd}qHUh9RU z+c01DsAz4Bm1Pmr{$QrP{oL6+Gs!nCpCeJ_tH{@6Zh=Yte$&R_#hQSud&75Kcu3&E zi^d~)&C{3Zlr3lZ3~!#16PH*^e9xhTEfTt7FiR z`|`jI^>IgjcjBA6zV9`dwDRMk`PB{eOLieI_+MbmtM@DSqy!Cf-R;QYe+eZwR{q*N6@YP*CmAe-W;0`&y$|v^u8CUSN zLaP|b9V<_BEA#zse`iI99~^X>>0NTPYL1 zHf;7PRy%#tli942+i)fgH}J(qYHor|IP*fzpf+~ekIPwO)d!B%5H4LB&bmhsD#!&y zXFE`r#2De}lg3$`8jYyYTcxIVXY(J_!;5*Vn@iFT3C%Z+yq(FUoH5cHpm|q|)@mK$ z`ur3S)5IPf-@hy zZeScO|7MGb0slvkSb5$S72+urlA9%?a-$G@LH?xyAf$WT(l(nrd_KL{s+WQ9D@sjk zz2|~OvMSPO>KY$)XMPQZ5+ErFK|M^d>JsT?F?;DM%uii1F2i0b<{m1cFi13Ml6 z?YLdvK{^}NC=(*b`n!_ON2(X?c>Np{p(uzSg z9^Whn$grv*c&$&@**-|DDONPlM%b$#X_5XTf!E)ykPg=U#{Nh>IJT(BeY67gnjZ?n z0q&k`BSMir_k-zT6nc%YKDSbGmnBO=4tG}yeC3+sm)5qE$FzU4eqX(npQLOwZPEkw z%;Fz0rrohs$WaU{cPASan=g(E9#+W@qo^B=Q!J#v-gY>c@f^A6gjokjf&Dnv8qJiC zAk&+dmxUR1!tJPdnO#?;Lk7IHF`_Gh4DQf)22qy}3xPp>yRcH{VMm34B)a8%ln@qj zBxrC@UxB7?Yq!{8Sc1}&evFdvZ@fF1b7d5t^JN5WtZ;4WR@y9QnwM~3IyXR`(nn>b z!N%>H|0O;E`G;UE$>up`u3Fe!$-kd*+X`X`Yjh@9Z*ceCT_|V|_Uk9d`ZK6a*Wx&; zL>%gIAGw~Tb3vCLKSYT>+YLuFIGkyOAys=**vi?Aq(WJU&NlX}HCY232RY6~Q`SXU zNVzDzupBV&uIv4-lex-u*ceRZ-Fnk2+mfn@=1c03F9+yj-lk?q)7Hhv0{C!O$dXq1 zMXQ|-7xcD1Tojx0)L#m;)xu(V$<|T7JT@p?UUdn80_P3kT}ES;uGk$-8$ZPJ)Zbt8 zkM<5`l|?0A_OQ{B(Jgy>W(23|wP-0G*4EG9a^W;saPsOm@Rke6(E5Ugm%`%m zzG*@n@oGQLFTb$~hRf|(WA&OEb8@I)#rp;P41@quo87XU{#33&DpDiS4|*|s5Auq( zo^ECu>|dv)P7@i94R&NdRR(TgyViKLmF5%yYYGZ$Jhe6V)uMaX%r)%cpgQq>U2hJ8 zXP^q$26H@vhU`x1@;M_yfFtG&2SC~rzHL_Pd@gM&?(AklkhQDq?y|D zM+Lm6LO?uM8s9qckWdEy?q#XBJL#M|lJv+$>&1txbv8!(B&+ih{@im%wVc`L0X?BE zJ`OMKy{fEIbQceFn+poq{QY|lB*-1?hc`}ev-=BD%P&x0@HUZhLPR!xjdj&=8P;h9 zwHVZ?4(K24^xOVA<(Aa_q^F6Z;p+LPLK3@)&jc+jE)LD({ug0_AM|G+%`n7$Z(px) zAyMOd-6PvSZZ?(?*_9`bi;`v)_ztJWf}{9uRh{)&5q{IXpux^1c*5h(KRhHr+&=K!^9N_TYvA+yDf0%O zsX#CC{vUI)@f@4*7e_>IjHe`&*1fuB%b4y1-P+m^05t2HBr0$@~Yi_#2@GF#9M5!A{bB~UC zXD;f{8$5IiMkrTa>})XmofF3OKq*K=mspT42#tp%*aYqe&s=f%eBnC5&9p#*`bV4q zS_fNv*GT5(81YiX z{@DWtA}IyN01J;?Eib*k7erc#%#-lUDmp&KS4U+C?lbnnjQ zEobmNRmcl&0k%ziimYb@<%j@G&ko$m;`lcLUw&Yf`tJ)}T+JU6?6lcNCq@NePdiYs zY1FIHtw`EnVkDbGYYAB#Cz89!A_O$J#WJ|HK3$SHsG`S$gz8ulgN+&=yy3+h(7CyR zheC>nrajVo0>&QFukw5DsR+0Z6?L9ru$pk%>r_3#kmw@$@|vBUbHsi4;~R{(6_VP~1v2f0!eEaH()LvQAT|Rydg<{PSrOrkpfSDH9(dlH zoF(n5W!5xv^eK%}SCn0Jb4wB`G_3@zw z*5c*q^g+keeZ-&;1d8foKFLn3=_toxfc9^5A4E^|W-HU3<>k@F$iAGtM#ewwcEI8&+~6n#v(8kp9tc&u<>6fZu^y> zGCuc@Nj<8?Fb6H8iT@yQJ;Gex1RJP|A;Czh?UboO$u4Og7>-3IL4t?sAUp972}pET#e zb=Yx{3Dtu_!ajPuiaT7#rf9*(Ry?Jwif6_c5$}vw(s-7|aT?; zB)KV7Z13chE6wm=S`8SOWhvT0PNJF0gc1LXAp6&+pg+wT^ZftIQtAG9mn9(3`zJe6NI0m`fKUct3HWX>(`TVKFRSBh9`VCrHe`#}V=W z{CmJ-S->iAzSR@uJ#EHWdwiNo^}lFhL^AgbRY=`n+$@lY*7HcGT8Dn6JRMigFhOgj zlg~+RdN*e@eJj1CQ~Y z@TDxI$)7&47~`^*_y$z)H|jqZTaVc}!EN#TmMc}~<2Cj3c~9wP{B?LB5W{YXpR09K zm7?ipgp2~X4tPjxB-7uZ!Zm*_Np~0aY)sfekiq9l8yHV>Ui@bWnMZ~V||t8fCTr$ zXf7=XfoYpihA2ifo%qf2iMu6#za_3hIEN|{dq762loSlZ6Cws=L0$aFdnQFzjYavi z-HP%|px(XuCWi=_RLnuenk0aERqKK`vd#5`l5wBZ(zh*f5$^;j0gnqv#O(v)Rar@b zTP?%&9LL%G`3pCoeCtiKpoJ{MTEn&6Nc^ghB$)&cs!{QYnVhVtKQHzVjc*VFQ_h1l z^folW!shrqCljRt0~Pm^Ab0e)jn?Sp{t8JB zl29-au(_zegOJs8ne_7Asml~JS^#s2fi^kl)#*Kmb^j4oI4j9PAhRbKmR~Qkuu%yI zytXThymhtd*VuZN$v$ZKGi!Q3&V59#=5Spf;n$5pvBzEv%O=<6k02Bb1_O+UN&kqw zCTatnPvD+h8GE;$F8oe#bAe?zau~C*x-5g4=D7x*47;6^g zim{8bN%tw0Ky38iUR*Mcx2dWp26<}^1UjO_f<=Ro*LDT6Q4AQq7@eTOOx2;C7Ioz! zszf=am!u0kTUy;2+NqS&%%JrK`N+r=Hz?;SNv`%6q++41$H(r=fg%}^rbzUcR;m^MI}W@3G|00J&ID+WzpCGYcrC<;T;Aw5c)g(q6Gzy;>} z5C>9^iGaa#-g6+`EuU4-VSI|mZ+vec%Cq3nyn?mFZdl_7Ih3$sx#lwZXy>~Q$&CT& z#mrb|iR!ipdQRqY7%Pgi&4t;+Q_WdC@i&qIlllC6rvD^(lJFC|m6QdIX+|$*0MwDO%t|UhydyorkmiC3cz!SB4W2-j#No}8QiV>Vg@ZMQ0~)Nu zQ|`3VRt!ZGTg<&lMcL&_45ca|+Gsdxd*r$-*ZfuQn00CknQ z;AdbE^?xaj&KDDjA3!Y+sH6&E=>*T2vDZhUdRA16>F=KYVYW@h6lwB`v_SJ+c@PE+ zx8iFx{L@uy2~z+Di;!*eS#%9frMvE^kOJdqq)JxdpIwZ(@USdDJkk?i)swxKl|Khk z!LHadxDPC@r9D>1b+dHMtj^-M{-c_;{M-zN$I-^v20!1C%x0QL|8THJclJP^)HAc( z90SWb?LIfMgA{70OroZY>wlBxebFH!~8kWb)0$B+6~U>+QF-7#7lL3A-{jiFAg z-*gNnx|cp{TwFYI>FEqp^d<%FB;kdBcA^=z|E8e`g^rB-KeQKGoAA4X{T1Oq`@~HNjgs3m1 z%9)(HLz0k=|9O28tUByOL)3-%)20%4UeAv+hwDe&bE_;NoGvD3v+Cg2dnfjEzKt0V z4I3O6d&(h|@c*=;9)x_+?w`Us0}VyN<_}?*M95bu0Xn_3L1|sxN;h?}9CKKVL0doy zI1=QGM?98mF>z;Lhuik$InzyJ`ryTTmibvq2!wny%S|*TJ z%aBAW;1uC14du-aKC=9+%RGek?c{9b?79>#G(^Ad{Nlw9HD_FZEhmDxe>FGgsDLvtmGID zSok=zvMHJ_&a_$k9xQ??s#y;`I^W_5th9Y>%70o6K8!oopZd~S7gbi2malYLV{BwK zsr75n7y8lvD;ol+`<@Gt1%G^g`LkQ16y;SIsSg3;@ZKA4f%sR68Lk9?0b~obACe^( zc0~Qo4`R^xbzYHnchS+H;sUGo;I4giC1V9#C&2X!$_X9(LjVXuftI4j4ffoeWl%2N|M3SRgbK(=uH?evz= zbfS{cG{YfgnzADUknxKJL}qDP{n%&C^E3E-87HTgz0ug}9IKf&W8(-;XEo+N`>hU& z$|wjo_%~lL-p>r=h?K1B02h&-E}ecm{V`C`+ZTA{R2*|QRtq0h%W*Ee*HTT{|C_1x z&qmyO%}=Ua57{16xp2(Ii}l^9as-zBOYe34flm3$8m56?@23yTCCEj&XhxHB#QP|h zvm6+~#t>BHX}dN2A1ewW2&-}8nKXu~!a9l?kpi0TKTIOsqK#`z_v?|B#p;=E(@3QVQo}r#A>|zU%{i3@-1mpqardo?rSR`V>j$ z=`T>3T-Yo+Wp6MR{dsVZ`zs7B+4}B4b1xf)U?`h4x-KQ-?8U`M$l&T^s{Ir}Rb?1q zO?I(=4|FPVb;h^dX_@ucJ4^t*9_8wW6GGg9CffqrLiwti4um(TDP2>)Rv7O8Ji;5j zF*Zij<6Z?AeF!nsfXD2>O3F$JttL*O27^gHC*!{c7G~1lG$zD!2A38)&1!2@=Gqcb z**VV=OxlVgmyW6JC5^7_HY;Hsbl68Ka*0;#QE@ zz`;?GMyrY9WGxVVL#2DoqYj%)qTVhk6|)y*ym|^sh_MijH{&iTvNwV@$Dy5cTm(*S z1prd<&|eVylgx7fuQR$Plw7nT^JKkjq9rnoQR?&D7WwHa>#P=@?oO7ALnpQRe6>2< zAPtu=_4FfHcyCk9w7_g0K;PKD>Q>QQ-GCi(6SPtcCH<=pU%>zBgIestmH-j4R8U{{RmH2Sa7{yh zkgBLiS(w4XB|+`iBvBjN<2Ym{0}?o!EC4p^F6bvpBKb#Cw)q;Bv6`pH5F5L_j)RT# zX%U)-JZjC*k+c=LkP6{Cym) z0$In3ZzOdDC%L)cVxG6WbGHau@lLz@^?iTW_(BI6r-Lg&eKkRyVAMn^PZ=-$>UWK< zLIVxLMN2*^0?-SbskYrchF%hmb3DeHui)GSEpXsOLZvC`XxZ} zZ!pfu$wV?Y+9G>)&UjHF`(JEW;vZIR<-e?PvHavr zqABhVgK)vBpOS*9B$|h&m|0*XP60klH<|2 z>cCXP!T^&YV>a9Ry%!1AyvbgdS=c>ra!~Qw_oi$Hyj~rqOXq85-LS5;1&CNI2g?D1 z8+&y?EwA7${RSE3y{!}(ag+F3t;>KAdET;s=yiVNAvL_{cV8%<-D97qX(RjuJ{a46 zy#|Wnn%py{CN4cQ&2Zij_|AhbhQ&@uc!D&wIxF(2y;ct+beie3?fOfPP@AE6k2cz1NTTu{pC-aq`q$u!)uQg>um)~>%7&tJkpf@1cvgI4XSCFt8 zDAT5=VwLB?RKD+)oU>0-$mUorkr8?PZsNR^D8lcL{T_!UUm9n9A5gQ{PQ<-}zZT?di0jQgaXk~5gW6^+xWed3%H8Cy(ACVCSk18LtN-Mx>6*Vg zZI2?DF32AFh4Tp-n${Y?;EUBgSX6qQ?!VNJA63)!} z_!AVd*-pvgjDyqYH>;i@MQMwvL+|pLCGYX->P2~U@D?7#9EzYqZTN>`kN{?u9Fu*M zr@E}OvA&SB&^zQ*st{7q2X|!cA2Rkvf1l;i5So^)R1)Pc{kKkD?Gx{F$`|vT-7T z>)C^Y=~EKm32NCM!prJs7T7i)DVzA6#TqfZkVB>d{P_!xH4r3J2B)q~AR}-KMQv8c zs%_A--{}0NL-^V&JN9tIUt=K;2ymV77h&;chS~`9H?o;6%DvUrz6cY%tp{v>$Ge{f z8PUF;Gt-~S>Jd5NM~=NN3J=c1W9JTxQ4l>Dio0#%8ziEs8R!GTTu=tQ*Oy}ByUbx3?> zGA76kU`rt{bam`<`dofr>tYO^y!8-k!_f9q#RUAm+~uITIPpJo^$@VIz;)3OjsNPj z?C!1D>O7L7s9&NfYHfktXf>EeYGqkkHx5%{Nx|mQ54XlvDYB#8F^AP`D4gP7^zyjc zT4SDLiWAK;skWHW{BY%OzNftxl?=z+mNHNNrTWZnAjvrdMJ?OUKk?7PNJek0Y9P}h z*+ubJW0nR(%L{C+S=O?keCx}JqGk4HlJ6<;ozW}E95*)BOuIoB5|smbbne0_rJ*5Q zUzt$MAl?FDO0g-(AZ3a-SE@6Z#+-zI8#&G?vh*)NZb1zO&o9(%` z(u?ScsojJ~VNW_}#Kz#plgwV^3SwD99A7F32eCypB3rFPC!tagsr5Uz+uip#3QD;= z7h)w+$>IshcvYk_3VwAieI8ok_9^6^7FEUntX-=`Yp4v&(cE+)$rMtqv@|*ej9?Gk zp$Df03EE*1UT#|fR^Kr^2aN(BGoLx;vTFv!wpeHF{>X0HSZ~@mvRkq4M8bd4BNKkn zo#2ynOed~KV>nHD_)BDbtQdu7bO-|bx;_EKVZRjpE=ssT|cdM=+x9|5JD=Crs@0mz-^ z39~kXaN_m`TFq{zk7mC#U}=;QkP*zVwid7DVBg%J^T$%U2YdIr7N|ay(yV(9bfgkt zM)wn{*}KDt5ccdb`8BR@rgE_%LB2`Rr57_Pw zPom2edtv46^yCmml@ zW~|_YtQ1f!ei}D~L2)35ORSbpD9xN5U=~!Cm?Mo^g;E_rcY55I>-v3)~parANS zi-|QRD?1$nET*=TG3DR~RM777hqpBe%WE)==_|OaVfrJyql*Oxh8Li5I37%!ja>cY zI2rfl3!&nhWZabaa*M4Jz}gt!++1H*Y(E#&xAn3V5;PRDGIZ6V7+d07aVl`mAQrq{ z6|O0gX%3K$!%d+6UAj-z3q!)7x@q4I<9mfmPE(Ggiknf|MhW1}oN}A<6PN6$FH<&+R*KFh!gVF`7&xvw&;q$WA4+opQZ5aoL)=~P>> z@2~k;iK1e!`GiYx#md(Tzgfp(9K};sZqTp0RGpJc>Ym)D-`-YO?f&yTnNhjW*vbcN zGc+GsG@klPiAsKU zBTtKCP7V&+b$n#!xZQ}9V~vIwYk%=j^A=RSn#1?mLVOK0=}L+4qEqq8F!;)7p%WkW zORR>8;Syx$%4pO2b9L&+F+iAV2-p7BZxTRk56sP#HV@N=cpS(x&mot#l54dMY4za% zJrvv3u70p_85hfSZf-2!#{JZe<@4p`rzhCgz1@)-(WF+8i*!tb+n&Sh>L~LQ#1@VL zKvkRN*U}(rE`Ne1@qxnBi0k+XknxKq zVHC;s^QA(puh+8Ncy%>}wrbvw-fen5g^m2?fBX%M&ZbAPTVC!4vl+l@t-xUF;@v?0 zLmW3E?f-z04k@4_r%@*&_9J8Kn@Oi|KZ(*)boxrVzbje0#j}=maOYBGY+z0Ryq(@e zZ(`B6Fwj0nwTud}6A7)&sIlovJUGLV)}E4><4>UIEgz8}Osjf%3s52=qgfU-Zl~V# zf#1C<`)|GfJKOR1FPtdZ3b4@gwD92Vb`q<`6^r8JX)A-Hx*X1+hVMfd=Jv*#S*sjZ z+X+%7t@Cu;MP%qF`3++V+Nd>&ZMY(JRdNSg6^~&(RY5^; zhCzl40cEK?p;gyJx)R-{;Kv6gVwbV2h_V1%x0yoAsD;sbEh;7CW9197IyVf1d(7Vz zZMFf{zbir{($I)v!|T8Dlt^l>iYO0vM_5b^*t{f6$k(SMS_jFRUf1tYjZO#-sBmt= zWEhOO3djJrA7GsyUL?ENaD=1dIvIF$!++Mr5je4Yn&o=1kDRvJIMeLE`Et3f)dgIw zZ^ZJkiP(59-~No_@{fnt)yR$VOxXB2A5j%*yx{|&wOUW3UYzh7` zV3FHqKCWK%z8n#kSZqMCUfF=4W4s8#SY>ebBq~yy z67l487MHzBq`Jy4%bm)$#@zf66&7)~fbz023UCfrDh+3SB)<9uVQc%2l{eSiO{A=T zwsco$u|L>KEWF4Rr%{8>KMP=b+yHuT;uma|Zo?CdO5fYH7pF%r+{0aN>q#Z#GLQ&&UaGQTE)eETUkjF@rQ~tU)j&oj{yQpUBxQ(nFeRqFNRKK2EvXZf^*Fr_J z?x{Bo43CnC=@uWnrVaA+kR^YTed;Z6r4Q7%>QYIWdQ)Pkl zuwUFV(q+MuytKLJ0vDX2E8N8H+8d3=EAH+${AbDD-`Hsi*rj|N!$iF`M-Kd4Ey_A~ zQ-)OX*j^&OM~rIm%gt@_bn{}lPI+>R_qcP$Mmh=0VmCCsh}lOW_Is1@_sGgB*O>o` z;m7g^C@xiLyIu{?kE5zO8d@I7n1`&lQ!&}Se?alYMG(qAIJ|2+6`_3C5rKZ-j9r_! z{n2HPlNa4THb!KL0LESwV?)bRsnT0+sAn9z0bS#w&^DicVZLglHgEx%uL&p1T!bCWi^V5OcfSZdj(`gi6od}*i zHBGyLl(M_7TVwKt%vL0d-e|nc>{I;oS;|z_Jq_4~LGQA=sxbblV_R8^=Ud9rmE$>y znT9Bvk54+hx~p5ypq#*ovdWRogO;$`VBJf`vAIwx#Ph6PoA`EygD3l25*)4R3csnN zo(-+is6~+~d^uvFHCJMFHLGVXuO113ytCbz-D|Ci@{!-+&u>u(O67cxjRzhr)*~lE z`deLWX*lZbj~$4z?QLLY8sX-L7!|ZpRZF{izu+pkC_I1I=JIwTTiKf!9FLcU!k5Dv z&tD8bgKy3z9#dvNdvbt23rwLF2 zO<7${d}op0fUYYI`kXvA2FY`1dn?P1bxo=8J}yi}e({38ztW#-E?kxE7LTC9DGy5q zI-EJ?k(iq6OD}{p_*N&M)~#!nbB+_o?V{$U&E?>+7FvO9-hI@}t{(p}9Yv;4)YUhX>6EaK+v_tLpMTBq%h` zy+OIIfg^t-R=&w@!b#&?aV5%=>R1KUq9_hmWDudm{m`>rthqD5_;w(Lwa6YK1YGMB zSprF(Ahu9&K{Q{kPVFrHiYc|Uy}_wn(?Fu{`B-#rENTtPq_tLC@VntV-POkjG zW7g`YcQ;gia{R>UGiVHP>eB4u=5fa6&0<<~iUMFrR>I~lUbb2%^K2O+Krc3)6Cpv8 z-H|A)rkp1FZx5Qu1*Z8bS#nPA=1pBUm_Fr9zOpw z`Cz4s3Y!ux-&4dy6YTkq+S_zQK|6-*aa*C*6i{eXTQdOf;qd&;o~({P`47r%`e5PZzjucMpsj^ z=#f0BJ4XVV?QdGe)ORAY`6F|0S-ZdL3!g5$^{>KWj7ClBQ3?ijeDTI!_~stGrh280 zgS3yu$}6-eT6?-8QZB>OuBn$zlw+X?h<#ThuyprycaV;SbDzN8IPR70xd2JvNgbIJ z&SKKK-cnv4y!d2cvWQP@pkwh+zAS<-$Er_X*4)?9jO1_9!0%B~$*PN}j>@l}l=r14 zPc}c%W)n9%-Zh0)d^q|OOimMI`Nw(D?_Sixg*7;rJ#TyMsHGjT{0{-OWQxirS6}Vs zuK~eeEWu@YRuor=gaeBFAZI=@L}`un7>Ig;B9A%2Jj>Z8N4;w-n{wytwpPw`!=w;glpgt}ZPbBY>soOTs}N{PY?8?``vm z2rc`YXHT2=tyEp`%HR6JvBZ+G2NaJB8O$4fSm0F>?g*(<-<_r1ppwjuj|L8+S0@cE zE{49ClU@0$Lv2tt!6&D3F*k_RG-i$hNIo6J7FJ(B>aM%qPf> E~e{LlNF=a4!bk zPt@G-ng$)hHJo>Rm2YBY#?S^vBCf33t5(DcMLmToBv{s4TcA?EEC?W(Sc|+5+bY}9 za?z=~C@-n**~$_Edizfx&IIZgo97bLpJX+n{_&Rtp8T>4u});mDGpyBF4pR*5nSx$ zQXUjyyFqOO%e&;MxfMDM+9mgs2*BQhoygS*LTh1V{Z~dE&7W+ zZ|O9UM33BujB0iJUC?x7H_E3|%R=tUoipWrh`>9JO13^qxpZ2-jbz+S=3r5`)~IIS zw4TfbJaTz;;uUM}wHi(`1E(Qk!4V6XB7Cn*Z+KqvEcI1(Ue~^|=eXVqeJG2Vu7fnD z=nG&A5V0^4VjKMd-=2KhDD??9Ece84#S8_}D3|bmoov>BO$(}zQ zT#SI}L>~mv9G*$gnM}!54_>a zHkYoFOy!GW`a6*{IxEk9vD2<#dTN&Hi~9^o^FG=0G@me9bTVKE#aN40_uTTGlv~a4 zp{6ehkCHZ^8`MCvlJyhf?e4KGwVe#tvNWCxyikWNpu7-wY?DE;p~f38 zJ{~eT!`BA0+Nv%)Va{D(lllDC3Y_5}z4ZgV=;QFkOx2lM6-XTgbh@A@cY{^*A-2!E(Awp05~51^)WU|n!m1s>zIf6N`#lMl=}7+RnUHPlCx za06TYd?jQF@`%b6Hb&B_8fZ$jJEk}YQcqvlFz7BrHZ(nu)R^EJL24aV&c&O(dqN-1 z?%Ty${bePEPKREuYRR{pd(=84j%wh28FYzW+7&uV(TfCse0&1uFvI~CT?@_`9&Q4{ znv?3uXmrNb%bHU)Ctp~<3kIJ^q)$b_{rMJ8S$_kwV>8*#z<0S+0`(Kx(TBZr(m?>z`!}?d+R~!qPO{u)6n8poXMN5UU z@^n?Vd#&10f)627-8%SbG;)p>oeyQnhQH2X=UXhB$#42Hnl?b>TRTGVW)m!;IesUd zLbuC)^ytPbstf)ig<^fH|_bjyc*X5V@~_TV{)Xz%Fu0;Zf|Gz-ZVBW8PA}g7Py}%AQb8g7j-+ zPh+hA* zI?*X%5|c51m|35{!M{O&sOAxR7ye`S* z`g|PUdL4hf@n-`!O0)m&fa>8@Ok5oM?@fj0!sdA)l6dq?6Y06fz>v(q>4xz;G#a*jk_J+Ki(CE}=oBI_Ggx zUA8UN=j3MxkV2bet=me-z>G8zz!bhc(@O(aP<~mKXQ5i^O|ICAk2Nm#$wn>b4TIVd zd)`%V zE8uQf-ko%OlBCTpBS~-?EPa4+_^EbA0HGqzdZ4T+hpdqcW}6;a65jM&{H2SPRFz@( zVIOz9jyJ)3pAFJh^P5Qu^GsTOtKkRBCV=N^5PrI=;ml!dnb){l4QLbhv$7msGxMIi zQbHLPUF_bviKrR>cBtNzt){f*-IN)mX5GgmUb0qyYWa!R(=gLKaDq8M&Ocg zC}uCJ4^(yMk<`I2#5GrD949dAZJ(tv>CqlSE{m7mAGQKoL!!!SP*G!{ec4n7O+!D6 zd(I3xRLt(b@DlaA-9P6!_ioGm_bVF%GoEvvE{B9 zopGAHLH>44x5Apkph_zWbib?94W#Kti z|C~l_*S(!cG0#)rusv8kHKW+;%F%f4U@yW9y#6HXyTAp!+#FT~$g>`_r4uPoDlMCS zMS7hcgb@XVMlp-{ye8MF+KW*0^jXsILK3gt=h>amKjjpxD~+V6t~b?(la>#Vq2<0M zVP30zCnzNo5V+>l%_aQ2cZJTR0`Yv7k zvCk}0d^}^V22qRqA*gB9XNBE;K_O3THl=qJlXl)(faFzM$)i+F^Giy^G+)DV?9}7S z0;0R*rg|1Wq~y+oJy>$XwuU4SR1R-uzkC1Tx+ zSVlSJ>|J&C7w<`V;m);bJ;e10|$4;tgcur?`CD6Ks19ELx$lSijs&FCTHGHr{tyWA;E#uTV zt~X^z5LM+yuBuZPeYK+M=6p7EjohpicuUz~i7}d;%XzeVgibmj2R z_vH-MteOB=_)@VC*>ngwNH3{?r#KDWwbb2!d?MM-gFGn32glg&+P2Jb= ze(|zx#AsKbAJ1kc?{XR@`Jmz? z39)p5g}bz*DOOfSiX%k$fZ@OZB(kYzuU_iyzurrp;#HzzR^h$m=5QTna0?fJ;I29C z)a#{tyD(_O7X5!|(f7u|c;&pkv(zD8Mo&u?PRCzNoXh;0PI9Kt!H$~_g|y=NFA+3m z8yIde2&(uB^4{}0KF%-FtGtUjW6mQh^|Xz1mr`zs;okYLg=R-RXP5)Tm%^7|_W4K* zCx=fbl6nH}jtP(|O7C1XUw2S#?m{VmlpaTDxLi%G(i4GWEkY=UQ#n0FiTh6NoL<9E zL!EgxdOh?dJioc*!y)k%LKsgoTfGY9O3o@e!&S!rpMI*R876a`_ijfez;*1)5-&pu z^&OYx{tK^5rb|Aa$iv?NUiTh1^VissQJYE) zeDJCte|+t`g?g{ENqOJ{2om&1&8eKWbjRn=(@isXj5JFIOuy;`az96cLlmv6SkR@V ziQU0b=yniuCa0I#kvYSmxb6Dq&0xGxkFPx%xq}ZY?#pPV;Wev1A&jhE^S$95r@HeC z8+RaXwt=wr5c5}6&M#z1E1W!3E|E<#S5PgPrF9dB>jBK`XZT6NhYc=HuFrL$*X8SY zOuYpGEB|yY)`rnPm|^Dy!;lP^uEV%_(DhyEf}qzb8#8A`|~m2hImyA3_=+m#?7 z*tJ5ad4<~MwAz2y43AZlF^K5EnbqXr4YS#Cg94>Ni8VIPFngT@w9=#azC0;@*RCY8 zJSoijG#DWvkPp)?BFl0PJK3O~H|M=@Wk|qaC(-q1>3p2Xmn?!NdTwHfKZ>em6{_)n zL!_TRiar{uRQlLD4&Va~k{IDqIlls)?8o`qF1z8%hdq~X4AuTl4iBSLgm)U~&bNHCf*^iZww(+Hf z8}w(<^k^&noav|}DDf1!8cUjdCD5%Pa`R3u2o4aHf z&pO4mYw%DJ5O0Y2(Qa0&I`zkC*W|J7R5wzqkMoY{x5f(KITqr|rCc=y^BRwftRH<+ z9b7g(RPu1FWu*6o9{)jE8w_vcs-lrXb#{9`RF$W(7-iOPOe1+p;CFjX?d=)Eq>efm z9Pf41FVmbBk3JC%zJsB!;Q^SSxqJ~6mRz&J$@}9vu>2J+2&7lhu=cK97t`L5BF@ zY&V9o;VXjzkwZbHvYOFsvNzA7rd>Wy`8o?knVqPp4fXFD00mgukeCl@TEXUxnQb;8 zb;pDa~r$;`HyKfs!tXZ_b3(JaZe`LPpzH;DapIxjLD>0$LX|4QoR z`d{Pp&2Rq93c{LfXMw$)a$likZSJ@VL;N0Wyoixh;-TIUe1(st{#G#|T*r_!pn(|+ zpDBfyWKDPa*EAeXaBOuI^cYxJG{kuwA2gWr8phfcagh(9WKi5j&Uoq){o6>AhuPzO zaQ!9QlZV%75HScg*aq3x7QO}#ZdYPyz)3A87p2FA^$;fzJl6^SR|ZVVv!ooBgS&mo z)MtG3mci#82An2f0LYv;*WYNodny-fkvNQ=)*Eij$r#|Um`yqdR>qdLzomZ%?+N9W`RC^xg__)Y9z`VwH{94AwNZuC&F^thZsXF zEBySwsT2UtB$rUd>2TI}_Y!7ZdrvklBMV#~@A<}PBOBma9)@#v&yR{tgPT3-=?bl< zI^0kmLsjvYW&{=w5t9|hdRW7=m2_o2%HuE$YvhYyOEdGQgW0=uGNpRoxTWg3z;pDj zpy3MB!n(rSo3kK%3VS*048X-E20Q;nUprWri@-VFBo|}_{;lG~;G6%!-9&0(E?+Xw z)27RfkY|C_=6=(YM3?vYMk?B6>iEp?dG>P4b8L8*(%x#FX2>CBU z&6r6p2CNQd+&ScJ$ywO>5<%$j&b&XCDis=+kxSC}2H))z_{zg+!+it2uKFcbuR-QjRC0SkZ>3t6 z1PyARLgy*a5E-3rB5OEI6|aDa;nR)y5HeDXUz^>E`R(R)4-q-jN=PNsl-1HUBy3=i zSEk_=YT@rxL|V(pX@MnV0hfOtW={3q=3T}rC_fdUvcD*6O4P8?AC9BjFw7Qp8r9-q z7{v6W|Emhs`Cs2YvqM_WQVVRC8*zmA{<<~!-(pN{ z(oW`2ichh9bgaC~@W<*>b7&eoEbY&&tixdi(8-L+BHXuu+&-!i%_O>PbdH*^d4Acz zGd~8JQX)UL-c%Zbn}{AQ*6x;Odt>FsSbx4>d@MhY3w{YF&(P_eb?%6HuAfEs<-_4R zNhYrXGBUND^b`Rvwa@u@i4_d30J5?e7~lR+1w78Un%B4cDf@k) zxz2nMWxSxgg3JHx-J;ZgPyh(L@WQDz{XzPr>OItlQZw{+sd;@ka+*3X=-+1d2PXZ1 ziu70Ry-DWs3L@07@;JfD1A6Y&Q7+LH0&oga zZ++)?xnT=vkS;qKqS862LSZDNbMKr=?l=ctcKA*h?NiHS)F>8FR zKTcAleNs0fQ_AsHKr{7)4O?32cC;c#TOnR3JqkQm?f_T;l1v%RUCN{ z;cq>{%SI`>=q<51Lvw#voRa=(|3QNrL~K5QV>eFKJYuN#`DH>j1y752CnB^Zyg*?` zkaqO?SJ%G%|ED)pZGE0C7Q45jSdY&3`85Yq#bs8ussD)?>y7WyPGd?bzl>$<>Wj!4 ze~B@m2F9(@%jLnE7kgVbQIkJGq`rl+ZR@IHK@;07RG=hTFW`isB)6%?UuM;VpQHG8 z*=)Uc!T#Q9<0e1T?r%e7jERbz6I&rb_4VY6wDvFLH^iGj2b zUusuXZDuQ)+M52wfk`c6bi z$sAf@)=p=3nOgre`Y9x|$9;Yq`w0}yTXD%Kd^%U@xayt1f-mV3G^n<`8$!YV^mgQr zY@-L_XTcz(>NN+$8jif@FarBKj|c0yL8Y>ST{aH-WSSG4KCplE4> zEL0~u8cohK)z40`90MWQ40W+g`)oeU8?cpd*zCRFmmmKS6w-RG4E z$Xg!Z_aCovmD|B+35x|^cgV@lECAwr$3ax)yHKV#CNv{y`q}(k2#I!aeJJ^aa>>R& zmvW7&uUn2ZadoXYS9gOj5=Xl3PQUyultr6x>eU2q{Zt?B&Q)Ap=UBsBRc;=2LVHwk zJd2F;@fv31+wr7))w{~Y?pkT52jNX(!S>RxOWrs@^rr&p-XFc+F77qCSZnr1v(;9# z>JPim0L%sUZAD?`S5n-R;3p_zTYS5+#_4UCLl)Lo1P{e=SMgg zlq=+O4bNBkk@NfX7{+S4;cWCMoDx?)ow)mx^B4Xt%$r24eT<0zxJld)JqP7gn5=Gg z+T9WNXACbBCbSY^g6qufd5{TybkX=Z;|0`c(dDHj9K>2WO-{T2L=hT{bBY|54|Tvs zBVEnb?MtYPQ=f#>|C&6>OD=%6-9u3$5IGDdaaCgkCDL3Q5mRnYaC4%@`(T$(>pv>|(RtB1(1ty{p8H)W z?D+cof+eUU{$3%e?ar0FMKtA@R=S7*H#>rFg*8sarf8ByT}SEO5Z&`=dRH;E_F<-& zvPV$hon`;;VF(&u3(3mm6A5n!&jM4;xk*6JB7Z`2ECx5qk6bM3Hh2Q1_6$Fri`VI8 ztDEv04x}Fl>v}bd(;XQNe~vHN7O|>>cQr>LS&yv@Ofi4*wVutzkmxdPe4So`2SHQp z?R7Y+9C(u+`&Y>b05tsY^=Lg zN=AvIM_zNVnuLKIyt&P81Z_lt_@<9{1M}ZkfL%mFmb%O0Zo?aM?(Fm6VxgH+HS!#e zU_17D=LWh)Q2xfg*4aa)+uLj(N?vA^m43zfhUhk@caNS>1HhHv+R(^O`l5&QDGK-) z1eEu6PHB%#W?y?h#TRj1sUmf&y=M)#v{7XIJ+Q#2KtFQY=YcrHM9G>i67O|LnW;3> z6C(XOD@y@Ay=VAJ^A#Z8J|Ttd?q$8cyLpDU_4l`bThp&7l`|FUcmM9Ly1z6THt_kr zC8m+R%eo*rhh#O{2Ee|Z(jEHYqM{oK4T&jY;%Wr8?SG5wOYJ0-+MnEcynEc;$rBppK+^Knt5B7!fku^)1RQ7u3J|!(QJ@~cdlK%Fc8F4+Y3vB4)F^$ zQtc|J>*ta;PO`vWA+03!1L$|mKSRkhtMdVbftCHu`*CvY2p1s&$UL%EX^+{O7&*=}F4{h28 zMzV_u_Y*abwTAyB{~=F3%N)(L5_d53=@`!cIzQKB*K7;A^nTSXwUT(k9gR59DoF^j zr{eSACkY@rfv(bKh-(5^yRN!F(~PxvT;R%Mzd}%(iNl92JOU+BSq96Zhv=n?yB*11 zH!_)hPcRi2z3=vpfPWYm6dRZJ=Bv@bUS(+ym(%y?jVY!9wkmgDUYPYmtg(-C_FXeB z2mzfZg{daUs9|7j-4>=)4~x#n#5ycw$Pn}X&=SL+ln&IPC!(C@orr4g0rM;74HoByRE!n?>V;d0kHnBl!JSH$S z+~f=@kaWZ@xUQpSa&N+^#{=1EX6CGcY)+zt0`gs`_S7=-aD`$fcb-0lKx;vEp+PvK zZ7R4xRm3;|$QzDPsEM15KqJ1YiWI9D??&>^6~;C3Re*hJ?!D!(M0Pk0&!n zLKU-f3^V_og<))}`yzo52=m|~(<&Lx6m{FxZ?UOb!eVj@oysDbE|g3qUc+u)5_aBh z?EH*T)(~(e`g%}(Mq8;T5ut87TPs_EkI|R+go0K+1bR{P`pi1|UDM}_l=Ei1>Y=8k zt~m6z0|@Fgi!4(O%tzI`o-QL*``X~HzSa$?I7zqL{^xzR+2@2^uGYOD;~Q_#a_vq~ z_?}j@yBV|^XK9r#qIXX~M1si(G&|x2L4g)M^W04D7Kk=%aDT(C$4?WmgTQe$)3+={ zCcS@0-3io@X`W>DE5dCa$+b;ee+{7p&m||SS2z;NFIA^D|LnOMNGLwNbtgrJ_nQI% z;7Q!8v)F&GnIuXImXzCS>bYqj-=)?6UkH9%avj}01gQ4bS^N(hY?kPlX9TY4tFM^W z&y3D1+SZUuvW}-mejL}RX^t4YR6oHVuT$7P2Lt%m;*^p4lL~2%pK>QRxftv1-LW|0 zY1#ehcdDxiZ>rqhnKqF(*bJUr@&nDCOV}NHP;bwmr#PE!o@YAfBEFy5n2yZv(p`R` z;pzRHY1QQOzLTlbC5xpcv&HLHw1AJo=-to8wY*Q0%B3S;sdG#E)UpCxC0@9SGNIxPRb9>`%cC-GYSmq+;^Foc^D&J7P?Rpm|1qDxZ zBEN6WTSXR1RJ`qQtH$rFU2yrsF;M)yyUBrv=zC$~cqwDCvM+;ZP1F!OQh20b5gFNB z)}bS`GKy0r7N?Dhzy999KGl<+%})T7h6{b7JVGf+#43hV=5#A9%)?Fhq(jvrX8;Ur zIOo)r(?(Kwuh-W2xHz%5{w&<7+@YaNW62Bficn@T#Vl?r))+Duz8JZCOSIsaJJh3U$6+ThiC#)AbGVX4CIi?KTK&2)W)z-iX}u|Uud9WE~ejXUrMNV1$lt8Bj07}c#KvmXsBTnZPR&AaVEc+@;r`h*d@ zb&9?ybj{85A!ZQQ9qrfi5$kFnyPXz(N!h_O8NL?8$HH8=2N-r;-WwA9)A{58;i4#<%SQ(^oI3?3W?M|O{SqnJR6>O$20j4l#yns{i zF-HIRsnoGhl2mQH)ckExbEIY!QE2_w+MeW$Kpk~^`14*A5FC6Qm#FmwW7#TdaZ03H zY&LRIRE>P#NR;~P1D0;%8e>9}o-klYdIYWgkLe}mQpcxT45IuFeg)8^wTNQ=X}0Lp zh1&75r(kas+WOocQ$VZjW;_uVJD$QyB6)kBq@kEfrFS+?wXK`*QaqX4pnhbe+_qmd zx6pdca*r>n2^=vr8sxBuF*oRx04Hi(!(ADf=EL>m(3F;$QCF8cb z_6eRK41qF+y(!XUkApSTHHDlhGZ8DxP(6R>>BoNuzCo};7416BpN}`UigO}cVzN3M z?=BW@TNL#=J0A|qF5EDOOpF^@HL?6_-9St8<_?yn5Z$@&7zA48Q7AVcHXkV1Yl|$p zPh$>k^f$qnTc!bXUlHNwh)v=u2DUaHf$o&UIz?vmTB z8ewZyn#S6?!P67A)!HBYd}4-}dUO`wIw~2&Ki5U}o<{IiOl!pY zc<5RQxLsQx+mlAVV`qMgD`<>vI>f^U!8708c4ae>bY%+)&Ad@VgvHgAOJv4x0g<5) zN4{nP(z8VkvULj0x3<&17yXvoNC=5CZqDfFCEe!D06A*XcF5z{9F6ZtXhxxtd~1Hq zR4EqA1PwW6H!Z%g@d=~f&y-s@Z>V_%DGjkUgiw{8c>P}T@F>c2!RbepIyJe*8T%xA z^9xuBM+{SC$fYb(KWqDe($C_r{|f#u*3>JXojmU-XSEq}g8$X;L3Z}&nocs1&V1k9#64Nb&&wsA;dJ4iHLV*)7))`#`8&++Hh zL#IjLv(bk!=J14{7Trs{z($kq_+o2==VSU-6NUC3*RsD1+#kr1CZBdv)*&nJ3nuh@ zF{&huZm_4c%;llY5G3pjJ(lCpwvgBnbtc>Q+!YR{{IUJ(Iu==*);Pg0#$3%PkMEN7 zv)4fmpTyybj$HLhyjhMP`ci4u1v(Ix@r0!GZVbiig^SCi*qrx^0u_%FBrEcbNOdQb z!7x`y(Xl}>q3>0RzMCxc+pVXItU3g&SfgO=bjzQ*Vsa`=(${p zjiaMyblWMYLO}e{RE{Nt&~!8Pxc$caelQ-2-!FzK%ntg!ZCjG)Tx3Ac^OI-~rat`O zP2GM3?+G#v)mmp>Ym!%I*g+v!fK4Wk1BQ&!SVr-kALaMW*B!8Lo3G^}{?Y6#;(mq8Cv{q z7B9azVRN5I(Y)s#zTdfG89Tr0o_g$To`)K{42%~6R}Mtss$U1qOjBbc)kv747~YMR zUBb++x*Ko2-;Uen(B67=Ujz6nXHQ$a_D4_uro-ij1ID0Mb(B++^O?FNeVna!zoldO z-3;#9oRmhUrE@u)-kAq7eSKxL%j4=|xKQAnh!fRJ5EaK4mkyW}8aATDeGz==c+z%H zbR&&u4-xju2EE(DAL~nq@8y$aoR(~Rs6KzDiTF?--kK^>e;gje9}H7-uq+t&ybM!^ zi!_=4A3fyM<3PMlcXG-e{U2XnvISf*Pn`#u{YIhgYu{?g2vGFu_RL}GH#|!0<|>_i z*QZ8IZ=QSCu}hYl!GYiybrDwbmtf45iRcQ~gzVq>iioB$HEv`EisatksYWAX?>vFC z<`QM+>RP?h@7tw!14DkU{`t4A3a(#46;!s-Z8uxJjE64=$F|4zcPyhddDwfGd^<0N z9AzohZua@4pAv#Vd%w!tCuaD@^sY&*iz@PVCr!W>NsM7+d|x6v;(}`=%p=jDa+!!| z^K!xg@Sx&hdbgY71>KzUH&f5DMq4T7{qj2k(y!FJc|jV~uc6G^d8tDofute-fzPSU z;nZ;QR_HGhDV0>g7n;V)8*}P8Y6(OF;`f5pI%ukU82rGTr#WNDv&@s* zHWBt*6|Y;NT}Ptj;8D+tG?z=6jiIkSALVwe#3t|yGp3a4N0v9n)*&HeG4P!s3=&^InDzLmMHLZYnj=)!vEt#=zJllX1;njwDaR#`I~8Z@BbO_OY`!U z_8Z(|Z$-|SKUL(Uu;#~uIzQtX9~t_Xehz2$b%OF_qyW_Sr;8jt=)kO6$baf8Ke~Ii znFMB=5Ip(pxMVDYmio&-Uv$>dt07^q-d_c(#FIXNyt~nj@s;!;GwicO@LP*4fda*~ zl&!OI{<3PFd{z&Qh$!y4?nnR*QyyoI-mDC)J_fT?N=m(Outfr&$>o*SX1*xRdn@zo z;dl*H%-#HqF(2`I{)*4Q$w3WXW~#S#36y$mH3- zDd9?n?m-ynM9=FHr{s@_jn1YfZT=iGv5lvW>y@_`_xIUidaRdY%@)nqp$zgengC%_ zYC2B|;tBB_|C1V_XZi#tk8u~()QzY>LP7_M+EY3ni3vr~3r_S*C;ci(9-+}P$ zwcQqngTd9#jb|$RGH$E)LjhJ{J_T`)LMnsLP|C3!(h_|&9O=}tsoijY?L?OhfF~Ym z!750S=`ghRHO|Vm_J2Luk81fDK}T0=q7gXJ|37w4w@Ak_H6~G6PVH3X5KI@piQ_Lb zYTEVj0iJer#1~iZ&HC?JcKdZ9lVO-rILf!{o&R&xwvf{peg2D%ZLrX{55 z(?GqYI7h$S%DBx={X^z!xGxgcn_wr|$|fH~@O)alnF1lry?Dm=-~GZA>ak-yE7Q0` zW_%0T-430%vHs7-qh?*n%kau)QOx(xJ??_9)pfU+mwDT5)ecB}`g69}s~aNSF8f|N zc-mAGNLgs}ngl|1h)AQ0HUkEUJ2w7{>i{eJ0T<+K1^_;An6s1 z4cJl)Q4K!WU5BMy9Z{5j1Y>>J%8#|sy8I~RQo z#j<%k5Jx>1g_!LoAbr1{WS71zcFanYDIp5(FPH-Y}@po3RBhOb&Jg%5IqWq(p3t( z$qhYzRY+2y^BartsnvH{&Z=v4GX8vx@BeNq$koLNuNPk`l{nHmZ{qK0f7xrx^sXD) zy6OKl^QK0xK%u2WfI_s2g&yFIi_szSj2gg(M_be@XZrH_F;b%>E&Mi^EyR@7k7wpp7%BY?fvS z-bnDBV`?loS$Ul5vh0Og#ME+jixw6#Oetwq2&zo1u>6117c&QRpCfyfu1$_+t=Ip_ zA7z_n8B!zwWoRXj-1_Q;k2oK3(vX5y&zCH72^?CZpQ()TuNzh0i?51A`zFiU5&e6R zjt`4(>+jyrz{2M@Z@2ePH$=!E+uRnfyY1^vn-zte-PdiHqDE8`4UbjFqoM=vPk&QP`(j2b^&|yY~#>B zvq`;xelsyi{7&myXN+&dEbS?D##aZ#8}gleOwA7wGpKhczL#d3$_2(4y+2JxT~_KJ z_TcO7zsgNGjgY9jT^^MC;4wbb$CLdmY#ZONenjL6Rx+wVmKsIP_v3h$@1v*je1%HR z(Y7*}1lN(W8Ow?pdoVQ{%xglJNqpGN^ZXsQaZVMpyw>lKy6bY=%(QEq$#4Dm4TJt< zr0Q;IuNc>06)XnEby&G}PN+2_$!#uZZE3Wo;zsHyIKH=zh~~T%=JG<2Ikw=NugP0x zLy-Wvvy!4wA~pDiR?${cR$6kfql5X~NGb2YGM||eD=_zzrX2A;)+8rAZ7%of7dIys zc1kea5*9aEn!k+UoFU|;$xi|}_|7&Y{pekedyu7(I|l9bwZO7=l@UnFTczUC@SLaW zMDhthxSVJxjn(Cl2N}4HI;L|G2dJ0$Ic*Z^xY<0ufW~r>rFea+t3+MZDJPjW$$=#D zd^$|C9cY7Dxy-%4l2H>;odzD)^Olw6TkS4PSHt`cuh2QTE#Z z*=9PHA@e_^R;Mnf#$GKqQqX5k%D~UARFy>FHs1HY{8c?mXPm*#VAeh^gNhjt2jvo% zU98kZdqs$Y~)yg?PgjSixB zV9cY|0yNx^OQ3s2AfSxxP2R^y-?~Sp#<6`C+@Qh5)8+AS7QMgw-UTZ1EUn@HptxL7ST9@UHM4sQAR} zrQB`~{ipjdf8>wwiP&;RJN5{=pE=E-zg^ZHUooK3GwA_ye|NzBMPtOe5DjvzH1;tzF*8OzVC7RvRVupPy5Vqw|SBr z(fHLh07^+q^At_<6jSXMZR_UI(k{k`HqjNh@-;;_(>~GRO;l$q7O5~60|_*O0oqi! zfR2&ZbuB^nsI$T45(z;{XX+(7%Y_091@zgv$WB!~{v0q}@%=pQ8Y^Z8zRnwzQ|xCF zI1-S=GK^txT$Pg_ybaqA%WhR#CO?kFssGpO{uS^#O@zbQUmgM*rR;N647Q~vDjtQn zT4;KD%#eGmkk%IV2njV;xK_8y*>*~l6TXU4)g&_iG#Ww;Ba9gLhNW1^DbNSRUTdzZ zO`_H}r<>FvUs8-d)j7YBTx&Z4q2<&)Vfc)K6MnmXn?VHhAJFStN2L=0?}`!i6Ntt|u&UO0)7wUGvriOKqql zi?8`5Pu9{!M8&V&ZwRvTkR0PaCc%L@g)FFY`gG2?`U|bkZp;l5RJ0|=o9a?LCFTMy zst44i4gR6CNi;y)e+M`Johdpzzl`M1l&{8zg)^&i=H`nmuuhRkwZut8J9bILVg)}k zwgzf~Oo$X>m-Z&t^p9mrS^*b`M*sJ*!x$GML1akhemIfzz4=0>bdbutHs4Xc-k!va zr`oZ@Tj2y+26De=SNA>Re=6adS!MRC!^f)Hvs0Tk58lse7!J_BWiDE3)-8vh%c%7Z zJ}+R1Y9DLd({BWyzy7BxM!S;ah^SM7Kl)D94+KG=Fc#-98y*fa5RWyb+HTl0CPsDGHBF;x_OPIzc(4<;_nM!DwH!~i#sWePqje5<=?M<7V!UDI0Hon zZ@o#Pj&mVG!|VNwGAdZ%i>6?|KsIe*(bZop1V=qtpNsC^0s55Z=L zM(4D5fGcbn66!8z?Q?mSjf%S$qs7HV^OSF}?>z2dF+@PUYNQsEg(`%L zWyevU;18Uc6u0DlYDEuE`|RQLKA>`Jk_6`1%piU~oFh?3xay?WX2s&7Z(n6bw7yTD zAaxZe;dv>7Xnwt%OQ>;y6O2x$NmuA#wTdC2HmP{7Ud_wqWoZ1fjAhMPz;sKy&EeqV zb1T2?N1GBvu&W~WQiv$KizeY;ySle_c~@%(v9k58W=?Z}w|mge;&rrqlp86VKT60z{Ctx?BxBO6-vSlF}fkhge+Y%&!&v zUf)>?4Q&6*7R_UY{anpPDd>D+3I7uDYm722!KA{IsO6t9ts<+84VHrrTw6lFIYyju zK_@V+;z*E1`ted(@uQjGUaqlCK{2At4Y=idloi6u9eP<&@p+q$)scPpQRJ-yI`0GEa3Av+R*qC<0Hf-G>?{#u6tLGkN z2`7cCj1(JXi!?)+vV~Z0y0r|J5w>|;VWRGmV?|QDI>i;$w2^J>N@uY%eO)4QR+Kuu z9Z5I$Fs~%AZiiAz?WJv-fame)TVx};0Om;LkV~iW1E&c#UgR=Ubiew z)XD}cJm9-3&w?U}3@S=91=eVsDh1@BCMFCx?HWqbu)i`&+HiOyJ%4FoQo#m=2mrI~ zWD(+I65>rb;qO!{<_6>$$U6jA5Gm&c^;iF&`09J5{M&T)}FMXT6I#BIP{ z9Vq@gp8v)XO=uCcFtogtjLpSd3IGBmg5Xso(7ylXJ~r_00db8#`180bU+VVm>! zecWs&QaFD2Uv>SM3c64TdJICsPH3e|4sw;df?T=P$=NM)FaTD#MD=wKXDccH^Fl{1 zW7wnaO)Zf+RFtWT;KFM5Od(;_^$o_=u6qDfl6!B<+$Q3w+*6B5=paQt|FVBRzvcLQ zg*p8VzlCU`6BklVN)JTN!Dej**An~t6J92e|ldg>?mO#@r;>`?yuGr%*>-oH|oRKWy_}Q)RXJU%>QuJd2R~#lV>%kT%;eP5YEO{IyLUxsI3X1Yq@uD$DKhZt?_1f zzg+Du)A=5J%?9TMr}M}^Ljki3YzZz=1eqBk)p7pom!d!z z7l*{Jbzw771B$_CxWHac|7a;M`!!L||3q1zV(dTHgs+Ru&^;o80?YB866(ZHT6-`T z2bU_W3t7x8*V;7obaifVi%&^y0yN&yCYKbw&>sB`tKIu}Et+Ku{Nm5kI|00kUXL(` zF{~d6qPahJ=bvGjy)iM~_U}VM8bU);bn%eC?GZl}>Z&vpXaL;w%a4-r?Yc`WP4{7e z3Pju5iL0iA)g$o86_MuY7mska6;e~rBBr);3=^Ec=m83LFFkIUZ*tqG{4VD$kVCU< z`D~Wu9)*7f%;aG+avz<^n~gia zV&2m7&I!IcDd28g!Eg5^_1yQ!4O7qwp5N0Pph=u&c@mC65S758aKh2BQ>LV`^-(Y! zt`d?vpvJn*p!}fh+F~|nluptt!1iKVW{kH&q#@vHxjl*sI8axTZ7As~w-hIhWGzOI z5;47m2i%PqWE7gpv(n~89EPZ6PNobC9G=pL!-QDDOFQk0GZNCw&APr^l&pR<{3*rI zNiM8R-VWl2r)t!bcZ>Va-~k&9%F-RgH2dl`XgA_AI2mQW zo$OBft$QGnWZLWJ%QnAy2j{A5=aIou@no1_@$)aIXD4_4gYATcRa>&2u^slGJC|d7 zIPbZShtQgSC&iZsP@Wiyc6`0=R*1<4US(h1Rl7!S@Nxv{rf$V{t3dxFwJoF@AD%25 z^RFEgl!w9!)rZ61FfKUs1LYn`2cjt_-E{c(1sUWhT_nEp z#hiIt9iH~0I9DRC=kt)oQl5!;_qjsZn+z~qTZtJAD{12GFH=(IzB}pfqo?N-vU;2z zUuXA$sdCy_{H|wf6!evyD4U*_Az_C@?yBPRa1K_|1AhlUm~e~YDSScE!&%Da`BL1d z9V-|hujFYXx=RkJLhJDuyEw~OhOkq)#WextbS8N}qeDkU&?fTlz-w0ZF$yT)n&7p+ zj$**i-zl1w7#~JAUCCgp2lxD8AD5ww^%M!R0!plwuBt|fC8B-wS%kKmAaF$fd8(<{ zJ;A65<+E!MsrxeHAhdE}u)GGjSS^BU23m?HdUZ1w%Z}K|d_tq7;M=lsUz9_#H;>n9 zCf|ucS-I(ne6G}bfEMOY)OuJt8q%O3#E_9NOd-D)^psj=hdxc$az;KXfoW-L9P7RG zWBRc4zVa>e z9BbPyn(`j=Oyoxu`2#RgtK-Uaifjb*gg}Or!|ekqSzdb%>MVj7%Z|hR z@+Yc-VPBV0UNKuDeHm$G>EkuB>gKPMLH+Cyj&JKreY|9aD;`ME@2I54#e#65)v#_o zg#wCLJ$X1&Lq0qt+EQ3oUu!EJPsaD-vM|E$7-($6E!ZemO718!^L1BN8TN0-BnN=h z9AHUGE#UFmYjt&77yt}xN`fJo10F1kS-j3?OJnz1R}H7teUG-=lkvTqGkVDWTwNnn zeL^Sf(iWwvP(0D>YA9_oI3JE0*2E!MWN)2KfU$b()`x(-dz{b2>Vj#Uwif;RITGcR zDWY@5D-#$&&D^hy5Gv4R9xV{t2pzeXKOS27g7Cpnj#r*2O~>3 zmt@O_DK_K69~mEP)Ml9If|g_f5owJiCcxrWja5l-IE71;G3IhtoC`P*EVAhWkH0f& zn=3q4@l@6}PLo#FN&>~#hFH;A*effWo09TnnP-)c>O`64)uPSom?bT-!E$)WEIm4N z$?8@K=bz;>m1?7A@0<&{3%spjR%jjPF{YSo!dU94QC^8@t#zytG;x>*GiH=6$}~A| z$;+}zqD94m4tp!^l7q$;%vJnl_m}c=*=3xBSTv4J3&$)IVU(;K4_qczmT4N>^EX_r zD%2}CD|1aV*a=Do*mH9;|Lj<~nEa`>XUs5Z3#G4l(fnCaL9RnG4e?pw`&g4?v9*wC z*FC0o@zb3@{`v9~Ael9u%#3<1%vZ42JUX_WYl`Wc9C)UCOs~L+C{irj{{GzlKA_tm%k63ED!3inc$?-lG9A#x72QR9==#Y~Z#*I#v2?B1xIcv~E3q!#^x7Z`_^kyZ`D z)OY9f^cdqW1Fc0^W{ss~JQV*8i^>gxl~M^ep(fH!S^r>7MXt?`UMke=?L8YZm!xp6 zS-izUSHU98N)4l3!>%;ELIvK-_E0`9rY6Ho5=CoJM7AfYMDy+m&H*Eif_wf{t`4m@aDN?Y*63u)h9u(kigSNJVmH!nq zsA-*E&i8_4bG2N7SFvIdmzEW$>;G}})lpS#QNLFa1p#T07Le|i?(XjH77m??ba!`m zhqOq?p*y7x(%tp;(R<(fzV{bnFwUN9tr@?WYi|(jOfq3J{idMlqX~xyD;!-_+u6`) za&wFC&50pTI6NIxLtn&moffN=4Hi=n;sn^gE5BXgZo+#dI(tvBYQR`5HQjke)9F{W z_ITu)Mg+duvYpg&D~HDRE7m}UJB^9Lhr7u67QtGsF)0TRDJ=Ts;+DRuiJ6!7^c>yv zn^ZETA#LTkTN8OSr}=6bN8p{&gm$9rfJYBil`>Jl`th?;sYrpeNRNr)ywfrTj((!5 zP?V0$(R5FGLBcX_M+3$%w|JZhHzkP7)RcV@c5hN_HTxq|fgKw!S@=tw%N9{bwVp`Z zTsP8FT~g9~Rfy zF6^yL;LpVP>0pBqYSy2rW~ResLaAqyEK~@?8Eg@+iSoz=nPy^bs-%u9rGVT{diq61 zjD&T#uV|8k3wXTZd!?Z!6Dy-A>_`li=M1k>6G>0%tP}gbN&e8{mr8yE`6Sviaa}%X z#niNjf$D0#1}Q3|6v?@5p6mrB3iD)-6f>ZFc74$X`*fQkZyr%f$*r-~GGiF~R5mAL zslyU!+|bq+f<%;xML4 zzd9Wcw#AIV_3@}PEqVGu%_?)L!pd+`BoOgg&?PiCNHf`Bg*N1*wDW5>ygr~Tih}w19x=JB%=P!f?KzJE zR5iceSy(VP%rvFQkfY*61c>*ccUcT@bAxmAJYRhpWeHR`eCxT`xzDoL+l&>p>{L6=6n; zxT%tnXOD$M@mKwl4|B~+NJubCz_qHKI62S2M0h$e1sBQA22t#e?L} z)OIGsGEFF!!*CNTuV~U@T(e0lCN-SHu*PNk^qzkCGjQ!NN^y!+ee@=X?;=OvL*xGX zSUt+55PIdpJKFhi=p(S~&nFX-ms4$eWf~TrW<8ZkRPKuKs|&sS?tOBqQ=!1jCZz6_Noh2CB^V0!h21gVux zk*H*h39RO=`rIGt-#6$h9}1^tH8Zqd#JUApjuLhK(X@Y$Y&pR2{?Y^UGbo}Q)Uqxz zuR>vqw&({k+QXn&pyM&1owY;Luc}>bb$JQSIXXHjG>#m0bLL(1`lw$Itrxzz_kx*& zZP`w!Gk$uyxUBMRzx^6kwFkq2|BnCtkyw;nm&_lr3jGypCUAeyu0@XnNj4K5Z!4Nq zGYQvs22OJxM=FO_HpI$|lv@BhgKUS?7KqAf;nL z7J&-_v;0~7&u3O`yB=OU+-sJ4EgTG+oPVPBa^)AY<&;Oo_=xDNxqeQKhtGR;f^@VjyEf zHAzEW^m&*6ks^WB-sf<4cl`^Lb-bAWGMp6;L`KB)b0Y?k9)1^%~@{PaSJNqi$f2r7#x4&9J$ivl--fTl$v)ypO}aw+xuC zD+Yz{CzCpQZeK$!pZc#xvhnVPq#=zRDh>lCdB}Ijqf(MlWswTeYHw+5Y3pcIs)+x+ zhPwd5+V5I>4mza`5L%C+&yF73QAW0K^!alI#46MNWTDq{d~{4x)Z(_A|3R1#>wm7W z8<}HKb&8j$E!{*vUg|$PJMV<)KaluNLpAJQS(Zpr6h+uMb=*ff z-3n)N;{66pDem_3WO}4gyBZz&#=6DFFL+1(!X2Kj=1A>Bg`9xSOnVX!LON+1K;TdG zn`y|KHGouUXE*UdPhZ@asd$D*sV@iPC{p~PS*E-wbhf^{h+NkKSq9`j)S5^7`zlv=ouS@b!B-;=-|RDGL_P;an$?ZM^m$m^9sGW2m0@&bP*=P~$Rzq+%NYCl{n_su{6tA-e-Qpbq zuSfj;6cmL1A8FT*;N5rYnj1`(N#Z;;$@a83g7a-!R41ae`%Emq4TbRwZ>uEOD$aR5 zuTD&Ppo-}dEPH-k_IyM1Y|LU@c?MZoS>d7m-$VoBjVon9B=yrMEJ2op@1lOPicj+3 zpV^f&uw({YCO4l~TXxv5b&%_;(h)u%KRd*!^?CPh?D>|Tg9Xxg zW!)KA^}OBrfc-yJ2`Zg#J~M#X9r%UrJV!ysnG&yra$-by>TA8S@V?gi{G?TKaQva+ z;_?DE2NpauPY<2bQ9HN!25i3S`A+|thR;MX-3|iwJ?HR^n{$Rz{Hs9FGZM0cG4n-J zA)f~glf?6YOZnJQZWOUG%}aCsz%Ad|s0`6PEdpEq1mnmm>Q?~0%g#Rjn!opgOI)WO z;=pTJB&{o}Hmwx{knHsT2{nJH8>glPzD6AGaihgK@1}=dZafuW-O9iZd)o!5Bh$Hg zk>yjyvDZ#g!L%ul(C3?$bHhLEF&K7pH3ZGdPYyG5F6XCk5YzqtoOhLAerhH#XIkZEWKrkR?xG=WngA8bX`+Ki&rpUbS&XqGE z!>pX)V)2*eyHI;^aq;!oV;z>r`vj?gzcUO6jqqccvGpZ!g!y}s|G zGa(sNK?M+Gm7VgG==+RwJ`V)>Y<|z%#RRN3&9Qk|jxlWV;ejU#5fE{^?;rFBAWIth z>V{~r@x%`eo>%=|JgAuxBIb5F+owkD%0sO7uLoVp!84Z+CCWu7@8zI(c4psP+XzoN zxYT@pwxj$_Kos^GCht^(F>b|Z>Y=?vhn{AtZ2=C$V>5!o%>)XGk757K$ZVW`Qp92B zc;dereI-{}I`n+5E`%lWS=0dqTcjU$LJ>z$q04kyP~gK$u~#}>hCstp;ngb#n7OVG zWiN*|0z;!OR#j(K;9m)SAdVKmk`TJ$-L2ey^i?g|-@0h7DlOyIomo-sJT9WrE7enN zcU>#<9J^fsjSU_g?60tUs+HE|k)>E@Gd}0&u!FBip3JBu)~SO@wTJU1<9dRyd+{f4 z8|L)zFoh@JiTzo(EMkb>s8za^7I9B}!?ej@q|;L8KWAmBN5s>H#UN!M^u2CftI>ob zHhIOR!Ty5SA4N!N<`?zvwA+t#H`3R({T^0o`y|BdZur;X51=vLYcI7I4iE~NgA>C0stB@omuuufT{1R)V7Ex}l7T&=k3>r&IBekQt~?{_;# z5t1-Y!;=_`)opZQD*Ymr%sH7_rCaBhdt05t<6f&f7jOuOwHA7Y>l_O?IAZ_k;&=;s z%~Da0DQ7zFU*_65z*B7U}UmghMYVMieLKj6av0~|#`OF#pMg_N=^9MIb*cK!T##fQqe z_pnLy{M}+3?LM%-{c16c0~w&px}Xy;$>8g#sK+EREZz-;-RTd0rLkazcY->YApf{5pS#@_EggYhoJ*l7 zLb#r717Vv8MBeWM1ai_yM|cu!mKvRn^<>9P&T+;NeDfXUIJYslr;R)}dO{|C+}fy@ zrvV%!`)>g>id1n7Fy0Y6rN?G${&px$Wwi4~ivfNV>Qo)@J75;@Ef#M_c3wMp*pt7pg1x2~8P%a?R-|LV+(tL4Z*G59rB6&VzH^ zVOC&Z4_G)>-8MVl{~9BmTuwwJ^GBKdlCAJo<;;YHA&FENVFR4yVuPjBwmrFA_>-lWN{)q6Q5P&&wI4?FZK<6(l5mgQa{C{OV zT~I_YsW;j#i4|o)`I0YT&f=XxKsNwpE~EG=ZeqPVW|`St);d|Iz)|JTecYxzStn85 z%wxAuYnnvdXZF!Q+E8!;*gqWcj6bmJe+cl`ZAR(z+uUl*G)2Rkd%A2_S`xZ|r6<3O z3Hsy@m`%3VdBh&tvYgH(SREhj4VZeOTGGFU5rfB}EWT1>erjxNlnQU=8LCc`_-In! z&>%Lig%o z!g6ZAKM;c>j*ubmLFqU3 z$DGg!TuDsCB8YKjPCJx@BNq0{<%FU@pj@Q8dT=vAs9m$SKVFp~L@65)Z%*HrH!Tcc zcA`unqnJrd7Y|YePuc?0bIco5`={T2?zutm1{0AbDe0-*8JxV&Pk;E&n^41;{1t2w znLBX}mJ?)>C)ZLQyb_IKpnZ?_NWy@gs{Zb^W_UHOeI%6?j%@?dLME_C`f7r#02Bgp z?pq&y12AV7p7`TW{QNS9F<25~#l)3Ty1$CIsK$&kwEQMn#RFFOZP3#G0s5l;!dP39 z)G<#Bxvq4|w$Xv#p@Q>%TdYmDk~55*r+t+)7WSpY4h{)+?5w60Cr$;Znzhh1-u zj-|*JwbGL4-E&d6XRFe#xh+5M{Jv$Uj-!xY1yIwu>(j!snY@g5zYHh@|YnEuG9ibi$QawUxLR`l4ySy7k`aUhf&w7-=?CH+8x7!4X#XAx@z;J~lih;<<#fpCtVu2s-i>gw z278^dA2=`9LJkZJl#Y3>=GnE;67sM6qt8P{^c};-Pe-h_<&yX2N4ZI@rs%m%2cOi$ zX!cKSCg1`r0vS=N;}8{at(w^;3(%`Kf58HAWrr@`P_xMe)8Fw`GARYs@`{K#LL-8v zl;S&90!3DPx7GXAYpLlpiJi~8r-;sgnOYjakUY;Zq>As}M)Azg%uu&*LVh6xDBZ0a zD8f%l1rhmtk6`V$@SK#S5EX6aNjqey8oIFfe->ymfU&%Ikvc=uqC`M&C>uQtz&%1h z+oA|-5+Yr*&+$|dPJ@7C zfB*_VB-vPpSfTvF&!`d|8Ic{3tf9bPJn8;W70zF`NA=NcSE`|iOS=WZx@`Rdu)x}8 zy}|L9y*$`VlWh(u?6#@jPg7^TCi5k20AX8d)TZRx=}C-{{;wdZaIVe z)AK6lzA!SCLXbu%_-`dCQst8wzmfpvfieNc=DYi>o{Q<5?A@<_JX#STwP|HjokG1) zoEI6J4&ho95_3i41OYx_K;d7nn$y|>JK;4mw2d+(%G9r~o{J-?m5=hfQnwCpC`n=T zEx?QYYrD(<>Kh`U+dKbt+K#QPfM&%GTKw1K{Pwaw>5%cukPoG*A7^z>Y2@pK|E;nj)>=G@VPuWq34xG~De zot;oaVvpc3*G3f@h|c~Sx*67*U6!hd@0VA;8`!RES zGOpnQ1VUo3uJZrH63hX$O3fXs1iBfvAy-~P=OXvvD(2GarR{h)T9fU~xeA$dKd`K2 z8tvEU0|XM_(aGzZn*N-JY49?sFn*E3eS#;&;+syS zE5|0f+bdXitW0$+HDrVXVnUk0G=CoO+ z8@>?ns~oN3-6N!=RdHw8WI!qLxJ;)KM{6EjFz`9IjjBW9?ztgrYAcw8xO9X z_XK}{JFde?Z3Jed6!HxWO1T88;9gEoaq_f_-wkzZ1T4BHvn}+PuysCvwc2j^5e5dt z)C%vZ^vBF`P{F5jt;Xh0M7tT$L+dZiSpZ3!d+EmC8-dtpi?7VWV&OX<5AFY)D*1=V zz#LDEhNEPc-%hQiGf=`Pg7WcWl@e=JF)so+7PZY% z4{dErScLHZ+c1g}<_9ks09p{f4)w`$tn?%TatS2B8S03qYlR6B7XiJ2a>NDwui_Ku zYkdf5M)K``O$wwl`CoG^_|Bj%B--jnW;_&_{Z+yMZT~dkb$7A*$1AA}4Qyb5gW#cl zyX5s>4HJ@Rh=zhSiKZG*c2|PtN37Hd!H{Wi(Ch#2cW|QT_TKy2e@RiMM)5!+jeOj{ z(gi|qA(3<5t9jv-8++gTrN6(T9<-F3@Ur;-wA&cKvo7c6!)6o?e5$bywwiT%*cRoP}UMF-Vp_*_kl;__|fSx*T1%vaypy3F2mXc{peAI_Qu@|9Azak*rL&C;9xB046B?jxB0am@{==O(4|Ja8gZ1MDX?3+agh#!fY zxhE8oB12T~NC_DS*PQlj1f)1I#MP_7{Z9cfpGkx_dzvNnr-PX%+XU^tL3xc1Oz{fBN5a(E5`1&(U=4E}hub zSB%TPNO@pEebwZTo-oM5h}^4WVWuFv)s>mk@#Xuxi&08(?i>zay&COLt>__V%5uaHk2thO8 zQ@8uW|Ij}nn03t5v$d6rI7yg8yv@C~oouLpDpmb|vpx2EJ`FHB7+|!T(ALDwM!LX+ zK6+9ZVZF{;)_9b@`^2w=9c)p_1QD{frh$eExU(`RF%V97<_PL+MzoeV+rdbPrY=Fi z1?_*@5w36Za*Q#nNTo0I8ovzrFPem>)9@%T1$o!mt+Yf&MyhONs_cYUih!6WQjeDC z-+^TEIYrO!jFuX0)##IoL4SBXkSIho@v!a=GWeMPA;Yy%fNP8ff&r%a2E+~~I(Z23 z##v1s9ud|?HGctkAkXhpZHntRujJeIl|ihVZVf+zZDz%i3t9~DesEzS`OV>&&s81S zs*cd;>Bm2ZNr=t8U4CQUEg^w{ab7vvSb;aE$XbO0EFXP$g0G6zgy$wxByRrcU!le{ zx#b!u{3CZ>L?W1#0tVKe2BtdePr#| zcg^*F+)Dtq?hoDigAsalu|lQdj<>gWO{SUcf5b(UCrUKyKCcTYjwoly27iE-&V&Z5 zCNmjD&pp=1e4py*UQq9GPA>m(?~3pu=T8(<(wSa7L}sfqFLnVhzrWJRIb^z^mjDg# zm5{r?!P6!6Ga5=qID`IzYDs9XaYSY&Mr}O1Ajk26g`894(R@d<|B}pJ=#pKltYh7m z5Oj)Ar%@m{juvY~l?s7KC()u!wB_;IQ`=~CHZHfY8bJ{SXYOFWh7^}F9w>!gj(Hz} z_#f7h*W5NEV$)!w*yJn-75~q4;K;XE#Hy5Diz)V~Y)7vj(q2P>Q+4?7OEl``m1z%j)bQ9u&4+i~c=lAi0X z3!2q5w-h=z$NaLceg6R!a3scoX!|3MDYAHTLNwyxoP@1PAjHTHIqqTE3V2MR=+ z^Rl#+DzoVj*A?d^50u=r&6<*uK@XhKoMNTQ|77`<%^$Az5{_t?1`<+OSvi||B=^1l zHes&0`iw$!=G6S4@9De&D6SL2s&M#j)94RENc^K;7v@`J4qljo+V?ri#n?fVkOil} z|5zJDlw%1llFx!Vn8WcW{jX0Gxs*xQS64%$GiC3F{`y_E>cBIsQSZ7|6wB2G&brpt ziag`KKBTe?3%y_#gWPiuMiYcB^Z8S z^AGb6H37)iMdnm{037tQxuoQ4RK}6ZD)s8HN5@1X0ZB^)k6L^vD+40w?#64nuf%`M zfy3w3mg6G@{+kJKf%cMhRr^upxqe*TDh4!4w@TKV>C!`6AB>i%dCXt||;DLOSrX zV;J|DHkX1G`D_Z|$<{O`fY`5g6dpxmk)W^rK_d#eORcw zx6YBSA~EiJW`_-tSr^j$*Yh{D+6vP8lbGWVl4weASUEU`70NUxPUNrgn)qFC3Uxmf zQLA0Ws2H74PFkFqBs2Kc36e&xmL;s!J7SjeS&NTw*^#)S4`~jcFTT7nw^4Jrw`3>E zdzw0$nx39sTntU8E}mbQnD|P?>!jdjHk?RTrdAQVCVEpT=xfxp>QQ##h!z8yRuo?# zD4o;)i5yOFHzPMM$?_Km#uR)k+S}XJNI%Oli!urAeFLh%Q(+`UijaS}Mg%-#>n7mQ&uLD(?YTXFJ`Ub6hxpV)XX`fWdb zBsOV#p11F~H3RErpF(PCzvF#3#-zbD7H0EV-pE|C?|e)Ljk;e;tE9EQ!&msF3*;E;nZk#wd}g)ZIfQQ;j~ojHy9Fl#`ZH`hPmO(PL0Dx2t{blQ(e|0 zEpBr5pbM_cqkmtib^|W0Zi|Yo&xKGe(uz(}dahFuPl!r{8_#Aq3w26mH3-k~1i-yX z`gd8Kwo8r0LpWOhN}$jsZHoih31r2wxvE<)$z#|nm&v1PYs!>_`nDfIRsxAjTeUBW z=S)Id>mNdLpFo!a_O!5Qu3sZ8WAQR@rP_vh@fL)z3nMG%HJ0O&IQQZ(y3jhbr5Ai1 z??y1`L1w*gsVk-r&`rt%1HHE8enQXkpG_7f9xM7u8QiXmpm;KJ_F`Ba&%*{fIyz=m zh|BEij{xVTcdv4rlka8^TthTz`|&|C0U6ujQ8Bl`LAKcju2aQB8U0Ux7wHUuDGYsst5)DP3QhIfiE%Vk?=$9P{h zk9m(qHlmE@Xf%84I7_J_7W7My$4O8aW#t(0eY{r-C&DvBsO-42T5Mu_e{9!wDwe?{ zbT573K!*J;MRMV4!bJZ(bxuMjj9gKXdwo5KXjX(i^Y9o|RX2b87fRO`wba&X$} zMd3I)j^_Wh6k8L=Jx%TqL)pz0%X+F05(`($eihkNVtD(3ZaM|moj;=biZZ2v_8(kB%XU83zdvMhm+9V z0ltK3C&M-Ku6R}-HhEz~J~o`q_-pR%$(KD_Q-+6;>qYCTd8S1&gOInPB3Y^etDe^@ zuF6bAXp=fnNL^LcLW@%B57@1?`lUbb|Kuj(FnngO+2PfEKs##*3>}cZ-}9g$`A0`? z8FvpC;`cz2^Q|xnNRhHKLd4auS`&quY@e_e`izv@MDJ7bqWD^5A~u-kaDTO5C8OTz z%~)0bJ%Z2xTy}3jt`NDYvqVpu&#~tkUf-9kP!U0tbhl*V-d z@~4oMfA}Yf-nFV&>4p;{@aIMuvbJqHdxwp=Fueb!PO)@E1SEu&fY&Ya}84o+Vu1J|(k``9!&bH%Sl2V^-et1V& z8=svtpV~dzlGpdk8p@CCceUaBnA(AYM<&_`qm2p9YSNZ3RJj#Y;^G^ zu8}9!2XW+c8wgoV6%FaLPc=CWqL-NL_}wBOF4vF^o!XVdeY|qcy`|B=m70T($Nir3 zzH~b5)T1vPM=@I7-s^IYi=N2ypoZDJ({hTOTdl>1kYVtNMy*_+Z)>5>yj5YFdDE{= zQGL!*j5a<#SfO?8-=+ai+NZ77Z=BpC+%dt=2(9tEf`!&NIj0&|1=6yD^ zvAxsT%lGEA-s@-~S_XW)y+Ptw{_;RwBUWPLwSk^hJ;Qe@-(F+;N@o82S6=>XjM(>X zD&WFsw;XPWH&8IZ0@Hn~6KH8J)l&OU4F|F#WxsEst9}u}o`CK2UovK&$Y&W}37M~z z&N=^u55KSwm>EEXmw+TxwQ##wSBA%WGQQGny7hivCeZRucn3_DQwnwuXy~l=e!AUR zn#?}o1RU!XWw4=1A+6G;KJn9}<$&sfxmv|VQU>+4G!(*}DGPmT#h4YnaYqso~4-n!EW_ljC zbC9Fu!&2*nUM%nMsXJ+-g2|+QRD290V4%**w@Eh@kdtn3z+50{!Bes+>!M2fr)KOM zyRk|#O>H9eM_mqAJtA1QpIwj0zBk_@nE1D%g)hjb@%VJih?nkGTi4-fq}-%KyYH>%8TzUk}d}V)p4yG=>e?{ z)EL^DMz$+;WewhfGegb1$XVrBwl;R>JkU?$CTHKBrX;ilV-VZk^(@+c$*dqsVnX0{ z>bp|$0nGkOuKn`5cRVKoDrj~5FSIQXqJYNpBUMqlU$*G&{NmcAORTW`A=uuht|j%x zz2m@?0li3t$e6%DsMMouNS{7UkMVi^s_*N9)Q`_C~E0R$0ge)O?YIR zm6n-zNOmZ$WH`e`#*O5H!loAPkQ8&f_Di)MjD4#8-kF3K7Wfi1xQy>aLh0?S zzLg+%u0Vbes7${jo&Ht*2;6lF*d%ylj{6f;x!^dZ*q^Nch1P`)j;G7 zVz)?sYpSnTv2*mlb^llrf8_?07OV8|l>QW2Bo1{pP!}V@MO$@5P2edeOq0=`(DC|= zyayOFtw$=O8{qphg0M0n-;ntzFAMY8RARs2(H50U-HG$xDPAs_gHy@mTUdW9!rsc4 zIdqIFS0H!trndyYjvJjgE6z6EOuJgL=WnOHTLt1wOVLlCdr-wiV9@Jk|CzB~zWnJx zB10%n)B@qaXnj`Ki%|x|im$4KWwp{`zGecJV=u^?69W zLy50Xhg~PvuxDxU)OESx+m-XN$6V`ydr7(#1!8V4-wiO5JRJ~fY=*jMq|rn2$|}RV z%B0_gW!Z2CA87~Kg74{I6>f(Dc;+NpJyI3Dq{&-nGo^SedSt-gZm88ZnldXeq|L1`Df%N)_b2?XGtmMT zLNVAF)S7t`l&CP+ftGM=)C=p`@(^dE(>);I$`AAHWfJCDe7s&G^1<~RIEnQ*Ai5h5 z5+a+cFs^9#h%BzGt~K>uZg|=Wyi1UdrPwZ7xjfvW5_nOd_F5{lX=od)?u%I6@6`R9u-ZN-7RtrNRy3e_IYRe(6RWiu zBhIIrOxvjtTB+y>CAZ#IdQDN0S( zIr0-ap)6CHR(iZB;y?8HVCdj^&!YpQi}E2(qxzO+koC7!#L$z(twq%eu$Wdmd;Z@( zY^q0ZYZEd~t54)&$LGE2M9lm5sshqvyglc^rC4RycF%G0d^i!eLNXqOL^nU)Y~lCH zH=-^WEgu78D6{t1$S1&L*=IS}NxfDj8~(>#`R?}*ro)Mb#1-d6R-mC`d@?y&zhgr8 zt(ZFn72AE@lOHg(p+tsr1-LGQv1FyC8vSE>q?c$h;AOpW{-;x*_9;wsSHrH)Npfc6 zw3XEPuuVA-E+V0NG~y`id-rtTQt;NowYGxhtHgPRO^skb>4Sl@Zqiew?`fDm)S~7M zwOV0Q;HEhm8yZ9l=HwzCpLCGtE8oPPPd+V_>_~(Zwzt@d&C{{}Xr8`a?D^z&uj{(9 zeKl9;QZfR}kV|=!*5)R0vT?_Mpb=eJn;fvuGrV{6546KmPMdq3ztsEc+iKID%Q7ZA z2P$<}ps}g96RM)aTk$2eBVJ2wY)$(J4bT2306ps~=y+w^jl1oZB&ocd13+kZE*wFw zR}1D#^*k)*qv55E%>NDsSQ*ro5YHSlV(Tz##$=2>7u;{bzIPsZ$G9pBvW^*MM{5*u zpwTn!Ca=92G3P^9)d`@jA2yErfw*)F@BKRBdlxCm*|Z+;6#;XVq)nhFf?72OzY#r< z5nVH<=Q+q1i>=yjw4^{ePwBJbJg1Azo%d@mI8f528>>2O;W9W9=SDy+UMHo??^Qw)9_X2*W;FJ~MaXSGP5+G--7 zxX14N>g3hA#v3zqq_FP?E{#hyiUp0=b@o;Hp^$3s8p?qNBYWhsqjjdMPkBa;m^3?< z)Q4+NS5535ylg z!DO68gPW zbI0~{+5SdIC0|L~hC{(7VdVC&Amk5QLzJ};A^RHgPoVnugF``SIgEpN7oYN1COngn@Cw~SQ$yThV`Eum)@bjT?R(X z>^M-@Y(WbQ2`kHd8dH1zQN{1YFfgaS#aq&A7fl}#seOy*t@)zfsWpn7Xqf$$g ziVAGb<|93cDCD(k>YX5mcW*Ybw3zL!PsLYsOsL3$*`j6bzQAaaq4zBHi)Tt8AnOu13L*ruu z>ef>e4chVxWX~r9#MIxDqs5fgJ8nJnr6#5SRPEhyHnYmg$|lTP(zAArKB_RUZPM~S z?iBG|QhAa9WvYljBPjmSr#7{hRUaZlrRxlfd0T$P0I?@$UCV5_7j;#dIE>4O%?V2E zpnk5e8^I*#My%BbMG?0Rl~4C;&rcQxYTIY9wdHWXb4$fPJ~oxYsCh)&A|WP~Z?oTM zp_y2ts-z$*2nzB`WyZX;+gmq2E$6mAFjFqvfFV1PT0OcrI_tVL4mXMaeK^?qOW5JTZD;mpB$rNv?8xD%EfndTAQp<$Ee&&I`Ze z>?xRZ1pTx4a-h(NB7cl?2mgM3F{M>&NYTLx%YDq*q-PVFK}&JTw@u7=qml|z&>g@z zA2!S_l1}T8#oG3fNmk|WN~v*s#iNaJWJ9u^RVe!I%7jlH^jme1zFmb z7fsvOt0|Xkx>~~5Jaezz%6T$|VKbOPr=w7W`Wj{$heKn*2{c(pyK)7whb57-nI`=$ z=4xBDy}>F&Y@1W|*sWNTX}Gm}?b?siy}^dv0a?NFrr7$(p+{=%)gQ2l$zWp+l#VP6 zye|A;5z2?We&+;n@$2)M_l9E9Cqy7Sfc|SAe$Q0P@kK!chOBMjd1LupM%X8i$%NRa_Ohj<13I z^B0(RkW=n+|( zQd{d>a=$i<4{6YHq1vrQQaFE5wq7qxvzx@ZgEmWp@qM1MEhP^`+CaVw{-$yZ5WBn^mW))-xP+#gw|HH}b0V!MApR8VoituBX) z79SzVec2B5&(lKOF0q9_!-E<5E|UtVqNrIj4VkR)L+F!(seuo7_AzBYgtHAE;I9V@ z{~hCOIPrJ2{2UNLCY>pe%;{xp!XR7E!Q1i65EXphN3Xl-fRIjv3O=+lLUq?Il*8U7 zC;v2}PuGJ{_(W+eqg|u%#7SZZS)VA4XV~|%rK~x}tNC{G(P(NcnMpVu3$=Ad`v%Bi zVazoWA`uwc#s|@VoeeXn7rn!4dA-0c_x=qwyGlvHf?_q{^6Rh#oN-Hdi?AfK zd}ES~554yBgtJ+)h3@I{!V(El;Huog;FBY#cv|k;ZXKJBV2uTA{RmEbZFfwX#Ay_2 z`}*L8JRFIid%;(DZ15q7lpM>Szu{fe#Oz|q(6!xy?HgD4*yVtEW$al-8&4{o^qoKh zY=a}dR}^KY1}BtQF`iXl;L*6_=s5p5BRtMES3YNoy z%nui521T@i*+3M9*~JWtu^kQui~Z@5{Mom#Qf04ZuwSTFFLBL)++;p8*KZWbZ;&>hzG7SDw{haT_Rd zzD*|~E@{cD@|Y!5oQgT7tTOPNd_ z&QKaAD*(Ad4dmND17)P^;-Csn2O_%9KsjU4<`NTv^&ubl4l#R%?l5 zc!?^gJ>ka#dsW?ec=c*Ev1Gkuh+N9ymoAreF;#PeGSa0T)0Pog1*Jqz$9>GO>7DOM zsCpZTi`%4u#%&RS`(?O744&Yui_MH2A)Z1p|5;3wj`!tEO%W-cuC6Y%i*!QRTkGOt zmy)>gyPK14$1bTC_XhintrbX zUh{Eb1Q}b~sP8WvN!PsGW{I+#iC}RRBt<;L{-|d3TT0Hrvt7RO1lR^$q<_4Ajij&` z$F0n~vG|;pM%GwtlhR~N7CIcH{6yYVb{G9)Tn^RHtnAG1jSHLt|4U^Zmm>A59m8vy^@F@GRA|j@?Y0-2lJU z=6%e>@yF{X>I2518JDVRjQj|?TG5E~Aa=y({z^?3)S=V@k!71p-g>^|%A(ifkri+> zmJO=v37{k{o0`#_3dO*J2DRqun9XcZu;I)RRbzSOW3C4~m@?LsShX+Pd*_(a8&I@3Q;I}Z*Pt%sCyL~d! zwxedl?$>2H^Mn6z%4xsB^g4^nsz2O}$MD1?mrcz-{NibF@OxrWhjPobfJ~D}AR;z= zRl)C+{}Grtt9@IcfLgCw*s-VDhZ}QxO=s^O_DBr#@zTW>^IraN*{OO~Z~C3POQ-`- zgZZr(gYufU`3T~dQIq`^wH0VJO!~OJx}@cedA_T9R%&0uT5h!LVeJh<0`6$g$tvYw zh1F?a7!#LsdkRFoLg=+|OyEBHE_{s-%;NUjbe?Lj-6et*urbX<4!9^rK&?#g?uX00 z+y@C63~>cEzcW$pGYzmnO9d5g`KDufXJ|ERO$N&~>lk@qbhRU=BGTTHA7{iz39^UF zCsjqCaZ*=FZ>lHf_38Bk>|BXFj-94_OWish6!LC!3ad>tzP-%~1Wsu7g|?=aQZl7x z3rZwut>LDZA0Zr_n(GOU9QmupXNt@z{xD@;FU{Q* zXg9o@Sby?k*w0CAc%Vd+-2(qyIMVwZq|DkDB-!83m-Zvkx}@=q^N(&*KB4K?h*2n|A*g{ku2fbVMLJ zomsp34xDO6Y(KVj5$ZxDJNCNm^Sw6atMGZMmU}Nf8t>TwWy3W8FM%3jDa7S*w`?>1 zBt<@_k7&%Tt*OIwb3q#out_xdJ@|OQ*maaeBv&t`q_OtuG<@W;VsM+k&*CYeeMh79LH$=aN$Ya_+16|pSsA%oOpIKOn$ScBslz?W#6bOH~ z)>?@;_<}Ci`AaMORiyetU6lJ>F1J%YCo9mD+5{D)=j)+)E|kvN}^b?}`kbTld`qLzCz_ zm}BaQVu!Fg%x_r7jL}h%6OO~KJ26Lixy&T8xR-X8{FvpIy;o!^UU~F#5Uvn-AU|L{ zF2(j32>-aoEU1X+LNm3F8U67%bWi`SlW@Idg}BREk%dg$dA+VO{4h;f{E_zpdf4JmTD^biHw>%LN|APS zSwEYcLVfN)px6`9%5*?b!qLcoR#YwfJnc-Xi}sE-#Q}@siy+C9Gr^@nY!3%4qRZLW zwb;cEK4Ws{5+c(H?>+t)GRL`kW_NR#q`$1d95e;{uCaBjEZQ{1(TA=$1(R6N1qMFP z7p$SVOJZL-3%Z694M@{_B$i@&PW(2FADOxvAbkJ9%cHkAI9-eeGSEC-s^0zTQ-mTm zxfW)+f-8K}oGLGlNP%E;#5oRUXgo4RyN(vwIK_lsi80{^$W{LX0w8=pB-&}Wsk zmnzNvOtB67@6FTXZKqz-33GFHf>IwzeiZI@Q*t8`j#noS(C+fQzN5a85N#XM8rcJ$ zwb^2g1X0+#D9+iX4__3cTZq6BmHw?ICoQgRxA0d_S1pUTgOtAkkNnzm!CPP5G|ZT; zIA*R2N=;g>3X?S+=Dnc(7d)%qcCtDOe;t1((Jl(GMn1-PP^0rXyxPKlA{!}WM=$b{ z9(H)rMo|xa7nOVR!1VWN`g0fgr+`p+i-FWack7PaR7+PaaVO+KPaSTex>m%kuD;PN zZvjATVK0qwho?YT7oVbt=6_#plopa?-`s{>em{JT@ct9qTGwTe#^%GPAFnn_P)F7V z`rR0oitR?PKhOf5nHN@&of-yE`G0P*XVRFmejph7qlTM%vGR>`qaEvMlCzPBAq3mD z%@tpBGZo{csHmuFA_QiC#MzX9R3g^Xr``V9$($*C%8o9`Vaa~=`*%W=npy`eH=4eWp*+J) z#opN`BHF__U#+c54BVI(xoW%dSB8GZ@TWo$5#oSXnV}Z%kin3*^uDuyLzya4F zEZgIpFv%ogf~)55Tcfd;{;~1cW;~!yNJ)!Y@)JyYo8`X@y~bo(*P_msidmbLKh4Mw z5%oIx`}2d|>H7j~TSlcVfE@8ZDxv`SM{g0VY23eaksKfPSscc+US(TkS(K|d_fT7X z9nxhc(OClHTRzFs2eYFPR6csH z<>-78UEy2}mk8ju66~PV4mBu|L5Mc5-0TvYu;*sWaFGCo^t^g{&7PHs1)9$&>wcAI?jK#;kIWZ6g~%^Fc4J znF+BuMbkiT<(@Y&@HJl4bEs#6%)}eSV-Qg3JE+Plowi2|aRt#TzCSAWz`+*&S8vvP z?g<>^&yLpN9;+P2Q7uW zj@a8#ucf3(yCDqL1=#bO5s9*X5|OluEm0mYdfCO(b1*2v+F#(~=QoKK{^Oa&w;v-; zx2W0g4$a}-$k*@*&9#$Ir78Gu$WP@CVqxh9|8%1Cc@0%;r>KrWt&B%vv9>Vy|&Wi>}J#vFJFVs74?L$^`eXk7fqo&fk>DpPVV(72~#4mS))lJh0RZ}k^O?wI#5 z6qb;q=6!m!>q%%i+7Ca7yLD&kie@$Z1GG(~!zMZg+O|%VO)GFFof1n|yW}Q%W`vS` z6S$bChtkz7{QLx6*qEo7r$Y$khzA}|VDAPVDeA<=>F!Ec8;+=*xq)WiuHl7knR3~I z=0&IFkYLA{Rp=ZINp<6e6W0-+r-KZ;m{&k4>vfB+iQdTTtn%aM5^i(E-KkdJnxfD# zs?gJzQvdKE)wsv*JE4chgcJF26u3cO9}eiM=uWR4n%oZY=Lo(pNQ{H*R(T${-wuF6 za_bK@Ra*7DpFkT2(zXKBx3#MIR`n*vg+Unp&vB{`Rs9yDoZmN%r8msjSB&FBO%6*= zAB5}n9ajITjpNt{>ko!mg?!1L-q|gOMZ#4t8viQRma=5BK#Bv;oPk)y6D zqBEiY?)ZQ3<^G0&X$#AL!fjLx}f7fLHzS{MmeBA3sz<93RF!<0=BE_Gw6 z(A6sKuq59h+xT01gq4ajz{8 z+`1gu>#@|v$Atg5WB{2Y7M;(wrOA8G=cEX-Q94V8!5pgKleUYTD}njuSflkSEA19% z(Ok4*A7qJJ2}N6?E1HRD8t$&=P_F28@Ti10Hd|=Nij{xyV7{ELTlXBXZdF&AD$m6G zOW&8Pk!{6_a;tY`xnl93PfeXsY&8>9zD=Eu?qcm?jL~RRB~E*7<~_>omaYU5o^6eX zW2?2E_Vt8{?*P%()eLDG^MHBOf^0Va*!8^utqg)du_l-L{ z+Zs%}5EQ?FBzVx-S?MJiI9N@I;~hUO=9R&vIEOsxNR7!Mh399OjpBRdrNwBGWG4fv z<0Q1@&1vWJ0gmEROURe%HVvrs_FsVtYf1g2!~g#N`lqV`m!e$^#!Y-~hj&f8Ojlr^ z^G9c$KZj2L0jPP#dnD8}v=@ok<5fPoNvP*y4?22+1w08?BvQ?e#Y5RX!GzIlh%+F% zLk1f9iRYRi!P zd8$o4mj8seW?vg`*ELa1SLk5C3V=%(9kohOqpH8xO$ej#D;YM$m~{AX{R?HG>x)w>WW5(K zkq$mRt%uFVo7Ae)&2QfVlj90Y50XF^&~P^zm`Ow%w5Ti@MVy}mp7L*6or?8 zh}}`bt>mCpB*~MYek#M7hQps^ck)6$=n;~wCQWB-4!@Y=j?=6U8<4RHk=88EAaxpC z5Bc*x7I6ta9i;}XAua?PF>Set%G~=wxKhM$BRSstTUzCOzG^W7b$#=|`B_;1hbdDYId6Y49m3V)~65Adp<4Exa@e1XWKYa z9NjMhx*{B&pEIT>^x+jsO528U>J&MgN%;u1F|d_Pvqu7%F)srS*$YI-VIAq1 z$(z;KF4J+}*$jlEOoc|uTVz*!afeV@2xU|bpE&kyyin$LaGIJNNWMGzTl&Mr#yG@b zwP`5eBpQcl!M|S>P6tYP?6>4Q2{&?Fm4o5%Lyl#&86&7Um?5q;1kwK%(4CXrd^UQv zjBv3KJ`*j~OO|v-9s*#Ar&}^h-}GzWFgIS9sBU3Cph24WS-iK>KVx zn&uw~XSx?xH=3!S$av6SvYpmt=uLW=Lb%SgDeHyqv>xu*iO-}Vhk@uYFlII%rJFGq zrX!<`OKoF*C)wmtO*ru6)s!R&J&viaB9@Ev6&w-wI52hPY0gdG@AyeLP5(V+yIg|< z`By~vQKnseM;)T-II8O?9yoz|1qv;3MdE^xm|e|l2zsCh?)HS#m(oX!`-O+9WH z#m6OEDGR3;>&#V$kkY5+4;|f@`lcfahnG5wy3e$%c@MIF74q-Fs1#CHTKI(0b7t_X z$*xvhHU)9B4oynRcTq!2hKwFoQUAiac8T8TX3R)3?5h z67=esyJRA{!EFKj4Ew~6d=k}02-O1NcAG$@CdzvV`UN@0wI@du%MLzL)A))DJYCqT zwE>vc3WbDV;-tm~Dg@D{(joO33ZA$yBtE6~p0T48H2Yn*K8XP~Y9Rd1o{n|B@C2Ea zzi{L-K}5~70cvCEa_$dBnygN@=mg|gynagc%w&R%0dJ>n&Us zaa1PhE@F-{Y_W{hwZ6M!8)QO$QP$oIm$MfUK0LyKzcgS%P%yr0E%vkeq+L#Jy8?Y3 z#6Gqm8j_zUH~r=63h^_uV|)9z`&!%5y}1Eb&nLYqm*D@(zG)Sk?lb{Bd< zaWSE861dOj=g<%~pmVt(U44&W5ea8|SFC}6ZG;j=C{(oK+d1&P z3}3YJc7^byF1f+JzGLN_`ho)%QOQ zj${h2+aYy|jJ15EdyxJR`G^amyuXV}?T@$-)sKf=!NwoYI(7-fYxH;*OAV7`jkr>^ z`!FgEIKyIY;S)0@zM_RplxPFg4N1kUTOV2V)oR&+3@mXp+N9PbkTxT!$ z3_nv~8q&e_X5Y`i+JiXfoFg=7u46T#cZ4!@2hMB*Po;Qk*Zd?J&EK_K>wZWso=r0=>WOwl>AjRoYZ2E~Qn@uIC)u?A1r1(7P7n6Zm< zCa?ms+#R>4#W`yX`m%Q&I}ty%)nz+uA6F)5FPOG!+4o$>IWY@K(ACSbxnIzI9605} z67kSGu{jt6EP3-5bj?1!NsMc?O39yhi7re=1>AXl)bMp&Kt6&;bw5g23c7&tYuBSG ziC{mlxzPK|sbY+6(VUgSIef0}6)kDo!@x~kCH0=!)*+ZZKl%QppEzhSdq92r(N-L1 z#mbn=j1d|o=Ib~iowO{KW>yRZdeTN|V>*g|_i)2mw|Qe>GggZ?Gjm-Kw~T-|w{X zzy2zF;GyYOI6#=9mqLw2zm}z zndBS}X=EgiM3DN9k~WJE@cLjwxB}64!%ARgr3K@N6h^Ge%WHdnqPfa~%CY11*R zY44oFIMd}O95ZKC4g{A_G&|SFB2VSa-l6jDa{mLw++qq1@Rn#Rp3N0_Rz$cHjZ9H5 zlqG~kK72W2u$b~3tY>wXOASSxp3rky)>o}R@uFGzj>~s0l2sJ^x-JuD?2ew>wn&(3I{5hHN4%z|`KLueXepk;JHBxg8h{dkY zd`cT8K#*ZEsklG+Q#l4dl`L1{GaSF%sSiJ@Y^?{0$oY)(R>1GhU_BIS?)-67w%%YR zfc;hF;A4Ypl|W%35Ki6wR|ycXlsLy-Ge2HOFJ2= zb`ztC-(r=933FdyOnByT=bqW@JDz5&30QqA>Hm9Oynk;$crcMcr8&CzLa{fIg_a>9 z#;o~ERA1q>oUd`|bw0A;L%@j~*Bo&|qy=scK54P+JIzFoG}b)fmz=E^$xo|30lzo> z>WR}*A+D7IFfh%=5kQB%VIg8~mgbvy5&jvYF+tO1VIZ_hYP6VFl7nSPYo#TUM3rj)txj@ zcHY(2T=;qwvh`)MylhNnN{AxPs!SRMQg*@z%U=o}wpH%2txA-}H#`7^r3ifcR%9oZ zgMVQ;L;bg1oO*_Wh7 zWG9r%>^xsrF6ulJb9a?{=FniAEqJT;GS@@Ki8MI0W|w3`yK*Mczo3mM*U1R14^n@E z?`_N}ZvE0BnLVLXNan`A?g_VsgQR2h{ZrJy_bE&+yFR4mq2!23TKxCy1{F04bxNAb zD2!dJC#vqXjwG0x7afjm$e65-5pu+B?h|Yr5yj;tPm=mRS;>13(pNU4M|A_i_=+m} z#38vI)Jg3HQRhC7==4+net-UVv~(3UM7f6~Nv~zPu}a#Zx|G}S=5zF=#@EaHO1bOG z<2#JY7KVy+K$4!2ck_N4`{QHXkg;=DwdEGmBO-2e&|xNB8V?9QDAd^Qtc0s$|&D9@Z~2`%#AiPgdO}o6rx$y1e1A9qYC) z>TW}HA=uny{#d zdb(5$R{roEzD>SRua+B=6W)t*C#ZLu7=X#(A!Tq0PiW<=q*fk6Y@Pa?`1#w3f|Dq* zntdrlfcx);s+F7fbEtLwN5EV)?!&0o84wl~2;8S4n?)e!>5VMt+Kpyvuw0U`w`s{X zClOgmCD?!#*$V?JDl~F}2kxxz2TF>q z_rq?#hm?Ho`eN7B*1^6xF3xydlbeTZ*_Tv~;>mC{bh(2beSzY7*){#2 zY*oT=WePcEg5_}|Bkd4#gsH4lDv^(1h-@TZ!tPuTI@?XrlX0{c*x1>p$3)yM=WD;@ z{kRiZXFlT-{T-U;SgPWB*VZREBmTj{4<2bPt!Bvc{41Q2-{D@y!(;4w&zmL+SxmoR zF}4MMS(=;iu;iO?Ov#o0%ry5;hAz(>%ZCb^kBvRd)Nhn-LI#CFFy^74f$3bChG{tP zDuj&uUfc&mjj8g~I26U^b5CfNoS-ZJt^i=Xym_x`BgUR%$K2P#rK@VDT-X4?AT!#b ztaljggh8n8sq36I_l3JX;9EBed^+%?|6v|(7@%iuP=kRyo{d1{QO=2Na7k8kr#gv^ zgmKRNEfD+A#`M7HPb@PHGSl(43_sr(=A!fM# zSd%6jSMcyDj1Gq3Vt!j-jA1}d(Sl@lOtV#h)8OfDudrF)MIiSwdk>C--R8u zQ_{(fqM06+el)k~>t`OWrS%c2-M#ZJ8v$GUrbi;(eYFRXCZ{J)9T500zH7GL{T3o_ za)`uVAK<*oi#ARgi^E_V<5;N_2xu7J7J7R)j^1ZDzy4p(K$)7bI}*~`X0RS7&Ii0y zR3M$Ufxw1{)bfF0IcADcMGouLUq zcR%FcQ^CIT&Q-`2sn-_^a{#nzaAM8%PSKBD;i-oKR)VAiM?$nj zf8HSuW7?|{>OsmGnge2G+>Rxff)DN4^W`T+;%Xg{+rXNVEgl9AZeUnUdVlmPU(-q~ zW#&;cBL6e@t2v6GC&t0d$U(2?s8|WRXF7v?d!a(HBTZ$OxpxTm@toVc5?`Yx^Qeai zHvVd|F9-(|tv$@`bGII8>N9c~|A=|<$TyP+-@6)bq>*epQ}S)q?>??~y3K}HvDw)f=fl0@K162y5brON z85a%}1SRbt1f{l6p=#GR6#vUx0Px!9vP2-;lwv~~telT52GU#UM7W%LKeKj7xs>+Y z-@1JFWXQ3%mU*BE=4E`P0G7_L4i9>>5jlnN1iUxhc_yqP9*n`(^h*3QAOfeAnE*aKEhU!5$N`oFvE zx4k3RU&$^JB~$L>#U&AKzNQ?k>{Pi>XRnm>42+U+KTcZXIbLuTy1zbf?^bgDlnqJd z$SFsh^j;XGo$B=9<*?Wr5&GN6kFiKK$Qia2gk7Qe8I5SL5;@Uj!vXEz{3&cEn)AWN zKE_Q%Ei!KRIu2t<6`ZEVGFk*AN=b}1k#$a=J#)aU9i?u0YWVA(Tq{>b4%UH#-2HF@PkfdG_d#+c{Z1OoI!yH<|b%GL??<-UIKq_8jy|A%M!s1@|83FO^IA(GIVZU?hWJk4Lwo>!p_Lxo$%5H0)iY5nw*J(_HiIEu zfkuysG8!fDFd5gCQuV}O4Ap)9{CZVrQ!SER30+b?*@i2@wY1R}`SWOJSy4D{^NE>l zOj{eJNDfrZr&g*%Kv+ldrI_?Uq^YC~w$E8UWojeiTyw*IiWy|MQkT1GB~XCa1! zp&p20xGfoe&Q#oj%63DWis+a32!HOE4@8&{!>ZR(vNrbXwuh*nKi-j4u{vRRj&^`o zpk4)N|0DdSU%96G|7Y{WO zBStgsE&-084->ldT6=^~lQUI`AxSeYL|c#HM1unuli$>B_nUt8b1glIL;xW|pDz!a zH}VqnM41*L42X@a5l~;=pDTR%vpSUo2^q{Ek1EOf8p=n_ikq7r4V@oo={Yew93TSb{_)Zio(aUa5#ML**>vIsvuoeN*y!aY4NLdeza&hW%*2$htg8-ucCZvZSe z1>2Z#2m(Ylc++Hv)}Q%{9=d10$#t3m}ZD>%6j*BjNp;v+r^`3TXCQgXmsGpuDJIr&YY{`x;E&cYsk7=ohV* zDP-t0$E3!da{$$aFAFz&FnFjGGItHjUiOIoQ>Gg+7lAb+(~*UeQ7ZC-$7+$od2Qa& z5?X4ddk@mDp<&=b6M>mi5Erx6gipxCm!z{F zc(JGn4P!l~NzC+hP*pI)jJK|`gXHUkd+tmO7XzvrkY=R zW)0pC8nnhL8=#1poc~^vFw?wlnVx7*9m`fdt*#xcAFn~GY}07n=)zsyd8@Ytle=a$ zAh>$lP!CB*bw^9E7zWJf)_PWip?$uU{z5;W7if^7A{*YEkmL}=LzcYk-OK+h; z+88$-oqZL}jIPd)S=cR&2#bcr^8a^+Dn^FQ=DXUb=+qU|6*yIe^CFnl_Y!u{_K3~X z2P=UMd$d_BJIEsWGL(&8ozFJqd~tissV3}IXrIbUK1DE@9=J~ait?h+h|xYG)Tu8h z{8H?X0i)dgofy;hxN)W7U;s@>0I^A_YB_Z1Bw2Kjl?#RAKBgq_T3WX<_&`uo-7}TDgP^Iwmc-ZC039*w2`pB^MWe(au&d!q7FfI9p zg#Ps#KcY-6mI^~(!~N>9nmj(^b(YnO4oLrspFwQky{vP~IV;*G?9xPpM@T;9;LN zgXp9+wjI0)2}BClsx?!Q>=y57&_!@HR$0$xA*$h!c0806YuNX}#|ujc9O1`?{u4lZ_vp_Dy2cv|_ZKYe<@ zOw9&4Z|RMzRyAzR%zIg+4=`!Vgr}?4n$&;m<~5t7_5u|=4$}2Yq|@VXZ(9HQ$+*h$ zKkC8d7m!2u3=v#iDjlPlIRHrUK>7jy=?bcQpzjsZ*EzJt_>n4kIgJ$2!K*uzcr$*q zweduOdXEb_@=i?uKxuX5^S{@f(CQ(l`F>F3As88bRfwjTNp#3;LjuN8Z<=gk45K4r z#>t;QSv0&3dy24HKS==FQLIKN7Sn+TBUM@K?$zfguN=wGKphp86i3;>(wX_bH7>Ta zRYhNZMtV#z(n`E1O|DVbN}G3pvkcp!by3QWTopoe2%ti9^jza@=<4n%ivOl0@ne6M z%MeJCZ`rA5f}QOl_}2pP{JE!s66Ir)0U(O4loq|~jtU~Rc1eQ>{#?Aco|7L0vLC}L zU8~z#l^kfu$4BCM@na98c>~N8V{hCeN#oq3D_b%2Js2BB`63C25SB&u#P@h6u@NS! z6GIwRf$T}xeF%aOUN+unBA%lqjEk=^SFm@kjEe2SS(v~4TbTzuvz3awwRDV#@5fgC zwG7)VpeooP|1rJ2hbC8g9_ErWf1&(8PFn!Yif3Nn-YEjO+)GsXtGVF4mKPgS=^1N1 zOOso|J1JIMSYp)2gVJqNvNd64TK+g}1;?X{)?y4)yJ(#HnN7A%1jeT=BtBmJmOXWd zS`^$4dbiGK!<4zkJjYc8|0I7-=++%KG2-=xKF)tg9) zo^C9Z#5-dxxvcb7leFNKkyEvU)n%|woQN&hmD^P2N(xWO!+G%>&vEBR(bZ%UB4)=G z75A9*_Zjx>f%pDsc3b1|;}cVr0SoyZ=Q1M$+sQZsFV5X|$8(JIt}!_l5M}Y^Kj}4M zKdVzhalQWv1%6IyxKOr`U^#21-V#bm`WYFIo(u);&|F1ZK!S<0hO zDi)Ur!_A_aa^K7yXaZN?ZRX1;UU-qQm=4O;LV{_nvGS@}z&iY`?rD50k90j=;$tEX z5%6KAc3;K7K4VFzgq>;{6R2lOx{Z)t^XB;u%9Ish+xr!bpKUWs!lh#q$DZ6rMN;po zolNxlH#xr}KAGgXv#F9M>B$+Qyqe1M?ofhGI7J7>#bY*eJHl+Sc55So83@|1h#54^ z=3_Bc_qJlz11Ph-Jle*Ls){`Tt~vl3UY?of1*^e#IpP(gB+8cd*9p@_UGr8r7rJ)F ztCg~eXw2~%7kHd4t-7v8DlMNFKKa80L3r-ikR0_-;q(-Fv1dh73fDySGIdO6VvY$@ zZd1*6MreMIefo257W3UK2yCX4lytG~{2o>CPPrRS5eySuzxGq&e_I0201l;CPtKt= z_}%$lj$_wY8AqCYp-J=@D^67USahu>N5Hc?6Ahpr*LYCZ(EZj}TukNfgx^EkI;4ND zcg(XIf?Rq*4@Tp`g@%CKx^Xq|l7SJ@S=08&h?;xa|N3)>%|ee3X8xTg9|d8Dy62z` zN4uI8LgJEeeUtZLt35jLu!fd_g%g(mWn8yl&~yGUx!J3gs*YM_ ztp>O!;kl;_Le8c6_)lz<+vTU4;yV~-(Rrmzi@(03NFzV1xDgY8nagKvQ|#^S47-O;93#8UF_u4KVYyEkRl|{KuZtEAb+z_fk)bVK#2epx_`B+zkXMyM;rOJf;qSo0jl9@F1|QlZQl4)hghKw z?Pcp)`AsFfRu&O|jYeUS-ko`wvW?BE@^vCM%3Phl;O|#-98-!sq37e`QqS%CsyP}E zy-Ho%vC9Za#E{QTO5^+!XPeUhwP`~WH=sL7?CYH0qg7IydDQIf)R<`1H>K9v7xex6 z`$y%y8nNrgZ)86EK%1J{tvdQdH(+ACgDX=a&4rFqk4}fZR8nLiA1T@eGsxpHDFZH$ z5c)zznM1RrVTJb{FXpoBRKdtFU}^siB$vMVh%%6qRgS>(YEb!HteBN zSN~%^d!ncE;pZDW9Oy@{XrJsby-}X=-`Xx)iUig!EAAgLrjFZgVXs>3<8;(Pe_AeZ`x56`x})MByhP%EGz+p&AhhE|Z>Kf!a-xwGW5OT9W@d zpu+fxpZKTPl)Afht=4~ga8R|WBQBwNdXVq5EnU~Xrr-}4PpeMk*#xO0$bA*7@x}A~ zOEQhz`fq?R;?$xc>>=ZtmW##oy3j656iytjh7lr38($+8O-6edy$Lw&-%4QMMWssY z;m`$T4u;6X&bu3$1iO;A@EQQDm}ThG`cXoX2o9WpInMH9Eqk1tP#!P7_LiVbxG^u; z6WbF3y!A^4yC)k4fDC8kO?7Lc9*)3=Z zf)^W_+@v^&PSa}*za8+1gb;36suda&$!OKCk=m7Y*GKMt*>b2#zuB>8Y|4=3soOf} zfu^$vXZ&1~NKM%fn9h811mHdDsP7CviQn`=VEDCZl;bSU8;4d;GgS|44@4s>{p`Yf z7dK!{e^L=hm`dDUniGlNI^--%tbT)2n%Nt-bC87Bh@7cKMW>hN5Og7@mrSD}fg@sEMlB8O?BNlFYb*%NgJ ztxe6X7MhGv_rjIxjBG;%M4cBkcm4oYvb$9+8MkK`9xIF2z+8Q#;mbIruI?Vt5b0B& z0F@~ZXg$e&k>+{;Pkiy;n30b=qE_tuUY9E`Kz323Iix0kAINOE(da{bFCUY{gVViL zvWEAQx;#81#+y4M{{SH6d7+?+#hU=lr8mgT;BQAqN69h_LFA5Icw*-u9G#lX_>tRb zp}ueRsc|ycCeR65RMYi3&9q#^`9La!?cnceoc$YnzTz$)%cFQ+R@gO2^4NZl z&+V}E=nlQ9TkeQ zP=vU6ZZ3shHHkL(==PkgxD(K9IH_{#znARouWXcJZ20D2!on)&$9XuBW8&)pi)T@<$(aO}=rH+zzsI;@Aq;px zCHwabapao>y4k9fZ!L$r#;8`KFZ?_(#nzDRXx{d`t!hzvMKxznME(xwRojKRMtw~e z;{$?%C{rYfx#z<03@e^w8WL;=@Bd<*C2aqBUha!;4)ladn=0j0=4&l2r6JTtPnOXI z;u1DlhT_*=7nz|?^!Yxz@8y1P7Gv%2qEpPRI13fePyghv{_H@!0{p%Js`wGA;#mB5 zZGn|Ru7h0dv4f*hE;ye6CK>jBXOxQAYmqzQ$;AA0jV~h9A%Lw0?E7`g5*jW}y&qE&Qgz zx)(pw*)e4?=)(5-ne<>lhxPz46`AULFgvYl7clwxft{&aVN3-ACo>^Xkkb`Y3%$X! zf;9ruKyoh*fE(3MvPlvwC!pHbU1KKWXm6M5Kux+B0Mb@$Rn==Bi11i4{w@BNu%Y4! zjr2*QE%BQ`-m!g{WB#eVNH{J`{?U9k9`SjTBDuuvtO#X?%hS56J&2+kt}DEZ%m*-b zI8FGC4+G7Z^N+^dFIWeon=gmlVql>^=gmnydgA|{{|49`>fE|b81Yx^pDovCoL07B z=sR%3^|k`$yxZh87BjfGL~o?OWjz^)kPUu8upD|3wwsW zl#z*}u!2$HYg1ENIV?8bEQ#&BAB6beIZnGT>_pq#=trCU_&8Me7y1XvwHqK1jIHdy znpt4vi~rs+ugZ7*{sC`EhXv%s&;s#>yjwjs23+--Rs^0LOW>?=g3%h=`Ko9~RGMB( zUYYwuzz7)`60A>}HX3Owmo8yx<3nP0fE>5y7Kc8RmN_q42wb9RL$$KfF_!Tu!!4=i z(*V`(l!4U3=xUt@C#% z*_^e!1M$Ozz7mdIC$uQ+%ZYA=AAngdMyv@v5S00G`H;QQtS%kXrI;OGcvYmFY;EP|3CjvJmZ=-fq?ch(eGAPvfR%Ckb%fM^9-?6jMt! z>kRSQC;*$z|K{p9vP`clAOZ5GbfPN-f!!(GI$yp8@WQ8KO}b%E+C_vnoWOzCE6ek% zcr`4{00({92$0%R;u?LHax?Hcjx#};$&Qo&u<`8)AmU9f027j`Wj($paVk#-ps4?U zF_p7k&|Xo8tLsx2{DqlRwY;v`<;e~t7n7r_qO<{aMrN2wl{dj-<%XQl- zzpT3?we0F1zC8VP#29^gdYWI?eRisL4N>NZ~-42>Nt%y= z{brNbbi8XN>oalA%**4yvhc0MNP*RSi=`T!H-;OJCMc+w)F4&i=YhSwo}J`y!0K{| zU_o-N0uNVwZk*+eiG6#E97^kQ? zwmNovaGvWMsOW9&&9Af9-GJyjYPu^h2Rx|IcL9IT-^)7Uv4Qz(r@d9thfc{(=fQRB zvo!!Pdf2wI-gQ>jos4!^!U>W`d>b}aSgVLq)yAy{%cQ4f{gTZdZG38uf-m!rZva)2 zv2%{U0E2616aD+h3!#;`X$GzG5*u^b%1 zUpv>8N{N8`_ZCvsYb8hS$-fkH&DIAuVI1#>{oyf9x3dlev`DLY?H4+>IXQHDu0_C8 zV19cF#)vol!cGWnKJ#!<6YMAH8{MADmY+&HHY?ejyj(i-hCk>ug&F|gfQp2IV>u`L z7?mZklE-=b052vi(1++dMs<_%k1zW{c7DZ`JFj{?vLIFlgh?pS_k|pF`21R)lo&1W zv!RSq$-Bc~wQVh|>0twkCnsdOFeiYKqH(7V3yLKcA4ZsTplO|)v^Z|B)%|(mhRp7D zxxSBEh?!Ra7~Va9TEyXjp|H&G@1JOp#5ChX{%;JYP#sEr)GZw+(rxB>J!mf+0}bi1B{h3rk3RpUvv33jnUNT+Gtwk) zskFAVP%nGv0MIIpUr9W^{~ImrTtPKcE{Ro+b%jxQc=(HwR{*H#e18ap+rq#jf`VkI zsp?TCQv@dstn-Pp8Q6foh*+b7KxL$5erkT3j`cLczfMjXVGqY-Z`B!xRG>k|O)KHQ zknq6r`K4{0J{obn7Kb2Kowr8=a#mmesjr&_vGL){^Q3XAo2?2x^!>oi*8)svpOS!1 z6040MriClV!-rI^5kwGe{M&GWq?mO2X~!PN)0k+$?HW#XR}R+Jk?&wZ-_090Hjk$A za`cyJfNh1Yym14hki`pw;P$kkz7Jw#zXP_36=`?JiB&>E!u16M#I19G!?@8U zC=kAavd4QYzhEF`GzsIOBt=p7vX8}J>Vm;`Ya1QvyZPV619T85h(Rc3Sp9h;vqS%M zZGRX*BAz@~uMO%uuDlnB8H56jaI8nnhRyh61GM(G;dPdaoWC-lFn%ymy-S($=@qOM-8>0LUXVmB;wA712#58C!~wGcoH zsQ8q&|r2u!IIk#z8r$o5$4`a{oL><0ciN~@y{9&lp|4`?6$vj=Z=-bEtW z`VU6@X6k!Btv0X*R}URL0OvPJ%QFxtHU>M*FW5-G+w%TUfhammWb4E9_Z>s7t+tRF zCa&^1Vvudzf7Yzp4}83Zo5GP^o%0BQ@7Aj31u@b90up$mH<>{}V=ABgt&Q~TXj2?* zC(E0&4uk)067a15KdQbvp3OGuKV5X8)t0K&g<7Fz?Ut6>Y8FA&UQuF2j83XXTWYVW z+C{BI%nqYO?45)bi5W`l`MY?Y=Y8K_{?X4T>3t{HeXi@A^F811ISyq*`Kv-=b5ar# ze>eYIgPsRZ8csQ1HI;|kECOv|$BG0-d_%CPQhDF%cvbQS)77OZrTD^)4|u%Q$X@qp zj@gB}EjY?^n6ZLIgb9+%zuSHo@^t#T^Uhhnt`r%ewG|(Ka)xMUpiW@%`I+{da{9az z?60=!7T^R8+JwX|_wFBV+Y2&aLy3Bb)Kv_iTHZxTF zlv`9ju`ZPkr@FRpae(_AoO`K9(?qJDPltWBTCIKlr57D9*-?0DY9T7diyW^IWuzTd zpID1Zb8z45ci%BC?S`>LjDn_v96Z343|2Y0K?iO$Qkat_5qYU{=*nkxb=cd)k%wO& zJ>#?`B?t=E`XM2=wfBGdQzsQZv>5VqtO+!~bHTAg9R|&E@NBU&xAfZ`%H3>}r;|)= zGB2~omm=0p*h>Aji>l`@t-J^OydZKm%?T$-7T0D@!o40PdF!d}$uiJI^bB6`A z%_f>aV`*^2LuKm$chqf<1p?u9Bv2;H@-7sLbvmr%i#h$0TFqPZcl5F}0!^p9>?lQp z0bQT&rKHe3O}e^o?>&xEd0Rz;o=ZjTN4g0Tsm`LwFC??gj9Ygfb>F%!AQjI7ZR2rK z5%Z9KpsVw{FiSIDpml!(f!^XHTDTt0!f7;2(U;TWO|MJDH^`^MN6I~FEuToWA{W0!Y%ReSUYf!X$1+~ErMge|(} z9FtpY|Id?>NH%=nSoHjHhLwF+RfkhHKdD9;j;mO9?V_62FlQjCytJajI@yawZ7>RL zbst0E7pI44G1gxmuTJ6Y$VxI3pJwPNjvP4=aUB0s_9VVQm2iZfu~NJT%y>i~#ETjK zv%VGHNE;%zU&bjs3dM+fOm)rw9+#+zF;MT|QOBe+$OnH}Q2r?Qy`|<&`0tRA5LL8; zdY1m1)q^c*xwkDYR;QVTG?%hbq51j7Si7H@xhBEA`k_rvaD2MI(43k$y&o@?^@<&( zjY0l>W(GR9j2-mNmEfKTr;cc6*cA`#-N_9@8*|kKX5*;^4-0J-Ni&&C>@RhiI7W2F z<>cgeZeoOuEi(IdcXw?MtVC??*Vm;Vr$m0S4FOP~MqeLhLN!%Zf&a3<;`7dX;^)Nf zRmfAbe3oU!f^X~`Q>J}MeVXW=$inIDRoC#NQz&0}jP5ai5j|yEQpXHC zJG%vJzNosYDxnFS6_cdf0W3ZtDN%*~Nj~y{08=YaM#$X5Z#Y46B@Z_5g`7yWT!}Re zJDRD8!*fqk0#Dz%mbvkzG`Jb2KgbOWFHt5rtDeH*}T#NlVnY191y&PIx)?sY*Yza+c_ z4*Icf*LC@cGHn;Dusz_dsX9f|GdNTYrvP zvV%Jxgf#*>F=`C>%-VV_N2uGwA0K;(2IQOIoDRr67CY*Nif$pv#k=8{~H3 z!I_hHOPdQN#h;1~+5_;mu$7bbL3*T=Mi zYAR5#{ASm9Rc{NwrFrWC_-NxH6#3)zdzNrWaLDJW~1Lr2^ezZBReW1R*_gy<2S<|--2 z)t1&3$pM(nIa+>a3Yr4ZGdNfv*)DApS1+!LCtW;~uQC)b#Cbo4YjobykW6i~fy@`tIQ?sSX-yc4H?NY>BAd0ubi$r|U=6*+rU)sNRy5OlErwwXmvoQ;*9U<+}( z6bD5VG`f{+?59uZrL`UjZNSp3zv@QudXB)-FTD*#nR>GXqoY`5NWeX}tO|{NFwn^W zVavaca$!g!Y{O$*c4W|XY_6;$uJ%`SBL#TOLg?TKN3Qfh`DwVUF+E~d z;ciD))M@(e?xOo$?d#^^WI5EI)MB4xPBX>!Q0>M-SCI2H0uu2qrj*9Zryv!o`{C|W zo8M+}nvV0A%6`?^dhUSfbR>m{4SC3;=RX{;>5cl>op=%5K<+4?B$Vbgg;-T!>_}X{ zKUu1!zR$o$U~8lxAN%(m&us;*d=HNMLVrFz32P_Kk?u|Iv-z(=!BZbuhYu&A>O@dZ z_wQljonh}arP21uJhJX^vny+Z_iLj@Pe+`_lamJMAibA@ox!y%wDQB+-_mX}{meg6 z10!f4z?T2^S(MY{u(@W@4^Qjd;!H{5cr9FOK(^Ct9D`@h&X>C0Y4&INokS>gtl|)) zqAA@BMBdc1N!;}+oFQaS8Gml4?0M)-*8LO-7~0bo_E8=NOvOZZvK^s6GCCHQ1#;}i zG~mh;mT0#g@_|*>;@a&6;fU;+hWN8Is%X`9__=AF^(XXqN*-=Up6#A4_lh-|*uT`J zk<4@Bo^@zq*ZX$zC2}-gf?O(0*8k41vvPC3(!rYEzy<73c#5}hm!A{Zpo=-c;r2Fv z@&C|C#D5HX!sj6-B93%&Ow-7UF7xFNK!Mggq|VOYT&`=UjzJzN|3sC4XcN4!MHn`7 zbxgxafg|XdJF4txzNIn(6KN+Qe??mWVEE;mXWIdK$+Y5k^N+370|iX|R1yq|>(4h|-p{Af7= zY*5`mQt2dK+TH)on5T(T-9i>=kt<`RC!X0_>ne6w{O#Y_9qv<)$=iB>lPXKUtx>gHU!t`Iyw6eW6NsNEG_ z7U}Od{y6Pk--)Ln>|#zj@@=tse>>$$`4uyf%3^wioE2AQ} zENp7+UiM9gc8)F4>M*v@QxMTV9%@6PHTA_gg_74)K&aqZOTik|nTVm{Uc#sH%DVbf z>F$S6R?kfT(5!-Z zI$Z-i3EP`C8jl3=_BxnCynzm5CK&rrZa&}*X0r`j576X|y$=1G8dRk^YC6{0 z(fm)~X|fXT=nSNqAl0;qAA1odn}9ny(qBC^3yQ|0ir=7dlTQvoc)hhml z$8)!OJ&wd7X%r))q)|W|5O}bxc8mk^Xv{SWd2y5XqKJkU7!G(Qo#<<(Xu|y-S?V(~ z5*I*>MDM35(%sV%#SH&>*d2$2%t?yB>dp_E%P<0j_2I%&@xTN^CT~3+Piv`mk#oZA z7?I6dM_Gg(K2p*IIL4#WW4wa#cqN>*UTLkVkdvX$N-=O)SKDVI{Fc8>J!DP$lMoQjalX`z5V3}8JzIDtvTm)7rx^e## zc-}ARQyoeAXZ$j{B`MJfxRuUFdtf>lVR*Qzx|)=*5PFAGVNs(5DG;mCM3z!;cXgd0 zANu!hGvEFqJ*S|%+1?@(`m)e?W6H*I4;34tJv&S_TWDqNxj%6+XVJ4k=hmN>wtte3 zP63n*qt@L-<}d>HRZDHf-#W)sv-EE6_;6Q}RCR3m>1AKSF2!5V*Dd`e;c^3GHh@KZ za#IyhXm;eZ6XU;5c;?&14D3lXocK`?j}XQ#w+7hXGxs4^Nfx%`<>?o_iF~(q;n&fT z#W;o_Jf~jS5Xc4oyg-4E3Iz#$Uy5%&f-QGO$KbD=)$GDjUf4 zPQR!Z1dVh5tat!m?}Mrxw!OqCH>FK=%iZuX0YuC-T9BI-TK8j0l{Ns>4t z0F*?3u6~hsV?Ru61%TY($}eUwt|0J#_{H5ja;{5{*15%4JTcbIjEeXy1;reyBB(Vm zR*r#Ai{xzyNbmW5$R@YP34H=jzllPaPUE{P^M!ko+&+XaJM9lGlJ8(&eZoAFY4g?` z3~WlRxK?MgMe#q0C*7a%MEqGL zqEFShI<^=5mzefWN)SRQWc@!I6&<$b%e`j2g8-~jsL;sLU;1OjCL87D`13EQmUwOj z4@XO56=qVnAx}?4Qd*voUQ()k;P_;4a_(0GWL-M+q4A`rE`s>|5FbNB@0zlW^W9lK@%5$JkL?wg9Lom{~YiPYogM_wuZf{r8}_ZJ~=+F&*ZR zuV2NwW@7>V?}Yv`JyK#5n*6@1qGO__IN;W}imeJ_podt*;>(mP`xQV;1{@)?JtbZD zCyFim1XQpVxBI)2pe&ozkW1eEX^nw5)E>2`$iUkwup1kb=^eLD{kO^dtEllj(($tj z)xH|=w2rK{DC>)S)rK(RS0*baU~l+%qC41*gM&LlHug~CDKFKzEjugz0VG zfh9JqLEnJtM(OY|dmNg>1t$V*2SXC#n3b=xaUE4s8 z3s1l^V3KJmA;zV|6U@YsJ+9iyh&<`^6B!%eL?8DVL5~+3Cedd8#}UX4=$yAc_Kc6! zwBPL#`cX=APtzC}h1*!bz?!7lV!mX39Rz@3r{qT?Dd-$z$*t?jA3mEIYrvq`jeK;( zOUkO3A7?0KUoFJxM*Sr?us`hz`9Hu=Rhm2ds?@1OKC)kHMO$A?^;7U?(t==$U6p@p z19o@rSFz_AzL3IBer{vbW9E=AN{mThpIo^8J%W0U0_a z1)L70AH_;5I|Gc=6qB7=v)FkgM(gZq7cMCG_!UMquY;aw*UurailDH9^!^VMt4f2@ z-w~_jkxIXe8v7$zjEpRhh!;a(JwRpA^9cZR6=trh(mJyzzyH3itA;Z6Ib?zHS;W{)OUU*mSJ{Fo%jfT=rUxJ5XZd;y(0r zj&<{yIS-2}yZzB@ZcVJ`37q$6n%z*TT~QO!M~d|TLR*&uQK|jNb@{IQ4UN?;%ICxrwt_%9c_~c2%GwllyZI5sqgn6LPUc~rMwI`{0sOWS}CDyEF{;j8u zhGOa7tk^Q=FX@}M@4Pdxau)dT{j;OK44~0nr{!gW4dZwM&k_fbuS^6zH0|3m& z?gE9XwfJ#U;j}qdM&MCGaU~(2FW-DUdz;8qE6UX)nB(qdJU`1gy&C0&vG!I`d4X%C z{uVssU-EEb1>`*{`!3UdLMWiJ;fq|k$A*V`P>xj=c4~TB-MDHfpEf@azhFY`$~XoQ z%{yWziAW+yZw0Gfi{dP|E9?B|tkT(OORm}_GVRR#3990F1x9IO&gNQ7^JHv%`vxfn z5G^P8%@9#q_V1sQEgltS-Y+f2AJd$W#EGZ!8xt`;uPR~HQvpw&=r!Jvi9N`TkgBx< z5$*oJe6UEby&G1Rfr(LD4y&uHRdJ3`h4|~K1N8sm?FrbiqHOQ=W&LwL0hiX-Jg zOV|5OqND_-3;Qljc>W#Z?DbP1y9i0WNq0@bGQKvWZnx;!Gez;JSql}aI>B!!hIJ+s zS!XgeBd>RHMqKW-szY&XYDr5FKmLm{Wa~6!Dtos4(u_`ET3%xbp<|A9 zIs3z^IZe}V{ZFWyBQ(axWXb-mLn+UxW(J7pVu}BkEuNdftBI>HG*7x_?ceRPY{_t? zfDf3kjm{`)a%p1rD!Ogc+vQ|q(3V2Zz^5B*!4}5zp0xcQYc-1hn&!6%V<@XM{2|8Q z$VImA24aC>cEF$fNxi$)n(+Dx+I2{5pl92tsf8~cRxwPvkah$jdg%K_U%D4Z6om1D zOIVf@4P}Y;7vi+xMa)oA-N&}Bz>+E9g;G}sp?dOBzHm!gEkL~9$_tAg`6 zX#H}+k{hBYw;wt`YI=Xk5#v*h$;ko?Z+!GfzffRa@|6 zGp>H6PU`dZ>54<4)X=!O$bACKl0M|=rQJUVbtASLQC=@Vey#ott5t&-qV(6iq(r(5 zd@&A-Y;1bJGd$;KTg;3p%dK6N-}>sr0u7$C;YNgQxL*P%k;c+S2wm|_upuHJIB~^c z+(?&?U_gbus=gRkE;Nw*Oap;1e*^vLFR)VHKn9LjZ6-uGNQUc6PS3MkSqousFnmM@ z`^g*yt3cpROg(Ey?v^)PEi&wPwrOvhvw`qUTZ7U2Wr{_)#aSsrj zycvwBk^95w=GjU@1t5=>BKp!AV>)5Y!^9Z zzow(&d-aMP3VLbS^=|gsr3x%o@QFc>0MxfbGwmA~2s|^KKg&mduoJ3Qpjc%@RSX(#8?YCw0o@TWHt#I(?Hg@2YI+fDSvLB>RYM9sg{|&KtMiW z_GySceX}>mFA#E@dS<^^k@)KsC6tL84+<$xUqL!jkoIiL()wx!vPRJUkqB7YN|=}f zil8%KXT4s2Dvlf)L?Ddt3Y)sRv&gyE&*T>b{Nyy3(mMvixUb?(sU!Wuvu=(f_R2Kn z;J1u;{8u@NL6PJSUgeW8S{$(dU%z1jjDvq3*1h7^$?1gAjSkdMBwGsaPHc{I@7?;} z6DQMQy!%++D?q(%1?iY3?ai~@dA%IMxNy9b9lTT#Ru}f=%xFm%uP z^Mzk08)LC;gsd0XaGaH0C35SR)I9K4wu5Xt?O$s^+9e)mQoWQ)3V!L`>0CH-9R929Mv;#%7zV6N>-TIo~;x-!Iq3>Fd2vg~p>lZC-SOqN=9jXV zlIP#C6mFKL_B@}K+-`jf=1Q1Ug939Bz*qh$p0wHC`OWGjh&Y#ou{S}Jy%4mWEgxOi z%&*^izpj;I?0Wc3+0&wlFpZH3m1?OPS?P40X2Gu+*hn1J^5gylI-}kvyib_MD?lW2 z`2=1KhhGsD$iVg{%xY%eTUs2uUC)UB8SVAh37_LR-DFf~y3t$4NwxnXf?HeCu)|FM zT6TWNtAxHg0pD|*^)5zn7N7agfyA^lRJ$tEE}*-KM91MWlsU{vvB=bWN>imTYSp+_ zN}g~Pi*{Mu1EfRj7VDuY5scbvAm3W7Z;o{rw| zqL(+-#a(wOO<3Osy2c%Z-1~a2&)%;zmeQ@_c8T-Ne$4CB=1q8WA0uIT1)}%Ulxe?| z+SY*dyXebhlGdB4Zo<+61`P8|iVek48$T%uNNp=TF6X=i4|0dTVi5TfCuAA?6BhpE z8~|O0hs!qly-IRbXqDZ#7~) zHEq9*Ly(Be5h8cw#poAvT~>FGj}dD&OWk_>2~WY2f&$lWnu;e&0B&<~j*-VR=gVTN zU5^a_j(E|Z=lr(7JVT3$wpmb{&%b01poat2MceO|sxJe^Bf|~^{84jhr<>Er@Huwg zwXMxEUNJ5?P=xK%FlW|{f430qQ5_(Sa&pH>NbcrmDiDaJo};@8K5<;3U7MOgwOvTh z>{Mb?52>H*7nXo>bi7ZQ0X_beJ!cN)$#1Od=Y7s^=ebDsOl;tQ=t-VQT-2lcc|$th zWk?us3>J^WIFlAeDzupqZ1rSAU#UL5i&I>4vu!!XKIP~^)k)?g_u(5k-*#?_k*Cim z;ij;Di(~n*mfig@9TPr!7q)OUg=Y+qi}VK}hC$Bsvs6(OAl$}&fq8=Gi<$ZHx9R&c zMfRj*Ku6EO7JQZ(eW1Ij`RbD`8RW2u7)=J04r_H*mO3t}qJTUqw)cg#T#wzO6RI&!iB_)l{8=KZ&TmHO$SbOTy~(khY18TZ-{>$riG>2PIfG zc5P2Z&!bUwchPGfvK_iJ8bc@wsUq%#?HW!zfwrl$;o6JezQ4Cwj%>afUNy(^akZv` z^A+hGwaGZY{m`S*gX5GA#j&hAm`Lc-jiJGHi9 z+)4I))WoQ}&U<>jz{8anB?;Z!B6tQ}5D@qxS4> zj;ySE9KoI|4XwT|xGM2BVF(bGdO_K)NGKa04!eG{!#-)tUyjUua^>oxEfu}F((Y#A zw!V*95(g0=2XwxB7|u75s6~+uiTNRYf*4~oBQR79W;pPhh_Hk^&pCTRzO`{g7BJIn zBcMlq4YJ$QTVii8JhXj@w|CWmu22N$Zb5N1wjA-b>dFcfI(T1iIqzhSh2y-j|4>PV zvlc)N{$Y=)+>537e<}*c+eHb_R=ctG#!+H9sfGSkTorn3s4DkvYw3{~_W7`7$_s7SXD0{I)M zteR)BS~)5f?sZP%H2?lor?`rd4#l3`?r@Y=(@rbxp~Y1P=b_JVi`KTRyClP;9544} z%7rBcT-F@|zDD3?`pKBTQ=HbH)Uc_cIO={i)aY&eV+ALx`IBuH9#wA)JSA(A^8>R1 zI}5o*7=<#$jEDg4eBs+SN|0}N6M3{&OM^$lqo3kl^HaNg<_90sX`|R;KL1I^e2Fh^ z)%3lMkOz{phnD+eu{TY#>8Ku?PGFt<=I~ ze#dfA`5POSe_l_YVp}eZu9^w70%49_dOL2iwmKU9?CymTAuf>QDSYK;HuJ2&{< zg$ZK63P};VJTRV_QWS+Mybn(st}yUK$dp*fj;-?)#BWEk&z)Gv*0Rr`N@aX&h>Netyn z4=5GX#7Gy_u9{gQAWv-_p|j<48X{rs;?t@!WDYVVETa`BSjKt(j5}G_rRI$#Qg0s+ zi)R!@e>cm!^^T)8hcc2d->{LJlS0zD(sEQjF@bQ!dt-@g)X}bBIgAbfw1{+R_mTQ- zT)iO!8StwPIBsVmJlJl2*KM;9#Mfon5(U+7!Cl(ytSe!-lOEWS8mCl2@$~1hRxM%v zMvF->!bJ=J{M^dR7DWZ<(-o?zZ*U50M8sRvSL$~GX&|4`w*(2hIO9E)zX0yTvk-+7 zy<(v3y8B!o5&6A{h_9uu(3c))xv8=tqUD4%YoJ!${k-N+rLxVEEd7Ea=g#`S%m~n^ zp^Co9mcyq6g#KnmZVO~3;0!nus{>dR4~=MxB*5ZI|SN@Cnd+D{M8&GQyew_pL}RWV_VT);50vVcJs ztyS3i-NLJgSpiS#`Jl$jw^}4*QT2(Ye+1Gnt|zfO4~AOwb$`vjCgOoCn0AlTk^GfS zR3N1ajHt>D^|!&l3&&ClWIbgiIwV_EKMrZ-gCZ?^tJ|2oovs<*_)>mtDOFtC$0i;H zt@-<7LR5Hv{J~maGNwu*}3kE&@302-3bNf=v z7l65mlsWXRjZ^pSvU;s(LG|oMHy5ZKWdjyI$M|WjAMQjfLsg%y%;wP~FM7V6`<)u8 zW1?wO-c*>3Nq8WgyQ%h*-=}F1IRkUE)|vfabVJbX!f8!lvO#{Lcg; zIk^Y;NiWyGsV04Feom~#;DfR)-z2gO3rKQodxr}&u%$W9UvXXoI^pr zojxCRldJUx{}3Lar(-#52}Ot)NvLJUc%y*}e1*!^*D%28IXIyT>%p2TK82 zH0GUa@RZ(*p9LLR z#WzgZD^Df1or^#6?KEpt;L^kN%8E$biqB

G*EXupf4YlGj{qcu61BF|NavBO#RT zYWetByz+{J_vbVxjv0l|A;k`2k!C;gU`}ZqY=8waVS52vdnLS_7)JuUT&uo8XSvTq z4hq4$+Y@Xq$@MsD^+KI_N!uw%6zBf2aQl^ZP}Xy8sF+~9y3fF$c98Z;RVc@W;>eA) za^B~;bib2*q++5qq@5l^NrnVZ{WEJ`YHDgm8-vS9#jS6h4VG*d3{k=v*qsl_ap_>t z*8Hg$!b@J(5G62(J+|lc-AUjL%1|AvuGywcrM%Md9%uzZx!n$;m3w&khq##RY}DjZ zo-1y~s8H59U6II}wQAOGShwlWoxkNp5e^i;nq z{6K^`cgK{CP2bYq`NI@E zXL?Q63NKl=1rNZ6L`xXO6vv($g#Yy(*oVzY^;w_}_0;C>ehelW@P}yNVi=2S=Olav(+pg0;(pq_Uq9J`-`d(Lu+Qmn$#xDNp0H2zG(YTxBCveN zZft{-jB27TXk@}N>A5-p?k-T$m5VzLXvuFDe~F+}QbVoa_#8YuU094mvjkMyLDf&oJ+(D7XHV}AERe#!bewDE#&EeG$bpv;HIlQlD;qL$<0lov)FvbKouK^4USFeQrChMb z%l!eZQ1A*Q#q-?mO5)6<+PNSd@2Z&P$<(bAZ5mVfg@-eU2UoIN9MBaak&C8AoP%TJPN!NDI(TBoZeq+{th)EtY%;k z6aLF03v0ek{^23V!RI@p!#n5Mw5jdxAHzT{klLh!a3~!3z58O*I`b1wsIr7WMRR>& zK>|U{T&ft9zMEI^*%`=Q7o%df4r!)kF0Vq1Xm8t|o2phNkM9}v5egWj6EW!uKwq36 z?S&qT8-PetIi;Sqh z(u0eHN!x->9iP@XVxE9%8^*!tp;_O1T%zzVG5fsA^PiP^-aoLuvQZ%rh0Ey*P-OEl z(Qda0r`blDdsb8yc$HOW44YOp9E!C%f|UU>g63!)qcLS z*%kWA@Nhf=+vJMAQ|ehPf8$V91DQDqlh~dgom?CY=I>&w7o-B&!!|>Rj&OLKdL?17 z2j4+$Ba%d&&_1mt{-Q9>G_^|hm3%yRJ=WrZFEb%A9Vz&4}$P7 z!`)^1u^YL3g;a%NB;IANBwuzXUC5Ol!ojfrz4Yp1sE$Dw?;9oY>k6){a>Qll`aHI% z5HpLkh^%lQjWV2>4yaQf^URZuf8#mbP#TCkrSAvjMiVSOGV?on z#YOG6|JPkG(63m%JqQD{7<$+485)?Yn}rf0}$jAn1s{SbFGR4a$ru z_QqMCzxzoZ%^(cj!|bL63bP|=Pzz5ui$7tBCb~SH)%`5FdU)E!ci>PSPlv6s1{~T* z>3-2@oT|BjJvzlJ>;B$du(th3{f!d=3KQqUX!OAAjOJ1e3Y|`&Uz=SH|mKSIQ%?)iwslsAMSj$`H&k8hBO7Bc1O&TXQ)Nm;ywi?{R2kYt- zF_^*kxHgB5G>bls3xMOUz;-(e5e@@dD$;yJh3y!6gc#(wHl`C*@417jUqh|B$T%@T zVxI4_!Fw0ldIqleL6fD9QG}V3G{09$@L+bDvvS^Cp9XOUa=Ou?8{6pPv8aH!cA6CT zn4$_aX3-JNcQ#sAYXZ{gdS+`(1@Jttq(_@o|Mmnm!QCsp$M(j9x8Gjlqxf|1hDg_Z zr#dx#<^-(BSPlg+_p>ISs*>N@7UO0PG_H=JbJLYECm~vQ_9KsvLDQTK+pen4Z9UPx zxa?F=hUt!nMZ*cpjst!E-ZQ_84@2zQ)6uJu}9{R!zASt0z^8mfRTf0%pq$J+R&2v&CtQ{~gx(gcx zS-lhECzHRC0?viC?>x40caY7hS0|?3YWRd^+D^jGEt9RaF($ z*-vEoE^Ji?YYeow0hsQ;A7b6gsq2E=t%FH(W@)E8NvWPYfN!P2Fxt!x5&dsroNV-j zP8V5}nE{F2Zz%?&ON3HEa}U_UNeR`_koFl+Vx{K`?fOfpd?p&cx9j zr%{4cZ^^0-pYM#;oIP%N*mvUx81Sj7>i&4M>Xv61KSujo45y)56{s^1uaDBr*K7hO zYU~5?o=kH?AmWp&87V%I@gyNbct^UD5;jsM^z6T4D=m~wQ*ZZsIZ-)8h}}?|_>Hv% zQibW7;rpu|{1-ZkV12{aPgFV?K#eBxRBZV)Ihs`GZ4Sh23+%6cS7~E?*E@r1S#yW> zdL$&QtYv|Va*uP>%)Co`khrm&UJxZang;qeob^xQOHMGD1{%;WXQy*R`#v(#{hnB# z&2Mi^kwHYSP*#Wgk_qerT?3#1>+w%fZm8BpO)>s`0L*9M1A{Wp$&Q)AJKp?N<(4;5 zC@HkvrM3CN&+=hE!t1yz&(FWo3KZ?;ubloS`!%@DPkD=^- z8j~#8`|%gp zS&#%f4r-m!wbR-yY}G*9V<#akO=$jliVXs(_zQ-$?EzMCEqic5Tmbelg7N%+SlyAt zd&FouR2J*n{D&zZ+3D%7xmrAn&!iLbcj5l}ukjMsRWD$1!aUCW zYmAV~ne9xTxXS))ex$;iG~B2E4oV0e)zdyK3|<&~ z9uD)L&JxgR<3}8UJnB}nUE@-Lza_%%7InzZ3hn>=e{ai|zPguv7J1od0vxC@{S!#i z#~O9at&W^w9#!e;7aGy(dIHGM)-IG5*@{4(7ft%^3x0Cyk-Q#3BXV+m)FtQSp5HTyi-#73{8nP~VaBhgl z4~c0`QnF`YR$48{VfY#6Q*Gps`Oe3!9pG|Rr4m&k6i^&C023PW?$q`sRkH}9zY&d+ za0>dafSdrWZD-<=cU=zb&qF7i;geBDV zCrh5}DAp#ty%mucwF=A6x)L8%>gi+$jWqq-Bo6|UGMC)C4{wfG|87K>8PO*qjqaI8 zo3oFMjO@OD8*q1Q32-^e9|~2`-|tOx4FRD!?=ObB)uZT|(D#R`3s&vEEJG93=5hrkU zCY^Rx>7Onh z&?Uk9-_Dx=imfz|$)7Y69Y|xu^9YIv1m8z`x_KfDycz#BX7ItM{P^>+^g*VR6B)(Z z-{1_F)@8Lsl880TNn6VfheU7g`<4AyLU%w+tf0ArrI`0*bTW#^N^PPWo%O}_4ZPHw zk@e|`|6Ny>5P@=Jr8_eMdpg!lem?m;$$mO$*^%+$(-Q|67`WKC55`hE4^L9`quVLZ zge950Ff8Zdo73MQfb1RekKuvJx|5}$4%c}jtkT?xKD{%iXBa8ZiUi|jy|$i4Bd=p+ z{_j2QS677!mfl^Oc~C1-kfCEVr%zTaqvbe_FeeoWWz;Qsd;Wiq3x0padqru*YF2SA zmbKn%Ee*9`klbIOj4@0n97eFm&1yROo;vn_RP+GdNj zzH}ojOM~I`4X576tGmlu3kWNB=GH?;M9==?jThVQb$l614A$0N6M@%!p_}wVGwA|15^^$5efbo= z+Y;^{`lU4OcE~-X?2%{CU)|!Zx#KyB=5e^z82Y2*Q-|{7HR&m5Ud2K`)$uP1OuKV& zD-S%9FkHPDhi4K@k9Mo}ZyTq6kEjbPVig}nbBtb49UX#AsKs78liR>kzUKFA$70Z( z?^LUQIss+bF2f-nw!JyZlz-eEy-G zS~6~Pu6RURNZQhT zcP^(2j>RH&11f$iR@m2Giq00!H&-eQBBP3oG*@_b>#eZYkf$J5|9My^#)&WqOq{!=gu`=8Lwi*d^ip+73G zwrxMm^4pY^=QttYfx6|&LM3!s4>s=H{{DBmgmt)+DBmSId{ryEC&~bBnyTGF#0pJ|tQM(HtsK>d6=@UAM z>>UfZnw`JQd|gL;?S}*21@w?3R~4Nf8Z0%ad!gV#9}xtl;GEew5&!hsx+gu7FECan zHFkBuJyZqh;GoGL#RV29+uMxZkt%ocWmV3XMttAh1#=J+Fp69D? zC6p2KuNCiA{JH51Q!x=`v}tt+$R31Li9P{2s;tL^F8v zo6+8fpxhgw+Bwpm*J~B+_-3D(o_-|7a|9BBdsM20UCL23Gn;76`6kGe;C$HbRF!7F zzOBVq8~3rFp8|8OXr07xbaOW1nwJ-M<+EP#*oASKw6wrb>mcq|>xrB8L#8ch ze~!;pf0(jd(|y^JWn*n;ofyAP$Owp(E3XV`rtz542vo0M|RAg`urlA|dkxF{TfwjAt^#O~kawu?Yc;Oss%s&rq z_kTC9dsw*+#|>c@f~MejX@f6ZyWnNj%T}D)`#@odxEd zXuC71yvBB^|IQYfYWTR$R!1prs z)5^Ehk{d>S%v>Hb=3+w_?v4@_^JUH%A@d;Ii>yx@dcpdk8+F`#W6ugJbSI9FgPHvR8wsmwjlc5-Y*CyVBXi0cq+;%Yr5=+Z-@Vcg@Ewh9z0id#^O@PI~@m9}04*TwY*Ih-Q9zUQ#WPrBiNsNgRuqfS!zOS4)I+9>+o5rkfd z>+lMir#wqm%qhYe1yZtKq*vFbXyc?sQ>~SQC*)qe`{W5x+n4-7+T=ZG4AmXBxycF5 z8OU;WWBHCq`xx01oD%U9HXo8t=HL3u@K#f^`=i)`ChowpdVlG? z5j4G|C$nJ%EpNveKcmHDIXXHF64|ReYr1#u?Oj(95NcGKVDw&(+FRr9*cjP2j zDgT6=y5~{Ns`vpX@dkt23u^{z=9MwD58hyrl~J{zQK6@&$#pERzVg<` zDp`Q2Ub@(;lynMz&Ot@FhvNOA6BbxHzU#X?wd0`RHJ>i;(?wvh`nwtm_3Nk)d=x$` z?uc6sZRXD6$4YWSv|<)zFXd@p=1SGlUdH9SPWsifn{i)LT8#UdmII~tN#MsS3I~-| zZQiPR_EoL4G_L4_(D~O=lYeVGIJHG&wD@#i5=JxUy^BWu1_h4RGbb^Hx2s%mZ)HBs zzDTVWv#M{tsHak!AGnfHUDxlu6-lBMi*(dm1R5*TX2UV0(%pGfZynSe@`uU&M^5kA zQ4H7xPh`10baV{^vcJ|{*E>;`{p7wQNv)3e@@3mRQdQm;{;%W9}J8r$L!tEQ6{fM_|eNph3PKH1bxCCGwnPQ~yWEyMwxtJ(oz@3;ya%``yc4}Fy2!pvm0omnR9H(&G!!xWZPdRN_Um4H>dM?tx+q+SfsEts*Q>r(472AK zA`8s5_;0do8A;BO8-hdyO3pfpZZp@uSD&C*ldb8gIhso$cbJIL$?-vp;Y9?v$p2&O zt-{)hwk}Xyi?kG%K(XRbG`Q2E#obCNu0etXcQ0OC3lw*^;_hC82Y2_IbIyIZ|M%TI z?ANt-)|#^BoMQ~AxB4y{zss6izWa<4^qT+l{wedIFlG3U24Nb&RL&h99ccd-9f~M; z*&89ktJ38)B)WVqZz9d-)=E5Y|D5>DX~#2Asl~D~{rUAww52)cWO=gmJiuT^JC>h* z6*4r&99kcC?!5}&#n|-gWUW1aY50q6;d^=@=DSC0@v;}dFZME}o?`g2u=e=a^G7bp zW&99*${nl6Q8>wdN;YkZbphn%opg0OOW;sDlv;^qqy`~=IgGCKx|-&uYTh0@z2QF9uTBz;n~`0Loc7=B_IFmwq)~l zrs0ai=j?oj_;nS){@g{XAnG#T19-UM08msN4+ie>r(%q?b1q3P2owk0!`NlM(#r*LM{EE=kG+-lwmbmG%z;d6&Js^?M zbKtMypvE=lcNH)#510t2k?z(FEZSLw-nlj@F*#)TI1gH5yeGmlA_!m(Ln&JV&~}_?~*M zpT3@j<8`_&p+j#b|J5cN+$GZ!zfPdDujJkw2DCcQMvK&Gf?+FQdCjx}yh@Bq0z*ql zu@hzWo3D|zd1#9P3R3UMv={;)aW3PJ9~^BcLJuh*sXM4}&moiUwc?IVPk234s?iZjpOSt^(fOUIS2GzI?e|9dCysFVb<-6bSSsYU z_5gJ4u`4{RI8FC8+lL*7+IQ@CHNJdtrF3*4H?XwV%VUAtwp`%SvE zUPuHy3ZhWKtEZ*4<^v92$NN@a?;@hBvamELthh|LHg@ zqbKeJoj<-F+)Ko{OW(<#1M)t}1;W5?Cg5E?)RKL{6jnb~~=8u-RY68E^iK`vAc^#jAfx z65&OsU&Y$IR!M)ZR{!kAQZ*mkCXWi4-J@Etrh^V@n&ElRzPk}vQvMbqCa9Ft<0|$s zW{VC5ftt!Vzq2@rY`g2~lniUmkJW^^RDy|be#!%%A~w1y_7@eV23M8qJUuAD$5PY2 zhqyzhS3}L%|srS zlJ`$oH2-VzPiRIYANKy!n7cHExY(7?*@>~ zZMK*whZi#iu>MzDVA6Vb2{y98`g0{>Zum<$=b_TTdjP=kct;NC*e=KGJgt+f08hle zZ0xpXov5zn+O><=a>#S1<89j2TUWkI({A~toz|0>S7T#{zgGGH7-kbYECK)_OX$A7 zL;tv`gihHM#zihSE?@6*6&yURRU2J!xh{8WBLDQLIeFJ^7t@ZO$%C{v2yqEDPGhx1 zE*8X^E@le>qM-A>BC&@Ke%2)G+gPLequoLZNvRW z;|9nCL}ZT7^~OkdVR%URUlwLuN#`#n^p2uV<@j^PTi(t`W3dZHF^^XvDxk6CWuves z^wo2{CP|9&*^}PC#5X|`L+!@?v4<}GCP=kNdv5oOMS7><#jS&m@F`_%_G?4v>rHv& z?$iEetj|p+5#?8@z=li(VAb1LF?w|hgj6ClC0}@wf=%JT`zgm0k5I5CRGnqEH@?XoI{^3cR`|838)aCV6OTV#H&58PKtI%l6Gj{Vv$Q2t!aiIqB z*@$Jb{umV~u~yn9#Y~~*Unh5oHT`~q?QQ81;E(n@aD$XWq6gk*xfIKiY~vb3Jr{_# z*+4G21B>rX$i)~xAv~U(CZ`LExu<)sBevt_+LG^~HUxCg*}RK)FoYMJqy9^yH!2V; zzjn~2754c1;Y(2;YG$fD!6oq3Z44lKv9Z9>el{w{;rV=_u=cVQ>$ARA`IBhZoU%Mb z)sg&IhIC*)Dd2ER0MM9{qbBNL-A{kUhFbzHw|+%^^&U&7>ewDFOldP;3U)9Myk(0u ze6kRGo|FSTCB9GEH&{e@Rz-GEe{k}vC)pS_uaO$>=>xr-!-nm(OSxhKIl`OHbwKO zn#_9!-?}c*T>wdHI#%Dz$nr;!jWkw?eNPE|UjidvEzjGyQ?h*zE`X=tJ>)g-7rA!p zNw*(dMG{A{Rz@VRprPX_4ToG69D~P^%BP*4l(wzh+o!3`+O?NOR15FdfX@3H^J&CR zeVj#LGp;+*j|~J)A2)H*>7_rU`L2?B8sv@kFVg{1#!WVBW5$aQeU(?DFQ7TbT@eL! zM@G4JkCMs(O^)T=+TsS=)z_WY5&l)8e=brR{fF|6P`7oEJCW~=@h3-js!&D~G)O|Y zf_8GxvkLo~`@q73{fqqCwfh^W<3JaiG4yT+^-~Pt7$RWzOBk5@T`jN8*NDqKQ9|6k z>ZUSW3awxB&v?(`=Gw(4&(>86sK|v?oO@(Bt*GXnSB(w|0haX=x}E4OvZroOdp;h> zQ$R<@DSoU*=)s!z<@!@P?nGzDX@kD}bghiuU7})rOC2wsZD&2FBbUdf9eFO$@8^F< zNR^1b?ALh~d^L!UUyX? zQWN_$c3Y{lwDiYoExozfAtgZ_-iq4Nnl2X%@%EjxC;gz=vkLL*IG;ei>@28gH-tP~ zZd@BLJ{Ee-rd>P#^}-6tk`XFKZTapa?m#o$c$(e00@*s=A$MRN@2mh{UO)4XuYm@% zH6NKt?>u9A@V3+2`L9*xD;pdVVVqFc#y^K0IrevLEhj{-$738&pQ7dV+8p2I^Mb*l zB*!f19PP(`2d>eN9Kkow9FX1a6QL6z_;A-9vVUXI@t|4%qn>Op(RXsjEB)gFbPRsa z4PYZrI|Lp0LwaB=+Cco`zmr{Nv93^0eaD{YzI2D9j_2f;`^G=y4mbs;(QQBI`0+#t z(pEHWOgGzv;D?Fp|E+GFpq&g*^4L~4SBUe6+j1Q(72iB9Ap-<2r*1nprhr9k>9;p> z?DvQ0uk4k4d*cfoy4IA^!4pOlMxi~wqj+EL^F?ZqCNxb@Rm;kD1F|Ztgy=+iea}i} zsG2X>MxcyN_g0Y{qL)AMIv>~Ay;`^{^L^ncwoEY$DdV)*(5*jFG0t{ytkygB$Ar77 z_X{cPTx-is+hy54cSuIA3zt$g@B%>b=$#mwua2^;>) z+-G4QpdXj!`Rql(>2$yB_(~uIS~I-8!*#X%>XY4o-Rxtpis>cc@haxEi%8Yydh(q9 zxWjM@rF;1{@LK^1B`@s9mVJb$1I8P)6`n6E?sMW8oF{G>y?lIzu7z{*rIJqFG2tu~ zCIhHuid-fU2(DI-N6Nr8ukl}$I4u5|-d~P{vu-!umd>3VjULHcjGsPdzjl&0pH%WF zbBs_dBy#1^i1w0+S!+)lt`J}O=|*RlUBKuj46>4l=m&Fwk>++@LSn6@&gTL)wyA8M z8ivB#W#h%EuQgjDXg%&ap%afDc$c@^#Y}~XYVu5kAK^kPk{3mxn;L+~7K(ud`!k|4 z$!4-T7t|u|EGE5ZQ2~q||JQ*cp4*E}HBMrqL6`*bL_MKcR|!IzOmH@S@r{KWr?C+PLy(yiwsBigC9_36)JRO!U~6hU`BGch3aaDzm4lBBD0^1Mi$-NS&jKy#)i!7Z=E%%H%@u2x^K}+6pQe@qk5G0E_f07YjuYn zP_HX#q_B9j<(Uf6SWweg{`=wZhgkc?7HPitbfJKgpd1madNuct{H)s*Xe^XZtWD7E zyV>k0ac#e5KU9rx!t+H_NEi#&^(Lf8u?sWPGDRBs#P=-^@z*X9VT3VYn?jy+B#Jo% z_H;3S@fgCxj#W(`UFH8r(A@d@>G3eK^(%ih*TAC+u5O%S&#S0856dU74|uyWmh4z{ z)dO&LkZe_<dNWilTVVOGBXCV)ZZ=<<3T&)OL zm(-bS7mj?FqjQ0w!r)zlutRm9)&HEE!k3ePm;Ck1a2$=Gj5iMlce%Xu7Lj%B!5%Sr zZP@o70|1>sWeRk@hb=Rh%l-Qg%wSG_cMl_QiJW@Wg<=^I%UE-UaFJ-Xm3=REp$WqE zGqzh8Pwun9KnMSLV&Vs!;t^0L+F0M*K~_ML+g#23wawREAbK+XnLyE{1FLd!x>EVv znWlfNfqOTp$#G2Mn&k+G3=7uRnB^k&CX1RoR zkDm<+4tT!zbHV@l@WitBmKFc~3*e9EZTYU^q-Bdpz7Mki0u_c0MpoPcYZ>pW8J6GL zzhi61DD~4nHL#mHD-HLAj+KL>d2^>T03*4*Zxr#md!DnHGQ^4B5XcB-{Wh&P=-d@h zA&?7~;$yjc{xE?$pu%ze_qQyar1)ddwbkN4ZzK|F0TKkmHm!SKm*RIDdmAd2_b<0? z@QJkgcFgv9+^a4*cNx&*&Vekc*o%v7hd09NMr2(lT^K%A9)PC8t zO5c&N0*)+ALqef$NYd;~Bb2x>Opsywk}|+pBY##gy1n&yIJ( zKCZI&!Rqks@tLGi!QbZZ5|wX}dm+&iYse%<$3V0YGE1@Rk2Ufx5$fzJnhWT`+^f$- zJ06;&FJ4eC>te@tPkgD4HzOeqOMvwn4Er^a@aG8{slq32k5sWFnsmb&%y) zjI$Y8adKj{3=u{~=Getp>@Bk{52O^@#J});nRA zdTe-pV4kLPMqDI-e^vb5oTJ~^$N8r*` zx%}oV(B`WHdNUe^!9{gO0hsy`R>Wv9%BuPw`-o3M8cX`GrKri5WK&5r3G(cU`^T_< zP_93$w%Q@hKePzeSL-2<@1JAXZoB!)IH%bI7lge8`jtrk!c~_~J`b1BG!S<`rj`GQ zXQ)fzSLGwYBZKIrbP<7q2|`gLNFlZk#hLzN^o{u-Ki)dS>Pw*DGh!j|19mp)ryYV? z#cGd_Mt-9PlHb|okLsPbb&*ExR7Fea0`e-F_mkg^TmI*1Rc zmtIv(#(A3~`t~`&3K;r4F!b|02ft{kAVXVYn!t%fG5PsBKavZApC3Y*zeld!YZM#l zM)G!5S`&uC^5p7%!Wikf3Wuef8~?>roLWtl9|c?TACDiJtW?V+LS^)PdF)Q#%|@dx zMlJAW7l&3jBrm&IJ*j!zzk$fTxhpsP2m7z4aHWNh1ZC~R4V@C|y zDr6A-&rYa`8Qh)@IqJkYp+P}xbj@Ja z-QqbAH#?bP-;G+P3Jh-y;KpRha|5dqg?fYcER}moP-Du(j$KB3I0H$`!XA=Esc z^HVUq7zr(Lok?~>&3(M5k6hw*EY;-^v_NaQnC0a!mNdw52OQ%DfvMG10Ptk zl>f@OJ4|6_x^G&sXSu3}D)j<6ak`Gk>-5(5H-OQCFVnXRVz&@aBp`dh9aa{~VPth^ z5jsmMGTNH7^zneob~S8OZg(z~c1298=w!J8>}==xd9KXSW|KsJ`tD+T05{Q8vq|7* zVQ6>cBH3FUzV6NKD}+ko48){tX@Xt@_Ly7j&D?t=l>cJ3G#m!`tQdK~0KbDZsxZZiD`x2(Y-C;OsUP^&6`q{V}6XAq7cUe~xt zsuTtK;Y~y#oNGX-BqCcU8;PA~VSx@Q-}vs|h3NKG`2OzZK_lo$lP&j`GGb8D#QEK&!z-sc2w&;8I zOC_y8k#ypESV#D4n$grevHo@1k1Nf%O#^?*H#y?WT}=DnPzDBq8%Tt9JQ~;e3iw%r^v=9OLmls z-2xe8o!FNbe|tm3@BR-i%%Mg&lTTo)w}P*1{Vy&_RN*T7{6_hwB9-DGxDT;DQ_E@o zf89CLbplKB*9~z!ddX*aJF3;lIcMtcpTZ)ss(%_l2MvWQY0yJ)Kln3BJIF?he-f@Z z*r;Qn#NaBL2fe6r$veuoOdjvA#*gZVv-HIUQ$7hW`I|$KsGV(BH>FP8X1&nr9Ynrr zo?V2rW{tFg9@|#jMmwzz1JWB=mwjM6wZ+I27v4r+=44^p8X^7iGa7#pNf^Pk6xOLN zv|hG`&eCRoNo*v+N>7GK?!NxYs%CG?_F+RlSZZ71inAZSlNM}(4O;@Or;uxXSzj+| zH#La9>j&&HOS${AQ!vK!<4U13f0sMbo#pl#XwR9)tM3ohe}|YB%1cMO<~fQ8^7s_` z!^8R;t!K6x-VD|Dp)4!HE#5fbAEd^7Av}fS1A70J5r+@H?OJrS%lh%>(m5qQ3z>O3 znPeHnL_iIP6@hL7hVr303-|8n zq?-vk3F~zcu=)ZOCW+6(DEH8ES?M<-b&$W2)2}}xH_xb8`q``UlKMBHy?+?K2R)_+ z+~Gf%M$(!$uE2k9bGI!K0IyD-wK=B&FcUVU$tUSAVm!nH5&?$oB>8Hc+>);Jhyqk8 z{#lY7%TfZaUAIv%El2R@L&hU8nBIy=vWqKC*%>+V^=-1COH_76fg!>Sf##n-gd-O?x;2r_Y~EMw7dIb#0d^3tUJ*j=ke|NmKhPFfvak#BTI$d$CC2u7 zKbPNHMOgqm-Z!uR4fULwRKTuI5r-Fa1U5rqb*+C6#!0n}4ccD@A8;5)Sbh@R3@G$F zaml7*i-SBhWuT(xdSSTdO|-r+9j_t1x_{e41Ed9I<9lR)(X-!?&>-{xEoS zon0^duYLSC&>k>q)4g88%_~8=d)P7tt8{JunWC)1cY(*t+HSt;p_w)f231YQ+%%8y zgdm104G~c=Bq~F9WK4$lk5Et56irC8kUUb8xs5&$4v>KqDZ@(NN|AzJD*<2ZSKFjlcAPo+s=EF$279PEB^y&Kq?%$W zD%h4bG%-za!t?D)%*w6QOSxIgy{f;h$#sh{PHwAE zp+bq`uB(ZE7TpD}G1?k9KQ`2@G_ZXxnFYwEv|ast!|-Af=)nTl2d*%Rw8woobEYrfPzKg0B#)QvU&fo5gBhEe4spgas?9(%(rym! zG|m6)&Vx2_j$_J5QgZT5_UnDN*yGZKefzamXyBp&fqyd{cabQY*xzTs`!sh#6p2gC z;>r}sOTPe;w<+9vFKYJVv>q`$RQ6TQX+Z&18NCBsB8*xlC_iWVIYor7m=V`#QJUH~ z@Y`s@D$Kt%64F@d6i)t=ah+U+SZJ5K+Ef!qtmP2Yd9>>(S;){+sG3w(t)}mVj-&Rg z3${&9I*@#&P_BE;$0nz8VEcG7OOAjg^ro*JwZ-1dzEW?sNFU;}O1roC)>cE(>mIxv zuw$->aFrnXykFb?@J_4na7>@+eJXX_ObJWf3fa1?2N&<|&=Bk~7YM`#FA^LC#`roOs5VLt4cZTDa|pG63^VMP|^mzR}L^W~z3Y`1oeBW~WfIq_Z_jFZK> z{aPuwwY*d{61DkwuvCN70Q>pn4iz))a`qsTc-ySDO$>2C3$nVFTyed36(D=4S!#$j zgPK1yWf_Rgc|a_;M%$1bTkCH_?Bw-d^SJoGAtXc+)Ztqp{e`Q0XY+`R^Kd}Kc(qAn zt5IlIR_k}PZ5S2w9WO|3*gs}s-!_?fxtRG^kW2M?*s6a9hq3p}-2tt_pJ;^!ayH}6 zuh07xTg6-NoSXMPSjA$~K}Cmu1HZuwHF<;Ww!49ElXOklm~tDMH|CqS%Bu5iw*Im@ z<(E&<+JY);$8hR@%V}>LibK2TsIFIPF8l-EVvN9^%ZttC8@&D=%!KG|_0Ka(i0>%v z?CXnFI#Ub%1of~QNgqEy2&gJEu$x%yIQsX1Tql2FHleQ*Vpt-qsdFHKG%ZoVlmhrs zw`ecbE&~`^Xm(Gn9a8R^quF0E=MT9GZ=m_J zkoSYTwleKtJ=|J%fSg7E>lb@MO>?)|#`DjH(lUBMY=mh9G}rK}!n8fat(#v!Aki}i zTew~fPjR$l5njE5)X_UqT_f26=HfUj*v$=;hIRCZgCY_;1@I=5Fpx4&S*Cg6iNHZ9 zOU_0Dqsj}OuDOMUIv&@9I zI^9+de~3&T%)}kaQ=%TXDmI2u44%l&+LeZq)HdzpxhnVW1oVQC6%uu7;zuPidxZp- zqwc*cuv{iZC$)BW+|u6cwcnQX@nNprL?XFKe?QOItCU(IsZupUZ&9I6R}O~YHj@CA)VU7YQ1EJIByi``BtBtsWXX-o?LaxR+$p@gDII+ii{z}Mjf;+1jUa9| zqy`x4t|qKLVft!2BN%mUh7zL|Pj`9yd*`6OSej$CBCX@8?ze>0NhbwNfPX)FlRz1C z2dCO;*kO3kin?iBp63cEE&04;G1D{&I2tjhc{Ofg86k~(GdQ|yDlVaG<-H&5`854M z8JC7H)1<+F?s5P1VncJ{mdX-5j%t%?rh&MhT1CMdwdwBPja!A>T7Z|3+>_7fDXaN zs0#apXlP6KLXylU7M-EskbLpcRAIjR5#`>B`ho*tr=@G-p!K= zg=tJtEseku8sYgv?g9+wi69$(YCP8X9&gH@Zla=$y)v1yQJ!b0@dSoX54Pd{n!C9f6b0kwJLP+b z{q3hXRpN~ah1Rnviry=CBjZ_?SV5Ls-O(KH+OjH3%Op?UfmuZQ=M1ticS>5Z6h&I~ z9PzDQcgD<>Y%m>fjX6KR_855`8$WMUQzg7DK{zDO@T8?EnJ~bv?8BfK)1s$z+TZ6X z`2WwopnjTQyo1(K?~O`#S*3D$DzoSwr=PI05cSG{@}{mCY9>MY zAK{vxjc+bl9H1R0-mX6^A(A=}NwAc27%x)+7sS$Vm_%WoZRghZp$&=(Qj5WN??gB_ za@&T0cYmxeCy;Rh0Bdn?4xGW?Qh7ZzAP3vTr&$KspGt(So$Z88mY86u2g%b$ocyPu zh!?u_yuy9s)Y;(9mS$m_FkXfNpt+0E!8IF``;m^LmOvn-Sg>D2#&YhJijd5Tx~ga2 z&%#X-{6(>IN{@?#;X1vsBc;gvEMsB!OA&Wl<2TQKq=b?7OHQ|$`b48pm(vWT$eOWb zF{(1rD0aWM&7o8bq09JiITG@}f3~{me?;)Q=FwALo!&a|8%jgKsEv5ADb}fl`;XLJ zg5XWPE!olJi35oN$Z^)*7ufb&Hm9DnZ=0nli`C;3zLVFy(h#Jh5Hu-isSA9CtFTP* z3Id0fwsk3&h`aSW52H84g;)||xFFgcbRo)Hk696$fxL6rdrohFcJ_O%1kU^i`^#oA zp{gwryFz@%e?Bz&zOkr>w}UnQ3dIgutMB4kdV~Zz_(-7wRh_<1wOAO|1hwlZ=D7bU z$3MsIxCoYXWo$ZoZo$F0GWz=DJFpAtNq{M;6bKLk%M3;syMD6)`(zo@UUeR(nCu&_ zLWJazRn>u&uait4ZT~*33fIJ5YcxC==!0M0viCOtQ=r%E(UYe4op-wv3+YJB@nRM^ zy8l)aUZwOwpHp&bmQ!2k$;jcOfgrEi&fVp#Py5^N%PI589~fukXhen6%>+J~sG5;l zLu74L+9s1kn_Fh{na-`X8~5wm`>a!ZP`ASbc|G|m0@NU7Q@=aeT$p$uNV7R2*1%YqC{<>`NKZjDq~;C`RtzCP29YHpO-`y z*CX^swqQu?c5iENi^epUf^mPiF9b_rftXpU9v-TAE&or{B9tOFM$Z8%wkyQ6N)6uTOIX6g|X_t7$%O6-$Vyft4OI5OT zQiL1$5CtCL#VZUOw;&)$ezonKusStW|66y1mzt~AzT8BnT;?KY@MQ#nSZC17GX;=6 zb&D@+5!;7V$Jb8bP32gdoAxlJKCwWRQFI|o_cP+X3w3=|#TUF$^6FYF;jXp7Bl1q$ zR9&};-UCzuW^M*;bLHY8EZ(BvIg99$0d(vtl7!8JGEz;ebwlKfoAm6?fqxIXRI>^h zdXuQzkrk@`DCBy$ChrN1l291dJ?alv#2;ma@N}+F4+nIe=6J7_cd8b~TExV-b3g1q ztb%@MF~nF#k+yI%4YlNvy8`L~kt?1Yd&2`f{eHAS>g!zBYFe_b9~uQ6lMlbs$3u|U zrPRo#mxRXccRXYr4W(~_B6bMIN^)_WHh7(?>OU*oAfpc-@oXjG?XCS>)We_)LCpc` zT26)^T^bDobP2>d5RY`vT7`4@>^kNq19v>X)7*EG^QQC`g$1Fbt#Z)t?fZCoPtz9m zBsFkP(*J@Y#}>r?%+B>+c}1V^%8;_&V?BZ!OhmMXNwh;wj6}Z{@Dv=-AmvL( zsyK3*NX055vKKtL^J&As$Yos__sMD!6L0xQ^8ij-L35lWJgnAHDghXmi2XKMOJ`@j zP82Y{B8JRmEORKbSF|ZV@L9|xekiUmJwAqb%aq2&`4lc9qIYYhDQ2>W~@+(y_n)PtUNP!1KXzOdi0r!mFp3 z$Rd7Q5pgk>GS0Qh?mPazHZa(ap(&eS(TAI;hIuG-gEze8MiRXln{x4VP4$QGfz`li zwv+9@AgITH?-_(*go$&pklsXs-4T(HJ1iY|WP@g=Vsr22n@f}fES&~R?36DwW&2VA zz1`lXd4=t|Q-2GJ676-C7H^Mn0C@e&GRAPqBncz0hX^W;>c;&jonMMRe5@;kK3%hy z4^@o2rp;0XCeIxnhe+n;QY9|X#RbLeOHcd2{{7-D&5)&p=hgLSVaV`&bq8`!FW_bG zNweKE`Hv-wpJHT#A%ijy6pPKkhPGZo~d(3`;X)XWww@HV)Im@yzVmbt%r zuwu!ww$ryeXU(H}X&N!&g`%o*%G5H;!VmM)Dps37we^Vn8?n|mVhE_M!ZHz6_ zq3GPFw(Mcp9HHp{O>Jo=Aph1sKT3%M-JC!ALU`Nx?~)X4q3tl}w0G3b-FP7t*v4dD zfU56<%mXk^0rs>>KSH@V9>gFQRrfc?myBABQT9>TRx#x23BqQF-k?)*qi;+xGLG?x zz=j{enuo&YKdv3_3*h^R;t=ykB}Cw>9}F~n+V{cTx$V0Z@K@?cE)Yu`#Px^`>pE$V z37la*AvGPNSV~3PbYI_+Vmqfb8f?pDaC$_E5jk(UAZB_ve_@ZcpHlX* zV-MFS{~=D63jCtM6*=NTf&vttHo|N3IZ{TgLPVZy9pv_iJ5G>1)F$?(i~N*^y&?}C zk3)ArVZ6u(X?!CTGFX369-0F}5Q#k_)4_?un7)1wvKRV6-S!>(@>K189U`^YqYH=x8+21)Ns=fMBC=`g{1ob#UIFhlhv${{H0Tinrgs*=+$R(NS=umu6 zZi7NYW65}}{{~?Kfk3#RQ{@7AbpPMKe>F?BM4rxi%+1YlaB%q4;G!Z_M^rtW_KoBn zMwsSk64MeY!7dSKb|ixnxleU?@;8A%hBC`$iuD(pPjow{9Zym$uYy(ej!CidlV3k@-aIE+!3n6sfT?v|+QX9@1XOk8)8m6H@5F3>ezc%2ii%xM z1w;NSc&%J2u~V8DBRhh=rU8r%qgq6ABMI z*z`a@o@wopc(d@tr0vl|sz{=G#Hy6Hgf&_eGrs6_M?O!An?Ru_b$pb}tfHDV{dnV? z9%PdowP^v$b{i$G0KBqNhBe|5FhUA+#rmP&gr<04I+O%0GtrQ??jFoCiRtzT;9eyf1)_G3s z91d|i1*Pb6q-xRNua{~!)ip;6rc7C}i{4OQ+)P)gSdf#Ogt>}m)+X%P}R?ybAsy+r~*%r9DN%Vq&Gfm zq|^#qapUh2Xi2{MyvL_QX>-~Gx$(QbCv0`SXIJl7jT<-sb-^Vc!!6cFn~Hh->%>W> z;#U_=vq7kq(B^@8-LFBp9$EADv-t*)!w@+Pp54b>4_~QF`XN{ZSLA=PBJlssiWGLO z5tWEplv=ttP)6Fp)*G0$JC8;>u2P`CL1{XZ@}WHDN;UrsA7HgqUERV8ZzhM{$Gv@s z1HocYJFQbekV^yVBPqR28j4Q^%*?YC-2Ftv*1trcMA&E?`LiIh3x1 z4TVD8y%eYVBK@$@+96bp%r>YfLl`)`P{^W(f5sbLO&x z4B&8zv<($9E+p<{_xp z)65qp`YLyuh^`s0A}-bk^InqH+_HSXqiXts=LQgs(afBxYfdPGDS0=lN_*`Q$Jq)(LyzdorzT%q(5~)Aj}+tWl|U!!*HW+OLhD(uWdP z357r)kAN{B%OCz;5{A_3m3K|&u$rrl=vrAm`VhXNsLF|!sW#3UR+fK)4%_1{iwQ%? z1?QTW`Q@YprJoks@4e8rk423;1MND|jO!}sPe0AiN{wvr9E>+?%cXJuJuqX?WDMfz zkF}TY+})WLwf(BVIA0aNMqA@R%0rAi5VrTWH$ny=g5$I2H`2pqG9AxTA?RVh)V`}4 zi+?6-@mlV~i||XgTnlUAqZV?nY-f^?FiMG5A$k|izJ7Ssh!RbJ{p9ha*GC8%9}cT1 z7uQ?P=lX(=A-LGs{Y9HZ#rn*RfaauZRu$-2;OOF`w?e@MsINO@5rQi9Ib< zPrI%@e5=BDB8f0O*!f%}Y0^`!>VX|8c&V78NS>Nm`5_x{)|l`R6o>kSZfkjBhM{8h z`aW%w>R7%&9c0aRCT!}ggGfkHE;-Xy7(@GkP@!~y$~pncKw0t?48;9 z!fht=q&tyGrs%p?s2+MI!t6?@N|H-IkYadj`e&Rt=!kR1b3@Gsad4Zoe5#UdUGu@M zedzvxC9ey>QL*{_t%iSJwCSO$n|y2itmM7e^z*9CR5@yHg@RqI7_^Aj^9`CG42dE~ z-c=UQp?D^E0&QR9>>ZB$ElN&si#%DdMj?Bd(;vCDx4x*%TZ z;1z^!#^{>Dz4QfR$#x@V(=DXmE8ioq6Gm}Oo`3X2Ct2kme&m@TTTX5Jt`Z(;PoxsH zLGqjuT<}&%TLMewx|VV<{reD}gU+YnCw7WW=i3NCpCVA5a}H6aUPT znul{Y_9>MNVyygf>=|$E*ZHB+Kxga_4S;3<-7h~eo}$Ixt?+ZS!GaezIOr8ilrwbD zz#`{eB@-qV#m_9i#kUo|2}<2yt~A8m9|~FE{%Zk3EVm54ZX(0i`^8hjz}6e@EhTkP z^}Ft?V?^bbjLA6B5lfY#0_j@Q$xFWxP+Ao8c9&zmt+H)#psvOc<##*^bfisYXG&IYrFj2Oed786n(l>2PS4Gg~gVsN$AoQZeO z;(x6%n-Q^kt5iTH+aKw-ozS&nyHSyJ zk%QF*+V>{42O{N#@B7N;sf(4oW2REF2duT4E>2Ea)av&y1wg~)jScQ1qVq7m zb|gVMSa0eva3Qs#(t4PE(AM89$6@{%-ZI6FPm8Qugx zg=}I{FNn}RCRSARoNnKg?_xz~-pk77OE9zL9Bkp)clGmT(9vN;=#R6zaQDytO%E=as0;? zQj1_YSJ&2l@lEl$&+SNT#`~-v&moR+eIL+bV*aukHuT-ID_FxFxWuwWcIeXMH)5@{ z(har{D$Jv^`_O6;Y%PIxZ2GLL9eM?q|IJzdZ|eGg4UG6eG|aTfnFgOi;8=RzgXh}7m6vND4o+HL0~sadi1VVPP~#H#6>EqqSi zt8HJ*e^rmM{MIZ`L?CrG9KBm!9Gbu4f<=9SwX#gw)RuD7mhOh|jzyHEQNjl*hLY1` z>s>aAnLnXlcOOmGKNB3aA^`I2#Nt>`z@M+fvVWAAerOc-2quCwi( z92%-SzWi^o_%#lHhx^PcAJ2)Lf4V-87B%r=YHE?_&sP>H3prpt&u{q4xSoqS!{`2^ zh83iEf~wAJ!1oyu)Ke`k6XN({#rQ_!Gl35{7nRPg-jn{HCB5$6nz)0BeZF92-Ly%_;NH7uz*Bnlt2GElOuGGQR~DOx8D5}DzSw^cL})Ss4EBPuo`01GmRmp`M#ho zItEIGDIhyL@GjP71W`}k;MUlGLF%X)nM6E(KH3O1Y~lS_gzw+65_iZ~Vd63Z(YtFz zDsi5wp^(*_)YDmh+%%dVqG!q#ouBZ?Y;riUh69qs8pXSawmrt%;0+Y?OM=gTrS+l} z>fgQTkf?*2=>)qSBU*qMFYu+6KMEx4n~^CraYpJ*^eF$WfQxt6FRPjeHnbp|1a%0- zx*p%91@?ZUeWw_3CjY6E0P?_uv5lzqh~s(o!?bRFEYFTZFIe;$LmABgx$6%n71>S< zdv`-=YtH*O!>f8Y1yPd4KN_ugJzu39o!zl@n8#5$tKAK)ZVxn9?@^(`glabHJXt;m zcmnO|TO8!#9uWo4-{P45UG~uk`NN|40D|}*>{HbL zhWG!!vpa@mJmw#8(}h{m>7D-{s@}0XvS{rZPCDw2Z95&?cE`4DRBYSn*tTtVY}>Y- zJax|f;XUvA0X0UA+WV?`ttkmqk-p4Ve}wEI-NmK9@k@mYaN$TvzecstTLP8X-FXH) z%Lrjj3*TQ0n5paksSZh(%XGSnD~ssNwZ6T!B-2)NEk0cAI?i~9YV7p`nZ@Nnxn@%_ zvhRO*qx+Ud-*)plai;D{?xqjPMHDxhRsx+2GQsY-4R}pMm+DO2wJqtKC5tvpC0cRWe|5_lQ0z_DPnI+87>{m2UT%7C#h2Zj;^ZNj>agh27#NEvIIEZ*3#}z3I~4-K&H3>LJM%Q0 zc4`l8lZ%CRX@OT@&k-sac&BLH8w@)U1Cu_O>@CNva?dl-&y}c+Y_`p0G*xypX`_dr z_7$qdQIzt&6LK5F%?}M6j4bg>x#SSPk8j!PqtdD>nJY77(i-^uX~Fh8LFWzRuVjv_jWZEN_3<8E9a(%*knhmH z5AE`Tp#(u|fwKL*I!WULHH82K-U{{8iCVAd<}4Q!a!k+uZJ*GnbS z_~Y!9^jNRfJD)G{0&`bu6L0j}`I`#$Q}lWJy1n1^B|$}y{FcXX>^g6O&5>Qej{x3V zanUgOWrI5ZD?xQXnn(lNt`7r#{ zX31*S3*t`GmKPo}w?@)b0rMR;hl{h8=Q(9JMSMzqJF^4 z8t1?}Xrmh`Y-DGTS#p30Wv4S+cI@IUV|g}PgPP0UYe>q56XuTRw&nicp!%=m@c(d> zA}E7Bt2y0S5=W}@I~#skmUHzP>H-N+rK@>71mmbS|fOp1Xd&BuE`> zI-uHa=Jhn=I4~V2#>4uNMuG*dVNi~d-fh+ukw>!k8V5bwm4u*Dtc8T$`VRH1>-lld zBKcwVsI@lB!2k|mM?Frt_4wYCFU34@Z&$mCzs7@sEJFcAc$Ttf&d$&8BMttq%wN!> z#Xj(xs$NgSSI{z*G@rOT&x)tiIBk*VCMmqV=U<9XF&=5uX9|RA7 zbuB*owl`saYDzNH<}uv}V>S*5+5}eQROdD!DFTD~z2gKTArAt+a%pXW%oLgV*Qr?w zG)$HU?@EIoV~b7=casO&N$#%rOP{`FKp?e2>KQPqe+)Z9fC7H7b2|4n}m24or^8SUsl5j^O&*W>kil%bbmL?#G6uZMk~KA(icWCbMWI-W_>=IYRB)?{T z4VDaF2??g&Aqi4>(WR=psur{BV7qzETdG|l^ z6Lv&KP$?o-EME6pd}L_oPgAu9xK3>WDg+&9bDo=a+!2W2%sE-4^uU{}A-kEUyY3G| zaPMG~ainH%dX69GAa5Rh{4$z%!Efs;KeOSHXtgzpDD=+R1tU)XsG2!hN!z#2%+}tB{LO8oeiN`@tBWgUI*FhOak2aS;D2vTf z#$g>oW^ZS+4WfNj^E}#W^xirbf8KA)265XwEwDzHvwKxtKx$&ev7Q0lh&At>@v?O8 z2k2>KF5KW~g%4zA1K%f*K@mL+zoV#oSj(<5M@b3cf2o=?Q{ur3;(FVeJk=gw*V|j5 z{6mp-ya%hwie^yb%F_wnR>YQbf=T@ORFQ zz^{zEJ-+7cwDxCGo3qRal-W~4;86)mW#`UJUd>bqKGQ$mc^0X;wC)j*hhi@*H8;~< znn9hA&0UKZ<*)%NtUidMk`>zwdgITOUsI{49GS=mm0AJ)lDDxWmtL%948KYxbiaKO zp03GCAPksx6#(${zU3L*m`(TLw3HZ~V^U|H9fTh(thbn6S$;-F{%ic|5Cq7Jxi~o$ zmXv@w1X9Z0?15BKkLX{w9pmR(5C#V0+|ZiqUz0(ACN0#Eq@!-6@_IId7eE=F2+o#> zFx1d-erKb;yvIEd=AfU7=Ji&CBa3{$_k82P6W9t@Qi3P`aUrws1Tt>-$I~gOefDfu zBoN0z*=dL4DfBw+sH9yjTOQ{!?3*l!%ErbA2cwB4vRTkb#rwmtp&xTIGx94OozN_# zq#zz->kqjn%A7Vm9`Ax*BNaHyu!T3<;@RK4%TOO+)FVigrQeJv*?OnOJ|$q&y>bgG zac}&_ZNlYL_5FynC^YdV=no_N`M#0xh$?I zasZGSkjd$4TG1RIc>aE0o6Q%4EVnvEwdwRnzs}h|J0+Savcs0psT)6H9pE&-DUGy; zO5q46`C2?6erzWtz1p-R8(((>xkWh`NKwe*=_#GDp!%bQ=d!uM?OfH*mFPs!;fZEd zZ5^{`(=x2U$VeE8jKf`u7HwbE6IVkC1DHadk)k=Lp~2HVXF{(t>1m8vf;-!LixgTg zu(~(oBXC_DA^O6#Gbk$Zd05Oe?Fn9TyINOj#!Q@kBb4^5h+b{wQZ#hR{~$A z=5ngSJ1JxD!sz#Jwtz>c{-|Ik(~N2`v?X^y`-(L{Q5WVkeTM%ATg`>{mO}Ywb!;3;I{uK#o(1pX=``R(D*t81_8=~h{3-XNrX;_i-F~M){~(9ZkOTO z8Pk!+1BIiv5$ArkqJ}7TXBSMECsRW<`Hed8s1keH$vg7TUEEDX1jX~Pv%!w$ zN&d+8L223vU2pI)Xx@>>i}>{W;*3Dq+;k!n5bRYUDk83Y^sD3%Z=P8B$QXaa3OeA#g+C1p6^imR| z;-}S4DBmc1bT~4Eymx^Tn?muleQ=Y7D6odn#_Q~4)c+qzY?B7bVhR-g^~}d(-RMzenTl&*4Lju|MS4MEx!MN=UWP_9=|VbJKQ@0EpLZph zi~7JNzAHg?01VS28wGau42P0`fhzMCpp^YAZHQ=*aldj0iGaD9&r*4_a;6y5-Xcey znZB-1pYMCgeb8loMcGi}H+GQ{j`ocQ(qJm<4}Uk@kr394l@OnGvt}G>W?OUrsHI9P zS90xjT)=uWM3=D!KV#^vVQBU^&!hzxZhy_c*=FdT>DSvTZYGMf#Nmwj{&V}6v&MAN z@nBwj%lm$$v3nG2sZs6J-KVe5_dbq2ARqsuCyZTE!OW6j(62^6LZ&C+5JJFAU=CPy z6jY-x&1kp9Q(HAMH8nLc(fNMWF+Vp)p3r`ntYsSiBLXf8LBPe(khu1XMiHdOK&e*H ze$L#&0(AUHP0t(cgSz|UZd|EE)*C1tIG)adBEdd$heHbchD|x^snPcpIF^!O+i~I* zIWtgfq;(+M!UG?MLYw;jmdN`i-)wJW+0`>zM>e+SFLfX99Rl~=p4HL${S~`5vhBJB zi41sE3@6lh%Vq3QEGWVdVx@O={08-<3d>{rz;o%{5kQ^9<#H-qRKHk23kYT}4cBQu zO!*U0JC_+KApKGi`PpzwqSJLrHuN!mQJoHs_-d2>*+M0NFO-o6Oc*ed%%iIw0gw9z{hhzo0U}*9 z#i1ptI!JqHc6=E`B;TYkZvTyxcxi3^Q@W`{IN*s>P`;xPia6Aco(f^Ig@?;~! zpdtSZa2oF_$F22%>WpdB_bcF2Xoq|RRXnz!-wDaH*#tncda_i1aopSs6%#GG;jpe!*Cw)G5Z?I+=U$#N-q8)$uJB}Gs=0N zgJ!DYJNV7>!eR}Yz*C}D9Jo3%lODtfSGE(!S4W4Xd@zuH-QMNcr(rzYAegxVf!lul zDtt7GcAB>nGndNKmyWBOf~1-91M+;{%IM#+nV-ePhRte;LQCuf8PKlB9!lzx_dx;53;@CX=)+wwlFX>lG*Ezw#q1=D!Nhmc;U@VK z3p0JWSjn7kGt-*0M=IzDocm+pPXx6Hs3#Q2{AZ8%0e-D!aSK&#NX>)B90{2|#sjU? znJ2O5sJ5Yg^?s844#EgjQ3`y7OORdBJlW@ijp9r+NTOBPa8S)ms2{8x$T=9=n>NGZZgp+LWq+OUS-Tk!eW2c7 zJjWZ2|9o=|({w()ujQ4B&5C(7HXxvHKrPWV+W|hf&le53=g+{DzAnhlBMoQW;Wu&l znqkSLi(I)Kzul%a1&{73Kx){%zHUP@9yrJ~;iXZeTrtPY{>FaHzXl`>s zyEr=k+o&(qGn3Xmlha4YdqZM96GziD(Dl__$kHFtkMDw%iya{Tq;B=EbPfFG8nWPK zwpqEAcQL{7JmzJ#DIA3+yv0V2KV&U4pOGV$qBTg+l~7H2b&ru1Gd;FU3KGYGA&6@8 zTbw;f{T=MLb^j-4`8sl9v-)fZS`4ncsjW1O%|BkhpHkSACw*9^*4}g8HC25;;)lV3 zCPRQ!%LUvb(|(}xPz+r+v|GXQm3r-uERE$$8z3AI<;M#+fR)N^J8A1TXya;B0ZA8b01pF-L>Cy7 zUvMfCET=9WAa!#-%jlkqtub=f1rnjcHJ}V`2`})S_^m^?=u_%^DdGkml8J~5MHQ}ES65cj(9?$+ zOU2dI=yWus6@+-ou8y30@$ie;yndpGkp<4lozlLDA+u>CcidYTLKH#u6yO z{rOj8=HaBLD!=(E}HI zW$&lgHkAszHz6RpbpDN$PVj|2F}Qhf-Faev30T!Sn<~BIStBlK2Dh$PxcZdnQVu$j zeJ%^dhb(i>DFY#-S3C}2ZL2sWr+Te=jmZfnJwjpiSVZH37DnLOu^7Q z3nZ0}9<5+xfaI+ig^+mzwpE8+;4|gl?!82Os;Y+w-G35fQqf&9q4_JWBg7Yqp%l6r z7I9ufy0Z2l*3$HCqz#N&b=;5dJ?iKGFeuTjS}Rd~?}a)#ojghGX}&DwFjC*w0tL+@ zZ|za55F$r$OAlOZomZwjI1SQ9DX$E!T070X3Otdj>~l@5o3WyVv~#T?SDQKdiR~P_ zbg-ci`L@BQTdTwa2SyfO1XCz17(Js<^ZC-ApqseVZ3t1**UT34BeAvwE7R;keR|4h z20_SfYQS8rHHxcNTqS#;l(XH1w!Y&;6h-_(;Y~-rR^G38cc50q zEslyr1!o0w9$%+-=dllskL!$U@(0>MZ5_96iuk|InL}kYE##geI7wkl&0T!!(=2P4B8O72ROdYv&sjUCU#IGY!g$&hZ zk`yU>d{K zR;{D7&DhO9mfo5D3gqI&qL4-XD_o!-XEF1KWNO?5r-9VNe9odkJ9=M#t_^_X#|9T7 zO4p?>$YHKQY^hA9LK3JR0dKA30v}2VGL@24$&|H?RM~$YYW*+X?fUn;av?Vt5S-6u^b-K#NeCNqZ7orxD+F%%K>|9zmd3S^ z?hXs4PMO8=5@Im4Jh*cPBAEQ(kRX0-1z7z&%Xzn1mrW7ow-GOo*N=Sz>Ms9>$f%Gia0 z#^b~-d4-#`=!i&#YFs8LGt8fcEpbfk37hMav; zSd0U&GFBVE@d~DbN#$-7P8rc%?8*h;2|iG*^)Rzz>~Y=dmA)NdA9j1PvkS;xvkiIO zf=On^kIU(?SWgbKMh+3*$LtYx--kZmwZ)nSj6n*})Uwg>VPojTmw;g82xkiFtJqIE z3(a{?&j+#sO1?UIcBchQNTd!b22U7J?*}seg!eF*aQVU@{!GY(8#&N8?r@6W`(OnV zgxj0p$v>FP zR8QsL;Xc+BUB+(H({Ypw*C|L({Qj}lKXTUrS{_h}b;lsCbriHH7Pu}MM*AyhG|_6` zw~pQCsaVu4ihpBH(5t*+p3C?j_x=Rs$F; zq<*uN!$oyJYz}7H;g{|2`kvTw>{pB;kH*}mEasPeGeBXFx z&4FvLm!_M@vWCps$oKSg8R=0MYcX6IJt}OiFkoHAJRwC)%>;Vbg8L@LZn)t_5T*wm z*~S^G5|o;8uMU626*9H;QnE1eM&q}Sn2v2ZifJ|(RXPpg2X7}H#%e)BepS4@beO2ETr05OxB8T4H~QX1$NzqX*Li=Wt2irDnr zhD4X)Y9B;>9mz%~p!&B7ZK+-5e<5ceL^#xddqIs&ll4m}+%1;f#-0_9vhF{8NSH|q z9RSJmYo5kj6iQf1melacZP)e#9mMv5?}dadz1Qq{Pkp%nz6i(o?!rR&fOj>Iyb9d1 zMlfF}ljJwtIRF$kqK-HF!McC1-}9CyLU#ZyU+R9(*W3Bd5dyn@FlZ%nDOpl{yr3tT zqer*Tr^gAMK!)H}!5ibp7@`~izr&X>e=VeEK*wgglJ*po8o4Wm)f^-}hxK$;+*eeV zUq@P0?T7nqjs?Zr&Log|A)M+}6zq(0OvwRjiEA)3nBjaI894cR&kXsITcK;SHI%=& z)n&K03~0r5HVx|#`5hgncLMUSO0^|9IY9JRly>QDk*pGu)k4SOZ?>M1EHF2<<1u>k z?RK;_Uexqw*KMplX!z_SD1Kf&Ke)**OEk*dj)&Kk>_bCtZGL$f_S3$7By8$pqTsg! zcJV)v+%jA@)X&G|Uerz2x}XPPPlu=KKT#Jgu#zGc&pYi!EDL;r9M)2n-b}&2YAQmb zXBA~aiid1L9=clpzf#%VGyBsk&g8!S@vNmFSl+UAwM{d3ICZjx|<(5wv_$MvbZE; z$tj#-7#z~>v?W?C!~X!y+a4I@c7EF^XUz@3u;&*(RyZW8YQJ3c9swKOuJz5#$+m)r z;3H9fno?{7Df#cHu@w0K8zIDxgF!Pak`TL`} z$VdU?AzH^VWwAf9URc)i>ynjgU-5NvnDW^6(|ILZtTko=FT6+U-X^2tWuE=Ix%26K zv`t`nFePqfxS4YJRCRBz3ii*Le7m`Ap*ix{Cw|#PfO&gxH$nF`;vNO5ODsmem^3%d z)1>7sncF*n&LgiZbjf%?Q4UHflQT*OuNLPd5;NaM#UquPM^?&S3s3wrauzu2Lp1de z?T*}V#)NMX8Cg3hQy!LOD3zfe-+g-T zA!gquZ+6jK8FvJfy`cQAr^q<&`&H@HQHJ8)ek+oUFj#H)JBWlQ+zysT#y6Imr|9BJ zUTUqh{pH*Sizs0|e-RrJI+tr_ndiT9grqqrlg@L-_t8MYmQuz95GDZT+d3RCJA0lx zmexF%t8JxsqJkb}@!%Ub7n@vFE>+HTuHQP723dM+MAxkR@f7ym4K^~UrSLwixE%`v z`^;L7r%pj!p00h2ne!gAwvEvBGLI*Jq-e=j4~1d;y5_%~bg}Gg;sF^whdbVMSnCTk zMZb>)Mik834sH3CC0h9Mz(RlX*1p3tWD-zuhxOb?ehkNmH#;M7cYgiYc70O&y9m|W z{Z+#MStk5_+_bE_o|Zj$RWeZa{!BeZ*E5K~E^{xj-U0(H?9+4LL~KfWHEA(2a5g?o zRQ(H1kST?-VW#n)qg@J+ANfuE5wZhgbKBg_GU zYdp0NsmD{eIGP$faSxE08rt}Xo2TXfWLaRx{j@ggU?(`;mEeqRcih8AXfR*z>;{wL z@h5b|C1)uZTkADLnb$@%xZdUZ);6}0ilG5dZ)y85gTd%u-rj4ivbYfbiBCj6XOWIC zp1n^Yhjs*Uk1J>w5_df$&71zE5Xzl>4cC4wQO((oQnt;Ru)KWmXw|JvMlJ5>exnW^ zN`2xG9H~Z#C2PE%Wse&p*@%EDSNy|-)mhhf=31x{4&P|unE(D}e`I-c4Q zVIAHtacf!C1*t3ukXSyMb=T%}S=dX)ZJ953gEx$c$P{57t=+ zI7^B-Bh##Yvro3QwoZ}RrUM-QdvqM;Y>L~`jnga2597)?_%Wu1%-4|Vxt4jQ=G#>Z zbsB76{G1Ewo2LqrlxSL_!!6t|`!0LvJFeHN3aYEy?n4slzN6jm=Nd6$Y8-obzmpFW zA(N!L>dvzHOa|fynR2Zk2&AsG+}s{_62i?1NF0jPUX34uq0r9E80SZKUa*u0N| znUciPRx^$?%q)??i)aS0t(-J5=H%TqP_ zLem+;biKo9)nf7QLQ(@fIKn;^oUrkkDTdH4W9U|kHL;>?`%+A1Qz7E)u7W@qbaN~f zY<4+gB_(6}>|Xe_O3cPnKkw)75|@fBr_HxfZz*y(Z-X@pbDNMSgbY`AHlDZRqUQvF zI$!>9NW7ZbXPepO$d(BSRE?yJJDGR_B@bGPK-j2Ipv8&yIQAvR(9jQ!fEOQ*K#i9^ zG!&0ygl{-}?4c!Y*AIwIuYKb{T&&)@sj1 zOl|Boo7ch1z3iV~W}A(tHI2_|^(xD|Lk>(q3YF}s}pqf-tbS0DFYlVyQ-V|!9-4fM=^;R8>U(f zz73swlzM-6wwb4sWRhklBHbIe93A&@Ul-V5n+hOvr8mWUt6}2USxyZ>%cmq?ivEqb za?E;q9m?tuhxfGZXRDw;KtbUz!lQBx#B3hf0`Pf#1o5XZ{Hf`}Rg}iTosL^sjrsp`B zg7v&nFv%T{&2t1#1*eYOJvAd74wlJFH5NCA?H}A98W*%A(tYRyyIFg`nN)!GiI;$Q z&aRQ2&_i`U*n_poJom?Z0akuB^j)x(JEo^PA=mm8brq5i!z3r44(# zPqI!q`yF-kV$|k7m!2YEUIa(R)fg-{r8jdVY}gUI_KaWOxZ|{&Q-XmixT)bqEK?87 zJb7AzP#;B$J*}x#*@lS3vTA-p!T^<-8sJ(^;1yIO*p3*$2@$^mg)NvD5XK77lJGX7$N<;<9#$W zxzi@YL3@)cA=2S@CC*|A+v9W7DVQo;Po81_P7(?fjohUUGq%nJPQ-jM4Zs^Fx}{p8 z$K{h@LL7lIEh;FPZ_%hjHR@7{8EJI$WcIlncfG|@yXWkdcl_U0Ge*#D{)@|G!$V)2$S!D%lRx0fxaylK4)k$I^@x zIky6DGZ1iQ{W5H0IkYH6y2Qo))FTcon~o`1ICuHCJl&pdT=-jC-jT4<$uj80LHwPJZ5r}w;P%u~M)EQ-k^ zMfYbZ{dI)wh(E+G8gQ1R#q7Pdp(~~EW(!QEd-fdUu4pYtHn2ie;<5TR&@GuQMU5KW zVZU=g9D;@rC?ziyq6O~jx_%E6ZhSN!y84zAveU z)an{aR#)#D-o1~VlBX>|zXKpW%%nq20yRy|LuuSY8y zu&Uw>8}$fM;yMY`Y7T`;5xT&kD3fJ-@gvxTI=5+e{fvpUBs3Es zhsL|{an+G4I$DGL1B$?%IQujd*L5Ka>CueDl=pzz`t5uhyW;n`S`}x*$t~pfM?;%v z$vyNLG|bb-v|cWnhLz!b#9b~4!75EYH~rpIC|=AC35@9Aw> z6Hm+^+GD@GmrspU8W2tf$&x_!eKJo@;F9S9Hl;BuoTt`$22)QrPq)fAw3z#(7pFrzO^{;mK1fW$60;8 zMwE(9@bz(k2_rK*iX$YK?Pl~kSuxjP-G1Kw=!>t;cjQ}zvkACd={_9rP=O;`xZ8Wc z`9on;`mqLQ#O37e_Nd=&-YbFUEKZijd297r`wv6c*HX) zkxk(rsk_dbG~wl6WaK$<)aj4Kw^`obiin~ClbJ0vQW-5*^q8~=R*F%nM?WT&&O`Hd zlM|?V%JCdOlTjzi^%`8HzxSM`*Qb{Rd87d*3T9XCn?*Z zNbeO^ik=HGKo}F-)8g@rBVT!(TdEM zcg89B?Ykc*0$g*xbG=g}rkqgsNHb!#@qQEqZydO61jDZ&gkT9PYKtu~i;Q^^J&Rwf z&95}bR1t0vBE|~toC+WEj?Z-{NBz6_c0N~PxQHFcuW7sri=TW*pS}B2cU^9h-jD(} zdDrkq#py}Mj`m6~&4ss`S~+Hjl<&uhogUXE;nde?q%diN^Ow*5-rn0XoLN>aP!5~5 zDs>)ir$$q_5l@Scmj)@R=89t{{P=XD2C~z|)j8I@9>$Z(AqJJE8cXwD1EfUI( zB?;&hp%&~#Q|{CaP56})Iq?{Cv>aa6r2fR$Ag|q7YRU3VIE>=Ec7z7?IZWo}<$~;9M0bl?suCHy z&r*kS@{Kr3#K00QquCpmpDZQAUkzShkvh7sLG$RzTo29lm^0m<>p z2E@%Fe%~6k=^D^?`1Hss43!*(t;}__md;(H>$;qyD)USKAZ^Od1nXU>32wXF`}}OQN7HlIIU_Wm zd&Bwu1>c0^EhX2;$L#sBpj|Dtr<=G-%EV)P@zgFtFM?2?^ka3C8n^;n)mgy)YkaTj zsxVvB*&Mq*Q(?}Z)a4lAz!7ALMEgY%YL02vd9U8mbjnLToaY{G zoS>y9GqHZ-MlCoP2PMMBIQ(;{5pPd;nP-JIO`)O69+jXJK36pAsLHT7eo=kfqH9Xq$Y(7c=E&=!VB1l+( zW9@EF3Vb>tD_WP$qvPk)((DRaZAg%cQ)0phLxUk$A7l+wJyUIU1D*q2n3&-F$H4T{ zA-(zZwD>&k{zQOL@=2!7H>%Jm1hPT$&cxlJO*hT#E#caX1h(MCFU`5xjVSc#&$vYY zYS#{g4!W-03mTTPTe+eAfm+VaFD41l_=~?knp33meTii2eh=!dubnvrEK|86qQ$?Vj^;oD5bXMZ&WYGp5`o3f(O5>zY4fh-UHesPjbpT$}%TjZawuKKeh$AfUXR zVh6@XS%=K-Kg&t9oQ*@gR)gaAMnW|JeViDR-itYK%=Nu>l&TG&59o@|n@d{{4={bW z{KnjinXBc1=DpOa1LIv{aL9rE)m2SXw!4kTi%PdC>(r;-Sy8}fb~`hWx1bGLJ=rm9 zac3sUw&r9O7C?>S)^p5Hi^=YW!VQb1UpO|lh*_1W6_keFqNO^hq#RISlt_VM(dqXK z5c!I{I$ zN8;OtHW39B$!pz(M*1|`$oOyrRGtK^G)?UZWLwK|%CC>%*L2voydc zM#O3^%tCh0dQiOxzdoW$sUyb6*=BM^5RGbtLXc;CF(YJKo$GX9M-96J=Pdjx68Cey zzD#GiM7zlVwSBZ}Jmk6NLp>P790ckT z7n}Xr5&TY5uQ3<|76Fl5Tx3a%ktOGNRGs8ZucGhr+mk9iwX6V|6kC;ochr(k_eU_% z>kk{PaSHXLRS=uU85hVO;<;EvzZI~bO%LSGbSfCbzMa)h;Y^e|mSV1T*{~VuPw1aD zxtovM8F|OVpXjhS5&cPvfXKyj_`Au#@pr^uJy=G7TPirWt%^gu2VM9@-S8?MdchEbNbC(R zN_#)?Dfyi8-%+^ld~+J~>OgPwN{uJ>O_~}u;e$McoSr&2#g_EjWtEsymF&Ci^M7zO z*_q!*^Hok_a(Of(lF{o}eC0MScm`Uq#^6WI9}XH^d?w4PQDVKa+t7nEvD0pcx8wnS zD&`vs=&$e5k&)+mBw}=bus5xLrcY+DmlPL&9s7P!+z;Q%J-K#dd)-M&91-exL0K%Y zVfzjgU6x`}(!ssnD~Ae?jEd!8?2^v*@P}4g!Qdp$vZzTGko)^ILSfJ1PNx^-Lu8&u zd*~3SAIb5Cz92bu5m`YJi^LUd{=E)ZZYDnAk^P6u(Ntczdaep!LX9QaaSGDGXBi`L z$D$2pW@yB}KU{u?(fn{vAZS<&V;>cJXgjzIA5ZpML5B$5QB{9riSvvE)e+!IB;}%I4Y|wR3Zz3Yol}{Q*~^MO!>U0twrFz2<&L;LH8Cu)iCvGB$kO*Z1kv zkt9Z4c4`q`L7`Up%l#wH-vwaWo3p98gP!Fxl3p?8AejwoKjohW&sZSga|s9M>RPq{ z;Pc+wDTpQ1%mQBlFtK9%JEM9T%0RI<(Z``^)i#eA_JU94+#f-KvA+dXI*X?7_8W23 z_UUCte>U}}#(}$%kad|!BWh(L9RJnOC3ws;QB{Bxd*Lj-R8R+Rdpz3jRag{iQACk` zRH?Ww5I#Row#(!$tiz4oeq?Ncg%xHVYOPmlpLe$f|9Qv%v~Ffe z0}A>h-Mjq&+^0_GY1OO+o+>3y^jQ8k=e9`$P|7l`hp!zyA&`z34or1$LJMssv$;tY zIu-GxeD3x`C+8JnI!e)4_p{!A#0}qGo-3}r^;YQPhWhYk}Z>%_o;{p{hFA}ry9Tu0*-)pj0n%J7;UQ06~;%}MCwb1+% zNIE-wU)=_qfE5Xj^LHJ#n!JFKF{oy7*TGq_f1~`)wK5)5uK;nk>nbUV=Q8}|4swXB zXQ2P+i56?F#cNOnXZSM*PRUmHQ2^%G7|aAl-yq2d^4cMzWzar=n0W!FgFWl9#&A%! zWST^_MVKoHHLR4BPcD0vAtStk#x7?3S42F|@HLnXMdsTkjFPVsW0}@3$Ccs7QrSxl z#@l9-dEJ_CW#bs`QKmWC$I&8#WDD8R+XE@?HNGC_$Cv6Pl8zd@Sh!O2^zUlxx&55V zUzoPs7CQU?!EejcoIYu+g-iUGgWoB-9#kYG`)WOJDxuACFcSf@j!(`XfU&<+{M{#y z7${Z?3zII;Oc&7pYmYx4LvSf>&APr)*Ed`3K^t3wR$B{@=d}$P;+A$+-S5NcFD8W4 z*?dY4>_Y)Obsz5P`@dup%46Jk#bF!`zFSs$sT7Zu-wzs8zj;zcb15BSp>AnB;PcxX zM1Zx}H(8TOU)a<%|zgVnUd}HP6v`i4V|; zYqHp<7@WOSs)n4K?z6*x!nxp9lrU41ix@$UiI!V=N7)j=;HiTnZ{%>-cLwr?HIZ9m&D%EH2nJrZQfUh zyGm}9L!>^pY_r7rL#LwTjeVjjbRL_kZXwmk_J>@Nk%!XO`Sj*(f6%&a=G`zF^H=LZ zpXb;{j)Y!NuF4`wd4Y`0%DY;}<&`DGy(+(?;+A zz0dpJJ^Q}(2m0%| z<{GnRjjB=9=5rYn4pLQ!0oTiXKd7$yNLM@KlSIrg@=L=m|Zlw5vDSFrxc$|b0~xaRh{cJItE+Y!7TiIemUM0 z(8PGDO!c(0mJUf*o=_)8XmRRC1xJp4e_Gzx$M=SjbBV4Xpb_sHmI_pkHf##ezJg#$J&plddi>sf0RUhn&|mzp_O zaF!x63YdYZDG0(#wHyaY55KNh7g&NGgIO}BE2Se)Fw$}fCcyw+o8p>gW0_bpy zot1S#1N54s&+KOl^S6n@c0gbx(yU*!zYA0emw85eH#TluxotwfBZe$ZsV|ua8|o7| ziezRXJ&`n7^mr_Z>qvU2zk5}caFJtg$DbIzxmW?-$DJroax6Z8yAHk63CzQ7b2l~Bx(&{a>lZB25$A{Qh3uA0xs zUSs&ppC{juQyAReivG(SdYRgA7hSO$PEfyhHXG2URmeSFf6TMTZyQ;3Nx9xqny{Js zi!0(Q0ESO8nG?U=$j*L&RkDL6FCvTCI2j=O(w5A;C-SCU@aK6sj^Lx(MJrQ?Or2TQH50Q09Vn3A$x|ICh#F+kp*WtnB;HoF z3jE-#P=@mPXWo2O2ZyKK8%iVNFH5B3o(Me-7s+kXbVUXmaHL*j&ZTNXR7I(Ry z*2xIcT7o>PT*RR8uXG!+Q0cj`U!lvo-A#v;spf~{gb=i*_Jc!aP6A zWT|L~9fMn>){LHk6}r8~!h0aB~jTEDZgZsd~orhYY#WIW>aasd?emB+8J}EZe9*-Ar8VO$x@CEboo`acX_Ph(cEo=8;LFDFLHlDs*h~dey&xDdRM0RObzJ zf8ixx{YktEr*4=jWhiZ}Km3Qv-9FyoC(V^N27H;tP2ERx*|`q;TWR|7QjJ1?-D~v$ zW=Ce}{jXes{cv51;I^dhRWXc8^FsBMQES2Z_`}eam1B#=1bC;xtS@te$cCKtd$;gP zR6zR2b+$SB1?aQ5S4YB7X z@H4|Nb*|*DyRSsvv=aNIwNBBcDqik1|2XL<_s|AT6walPe6~I~5!%o@T+y78+>iW#^Mj>Fp^L37#zi()|SSIHh!Gs4=&Y);6 z-Z7Wi2JK=qbjix?nEC{Gl%EQLYc>;b1ELI-8ktmm?a^t0HE7S08OoRIKgn=^Jt`x; z2f^@kL6{=9dX-yrnETBs8)wp~ibch9^y%DoB9ZCUJa{aVQ7Lu{J*jQmxlXEDB@smzn;ixw%Oe z9L9;Xx{fw%xA2m!#u@Q6$n07?PGg!EDC4iE9V=q+atyAij~6T;vW8cqFHH=b(}=5g@EoHA8cX%rou-j}j^2X{q4Q zYKHLgM=49%U5u#Q*?*XG`LtFmHO*Vk=il9GdpxU-NLu5KH98p{Rcfod9qY^#9)TJ5 zc0D!q*{KXPj>_k**^250YVtL7xrCdZqS;>`b2U%02=&~^4n+h>bqRk7^U~Jp<0f3+ zlwCBa_Gf%Pu0}&(pN+RedM;v04*yJ!bQceM9lN^Gew0qBAMpv8S2Nes1=1YM5*>~t z;1wR63CHOesL^R7#iVo&1kD{iT;gDWt2mYGTrL=wgP#+Gv|k0|T&+5X4)RjF+cvFZ zZiu5&kUCDnEk$CG zBW(I|;9W_(+2J-eja%Al+?!hc#fD00Dgi1{oTdq4(B=jThf{;vE;5NwtdQWm1DaXo zv|HI?I0{)($^BdHNJzj>-@|G~ng>?m0EvUF;7XbI7PH-i7L~fVG?>+Ba#8DC3 zD>>dK%wTwpsPLoKos!q^nHIH~fVupQH8qpU-ljqQ>jDO8o`rl#zW`!_{p0?hA+;|n z9hH=x!nr`FDF!5iCr<8y`dT#+qH&KS`)0~RG!0OUg9BrL!nNXWc>{W$piy0?(Nyf) zi5Nb24{f#1E!W5FGIF})A5eeR1cvG*5UQUtgjb&KcAk{9S2X-6iajzT-aLcbI)u4j5c{n-*eWdk5J2hccL_Vd zBKv`)lC#f8Y#!Pd&IFNU2&x^ZO9|Fyj)rTdyz;I(xLaYTB#5S>t$EHr^W}A--4{bA zLV4fzN#RYf0x>w zs}#t=nq!ScC!15?=%hZr5Vdl>=eGY?ZWXW;y?TULF!#&YOxH_wrJ*ly^y#7)?Ud5{ zQLp2}dFSbTaUI>wFzc6Aa#xczUunWcWR|-WOW?5Z^o4ITiN3L*&eI^2Xs%b5 zZ2%yDl*z%tyT%yZ&5SE%xR8UC#;o=`6~BEV-9uPZk}&1TwjzUhTzUiyQyAK4{Q~GP z-yL=ty+hWJ6_l(q4FjX9-ME7%@2Nc4Euz@Q%HHohYz>2&4UQ*$ru)C5CYc7j6js{p z5^xS`ymw0sub-yD<`*U5*gx~cQv7z172T4qq+Tvi0 zf3ws;M*UoIffsRHiky+Ful`XZBL&&Ktdrc4pt6I$rhhK(q!9u(qw`rve!kx2vs#FM-*BSScx<_$?y? ze$mY3(1rtZA$KrNNhnX_yd?*oeN%z~)zhc=t1Yxp8s5EK=rWlNEIRJ(UWM=BeypHZ3SGxIr3F7)I?FQ$dNm4R%Ps~S zT84lyG5H?E9HGJrV`q=uJup(2KPjEKSOFJqw0}&?=fV+998yTp4N^1y=Lr31b+PRv z$8Cmf%_T%mY%HVh{~+7lXR&CEfkc_VT|xSf+n7BsBsa{y)f^Lc44wqa8Qeou$wyVE zv|B>WR+{#$++fp<9=Y6eEkMU1-am9bEaIZ&uvS;FBWQ5Hr*f{-nJC`t{)~~PdFF|< z8#eh1RY$6xNn(=E2%ll%Dc{w~F0xAe%W&M<2m2FPQRl>z?{Nc=Yh}vevlwlvS5XP- zy_zG-&K#0^p>I!qpTHHVZEN>%YrUiN(@bnPwH%8d#7z1WXy`fCy%w`NZHdF>b(opE z5{3W;37&mo=jiy>QxHvC0dzr)!;XS%ruX^-((!IaT*Ch z!$cqaZu=w5`YmjB?Qhns*x@52Ora9MBufj8SeflRN8lzT`*5g}Efud|QYQNKB+iDr z$ptv95UWW%qd7W=IreYO6#DG!xtK;2qLnoTywH(r9@FLV;5g75rxHB%=51>6XkycQ zDBKXC_-#Y7&Nev}5l12ex1l>qCh=RIqf_hStGrD#VGsXwo+T3vDP?g*#oR*;p0JU+ zADg$@diy7i8}wfoR~D^L)~yFqcB6iuteE&-rj12y5yiM*hW>)*y60Z4kA^fkHMC!e zG(q?1UAk1Z!ddx}amu((AUse~d^34c?#?uXrF(cYaiZ?KCile#lu`Mp!mBuCQ90Nr*%`O`0idv<-1jtLFfEm(d^bV#;}$F1!FxTC$HgGZp3SQ zBHoVAKndLcT*48t{-f;#cTd{d0!K`lkL*%^O#A@<#mDeS0nKN5W?#% zJw0B%SHw1t0bBS+wm7DdN2$D@@Mkom>q!nS;7htPk!o(jj1?E~qt4BZ5IXIv30-{W znvy#QHFeZ28+@`Y?1 zyr??)-;{vUB;3VL400bzqXRWyMOKwkJNO?~;N?G8enObRGcYhGUVa40#^jnwz$8dlq?6{BoDZ+*LT>f8Fs;Hv~eT zBT_l-{Dfm>8CXyq9ei>fD5qK<#upn8)|;vn2xn;Lr=(m@a8CJy2XGY8H8{5fY87{c zp=gmURty0Ml}cd~T+x?1FJ!@#+Zt`V+?c+L)#y3VY2UhjJBoOgDh*LeRxoKlo-fp7 zZUi%7qEOf6(Q8q$$`=X;JyhTwnjPnrk(^gMHt3aWHC{qGf$nHRShHm%nh3^} zo2(J)t{7bU%TG--^1y&x_CJ>zh_}R57$?~!AXigjF{dA*gd-BDh}v)#dPyW|OKI@u;@soK z7M)P7mF!cUA3-GHCTJp@S%Ob-i$K0|X55{T=*FO@wPWx+P()Dw%Y``7lAvVt)ig#4 zck*{T3ojBg=2{1v%R_kgB&j`|#ynH&P4LDLRp^!#zXA-l?PVhVvnkR4wJAm0sCB7d zC-FLdLWmoZ=TuQzsBq>e+AXd>e^FvY@KHOyx85^~d+JoA+oW2RcGHD=hMe&v%`j?o zvgqAy%8{q>tR(uj(IMz;$X%X&o;f6EH(P}aYzkWJ5XK*| zwf{)1Li?0iw0e(r43Cs$_D(^ZwNhOk?QL%GX%&wID=aeu*8PSe(0M-ja{^JE2JibG z_`dbY8_DAjK?Z)FVp$(1pgzMz1mpbOE-|3#ZLRl8>vLa9+Dy3$~>qler71LWfr)QJ+Bncl_jIg}0D^{Mw zF4moKgrLaRvt)#)lEmEzD5I`op}~Yjcy!KxSg3!PD3LF=^K!fT{g=&>oh6bfceC>- zf^C=|AG9%0!%3e>e)jNZQ&(^`|J>1XYJ#zd5B@_9i5kBYsNs9|toB)9)`@;dYswTX zGk-aYkyB#wAB5a>04S9~2qiPhFd-B|A0&@xp4Dc3%hS zy(QJyql<8uirNYcP1IK4KSicLgyGE@h+P=;XcTBPVFVHh5B_en@jx)X+(`xVT{}Y! z^`VT?D18JAW9R`fbF*59O=OFjQTSZQd5&V*ZPBBiKW0;%VZ8gG-h z^YrG3X$u(FV&Jl@ZJmkyG7#6M(Nxe#v{^)pmC7UM>$<3n#A%%h&>0!i=0G%?{9Rc4 z>u!L2x37YOaBx|ab|$JxQFqgZf^&_xP$xc5I%2hB#<(aufRaj@IT=~s;&#|I?W%`e z4TZ3k>&0L88~T@J@oZwRb`+6&sN-s`y=4KQjRIG;ve^Yez!U?Pys{4soRoc7UIEXm z9RtT`~0_;xNe=BM?wAUTGn? zOEOg-(mqYnXU^NB&bj!RiOn!-F>z=#5+nN_KsDkCB8W(KSz3XmU`ArL9vo{v`?&Ep zk;2avMrQD8nhn9avBr*P)dzbZ43pYy!QlNr&)uH}eI%ylGKoX}d*4nFOkdeTbn<|M2Y4nwk^4~Mpzm3as6 zr?K6a+Mmiqd2}&rx8Fb;yw%DdwE)3OUKFOB=~}Kgz+bfu-V)(UX|=3oSM<4^uN*)@ zJ{ggrT(cm(QeSiTIb{21UUOi*$0`j5GT{;_JO-#Ic@8WKFG!+yE6=y>V)?*Lf z*@{#!3p9)T=j@m^d(jHgjhM;p%g)c>}B^ZDSGr7tS|5t{4LS9jYQYtd4O4Vq?d$I+WH2R=|o&6iXiz zBxN1hrcH%_;Ia*NOD?en)(JlrEzd6d5B8jN_&c-**#-a~uD~}SldV%02rwF>c69Ex z3t)5pw1K&xxEW1=SWth#Mq7k+C)#&(izi~Y>8C%MX1}x<-uu(r)$Sst3EcU9SxguW zv^NzLRtzqEV<9f(Z_F0J4D7v;YkgA1ne%^G@(VN+YTD|ke`APvs3DnYwo;s$g@15j zu#13WR-vZN3^s@x#7@vS=;(`0JS$zT;g3P?tfH-sb~OYw7&i;_mByWDHmEth&GVyc z;=U1nCrLg)AMazbO^(wUxrH-}r^$Z2TA5i={MsukDAUD>P= zpR5kK25D`k5b3MlEa@99dwRjc;bi}JNJ-3D*vD;eMc38aYUJdL9vdm3xC$A-4m7tw z8xGc$JJtSe%#a*3yWA=H`4l0<+(sTiHBBAX2LUWm7+@X7BqJP$xrI22uyv~1T*~8D zYf>HYI$6Qro=R@u*xeLgzQRwLTN{N8kzRzQ!=i>cY#dwz}Vb<7Il@Uz>#2@0+y$Qx-f;|3`Ut;9~+VnNwDi=g_q=)~1dCaLz^X7i&n{di+(bHRNhD$sK8TYAZTIq_Vr zN83%a6hww2ZR6LSuf8N_!pV7hmv16wqQOdYuglSUU_!;)@aa-GoqnTo$VflmOX1*D zWk(~4YVC4mHjWw6DkK?vNaE5hm@pD9MWHOV+sWj*8$vYT+?>9*VSlmCu@(3}-aBs5 zt0BEDsnBB8b56f5NwtlY?K4@A29dvw+r)PeR5^jUssfMQ!jI33%Is<+|Ytn?D5|{HU0Q9Xb8uzOwFk7 z(Lv~c6ISi~9gWt)o6Y~8&!!3Uj<(=!V3^RJS!@ZTdw`}#np@a;x)D=*=d^qS@vsF1 zs^C`^0&8GL`FT*4Zi;=H1O&fc!$*>2n%&pH4Y8V|Lx(fRe0mcN(TDXgAIGKR(8o=- z-4vOqyQ|2SNGxaSaQeRVL_qQXqYSIn$)qhnI#;XwpR^L>jYI5Pt_KoAcV#V>3SCQM zEa@8aVC`Eds5$L6KMmv)P4)_B;4(}49~ccK@TgLssB93!W^|B%JKPKfOWlR ztSI&TjDdvgE3DMLqfQKOSr@IBOn?=+jH?4oou22l15798o`=$(4^_54tq?^6E^4}O zWzr_MalF7QCIeiis&N=EJCW_`*E=uj5rmYr)V;%XuDRe{vjDYj z4~7^e-bHDfdNnb#4k|Q)D2xTkQIiB(w_}faiPUt}aSuv5mN~+XD%YxgRWw-fanJGs z7Q)URS=OI37kS%7)6FMnct@yi^@*c(&QtZ`q&UGb2}BFY_*Zc;GM)Uwy#O z&Bq+MoHjAq#QKNw6dO#_W$fz_Fh<~6H`;hqNl`3dDn?jdRx*16O_RLcCzt8@OVulu z?M^x0f&v@2)og4y(bz4hiM_+%9lBp%S<#3Ev9Z{uvYZ0l*n~yUiuHp*&qA>=tJl~2 zRYc-`5B$A(nXqLEJN?^;7;1Z5OjAkR2v-A|dz{fF_1FQxwxeU$P}N#|LKLVD3={GL zEdHzHxI9z9!4ee*Qs@XP4j66X{#V50`Zgd}yjlOm32zffQp(SafGApm9>R=~6HG4(myN<+uxUa;YYc_*w80=gqeJ!=vbvM=;SWW~d%vxfX+TO<*4a1gG zBTSzne!?mvF|Rhd;63ZKwfwf^DbcC95#4_eCRbsrh~3o(v&wpnus>nSev``viHxUi zK`E{23wxzcjc;8(mes$VQE8Ro^Gn9-ewkM)Wcl8=#bz5zX~>^KNeOZ%rOSmC^RG-{>@|7c zR4%}dbKN2cIs?*a6_;*i*E=Dvfre49m#OfT^Z9QtF=@M>tPx}HC-e(1o@uX2t1pt4 zAyzBKgLV&7ErtymwJ5QaEMl+r741B_gD>~#@((8D1{#}u0=_1E?mGW2n3Dx6Qz;Bp z!SOjNLt7wAWCW4$0VNOW+CFj4tti#g38@ie^R^I=@W^)$c|kYqca|1-4{@W45l?!tfDID-a z!PoAhA=$7(#<1Jz_AZ@1$bj21(*sV3GjCu5J3Jf2WM^%$kXk9fBe)Sn7)Uc&1;cdK z;R>9uTtdCja$nkRQ2Q(|b4N$GXuWWGh@#b^A1wSlQu7P0e%x2^;LgYlJ2fq+s3HbkbLjU8Us&<L_|>?puXV@q{SD`{D6nYUynmx zA6Mj-3ICYOfWf<^!A{FBrz!&{hlw8i7upL&L)V_Argu@e@5zC3$?O(`~o_r zV~s6*?F^F54#uWYhRg2Qlh`z+7{`4JJ=BA30qW%sp2OO6}M_Dk`{`uRM&PcMJT zMcqM#fVGUXQr{55Vp?pk`fNMv4uYj= zeq1wh#wHlmH=4Q+OsgL3(qFdy2-{d1?Q2u;>;xY{dS5Bw2)7*)+QT;&nPRgyJp9ss zIyu%;m_1^7Nf>#dZK>K3{RODt2rsH$UM9a%9OOB|g_2{Xs4_C?QnY_@6LacZLiZMg zM44K#&JSg)9;T^baSuigGHAfGqLVT#{DO~-K}zm1B%~hy8C@XF1#BOY{;>Zp-3Wmw z(~Q<`%1x89&K>)PGS8h!zp(%MEhPT5#qR0uRKtE$LjY4sUFO~}e0wghx~Hp+l{Y1| zT5uy|$nc6@)Tx^k zuNS+$NkQa^4Q7;uIHMRR4KP!w*DFA8X*D^N;fkljZ!{`LOU0k^St?5T1YYuXjP3Ze zOjQlzJkCZSJ7$vaQq=l%U=Az$=j0lGJBwn5X~{T~d~}4NY=~?w)l~Fn>@qQxmSM?5 zIro}z1-ru-WqU63&y5a0>M`Wbpdi+*ni*RjTcqw(9kt!+vO$pHDVU@@>t1a~YA#F> z+3jrOo@VD=my4O?SRsa;d*}Wm9+HiX(^y)$`8=7u-3>TUqfk{pm|66p?!yEftSYg+ zYy>Q;837Q6WrM3hTKB8JB-=BH=Q*k}pp;}=(MT?cU`om+%2&{&s_+B21+s>UcqP6^PC<8!?s6_zk+(f&h5qy3Bb)A`omyorwPgosrz zOjPadxq5d%33k==^!V$1tj-f^Cl)l?I&n&lgsII?8#+W>j)k5$8T0t6`hLr7VBcVz z>(u;t%c_L`KDz;%hPfOjZHr70ADVq&(qRd(&r^i@Ij7XfQ@6)#0sx(nZC=fu_HcW9 z(-Y2ALaxcktgB|f595~RN7RY_Wr=TpPQQUP;f3#$zcN+97hFqgmd8bdTS~wEA+-Vt zzD>9oZrdkDaNrkbWvuNGfaz?+F;_GxyU6Sj$hWSP67YFn>!6yPK*RR}*r}goc>U9B(NtT?PnjsPC2n%#;9+W+kka){Dyh#VfPha-gPF&WD5 z3cx&ma|d=>^Bd0|FtgDDyAj zPEPixVqRl6RT)8xD=IO4P9lKucL>QdG!GrbCvCb-=pul}unqXTM@VW8p6kWJXH(I< z*;gC+|Kl3E0NA;%VkI!DdCILNAyrLTEwfXst=I{ul({$JKfT}WBwcMj)#saoa(qb( z-P9)S=(f;HuH?Miw$)&a)t6AFtROY^p=gGXP+qjofWk zZrv~O&rS2Ui&9PqK3#px+^XqlRnfJ3_?rxtXAw2Ibp_p+FY8vM*nI^E&doEPt{Ivgi zZLQS$yXvQU#vB@J&(~p1>f_j*I=n8N-AZZ8kpvl9 zGUu5QB@oX%1XZ8D(Kanfv~kyY*iK|7+QXw;C!7wHv}ZEWp034<5{yEPHQtH5x{l&d zX*)F6Ab9wHUFHo#<~3-v6FC-dh8HcH3W}>SEpTqg2iH@^|B7&3-)!>6xkXx2-_@IT zZ!<)g3OMS%{Pa7kJE@FBsvzD9Qd*6t_TK8U+dUgpchbuj@Bu!OP?y`JJjbc% zlpT)r~R3(uO9>ll6NY3uA*VfX_4Jy-@} z7C4)7rlb3EH=XL(ezV7~JbDrBL$p1r+2}uvh)BN4Fmq>dZz4Hsqew{Lz+KG)m+$$# zOJCyU7K756pyVE;l!>D@1Y%UML)hx1;Nu_NBBr@0+iJr%`qp~>GNGdNvoM{`Gy z-`WNC?lhFf*aGIBnW9&1h!x#&G&CJk-FYA~1R$+-VB!MhsD#BSC0nJv-fKMMGvm!` zbVaP*gQ?Hjp7dze3c=QrSA=iZE6noW@i>$+hNFdw6k>oEY+!4F$O!zL0d5W5PKLVK zEbW0(v%7LPJHBx4Cufx;qx^s@gU?hR5bU-j96R9j`pjg99k+#3toj@fWHTQx4QlZbvG@lsN&4wF*OQzIs; z!%-C48ahdTWnV8IzH5^`0koXrsyMD8MfX9`B*qvB_Y1rtZAAm2?qd#pI5uWKpkzZ< z?3`Yio;GCEq1r#%9z=|P9ha`n^XEoECo!<^m3DtW^mv=?@6y0#^o<6NyVlCDFquDZ z8A*k}b9MTz*#pL8Jj+S$woYVJf(A6-jw`Fl%%E+Mpa>ejp0Q0UzpSuo2w(^0x3Qqu zT4h(ylv$gGAUo9tL`$3~YRw94oYvkIyxO?D!R46fj;K+?c&EJzNfOg2;TAHZRJ%sW z9lm*`P5(t0tg|PByO`jAof)`4Q(xQ6UcBDi-(Gv*lG(CAv_1kxkHBil1S49Zfs|@r)cO(v2W_!T{GHKR4$A(x-ea!r2p{C<3%g!L92Cj?6w7Z7j$p*7OAj8Oa%1t@*Y8PC?GL>7bF5qnopH zLFIewfcgv7{yC+ZvT5GP38d4HFxW=Z7Gt*wp>tM&$90jyW|Doh%I`R$t{^Z zrN^H|<#jjgt7C)eN0M#b_9yaD)*-q4P-duXr`ef9;@bEt|v-|-ya zP92*O^y_{@+=|@>X`artj~Z;U8Q7_msAkn%0FDbCd-ELPLS4uH4Y*0bVL{NU4mS}T z2*tbBlC#O*Qu5ZUt-L=e;ZD?0PsjZ^cLl(UxxT_? zk7Ds$wDMFILlWV9ABy$^i+)i%*T!4(KaCns*VzB|`g)s2UiDB!eSkg4t;~6|m1YL5 z$i*Giq>JWf#2XCn%l6~TAFXC13(d!&MWK$@;lImL|Kpn!p%GnhV&& z)URNKo~Lx7EM4bRmpFyb{LWA8PIkd9HE?gx#dtfc|3kq15Cog(*wO1W7wUNeA`(_Z z%tBv+ZmKC}$knd4iN5>cIN8ioF|6qUh-dOi9**0Bi#It%N zulz2mXSLtQ#A>mRc>Xkejr&_hkSxL0lU;he9{U7|^Ht!(|2LQr|KH26gN{dTDdRQx zz_R(YPO7c^{&qdTmYLA*eh{|BT;QVr^j5Ba^WISV3^$L6CdHtD1tpNG9hE2Pmf6uQ z&&cmMM*GtsGgAlJpuv2TUqWdMI_`Mu>M&^YAv`1m?px<$Zz}cW`R%kHX8M_Wn)i7| zi;B8&z8-7=XC%F>4aFh4$B;Mw0D5Pf$lJnAvUVwNw`c7mh-;_YZ|`D#sg2wn7jS(< z6KivRY*H+=HWeD~e6C}Dc~N)Ar4M6pp(^h%xWhf3E)n`Qqxx5y15wIQ{-cW`Vk}n= zYiOZqFJu!P{3W6h#-4yAJ#r~!$Lcf8JIwB1zV}rE`Km#}S#mk|83xa*rm~K^nv-c7?xNo!|4y^Z)v-c8uckYDrUvbtw0VUp{W&Fcw zK`b^m%zdBUcV3}AS(zhCr7`--5`5EGbdFn8sIiEqL<(HMEz0?SH6d7;aPBo+wObR; zv#`Q-5TX7S-Zd@?b?!ypmk%e3s|!I%WVH?8cjCnVb=}3ZEvljJLj?SCo69{JOLB;% z%?Uhd|ITcc@@$=u;T`zd9JMTL(GzOZgE)v+^OcKuGY2csS>EQw=c#*iS34-0GQog) z=-aD*jDTm166{wY#xB@e5f_iO`3&zem`!EpK=0LTZBB0qOy>7FB+9>?U2fn0D8O*2 z*tli9$-EgSFv^K%ubredCsY!{U`sSFpTLEG^^9rn+spKT7+1d1i0V*AWndALq_Ea( zJgY#r6{>X*fw!C0R0Ca*)?D}$P;ICPP0mS zeW$X$&jmY$ggVR_ssgszo>vL%H?SrTZKyFywcyqd+Cwcwb6mT)mOiwFGCkJK4wB)oOrOC!K#Bo>UlsnXXh!~0P}BerP-Y-PB?Wq3o+vb ze|W8}*Op_GE`h$tbW8lTv_qG+01%{S40j8=1c#zW1A`RDEP(ypE)T|lnLg_6VtM$g zHgjbTu_aaVLtGz=3V>6lO>_+{g;RaU@P}&Y_+|NBY|w2J`#oYGyrRqhYeku~vP~ZB z8Zd?xe-$D!#5R>jh}6u6QE%K;1A5x|iJR4QQvshm!H#M}t-ny9#guAyPUn0Fz@K)- z8;h-1ebH)zb(UJ&z(bWE<;q*fhpt^V z8{}nz@+d|4io;4i?Z3cD`>F%{&s-N<4Gv^-MAoxKOeu9vn9{$H58 z-upM=FB;>5zH{goA+(diBu^jdCSWqEfctqiTycK+4hMh9etz}|gOtztPcHrF`z;%7(^T(I!?2<+YvYaV`GM?siaegbax_ z&gnjB_WOOI5<+bIJM!4kS!nt8`j3q4Z_>%AX&Q03b~K7^Wrm5`0mO2uug1)ojCUxxP< z&M-|+ZlCo&Sj6#@S29ux0)x?%yjkD`^Wze@Kk_@d7>aCbxa};U_$>6_+ow4q!3(f4vXL;H znKQ9S;oY?3c_(csk!CS~gS;o8A)?e*>Ap->>&JbEn=mdMm~G}A+`hs7p_IBN45;c6 zsmHH=dZ6jAY+RkGU;2SPE-STm7q3^K5uZmx%v{WXGejv0XX#p=}{Np)nbHZObw$FtIQC&-4l%2EK5p&B!cKpa|25Aji2aK&8Kj=$P#r+CiRSZl^Ua${k@+^7Hd)&KER?_xE)*=B=smFJUbJ86 z|M1fCIrxW?B}=9?eUE@}h-0$94WOpoL8*f-Tp?YbwP=Jh%i_Y7lf(jvnLz9GoF=cDF7SOH{*y4ZC@_hK- zB-MwebmUFa8Z4&b>8a_7D*5H%>|wiI)e&9@F@C^+S;8$SVA7iD$u71BWwBQ=p39Vw zcg?QPPC^5)t)rUvSDs5_67U#12(_%vC6!2enc(c^>W!E2ssAQ8$TCR`6RHgnQ zT&4BFSU%}4Pf41U8ibEIZUI%e15bI4&!L;Tui$%+d$&%{$HSnR9<_6W1DLrwQe(Ee zkMqnJ#|e3C_^*GPg^<*Ux_MOMd4VXD1*QSWt=7du4jS3WXP`gTUB>(;p;En^q|*w4 zl}GOKN5BA4Zxqod?vWQ$h8cl-kY*dJ+iAj(i0H&&m)rxuwfm#d*zaR0J@7YCtD)qX zz(J2%wo&y{CXej{Z|vp=1Yg<17KtD3&U0r*e5y{iE+*v%T;fuiM=5v%r@}FlN7;-2aBI|l{6B2HWl&t{^EMnHK=2S`2pU3gcZUE$g1fux;I4t- z88o=N2X}V}4DN%w4(|4{+5Nx2-KwYRe445`bx!xWTduyk`{}|riYvpNtDEU%oLl_% zAHgy`Up`wt|2VG8XuFiMEAVxjU$zlY>a#rEGVvks)uyY5`_|M*e@cxuKPs$sQ-0H!r>yAcbCXA$Lm8nxl5qVV0JvW<=r^a`y8%3v($&Gpz z#A98r`lnTXzm(kBy?H84n{XA*$vrWH`=|IDkO+(~_O&EpB!XU@%FPL5J>|QM5oo*j zdRcg%jR$F94t9E(2rUZ7!nuyyb4R0-R}Qv3jZp1dYus#0j_mwyaF?Cq@Aeouwv&TT z$rl4amMV4vosfr-E75gcOJy0T=Rq+`{Rc2<6B|8?)N@7 zUDsn^(3s(E)1pZ^zF3YRgT&`M-#DHKHAG}+J3T#PQ{K^|UCoVp&7-^Ol8e<_0oKkR z20ke#ccK*o65ZQC>)Q&dY`UK%$kPXQd&Aq$*RorB?Wg06?JnnP!N(7mFG~R&8@Gc< zEg1aH=ksHpNczn3We`O$&p3u7bW*OV^ZcSw>S?mJW6D*K5A)xZ#3BMM&W+D;7?mFn zo>kvY5T+PIi310Z7rD=7`j1=P_cjSgvfhu17n=|7Ad()lj$;}X^8>1A;7&TNPS%b; zQ!FPDFY&po-i_O)m3h;(aHnNZ;19EBjoj0Q_?}OMjm*hsW`znB60k;rtaUxm7}{X> z#}5Uj`uQ!>E0MG%huDI6Yt&X{e~d>It}9> zPVEu{L4RD_o6h9W6lpH+m9qbcmpV5=k($?ZV@P~h-LEJ34kHiS-Je~y=W=hWuaB`# zIsI&0X~&xQKSA~0xX2~*8qR}EX`BG-S65Mqzqp=W3_a9W(@lv#tzhQeVe7%;^D@6@ z-tF?~(94O?)A>J>!-RT1;m0f{s;V@k2&~!(15uQ~q=;V(&MkQf_vark`e~erjANJ~ zu02-D5nLC|LF~n^=AneVEZTVQY{wU3Y6e_Vek81!%C?@xa5S1RD(s^X+ZBWvay6kr zoaqP^3@k5%ws5F!QkApgzUptdG~+3leN0JwZJSFiW}`p0P}jQ;fWpwbh|Dw(nDr3V z(ZznMCObPL>FW6=&PqCfFzujkL#irwcPah43Z`Jwmhtt$oJBf@=3Zu87~Y;b0o-iw z8d%x7{%sNC%`|sL9EfJGoPQkGPt(Au-Zl}P0NiM@u9WoQxZpD{!qrw+z`$>p4vTLT z!mDnP`yo;h32(6u=npk9XJMoUXXy%g>L{+QCZgol)=Z$vxzDF4L_hMi8QoBeb|pzQ zX?yn7^M z*MgHy58Am-IvJm@%Zz*z7}9T6uMn-k?EN~VyJ$u|7#|1riBk?f{N-kY+$sL86@B6U zvOe5alAvW$>LwJx^UB8HsnuR3i28Zki;%W`x-l~vC2>dZ+u-B%NV+bwNsuy5+X73T zj_7FkNSe!TpD<)eKsWPvNCWoFh!BW6?L>fQ&1ohH`Uv7tR`45*5aiy;v14-yGS03w z%+v{^u8!VM8mFYC91O5huU?-STag`-$snhys z5*f>JN{y|;rkHr4{PQUvD|>RP6j=RTX0}stu`@)NODliB_=LvE4!TR`Co@0r`AKKQ z=oe~Jo4U3+)tD+v3r>v z#HguD|I(IFEhteG4ULAFl!gR3?Wr*%Eyt{@4XASKPvI=Zm!62i{mQB<<5WPNH88v| z*kkt=$TUi9BK(yASEgN<^karn+zP{2^rL1lnymwML#TDP^EE#FoJ==v?~2vQlNQN{ zm`jBde4ab$1jDTwZRe$SVLB2Aa@LZhn;C;N@%y1kv+go&ZSkaZlm$0hwB5MZpSmrn ze{I0%Q{Fh`x~z}U9~m*{M&cs%%&UI_JM#omy!W(MeAz@c8N{)*b2>nnyiN^bBQhg8 zl(M^(TfLYoOX{wVjMVcvNf+5qB?irce_A0eA>c97Rnkwn%ZRit1sMec^SV|0Y*pV$ zlFHM6=N$d9Tu48TMG!=4^q{=H{LMQ)eDQsN{Mo0C@+GfR}MOn6K z-P6YGP)vtU6(;7PHb$GW6dDxsV9jh}9lgUpU-hsris#PqEN2@tUA_L5_ zMB^erltOEh#ytn4Yxmxu57wXr++~-u1E$T$W`-*`oKNc9zoK_r({Nc&=JMc4*763K zBt{%$FtY)F|ESwlwphK8W!a``7Yw>35pefC)SfXL?VZxrCs27(wzk^BrnbdW);Rds zoZ8yyS2$kZlWtX49X>*2=CCasgs-!e_P0Ue_}6im(C2O{ zl^Xxj;_gmNfnkm7Ejy3cTbPCLOkF(ftMs&Hoa;ST|!`r{i?Ya%} ztj@Z-%~X0nHyGra-=!(=$|S?v^x-412wXAtD}WV@Y5DLMLPXWEF@2Gi&+4)Mt=nO; z&Ri8<_z@9Hy|>v(l{zgg+`g@Zr8o#bgi%e~F5jvM;>Oo+b@`JcTN9ql5V-V+DxJKx zC7PENbFDCMBZN)e)adX?itdXRA=yBLw-Z^KS_C9w*WbJnLMx{HkYOG#0=6zpMz0AY z9e52Xg1Z)c2oA2P$+T2^K)F9is%*@5z)OeHNj7BN#BdkJM=uMph-Hkw1Hu9}Ax)M`q;#6!C zUZkmN(2i|gj3|lg<#%frdl_?a1t*-$i}rAL_r=D+iJjH>C!EWCd7PI=r){1v4@cf` z5CO?kBTepYKDpsGlu0p~fz!SwU%E<(Op+k-Whu&Z{x~DzkFfUiYaxR#_p6cnWrS3K zFR?ddiFlqrL5013fwgxPS$pOwzp=Nt{O9ni1;C)Rl2hj&MV4wk^ zK9Ymto!oExflQeQ^SsO?Bs}wBr8QX&)%LSibopg(@kD#uV`VA-M@naD%gJiCURJix zjWF$8UO2qczaBUddBJiZLI0t3Et~qL&0T_e#ZYt);~&;WTdo{cPlJ(YQ(K=_dZ{z~WwK#PJTip(eJ@4HOxI&N-@%5}c0T=!Ijin$KW+ejUAOuzZ22e!O<`|I+MT z$sU(1p$!0mcZUp}0dBKv?r!4CX&RD>pvP=aVS`9M!TF61k7U8tFM*Jvd>ez#k zMv?JeQ+P^v+P(d_4|jWOl(Pjq@zf*-s?Dn;UmWy00an|Pk|Oz%ch(8nDRY~;cvU+e z?f6`-@AmS|<6+|V_qP00Cv{LeHe44My#W76pO5z6XM)LQJi#zipbk)Z@5#+sp@mA2 zR2V}9Tpb=g!cHfWZUFIoaTgd0XJxqs^iqdvOR-23o_JS@Zdms=-uU6IUHL~$+48lEn+fy*8MSaak zGlwybhI?INj7r+QHewOatHu{krhEtl;XeRAB^y5Nb?2~+IN84{$Wb&{rD0GV$@+TQ&g#9Nid~q+j_}2IaMe1{nOWz^B)o~~*CEt?+KO@>UnzKKH zc(chMiU#5V#YkvaL=_?o*8{VFd@*2d&VkY?2n*3R?Y_Uiizrr~a?4Ulfv0zTFp(hJ z^h^BDU1hNd=mQHKNu_J}$8K2>Hr|gt46p}O*7a+fowV~`*Z~&CM(izlA1|$2q9cwb z#)c{!Zkv&#I95K1LebyhF!%uCS0)S4`BMpXWkA1V`=ABr)@gV;8a^2M8f?D~8w3_8 zn&}C>2?TC-ri&gis>WS7^z#r&3A)Tyy6&y)5HWND>%!y$#V=p6+|RNqcq2r9s^s4} z&a9JtaT#Re`a1ozTiaWwsVYqkG)@eix5vjL5v8LD_~*>Lf>Ro(S$nF;BA42knjtg4 zzm2qvsuND&KGrtsvjd>gy>Zuiz89Yuts9&1Gv~)x%z3E9I*aVKZ`L3h?aYG4S@*KR zszVBtB!Smrs1~yJyxPD@#A|=)Fij_7q4lA}S>m?eWr+_6kH?sd zwxP>a20@j-{$`RwE9pGj+%KveDvI7eT|;d5GAnW+Sk!c!+`ZaHz1I-rdyMIk@}8K zxx3)nR+p!hKG~omw z{uEaGK8ZQS+zeKdp(X8Ft+LpJqHVb)#B91x7l-cktc*wmMVXHOt!n~hA24TEF6gJV zu$-8yQsOcCbQl~sFG>mBDlwB0p4Yt6V$PyM75OOsLDl|^BIdyjK}OUHz>LzGodV1* zqdiVb$w7f3(1+mSbtUY@8Ec*!Fn0y?xgg^)B&f5-L@QR` z^v@>-JuAMlqualDxY0l)iykQr|bKopL7VI&LGv812R8)UP3! z#1+L6#uZCSYT{%84?lC}>N*!jZgpCC8(s+1m1Z*bja3Q=!){K%&;aP;HyHKTDI1CKv^Scs?6ORPRO@|CPLPQZ!@A?9=nT9513)A z@FdD(Dffh>BGhOay-d;=oW9PhbbNgQ<^*F3)OWJeYjshV`z8_*E9sF2my%fBtASD6 z>{qWjX9~mn?7oN~xfB|y@RW8-dpTOXt-vJ5DIe+6tnRL*^@YIFWR1&cm`;56JQmqs z)#T7-M2Pc}AL^?~Isv*EBL>_Cs>AL0;(Ez)zs`$_FcNhnMe!A_PY<=h30PSCkjc}} zjx+}=UJ&8hc%q-gUCgX`UMz+5@@L%$m?siodcFuPK#i3sFY=>NV>hFAI}DrQBGCDB73MK#}aVr-&tWy zcJ6DB(cDT)=Z{9v)emL+YlRs})#c;G8x1XEOq3um@-HV7>h{Azt48~X6MLg)q}>RH z8fqhVC7kHOVBX!d6Sl{prkJ$XV()DR*HxMkLL?+BUAUEX2w8Cb6CGFHrft_t7}K8Y z*05u>%h0c_p>qV8!DPU)!3zvmwN!RTaupwCoBQd@a(w zj6@X+V=d-7H-lI|G7=t{1YhG3Fn&o*`pgSZLW%YutxA?Th24+zB9mfTeB+imnfhi}9@GI#*~(iLgwHFnWCY;(yNg@K=W|#AY4Y_ocJ{3J*;h{PiWP^nw6F`zNIOf-)pn*`DOlcK%?lj1)IcV zrsU~fcVv|he9pQ##8CwF0@$F=#@r{=R)4C12pg^>7N&EZP=O5jU*Vbd-`QGY55n6J zwrC(vC3v~`ypoM9Q#cN3d@)=bN?e%DDoAs4r#k4f)mdeRg(~P8c%@=Gy3$j29ovSv z3WPmkw#5{#gkedL?65EJIQP@z?Q)Te{3K2cH;1BnRwHV1q9jY)1|cW4LgKQg_IclU z^uB?NqEKuNW%&XE*vPhx-8|PpIBsv;kivaywTaskkOX_E)69>Q;1J?-ce**2k@09q z7Sh7kK8(q_$kU2v;f>pc!j=>3?#!!;NSxFE+{WwZ=eV5=77!A(olI10IYZvF2tWt) zyQ%u`3(KcrOyLTHwBM4Tvtl}XJdB?q5k)F~+0n@X9c_X?rp`To#RU++&a|wQevv+m z?-VM>v*<5(TvKIvx|urIVG@!nLfl!I++AKK~ zdZgfs7AmE{?qA$9NPBs66DdiO*5WPpdc?-8cfX}kZgahMTDM2v zm{UI?GEX2YGnAGRuTiehIjN7A&qrKy@`~eQl*MR85!Y+~89{}jFcAFH%enx&NX7ri zurT_Ea&hnQ-HG}O`KP7(f%Ud+!VmSt33H@+*}4;;OUzxo^qw7DZ?(E*aw37 z5wB~dnCUL^jrck1h#(?4Q&*&XjKxkqPZN^i`&VSQX6OP<=Zsvz=cW$Uj}IlPTeU6> zHM|5x`Qpj92F@JvLui~amEd8f5%#h;*xz1nDE;du63rr2nTawmI4dwHiOSZ>cgHG; z%{X-VZ~L6_J1xf)g;BiuTzWF+pPvxJ)xQWBn+7Ly4W3(<#u1rsee}yf<>L04et6RZ z6E^Zbkj?j!X84m!b>*Elo*HcOZKo#bTq$ZwBIjtZbBl=xSlaMqIYa+dKXBriS_t~! zNkspgCG!thf&8xwj1BJ$&@6KG@WR5~7;$o<#Hu<|kO;)@9nchL^D^Cxjhmdx2VJE$ zshu#Za6R3LSD$L~2DX*k*eNBI>m-?a=cT^KSG3^zN?x(`?@(-td|dySj)`d8g8 zt#|HLH19sB6nyC|NJNmk=ikZ;T za(wM8jx3xkgh-odY^|#qvRNu3_D<=@hmr&+<9n`DYGc1ir}QHa;-ot_jZSO#uu7RU z5PPOiv;pDPLlKXZ6(h+r(sHXICkcu2#8TRHvsB88OR7vsc(O*@UY#W2sqW^r@I@5& zGxg?G2d0CJh9u$o9b%vu&S63=7IU@&>@Ch0C*n?>3jSI$rPKvysX2ES-_X3=SW3-; zK-$Itl$FZ)7DAYq!{8AG#zux24kt~i7qD`?``Z57ODP2zM!RrVUr?I4G8VObeO2|) zc`%4)ZqomoYpF^5of4uRS#a^zeTmv;$0+pZJU@Wt58(G71a?Bc0Qv2Bo$4Gd`J8Mzv87o6?_lNh zJ>}Qg;>^MtH7#XV{ZlD|=i@FtzCnx?MuZIPjibS+Z_F-E>suehy5fx0`Kx@(ZnHu_ z-F=O&$&KTbNhb(FnJAb6pWLj`6q(qoc!(h2{)-lp$EuhgHgXXwg7&)`)#b^%MUDy* zK};>{mBV?Ygbdd$Q*-ohdGVO*vzg2P?QY41AVI>NSAcd zlqb~t)np5$a{aKeMFI8pl;34`w&Vw;(}-J;UTO@(=qrq(BtN@rdq4cVqBiR$;!Crx zuy<(S$FfO)?c)~Qyeev}yaeTNu&0-Iza;2~qu5jDs)ky(mnOWL}ZAJlnTgM z3-(OKt*9u1OtO(So3Q&D(gsHKUrTw2R>ahFQAIe+O|z$yq9GL$U$4URAajc`gc@?a zC39X?O!_j!4VR-Ul50Sw2Jb8OfxvyGdlF-#+G;o^!Az6&$Zdqx(sCDrm6<>xEYat^ zZW1$}7!hx;XEi2XRa$s0oE6;oSbg82y){s{pj{+t>;^j8O|I}eth_c+8bW?{Z&f3uNdprz4?Y3K*b!EkepkR)*9^M@$)O2(n^Cpxvu%aOu*0N-93fGb2pc?J% zh0~k>b6foL;N?D;y`ty|-uc3_d_|^jYVku{Q>IG)odcb9(an@&+tuy2CC4Xx%WJPp z)lizrP_VD}eT;cYrzrsev53V3GtDt;&Shv~GRSr$kYqU6g$k48TMY?;L%MXt%69@M zwDKn`V=R2#cy1DXZ+C>D$?j&9r=zNs#P@rt_bKdNoq{+0L)G21z21J4l9eLc<~7Xx zsBxG$J`}n_+O1=vgzaBT$Zl=}z|?+2U4@V^m}~aA?9w)w1NuK_m`U&TzfH0EuKde- z_4iJ=eiIerINV$aeHUNL;pIzrq=n)5WL1pvmC@Br$3cUB4 zo(#I}4?6I;t2?${>Zo(9S)d6!XDAL)z*+(NBBZYvs?tH46n_5-YrZ;BB(i+uzGfnd zm7v$qiRw0G2Wt)r0gDasQHC4ahTiE2+ogFR-xOoe+s|kn#vLNd%?`Em2E8&Lp(=s!% z6t44XY+$^In|HGE{yW7gk)sE@gSo7Oo41n58GoJ}K&Pt25YQf;0`^ zmnj&d=fcU07obIZ%PV?FgCxT9Ch=nil5Ih7TvDRT8ia{ik)K^V<41BJ6CJ8E1G@7F z!qk++<)f|7`m~GHOHV8|AtzzNMEHfABnlXt0cU50D3KrJu4A#2MerR z$N>;~kCqheyrGneE*XD6%y|q5`r+RGGP16sxy7H_Lhw_!DG&PO_{gw?6-!%+^i=E` z!ex5@VJQiuskYbq2*rn$wSv|DB;7sMaDz=bmgU4{Hih@&*NEUUhR)5b=J~ZN>x#ev zuWis)@NpKjPro*QVd{(U1R*C!Vc~0nhgDXs89s#zaGN7^ogwjCL!WIN6pN@n0_dTVYb-xIzjX=t7CA(G$h=*Qd9YOJ- z(fvi0HZ30N8nM@EC<>{V$c`c&3^QLz%+o_lhx_B;Ge8#hsS9B!1YG-A1QR=m1nw&c zy0^E5Je(n+PvX_(f^v{fGUr=}T^wGb}E^RJjq5AE3=BYI#n| zx>H_YBzHFcLL~s@ecVf|x(EpV498nyZb2(JCmU2(xeDJOYe>qKKQaWv3s{m6)hc2# z&AUWJUcpmMv))3q+9HK#-3IvcNN)PK$N6}lkH3F6&tXz#Q$Mo^4Fb0wjQIt}j(7$$ zw!7|5lIgYcJx31VVf6Po{@kX5oF=O~DD`K8jyuLz_JEe``#-4Ags&k_q9(~^$*73%Vc85u>XYGnEwHsVjri9sv&mPhxE)c5GD&~ zo`I1SyVyv^=UXO<2$+q&@HScd0V;A1)|`65M+WJ@gS`+AqQa3c9A?a<0;L6Ai5fsd zdv1<^(ZI~NRYO^z+YaDqZQmjjA@5D0BL-bc>A_{r{^0;elS56-xlc8dKAmXRYB~Ll z%&^9255eH`X^3R&QF37W-pL8JbmXr*GDzSq2Tlm$v1bH#YT|Y!obSf_*7vOxZj}H%xkmEp#-%(dx(7?Co5JBoPfGb2d+;Exx-W zdvIuUQArE!_8u3@p(3uwL^=FU$WbpWI!|y1#kHYyN|?2&p%xAy?j3$zycV@DD+zE| z+%=-r9%ILU!hU^V#ub?RF3o!CYhT>_7?8Vg1g!{OkC%Nypw9PvZuVsYBhi*l3qkK(r%oYK-Nn7Y}pY(9( z&h?&o{kXWCI56GElel|?sQ@@BBG!ftj6 zXlsCpwJpn*?(cA>Zr}zKts9S9e*shM!%LU8@28SD;38II`OEKs5@2Bk1>2+YtBgZdb~QV zT$u3Fd2g+Dg7u1&7RSld2viiURe+K4c=Ei|yM@K~RlLPW`g-R7X?86#Z{w*HvjR<4 zki(3E=`44u9yf2Gfr8p#&@3w^FOj{X0{Kf!-1U22?F0AS$)pnPt{fO*chO;z`mV8N zl!y0CBTQJlk?VRtmI_;Bh z%~=6O;Gq4<%DbMMm%SyND1w@LT5q|n7Ua+fb)1p|_hgDsBj|8^uzODbI@@4=Uxm21!K@h#dFuy zKI(=i?}7Gep4&@LGapxzZQfc(-!j{6YVTv!P9-H!SdLLIm3#`~w?FpuzqJ=Q(ZH`y z*&1a1i}}k%;C&ACc92_~fX;kaaN;AXs&-{UzkM-m|W4j3O1pze-2S}+W_sMz5&T3;AZZG;AGf~T4#N9Th2v8Lyr z?JqBGS_h-i2yJ-ytGu_zj@IRX9r4XmnL?lly{R6Fq2s#WRLd*@TU#sC;y~WzN-k&| zo5lN%N_y9{&n*w}N5rk#lJfjn5A zF5+Q!@$~T8x;QzznA;ehJZ`XfY264Ft7;I7Uwj8lm|`bSMKhmZMe(Hj ztv(iW%$2!5ClmgovGfgqMm-E_;&z6T$W!6<&;g!5UM$=C;?Yd+qY`*x6Q;+Dx2@_d zKXypK);*bWW8o}QIn`G8CO|~b2F34CqY||q@@WPN&?UPT!J!?f7ToU0m)>g2wE;z(Vw$OnS+N3h zZcPVQoviw%4~+gMXL4`%H>v;E>wZ+Nu*XndJSxO(slw%DSxeh|6ZrFg;7tgf_uPQW*w( z$1xik%udP#-9_`chDsy1ruXe7&IC0UtU3(_)W1zy@FTleME#q~w9tlPBIDexXfQc* zyXv%SZGQXPBiow+ZyH`us?M3?zu$zyp&{o6%y`l*8*Pl^ubc8L+0`3K zeUmBJy?F1aRz-WJL1%D)WA6sFuv}Mb(N;x4r7LAdn>~TZG7>Rfecn2Ro?iW^t2jLy zU1zE5`5<4fx5TTV#WxZaj%ApER++Tj5RQ+QD_mZ0 z(LO%7Vy1?7uGzu#aNkS6p72+JVKdgZzS7ZQii?eISGkr`OfNs;y0s|w*=Dp)yCLl6 zPE_fOT|7=o-;>cYGwW%3IS}e)tTCDChfakzlyiPXwNPxyL`HeC-lZ{qb(C_mbO3K= zsf2fJgu#}fQ|rfibO~K$Q1ML3m}im~{HWb>iQwe`-5p}YXt6XwKQoe|FX1(5Er0x3 zPv2U%ap&41@5W<;?BPm6`>BeuTqc^QKCrRR@V%&UO)I6tw7Xgb3W-ek>zj&vGFgaI z^_g3x)6n#KV$TXp(%5X%pnbP}q*7|LO%tGF(GmRvx(MpyVLF-au;#VL?~~TKoVDp@ z2$UGLyjXPPtFvWS3TF>z$AM>-3OrUrdf?wwkpHW`{Goy*e**W0$XbhH^3j4iBh*`FC@XrW1?7D21|C(fzSWq2M*80&uwRBjAOv7Ws*(1|lXJfu#JS;QY0hMti z5PnNLk>Qy>dq_KmJMN%$Q4;mql}{<$l|#rvF;F7FaE?M^gD#LaWVQYyTm4*m_R8lR zUVfC9(czynByrngqX2TVj=g70PS;M0Z|k8P9uV14A`#aRbG>g|P|2JT*Q^45UPjiX z?7&n-NSIdz)TJ~hyxs|dIV;~YZ^4Vg?%n;Xk-kN$LCRHS9Kp+VUM@2R&V=| zYKaXTXe#3XJ)CKE4Hu3Gg@#(-Y%q80_&tGdEEt4WCUUeky?a|^AZa;BK{jq=v@#1* zF>q#^w}x=+yzOIOHp(#+mdwL9r-whg$N=*QTRRT65=$cqs!b;`cFi_V%b0zaKdt5pb+f;3OKCAoZ~nWibL;$XaePzU z)^rulmG!2miz*9K!~f+(-$>s)N^K5|U9lNDvs$9PU}}j!SsoaI9@lMvSDi{)EIRTn zCWn6ml^2)@tp(M-$3e*_^Rmfnts70Y;!Vc8MGKmsg})*=TH!JUa~Aq)n)i7O-?b!{ ziXS_!K!1+6y=j5*wt`*0w3xI70zmU=D3;EF4fmfFZe>=OHbr-*>n<+4xqv01kjDuW z&+yNjSM3|53iQo%m6g4g-{qI%3p+_kfdh}Lo#B8!TD#fBRDm+%kO1aIt9889&*l0{ zCApCN~khE$*H;uF`$~kwERgB(U|(5Mr!pV@XqxloVfN)YB|N zPbE`|P8moeS^>%NCliqA1;wF&7>*0}W6E&(I)gJ?r)}P=0QYi#DA;WrC+gcOWQ5Rz zDulbVm0Q@1SC_D>W@*i$`PW(Q8K$bg$2PScl% z;r-*Uh5>&63kF_r$Tx&w+Q0;7zWju>1S>kIy7H3M?s(y`Zfq}C#F6*M4yel9b=xlP z+8;jcc}nnq{`|rE#N$}hF#^KKnAb?rK3>+ud~ap^skOW*)?Dx&@eefOQ~f{Hy!1K& z{OB?&7vu3J_mS)w-57|P3I~o;8j(MWGSJ?#V@e#$csaX*(+>Z_(9X%b{^_p#b0gh1 z&=d7w|4pd1qHS04xY;0@TJp8ScCs2z`5OzMz!8}HZ(fhy$Nyn5FXln?^Q2+mTfn=; ztj6-H!bRwdbx~KV{DxOZL(za7%rK;xOLg5ewq)M4xAce5earGcKG(}rFv1R9bZs~Q zDNXvu6H}ZHl5JbWE5FNKQ}`|zq84hkuOGIC-lH*w{h@#jC&2uV-tf|_g4yt{MJvw` z*#hX~so7*hf8kx=YorCFGur;e;OhD@b~~uyZw{GB$A8}RRsO8v@@$VG7gS%)?hbB~ z!{(ECkjEqa?hJb)^O2S9!k?zoL`JOtL5wfrf*tGZNug%h7%L&GPZM~w(TJx7+bj}m zsSy$_GD>HS*ofOx1}-cM^uTGP|E1311cd)QEsXk@OD6sAe$cP?$C|b&ikr!t@YtMI zyA>wFQsmRJ%i4fW$MUwtC<~_~O@Imm-7$&PS6$ z)SS}!l_Mxlzx?Vh2R6G!bl<+4WeLHN5Y5sZ1HitEJLvQ`euny=n}qAzn%pkuHcIX} zv{b`YARp{F&%K(1FAO*4R;^16BVa3zU{s4l>Tcy!K>}Zy!Hi-U&ygQ0|P0v*2Z(E@^I>$-Nk=CAN>D(KJfaD zoXI<(HZ&Ae6w}3TR&1!1wR|ulNS67C{H$Mv!B|n~%S0Zgx*z-&tD{fWl(sb4Ln(C? z4~4B@|I0KbGGhGa$v%E4xAA=cf}92MuEoZz(=+|372X)m0z18-5n*aCS8?xUxT!I= zJ|CWiE_0g*#V%;j4GHZ4{Y}SL<$oFfi3*-!|0}DG6B{3vC8n5lHk>*wtL0jcY{KGD`8BYWjc}A+$<1hb;)y+30SYSDYOZ1c9*zG25|+GGbY^|VG6Uoq>61L z$xfR23Ui0QPW0XU)O|~F!+iEwcYMG8Z^m8!^((YANx{wOoX04IOLP_DiE95*a$uF< zcb{0sBr9{YMMk2mZA+~q?)1*3ti^UxIb>IfY4R7IJ+n&Ln5x*Z4(X1rrW1RU=vq}_ zPp0EBIs`k7VyP%8|2l9|&tiggBrK3}uC>$G4GZEo16u+qpSXT~0pG^Ou|$U&Z1joH znbW8Lt%f~hNwIC_MqH-FSQe3!=Nz23Ikr9VA(h~}|7g+o(wKG)^jg+7S&CAxJBALP zqm_4~esZPXiiNv7m-f%{`k!YBEghIQrE-P}vI}N9n0KQVtp@&NSC0R)Qi*^dD8Az! zr;LSY^YY~7R>acE{DTUw&#WXwQN~iyA@<6-#m6GNtxT%*skDI-_*?o+mzvI2`G9oF zE`zPWcB8Y#M5yj2hZ5YW^UY1bfi|UBur!@8y;sO>ApYf4>DsHQKE;OSaDvwQBrkF_Ml|5DyU?Qe ze0D@jJ?*>orAbQB<#tXHAl)*~g|>&Qd&gCJ?(r*SanVN*uQRao;RRj;@h9Og(;!|- zS42k~;&%Pko@4kjJyc+dLN)7jgNMLk{=DTYDSya%J)*X181&|Yb4&T3OE?FN9>DYZ9SIR zbM3hKiwH4Ymub#1@@Q)e&E4B+_s&WS&kK|Om>euq-rW6m{pwbiiLD}RvLKP@nrVTh zpI-0Fah$g*TglF%O!P>+kPReyXV(;Bqn6xEB2v*DyfdJ6?4RV#+3YKtbKLZs9jTcy zYT4UbW>IrlwC-BhYtpmS)6smXL$!CpAJv{0Du&m=$)oSuMCz1PSnFd8r8ngg_N%W< zg(p-Y7KK|N5xOde<{3pQ1F^|Iha75>nxAm91!Abv5#1NC}+MQh{|2s3Rw7o9(1bKYxFT zL=~1OV$Eizyu+|OUiwZnD~LwtcMHjB!fi! z=Ssj?D+|UhOW`LOMfWE$+bnv==H8^{oLKZD%PyncXaOmnKd*f+vR7s?Sx^ zyYe5sDC`g*bU~?ped1C>U&r#aZP>w8D)?9JQJe;CwsfCQ`gv_21#Z@5o4V_Y8Lah< zoP=Z8W(xYnp!eibG+D+%Sx9uWySVZ?Us+e{P|!JOQxjdaQ#{|Sqy+yh^dJ0lv9%d#I2bY++3bU>O-*@37=`(PlA=!atkI) zn>=k!a--**NWQeu3+Z|&5qqz+Lq=P@(gI6c(}<9r(Yt7MyVYFyY<5&#F!;9#>HPoQ ze z#pG)q&czU?6=SLHeXA9yj`ZkUvO~EO-}brsL>snay`PU9ZrgPiKS|i6RZRj3J5%~X zb;UEZLS}pdc%4>sv^}|`0#hH=vqy1p-EiEdoB3pr)@8i3heVAGb$@Q5@w?T^F6YThvWeA!v;i1<~>AT`+MlDtsFeZ z_PXqH`Oj_|$@2;QYCdiH=Zt&2YfgHH+osd^vy5uM-IV2CCyxx%e}b;j|7(i>E9E6z z))rplWX~eIf1OQf7RZ+1aaR(EY|~n9yJTg8$)T#Q8IH=6Jc(ejXqK=Y!D%)Tom|a0 zVy%d)QTauGF}5OTgPutu<#15j({{3HX)=FQ(sq+PWIiT&IW1^E)Tn=t=VHgrKS-Ty zk7J?UbI-ZtC0?qw{a{(%nSTufFUl9i5J6oG5u~JnUc^BT>1mHiE~$xuVFj_Qf?I*? zM6U05Omy7J(c@98{Q(OQ7dzIX+GH@ zEt7Nc>^8S?Jr0tno7v3x8_mJH*Gn?_+TF3)s+(TUomZFjt6sW?9KgLECjZ!*ver!x zed%fVi1qXk9na&MwC)Jm?qPvnyQ$wH=d{l5?2N`@x#UNGOO9|^K+1R>4+Z#im8Zt+ zA@eg_VGcY|lW_SKTp~{mU)r2Bg=LaN4)!#&b2`#=zIeQrsK@7ERd&0rj;LBb+3QmJ z=6f*~omdR0_CGyk{|fwCn54}^dunPrGMl$>>L$~mZyt5eXelo@voxxHrADChJK(f( zr-f{o1Zg?dm-)$ejD{>_$Uw`OS8E12oSbUT^YL)!?J@$}^6@H7eh&-mD-7)>Y%et( z?fl&C3U!sR4u9v!hb&%Axb(BYQsIzTk8kNzvpM5^8Dw_y1s*b!)8JNZpt{Me>JshS zXYb$F$=0Q4r47tu<1F>DU|>I8_G=`^@3G;5V@{o9TQrS(N||dnfqMTWLv({CUl@)( z$Tp7TNQyEfyxP_IC`kB$u7xyQPu`|}00?1;Z_DeBmrQAFWpeuwHit^}nPJ7*O`WH; z*vjs#ON&D~T@_jIqddOh7S>5CI`joHy$QAP!glcO+v!>GDJ-l7X)I!y%IlF>{FxSwtA zvDR)3NS;C1JpZs9vi}c5UiVE2s|#~TLjv`f%Yj3(s`a*7ojq*3W6BPkQosTaEL8PQ zNRoHi*HH{{1xp|E6Z_8_cTd8m;K-`cXivBsddIVO`>cmf*(f2;PjSJ*fLs$dhL(dN zsVo{TJjnPLye zS7OQ6T7uA=8P4Z&54zxMkNdvcJeYT zXkYzx^eK|63m-ov_tL{F_^`~BOhNo@hbzM_o_f%pVU0v*ySuzqS zk3v`&!H<$zSiA1t@TDCvN|LWn5xvm%lM}5tW^1cC+F0a1=RyBNXR`m5l{7N+B|nW} zLgorFVpEr@*f%nm->mTk#);mgBqg_T%|Mi@i}J+v1pl?OT&`V&aZJPyExaP@VVvD<)_ag#Xr4$Tvf(7CZI>)g?b&U*r;PWFk zB{H3ggGiElh}S)55B0AYSS|c*UN17!OLW)7;g6KpxUd5Wu*ClIw~l=1fDhDhg=Neu zG27=s8ToEkb(FugcH6fdgxDG1wODmHj(Upc(!LO|GyXV`bx;oy4?7!ID)WYOh!i1- z>oF$O#qSN~me-#<6c39v7kZ;)czGOc@?Q&~c9log*6TTSf)LBINX+4P?0`X*?2x@+ zufkdgk&gY+cSO*F%os_kKr9(%CU_GudnY?N9L^68-1;|2EN39eGCH45J0c zw*%0GU=@OM+nxq;i<3C=@_-kLR)BF7Y!aNsG8-Hho5;vhlc+HT$IC&GgTOPUX0^$j zv{U3`YCe2u;sUw(8(7Fr9#!b~bMzyrnom~J&OP(XHLpFRq#3WXb*bGQR)LMP)SgR9 z!&JW=`(CWQZEtsnul?1<)#2;Hy8mM|Rfs+0?B zhijSg{6^4eqzl0L_=&k%h4oQ>0w*9hSj_>GL_O8zui zq%VvH4`OUs_LCvE*AO%(L8=9cj=N$v87)K@hBd0O`iOuryXpngbwZPqU+rONZ(Z3D zO|n5sxU~~Qr-2SFxYc_S%>-$y)5Mp~zh;~5-I12$wVu!9G5)t{|KCR)ga?PUa8LZE z?>Bq1E!B3#5bnX~g$fp|q4vMSR_v;M=THqAgJn_d_+pVKW*p{N<)SP1V6!N<>gl(z zk7j)imI~I2E4#WNXfKDz;# z02T|_&+C6YFZDksyAK=xqI%h0*^iB@8K+ui%d1MSyS-oUm;upNRnyA$h=ZhdwC){1 zR$k&XdOEYeTE!&3joEAdx(l633aq?0f~SG3ftU#jbObXNQhB4sKDe6%4rZELGoJciP$Bu+Q-Y?3~=UFumpK zKiwr2ZPfhm0|?wd?fhBnFB{3)et0tO(Zp}03p(AtSib2!rbgB4e7eWB4TmL=$!ez~ z-r2peHcsPdyW`E2vc(a-)6M0$=R4XK{6%c4Kcg|yT+!E|Go3oq9)LQKNTTJaQG)!2 z6!9N1A^ZQR6CK=B0s5R9LayI<=7I2yR6|^d=j+&2#3)G3Qs7ZmL|JqHZs%#;g5F<| zhqhy=U$(6BJYiyEH-3kHLMp}ybcyy08m4 z|0+3858>Tw!3+(AA^Fftu-6^Jt3NMCmv<5|+u0?#mpqT}+gKdtZgZ5Tm>IkBV6`NY z6@6B}db?9={B{|J_S-GUc;`SFyjdmG&W?kIVdcfzJ`EtqUcj!Rm2Y){Rv0EIv!uq- z84o)>tgG_(MyhJ2!KXg1n&KNuMOkaiCL6XLUG>=54p=)?q^5943TyuRpk>qqwy4o# zH%D7f$7|d{ei018nx8Gju@?_6!Y{3fz|m z!t!G-j>A^UK{CC-bS8WQ)QITJ|0YQ89i}btxJN|2<`-xVXlMMMtp>S*1Y!Gi!*;F5 zMTB78d3B&u^Vc^!?ZUdubwZ7VkOkY6b&M59;}xbT2=uX**-^ zy2~xqY>mk5*WjDdg9ElTrF4|VTZU1S-+b`sRY#4g8WpvW4+kx6J~nP`pRP=REH=6s z+bhMtHJ#{U=xeBDsggeR=h$z%nE6=K=6<2jNzov?y%PhXBBJOur*f|wxz7yb;}3XM z^W@4mcG|T*2F+(q3X9~#wa9K&h4>Ene46NZ{E4q^m~pjS&VXJcbo{3NO@5A#dr48W z%#F?>uQ~}<(EpCFNe87x-bu5_S+g z2VlQAa(+tjjgL70;OH_v4A93#zY;g#KxEu5jxZHrwr#8&kAJCLE!#?HnHEao@t5eJ zmqQNRY1QcAZdEDnYqJNx_OCm)ubHW==MI-PAG#0oHS17Nyah8qPLRuyw57zH=FT&R z#`sK0h1|^S0REzDEB7gwF*K7Y>LxYVFb*f}{SSEmci5_X>t64t6S7=>rTEQ_z~O(` zui1oBLOzo+WHW4H?_hTa4m(&K5D(hQe|u347@l!_+I+nk>GwHNrc`5oCdE=yAZon^ zPcGyLc%T@sQ_g!Ww)uRf9S?z`s#pz0^Zzl3cp|4ZDY<-jaJ00rS#VDGK#FO7Fka`A z`C%ZT9=9{vB5K#cd8<6h1y%Py_Rk@`6JcM@lG}t_1jWIg7QLhXUeNfttU6D#bvCq> z1DesrLe;p7nwcy5IMQ29BC(@8Xyfs+>Fka!2;Z~4Iq|5GCF9fn0QaSO`1;E=Pl`ST zh!U{vRsdMgZ5vum+ABVu$KqNv2%9gti0e-K9a8B!B?r@F`+aiw#=@^V-*~yN>+6FA^Kkvce=Lp5AW!q%(q~o-G#E69P^<0)gNy4tIl#Z z?b#u^o9`Cqo!vW9H7;xZ6UW-v2)Qo8=Gh4nzw5t_@ur%}{%B-aiEOT9N&m`W=Lvh}#`b$6#Fl>4g-_orIe zH?ITQc=E3DDJ2chdgvRC!(k7MU(P?uMXvCGzI5k9mSCXh*~S?ffLU>edy0u3uiU&- zc=VY>H;oIz5Yqs#-g>KSiP|%j*}vt;ow$vrvQRHqJG~}aY`QFjs6GvaS(`Yq@|M9rlF2u{m>-Dt?xoArP5 zrH59r8Y*QwO^k)frX5c#Q6@}6@c}>NRW)S6j~|zvHF>lKV*?wASa=?wH%N%MG_8xmME zx!C=v@?={g5R>W{7ZHZj{^FSfyiR`z(YsoL!tOfGhnt4*rPG|)AyjZ+!&qj7%~-0| zCYzOeY?8wbPaV4R8W}atS?d$l)4#Cq!Q!3aP*MZY zk)B+0Vm)47Z_i#BSYUO5R(2epdG;#z&NLdXi9bFs9|tD5rUkU8OUUj1 zd|wFNXhqfe46HELFS1$wWbwIlF(3Du=D9yL=y^a&Y%QRN=`+VbX}>Qy>KNXD)PtVe zqEow-?7*s(QH7m~VnPUDjtn%gjS^6Zk-T7gDTY;Izr8pj`r!s=Unw)1Gcjxt(yz<-jfTDZ;(VnpyD8IPkom^An~vS#6vHJemBbNPCLXU#nYp6!7hc{7 zx5X;4P+0^DfMOhE;{tceqsWG*C;#0Yojyn0Lx7w4qb4C@!Gla4g$967ek=7@7KfrG z{gunSPM$NJ#B%u2w3Xjdzdug2W6P2{cRSS;hGaPOjcjJI!F@7tZ3Iwnh)lhJm9&`5 zm4cS3@S?nz@TSG5VRyY>y$J5mAd8|@pQb{hvb>HnE{?l1WMG}t4ZZ8Vsps2?&vjz% zt9H0{I&Dh16~z~JdaEKfmj`;DEYGik{X5ZT8$>8qmNF5nBc|>=&W{FqjvUYRS{e3} z%e9}4u}l;WpFbCNzgg1NCfx#;ek#K^JFl&zcl!rAT$@bkZorN2`oe90t8cLXC0{ob zq}cJ=AVJrdbn)Y85Z z0cU7hPJDw1DeoI2Fpi&L`N>(tNi}g?!2!|0@*@?86Nq=yvDs&ZdEj}%*X9>TRGf{w@ zq2uz(JFpKEYJrJJZPNYVKtkMDtV#DkiIEMgWqcXrQBl%UEyW!kgKM+V6J0B z!E>&%n-fcy=l#{qC!<*H5AFmCHWT~8F1kj60Kxox(U$&dJeeTG3XA8B6P+gT?zm0~ zPiNnycW7}-$D<+GIzraxoR`J+UWt!{^S?c!1}k*$pP>JzUF=gT9|(Cjo#6<(1d-B= z3L@%Dg{lADqpeYaU&Is`yI1%@ln0ut?$UP7FJQ<B@B zW$fEFjtW(k(8$`#SFp-@+WX#e%bPAdfRwtXUuy*-a)F>HN@Wg9PQ(ly{X@^mpW+Cu(sVPqc(l1HkGil0B;SxKS*%5$f$z1 z{T}aqovJ!lB7Ilex_Hy-OqCmuvnvzQfVd%-DZ(6Z{Xw`i2J)+3b*61pO=9b3cbK>8 z$oKhyt9V@b$o9g_u-_&X2qb@8Y4(*Cr>*imI(@{th_2RiZS^SKT|ZX9Yy{JnRr2|=g^jDW;@;x)oea?1Lf-uv8N*aq%{ zcYH@(g|qNI+A>}FMVtTb&A&~erv2ghPc$DJ{{4T31g_Xw+JpQtr*x+s5Ki!GT{|<+ zMJZhw_vm*!l#qKJ-?gt(|NeT)X6~~m&@;7LWg$9a^ksldUiMa6v{hA}IV_S5X=7w3 zDy|r-)^V3@6La*I2Y!=I!k10dK!j^CJc2x@`~2}GLeabS>DnjOND1Yr_lhEw0Jh_* zJ*OY0g@N_wb!XHSVy;rrcMbaA{J#Jd-wk0h_VCntJBZn-OnrlZW$yJ#BhWg$G zKw2%JK_%;2`>Z`a42K<+#c~Rj9ADVZg{aT5UpKtr6M5bU)6OeuHiieF9R;_}<{f+= z9L%=-s^xUxlG0qpg#uU-Jp%Qb9UHb;djydu?%hn&P$ai1b<|1<+{m7b8};Kyzv z$Fxw+aiB|p_LeFY>bsBkCV1YrtsxI0gHBDI3=@zIfy!Re&D1+}nelk$HDvNP(5tUI zDAM2VN9vKA)*Oyx2;G*QWmk*w*SJ)rtr3dd*&$gLzZ2=RpDCy(Pst5M{DEN3@Ot;U93-uqZd%g4_|?yE65|TXN?jojhV%u&dCTP&`oEEzn!%yWk6rc7=nQv zm7(ctidrit))FC~9}>2us=Dgj?zO>xf{fF3uO{k}2@^TxGgOlGZhxp4wg=l(YgfXj zSd)+75?+9TBZ%3Fm;%eF0WXN$G*5wh=o|PG_xy7YDDChpE3g~ue*S7hbGSdZkI4@- zwTc}@gQCtnGsCgGb>+$Z-td^fY=HZEbQ|;a*ZqJBy!1Asp0I(FdC{+RN2jL#Gv(%W zA4qC%5_!OK1CjX$<`;l32tsqO4u@L|WvL4nvl|20BG5+KpA$iOV6bx$+S^MhMulc$ z*YTTx?y#R?A}W_Y0B3IMT5huk-ii5jXh6vQ66(iQI17OvLrBzd%npLNvKVMtbP^e7 zm`!5{nULWd0eKWHGkMnYHl{Du{HeWaj7^mawiz~jPL{Was^DaQ% zF2X83-8X47D&x(kaXG0R1W~5K*c+jt3^L2w3ZL8ksdmag=dkb3ga35tplmz|J_bsx@1sz4M%e9uSfF?Kvv z-S{Nx4ox z)}cfE?(T^LV%!(ok20`Ht~C_$Ue5n^{hU3(tHL!Ln!UumOAlaPihm=+^@bD*$4Two zO!YJ`0Xx5buI24uxHau>uX?#E>>0ZqDOtDKQ61Sg2=6R08EYf?mB z#Fisr`Bv(r$UiLn$SZP`TKKoPgIH~*cl=ZRDkEBWXIw_Rq=cx;<(J2zkvSYEDo6h> z$~Vnl^>JWaQ+&R;t9IHc-u;>MMRcQ4bV8?D=X83yxO&3!ypfv`*gSP^In-B~7susw zrN*P#fBmt%07SHlL0%0SZoGY+TD6r8*6mdC?x;HbJ)0PaFsTEB>zS^5r4jt4;Ap&NSh9c1XM} zFz0^uO#5Zn6itN=)HtQo-dxo$&S{2uyLYqV)EY;1@?i9hFmA>MJqxaT=>jz~l=}-(M+kioNW@Xw=cBawLJ8#+;>3(Zl$a=qH=Hr3oj%BGai;s~S%A!On9`xs4`88g!a$o^(Q-sH~B?3wp!knc8fw$kkBpL}PyjH#Ii<8%g z>LDHvCPpxQxoP9?=G-#Wt()Sq?>#h`Wc8zYIC1sZSrx%O*0a>dFwHLCx-pK0H$ziw zd1amJjB*j;YS~3r`@MUpJ&2=XXT6HVZI1}%QHZq*Px-72ZZ6BHL1ODRD<998_c#w~ zfFql401i9l3gVu5=C6Jk9uE|dkB{miBH}4`jAU^?AX~RmzFC=NkF(Dr><}p?ZL?Ja zx4zS`1E`AI=v-FZho`4s(FZ1UxO3)kJRcx}_;M?8?G9r{!7v&M0Wfo>AU z(>v0c!R@cnlFe6wO`HAsPDo+Au_zM-DE;;7tASgZ#z!??>;|yojD1U`7U|)FVtJt8 zz0!8jRezh31}1yUin#YPW*&%-bLQ(MLV_*~aZJWeP@HPssfQ)N+VI}>{$&6Rckibj z;8~^(aZM<9SG`#{liUrwDFcxfidJnEa9J7_(K@ z@ivkl>Go;YkA45)+-5bw*FrHBLD3z1s5zJ=7PIe!a&PE4L5yEn*lsw4hWGy2 z-j1~q(IQXnXBPRa!%scu8VHTfZF>mj!cY(iPJ)w!a z0&-iFUB2CU7@w#^XbmQ5jStU9@R}SqyBVvA72Aec_)vrLq$ljFlexgArbSs-1`nfM2Gu9D^oC;ZmiS;rw z^efxu-|p%!vPv$cI5tE~U3g7Pcma`myA6UIZncT1oF))%Lr@l|K+u`GhYW}9iqn{8 zvk#8S1XK42vfcDChtZh<7c~Xt*9BTd5UycJOZd1?~Nk#FdKEt+T`L zD0OEjFVa*hquUTS!u+c~Pt_8`qpYi^8L686r6XBuArBktnUU3dJ}A2R+{eQKMKO&f zS{GUk!~|(fLj{UwImJfh&hLMT@!Q(3RptV(e<(*}2Y@Zv&O@x?1ZO(audSD)1lC)4 zSN#D8Q&r#{z?d~fn7rO@FM%L zSON;JhvD#gTMW?E$s&lZ^3^*n@C3-$A~!{1?VZNnww(nxhK4WbzvIM4Tw3gH^RUIc z^NnfhtSa;QwAijy{eFL);eRVeQ~$qs{k+T6YA--^QgqzWs;|d0u zG6Q4ry$<%R5OT-g-zDFhNQ(uLeTtqHtF(lI@#{oLZgvFcPyxXqjj7Lk^n&QpliGdX zXsd_#VGXv2vSp3iH+q!`h$cCR8pUo;Upn32&`rTDYVaCKy;Wh|-c$prSD>O)iAJ|Wk=(v@I`0$Qz|r=5=L0J{Z{>do{zRlxN|c>*fJ5evt}oVV7hD|fXq z(^*hP)wYDwA!@;fCst1Lj1cEz4MM^7ymM4HR>W8K=DSPR@we3Z&Ex)7wXOizI82)1biwKXfk!>2%x;IO%eFC zR3kuu$gqu66qNCMMEi4GAr995O5ql4k(oNmuz9tPTIEnua{%?h&8ArLFN$x9(DV_x z#MjG9@P&Ob$u;^n%VkhaW!aB#=L;7J*uND9+M;yLOQULFTJL6JR0UdwMQvJ}6K>QI zU1N{Zm7th2KOqHo zOOrU0dTw2s&Mc*(OlNjIogWkIwc1cL=KMu!%w^zVVezBphRi8dc(vE_4>;PK1bLS> zv`_E#4{XkBrWAAJqAoRfNHy|4hg2NnS+dKlYsWp`)<#K?{~kOKgZ zJpEVB=sQNrf|Zc!p>!sK!|CGNuWb2Jq_*kmL0zfxA;--z$5f9J!=jE@Uku-o-*yXU$@Ryf- zYD|u>?WPfD^tDivYhgBgjl#`Zn9aZf2M~KHQPDq!>YOBC?^f~W9;So9K>tI;6ye=G zo33Sb#E>f{akN(d8olP@q~{;C#`GgA!%NTRenA{g4yF+RC+9FapyV)^&YE|RLUMM)?t*Ejjfa5~#-oB%q80}CsK%%XL z9ZP!xW~{-;rXJwNA;RGoG%x#w#fpw5yQv7*=V7QI&kx@nh+IAXoleUDA;NRoKrw8t zm82xXeh;e3HcWx@F*mXWo-~}~?L>YR8N+)e(d`J+Q|I&@Y zE}5Ejj|)G(1CCkLI3Imx{Ju||9kfTfF}uE}yTr?=ZrQxTz7e#?$N^CTcV_l9Huy80 zFI>aV^KVT1v|u+0upK95@ZHDhAN1m7WI6HQS=9&0(N9$j-V0^$LF$I?UB!z)6$nJ#?{I`M9~IV34SbcDtwCSa3A#r!PzW7c`b1hJ-i-(p_^c*6$HLh(}aZHmZdP)B^K8kBDa#@CHUAo@8-O!FprkBm2$&nzuBs=n!_hn z1lZ`vzGEzD2cYAbEb*@?kBcub`#EHh7N2!+Jk|HQTgc8Q=up(;gnGClMELOLZm)_b z1L6olK}iZQ$_ps%yYs;YcrqUvwf@T+tEkJ@Jv#v;k?Z1{kruqys63EzF=ar>#row+ zL_k)nMGJZpmCuoyl337aV@>wa^61?x7&7PL{7YbpM`0$K7KllJq>8F90~8OuA_%Fm zh01DUm2uYPi`!un$@jk8AH!U`c2S1n`bgTHNKsZL3231`g9#$9)C&ehxF+zK#r=@G z{6I(Ru}2+EZ8Br`bNUzsRLXDkLZ^9}(WwGHp7#dh(nJKBh)-2Mo2QV2XG6a%D0nnu z(JJNd7zW_7v+z6Gvy*;ctDgn6lDd@`oMYGDqr5<;W$1XHI`40OF!?ptbR1iQ zsRKRgMI3Q+SC7~JDCr}Jqw~r(f~(z;Q@USA~NeiF4o8%7h=JC6*Q?Lma#?N zgwVXVO?-`zA`2^$c_0*T2boCY0obe@&D4rmFi`~Z={BZ^{{`LpWP;eC68gniz$FD> zD?x3clvDGgrewU|ZvR7wIQ|817(RL*o!cPM+ahZQcOz!qrqafm3mgRH1e=~?7ZMek zfDX4RfPEbDJ;AN-^WHw)pO@{WzdfT%s6-Xx2O7U!=PY~}XG{Kgptw4!>b%%o(>P#= zea8TD0nNokRqB2I^h@2GJ^tieDckKo3a?2%;7k-T`v}I{xeTd61EiRPu3`x1By3Yh z&JeZ2!&rJYl^0{EmqQ=6fCOe6vPJXPUd0zNyX}dlTz2TiAf|_8+u9WPc`EPuAtCRy zyJ2(+8oN^-!&kaT)m+a?iz<}yI%|PPkR(aSUh^BdWp%!wc);+va3uiqb+eR6F~nw( zlH^!x&5yt_e{b--QGz_fshgKbC8|qa7i+|QaZrJeq*5M+Q@JfLHKXEPMUs0xkWS&q zb*a%vn~rGFF5LIfo}nYV?X*v{c`#+9at_AsIWJ*0fOvp!eQ%S^sE=@+eo=CX&i z{0b2C4ip;G3r8V^jVDRla@AIE$P>zaDzvtA4*|m$9j31%n56u4_uXL>VhiX%oDM3{ zYfTRmG~mhwA$!`GaC86t${GOf=)BG^2>B=$Lt=QY7%fgeTQr4dT@3w`ZZ+;{Hv-zh zZ)39FfW3)G?EjHfJ=gx-xIRE~vZ*^7*H|&AIZ%BS4o46rX>H6U%kk_J@_jWaJ$nSs z8RbZaybUjHR|KF4((dwuEt?Qub5&oNJCrw^e7+>q;Vw@T-de9))v5+K{0K+S{2E@os-bob>jF}Juqd~e_xIsbgV!&A2!HZ0 zr!MJSt`BJ{x{<3ypfC~aTdE#VFMKWMgsv{;DU6}oo`$vc4`)5jvegjScQ6j~>HwG= zjiD*KG6gSN>ttNML$Es>Yq0~+OBYA|K2RqCI>G7yAdg(bH~x-Yx`N2IFlgoX!3=mO z?E=vH`u;d{0vDEgg)u^+H2Gky)h)0l9tNN8#@dk)N3$s0eL=(vPv_Z>0Mxmu54DR* z^FpMMBpDQ=S|^FWm@6*06_q@egEJLGIb`uQ<4cI3ckyqDIL5|WwLzJ;IJu9lLW8-C z7X{D!x<35_9sfA*=x9lWoJ33?8*|9=q$y+3F}c@vb7BEF)Q9MpGlcs4ZGi}h=PVqY z*uc)=Ise6JJDHPxgPMg4n%6;Ai@_<64mN$v?NO(WgGiqFV4>u#RiV2yV0u6t3roZI z%;3$Yr-DXuN|%JlCs#Mkhk)73$5VH(Y{facr0}7y#qXYvWv&Grx|fu9JFsvLPPzR( zrJMTO%DJo#Zahx_KiPagQlayZH`Z}Mkl&AXT~$8MrgUsV+y?WtWi!prW94bWy zXfs^d);mxKiOF=<-Vqqz%R@dzX5vNYnaOty)@w_vAT>cDRMu&>(tb4!x z089d*$lutL)#$|ZzrlV30Lc25!gtk5#A*HaERd46BpZlgtm0DOZPEl`>UPjBM8Y3* z@)hJPXE~cXiJKr3QYu^Uoh^EIyO%w94}J!htxilHZ3 zm2H5tJ+YKBOFOzoHlnI8kTKC446w&I{%xVdC5RGY9kgR#t-9Lo{f+~F5V)e=Xpp#; zAr3}{91!lZ@zE{K?@|h9dGL0+;z~QYTwSDh;7pMQQ%FY%njBoLUFks{yPiSU<5Wm) zvTq!+{Uiuld6(nT$u07oufcicUU2<(Ip=*QfVqhbX%|Ok2jy2+I135jfHesH!};VQ zRH8v|H1j@7pkdr=r`sq6ONvE1=vA{51_@{tv5{+IEILOO)OaLe`DbXW|1ZHO>e|?n z>7qd4q#hM*-Cp6QiV||9?3nu)r$+ha6+%DX`q zf|sJ05iKygY}~_F(oDMYZXC{JBTvAC!U@l#h_lm(1NVB_;kWZ$hk{_J_ZFnU(I~;j zA_Uf@9y&K7CjY9$`vq`Q76O=IN>h>NbyD^_WszJz`JGi?cE*n4WVTp;z+Ng<#Y|#; zGwE}Z_wTnNQ0zQ1ex2BOl;*mSy8$UUm5P>+v(f-^9LwXX3mdI!u)Vy@o)W_fE6}UM zTfJQ&!(qFIE7$Si&@&ErYAY{Ju!xv*+v~cR8Cj|LowFD!p2w1MJ(F56HVW~!c(idng%AF+f`w!*lq|wl($kbV}moN$ULQC5%Jm3b!$-6cg|1r2kiq z*94qJTe6P@(b{gr+4N#h)7XX{>yFZk4+rr&mAdS{!cfKE&ZZS1<{cz;=_GQbg}>TP z+KaA*UmEnvIQ2Va?0$o@+U!)lbJoqpe#{=SjLyi!V#83yuJXHlq8?6lyoCfk9&8p| z*)5EVdW$hvfx57r6rrDHJGFf% zN`K1;`f(OrCI{}EkNN2J40SanIiE+AFqI{x=t|vNdrY7%bYIPWE{Jjb^}lm}eS!Zg zA0q9jY{iMXsHVCULFU7%8gvURbtj-6fWlQSv=+I$o(f=(c#tjQXO7$Q+Qw);IC;kaUn_T@?w zkdqU^Do;@rvwvYklu2^OyvZ<^<-^=Ddtn0yJpe>&_={f@g58J9z{pEXCRflRMuqpB z>ZL`?qMzgm{5wJ&ES``S*)^0yV*_s+6{FlV5H}34c5R4sDZ;o}Ymh00V8>A`ii@DL z=rZ5WAJyKkbkn4#_%+2X1)a7b-UvOpjC{r0j4FMnblrZ@ou-8Fd0xdtX$ogY9H@5P z%30ErtY;szhs6@c*dtCk6>UxnHC_=h7A`(k%aDaDxUj9w$=p;@du3xmQ9Y>}J5+61 zi8{)^s6VXe+z3?34tN8G1a^}rsY;p+em?-r$y4w)n3z0F`G?f}k5?55AjK$_f2c?O zy?XaO=u_+F*zFbNRd23S7Muk%x%KD6y1}Rz=#RQ;sAjVQO%XAChe}r8CL=em>9Rb> zzj8zrop*|WyXSlK%sp<8LDF1E;Z31oQ=>|NZ0qf2?k8AKDDbakKtw+p^BdOJHZG*B zAs952?6pq1$qtbM6POhDjBS-KVv@&i_rH~rQPoC*&m3X_%tPHyQPqS`pAL)ppPT7v zaBPrNR`Q!DrRKA3C3REn!s0we=`wk}h~{4K;v&;%nxCoB1Q^VOeQGOH3CXSd1RMT4 znao^3_`f5Hz7xEbk63UZG!7b0=1m%89j%N$xP2)hEtJUbeBeXJx^4^Y#&%Rra?|vA zF_XFxkcbq(Qb%7V7Z=YMRU2+t65I30O^08y%1O9Nrt&5+c-p1n5rofFA$ZX~$u>+t zbnkI7qQ_G+d6nf*ZWtU-W!}CRDq>UasmlkQu}+kJ2i(Cy(O)_W%#?w{$Fe0jO{w{` zF(rv9_#|M$p~g{+L;<;vsN^$$GZxufuGV31$6ud30FPJ9M+!5moP@;@oA@wPHMmKi zTENw~NZ{rpLK7#sw8Y!r*&!g*o~_K^mXCc9xP0zt8@Z73@;5hTEuL|8(=&`=v^$g7 zTm51!PUEEeYw5AJ`=UCRQw1?yyLETh8+{zb<=hKMlQRs2ZeG zyYP03r9`u~_9L#o)V|$qPG4;8Svv46HAJ1GR?Fz2jq8rTL6PsRb(Ewa9ep#f`4HM4 z&ZrvyKK(?kcd#RvXp)-h@J)m2sSq>L(w02_vj(1iNQeTxNs4tY40rir60ExV9nuY6 zmQbz+sQP}qQ$d*@T2Ouvyw;%kvfRoCqO^xqx_2K+-Du0QMEN6t)`s zJ&n4{Z`cVqriykti2->Nsu@~$a<@_!!^zHdZ@^d$L1N#3Cn7tNUoA8L)qIR5SB#t-w2kFy z&toS2Ii|sEZtSYApf<&iGIRkS*a)#Wl>}#o@QKUQ%o1Lr`Gh=!S30>{wGySsK*0lh z%J~N8Ed%=e4HRe?`U}&J%zNB)(#KXdz4$w0A`j(>79SQhJYo+Zyk!K_*9f=Z2+#Mu z#`h%$A@9>8p+4P~l)Kr)ydyOYmtq2mCt?nVZBF(4)KoQh&Ef|r?~8{>RfiLEsG-Id zp3{D<+#`?4i8+J$vN+r2GZFN5Q!f2m58(8fkq#5P2FjKUK&cG1$Yn^=)uktqIX zJ^lGhCUHkZ``k|;*&mj|vTrM1*kYU;r|utTETW0MfH$WTFy#%sS-}qU?v|=T%)lu+ z-N(~A4}Xp=E|mnC<`UN3nxcaC5JRMlJ?==%fQQP-Y$Q5Nhs2&v(H8Vp9}-Gh^D(7k zaew-Au0)S~F`3U?(`z!`cKjGgTM{P@B)KaR*ja92=1Fse0N=ZovG?orD1UCJol_GW zhd29-R60w%U_Xw_kg$-8vuH_q&s)ubzU=38|K&stRPL$OMAM~^z1Tkkb3WbL$n6mX zY-wAk1!<~zgFGA9GJc`3IoR)=f#=wzZ(RZSzR+(ZcLKm;a!bKAD+57z%&y(jhOb>X z*CuOOb%SMJ*tCmGN?tez;5a`An4?-$Y>SFcPAqB=Pv_0v`Q~Sm^XNO%oy2@jk!5Y` z_$+6^bg=G~LX#bo@Uu=V&WWEEac1&K`%&rfChu8O2MH^=cZk*%oKI%Us_RIy8 ze^oCZNOnLkrISDu!|vkp+r>kZrU(80+%yL82oK4DUqD<+jdJ$*r&Xmhef`oavhnLZ z#=?+T3f{R)b44J`#c#{kGXUv)3pQGsGZ{xncIv^86WOR~IC=g$*mHj;?2JQ%cXw8$ z>|3#QD3=`7O~^klj-HJUj6}h%Jp<#$lf0)^4DBYi{QC#7%{jHm>=yoH$gs7363 z)hb^Trj^2_WsHkh_T8d4#PsBiVgHim8=;So$Zls?LyYHzZ1^e1<$g%l)s=%`_t% zQ#*_`#JJm*x@XhJ0t@pdcrmCrq_?%GtST2`0gP(Y&L-h8Hg+dh9h<`oc;g_xLDU|4 zyo@~@wEPk?7@e0^F%+dQCCd&7ph&Vj5P!fZ?XLqpDHv-lG($@N583$O`d%u#o8(;Q zbg#AP92RvfU@yPt>?rPzm|4g_>OB+_kTwM=bnK9I`c+^8ZulHMxrCZyz*Qd(xWW&c z{7*IsQTz*8nY55G^TUlZ_TDn+L`Ud;XqRhJ-<1&ZjfSzK)-eTSQz{8-rJ=ssZJp2O zQN|EDA`N+yeC==7e9gYDo(%pNyX;9RT5WBhvrd$Fw_vV2&o9UT7D8j!C@t+Hl+(;S z-m7HG&SY5YQ&7~WvuG4skicI2ZG=&03L%E0aAk&+IJ%4Q^iqz6T6^7xGm{sP zU9)oWT(e7u%AY&(V8-`y6~09)mmMQ(&a>qY>+K9t{5iCbjV4bVk$2z~I)R$$WHZ|i zIH49P`9!;xcJwv}R}8#s3|$XLwv@NMC6kxygHin^M?j>RiCV^%GY`fgiA(-CJ*x&E zs-R2X1s+I9EE8rsTm`Y)d}Z;w>WDu+^yjEDw1!p6F`3G45TnqFghMUB@>!VpD(hC|Q6R*|d5qitA(!3U%K z-D~4I7HH|WLmB^aWKUSJn&nQXJxMe>;lZF5R?s94ft9gW9=zDBG^p9u%6kaeXCs~Q z6MVLkKEf&EpyY}fcb3WT7nBR45@NrCsk{rbIcNKLmD%jVbn0v1O(Ev?ylQcjv{vCk zJsd5W!dHL3UtwfkYo*_wWFK4p@rZHiPCb|d z|8Od?NRzt}|ccH|M~m{?z> zB#v3GZ*OgL*@=|EI*H=DvXfp%He61!<~qoMlZ^&J>6jX?xa=B)x3IK=){7&=M+SXB z&uXY?fr^#pDiVjd)~wL;cn1hcdih{PWhNR59&u5_jM5K zA|R)2uj#(own0`6U%Y`O4@(0$@7Vm1%mgu^;-WTy8wz5c_Lm{-^i@0!yjpkM?oz3N!M5LJ&xBFa;sN<{2PU&LdzkUo1 z4{atZpgsVR?b3&jxWF_arv;mlZPQc(`m)T@r44D%QLoVZweP($3fqsMogguT?SDN- z{|59QCY3~gs}<=&-9X@;)E;sF6qs6*fSDZP{*Z>AM93M3h=Cnd1zlocLvI1&*-9xR z=(k8?*(_K=(EDd2_?)Ek=U?Bquu_z=L9zBnDU>k6Vn`iTgD&PF2gE(i5VUT$4rlNuckZ-rI9Xh&^bD!GH2Bg`yLG1B(aSJz3Pv35YXS5)HL5_FLE4&;Z_fHM z`sSijUhBT3))Ur1eiYBU47fe2fMaKCFWkYKZuu9YwdQ)xAzjvRKe3X;NLjs-e+FkQ z;ezBdwvuc1-6vpcotDtjeW6PHpC*N2qPR$TUcifp732__zzCd;3sDu@xX;l>8snB1!zeJWJmUkuV;2{WpkCGjiZlRDF+>?q5dsnN&+wKI3Wy9d~PGMGB6& z0vj--;98Od-EI~smUGE!_*MUWQU5CJ5G9`}JLPqYw2a=b*0Oo;uo`}AZTUd^G?Ew> zn)boGt6;QHE+*brLXCS9me2CWC#mQQ*ftk7ZZbNW`(tSC^7~Ek@7Oj0>7( zW%${tHka+|JwS>u(*~b+5o`=1PC4mcL_4MB|y;N?g{QbxP;*DlEIxpgUjF=+#Lpo;O_P~ z=iGPSJKuNv&&;pg)3v9otE<*pwXJFIbn_ceS@~l9MpH*fJCE5a+(t z<};FEum;SRDSZ3%U`;zNZ&PBxfW?J-qGR}6M6XLOrS3#yc6EKuaAdaKJyFF+h?K(L zU3hH3(~7s!Dax8~7&0~k$&Kcz5`Fvxi`XI-bt2tk_Tahw_QUA^72!W+zuE1X!}ybGhBJU>#`4i2i+fGV7HmH0PowFv&x4XZc>1p zEw~%JdfU?XifKF51w#xp7c15rJLg$#3dEw32aN1SUhc#=RThF(mr(kfjM1F^_o0om z-RmL?AeewxV6Uw01W6G7;kUsoyJ0Ot5;w&YjZs&6PEsfY_EN7A$tvI@?Pe72b{?s7 zQ(+wPa;I6Y{!yN)J0>46^+my(_pSj1_(F>1v^=pt-OP@s&u~YvHa;#XvQtl+qkt}= z`SuVbNO!ZK$;lJJomZ!)Ys>%rc6tJ5)Uu-m%W`Afj8h*v_w5}#?VXq6r>K3jpZ4y> zW}cMI@#v}_0=46x)V;nQu19B1ocXc9@(%a?AbYLn+|tn+(woZkl2Ozp7;=Gw zxj8tls_zF0Dit@JcIxG2S8xLhNeJ^w^rUS6q=%=HZ$1*Kc~s&=_?*(}ANBxP@M@~` zz86M3eCBd*`>}?(!}WexNN9G|x8t9?WXr$mJrU@`>1_uuxb#yYyj!EKH)(sBlIFr2 zcJChM@K^Y~FPhPnS-SF@Xs4}7Zt}_m)AqDJ`RKhVngkFYd5VrburEjrShOXgm=m=L zZ`7{GPSfS0<=EwPAvv5Z)35;M)8A;UQwXj3hsviJp;CS0A{{fsG$%S9f#BA=9>LG7 zKvr$nntNq1t`RalNoYL)c`Z<010YdxpT7>SQ1ohCjm<`pa?kX~eKcWxzcOs83p-k| zVaP{>YmENfE0fT>4h(*S;>F4!^1>|QhUAr`^1(U*5j*Ezh$_X~+@Q&g(g^T~2) zblP@NZ*Qx6shvBO4QgqzY<6(zEpCc!^ni2IsOE7HR&>U2P?DL~mZ4PmeW^8JoG@Z7 zz+zOQGW>3v%KN(f;hWO>1}*$NKeaG4u)(W*aL83HhPbb(-Y~dM9*Y@+%rotA#ye+6 z&I6kxB=fWR)9W5yGeM*z$j0)p$otenTCPvudMw&=q59bl6}~ruF0jmzn|jmc%O3`* zf9Ug@T#Y1?zy!NxQ(4AqoIGEv%zU^}h;*q@4o6;CqicJ=L;Kuz{LE$IgFf>t*w3FP zec$zIu{`PCm1~Eq+gH5Vi`TX1S(#^cQ+t0MhR$Z*q7Xd88H>Z+?ch$kq6FAy>Jxq@ zJQ|N0n^KoewAO~b5RAPLsDYBizNj!^7nd3{+=@|Ex(MXG!j%Rwf6Y(}=${p5J52Hg z%<|%(i~BMcA>A~c#fg)M1vk0k6YF=qcRba4wE=};R&HoUr0RKP1DiC|@A(zWZsWFigfVb(Tg9r>`&abpMDlrw}t~yrfW0kr^9kxzj z9!r2HsN0ZAF#2w$1LT7l8z>ppNr8S-Sj4; zs2fqnMBoQ(cs}rD-M6vRl)aFX5lSFWX7LD2bXY6?sp4k&G^t3L z+-n^lUg_}^>HNH`n-FFR+`g6)!fRJQh>$u&dRWd%Smrwj>6#UlK!J%EaCIHX6CEc&hOCY5AmY7fv&yl#8nni zKIx&ptz6EA?xh+(54eMoXX&11Nj>=4ZS?q8^p-xXM5Tc(rO+yl5MV#t_LKDBRJt~R z&KKA)pyC^DrzcYiw0P{xM?X5Y4;DVlNrQAjUT_Fk5;y-7dNm}Q-AJCI8JO;u-Bt3! zlKI1A0*x@P0XnaPt-nk+zVSYaaJO)?JzHy^N{KtSZUO~ z&y`rV*vG;h_vT1D=ByYkYH3j4(H=4!0?o}ZBkJ8ij2ei(ZC>H{644sB$m zvr+!6apg+tCxIbP3Qfc)>B$N#$8$C_%h^}(k&DsFS}YFOh93*Ru7lgigo+SRBYQBG zQv2T}v~i!ilBhx?aFL3O)IvY0h5k06WPiSaTYfHMh%O_~g9qon2869>4F?eORRrZK zV!JC`T95cVGqeCB-SReeMV(?>3iw2w(oZbWZQE4H_=TfEPvUk&bYOfjD8#Rj?7fKZ z8jozzd2c-JP8c}v7X(|%=M}C$R;5Ukc1i?63z1|CZX@qgYs2~Lm!fCv_dF;ljv_Z9>n=kk>3}BLr5;@`cm$2h)azj;7ei$JB-o$ zt2fzJlZwAKR^BGGooqykH>91X@Op9*lt%~8Dv)`ixOO9%;ObzG)buDSp$@0>JP*iO zPFDtyh>x<+e-J&Bj1ER7TZ2bMGp^FR(@pk(+Y-qr3++-sf36Z!^^oOP855jjGnrg+ z%(@jOX?@>g(I56WS8viSh3^`M>43K|b%P?ysD@Wb4U9?eX+7k3V<{bPRjI~qyFB~XaCd#ml zB)wi?aVgqMp#&e+j^x?_RlCsoi>tWg%iSl4xF<(ucXXD^o^lQWFFK@);*fxV025Mf{vKXhUt;cB^8RS0kdM5^SEJ?uh z93&WVp6V2XSz1==*kYr-FNK@btMob7Rz53>kXq>9?iA3wB-%R%BEk@`rBw!ULGHeEj!O^pR53AS6qPTO^ zm>@ok*k_-S1(p7futoOTWA2z&g@tVveVUIFjdO{9P~)*3>^`>YgtI!M0KVa!DHU&d zsxr$&9%sl>9URo15a7mtWMfJda{(L;x|ol;)78KL(Hvi{e3v9gd*E6+fZ7dVVwJBM zD>YHH+jWa2&Q|~{o|^d{Cku}=ctyAy0wiB3`f{GcoKFJ*SOuL|)KL`&Wl?WfJ1}D8 zyvKETET(&?r+jXMFZ;ztC32X=5U@me9cynYuq^B_>f;Y}-P~B!EI6=5;?=J;Fj}|) zL2+^wWAB2EtcY2?R)|T9B0$L#-c~O#(+Xc-9VjcNk!*&!*XN$o(LXkF5nI4V8v=jX z+g4iEI8f7w1$y!30!AvzU!VwDhLL@s&=+Z06jR;%^XfmwVa2BCMed*LB=1cQH|?eSGfW+4!|H z;Cx9Wq@6plJ5xGb8e#K`RA+4x!m#Vto5=m&f#;+w2SYhwc^?sXBxq}7<(x9((A4Fz z^b5mSA{KdE z{Gg0_Nl3RehT2!dCE`EzVXKwokVccJ?e9>GR|nDBzO(70dMVX?aZl_%y${gVAxC6G z0b+Eqf2}EF_8qdet!>%16(U+%mdI_A?@V~-v6g)H#BZ_k7_(QNCg>8WpZu16LCe|o zX|wfkUX`^MvzFGEez%PAfsCdDLVAh}THso=kzU03^>!Plp?B6s_s41dwq)1ft~u9Y zV7G22YH=m3XO72~&qxnjM}z!6H(2aZ_V&9=-5`IssJ%jHkeN%eVauW>P9H_d&+i#FXHvP^!L(BGcRfiU>}umPyK+3cSu|Dov2h{uhx;T#q+(=e)K=Z3}< zJBwP$31VgJr-7GV>^#m6eeiyE(#2erMqCc1b*Sr;C6?sgoT3EsRSw!g*lY`W?3E!K zsYzZR*4_3*<0=0%tz6o3rAXWFw%gdIwLwRhDn55#$Swm4K;Xk0i(2&HmB`T2q zqMp58H$Bxpmk;A1ZAp(vdhCpMGxp{;|KbX#p1RS;Ev1yB(!cz+&x;+iC_D3#SOZg& zK)A(;uYqf0k;UaFZ}mHjg9h4IOuL?k#od_nKLK8Ov8dK*j}Iydds#?;>#+A*{I%;n z8I&5V=!$wygtt+=(MZBL1e{YxdLJ<|EOR4jwoy@~HAX zug`3u4Eji^Rc3XenypE}Z#@@>zHTm#N*0Qai>)4*qg^zLD!1^WvO?;|9C=qt;j{cR zP}jU{3_|zAqoc%tzo^^uI3|Xa5tvaU(d~#n0M%?sdR2qDfN`_hec<*Czqi2Y!@0x$ z3o)9RA$?L8eyADq6d`I!-O~@hCt<)Ey7^Wx zn08Jta%a%i#tvOydi&L7pnHAeF!dP z-#QJIK2UzcdCuebw-KUbBe>yxmCcy_^3|HEar}ylWF%OZ>mS}C=wC2h>f#HfhA~}w z262s9`!uH4?!m%NEO^Yrq_3z4`N%MRmZULDGX>99uQLUz9r^>3-Wy8$Qijj`3RwIu z*=F%YJQE+mqd+CK2Q`>f5v9ZJ7q^F@5|nQ#ZjSN960|Oim|lwBQr9L%bAT&f*V(9qiIJ) zqaHd%#?pZ`#&+kb&K5Vn{h35cfipew(v$V=cS&VL#saszE3QeOo^lKqxw5fxbTFMM zij}rNN`9Oxo+*TGLCRSBV5t_pdIfy3xR(ToX{Y zvl~Qkh}5*5Y~?%RypW5A&r)}t$CAw**2^W%LEts zQgfC~<(N8IqJyB1RFWD}LWW8rdge^34`jsL#YIE%60(Syay>S_PQ3_XYx#G$UXZvo z(Q~w?;djl;#VXSTsGA%kEzMlqV zqpi7`_EAdy)(Eu;VUKH~4?1R-a}Wf%3+8_ir|3c|W0^8rb-wn-X+@T`5E)P|hWMAM z*1Mej8J;2437N${np`ZLOR~04tw0=Ji*7Wzdd7!7Ck0gM*l(Lb>99V$0P5x%UQ{A1 zbgxiSRD@E=-nYa)N7Lmm!mnAfvd{MTfkq19Jdq0@`DYBsfdui6yZUb~s!|Lo=^uSb zOrPD|fe){jw_eJ_bx^!(CI>tv;Y zpgk?JN|KCxRgkrm0#5cG@mk~6j2lJMi47YPY(7|WG$e+rhQV>}D{(&VUk02=q_C`! zTPRg(TVqZyY`@XH@wt8MC={b}p=)byV$-Elkr_-VHuoImpb(t85d^!1X1&#EtSdmb z3g04DB0g%6&3-pdQ$!c-?_SVTEYfOL+;s2sqT>b&>^ zxL2S?J69Hyw{?v$>o8_AlRE@Z9VN9MCRHsE7#74I6?%)_>4~6_kxuso5-Q&ajHt)b zCIS0Tm4;8hx^Mi9(&bRA1MH6vN-Czl^Lggnk-!wn5JEBIUmb$G&mox5D;xLIF(xF~ zV6Z8CbCjjrH}K?3UPp3jYY(6WZ*W1#HI6!eKGXNK-dLZ_c|4U(NV&4^aH4h(1z#G9*xd`foM2);O*MijYrF4{$ z#)|!~OE^CvBA2hT&AHhf9&XgvEUsIJkD~Y_1Yo4Uf4Zk{RN-`uE*^OH`Cn`!9Ar@e z4txUeped7*Rf&Xs&8Nrp72j{H^BSoUyHy{{);$a0xp zMz=h{b|UhM21|9^ayY(|8`_;XMn=AuNoB%||l zEXhXeo1@W$+V9P6$K&ADVLAaTAa-m=MB9h=K_bs5hkoJ5q^&OdZK}80U)TL`&Xsl@ z96xuE&fJCF@&fxRu1*wAXLkS}x83w2bUyoIv;aHLnhw3PNn0aUzTz!&d?|ctn+=>r zT%scht!d!|BKtM>+`*R}4qe~6YP1GHUqwD*j6 z+!x-Hy=eitUJHIQ^D-Qk$PSLt`uAxtiTng+QG4Qt2cqE7wXMfu?+ zkEoPqL@}q*mC4ldjxB=_!d7+G9J!0K3Wboxw_p2kN-%HI zlD zEjlclcl^_$A3yz0d8mmEOE?_-s0-Ml2#c}LE$Er3@4XZ?=bY4%b(zJbz}sSkv?9{4 z+0AOBtV?4?3WNfjYAS({94pJXHRAGH@%#_Wca+rk?i0DV4lB($SDh2jB=>tN zF)jm^OkTu`jmb}^6&P?Qpj&yaz8NZon6*;&F$ADlC?Y$Q^LCOYg@lYr{J3rEX+4Wi zkC3b3>bcIjk_nJNfSFfy{P zn9W2Lk7ZO;SFd1iq?}$pUPk+Ve*`d@dRUHmhBo&wTC|Bhdtm9aOGdU*p-WSN zyn>2fxP=G%y+hpcC?N=6e*x#5)DpK|ekSkNPa6 zV*UbF98c@KgGA(GD{Ud6* zAc!bYv%YpfqvzD6m!TGl(lS5!`95L&ZS{6V;H^5*x5c@x=uzNa3a!UC#shDN`|1Gt zgkYaM@bClw*|G1P$HUN`F3nF31XE-ZZE*4wP|w}Ff$wQN{ens0^{m(3?QK0lM0%MF zyAu@kK7F^33+2UJtG~Vjk^eT_tLBWQ%{#3uj^yntimkJ$RXMe7Qcw*;!FUWM*VgJ$ zMFVQQS!+!%xZH9rC66bgz5I4^)#lMj zL+}jF9X6M5l(zw-Ik>fml>mG8{9H(Ds$Ap{%w$y=y#?5fST{BjDT8mm@O)rp zOF4zu!f!rTT7v&--!~ z6g@!B-e<|rQ@PfcpG)N(^F|f6TjlBw`<5nSkaA5Le_fs)*c=J|ZJa#5e{8gR$$Oa; zSk2^4KWs$2K?LD-HwUELUT)P)?mT4&z=W{pR zyM(E$e6&l`SLt60H7eV!G`6Hq>%r)ojT&YNmTsYw`~KJqPzX zX*>i|-jf9^Xd2_fLfe5( z3&|4?t%APWuqlYX4ZS|ZWkHptj$Bu}eD%f(7P3_ThbnPdvKh=}6Y9E=I1_;cDDnzYkD?*NeQ4;8ZDEhw3_p z9&BdZ_sqE7cwC6a@#kP?S*94@$wXe~aocd=S3-2mOr^ze;Er-?Qqx9gi^+MYmP-MzTjQn-bHBYK(*<S&mO6Z z_yp^4Ye}*%tivr;W}eCux<_2?vktNTFp!SOpdq)TkTYTcCcZ9fg-=hA z+)fBv9h#IQx@G&`$wKb3hW6KL?NI*fLv$PfBaO!q1IiCn<&)GE+rP{1Y?rM~PBW-W z!^b8v0oiQBig4uPD42IiIZ=)WFW{e>zf z+WeUyBf>7ZCY&G;HRSl3zy`A8*Q;f@^C!rlWGD%7mjpW?Q#p0Z)pON=^<~AY!~gGS zNouC;hA80VdfXI_jm$@OPhmMa`nbRw!`3@ZvYkI~ZhXW&3n-`-s7s1bBJ&U?NXX-> zPh8Qa}lZ{3QHQw6RDcX*zl7uI^ z?P_uuXe~CD8gB8A!*aV0_tGz&>(UKRi7tPsL_25u1Oyf=?6`BDC&?{-(f_oO=YF7a zl~*@y_)&lipAl_hsnKE55inIZmZqRBsz`cz_{9|(9C+sA=QqANonHUce)}XL&;SVV zEqGRZI7Jdu#6VZ|C!mt6)K##JuJ@MR5hQdR9x+;ZotN>eQ}bQaEosL2@?B2{Rt`fL zE6C!DGfcLS&jwvLlaB|s$Ob&}d3?^sr}|vElZL8khb#&AtEGZhyUo z-!X`4)ZE%ul*=p(WCM*WIMO1! zU$*#8x)2l3GH7k;RaeUX*KDDbDs0XFgl7L;rA(erlj#`Jh>Bhf4r*?%mg!)I=k041 zT27h)$b0Z-)zl1vg!}%qU`{FAzbAih^IsP#iNdL^BH7u64URpa;n+Jvnv~mO*Wl#u zFTOs=6X)UthSvf$L{65^1z*^Z|A`5+{Qhr<^PVDQv6P3P{7;&R=$P-L$|P{Ij71`6 z(y2z8fYFTgU`}B>zme55`#b;N^Zs%DfAeC>cM8-(oU-q=tTmTPPJoF&AoBQ&V}=QQ mvqa75G{z_jSxgHNeB{?2q6T~Ym6=klc+Iz zufvQohAH03?|<+8|KI=KS3mE4-rHk4$DDok*=w(|*ZS^toc=zY2eBIK8|i~6C_tbz z-~&2c043=KxjqJgOie)-K_Czvh?;^OLj?ccA=rF8!?uDWGbkNY9o^V%{Km8#AzFdjgDf4dV-STJm?G? z1tlBBX%`3#jDnitukzPzz%Pn3lvLC-v~=_gXMqN_te`U#l$2+vD5!Rf0c&A{2}dmZ%&10=^yAsuT{2l-Ts9UQ+(tTMbE&^!^_7nenCP~>Y|deimIBr z#&umieFH-y<2!fnSy)s41Er?_PkoFg4|8s;z{clnB55oSPt|`!U(3!sqAq1{winx6sCWaQ=k(Hpby|?8sLYCo|gU}*Z!wZPGao=N!NYL`j;Ye=R z{QCH{cjIawZ}03}D=A6JFq#Lci%oRF1WrNo`OqqO+rWLdyvuc1ixPXQo|g+o=f=v% z7S7o{c3H6v_4%SRrS+?F&8=>{cL9lhMz9aFB{h&QcVkrNZJ@~cNoAUm15;5m8P2AI z;+tMx3U`ilrPA5$D%)A-L@by)Q8jY-^KxBNNS4C27ZKtvO`cyd(xliqv%H;|3+g{S zd>o%I=xaO0R2hLDoM{7_*udI7T4}D}QwVL^mtqIB205$-RIY@5YDo4)uSO^z!P;O` zFL5rU{2h^DZE#Q%o&Pc3l-BZ2(Wd8=bwW31kyGE@YlFDJR~M7&r1#@+5vQOih4l#G z@k94rl&W17_GYf~OIz1*e!;AOWTt_ZC$h8iZ&H@^{Mb1CJP7gq&+JtR#;2fm!7#gd zf)UY8#u-EY@~gA7*tAHcUjEC|`}MP$d?F7xsTGkU^JZ4&zkeIl0q)dSfNL|4UWI8M|PtX7jR z#Ecs*-|Fx8`BId2Rgl%-x(>_#Qwb}Ex;5Env7nSS2SN>>O|=GFh!4^CSUr1t2F9@D z&yombsL9~DhlR&|Npv`~bhq}!+cj{A`2_9WdzP#DE&2ppHYxX@E$%kHVm|Teg#bRH zL6Jc-?~v+!#wAgR&8ipT34Bu1?A3Kh4+~YZ!VV2nz>t5tn9nccO%@?~Wc~R_?N|A& zCf`WS2!{cBT}7e|W22~W_(cN;%?pee7AG=DUV{e{GSMa6an9oq&)CUAa>=F8PEiNJ*D&u zr4@fQ`}l*aO^s1ip^n8ojis3Dhbhp}Yf^?o{IUrPpK*WTbJxNt8Xwvjfr@)RA&hBP z4BxYiUzEnKZjsO0666aQ$L-m$%hik?Mo((Kr|l_b+1m3}LQ_Pz=KV~&?4cRLlcl*7#pG;s%JjQlBKO*o00qu0E`l#H2OIhK!`d8%!XAE+jX!-bl2d@dG7TUtvePv&R zTJUm$sWbUl^`r>Uh8J<2@`NTI!BPXo%j|X>uTpkF84n4P4FlFtTl>pv@XV`E)a(tk zfLXDB1}1V>;Org}<`{yGSqLip4lE=MmK7cFS0&43M;OKiJZbcO<~@E>3%)q=gc-8? z&TzuK0MOQH*wOOGpg#Y36H z43q+9g|Qa#C8i3cy+WBEy`JuT(Yc+k&YNZeqT5Q}(h;iVG}od2A5`$^&;P^A(#K4z z_sO4tCF7^lyYKfXr}LFV`KayqGMjAU}2}ss>#9-Yp?|~N`ew^U?)ZW(p zte+a85H?cqNC4haV(E^!>vi*j#NL6y+Qy* z9Q=X~vBX2>>)~9osYLTr5K|cB6B97nu72E>`LXxN5#-U@6_Q$S$o@boUIv0TzgX3| zP(gA1?LyYg(L@%))?E>JM-8YYHeXPt{-n077{X0c-RlE%p-?giJSM|MECfuG!Jj4gBu%$+R943N z4Yf)uSB+0^dg?67SY6^P5_}(3NvZ>ylxPeb+vu&umrn!3u86uMeg&yF{00Yk4T9bC zv)t zrY60c8VeEUY)?U^kE-DF21G9MtYs?U`l9EuxRIHFqE!3#z~?lB1~K7L3ewGA(EhUB z?Nbo&4DZoJRyS2JdwISEGdqm8CV}^i0;QX-GgT5{EEGIxNoHs+Hhvf-CnS0?^8$>w z)3bq!ncvQoGcSY^{v8;GlOF666w`~qSfuXYJ5NDpr{u`Cqx==^b9iZFB$vN*VnzJ$ z7Z1c^_~K{fq;%vUbs=eJ_ro<7z^Z+gtXPRf;xYg>H{m@gKZWNmvOn(x*9V=Gecb6N zrEq`4$0+*i(rUX%UgMX6-6>#gh?&RRT4Jy4zVNt|e{op*^Zb-%XqYpvv&NIq>+H0Q z%-+#D;IU*bA|VVQE^2twXX};=tR^ew%hE`>lVMNu!kZQS8jEu#)7GY!dK{^C0%G<2 z&0}KqMJ#urF)ii`y8=PJrr5yehjhwz0#eVn!|r( zD_Ly$ua*&wGZx1&&l;D0mc0u9LJ3bV7dBj=isDzi%=<9? zWCq&5OXRe@JBDz9;U)DD9Wt^(A8n=IQMRF;3=q1lz4FwZGW4ct)_1%dE!v@(mzn9* zKqMxBGF@^%$}2L0j|BzkN;_^9!*O5~$#?rxK#OsP@b>k>F zk!$r(7H@{PCMz`XO~DoTl%?*J8_b!HVAg05B{m@96=3WQ(%1^pd!LlxE#M!D(B~^UV&ckr};gk`+&YTa3v+k4`~62~xF@wyOUs z=r0O>^PZ(tvf_n56fZ@)ZSpamX|7vF+f3SXw`$UjCwL~wgK*_bZqt6f+L~H>?`wP< znPG;&vz~wb(-vw7@zqKH-N*aAE%SnMQ`8meORH_)586e*pYB>N+1CRi^Of|j44vJg zIgj9nPDk$*E^CCpH6WwJ(VZ-W#TE`5fQ!p+!>B%RTm*|PYI-@?*B&3U{RJJEtps|@Cw;D^P|~oBYvK4*TDg~}d3K{nZ%AiGoS@$;$gz@i2=Y#G zo5D>3y?zWcxpNAl^TlWG(0a)|em1`@A^a$8nO<~cCGE114y;LC$OuF(aj96*p6dhy z1{#cj3(j$Sq{_wnOMjz}c*?AzHU5!InWD}sI8qL*18^AT_MA}Z^(AT3+b(SvX{r|q zCbdr9u^^el_IA)2I=-cf2P~Ujx5p1W`0gDh5^TA`(5i}J=PDz;TauPU_bV=s!d&2! z1Vd}61wMCvOFZ(KRKvvfc{(Ey&74}h*fV4Z*-r_H7nMLijNmIjgi&owc|Y_0JS+cX ztth>yU#-_igXF!QV?bmBFKKl^(7P`pc&f#UvTU zq)M10NfxZVw!{)86iD6Oig5Coglu;z)?L9SEbb!a-$N=ty`A#ZmR^_jq21wkfA$?| zmG2GBQh{Kun_e?~vkB$<5M?@dv3=oFw(-1=b*)pDn&^PJkB3lRCGDmX ztvX4stDtM1E|eRkbNGu{+p6xoL0YgY3o`YN8rYHPCwD7YJ1@eKpwP2qjs1p0H}LSk%Ru+|rb?Kl zR)nn;@vdn;1(pe6h$G#!W-4bt?Y(eo5X7!-6DF!7SPE-*gE;xC3G-t2!a-+5+b>$ApU6U`merZ#d-8t7i<>ZWkl&Glx6nH9|^-$v^)YXLnAtVzOCpK zhwQrNjGThjEmxau!FY+?ZReuPp|BW!jx;0E$>39U-i=G;kRcb!eFhj_)^U)dtiIjJ zh)$E=j5F(&cl$-9LNVv!Y3*-YNuz+*cnV?{KLw>(b}}(f#h!vvll51Z;0uI!mYd|( zF@jzZx#tvA6_CvqJ2ejs!OnzxuqVdZXHpa#;_|K%{nqlT1L1PSpoU|aN-hRiTrw2U z&e5GAPo7wc%)hRu<)cgh5t;sYmA}b9cPVAEqQZDMdj;&RYUywJD891&-M0kkx*WV# z=xuol!dM|uM^>-jk6h9ceJIm;UN_U`URP3C+U2OwzCPKY_L+$!@6-)jBm8v?{Hou} zYZ%KoztyBl{hHx2k&9LjUr4dfr#%hV3*@#5fPd0`FjDrRHvUbcp{UhpCCD)b$Cg|gSQl1|P$x4La&#$4aeLY{AF0!1l(PVt{X|(pt*7l7M$M|FUvOkyO z(2{#>#X-GoKQBzj#%|rtuJ`T{xS5*d{FW>X9|`BAAkF}Y6>(ple0z_|q}qY@XqrkoRdCXY|AMVAt>7qMg44 zm^;bm#m@LqBasl7MK&;6q7Kz9n#K#rA7Xieu4-ry#0_q*pSkq>nb(?j527 za`cP-4`;Q#n)Q>lw|{KK73x$X+ZGN|GlzSQ)%(+8>~(;HdhcthaNi-{ktARE=%ys) zzWoH5UY@{Z+g541kZiFL>wBqbY(1b)B3uW(bVTRl*Xh@? z!S>_P>Xf@e^_z`XZi0j(E!TxODX_o{-8B21Pk-AHZ~ci|pOJC~s%#nt5#CLF2CY&vnCAyW` z|M8_8WZ|#xs&oXEzG_nR>Ug93%5xx-NL*L~bzR~@T=Z?utNcB!;E|4t6p!ntviINztQqlxw^=;>#%3;4dq!PCMx;(!(6cgQENwtBy!av@% zcXfG6O!r_HKHi#>AF0hVhM3QRRnpW-kHt%ZLG;?3m zr({u3y`SlY$c=QE~u z+P0D#(FvpSZD^PrN_r9@E4$4C%)Y@Px- zb`Q|ZFGbsca8cin=}Mczms$BaVaHyGYM+8o9iQ>J0F)C|O&+R*3k1EqjZYQI%oVUR zd+HyH)rWg9g8KJn^n|)eRl13MvLhloE%NPaCspNvJruSbHou=Tywlib)xRoy#~Co% zf2_TC#LP(++Pc7PmJ0upsjNP=Mc$oj3F(qA>F;snt?q<0otWMw1toX2`}#MEzjLz3 zpF~4{&=T3KeF=Ai-k*X3+xX*8LH&8JAZ0MK1CY5M=fA2Hr@#IM&Xb;f&qN+Xkzod+ zfI`T_P@xBSCJbdaL{RCQDw*B?XW4^H)G+FnXhUe}n=saw>Nz9AcmC%I>nGVg)b*oKH@?VC zFD?Bj7Hys-TKrvflpk24;=Yq7!24?pEJUtp*q##zc4yRb4;TweI;kA8hU@_2r5jE` z%l(jrJxFaY@fd#{5Q#uAFbddNlm)D8UklvGnIJ;Dt4e&159s1$%Zx%gdYrLK5( z=vwOSo3s+&OeBb$zGMdF#bAqx&LhjqKX$tBm}1Imc79VQ#AFVKMXGPSWi|z%m>SEy zW&oh!0s8d8{xDCJj5v2+_kLH^#w?S`UB=&3N_D6w4;(}@y|T&;Y%07kwq%9{tajf* z!^_1RnHe99WDd>P>t1t|)MGmX!#xG^vTqwMKb53B$(Yc({yyk&*JhsB==MRbvYIN- z1l!a#X8QJEK1(&K!*%IZFki$hq;l@rIgTwDcbMwa0?K6JXN$HSeSL-!Z(`DFcbN4|6tE@yJfLDoBp%i&a}H67wEO*D~h#50TZLC zBU7#wjCFi@3X~;`STlYY!x9=uKY>h#bE!JYsQVPQQ7QuK~nUWYYhA`1|tn7 z^D(BOckpd$QHuodTz^tJ5fV4yh&70x{$OEu{f?pNbO5pc()&8^B*8Q2qZHpB?ROaD zHU~j4$XGni7;m~TIcCi(bdzSxRz8Wbc7Lb~yhxQc*PR0b_G19pI1cxAw44HS6xVX@ zqitlHR84c!t4uBKz~-}iNe*-hJ~w?p^MwE4IYAGk3np7d)XMBM(!_4}9 zgO{h-)vZC8xi%l(1GC$Hb1z7>10@?ZG?iU5s6G3m`a!u-42OiPsCFC|3h9~)K8!gel$IDWQoB-Zziu1qMh-kTJsHpn9%!FeCF571r z8A{Q+3M=WCq&$WK;tjZ(?Z#K+5SaAnQ&76(KYb&8@*c3juM@#jcgPHtUqC25WP)cq zRcdt*f6px)HRM1+{q^4QvgwGQfIDaT%}4uEt7sF)_(WSXgS9 z#HXvh$Re4Yd{XeSczv}H1hv)s4Q6}*ctW1(0QXhCrUWfdw91=msgaf~@`S9QYGgjg zQE^_{aczSlucspbIx<(y)RI) z0S*K`@lo=sJiM+?JH!|MZBAVo$HhspFb=8a*`6qD$TG#7&4(J?rgI5XFVb&Ix!OM! zo#sArkV+S1*4fEVlUU^X(FJ;-Y54xwQiNru1f$?>$Mr95`hT?Z6vyuf5oExooh7Rf zWw6jLC__-d)D3*@N2~j8bs;J5*b?l_%dVR#m;I1`DC^Xy(0Vk9@~eVs4-BIR zO*z^hSYnw(+BRjl2Z;zv{A9mo+?KB!eJjQ~H|B8${cWXNs=-6S4p2lb@k>N|j^ina z0Wn`>9;P<(rrX`AEU35B_ngFqvuEA+5}tMm8hP+7e_d*9f6ua+mmvB6%zv(kS98B_ zOM9ivVQxRiM~AXD*5uyD$|b!EXkywso9zLosLGXfj&Bo7D!!9u3cI5%+L(dtL=`Td zOG>l8Z~TGAs!G4hL%31Ua$gzX`8{1PR93g_@BSd#ThjQ=5G&-$pPiuyU?-IFSRd~l z2mw@KzMMzFgAR%H?c$zSCGI1>HNObl$yl~L^o91v^^}Hs#lkTbqm50kI^B7?5KM0M z?4Srkf7QyCR|{7q&T2YRyc|Z9oPe+_D9gnwhz>|3m^DJw)UPgMJx>^sGo;_Ey33*G z%-i2EBRS~BQjd11`*`vA(QSD@apgdD3lpQmj?^WB7A zLrQSZfa03~`79UV-jsc9)^_E5Y4=Uayrh?u$2zRWAKV zQJXb7pU!q4!&_RhNQR@;760hP2-{gxtvtl`op zrGQ^|-Ry5$8THwu*Tq43NBvW);qZ3;ux3?ffw~O|zV@Dw`QbV87+|RGkqn$s;@FPh z;NJB42ATb4KIH4dPdjg&)zG68hjxErz^Frb){!0n3_5)0E7gHJ?;g{=X zm+y$$x_4XAeS5%o+8+i#jMc-J3V5Po)jVZ*WOa@wxs`jH-^yK4uh`5_0Fm!G<5d9? z{IGWwO@h6#8iq~}GOk17mur(=F&OL!pD6cUPiweDKjdqqx_u64sDoA7X+2jnai90b zV^f2k0855G_#sTTQ2N1+1eM3u7V^;Y&j8N?LJcQ1Xz6@~d9)YwCKCXE+RnPAf`Gd~ z89+OOe6sY`FB4E(z#(l~RoHiLrKvghmEFUbSSkE*VC1dCrY{;gY6tkS?G;3}JGcVm z;9>=c0$uFpd^YZaPyynN?zLH`$)Sg0#GJW0Q&VI z_=9@tXz0Z5AtwdiqX3vjR&BvfZFJybY<)1ZL7(fVDO9UE^2gqN7PEyV+VY@7CPgw` zJwe90k7|M}itRp5`kbMP_?p6J*mIR_W8i#gs8O2cS`H}~u*#Y>W_WSv_SJ&6bUQr% zn#F78Fv5)29p+%9H1!Yp^r@Y2_gN*#?@pWv=CIk;6#!7R1TI#4$%KBinfuNRTG;vc zx^3ybh;v@S#E5dY3zR)V2>-Dwq#~NAy!cMQVxmU0{_gO$|Jl&oDRzN}Jgf$yM)XX3 z?>5z!%0N)eQB;e-f|%5TDeaA4ccU0Ka8FTD^nHtB_C+u4l>e?=LD{4NZOT(n$Irz1 zs-P{smpvnjJxxl1CgN>5T077BSJUO_dZ1N_cpp>LmKxJ~ z9$&lk_>~J;u!f-92Vzp%)BJL)o%K=as;OduYeUR*r#G;%uSlQ==K8uP;t7~92;O$m z8aFF9N60&n3d#p{}dGDU(pN4i?5+8uxq&I_>m=O z9I&V1|E6|;=jR$$D4uXhWz8(}>_BK>6bFMSubpS_z&W4R+h|d_2FfF01dvGNnTnT; z>+za2!NvV-VfqkcVA6{5bqxqf9@vz++&E_8T44Lk-B++fO{>;SCh+<>YlWTiq(o>H z*YO|o@dz*Og*C(3v|``ALu8kSsW;krP7W*V)h5L}L?nv7PVIMU@J&4qyg%>wlXl&p z6CsTET1~N65q4d0OSB z@kR591Z|d0McS8bsJDRu3_c9M-7i=hGrnc5m%q^qa`?fwDUA#GXGTiL;^9k)&{zml zm^Jpo3Cd*3i@_x%rCzz_2D{PHNLfLH%dgzXAyE|lJO?xn&^j~l)Cdq()Zz-4AWZn9 z&Xb$TpYg#D5Y<^m8TS(0rL$a!jpy==?hl-ml)2boz)YJN<1-H~R{Hxk&b=$w%|{Lr zrD|m?HU*?j{O6RryAnCgi+6UGFQ)pqxrZi(Hr!qvznddPbKCH@!sSD%r!HsQ{w{<2 zu%xV8R>X7IZuH2L*tyP-mMRr`RJ^OSd>hqUir;;_DUu0mVJ%1xj;q8u$a@Usv?<5K~+fqIfd58j)k6TlZGNN23~wd-@>C{&~=4YE3d1 zPY3LTy+sqSwWVfcW&1ciQ1BY@qTKUS(1CbRAfNyiaH3l({w@?y|8--`E}5YWf*%V3 zfUh3Fjx)D{UA3KYma$6ia;je0xNz-R8G>)}6st3z8uCUCutD(Lqyuq417O`4ZaMOW zCI(4L_<#N~6|dVOeG1a?fSiIT9-V>~-GRVC@kxyb*mRBrckpmub%4EOFlhGle)k^e z_hdW`#K;U}I)WtsFI4GcBYdC|%8SS~gdX*9#y2ift+NbxhXxewTb=+RiNzSP5FaqU zMi$<Y3XFQ5>n{m&NNVdoQjEB+O$If&WlV)4}evmEkQX-p9iLJ=6Z zA{3f(ad5m|QD6AyDO3r*`9^(vrhBMiM|W|@o9SInW6^haGaT;vLo=`GK>Uj<)--W$ z0BgT*&N5=^;PXfnxHD^3lKdk^W(h0&QbDE2oAbfN@bcM}UlO_C5N|Cf%vou5XULsR zD8^=P@{@p+IcTpWbKpfzBu^z;i%>WoD#GTsR)?BhVuEX9d z+dpV|hvoB)q_7%^%oyJ9lU+$~B-;eDh#bB+-U+f&P!kvh$308g+`neBI_8%cZkjZL zPrR+5_zgW}Y-1!dY>rq%q8yiB@_&7KqE{^A;qk=dVP$2kW~h76xa7n5YX*WYXG+c& zQ{2-50jg#8KTeM7HzRVLd+-b4rHQuKd~yw!C)|>TmKZR6pDge!W7?qkS)O+)bQ6Wh z+{Is-c~u9mO-a{^F`f;QxRH0cU|F&Sk;v4x=I4mblRv1~nCRr$Ex~&kjfrJ@^6&Ma z=6}Q(e|Ji@`Z~3@P@SG~MUv7dL3&@B%y6CH9;Qo5Q$kR*W2Ov-m6@)0?{6k64^_Q1 zWn^`AcYia?EB-98f5I&=`*O*1k4Fn>ln3Jpd#TT$>;?E(WFSLU@V zlWz*S_43AJjg+d>AhEaiPz&0Uc8%RG?)PKE@5{okDDEsEfyFWg&hw@G5F9gm=@;>y*MkkNsSV3?yYP3*RPSHucYSz3 zZ`bBbE5sC{47&`&=)-tT7AjDIUD~vWfO<1F{G%P^`lt7D2say|92x0(rC3l3mkqVw zP8=NnLq3Fqv4K5biK_T}OW+qA{a@u`4}?ta?ekra91qwtMo5WzUwThX7VQlo--XO) zM&V#nMGMQnf>XGZH)O5YBd&j(V{F`Ei~&#)HleK(DnKK%@Og4)Bf5ZnK~G-kfnwX= zu4x~aJ>93ag5Xq?{klU-T0#vKJzjWGo*3q8!mX_c@f;~eVPQ=2cKpS+=V$DuQEdrJ z4K6m1XiL`WMZlw1{-o|i_`}+bVQvG6$)b5*S2A0p%B%{uG55wV=j2yLP7KrpyTxbc z4TUAAFWvkQbz{Bj!2@!_#2#QEsOiRQp(p@QWJWM(Y5IGdpM<)!o*7=XlwtH8JfHhg z-V}d%cIHP0EB(DxDkmTl)g2(gA);Ls!FDJE#uec!yu%#|H~7D`eqL~woEAeB?!Yzr z}%4%k`2N|dwzJWYkoy?NYt%lU7# zP;AW7=1E}eL8*tnq+htc*@eBcR>Lky$(|+KRZ;@4UU`0a@t$QYL3$Y+4XcmaF2l}2 zqdOohL~qX%(ob#utm3KruJs(3C6=Gh=n49M*O{r32%PGpqy<9(r-*Bh7VSWABZ`yK zYRWEn2^HeXzHIeCx6uN|RQxcTOzgnqC zpS8JB#5g-d$UTykadoUqHF)?_Y1txqyWZJ8x&rn?Pd`)pDIIG*i~H zaB+CdL7$h%)g(8br!w7JU|c~{rh!+062*b?f0f~8$%Ext)#ZEq zSPcYHFq&ro9h=~Gu;GX(hyyawW^iaGOPjBGn1=LwuFT=4Srh#bAw6ZX$B<7M{|DPN zt4uLNsrKZgKi(I?+`wGK)_g%FC$fhw^Tuj_`qoQkfD!z{IPlpRx7~SYJAxAkLa%ox$jh#2|(1y;b|Q4Gf%a;V-ZTzCu?|& z2rRZvVJSi)fs~37A>TZCOl$U1D&1Bd!}w_HyNZqa5Ia=Lr&-*ESRL)+)g}!9W&>jF zC_VfqLL0bFdAE~fJ5>L&D@3^LqlwGpExDRilOIhP+CjtPPJC3!KQwd5g{8;#cs6lF z3;-STJndp+HNZ;raC^)8K5x=UVk@^=UN)pL5+mf0i(UTq$_&05cR(suMoucuTj3KI zJT6XIj33H8p13|TjMuboSMItqtu*q*OQ7jez|e<#qghUUJuZ}J4e3SjZvkA{7|b0O zHG-e$I`OD`y(q(Dk!vuzSjk-XQp11~YsT<>SV6k?vW0%YxnHRacP+moFt>N{k`~`E z3dh>iVazQl6FpVBS^VU$4%W5?_3yY1WzfTVE`wuTo?@=NY>avVQF}BmC~^1G=&1HW zSZr*_BHGGf%J`{;To#rvef*YpFsWkc&8L>HiTA%{Y}w`Y2u0f8H;~r)*(t4Vbz{5Y zoWaFH{Uuy4kpqtVjYnb#ODxZ|8QeljgA&{Gm26jhJy@Ea)|wOpXe=m~}%T_5y& z9LHFNzL-#@y$K?bNDYT(+o_Xh7guIUdCoD)0{2(qh~d4<4l5%2s}4Wc@)V)zP|Wo* zbtf#e``i7FFXO0yxF;9XrlS^Z>m@Z8h-o*~j`c$=H;Rayop-YgNO7%_b{z?5@$xLU z>wZ&#C6iN?CoyU1JJS0VWV%N*5h|+Q0J`#?2n4I^lt<(QA^@004H3<-b5X6lc*>4e z_Ho&oL@>Ks)AO8MYg6%-iL(zGuSr@jIbC4)ScE&7q zN2rd;`jx``q!nOkQ&n`AfeC*p0*}(IL`%sXb7PrCekl z8-7Wm!)x2lhM@m-6mB?5G!tmctUEIQ{xC3s=fQ|gugLML93P4=U5p}-{2m|UwWFo} z`BQ>}YSrZZv)7JYehdl(2cxb^H}kavP67ya9##)Q=Pn^pFBflCJ}h!mwLmZ(nDm|h z|lCr!}6@y{>w&_sB@NV9|%8y6Lkve)p$LTz|S`--Rt3#Zi{jN31v*#8fZA? zT|n}+fk@(ifAgmz^AzOK_aPdmhi}?%>M82b$Un0zc?nZh+_&>Xhq6(G;UuF~9pG1# z2`8j7t2^-Z80Wgv)kmP|{jL)A9ji!MA8#FS7GRC9YuW}j<9~$>WG|+6U_~7<8Sl*B zI;bu8e5;c0y#xKJ9B~%b&b0j~RTtm+IcnDN$X@8#Gf@{Sj$2M`Jw7*zv`#|Tjz0Y} zF!Hys3vxR0PZ2z*V#OAxnS`e$GZeQ98KQVS!t9o=a4p;xJ7>Y9&uQ0{$E|nGN?we) zNb3}IPnlR?;7$7%ysxi6b;cCy|B-}x3N`;GsUSaw@_KWU;X4b&dm;ZJ&ii-Btz^P7 zGgF>^*EwZYq5s*+)5ON__wH9xUNQs)YTcsF`RksFJ|Vy}s$K|}!_~aR`FT;_@DqS> z$~||+3b;{RFj;{7Udi2lEQD}Q*_AYdH*|fvrJ#G4;$-H(1GN8FAUu?tJOZoFYMYz9 z-kn1mMHatM9a!Q%KIh4{j{7>DsHrFw<0%_9^@3Nl$&gcD%y*@JU<7glPgwNoM8xD= z+nQq!Gbs#mHVb4c>?sZ8D$&fK8CAGE?bCVAN8cx?VmXk^Acf8C1Ph*m+>jjj&Nfs_ z$Zo7mnctwQ(YF}!6!r7hPhxL=0yrpy!EWD8+RIX(y-cgy65Hf z^LrJ7kqTdNB2gCyBb5L0bLz?ct!#Mj1s3|vx>jk`CjGd=jR}1j1)Agwb#*CHmwUFk z?>T8b`@Sv>;1E#|%x$^JmrHA1nk+G7M#LD}AAPsKDaFOt;uj{6(#jB+=wI z!7-{&OEX1SS-!dCw_YPP0$a#S3yAIAvY=9&--y^~m?iaKj^fl*coWJ8%%VrinuWiHX;myT46(X{ zYl93e8A@Ky8R_m#chTG@4did}!(RBgGr^3~1|2?6T@Us+r=QfK_&!5La>35Xf|ij& zh>ivk3r&J?Mo17J;iEqXEiEw@d6(czU>C>tY!idZ_#u_=V;&K-CZK~tJ$v_F7Ju?o;{Y=EDw}I>CbmxCCOG~ zk?F`iuxh|LEi+y8dfv(yZ8Tmk6H}0rbQBnPq-}|%a&P>^x(k8z(+NZdfmn+F{YBY| z6$e~+Z4I`b$knsx9!zPA#ESN46v$o`$oRQw8Qd266K^sLeD&fGv0 zN;Su_UGw&3>lBdKJaZ(F$$tvMi;N4q=(dBnpO+WF){~63-uc{q^SEep!3`h9w&hI zATbCEZN@N;8h5i8ZKhvD<11&iB;-Wt`G!^)UP;+H%Kszhe2L63Xcc@O`vD_o5xbdIdqpPCyJ#zppCd&$a+ z_1i^NGB9(#r92MB0BS3u|;}G707K%@uYnG&R$C5Yanih0PosD z=K*Z2P^Acy*qv!Joz``s=_})dQ4h|#X{4*9(URSqq)#p{Y5c)eZ8WqU2wP1Scd55< zt(P&{AHzRx@hgUZVludyzR*yM+!=@$6)E;0FyG`=8A*EzE33duWT8V<(GHlXP&ntY zJbtM|@p{qL2E(?=>+G|((2J7vyp8ndtK`mJGK;w@DM`8853D(m9ALf+KOs}|s1bVs z$FnS~$5Zl%engW;ZsibCQ4J|jJqKTxp10d>%4(O3LnSR(m{c&VSF7EKVG@6JNvBVO zPs=ff2&BS9Em-&DY2xn{pP5=4_II&z^q6AAT<+x?a#UX%nS<1UtIFS_Dz-Z@iRKwj zdDg_U3q6^7Q_*rbKVj#YdDdep<~Y$>Q0Pnq5cahDB39#1LDLhbpoRnzxuVSrFZ)EH z214z5Mm}DkTM`*vqnIpNEb(4Us%{Kc_Stm85H#W;6ThLqT>A-1dxzE{}omhk5!E=L%7M&*s`GI zm^-=Qi*Fv8<*nUxruPVLUqL&DcTlxeBe$yMpzAM}{#i$_crhvl;2kF~yas z1@4V@J5UbIw~nJ!J`8xMZAA|wq)tH(!FWkTBEsD((OwL1gjMZ0xsdDXT`;|=VSw|w z+1AeZS+FiEBCJ|$CI5}kW~J2cwxXdkk)f7E_Wh-`7i10cj{w(2?4=V#l$=?tI3f*v z@LT3VtcfchpkVi+?xtKbdMy2|F>GRe45o#^n46*Yd*F0hp|sm^1nHhU(C~qzOiF>4 zoJ&*qXx2#y>9fqGm@2u9Sj`tJGM?N9IoDK~3Y5SYGbmn?r`wceaiwB=f?&K^fAYho z^*u@@_wyFx{$`G6?J94^@aE$mBL-S?jWpMG1q&k{3ZvhHRmdIOG7B)g6#3o4_qr0B zty#s9-%^*FJ+}QXgJkyE-t^EfA5~0(QFCMlJIqU*4fZNN(4$}mKheW_Nn!T4^?d_( z_lJVNAJnVf5O;dp)u9`IE-Xs5=HV-Nuh+9X?ekuEX^-LQ8{+{u1RD|RBHkc)tO`b5 zKKG;?lr9EV0a4UDG8^y#$yIVUNmURp+HvxQ$z)rj(TYPj&z8j<^~sA;!6GrSH`n!k zd=)h~x}j4v1Eh(hE+D#ucov;Iy_kr%hS_aR<+@N;@@mi6p^Y9y?Qy-mG-aKpLDRXA z5XDR{IDxbWk-otk=i=wscow{($RgIWTl@XvxX&`*#>#4!H&?Vu-Ln@`=-=fETN!A3 z8f3M$ERh+^7m@gTuu7IBz#cM)+1%b_btUuF#7=Pky6POL^mLHXytjr*#a-+n4+H1H zMLNj$y`Ibfi;&tv+|-h<*Inqc$Av^Z~U z7o0AFWxXlzMT=!oFK5#ruEZ%^(=1rWzm~OKOua8PY97zt(=LxR41@wpcM z2Y0xRVVa41rY%mq*>K}(nOjaoyqjVBP!{9MA%l|2Z%NLdZl&}f-d!Yr1oZYL7#zXj z4y)dcZ3S(djG8RXvFLq)&bgX-UAl=I+4TKURq!K zcBPEVcXh1e|N0LTd%z|X)n;WQ{t#FM7|h~BRvNSOo3Jd&yC0p{sq>bv*%X zEBdru{+kYpV(H{L{+Yk8(>#RT-kNdxY5~-Q?mJ()h)+u%t%(03A{WTW&q>9*LAdI@ z=LN9Gn;}sAE!u-aXf_mx^(Q5kSkRX9b9B~3iLoy~@%DQsJ4d>R#!wf3+Qt;ID95K| zJn$#%dgijfs+>D3E}nuu0lD1RGJ;J+7g>drdf;`&Y-z^VY|J0Z$8@i-c6jM^*%Mf` z&6HbWwyuYwVZF%LJqJ2V(0Ard(iPI%Kl22yj_UzOMKIutzTlgC^w+xixne(fGsAt0 z+8KE=y0pjmgELhb%`Z%sW=@|WPF~Rj<7L*K53Y5j#?ETAor2;GUU(_JJpxY3D&VAT z*g)Ko*{C1nzwmb6@l?n0zdu5DM0SytWM!qSqhuvfvd1ZVOURMK5g~hpB2>uU#~#Pt zBb#IIjKewTI60&H?f1LC$Nl|rANStBZvW)b!|8m-XS~Pj_59ewJ7g7%r;$KgGa@;P zvb9C2tR&>MVMnozV9}}ag)eU}tMdcRQH&w;oa_)zmX8gej>+lf899oq1zPb{0q3zv zOd5};zZoDbtF2Idp1dPwo6y1TIPUkvkp{bS22u=J))meVc9f=o8O+`%&rZpoA*SZ4 zs{jpnww~CIz=LptM!O>|&7d&DsBADGgb1DAPh236kuPEvgt)zkw&{a-Wn=eJsf`y; zmKyDR^Bmr-uJY;p5n2V5+a*8=u=?o0ZuKaFk7{BpT1{B%98u4*)FZ+3v&;?sK5>9+Z$UjA)xWOnO~6 zllVK}>MFR>4K8N3Q0h{11vYOz=g-)jnVLNb2TIM>z}5A6p%T_NI;R2fD!g)x+0g6*t-vFeMwYO2*6S>wiY#a{>!cyt<`+G*k=U=ntwj zy1NX4{4`0!s(6#O(9E=TpX<+$ zPeqr@K}9J=iLWVQ^_IJRQw+JcyK z+THm#`h?%8cXr^f{I#O-a6qp$r;K|53B_5+^W?qVPV)cyYnd+#8BjbRA1HO?Wplg0 zS@us&|2IA5TiP|ZjQ(trqJ!z2!3Z!~Zgni&Mk4V2&swqaaz7!DB%uWtT#YrtvQH)o zC2$!Q`t2BbhZ+PMD|Asx`zVP-lr7IKTjnobxL=!1=Tn895`ULEswl=No5x1*`WLl3 zZN!O4oC31297crYzRqVse++5y+$DPHLE-Ug1L1|EIvu^e`l6I+8O#)T=`xj*rv?j( zy~|wV9^a}ae0ilWxny``wYXimQ}^avBqW||TAhMT_~yags}zvZoJv45jGW)VwUR!Z zW-{~Rg&w4Lzm;3TJMKejszN7Cq5~h;Oh9TaOMT>eJiIB{Q$O3kY@7~zO#yU4w1Ka4 z$JeeK@VKM|51~%m*f7N|uWGwZoAl#)zljiIdmVDnua>mFUuQQ|@6i#7VSSUIFh53S zV8aG>1q;f4RQxA?wP^7ND;w8 zFwKeTHYvP*`A~7^14>-hB{v=6mby2q;qL*luvMiA>rF#Pr?1S*%nNq7Gfcw45+*?d z%il$aVP=CC^t~DKTXU|SG*^hZrR*yAX`Zg0eox47Z=(5S@bkoi4X=X=;QmEPxd=cG z$lT?Iwd?h_5ylim)k5V-wu8qvIk;HQ4Q^Ul{_!rDCyyQq&+|<=Jj;J;2k3o=*2=2@ zRFOa4599WYfmq&P+X5!h*@``|+5^VO4Yonu+ZDrRb>qgJbx^;E%cdz)I+MELdK~c}n z2^-lnb1sSdk?m3T{?%CETg;*O_9scZG@W%3GrFs{GWC5L`SK}aDm!#j*rys-NlnmHXu zu_!>WJ+LnS*;ilVe)Rg1P;=;=%>IV>?e*1aJ)YaT?C;Dk6qztLDgh~-R}8oY3{2>Y zcs1T1(H=fMdap6%+BqHtD1#Q6s~+Y~?^m;*(C+qad375w>>?`xoxk*Bjsbt>aG1!t zq>xE%%8*lr$Aw*6mu`m-CwXQz&fLe8gK=j8lzSC;iTa+32ng#AUfTt;-;<#jmH9ZK zn{7Ex@SJ!20z@heH@wa9f~q*)DEmRqBM@LwPt)IzWcMWy+!K*3Y8V4YcGcY61OyjRC~ z5H45Fdt&LlnfA1rjnHpO$D^#TP@8k;tT@y6e7tGMT%~r6=#1CK`k;aMtE9#5JG6Ay zfqHM36SJ&<%rMikH~So28qRCS$LoT6!t~Z5*qhu9#~4Vm;gqm^ts9EivXz+HEZ1(A zXwAe)iB*KGwwxog+U9^vvPgG$yYXQ7pD0x);uRrWStiaDFMOUI?xHXjtzvfa3w5=a zzRN-R!SLDZHknUX4&&5L6B5=g4N~Bf2#R|ga2EJ#8F-=You~T|F=!qAXfctC%QoR@ zHs_Aet-?}fTUqh*f{GmonRb$(y7Esl(}inN`g` zRK!{D62suoms|?c|J1}nZUrv}Gsg5Gt3`VfmtN@GPeXeBY}S8A&Cz)YaeCQ53Em&cDXR_w8e%c0LFW6#g+zw@y*z8?}?ZWm0`T&-xFwQ{4(ACzgl8jy;|`N8NjNcU0>Rag4x+f8w>^g(Ed$ zj}ml4_4FfDeTWyXNaTQ0fK*Am9?0RJ9 zR3gwvMeW&8PjBlF@=QyA4GiPD%b0%Q=S>M(nSll$M8ez({stuMsEsYSm;Wl*B?ihN z`T9hEhF2%e3m}DDWL8Z9&pRQ~Y^VPwCp3e1%-(>}mXU(s>9kDKr zalV%?bJV|K?y+Ugx6+l(dr7(gu?TWZ;|+`{%-uvJyK@UW^}+4kM%4Ck?f9obJ|5I% zt$p#QE<*KD=HJ3M+hRMDBBVN=4u(tUa!~gi3YQfxoqUU7oi2( zRnrp7y6g-C--m9g$P{fY<+jPb44`AX`hpdt46w``hM9aY7UT9t^1AC$*W^xa>G*yv z)y}>0LM{?DFh)|Pb*(ml&0 z=6Ro-VC&HvSPf$m0_hHI;m6qa5H&7+-hwK3ML7uSG<~Vmmq_Pyx$Z;zZaeuw&C%tc z4EfZ-xH+se6}cZ=yV9M*y1PQ<(L%R=?Vf}JZ%i6_zADpTQhq=>jketLM`POUcYNYz z3H{djX6;ed9~dc)Q%9pp&0XGDEN!KB^91KjieybCRd>Cb>3R5FRET*i-Ecv-pc|WYrk3AK)oK;H<hpHMx72gO;zN@UDQru=z$zZv-X`Rf$t)iK#$gG;?!91tQ${{54~WzMJ^~=>G{(+=|h``^&!e)N!7!Z_xX17 z%;vt|))qhALZX4do0=JK^pYk_A;`{XQY-b!o5Y2EHEx97C!r9k=XMIogWVLd1C6cv zaD5~N83dCiWfG~~Feht{A0;FNx|XaTJxoW1kKR60^r1GAs5pIo|9#vuh39imO} zz;64`bGPmw2lY3ZF3+WL^ac9cW>!*%t?-(>9V*i!<^u*SB`zMHg5f8#@}vCq8YWww zD8v*>IJ8ctKWc8Bn7L~q9#v*+``k|MarDEdG;!>qUyk5)&i`qDYGVYR)tBX=0&*9G zZRfqXoJMZD#s#hU-+^48FxmoENk{Rm;zvrv1>o1JUBw&-SD?l7Kb+&g6*;Hvl{B-a zwnclC#owmVZ1a@OZM#XiJ%$&QEZxP#tgG%z38Z(YRSDU@##)Hq?)7O;3be~so<+9? zE5SRixZ5V+oUsvk3;{Lxy~B%Cao=7}`fdXYqwdF@9D_cb)c>J9JN3V7&l;`&E}nyT z*tiSEy}5|5Si9%_Eh_3m4HZ~Miw>29M|$z0$pP#`Cf zbp$miA5CbW_^`vzGpMS{t^(C;4uePIni!w3^a__npWp-qUY?lR3yqNSC9SomJ^} z=Bq@@DBD0J^X@a<7b)exAchSN_0{HAWZ8JFhPYmFvF5GrT%kBTH9giQ+$1lrAPmCc z&MS<2ZA#ef#&tL|KE2q5UN#82 zSwY=MDndFAfv+G#J;^trkC2v*p^)Tm4<$4G2MD?>`kocb& zU^Fe`hn{Bk@iVFMi)=73sNN!&Cy(e+yBrp9?25;tUzd39a|?;3_fi67DNO}pDZInB zw&*tm^;^P`OP{|p!}z1N(8mBN&!|=A^@f)NqAOe=%5xS{oPvju73pIz+g`@-@sf@H znyU10#v4hA%Xgj{YkPTMv@SDy`!33m*BPf6CjYxu;V3A^(Bw*uk84Cww zF^VBZePE^|E)~Ygy$s`-Y2+lJ1{KOyaOAbRV3(w;3%aYEni?!iY6Y+6rNOIbT0Jm* zYd80q$`CLo+*8lTF3gb^`C@TdreeJUkh7+NYB3`uOS@)8r^Is z@`J^VGB51jATxzqhSZm{0R=>bw_OP-`%XY^t*JG}O2$gl^H|5e-#96AOKl7zN2dQw zkcIhTf2ViFu+PH8OI%O--0~Gac)W;MKHq-EE;(W8mYJ%X)%KkAz|^+5)H>9VW|y6P z5PH=6ma{8|YX2{YMa4j&;*?hk;-356Bi6{r+4y^l*Fxj*|V zcBNe}a-3+ou|UXT-F5hLh@g|W9&N2@7xc}>n4sCzb=xYyhYq9*GA7Dl#(Ku$R%le7 z=E96Ieeu$0Ka!Vcg}6r1khf~*eLrE>ro6!Z#K)ML08ZZ6#Og+f)N=_6Qv0}#+!`e2 zTpbS(F5&=wqy&-Itq|(-Xr|VuP!DGrq~`H}*7}>{r%>9Ar>x?zgP!LXy6KnjUf7s5 z)81(lz;k21%E*fN2o9y(BTbz z=Vrr(y^~rRCuBBbS2x+BB~OTn<9&?jq=x24YaOHe>+9VISO-J(I(L&K-scRD#Rgxf z!wYX0>BDmk*&Ax&4A(15=A*Y7xsuKN>Sej_Fj z!J#L0X@}d^r38U@49y;fW^2#CfOHS!ARR~XFjM%(7%w!ekEc9%VO`SX%(!u25w<^{ z?Y~0_mdpOfCAfhHpm|guNogu@OnQf!%9Mf^m+EYkigLc|30EzH+4_kz+BU0Bph}`7 zUHQK7yVzv6LAa|y=wDEcD3Q(S@kHAVqG+U9E55!osCcC#*R+vy=B=fmglR@fr(m?A zvp|l!xZc$fwcD!^aP{^4qRg358JHr3CTILJe?* zq++!zL=8+|ueElsnlQ3qN`3lkjOkRll>6_jJIc*5=HHXWgzeq@GZ;R2Be<6Iv};q% z;EowuMQ&xgcPyr(ZlK7^;)QyQY*+iQy;i<@8Pc`f5m-g&?-uVw1- zGvFPmdb=lmp(dby?dNGPB?fhcqbP*G%>ITD*oaTt@I!=K#Jl*gVy!BOjSIhR(?VRe zm5Y&H!O%_6O^5qYIT*|G$VU6>E|97? z-v5n;%#L*@@Iif6kGie}t}}nwuCJMZN#^SZie_F96_nf{E#7)i$78y1#kF{Nbg;Oz zTa2uPbVJ780dpW-SNLESn9?Lt=#JIXe5-{b_T3i>~Fi&YvM-< zcri}m6>ujQAsUK+hviTfw7{8`70S!jdG|l$Ba+wcp9=H%e>A(OBO<6fU}BPeci7#S z;VuoZGgHmrvDoy!oO*}a<<|AU{RKF0PpK6&bY^?cWi?Ckpde%3PS-{s>6B_`7BK96 zA!H+rq%nI8bbhI3v-j7I(EF=pG(A<<_>Pscyfj+t+l&}z&VF)`to^yN~^ zsfr^d{vOD@9hu%7i(KXG&eGN;ef8sKflhXr&L;Pj&h1SMs8!@G<+8s)a6b7V#CxII zqDlvUm$plE9Wr0jdmHM8`;2$lNMPIZa08?r`W%GkQ=Y=M&sNam3R4qpdY8A-W!b*O z?%b=Wfv=V$8RWr{@LHGI7FC-0HSB1lN5!(>>h-C|lc+`Zr~M~XbmA#zc}XK6xIUbY zd>at4ZmllB`C+$a%UbS#w`$hhSvWL}wg(~Pdaj$lOw|yR=`UU|x8yZrJK;wI9dK$E zQYP3Dei=QTfzXaAAzhd`_c+sdOv1kJn>JnUS5#WADd?P)8a*jua%;2@6K3T8A$)Pz6IgLR;pMP7 zYe#)6k%0YUEW#pj3gPikmN>LE=Hbn!vJm(oL1u*euERYlmO*oFv-2#tDj4(7AW9Jn z?02kc%!`WyBB?!D1ySy0F~Nu2UlT2?`%6f>X_hbgCPXTJS%j#B;lgIpyWkXRBG9Oh z4HHCx3Y%0)k?_{{$9CM@qbpA#?~s^>aa2|?cYN4-P{?196W&CbX?`=P3CHan9|?BY zU*P*quq1f8J^jUBE#0%Q%XKro(;`1nbcW1POZjcjf$}`Q_78x@qmrxt6D)6?x(Acy zsZ#~l>M@c9L%{I=vfJSe{)ztVHu^de<|p91!DBz~&U~9j8$F*As?^ugm)15b$XG|) zrrN)!5PqsDoZKTQ{JOETZk`R34PF3b0Ui==5;oUot*>4*fza%}zpWBVJJEO%S^5aj zd8+{#|0%G~WWj&>+W-P{Wq{zbWz3IR1_1UI=a=>YR)!0bSX{Ax5wOP_AlHECrT}t! zZ5D}%pM?K0)+Q}~31nWtq~`Y*bbl!jNYl`Ye?h6njyNisAooaE(I4WA!DgEdM7K!HMZ7_xBfpv_|2dH9vRViO9Zh))2pFPBe)l zd*tCg*TSq+PCG56$m(#iB^TByciAUtb+Np>H?TY$LXN8wMzDpX+!2QQWd*M!jcaPZEIq4n#JCuZ^q#@FX%+ z1E_qb^AjU2>L37G3{`h1Bz%7M&V5ei>DBYpKeo5kUT(QmOWo@eRq@@;*}DOJ)*i9) zkD@0cvE>KnhVr4VzQWBa#dRI_Z@BGZV(nB8_j{ESjK}{$@&rFqLSxp^shKZW>ns@4 z?Nr-cq&@zEDC;q3$WP$4y z>*|G*XH#Wc(I{b^&cmDCgO84*cpG{bXSe!@muWiNu6wb=o?siyg??^Ko|0}>^~bx- ziv)yR`}{5LQefdn_}ey(GzbbXsTN@eMI0`>C_UMFEZ+AOYTM~g9UpKabps_gWbn%H zlHdngWC6f7xu8NvxC@h>Xk#a;);ph)ROD+GMATGB7Nl|+C%lONEivtPM&leQQ{ zQv)CbDDaZNTDPC?I3nMn$+$p@F<14V0mp?~T6Mn~neWL>F~=TKlmb=mkB9bg`m;1uv1) zrCh-oJi=p|Aiv-vPo~9EadJN4M*0`H%CwdiI8(9VQalEFIsH`=_EUY@Br!RWF#okU z(~fMZ${3?@zY<+{uY+x>K6$nxQ=?GYRZM#X@Yi)75U~xoj{8LSahNwjK^v3p)}Z}C zjemKm-2>PJCxj=Z3)~u{?xYESO>+_G2T7-WeV3Foow>g+DLc6FY^q!kfj~s*9Z5P zFU0h~JwIBykHpRz-kMUaH&yo^*I)`sIakG|PO24kZ zsV_a+CF~i&ExZF*g9(5f3V36eCxgYzm&v320Hf)uFLDz6YH(9No#3iQ; z7S)FWku|WlL?SVd=hXOv=br^n;`r`L=f*i1&wl%9(%$o`X0PZ~nHMfK$2sCgL%*82 zRLoX&Z2DK`ejusqIfer6*`z|~j@kRAipZA0wKCn+$SoI-1M2r5qRlEVjcZ-h?LB-& zL-`X4#6gTJYffnWT;g*KLP+0$+okTjupx}@FNm#77IGti{q4nLAP#J28r_OFONLvK zfihKxLNF5%hR5XasoXDfdu#IzJO}jfCzqvfoO|4Rb~8^>{`IFC#-|SlL&WG3Ddl7i zksipok}hza!FykQ*%OPDE*k;N^zfw1+v){UwL-*!meh;1m67*Kj|AhwXc%Kd!VpcB zG$#cG`+$fA7y<8`vu}h#Pj`v%^;U7CdT7glP`#R1JomcBaY^;pmglg-ewyoyQ!7;! zebb~cqzgaG9-JK}UAU~vkrlY6YSTMDp}fGYw%{h8{9Ui^UNrB6Z;VM1i(EROozq?e zyx>gA4}4#TMSVn@$kM`Y(u&IZ{Ct2b7Egc=fjWrg~=+yt_vfL>VzK>>ZE)4 z1p;62C_h4V442abp_+HKs5HJ`ywFm|6My;9^}tNiXkBB9KhK{1y88zTtO!AbAb5vP z8#8$l*h&QOrkGiEtYqqD)5wo+K0aj~E*|vvU8`Y*l85D=m$K4BSwM7)Z}}tPFOTMr zbV=XID!<5F*e4|gF2Ot#pIn>fT3RBO151?c8q3PQCxs18varunT-Gw5+q_kO>hcxd z0W3ha`WMg8K+WNuZef3^IqP4L$&_f+YncRTG<`gc$6D*#cL}3jaXA3*iZg+AaSu{+ z7IWI@D<0`0G^z6VWMRoX>@P?nd3%{5ypel!#`k@AyK=u&J3mmE?9c)F6JDVfUI$$p zIT32ySaOp8#8$}OKTcGnR=|`^d zO!90)e~Xv+bFg@M`}lDsE58=BI!b+bECJ)-v!ghRhkKKO6BJlmjJ*pr{jo!RI1Urq z_5r&!v(3ha&&j35*Lw*=ZPr@XT3o#|oSFW#)|q)8IkQ zgX)hFoQz$PmvV1RJM{7`scHRLerSLIz5$LG)o#z3cUxy#=|)o9xHa|GNaod<#FZ^t z>R*eMOO@q%$nle3CiFn6JL`QRrG&xCfA;*SI8DZFEJj>z5Bv0v0~AGv4w_TIs{`)< zw*(ZB`&a64`D^?!ikF>#8t|2@#y!F9zBj?8Gx%Id8WO5PC8^*(w7pb*Fwl_Is6c|4 zZk?fgSee2T67WUEjst`g|3 zX&ki)!Bi)C4fOT8&lPfAM};Q4&%;|B(PIKH7B@yj$7S8BE4ED^08{N|@VLKH3kx)* zH<)4awB}Y>&&bEKvwAv?0O!@@!Fk~qO5*xlq7D0y@s+M4dc_bT^;!jGTdsFWeWY(7 z)6G53NJYhnL8`E^Pn+AiZ@hd`PS{33Ff_rFJTeQeRRk)ZB}BOiDUXBNU*#UP9<1vJ zmGydr2kjF16fcsygsVI$>NuHe>sIkcL^fqyFn)z_k9cK9Qi0uYx)Ys@e$gGAPKd^)#IP6FtunF>V03bSnes> zRYJ%FpdA8OTLLq#VWV=PdA`m=<*&I|2J>J-7)3JeEXIHBEQ+lg&Oy}o!3ua-3nM1g zx=2X{hc-U1V|;uh+o>+F4aYGHOi!&N?E%Va7Z?xd9}fbsG<{eo;Gk_^p&u$W2dX5Q z_uGD+Dtk;?prTX==92DTty%)JpZi7mOAj2U4nP3aAuyaocKUJ>CimKe@x2)pU9C5i z#d50}X3$?;(=(!f4Ef#h`IseXdtE-^y8f>VnqSfr{v%pW(FWd;54=M|UVf^L!-a?a zAe+0b$=q{dsQXQlvuSDUJ5L)rsr8k5*QD(SA{5#~iPS+y7$-7q)mqt2ygvj#y`k$T zPS8v7D{*d;5GUm*Xv_)X|+_~o;`9=4YkGzdkSpkRaG1u*8Zz9Q}`K83Sq zj0*ov)l1l2)az*C3nG@kap;c zScF?TmOtiq_;Ibl<;70PWj((a10Eir0P5BT;7G!=0O3Db{bmzjpfkk01vH&#Fp~f> zq=4W6EgwAVSQeapGsK<~5!~^^z}p?g!%mP1HOrMjyxbWcYj~fvWEDZhJcY#H7$dTs zS&=erPS($Q+26qeiY*kv)6yBEUS+6$i7gXLb{^6?Gh(NIteJMV!w|iF8#2ptlM??2 zc#zqwa8IwO?l0ssP5!h5JID`!AU(zovBrz8BSY=Mzbu}V4=!x7j7%T{fG_)iT+Laj(Fh)f z*R&U>YUUK9!!CGTPBcT<_wHMQKgjn82&ORx=neuM z6pZWmd7!{mG1(P-_vd$K-zB&HliZByPmPFXb>r-7n+W$yzpOuhyzQh#T)_h|BbD~- zis=bij;K)+sTZ4b>cyxbTrU@T2|OV!6erLDRQH}rXEfmh>lYI4F3h-1+iUE2cN4O@*f-cy{)z9~^V$6o06PRz!w0P9gxj!IVnn-Id1mkbl<#q|%_OxFqMgCxq zZ0L8Lv(TrwPk)y zMd+7fKNXmD_Sz4XXnnYIfq}pB6g&@z6Zx)@08RQ@rtin5$WD*7g&d}ufUnC6t(&r% zD!uv*Z2b-a4Ak_(?#1syRDsNwXpaXH0V-EK1as17LYBgptj`Av%(+aI;@%2Oa_U#7 zJs*J7Q+oT(UJk2mNwm`vk5cI$5+J1DvPscuG{G}>nq2TnE`fF>E_9poZWa>b3y>an zv#R0gNclptW_jh4NBvF+S2Tyv$*ywrC;{ zQEOZJ^Fd`FqfD;sMO&fez6e_oI7yJRHoww`VIh?GD zKIPbp|C(kZs}!RCOh+Y_{}E{4xq@m2>{>COqW%np?8%{8xNS(bgod^c8pr=MQTWu% zct-!0Un4{tTbSQ_E>i&HsB7DQ+fr;s@ zDwmn3g)h_$(URvZTxW)J9UDK?!B&O9wgn+G1Yt(Gxtzg_ehb};4T>4zwco_+lOMXh zqF`$0zIS!gx8gPuc)*)($!fmHu$i>o8mIqss7a@kl6NfOq@CteR1>a{0i2Gv zumRhK;I)YqYkJqcw}PsUJaMO^M^b@7^E+G%vGEN%sr(oVBq~z{Z`#iF7gYHMxYi+8 z5IM)~7-)g>7RK<;v+~-GSKuOJd`sN#b={dO|IztccBN?y{*g~Pp&stY9Q!s0O@ZO> z1iXt`bVS8~b!GD(DNh`o=r$MiK*@Lfv}B%CMST~Bm-uZ(4*S4e!Sm_uKob+*bs00% z=WmJ%YHiECSmqE|pj3*RP1}`tM6fs2Ho7t)BrdJh-vv^q=>y_!?dH2>NV{Lafe~&< zw!KL;?~wNU{8xQZVdViM!9Ql>h!l8%HR<`WHMJ;AWC!cg;;zN@266A;UuQ-`e)8$8 z143F!KlJ+5Db(pf=#+zx{~dAr-+!j~JN>^CCivi5LdD^DaiKoeVliy`yD#AsTDy|+ zX?E`xtAw+60GP!7pO+*+X}l!?WC?bWKneCVMh8$Ly!{U)0sypa@C@sK&93nC_w;#6LWz5~0C zg{ujhQ|V;insnbu3K5X3r3=s7p|;GE1K-bieDyNn3>ai7*czxm&Sa7(?sZSM#dJM} z*Zk$Bfo%)(9@T|p&MiOl^{_2ZSq+L*F0zY)KILw({Hx^Lo&M1Fkp za|u`3EU}2VzDit@35CBzu2uuoMR|j(i$pGfRK5NAYfjghjpVH^SJm>m7x4ohM*ZKp z-MN4D;@<056!g%|c4y1~ z1nS`o^V_m|L6|;+*=uIkU!aN~^z_@@w__%>z*>J%0AIH|Z*oRlrn1s@-L%^r^fo1qR{`b0cEb!}gzk+33 zJv1yZe0iwrO{qhR1_fNnZi=6y2J9Izl=08lg=;(&h`mt%4dxy&J;47K?Hr-(R;*iQ z#2P*Hi@Tbd)*Fzto+=EuHoNZK8Q(Um)7jabk|P} zzx4n~QRhqFf&zF9sB1oU$#YqXFw5J)ZIuZupKt*XTG%@o*n|qL)FrW3DsBA$azhXDjdW+>E;alW~{H~vzcs~!n z%I!~jSlZ2)_aa&SPB63Un+$0n-gVEq^uFs1I@@$FHjG>v2Va3eUztRylL_dsX7E{bTHuhm6p*M5yBPVsjlKLbQB2s2C{ zo4&3X9()CFFP{ z&kl{=s!;H->v((dThQyjpkTMmEHyfZBqYk;)}XOsV+BBB1o>n2a9{9FtCa&Hb z8k#6NZ&z0(S}#>s(J^F_qxqvJIqlPvjBawE1t0?^$Rw}WwBjBYSO(aq5#hZ|` zBmNZE;`c9;Q3`TR*iY*YSCb&4J4Dv#4c$oGBF6n~>;=oH1Hb-*t2<|=LQfjrc!w=h zr`{V|CaTl??)on@1cW_!fxpf(iogq1e1N6iiM)X|DOgwDm6SkiHgjD5^X3;{fPKU5 zMGv}G&{JLx$+-(|XbU3CzqJU$b&3po>o^>BsG_SzJU!;rx3XIq84a{s4pGy==MuaC z_jcV__xP$;$Yr;-s}q}s?l9#wxAf?P9)4yYc;Q2V*IboMjT?2b?!5k<{=^xqP1J_6 z0nh%qXw27^%x)a#d8nK2s}Y|!^>qmXtu9|UrTPbi9&IIP*?Olyrf7(){A=I{7&k%8 zjHp`~t5%PtKR@4p+8`cj=G#0J!{GMn_3NlD-J5r5e1|W+Vgj&ehglh_DKI4LIn7oYrq-5p1EZ zeI5KRDf&|$UTauknazc3l9HRR&bZbd`d_#a7f+Y&N_mn9bHZg~O_H$wxM^%%T{;An zp;fY>HM!ov_GiG`&O^yuYy45E4}%8FadaJ3-~-^Wk8gmHA)Uz1zxEN%T+2^I?gNgo zq;n0v9j#G;57k#&(QT|V{~5ut?|3j_lYGcD1U}Rmww!;TM3!LChjavsAb7}GJ`Mpd zCCfHY)><h_6d`S#rrEY49g# zs@*qT_B@^?9<>GWT%F<3DBmReXa$j{?+c5QO5Gqz!IS(9ZG3pkHQ?6ck#rJ{KM_Y! zO4O4!a|}hELWtQGu>6~*umzPd;oU1Kw|z~M2EU-Mzcf9gBs1Kj{(`IyjuRPTPvhrx zsql)0P4G(I*SUw@s^L?9x1fMe$1+$)9N}p3_jC7TcCv0no4{w|cY(L?RJl49cgyHI`wF}3K29|OFGWonPjEFW~( z86dH}mO7^Ax~PqP+Lf^j_A=u7Zj0(WQh#n`t^%Fi8smt(roIloz(`6B5; z{&ZKQ5vHeax2dLUY6U7B$iQiCt)!FHW!I(ZivsE$Nr zq=;n=V0s{M;f(2sk+~ys6%?vT-?LS(}M%(>)~|{_)i7Bjw7wT}UY) z^fkbXjy7UvyDcES711;N_IRg!D~3!x%a11T%Zm#G@92Bm6Dsp!VxqWgt+?!{KJ!U` zR^ubLuOJG#$3m5meGo>xV}N`nd$fmA$8WI0kcI zn3;e*0RElzv;@*=?EUOG1aHt~YI|Zng%%!Z`&Rsr?~aS#oJ3{1R;%!bZZX(#D4Qbl@v$CwXj04A#@nTtl18hyRH*UQi z5&7~`o$81n-I0TN$RG}3>+k_0rfB^_d@x;VK4RiDr`pE4TkhjYe&c7!QSbhE_t=< zzh1O!B{G<$iIg2I?^X$YGs7@YK~yMlH43nJn?Jtd?EttX-^``^Vrx?4hLbOJ;An{Z zq}DcpU%`r`YVvhFVU65+siL6mTLBR9?VY>NM`d^R&M@Ilv_m@Y3EWElCQuh)@F6+h>qjw1E&iB_ZVwFZ?3sT<>m+qZ+r(BQtVZQ#jXJJ*ZY%V&5Pt_xyjV^R zz@FY;me3aI1wks~k(!SW~m{r~`bf_#LL1!-H4HU-3VK+$O z!K$zqc#-w7I5PLoLu8FFtw83Z>c9Z%*$ySnhg6bNGN%4R199{SdUE2wxmvMrrik0d);|+#$>7H&BPkuYtB?w z)>oTgV4xMMtF4O@h~P5RzWTKHACi{7_$vtbb6Y$W9tmO2$0|Wl28_;Q>oV z_vr84WF%BK)QiX1I@ne+v|3Umo;`VP+4o8kP*u6znu_SmR9S>EM;m^=zb zcs+H|=cecSM|o!0AbC8K2K)k=Jks@#@nwsM_%N<{R^^q4sgV^(ZC3yDh<;EV45UL zob|Z<)Nds1+?}inv(Qk2Rhaa>DcR8&5!9nm9uewnMV)numpWtZZHy$KT<#8dA^XC7PP}A!mz3Lx~6oCN4udJ zT+0V0gURXgn%_6XKV6NxYw2tO4zKVXQhsRc?@N%69{vmR)s-LC>+id$%l$dtECY8= zJ9aSy{HX#jn3^?2o(z^kJ{)OLqiTuJ-iXY6HferQF8iVTTf2mO_>|qW zf#>VKZV-N)&nX(X&jLk2jK*mQOc|dmSalL#`-8@&gSw^J;K^ovFo2bjCSGCaJWq%P z+d-l;?xZqUS>1@1?sip_NziYIz&)lI5WLGpX8!|3#Z+MIXo^=E(FpJ1qbyYbcguH6 zGklR67$};(j6R9IP~qc#`-zz%<(51Ji4IT*{P+C*|Mh2zKmTsz7AYCvU5ufE4QMQg z0<#`tk)>4Qt|%t-$=pKF4_%fXSch@)hOOr_UTGGq?o#_#Dh#WUz_}M)O8V2~H3W6& z$nPTwp@DDsw~Dn0CoYL5N13b5Hik$S|IX0l* z=kaV7?9I08qjJWF+7e>ZQ&JK54xCNnNR zTLx?k7WbTAgHY9+CX_<2R5laA7Gfa!+qslK4KIvqzE%TcIe>l{1wN$*cqwYlh0aZy zxLlWf%L`7(>@VmDsJfFM0VlM%V9&_!AvAwMD}d^Xn5xb{fo3O;!@JOGfHn*`^x`jwu>J3_ zx8y>gm5+i2{RMsF1V-K2$iIIS0hk-jnsB*Ecn2^=oo_^S^U+{jA3cBXqz4q(R#Q2n zb!ZByoTf~G(*rATKY-6#0*{T%P-{T81U^d8gx`i>&Vf=GIovA}Xdg&Tga3GF|Ns77 zX;T2dZh$IZzZk)P34dvNfh$c?@u^h9b&T-TQo!zDHgko-7;wMTv7`zSDq$P8$m_8` zQpK(V2iNM4?V^Fh+$GtGd4L2K5My!nzBKK88}jV&rB&swwM`_ce4Vr)vH_gPJ> zcgHLM0wA(C_oQvf<68p!SQC2?N0goKIr_N+gTyRpzFhE5+Pe!P7yPQ&(s2V0f=;-i zVnj=pc;IA*;MFU;O_{9bAk)s`1cp+?zUi^9$6o_3D-f&pe3|%o0cyW=Z6%gxRQ3|O zBRNP*SW_h=52OX+0>p&H^ba1yR<-|DAQoDaJ6148M=VKvt^b3(_l|1n-@ZkI^d?2B z2vLcGR7HA=jV?`)-ive)=@1h{nn)245EM{)5hA^agrfA`dsjLnln_YqZO{9aci#E_ ze(#<;&b#A|asO~+u-(btJ9}q+)|zXsIc>`a@;bK#Qcq1D_Jav5#@IYN#Xp`{Vvq?%f`DlEy2(ckU)O#=h#O&ND zbEi#S_N^XP zrs-W|x!R?twzW?Y43lyIr;rKD5xwj6>O}%xo}+rP=*th7oEs26<ZvY{r1pH;p1Q|or1O9{{lVmj3_%;0&Lj=*?|Phu?m*Mc&&wFTb$&L81x-H!bTaJ5tC`^8vm zIuEH?nwnmE$hc_Dteaa9ZUX{V2g=7ic%KQaw=BbMqHF0#l)EwdkXvF#X5<~|mUC$n|EA-P=^(XyN7HmgM@-k3%=TSHq`ff0WP`Fik}~>9$M4FBzm_+3qQ=?I>{4R zECa#K0Aoe(&R(=G_2Q49KOdrsSZb)USzRi5Ijej_05FVte1_uOQNv$tz1o#c(*)6c z(+*Fgk4@0)xy$zv9WpUO>Vj5g#Qw3xCBPI4v)36xaAn{_jf#^KUi#y9vsr<4LbxPv z5p98Bsd}=w%$OveyL})>_z?rpe~GE!O6#3+=&$%dU`e5kyA4s}G-D8!vpbK6#a5brzhE&ksDJ&A9i;36W+ryj6&2 z2&~zkiQ-5dVk%-IjsSe6ZPviozvdc9e2a4Y!DaojnT&iW&>lcG)?7h^yTD4dK+yRO z%5nS%{KB3O0yHo^MEf2|1Tid)-X~Gc19DmLUx;=wc;DiY`k#J4_yn*Xb{+l2CNi8F zuyEGlfcyCX--bFl05Jaq{eRqKyw6FvEwJ-vx7-%sI(1wY2?<8K2q)d?gU*1dX0AZ# zMYv3m75Izx)WGdpvJZfN(NY>gd2!W?cwwIoSbuvLNlJ!5PZFCAMr^2{5yV5pZ&3GR zA_d?DL2(BJQ$iP!hf=);a`z4w#Ig#36}Z6X%hm+eX#^$%M0$?+f4$T2FBb9AGcH|V z^{3@miHA}IdOyBH2N=|V$cD&%8laZ-VZih8Nw^(_69ULWtA=ERwLh!gXJV0=@y$Sk zmK!W~`c~}*fNM3GZHXY{d>&c$T|I#1S%@vPeX)!HiPw+TK(|XWNN+`z!GZL;58~U~ z%~UEoGhZ`?({RcSocq}E%*Rqv+TVXzL>jHe<_t1?K=+X>6huybE)<#ye04YxU`PWN zsbCJKo~p8;svFreeKF`IkJTU4iENkvpwb-p!UClJ@sOW+;Pe59s6u<~=$gfZ6#FA!e1oqwzQ5FqlvDu{0#?R-mZ*FA; zcqYv`#mo3?PG*J^GoVZ5R)X!8x)`d}E^g~xCZ0|fz2BgDylT-m?=D{1L03Ta94JMM zNxT7gSYV096%53`C|S~te+$kZzii=P`%d++f@POFG3))^PTu$gU^Ou&7VNWWl;Uz* z<)2k1S9po9zr86-7B(eh6aVZImTNm<^B2IV_La28UHJ|APTK?gAk;8gsuk3|^H@=_ zl|$~|Akzd1H}_o<-}|q-NWD=gz^dkqRwGtneDoUm1JbdUbiy9f1M^?^1!m)KXHK_n zW;AS-5i^DsCkwwF%(;vWT95YKo?xk#HIf=RF ztA~E;$=L;hADJ$WBAmph_f^kJA^_##3RZi>bQ83&{f}GG8-`T@zI3SxMB5jfTa5vU zMU=@^Hc<`hQOiClYm0BD>2BS+ZQ0KT8hZd3G>r)rkr^_8sP9n9$NZ;0?Z1m||36;I ze^2~Xd-6554Pd;q0uf3#R*@3$f-+M<7}OAugy75?Bu;of`s+DIuUA?0H8wqT@0L9z znDcDTohv^dd@^VTA{G4^?hrnm1|I3 zEC?pTg_qc8xWat%hZvlzk}9JCOS63~MrkhX%b1!VhYX%e|q8(C%x(>s931&)ME z6081{W#l-fAGa;GulAf)b}!L!JF5mN*pUUM z>Gv&A+GYXgiL@1fd&=>;%*7aUZM>@A#h$`I1>(tlNhCTr*5OHGb_DQLlUNDtqx+Jm z2tKwEg1A>v|N4BK^1NNhD>AzRwV!j>f6?T}e1r&+19S_ZL=2lENPHV_<{~KJ3JdR; zG0_8@GL`)lKL7irofm#U!kJPflLmV!-jMfE8?occmVaRucO5at%hqk#qCXpIzYG&t z3QuV)W;gwxsqZU97=(w(UC&UR@y|(hUrHu^z#X>0nQ+-lyXGx?$|Fk?P0(`lnlfTs zi^8?IXnux#OI|MO_y>-G^N)v9-m)A9?405m-~*^CndoCMCqZ&(U49;yDv27~GsC(m zxByI!S}{=Etq9SV!h&RLp3lf|P8fa?%^_ZW6MEsvkTO^1ZA-M@crOpHKVC0pyiD|6 zQrOug+SnpxBk5tyvXfAY6zc`>bS_pC=Y*FhK!!-XcMDu*e&st<>K3~hbKD9#nVf`3 zju2X>4SuSxT6Vg7e}p6^A3p}TKlU&OVyvE)t4-D zk4No+f!E_58Cmo%@N1{jym-ONF6cc)nnG2`#Go7&=?LPJeosQuVOqJ3ZlkLA+g(<; zekBFe8r|z+7j=x0ypoWC*1EdHTS^Q!&L-&LOqam1B-$}R{zhx$%ES?)zM+L#kLCG| zDG9}As=bhB{2<^fd$9qGCVnH<0#NA!GqDir1f_%B7*4+HQbRIzIAlcXNC0 z1ORuVsdD))9HyCFN!ssi$^1FroSJ~q4+meNDzjS@61WK7xK$+aeaFQIF1E}4GCQ{| z`Yt!T>N_+Ga$PPL=$t-SFl&pbYwnI;oI(I(b4}FLdW(GTwhzt||3l(u>`h$cY5A_r zLcTilgD*b>7`)d--s^DLhVrkMAxJd&XoW|Z@Qm75tJW+oe7qS;Ju~vxzI`9+=uc+j zOe($t(6Sw4j6sZj>yS{mIm`f;j_D=QJ;!UgSaG4t!c(zABjy`sTIy!K4@PBfG&FyG z!}zI-ZnQUU;K9=luIM+tcnugE#_5j}L?Id(qeycS&?p+4D!&+c%yak~1O~XYCKIHI zNXor+c+7)+xGTdcB2)iJ z!=z(ssAB4Ma@N6~(fJ<)rs>^jYEQXwq`w+)JrbiJZn}8FpW&{K5c?l@J(# zFjg=#=mpG?s$@7gXcZlC+X3uj#)};iYDIIg${#0>H?4cK2^;|rqO^&nl9oC&>4=&p z&O!@K+^Ll_Qv9Q=EcaE})xk%yyD#p5v(D6Fnq^^@!$)9X)JC#f@u_K0}8rV2ct&kT{(4q zZiG#oS=va>#NO(;3aK2pV#22#161TzHh@spR_Z|;GeIp=C>G~ zcdu1yhxkBNWYbe(ATG^>Pb*DnGF2r0#HKtg&08YhLBWb=< zcz4-!Ez#qngl()|xav$gh3X6VtACWC|4##pfBydzM@@0!=#cNh;WKs7F#6@PM`z1@ z$rcNn903>9cgM3dt^(dfYf0Kb&Csp{I|mdDE=vH)$2HGRGU0?j&9#m!uFU%M5YAMVTb9TVzBMbImxDY*l$wzqL+y?0 z0eFqTt_)@Aqo>d22<$bh56q-_gm#rE?jkdNSRUj5;!R-78VK>&7Z6fmAKbQLMI&E{ zxr-~RsnBGrPA61Xvc=Y{g`#F)Q&wH_=aaMHIH z^W~#UR~T-UpDvA8yQNFl?%bO=;n*@y>D+&E`DyT~;w~v{`@1p}Fh-|Gxgf|9ZDbg8 zoum`pn4jVvPio)J&YM|ua6kCcb306bTHU6n<$#F`bo!b^YaJ|xvPDIqUnaXqf2G|X z+d4@Kz>IX7+ z8{&tkKu2c(VVCv~x2RnA$AS`CCRBu~bajx$MVY5kkv`MvjGjw}1`H2S*;0eAG@D=m zP*@Fn6D^W-w}hZS;+6j}G(*V3jc&K@DgCu@gCBzr)99EeVnBGE7{XhOE`h@uYdCx@ zY4Pp|!F=Vqkx;VPCKij`qf&OCw^R|NxR5aK#Q#QCYANG{z{zmC3e;0DwOpsaQog8aC*!>J4hE(<&!*Y2ybd6;^*m$iLh))Z!(?xs$@2k*B=8zq3b zrRW!Nx`m?c2p3$l!acSs-csI)d=@$$h)_9|Du}{?{Hz#4mfXT_fWOz?f1o_dl>Wi} zkkkM9tq+q2H9(A|$RXA@ISeo23Klgh8WL-7P56y9q)N>NJ*ma(%_f=CeLn~sWFON2 z_Ou|DvQnkP?k=hMJ!-o)R>QcXh7R*>X;9vw{suzmvl;(F5iSH^b#cRZAsqBaBlHJ~ z*>v%Kx#e_k{>F^o*rZWo!1VW(pgPUOoNiwS?cR&4?wY2rd5g~gU&g;Po%=uQZ}9J- zzX&>6BtB9P3It~-Je-8z3?y%pK2v+Gs4m8-hl*eMrD7W(G$29WL z-Y>5QQSTjED+RtL(d*)+Hzy_I}20&Cq?c70J` z4X;|Jh~wU`rK##HfaZe`D!#^t0DTB;j*NxKq@lOl?;O_2a60j&pLQTL3kCl0(O=!W zil&ZW|H=_E0e8Hx0CLlK$B8}Invocb*)P`T$i_%6x z;sc3$`IkGFvy`jJh!2LXdzlEzYS{YUplm1&5I}&eJy|F`8*Rcg%MsYqM&geB0K;rj zBqp2`+MelAADgQnZWti|7s=UPQ&F+R=Pu78dR8Xehcrv>bn88E52S7oV5`eUKLWZo zWfOx}Nh_nCK5IC$vAqHL)7m6oY^PO-4f$Dh4(e?#J_Gb`6;5cgLG-ae?Q%5TaM#13YJ-X-fHo zbP|g~hXWwXPi+vwP}2Ay3F-nMt;fd`Q+c@1Lko?FcyXGdxxGNc2cvhm1;`9T$c)6A z#elQ65+}Q00yDAr4H^`uoxcxcaYx5LfYo`-_#hSt?(DtBEhf!konI3&I?hH9`}9}J zf1poDbeI+Lh(;WeZ

y+#kI@={E=P@JXdYnb_RIP5)o}j~XIJD7PU8BF@U6ztfRS z26wc9^VGz=>5S&bNG58<^_SoVX6_&sRL30PN)u%Oj;}U2%lVy^C+^8%+l+5nY;A7o zpfKDYTgUt7_FmjZRY&a{E=MJavk-LA{_jPs;lgFX9XH52yekSAKlpdJwGn{$Ovy`( zfr*)llLR*>#Twc+YwH@L?G&i0>r&)SY?QVStlJj>rIy!eBGfS?ew>ev#WUY+^KW-v z?p!lhB>C-S0pMmBIFNPXu@^VYaQs*n@J#US7h;q{QDuYx*<$<|Ewe z^&$`V^}9p|xGQy`ZDwZ1*dn5LZoX4U*l#dNoqBIQ<}?j3?nPUecg8rwxY0?ndEEz| zeo9Y!>RVew0zLTU258TDhQ=Ny9s{=@vGfL9u^2h)U*)!<%kGoeSX*w#3&3-)e2vt= z@qycufR)>QEC(@xz~taAX&s)$*$}<@YeFQ=EG-ro@vu~%>jH>pA)`Y89cD2aQ0e^* zs`dJ=)tU#)wH|5Htyq?_neoM+MXcV2Ws39dnxxsrK9HNa88jd53$V+*c4>XC_Mlit zgzM)NpLLN~M+;t!aZp~`oG6bid=bWUIRLqJzkPunjS6=+euyqeu+5n+YMb4hs4#1z z(t4UGgftQ;eDvHc7{J;Ap8(*&;zPLUa`#AiUD~qZMYqq(rEa*&$EKa&^LlTyxUiwS z@XZ(*a>)Ai=32Bhff?V%QPnB)T{k8;HJ{c{!rZyhP~N8$!DYI4y@}!W&^zO?_@_|+ zqK`~{x(tZcs|b5-s#|=e`ECmko8hFhtO^nLd*|=s>84|$MlFLUnv;#rV6-lBs<+*S zQDIp%N}5gJ43S-grh@)FFl{(i(tYG(Z9ja6PiA=$PzXYxU*8poAYBYp(@YwF`9riI z%8{Y?GTHsp*EG*@C!B;ii7{>=QDDGvR^V#!sH6A0dhMCbHkB`a-N^F(`sDTW0yrQnXZ`<6k{0mq z;eSjH{g4Wk}YCIp>|{ z54t93@BIEG%I78>^-tqC)KYXd`_7ZQ==Bw~sG6d9nM}`-Z8g7vXP`RE2hy_Z!XL7z z;OW=iONdgP{A`uKs{8K9OP#a8ihye)nZPbh^{s*cnwBwNv|&79G&Szq$Ok_H5}Q z@RJ2P8Igv>G}K1IfA(!ljb^dl#4Pt^b2li^Y6)W-m|8`Xvi?@)gBX%Cu&#pS-B)qs z=&MwV)a?nhs^9Hzd@?ESTxN8>i#A`{E#I%iU1-0#*Re0IR%NkT;LRzE)XE8!Q$Uaf zUL3kQgA33IS3UPJzJqe+qYYU&7uRb1_@_UX;uOV_^4hV_R9h1#W~3bdNO(0+@I}`B zi+{LP$1cd->eAUbA1E5%J@xj`#FwyIP*K45&EkYm}B=xaK>)1HThU57?q- zFIn?$nI$ARHcyI{FQ_A{-xr%PRX#*c(9E0M8D=)@U^k5CdBY9wM-T31qs`4no9p2o7%`@MPmZ8E($Hu` z4Y(yF;-&R-BVkCQLC*xg%!C9x_rYqt-4cTzb5D)+>|=l?_HEcDzzn(l%M*9P`@(Mf`|x(dJnqK&Q+ky zubpy4xBpC9bz#u*GihaLPcpR0etEP{4<7+n=OwwZ_J=&r@4dnI{AcI1Z`WYn%{5`l z8<7Y0b~HQUqqPjw>&VRI**(B_ldb#fL%Os1GjczE4kidxhfIj{f z=@?e5^E@Sgeex}_I0q%K%te|@@P5vhjxo>C`}(Sq)Sg7Z?Z;~G8}nd_#6#?nDAul>V} z7*HzA`X0HB!@mZlZsf%5C=LDFGVpKK-~Vm1^}pQ*d71bLy7q#g32L@H2M7RuuSD-K6ZHP+)>NR2-Ddi$5q4c!%uQnI`w+H+eojCdL zk^gdS{9keWe>g@_VHkapLv2Ic^~lFJAkPFH{A|Ox_-Ocxq(s@sjfb-Z2wKE9%3Qbw zjz;vFH9BU?-rLk&PbxRnqqDCTB1U}$R-3>Ln1dxmmLDM#z?BKn9A}(K3vEGRr^6f# zBjT8WZnj;ro-mN@r51-`@(f~1iF|5$p_}xD&ERjJWoiQi?K2iuq*8A%9~-GsnuM@e zNsC|0*T-urui|PPe>uPsPrs4&h)@^{u9{O1 zge>i(RCHfyA#>{j9C;rSOmH_~Bznwl_*qTO+xL#u<9sH^^nNqvJ{u_Ss8Vr1PJD}; z6QYso*Oe@bNUQAQ{|)jI%|0gbcei`TLj{Yze9+eHbu<#fz-!IVAiqJ4@Opi#`{=>d zwDyD;EFkGvOo3_@FR=26#NPa-o7V6$)@Cm*Q}qsnj~Z$GP4lymTGsnUs7C9mvt6+e z&ZSu8SZ4!38izLjA!;3hW1*}fzzik%Bh2%OZn3NSjN#|+9PVH1dUY!WLY@Y@6g?ij zX_aZ6l3lwPw=cCH-3Ty%~Q zb2)T%Q`6l&LWM6fi70d6s5Q}ksgp?);t~gbAfDF^aF;v?NPYgGU?=fn$=XUS%wT$oi? z?gc4S(#V~Ouas9TiBB6Z*UTf^w=`l#3qdgjI2Gr`r>m^2juxGOqrK z6d-?Yi$>~UIA0gws>)w6roI`;Pwsl=iTw4bQdvh!ME!g6f~p1UN8!gqWYV%&+2o8JZ5fTY1I8rf==WnKAYSF5WL5*N)6auvr@oc;7U^I)NWmM zkJs9h+W0l5Tq>3D@$=|On(uEAa_lT#vKLjc-Tvy?&tAdml506{&1;(jD&ZbV!)M=A zp25j60)*>)bVD%1dsO4q+vc4nq^)jA*MZ#BjtPi8B-Uoq)cQW{4HXUd!7=CYI5Y23 z#tiM?n>jH;asQI?t?2@`G{YP*9kR-RR!|dxlVKEcKMD2p7FaOfy#&RoY%fcB&e7GFtBtCqrrptrO__Fn~$qu%qOE8BBsQ1pKC zmrDBxrz|qmJag_dm2eGsFEH1LibK^F1gU4`>wvCI%TQnGCz#MU^6I*eBH~0j7PGio1v<|J2FjcBD9GO-e2#Eac-LdiGRWoaf-`LyG zoYrvjO4+(a!`Fb6#hegWkXRcGZ`mkLzyKo&b2qHR~e(z50SZ*o@f1-lO9<%Tt-aZd|tZC6q#LfveS)$tCs;S zVf7(Do^H%flYSp8&*p97tX2hOJ20-KFnRD5Z$N5CTtqo~G0&RflKOBj+h;znENWt? zk{K$^EFSJW@INTF9I~v8jW(&>gVnteX2Aj>9j&?;D?iw7eLirt)k>g(G&O!?&I{xq z?N*m--fMjw-P^N?*C}VJ zep9%o(NyFv^;5nx%Ck21)aZn4L9&Z1W>%Li)UQJwT47y@Ag~KBO?Gy>6L>LfDuDG? z)lQ78mlL)6*md_%QL#m@G=An=49g}}C8~$g&g91z|3z>H)9=xLMV3McB9=gxN|^BS zq>)F2OQQr%zJ^b@KvVH(FRQg5fd^K1dAm6-UjXmfrQiOw3VV^f22#HRwJrKQ4>lf! z-OV%Eo)K-c+&oLEmPt)x`H(lH6Q(||>*r{rR#7JOUpM0bKHWbw=>9*p2}fck+pWn7 z8l#c#SGBJ$K6*f*A{>^+><|Vke)BnTt*Fb0tRj-a+p?eicDNItX=(07T=3(~#>YAN zoQYhj@rt_s+-=$Oqu=X5^Zxh|fAi<}t~SLbF;-}*-cI~k`}AD01@a}r z6%o5g=SQ}TisndmW1e}FWVY3Vc4aAA{h1kgICOZmJF5d_?v{W_2vy`>#WU?Ja&2H6 z^DZ+-IuLh)w(L{9Ax`sL7ttjSSp!z1lrq$_g~un^nJWb4KvyJt`|&*OZ;98$^Z4=AQf zuNO(tOMPGdHs_}VP4^%ojBX}y|4P>~tdC+iMXaw$CG;a&b@7Ee+Uy4bZTmAP%cukf zGq31u63g?)Xlbi1#t(4`OAT#BXX+QeP{uvC`CR^KDAI_V;u($9?lQ)(v@`2%c>=2U zHjKkwYu2XZMrUtf$vo^wPK>b6$bV!BXt71-oezGc&aU z;Twk12M;P0kWc0n)airE=Lk*kw}gwBv^ErTpl166oOMyFR93RvC4h4;wnuS?%;l2} zGS&W2Bd&byO{ZKj=>|*&=Z(4F&I-PmXYE)Mrjavl=d1B~g)2#eKmDap`32E8hA+C1 zonMP4Tc8}aQOoDQihUEyM$oyWVKI`|SDdaq)cln2F8|$k_0#LzEmQ4K0V_X=9mCSE zno{8YV1#8Yl)X=QrQTew^j*JdnaG2$_-&(|G{=q6Y6EY7Xn^q2{_M!aG=Y8jbqDz_ zi)+#k?){(LwBlzu#tZzizfeL54={KZH`qC29ST!c2G~b5OQ|KLh34)a@pi%?R7t2pTs4`=Br&Pqup0f5!>4Y(5wUH9%8a%l65E_hs0V6 z=N7G8PuXz`_{}OBnF~mVvEj6v=+S^x8e6JV@JE)-kFS3#K)uffoFO}l36>az_Ux*(s3$@0P1i2EHa6+sy6WMiA4~6? zp@f3Z4A=1sUm}*h4K)f?1Y>UyvzzqsF!;#K$q%O3+ucQh2<;|IuOG$?{;%=x)9gJ8 z)n2}hzY|NNbG0t|qmY?AsZ7M(-S;cc^V<*WVnzl={^+n#nB+tXz7@K9HM9hfV$%bG zY>fM$6$v|sj(7>uVDlxM_fN`+`~=x&hpQusa$epJ@1x24Qnz>-IK4OV!%2aEM)qphalCjQ;2xR5JXW(`Wq{if zW;h>?W{9%@lwmW^uX*N5P2ELvJr(!F?IfyIZd~Ha(g;G7ZZWot2ebx3V^c%pNI@G|k05ZFZA!z>ZXc!f-a1GUf{+8eC z;)W>Bi!wsbZIG-}e15^PTI%oE1LwGHtQ+3mWk+b%o^YJ_V=QMhlUpT3618}!)zr9+ zfLO}>jAki@;0-_@)$pzi&ID!d1=5HW<7g_FD^OK7+d_IcbEZ5t-_GTlp+Tb?yYS_d z=vntlVOG}5jX=8(HFF-nqT8xuytMxc$+vBU^YLbN*}c(Q8x_no+rgclPU@F@*4aXT zN%Y)#&_|}pEx~`D!}cGM{NLUS{rwjkP8lPl)a(}q*;>6m{5b`cn z!TyefhQOtXYM4`v#3}3!A>jW-Gs@zkkWI|w(5<%5!b%- zdlEVl#t(6~SE6?Ae{^FMD@8Zsoa-KH@yZ`Hr9RXEZ>^E#M_u~Ba#;Z6!G0+A62rOL zxzk!E5b0O%s3qcMDXtH7u1u16W;J6n6|wf=UAD7Vb6%J*R=Ps*{xXsYSEZGvf|1Vj zD4y!=z3X?eC%u&{)b`-ZU{5D1m>eA#0`)Mo2 z3wtfo%EN7$p=6_Pz}KxIrm~!kqAu&+ecsuG{mj75KK1oJ7#UuTV2-;|%0vrOt85=8NfWvo{vByJYHzw)i{{j#MRr`rp$Y<~()?^_HlY>-kyiH^OK z9@+X!t17Ewp)bYk@}3(+e%jbiF?prS1^Jv+{|*xo5Sa1)lNPU;jMX0j93wSf#;=X9 zSdr`67YBuTi5x9yh`42K_rqI^Ul4+DEV(e3A^X^_+KYQxTvOH_U8fB<`=~`PfOYf; z?TV#Aa?R)SgEbA|vR`voWf!l0eJ_N2DD4Kx{YuVd+O9M;c+{eZdB-c|@ULA6YqWPbVT6H`XEqtr? z_~%wv1J3 ze?F6MhjbwOrKJ7C1qL1OA3?Ig?=C(Tj|ea6_jsOmya9V+9=*K7aZOh+*O=21CS#^L z>uc`oDKL?|?T-WzKO@#A;1Y;wC`OHxvFEn9-2!z3pGsxNW@B{; z`oBR1Uo$`i8(@9oMRbj0yhyEQU{YKYaw8a(1;$;OB*a+*4c{H`Ct!MQwucn;A9z1m zlE$T5)sP%aZ9*H3bMUGl} zrOcPHzM7EGWW@eZ-YepQ?h|OB5^;yMi0`|ZG(0R6ns0_4oH1S+g%4SiD_Ww1mF%9M zvu2sjyXDIK%r2ESw?0-rmNQZ{T20~{{e!-bVLn#tfU>m(ybC}kw2N8Q`srR{-fh+8{~Fy{yCJm=c@yZ> z?q6CXU~}T;Pc4^d!M9|fzXTDG;5f&U0@oQlJN^Jp};wDW5^O0-~K)0gHdSr z`S*FwksyXjHlb0CODx|V9Oy;+(x*yh)sD-oB}qUtu@c#~KMly)qoW8)wSX$x!)M#_ z<3m(ld#Bzi@XJ5IEB|lzoje-%zQB2AvK_&`vA{n|Oh$a#lAgo^ zfNYhyda~1{Ra?0q2pPao!0l^2;QI)me$x*+cMbzN&NPxMoNIVx`JbyEP~$sL02OPg z01Q4_e6d)0675@GsEbo?LQs&nM?||R`vMZ*HrLO7vw(1X#`!UDIEAxBB3}dVhyha_ zGYYpY$l*3iXWr#Z7QDPO?BMGVbh%PgbSGM!4x`x5V4DVQ3R6)m{>U^R{4YtS{z6*y zzxcJ0r(>XTFy5ut>c>nM-DaM=aJzl#Jy>FO-{}I%vgAF5G3uYvM{f&%EMbN&(CB`bi!_&+X2Z zovLa~hD2j#?|KNTM4V6x`8P7%df)%V442T6T`99Wil=oI$LO|I&UM-roO*e$fT^vN zerDtpzj@v36fYOoX!DA(zi#@l)xI8}43FoaxDbE}p%5S!K@#Y<1+<{!rL#COT7@ZY zD>u8na$Ny}*&MZvNIAFn%VdgJ9;&O4t`oB;SQ5J=|3S6J_#hW=H)kGbPNJ*uDe2gC zV^4ccU@ww<(Iu!-kfu=Y`7yGW!FShs+z%m~jW+g>-fqjTg(>q_KZ$>?+ukT$M*q{C z$@9>xnEaA$S+KND&;~$3-HMNipA@692uOHvDCZh61D!wH;7tR&{$-?YolJGV*0dL*DeYpM579&XJE`MOwLa z@0OpMz}}GycVEInxy=DmO0`o0^VXT++1kW_hN;MjnfZrHwhVAH>09x)_xqi;7x_q{ zfnjpu{Zo~rO+TVL-CVPuuwMG|XhbB|dUm#O1^>QN-BJ!O-YqsU_FwDY;h)wrqoIhRRG+-yet&e7j-eZ2aA_ zcJ4#I*H4Wf!pIxKSogKGmAcOCC{BIxXseT6*lv_*om0Gp-}hMdf!hP!$~C~T+7UCi z+u+g}O2VePJED(NX)pPx^DX!*QTW(C?ZlUJCY?)_+ONZMT+Gi)y_i`o<6i}WMEaWA zKRtiP(dO=&Q=&B|!IAhuw9G?H(Ez=7U7yCq)Ax&3T&QElqMUoYMr?BSQpdUMdx7r$ zv>}=o)??5NbG^sD}HaPFjhn^2x%~z2`*M@x$VF2_?f~m!LaIzz`2{VMt55BqHlNc z`%{sNbD>?=js-QwTQmnxtp?9XpW$AwmtaPgk5^?~s|rqhXPdys>xkBh%6URGmnCG*bwB#~o)!(@u~s(oyPpFzC0r3YLoaCB*~!)qF4uFHutItVG{ae9(q zJep%ykrVr5kBSxIdY>g~k$cTyayXj?>R~Bt?0lsA`j$$*#TyPKqv=aCU4bBN=7r%~ zd)sfj*DkXc@W@+`I=T5YNMOWK)4=D_gr(Bw_Z16wgii@f{mR+WlP3wy&L#4mg$3Kv zH@AXS<~Sz;=$m<7yKp!=Sf#7odmI_^(ztX^=PdU~y<6jk%0|zLe`+0eWZL>Z?~kUQ zN9y@{n8vJ6DK99%_k?@*l_>}po6`oeTQhFjJ%fE!Uje_hRok?x0B)b;I_3w|;62NW zc01AC%?_(#Xy2-&coZPocuUA4FrYnH=e;7r-_1?X?k!?gMQ@EHH9f3iXvLQm&H6wJW)8@x!vU-%*Gu?}54j#i zqVf9;;y3<*!c%V`&ZG}epSJ#^J%C2dM7FIO5;K%VT~cGrLQv#^Ni=T*f+S}n^l?eT z=t&YyRLM*`Mt8+3az~|qF>0rL)gqQ_*E2?rzx;0Itz+eJBKP9d?3TZbyvNFZ*dAxt zW72_oz6t#DK8;S15}ZyTnpuVHduOBkp^4V>M4Er9wP_>1W3I*{?x2mA)rZL_F|V?@GT_94|ZM z#l*R*g9I`&KH^KnlR+A$bA-##8SI&~$F8pztxFki@$-g5?YR~DAo82UonA<#0_&Pw zH}ra7GKnUn7~#>kz=SIU4X-6;u#Hvw%RKF{*j01(r0|g_xP95=r8HcHeH%fKT8e?v z9`V#8fvZ_J!g!^23rzX;It-UtgM;NPzK!ig71#%w&*@P+;ep``bvOh*zQ}iM9TkiW zb@xRw@=AN$8`;)L4S5}R^KP}>SrAQ(U;3=8k@zB#^;a(bo$x;1!)x zj^rE{@6;sI^A4%^&Ue{9+)H(#X}fyRISYA;s21OaqJ6M-=-j~Em4fQj5zSb4$@i93 zu8pse0RNBUQM)W7|JzrzJoC?lPjhguF~ZmnK%J5U^QuA*M);;BXjQ+>lu?aTBXt1^ zhP5?6i34+-v!qIY?E{vd?R=UK?(k!zD=;A>x-`5+t6T1@beavO?AvF@2NR@A=%3Z; zNkK6?hYpK3{6$)N6<@Pf7N(XG4G7{muVw3SFq1D+q!n!~{`#xsUarp`2K3*;7@8{C z=`Nans7`98I^}+M;091>9I~fnmQQvP(aSL2Z@VrGh#pLykL~T%@(=O1QpyWZLcB;*n*F!zZ0PS%h z=Oj~6Cy^O=0$Zqr(tc{!zDSG@Z=-ze2*h7S5JIpYX(9vObb*M1cwMmQ2K2|<14eG= zPvrYcCNO?v7_O*!ks)}ErX`mrFb@_6e&Yt9{7c#3ijGpe9ZYQku1I*A<#E65qJJ6W z>{Y$}IxfNN9Wlp5tC-R@wz2!!9LGY%$J5MQQc{yW2D~iLs!i2R@LN$LZ#BE8hIOMk z{=ay8@35xcJzq3P6;Y&jf)r7@^dM@*s(^;$=T6Xfv#{q z)M5pBf27@Nw!-pR?YnY)%@xOU38z3jvkJc@*@gJK2gqhp_Oow!fxb zU>823Bwkj)S(pb|V|^hVaIU4c(b(22&ecxS44!9mm)^%H*K0eyT1*$@r|CoGwD`wC ztp2Sp@Hea+VhcgM;`)gIUylq?)~Nxzqw;4CyS*^Nvm1TTL$LEG=P@AblO~K}Azn$& zza6`B7G+D#X4WJ7BxShiEqhQh250jj{ z(6)jA!=|gi_{tyt)vpy{CjO=QM@Sdc4spxt-7E(gB@VddQ z;Jt+7Ud7QUyGP5j^&a#6N!Mn@7IHgI$wYKp-`HaD7_WfIQtR}ezR=hUhdn5JiM{{J z7d=0Xb8nU0!+Gftuf&|VH;qHb(7#luus*BH5f_|PQPbQ32Xl6pUlp2abbyr+Vmjy? z2`=S@}M%#a&WqK zX<&#XRV?+be!M&1tYmK0T=wRxOQ4>(`Rds&d=E)DfpJ_K=PIaI`?Gx7we3CKe2)YL zU-Z3_4v;rj2vgpr_jg!#>Rb={#w=<9%sgIyM5KSsGl8jNg-N4q+OtA7dn;&h87_(R zWw!j>2+WtFi4^0?&nZL2eYDo6+}P!(mTi-`AJI7eB%dii=Xh4HuURr0Y^6^9HQQMX zv-}P3!tl0db^Wq&(OMCLqo}f_?4Wh*ybe923X6a`@F4k#F*r^C_(48WFgDqLUyTu|=Ot8MG|^!9fTaBuA= zXoa9X^bd#{Ci~{(v3l@j?61fFH5u5y72d`JU>2C2!6m#}x~og~wRW~CbNXe6XuY_@ zf$vFTi{<@n-h53$TkQ>>o6z#6hN}ana+;Z08(8JR#IJqhPZINX#}441u+tQU=rhcd zY14t8^oyYJ)Xi^2+geB=3SHNu)lAia`$qg*Qj+dy2MU$r3oRzQ zBq`4)gQD$4%p_cXH#glSjJRo#r!jU|@ZGiZhU>O+>8~%Y7w^Sj;c9PiNQx+e0J0Ap6i^UiL|}yoZ-*Uif+q`F?v9qM9!L)zyDzFA8JTsNDpl++A0H&|0JEV0 zhiRZn{P&sk|HRKht2i4gpoWDGf?3^U{j>43h|akE{yCACu?n5Img59$KbOm|i}Ntd z6u|z}#I^w#Z79(4C^%FFCxKD-5$EjfqCgac-2Vd_Ye*x|8XwOCLsYq{bUpX=YX#Kj zk4&*|D9Cbqi-OhOzm2n|O7K6yLq7dGH0ZCWOg)5S#irmafJd|hYgjzwryP}!w$F`& zA>URQ(>XgcZ225@^(&Cx+0#~dvI&8f@X&>QlP19$|7CD%+Ipwt*M)nx`&`QA$*|3= z(cFCRDowg?%ts-ZqtGSPh#!T$Q8e-R+)n`MrYyGxyNVrBuSbi&lX2nl(rTlbnv2Nx z;#w@&DSsU2b#Is>WboO(AQ|0+@s{BJ9pF-OuwXReaUvZhq*4?NK1dZ;4rTzwdmI{$Mk@h2$Ps$8wzro!0fOmS(YH$kiDH!s zuKKQJ#MB~ap0^*~t`jZ@-@Y9`L}PcJD)DWwuY73|JBibUb=uc*$toeP5Qi?*CM%=- z5@TcDdD*8sd39Dr>P(&NplG z*d<`7NZx~yUaJx|o4#|C3vE?_1f<{@C;=@RTEGuoiJ;=n?UyxEki5gqOE>K5F8TJ@ z%;a+v0}UzP!<*@{Y}(`?s4Sk65RG)EogeDcMrW++BT9a^vrQBxn8E3G1LHBDoYg$I zQ=JDHyCbe}tSOmHCT6sLiuwc6`~xBZ%nHJhHSTXeqbR#7g!hnVf!LsqV9^Gph5Gb`|?nIO@vM~oV>oD z9;8LI?j!x>&=KR{lfu?lG2g!Rp3F@zr|%*7rRFY1Q_N$|EY77KZ<0QbN`54{|BYgc8q~qR4v3!>Ll=-=X~QA5i9qh( zBY{`T=($*q@-eE`xmDD=E};NFUi$SFcOXYVsobg=H~asJZ>ne3`+31K<;D_&!t{Qj4uHnHzIfe`;GHO@| zcPqNK=emtBYTpW1bt;@;(ydYX&CdfG`R*|c@;znhZDo0_?c&3(NAqoLfHQ`Ti}gj? z`;F^ros^+MrngAXZ)3xXmSLUBe`V5i%h&+zRn$RZ`Mh)bU|C|VpNmmvV;u-ZG#8io z`U+MaB@cR=xcit(Kt28DwFFY(+uwlkEWq!;R|Ak2Yy8t9zadO}HEKFCMW+nN3bD32 zWA1beUUhrN3(Nc-;UZRNa>>@#TpMw|knzKC>F6NHYA{$W@2PT@Yj{QWV8FK@5317t zfZj3rG^+E{I^cfUo9y7(lqG|bb>BU%&aF}GvPy?7Sdd9+p0k3ycSW1@IO)y&Q3kWy{^6TSs?zB5}#AApRT4$-tUMBEI;wJbQ=z_I};6u=` zIcDQXpdzriOjhw3{p;*eDINfL5i;FBq0YJytbTcxMk5-T@54exUBBlxZ@-aHKzvk@ zb#gBcx{Ves@Ed%dT^TIO=5SYOP37+HI&JtxIZ)#j6ZswA#2NY2H?%xzt+}_+|Js8v zsm^vc%=r5j6PNNJ6Qpr}rzvp(D|eaGo!mykcbU#08!zddaZc!i?+tv0M5_oaV)LKy zI*jwA|EjrWy7TM()eu?2R1%KU+7}$W8&IIg9Sf^ii0dt$8}{Mhde{{{`b&5XK5N_q zWknH?(U1lov%88eku|r(wiB-YX3ZARsXpj*^BCuwYSUa7?{mLIOS)@H5nVpN!=6j1 zG41Cna?q=}p28pm-FtBb#vB~arq7!W7Q-YwJUE0RfAaOv6oYd-GA3`2r51x7$R;e_ zzsmM~I3Ork`R%-A#qzCqk5#PIe85HppGnQG@zvB!2kmElQX`ZfR-+ESXa*335CaBe zLE32Jkcv8C2sNt>+~kOE`;LE2aT?MwmcK-Fi*wTibtlfa8B0oJKt`lDANDST2Yjg) zOl9io3i0un_rs z3#yW?cu1Y>zIS^1hbvqM|1`V4yE17pC4?kiVXgBG8= z_xAjWl3rD;?s$dw3}kXnjq@^b&zaGC{Uag-=>Vo$!cMP|k0#1=oLzVFygQ`F^DX;P zPD;~)!tL~=^)&0qM#PUVCr9#w#kGBULGA|X1Sn;79jnVA0$*rfKRB@HgsM zD4@pwz~(BY(z-ge)8akwM1zU8y z+x(mz(3!lcEzWD?S7~wsq{qC{BpPa`3a<3^NDQUlUPtV~*PL7@SVguob(rI~$4=>E zJn9Dfw5k2)o){h`2!A*EZb@>qHmwZFbU!AxzdDz9$eg~W{ba;u_XWn#7A>~0jDkK% z#!0CIv@~}BX(ZmO-Y|BsLF`3y2njzoPpUG1s5y*zF6kSWz*LX?C_fx5Zb<~w>9;EU zR?0ugX^`&PVr1r{l)2TuoVthq0HC+3mj2nz_^-UibhNzRBrO5`hGenyHJQL_K2tRh zC(mOxWV<^X1@h%5vC<<{kMF}~i9s;uJLgLp=&keT^T?OJu8VyhacC=EV2eriieX(2S_oee#qdE98qMYNp zx%}wGw@)hpSLh0y7Z$NPQssbC#xqV=o`?pJhdoBiB8qgaTk5qRwbi}zELmpIip!vH zW^#=XxLUXIgaijy4+2alMCAH30pu!^;67*`AB3T~sIrf@J1TFh^APo;hqt zZ+2Veg#2Fyx&5o(DeRx=9{odBM%o8)#1S+f0yavwcCzl*8c#uK&}5iOxW7ZJL2f?Z zf&`iIiZPx}?CRb2yV!#*&BwvuchvXZ#rLrw>m-vDS0wv$JiY-Sd}j!m04?V+N?0h>1E95Tg%;SshFxErm6uayoH-lcU{u2|L1MQwVKS@NJ3 z7ee|)p578}xs#7#)%0NQw@OP7fm8;Z?_z4(r%y&_VQWCa6(JX|PfNM0N2&?G0~zCA z`rVNGD?8HzuWFnd#7byK+QZ`K4C|&M*K_6WO>8}*cU;5$5v_AlKYM{ZmlEf{DC0#+pv`e5Ny)b&G zb}sY-Mf2^;nY^-6KVTeQ+>=YWT9~^oGxRG@I9Jp=ifhIV zcXtbgL0#&mt9`OBNZt9S1Pz&4?gvvrR^WMxXm~XAW{|@VWqa=8e05tOJ&SaORo)Nu zz@&M22~4C0yElSX zqqjAcH#ft0@14KwZa3MtbT?)R7Vl)D4)F&VWnvJEq`%r926L#OBwlafIL2tz-L48o zjM&-ae>0@GV*I-E-j`9{hGEVx0Ak;M6f5A+yBv41XT=0@{##o1YkJyhjz!VuxV4>c zD(eY@xwhw6^&J*v*@kdZdi&TTI`4TU8;}rc4F`o&aZxV{3LfNs4l-sJ=LW&61+ApvHOTnd?gm$6 z{LP%#zAuAS2J{Vdp}%a=7{sje-zRpf*l*n9n8?7W`Gg8ZC`zZL1d>Y~K7-EeUTpEyk2tV0c_O=E>MlcEX zoP4;JCH?1|1y2gwSbj3Ch9;|ZaFon>vJ)mT)Qaigq{5BVt57c6)}Miy2Wuc0o*12Y;2VM!>FefRFnDW zZo};jXyWQ9{t4djp@pVV8f@o!yaHdh{F`teI+wU4^~cS{$)TWOeW#)A^t&s%_1|iku#_aJ0%`L zNdj3nEBZxcVA8fK;eU%2DO5mFs`1NZ26n;3Cm3m z8(G-M(^j@Eqts}Zjgvr|*QOsLPYG|7x%t0)=COURQs{jc)2`@>legT-3J}JO2g4tv zv?heD9)@}!MlLbdpr+uF67c}24dDB3Y12-intpw}HaRz@9vrXe@$MN6ECGL`K2KkI*g8E@$MfI;a_2LJ2C z2=J2gT01jwa{0Oni={dM{jbkZOwYC+a_2Xu^Ea(X;Z3^kesq@ParE8S+FF9Oe}~|A z*b9COqg4@kJ`9*kP~@DJmq^|ZVCnm^cEs2CY;7K%KZuaQ`f(D%2mkZ2m* z#>h7w8K7X(CnIt2M4sK?`$_;jqe2F2zXdmFs~m=VK7M>(8o=#)xbqG%e&JTQ9${?6 zMpN(_AP*}})E$673kE;>@ASw2*Lz9uImAW4)^EE5fxS%|4HdvbG5#{av`@x-a)n$r zVL~Px26eES)rTx~paJJjRyWn5q*=rw&@Y5Xos=S9fTM^v#|jcNb$Maj^P&)Rpl`@;vP6 zREUZ<5VhYBe<)J!)!{_&?pS2S7ri%gm8nIJMg}S3r;&Bdfqqmp1sale09fT-g0aY@ zJWb-|8l0jFvd&?j{7XV6G zMK;C1nrQxYJna9VqxEk(9tbdY62-78w|{l@8OptP@e)^{UZ{KRJVlDu&3d@4U?$Cv zX07hKbOkI? zi^UXA-qe;E4(y!M)#EwV%{a?o2*3OMiSSJgl|J>+ieO*VI*}@I3&)Nmr5tGIcr-Q<3&j9|2ACEe#l z%ce9QoZKumg+#Z~x#aLx#B-*O_#{dmaH02qSVd4T;^f02v@Cr`$edx*6V1n4x{{FV z>d@#;$ptmeUsTWO%t@zdq=um|;?&oDG?1afk@+HIm+c0~MedD!s$4evjp+>a zpO!4wZrr|-&O`tDwc_NEPKz1N#J&8bPHf=2=Qcp+FoiF!O!yiV&j#HTQl2Q`*LSu~ z*%N4W6>Iv`t5{v+jbcEk(d{CyXhEJ6@&q~9s0?LX7VfaqlDQsb9PWL1Wlo15J@eq{ z@cYf&%-AXn$A^_StXyR^-F>G&NX-I#6ny*8`@3;XfP1)}6-hlN&JKkLbHg`E2fpOX1O#D;cEWs#MH9 z7bUlegGVm=bHW)+Vfj&!0*(tuQgN}QS&sqojI&PuPV4w0%oxJe%7xZhci0=QR9{6h znk)k55yCYpi6z%>q-hSCPHn$>s|x9*a~#;YjQB|#4(1LbL3>VIrQS1jj)4RgE;bAN zxIrqV(Gs05Gr%!Dp44jWu?_?I>8#z1zZtocX0CA%Hqzk0Do*oZkpoxC_RCWq zF${|VP-O8$=22j8hj$I(hM)BH2M_p}sFlu$1VvosxSdU^;FxCObp(>K1XuUjUyKtr z#TJcE3H(q$ROTU#$}2v?P+n~IYGM~I z@jCY5_32}a`*vc_$zoroQheXk66#^1YH7DPCIN#E)uId zx6Xbu`77|0>AVK$d3j?e*GHot`MFrO6X(bDYLBgy>rs7EQBgrnWXZgDM8$gM=HJr1 zrjUeam(g5PWc^|}mF47Gx{W%#{^B@Ca9Uz4C4TNKEq6NKsUi>n=vqWJ|KF^ze>?^X zpguaE5jlF%lo)BW-jUgYg%wuu*Z?gMqdG(KF?+8;QVS9zzvouTnIQ2@?iF||R-N!! zStlP*Jmw>0@-##_u>;iRy&&CbRa$9(*)8EHu)^Q~KeOizi$dj6k_G;ASgm`M%GGfw zpWl@pIBi|J{W#vBz{+u2H*V4!pb}GBxrz2EL}z_c)TKKw>2ZM8E@C!5!#mJ5yw5z}fzdaz4)Hb zx|DI2s_h1_>a-VKHga-s^o@wNzX$aEL$~JNHq!s*>;G+GFT~p1F{X;}MVS^oYKV;t zUaxS2u$b(e3741+`zo2#^uE@uH+Z?nhvRL2#f-ZIcuTW5_G4152K(_$WtgDERq=g# z6@g!}?M83WVuF(#&NjE|K4_Vpkoib4Cv2p6S~_%)IFe$PF~Wpa6)xfwk&E3Ws#OV1 zsUHa~T|MXjmS!C0V?BJV=jJDZ+~u*YJ8I!i0`5+>B{2H9iZ{sODa^Xc%h1B_nr&1a z-%R(-Nd645?X`yJjEAi(MXp%Qb70;~xK-eGTEz4@OWiKWhL7+Gper)Bf&O3y}r~N$>cvY zglKQ=@_JsE0{KDk4BP7!k$b;!O!z=7Ty*e$>FkbddNaSn(93M&)>_9`leWnr$xogL zBx`6zC~!DYtG|SGg4-|YpvBiUns91fNG?EhE^#Jf zMS_q6;G#yUf|T0obzFV+k##|8@8a!T%^vmC6eO|<3!7a^AG)dkYgPX>IVjlT|HC_u zz-t@gl+{6o!xTyy%qFOLfXh^sZRk^Z- zk4jDc!xgRLs;r%5NMFjGg%w{7!M8{I+YpZ+E!5qN9tbc)aNdjBNDG>Oo`|n%O1vre z%WrgWX5$l&bjoJS8j8vzxj` zU>5e1O*_o~uhHM&D-uoI?%k)=t@cbp$*w~N0i#aphedO)u5~pRf|$~#s!1Prn%!o* zQV*BlqL%y04#K>bw_Dhf`%D3B;Ic2c9Axc_FqFX^0<7p<;5-M@O zO6d`RJkS&pUJKUHvs~o+Q78ERX5JC&N3XP~;o2tse3unD@a-MNjSE=UD7iC|McK*4 zy;Nza*y-#1mEZcRW;%8zpWi-Qr`dVSLdHqqrloLPy2a!?T~g9FUTXh)0jF$CWi6p# zbnSVXp%ANz|MGdNYv-Gt+MS;|8o^g_qIlV0l|h53=2n-j<-Ql=&j`O(X&zKx*QB`j z@iyl^WsUKSA$dhbU0SWIkq5toSznbpqqPt(PuG{X9UvOO1SGG0ne<%(dz@o`@!II- z$n7^YdVPbU#KPtvE`9xEelD9c8YNtut}&>Zd#bk4S1y z(*5K>j{!pJUn+e7=RnFStF7QK&Ox;c!2Sj}2aVpZ0nP!PrHY(jv8m-$>IU5B0)7>a zl4ap|y4$FrC?EbMCjco^yi|@`w%xJ{v#N6lh2Es94fg9_UB2Gp@8lvKUU8sBx)ovb zdJYka-CKMX1_SUS|Rb@~R zK+3OtScJ%feXt@Op>01_Y4^Y71kV=M~#hk z`D-4f|6`PV9f?WHRAsSyqBV1?k&G|S_MkeUHR=1#>hjm`w)x}P`KQEo&B*()9!+)t z0U2AA(IU$90Kq0M;}S3%&|f-;*Tb5v{{hV=_F=M@u3F_Fp=$qqf$PnpeKpo+$frO*G>%_)=pUd;S3EFdh-UB0j=Eqs*a+oyi z84A%4CI{=HhViC_#2Ozro{&#E*$l3{IwI8?yG<&OH%U8!_rF$`8N1_X9WT;zQR!!o zTWQiSimH?`F>jL4y_}C~!^raN;*-J>oAM$BMUW{8cYkz0JlQ}jEl=-wqPjnYtZ8q~ z8tMnh03DFr2{2;uC`ErCY!8f@PAPX+{}0&g{|GSsyPvH%@UDbV$V>6LEB&Y-U2O7d zwBWRn{Aycz-%%j>ME*PSD2pgIns|0lsQPWOjuP`PJXY1WK2ozAr4>1vTI5B4HdQPB zJr~?+RG*$+RW4yR-|>kr=GG5#tuc_HA?Ox}BnJ84z!d%q{T7n{uGSSI5#olJ9TA_i z#k@gNhL&4DSJo^N$Bagrzio6ja_+UE{Mr=PN~wHxHF1#%!vz3U0EkVel!_Eq%fhb# z!-qX4QDMSoy{er;-V(2+Lk=uDq;@23QL3lD>D{$ zU4^{;lV_IwQNQ!g^;ZFX5!2Uqm?h9u~kX z+n_U7VyJi_%zvFr$sn$L%2)eX1;MVN;#ffHGy8~LfuzxO@Te8`0m<5~5~NQ+91=PG z0uxh~hSOB;Pl zCimvEs_B(DjcUk6_It}{SrQ%us*&t%Cz-7~^0A4{>xtcQ@13%ufF?1YxWOuqz7>Zd zd7|(amoLGI!xrKgS1h7*r^@M~u>1{k)hhduOVnn9d>FW~szr%mfEuXP?wD`2AEPKk zyu~9e!HM_AuIKqKn9Fn9_Y_#S*d7`F%1?X}7$6)=`u+tf#jE%YuI6_mqDOZbQq0cU zz&dVv)G3{Pa4-)GZmk4z_JGK)|G##F|M%|zN)LL30>C*_WTN)p!B

{(I3Y`TcXQ7RJj`H`{e^%-OU z>M$`gwZSSymhzMMq|3I4Lb$G{Ul6BQ-ccaTDlz%|jY|(UkN4@|kq{>;;9RKpJU(`iDhMv5Xe+1anN(F(kBh8~*UtM@h>GT$drL`-+7N%&$`uCD+uWr9wT@c^p7lpf+{Cr81m4aWw1tNCO(u z+3dGiBWKAozH;8QzMbRMxjr+Uy8~;W+>0!5!x{IEULL5wPlppLWLo|%_3elz(^3U> z9^m!u8|5UUaTgFUP){KC4iwLg3>pw@eSzLG-8;)DBlnqN zeJAG8UiP9AI=S1mWA4wiJaWr0QL763$JP$*fcD|f0O6yjPk`_+OdOaJP#G%ln}4*N zL&(;xvG{O$d`i`f>2t|M0{=e)9l7(Ckg+n#VGhpbU0c=T3dudl!%7@0qyv!Z-}cf2(OIO`h1P^A$3myfi+ zsAGr$Vt_?E@rF}oIq~}Q-phRxsXg>s>j|D+y(HU&WP&p-7AhWt{FMR>BeBYWxOCDl z(hKg-$lO`vN@Je5qlGJx!Kw826FRtQ=A;=X{pU#?P(VnxN`8g)KiZFjU|Q0~$H4%n zqXi2fEg#GSuG=iWMCpHioDZOewY&B^x(9MiSw4kHiLJ77_P%ZCGszT^9Z9JjVeo%) z@=*o<+-Jg%{WA-2mA^cPtZ-TbH8`oxcFKl6-*e1d9In}x!-uMVJ!e}1)6WAQcV)sO z^?)y}gz&{Kdfk8qOL5a)h+j|Xi3nheDd!y5#H9fk#!s>QCqJKCq!)Rgk!jI@4bF1? zb~I2dS;K5PH_5LxyG3rV)bBALTY6rBf_)Rt&BW(jh}56feiv}FXZK9MI9d~x>Xh|* zr}?`!UQ%;TDny6jz~C=m9l(dj=P(NJ*R27wt*JQ)HBalpHf?LcOIoeW zE8N>LM0?l2&<%in%geTwM^hZ#>C+;rFJR@hH4>zxqKr~vAkLu4<>#>Vf5Mxo<_!7|CYIj5^ zVj=6j*g_P%6HY(HRIeiRLweZ$kdj^6wb{pn`d5jkTO?iAG%?qt@L5zw2~O}cNm2K6UX^h ziCAStdBsLcYnD7uw9Wv3IUU_IyL1~>(6xf;Fl;2Ig75(^EP|Q)1L}oQ%$d(i@lW-e zR|iJT>QmR=7S^ItwsrGTAA!jFh!PO)eUg}VdCE%kRVfMn> z4_-T}D7HTN6qn>wPog$(ZjfE7F}toz<27A*s{zl9z?c!i)L1;hn;-!@c=m&GkDLjM z10I|5zidRFq0fjQCpf;ge0~%wnz*-<^7h3Ff_<2K$<$FAYa(mFVRZ4A!5NJ95$)_l zVRR%Az))9+@2pq>*-kJ%O%ty&zQRJFY6p-e?XMu`LLm@`5=0*u8(iEWenA%mEcl=q zK!{lexl#`&xs;MehW3B;n(8YEj+je;2!RM6KO^bIkt+>WRQX|VGEwV2sl&-f20l)g zY?~G;ZjaV4_cg`Bv0~!kX?8fluDkb)sDr9*HZi`)=A_^q#>Abmt>?S}G+1_oQ6$Kf zrs2elm5-Fmz5ahd3tE+)R#-8?IO;XpcXQ6N0qu2CG{NLw{(t~iwWt!r_O*55l|Zyw zp{)yQR5d|Nwmf56zdOORgGU)h4LGj(qHT%M4S*@C*dZQ>Lu$b8aSMngjVgEPN-|bo zCXIj=j16<2HF%P|OOl!w+~Z=?F-*olrME{s`2>9vz;)-1I=ObNbP`eVJ_mKLt!IPABQDQ>)cM2}LcEe%uEBvb zUfHbc>{{O=@&yKQd*xmP&5pAEPK0)Ve}pq(ud?7-WG~IYSIRzL6vy0$fBUV2-~DA3 zjzm2N&-V9a4X1~#$Fo?X9%R%+sS^e}0}DH-<13VZd=pf)5>9p-%%}NY)>uNhTgarN zH&MH9t6w*H5?kV4?*1uZYiegsJ^k`Z=KX$t&l^I&cJ2$`<_V>eFZ)jq{XYhQzx{4J zyi5noN)Qo$Kn$(cM474LiM_*Ot(4VQFJt73B}&xa(5v%N%rNOsky6W#XkTc=^tE&6 zIvyFuk9B_7^wSL%w~Z?*=2#jBwlerkL(z$FrsMRoy-hz#g@qIH7 z6<3|uV(znqy#kY_hEwXjFj}8+QvxZ~rlD0VrUE#Zrd@9P+#D78#+UI8q75MxtsRk}YKhtljo;2As8mi! z2)clyDF9_-1Fj8`k?e0!jDJeK&X(AD{J@`eHC6wKO4C_+-`BrB$uEo5q@j1_8RA1@ z9!~ESXYdL;^C(XA+X-;#Yca&~i$RpP($Hg=zmF%a2o;r9dD3=@|#7rCzy1;d5m$@|GeCvuC z_I*@0{_&fY?1A@N$v`*He3=bJqvv%wPI>zvKMi*yQ8AyJI^K1Tpnl#@^E0d$Ia+{Smg}^Uzm%Xor~0wM!A}dr8Bo zVL$9r`z?hBPk}oFD6MH1bX3py0r``u&AhIW;?0i<6jF`ZC8E<@jW+(jt!_91x9UEU zs$&e$qcEL7JY(33y-Uw=Z(Z3{(!zXyJ>kCBXk9=%KwcwzM)Ra<;?Y69HZqtHsbRaMe}@Ys~zr zctp;%GiJCGFudxOQaIejmorfd^eKEyA^G!(-g?)+>_L{0gj?5 zunUn_6FynqW-&l%hVi_ICl|#&%6#U4O>?&u?dO!(hC6QpC%#g%To=4FTJx)&vU)b> zoZS_@oMWrvmM^I55$6M>pBJh%SV5G7K~(pP6>%Cfjp4=u#k)DqCLvPcQ8X*pTYUT;98MAszF${?e~eDQ z`KTboUg}7bUlw}Cx_&Jda}3-HxL;0BI~Ux{hEH-`A7x+IpUL6cojd2feCu1MIc;_h z+G_GH&?EZ-kF!D<8?c80FJw^^r4#6hsShU^Kx?1E1N7 zZGY@VzT9iV?oSrzrmX2v$isiFYRKQMr19=+7KLq|=~F`hq9P9>Ve{_w6gvGmn13Lf7ALlm={W^zpUnEJWzZ&jM=;XWuxhyIMyg zH-9h7<6SONKZiiF@3H_$7IcGxn zsQXWGO)|(h_|ox>I@I#C+pN{&3x*E_%{J&CfG`M-3XlWvB&)hqno&>zzlhVC&gz=F z8j#n7HYO)8_Yde|aRH1{H<I{9LaONWO9lWQ?e=F9!y^-(aka%+@$`2~(D!%Vy`vqWe-AE0xfUu;%>GAiEC`a=#I)t=-{MaZEeOB)j!H(`ih-^xj=YYMb z9O@77;^koRKcM8YWx(4G_$@-8kPiD5kB0#KeJh$MNz_Gz;)pJd*A|Lh^!TOm*&aqRkxHTVO%XAC5ThQN-{_eBfJ7$n+|DJF{NTE!Md zhvgS#IG2|f^Mvw}UH2z5e(}Y*`DJwRXqk&~l8MROr#AIed=scb@7ddv`afe`xc4@Nl9a8?HzU0{ zxZv#UXF2oKSnK%1ZR+H{D^hp%KxA1&VVJYQTx>tQHnFb-fEchxvtgt>35wrkJu4oJs_{@jcJ89t%~1eVU{F^|y^Rcn7$#H$%`trp(n&T{Px=dm0xig+$-iGN`rRFWKPp+QKk##>WtF@@90{- zv=(ZZ@TR8oczXP-Fg{wwxk3Ruqx$qhoP&#s6rc>gX2p2-purv3^}IA|v$h6*4)Ys- zeWx4qqQ*t?(!e%r--&<1V|*WoSa7R=tz*;@`@cl{kc^O(25#1d7VI6=ai1%l)Nf0{ zY#nXM#%B}d8<`V{tvVb`JP8y_{=7(+-D3!mdVaOL652aQETVv|a!*OSYT^7dbnFSM zfNh;+{K)|bP)ETE97Y@Wz^lZ&Q6t>Jw|1Ieb#U%WII~dPIs1^fQ0qX+-61A?LV>&i zS&41uNqs{2pnU(+aAPjG&$x_k+c9EoWaJTr$?+E3We`cIVu~KL?eBy_{+i=Z{`s32 zc#(oA)3D1W8^cl~Mjb3{{uB=^oF_sEmPb7DW=XJK^`MJ+d*Q|DT@6LPH5fiC68n01j(9SKy ztiWjf`XvE!l@vn1!4Wgpzp1f+L}d zKPabbjk|$|zEc}!BX8pmUrURA_M}HN;q!ioR9D3(n_v)G-sHPw)HC;)$FQv;hu0K)CW zVEX`(Sq>bFGxa`YuLaw^>$GsL$)@ceI@AoHIL)WwNjcP@gIkqQT4q0^&F^pKM&QCEDWyIPoB=B`PbZZF zS6t~CJj$`L+Fzps+9pq~muz!pyjDc3a@jMjvq$c8;go;##~ZIDhKYRZB1g zJ=9m6<|rf10V0-h;rs6YPyt%F4ri79TQCDehoZgwXU~ z?OED}SAJHjvV|pL#@PgC4u&|cemc{|qiZ0x4X^%tB)A%Nn6l|Io`s{Ap*Qhb5Z~9T zjKr)ni*$70_GZG!%!ThC(5}DHC*aI02!)%CZ+_x$thl&%#Yf*Q%2y8C*)8cQCSn;$ z2ns;Aa-cD`~C+}wQF(-R{8_^H!!y&Rq?vZr?>WJ#>u za6auTN;Id_*TMaE;hk+tHsuwdBvJzkn+7;gxvn5Ag_}%@YOxih-(J(Ga5es1XC*Du zbhvbDy$LYV5_U%o5vfnteA6$KMq{d&ZkA^05T~X9N+=|28>BrEpzIn^`7Vjpx%up1NoV)oc!7q3BE5wwN(ZTe1VoyM*pN=7_ueHW2-2H?fP#P`hzg;1kkG4ubO=%snlwp3LWCsW zUHjCt#>_TKJ%FqvNQkPCg82xY5G@UwOk9i0^+iFYcvQS+Z9mf ztkj$o{JkrE;oKmIXtBmwPGWmRD9*C%-%cjc)7(zm&qKdTe|G}(4z5?lpZQX+e0>B| zJ267x;}}a~0e0Zc)5Smf@o6eJF~M)msx8|K-|2QkQNW$%0Sv`eyFAaDk$EqAG2eSOb-GyEH&+;9O-u zEqe8Z?6O%BMP}DJ#@Df@S3kZlXK;incXy9QO?+)5;Q8Fw1byIga+J|re&^W^y>+{X zcUec~=kDKvd&h8Tg4WiY$PNP8>90W>|1mmmByxLEtG&?r2RnA}X{-5+Y5Lo^qi|Wy zehf9wwuknQptT}#;Ck5bx~(O*7uuIS&^`n6Lat>_}a; z*3l)FmF=^)Qw=_1x^<>%dbLf{NKqb>NTY`rU$NZQ`2wM`eoRHGT0nHm0uG9P$@5$1 zSj|O`Jdpx!Z7DqKjKHRWrAp=ubPG+Vg;P?vZhr_^e~Fx?R~^ifg79X>Q|0Ty&+g@D ze=MZc$%?2nvyBc7-WIGllLo4CHj*09r`;wRd#({tSi{570xu@wJ zPWbg=Lm(T($WumC>ngMNIyE}(N2L4Q>AJR!%K133@`DXprF@@mOE8bbE=f>n1eulX z&A(-PbCP6{6;!+|14}P@eY({q?MIXV@9Wbf9ubw!Hm+_;%&Q0^2LM7c>p9L)`-jEP zSq`c{zaf7gR12^x>%UD|M+4=f|)E~EaGK17`ioA@S@*Qp)~QZuza53wn`6?B!=z2`Ik z1UZxX%8(4gFWV5piB#1C zHqbU>-kB^O^XcaNtpYSQz**hrJQvt~@FxsR-=Q8$DLg>`ARID^9PE+C;KqpV2Pj9g zXebqh^=B~$g*iMB!2-1n&k~frAH&~X(QYi<-rQF3O*%-q)7VPH94hY#TUeSxl{~|0 zi;~oEYW*nMT__7h?B^W%G~vX(qoQ5i-z>ZF@cxK&DDz!8%D4L~fby1$e z(2QGO^V>hgn8krvNjI@}Vb(bGvUOBdzpVDScgJbgBxhNx;gzdz^<(*>KefnaXEbQ@ zBD$X_(5B(sOKBtJQV^)NI&o?qGtr$PNIWB4^ew@iCaBmME!l#XZB-g8vt(qC zMMR%aDezow2W_F=91(&%UG zv{C=SU)#ZZ5VZ%`i(5ovOdRMJdG>YU_8#v;!=?Z$3kcx$xG?gIwmA=D5dVcZoHCI_ z6vpjH)$A-Bsqg53LH$6Y>?C?R>Z$cI2Z&3lec4t0_P%zA>47om_uqlR_Z^_;wShiY zGGv>D{exW!b0z<5R#l_o4l|bzqIYV3%i4i2Iyo6TC0*7d2+fGHPT)FcIV}|wJfD@d zJ73UnuVzc!ey>i73z`QG5TG33`AZ_5C1Ki1!8v(+z!emS@Wr+Kq+vWYLOZC}uSqZ*3 zVeJWf2l;3q>&F;S2GnB7VEws$_~}`iYv|rIIqc18B)qjs^8xVB*D1q!C5k>@!l%s^ z3s+rd4*1~#X)7TwzA6qV&cDS+U-~scVVFJVvVG^#VOU|!&N8Z+5^B^vNUAp!IN7sc z0je{?6;LMj;P!em;mZ37if*+i1g8&OeEJ)2m@zp000?O2cm0T><@?PfAcYancKHCr z;K%)UELM=e9EnnvKYS{BzbE|=#MwY#S%^!FpgS!dTqh(on?ohC|GQK_5Tp+FXpP<| z(f~P!3`%A~|6Z)MxS$^n5nH-HO-I3|1>cY)vDFidrpk=v4`B|KUs?n6&}D7XF^V~!P3M}h+qqLaVp;UacK`(a=x!m) z55F7A(@1gq>sez9MFZ{fbck*NK>H_y$9C`&NoO9Wi79*Y$~Ni?!RHS7v3Ad`r9NCM zTh%7*nwwNBSao&xFC=D+qa(3NV&n=KhVh!%OQ>pFSmh&wm?h(A)j;!(lg=>PfR~fm z^XWMR@C(S=o8nrtSo8`OoZ!DZe?Mq@kNdQ_N3Y#~l_s0~di^=&6I00eJ@|1+v{prL z@dfxrBE*j*ieQ1smc05IOy(M2h#k~O=hRq7K1)^T_2Y@ZIHzoX;T^-fNUDD0|2qRF z*nG%2lrsJV%I8QfD#w>KlO*eH%kp+-d#^0HP;~bfm66*#zv#T#64#}B9PX@9W$dl|k4@uB z1Z#MLF0Lpg0&B+M`6S;UyZrX_@+$OhE@2KYZ;@riP;&J|oB^~@(gC1z+x>`m1Xsgo znj0n~IXHu3(fY2>uPal2qV1M0;BLv>Zx0eT^_&7R@wzl;{~vN37A#mu5{kJ)uwsFT z=wFff{`=;m$L?7JgAZqXkaE8Hq0UJT$yS^jN;m30-49a`c8;~{2XS`8?h^~vCSu`K zbDdXUx+p%sgx@?gr+NQa4Xx}6xF^1=HyD;3-blSqZ^9JKet$H7TB*nMiF6BRjQ1pt>iU7Ankno7pBD=+ zpQ|f=rA!@X@1xx4kKc40blR^Lges09^dU_^?O^uT9&feQq7TdlQ^uJhKYsNhC)av$ zXN@5c;KGW9L6LNugzRB?ekHY6telRDF+qRmfoyn)+bYD$FR@@Y@)y}Wo^j4@C;It1 zcg4@$7N1+y9Q0Hj?j4-qFWi_hf3$GCQS4lDgRk!*ZoACfU4EE zyrLE3IzaeW(yB>+c^M8-5DqEg`3`4Bbjx>YEP1VH})*Gp9K7RovXygOe^(#VY0b(h&pzp*ZkT9wBYk8{&}`37u<9i4t0U zk{;5YuA$;QRodJbX|uS@w{`2g)>AF-x<3J^LykCM>hGPJh;C@7BFq|xNQ8rl(C#zt zIAt^TojhyvA6X^=pFJNet%&K%XZ!P^Ih-zY4mUe0S@{QK42@7;0d4c=Vp?rhz`o`s z)+}Bd@S2u8)s~tT&i9eN7c&>(i^b!JJ0(>~Mz?fwZ7G z`M>>qmH%L^kg1_~;~*KSoh#-{Mi!ER)rdJLQF1V~lY=sLYzOZHHo0>=uo+2ub~9Bg z^Y`NMzf<^gV&owvjUD;QhFM~MGIh+gEE=U5e)$*urll`-$m5(ac9nc-=*94`E;LQR zScoR9X2CnNvcA0tI4bQ2?F6&hs2FdduHr+Sna2!U+Kxse&;~!hv`SC z(NudouRy~uMlM$wv#}z8f3Q(q0P#9Z>69e0oU0L6v4gQbK8Gqu+HuDXMHgo%qA-KmcasgWqGGcB-v+Y~@#^1QN^|v& z2Kg?G_krlEhhG1E3}7lC+(S7$0e-z(ik9T(pF&K;=NuHCM!d@G4;f6OI(kLJSC%Hy z$ME%Dlde{Yl3r(5* z`@NjcIuqxl*kv02nUQtp;>oC@>M~Eh$9yMon_mYCf_(G*SM;U6cH|xjXS!HXU7f6B z?S9^EACyetfL|kN;8}XWi7R467i>%4v+DRp-rwhGs6f5T4lZ|3(jTLLMpjTm4Qwg% z|AN3U9~?_Js!lTgN}Ju4DdXU|jC)FBpZ9tQoB4D7L!+-9k7*Q_2K!Hv3=*l4WM9xN-DTc0d{^+0c zI{=%41L#N)u|kZ*_I1HqD_&&3`(8JpW_6mVS~-_QGZ%1C2n69~`0cobZG$bXPqrx(K$Cww?4&SDKBnE|hbV0g;6sZP1@dwLo5KisWT_0CtG z+3U;W@EKCt$nkJ$n&OpRiYsC*SxDFmg61A5;&odTDqs5}7cJkQ)nqZ3{7&A$C-0J> zKh?e|;_l4Mcy{9V!I?~StFXqlo1EtHAoEW}mg#-@k@ z)nDk)ZS|Yd#1?XiHiTGB$R<`q;r#|w`9h1o*bg$vUMdtw@fB_27h$S5zUFF4c&|Yf z6JsI1eeMDfy&4b#L=zjFSz-x*?F&y={jT`=9PQlrHR*j$pay^D&=`Uh!r4g;b0ms< zYAVD(>bcRJa6Rm1&eyS%(oAc6V{gOPK61RbEv{10!S0U6(`hAx&MSbPI0gty-M459 z+-3djkHDf3xy=qWnvc$C)gfEm1UZc#>KbE~P~x@i12PlpYfD_R+P4f$i-CUx9UJw2 z1TE?vc)<;7#!eXmUp(PiXi4aqL=Qm9H18Xdp6+)Vf&X7E8MCVPr%Ymp;n{P@7jX04`hA zdF9x*56boa2l1)5pYnojQr1c~`>dwajn68x1=8 zusWbf`PsGeUqj>1)%yTb^B=3Z{jQc~JS_LvmsS(ShnA$43Nw`Z#N$>}F+@-vMy$Pt zG#@6KWmYZeOnzH4@*^2D?Zk8)KCK%uqRZ~q@~5xf?F3}2tQ%H|Vvqwjn62$@5#uz$ ziFW%@yU(8qvnvDkg~#a~k>1sRVaw8qF>E!6>fn>7+rOZITd498Kx5&cq%m7`1MlPbL_`V#vEE*u57LMHUe?7 zT9NUQFFS(LXUSZ^gm|LAoWweX$2{pIPH-r_{bkvq;PPOC$8~01GJ{~K6*+g3M`B&Q zoi3^ZPE~s}+JbqH+r8Bu-i1cLNVpj>fq{Mn04+>oGl`8FGj*#X0rgl$RN%)a z6yEbjARU5+Of>@?ON=;-!(2B2PuDNk#k?t6r(+}Vl1cV?(IUi}TnRiU0RZ!kxe6ak zVNc26A!0VVehi0{i)N?$mzz0ioT|u^Gzv zs36lSZx1jixH^MaODJM~rA9F9PrJA9dI;L^^ZO6Sd;Wti-!$xt<>{)&CIrlZ;V|p` zqjW(ubih(hVq&=kx1`h3O_7)>yBR=&jMAMk{hjwmt`bGn26z_Z3-H{%kE(1uidK%; zb?1nJ9XQQ)p#qs&Nj0qq{u<6lnz1%IbMg0hH0gxO=@6Mi2Mz|B#Z z;MEo(reG?rsrffOISor`rY@Y4s2vX)fPl?z0TpHp@3Ing1inOlwXGi$D@>xFz5K`G zH#1-m_#dXtZAhGdeIWvCktolx{s%E|SBT0PPyM1M99=&|V9#l98 zc;}@O)|{5K=1YGTKBr){;%~Q=`j^VDvCjw1-w(ta8k|nlVC4DC#Gcivwp=O zum013YM+f}F{J%bd^U59>RcCH+2sHAq8Z#54sdXB4-hQy!4-wcjtfPXiu=!2Du5xD z*Dx5U0_z=`nzKS<1crR7w0gz#Rc~eFJ)Kw?0+D_a0a*5*%fx>{mHGgbFE>QPf;KBz=e_p3V9Bzi34*wJid_0S;R%d!RAM>M-UFV1JYg| zu;EW?+In<6#G1>#Lz1$GRq`12V4Wl zlOU|gNQ&g{Us}WJh2D3@Zlxxb-BC`@P8DVRO=x5}hQ-}=T??dkSN8$0nZhfJdnPw+UI%`WG?;^5KJ*6UJW}~t)vX8 z!a2WdQJ3zt%_o!Y_{uGYKvfRBf1f{0`ihOQbPg;0QR!@S;g7GS5Y_pkHF+lqy9wk7#(UJYDiNtpcBqvLbyuw!trAUdk=!J+>4E7 zEJO>#=|-Mx{kbxuYUF{a$x8vt8i#GV?uQoV9gfiuE3a)-BC0WLe;t?IKS!Y^X5i`c zzc-#|$g8Sd-!h_Uzr&yPJa^H~&g$-#!u?-#?&8nPdd-qLsfoR7V-PHNuc<3@SnpX$ zz4eNYAhow+Rkc8Jmch@icwPUqD4 z9`5=lAu%R_xR$oY;3w(gn*4BZD9<&9XfU!VEH^){l$&sQFvu$i(1rfqlBMDFlGeiD zp*bLz#A+nGVV-E%l&HKjsK7Pq2^6I$569(8MjL#?dio zKj^B~|F5?NB@evK)v5~1l!3FfzKYh$4&4tEyp%oV3@*gsn~Nl`lMATpkTv8{DWW#M zCEee7uE7NwC`XMDcBhU8Vvao2)(+6?JLwo}mFWoitjpTP|DaNN(dhKghSLNR-fFP{ zh~+$@n7Z{t2=`UMWR)HBGxGn@WdIBqpBtWp0FlPgFFCBTtS>*Lun07v)=X&XIuT@Q zB@F6)r$ivSnH#oJ42b;|0tc;axPzAM)TNK_wo?()4y#9pr*0%pp3HLwnCT!{2l4w) z`TQ^hciR$a*!?dkarzy!0hQ#Fb&F+ev#f+;==Z2Lgbze+C`lflQ!(*jG3uPF4vQ)_ zYs%gAiIv^#iCdy>?NWco%qM-^O8_VuF^NQO!dLtt(24E{anF!czU*)X?#>l^=4*bc z`aM(@Lz}sxP;?h-6Gtmx)DCyJrt#nm418^i4OBm%v@h9TaI;X?>+6 z-@Xy+(s^sHZkv6W^Tqvd)BW^fVTV}{)u@Cv8M?qo4s#pnrJMIgRv%24r|(YfiWkvi z0>mHo3p1ssmc~DMcu{yQHuK3}Oq>!0VEjvTgv43Y+K0CJ9{D7pt3`me1gC;Ti>0RE>FJ2El}%#znlMWN-`XH0QM-)iDV#Nbl6~6VpbVD z^gf51`Zg33jZRF+qFW}Kqt8|Pn&!SE`y?dN#8jv1U-*l!w8wL}ora=vSBWyq`_0hC z^lX~vw-$-gcjL7#-62tRPalx^EiEkQZdfta4D<{K_!fDegSkE^}thOd|Umn%ok2d)1^OA58Tca&OsN-#Xrom>S1mm#_zsjg>yji6fKV=t&4@0NXeLVFM7LH}`*FR3Td0Z& zKhE#d>=^2$B|VPrb+05b2bp-IMRwH;->uLi;G1<{hxkE-DBqRBD=>qDHcKXBPQBKT zya;Ef+01#x<%SCB8+MhqG(%Lk+?#F~M8DTO8nKFo0NjbS0zj$;=$zGhuSBSgpSG2K z%evE-cl3L7*fx7urrXTEyc&scm?izq%-2JruHPoNbaJnF&eMC*e56*^ca{3Y z+zo_z4c=q4n{R+H{yZ%b#jAesD&4V$nFfSKMJd_X*z~-uAC-xFz;UT8@dBzyo+uu+ zk67oQ5ZHk<7ALQp$TRH_+EU>>j5oBI$h9$%WZr`fq1B7M#NF3B% z;3k2#>IB&an+*DJlwq^lvHS6ll%F4KkGaIOxTOU&do)Xis@XZ^T7J-r{b?WrIIEix z;BbQG)&+Q89h2?~rEN`LWm}v?cbXziO6pP#+%ngrjr>`ME)G-KEF;zm9yJvL?=(HG zKkvojyQ%V4yllNbzlOo|wAt72$x-%i?>{8PWAAM~40NYH9mP}wztfr-pxGn&h@1~o z&F_PYPH)d3MLOG>XD*S57!e!$*xsp|gx4)+1j6a4dNj-u!>O%fyL`<&dQyM@X` zhA;=}ZhE#=`kmMMd2zTDq3Ml>eO6%azOb>bWPze8)`86F)`g;j*%o&_vq(4r0|U37 zz5TEvsp%?5h5FA+;<>r~h^eOrL+lZs#6b-XuRi-t9VVmL4k$t}KD=Ll!NutZDZQQi zGb-odNm6;DQ?tLE?&5T^-Fbhjko-uI51qkzT(ptK?&GF2-AY@3{oq zKpykkh;gMc9&kI)6U}BR$}18;QIB~SZu5ZrCU|vm31g5QRI$1XXR5^!P*`T8uN|yh zb;&EgG~L7V!yL9ma`pJAhpd1N!1d}hmf^|?8h zqM!8?&#dQ|Au!)Q0Z}v!QfB zBGVeHc$SLTcJ(&P8mfPc8)NvqQ%09bEup_i71u^IGj7co^-@ z=E5!=yZMH?G9WtKZ{H1XhS}ctI#(x-67ptXX?oc5)U6g=b4)|Ts(MW`+pz3@rg-v! zs~`7eMNn>o<%bXto>U+Q+)N`N&s~;06%`qsFb9rDKZVhiSr;+gjL~#&lvov0pAVMD zgkPu7ADlaeFF{ju8i_8I9{L;f5?hTt)7}_c(v)(24$~J6QHA|yQng(-^OCgrDYFQi zDN7n__;?Q$eH*m|y^EeJ!2$i_6)$t8i1*-FFt_nRNe`z&3{c*?KBzFLFUi$%vurd%QMl&XNYp(XS zR+W@x(P3G)S^h_;h89$|#6~{G$Ja5nyu_BXnmt3tJOq9jV z_hb_R*J$K7kDF;7X`emMruF5BVt!KMZ0}tR6%4BSXI!5^a~maq58Z;#q77p^)YknN zJ^5}IU1^E7gZ}h-=3U)T5wp=R5N4%%d}FX-q{oP0{K`yGClmD^6$=!;l3nuA?%Nn} zjB+)L?NGdAXS!<3jF9TmYcv5<*6KcdKa`hY!;N>i8d%@m^y@|8Ofr^GSo;d0V!VLv zJIjIHg9t1$Tvi`+UOFiFs=3OU;T|;&-Ft_*PGDjRAhWjauzvt3RjdzhN31q|j>S{W zFCQE4jXM z;QGfsc=SB&rnm64NM`8Jcbh-+k_YS;%s(nQ8{Col1e%%asj-JWmAp7(2%z_PvU4=!i?HRC|G&fOXJFhhaH3)V(_AOqp!DNS7g`~i~Mh7 z?2e#-i3j=`FmC`#I-GeD%t%zhqiIFsyOzGDmiHIDrk zIO^r1l*217=BK{q5*uZ&6`;vNZO*fnU+UIKlOfp7$<>thGBom96dIMe+$xvZ5&dSDA@R~6GCD;#L6Mpp^Mhry=OqTpB=8* zXYtJRUA{r)hv^l@$k(h~Ka-C}5?e*gb$EEFPaOY?cq0AhZ=7g@*%Qmxpy>MUTB07H z9+P${4im|2W12j&W$74CuvwbTLdd8NWcC@Q-oa#YUK9pi5yKlUN1o4oK9;dc<@p=l zh+lgy8V_14ia1fGax_T^FH5I)xt-qhc0M%2=cTU80MW<==|fl`)oX; zM4#hq?4%TwOrdRZ z%~9{a#*eLdw|%W?O@F!wig3E;{8U%+8;uhn`rPu$0%+K9rqy6C1RKK1ECG#5{DnS$ zP!oS@lojSPKIzdMWV1wjGfcMbc4?6fe}?t>|5CR8Q%)Gh+jcULbF`(yt-5Qzryt8dYV$1kje{g#@wT-%-jA3-Uj)=I%mlKmNr{JouwokRx=Sq)T0s%b$RCbpl;z-)2N zy&3U*u4&?Gd;->#_W@seWhc=3{XYmhzMlnNzRvllBG(fc>1C91_2SZjI;(6Kgnn+ z*iPDf@^|B8POw+R!6YU7mD~N8`2m}XM-bT zf+KAr)gRgkaUF{`rQR+v;5Qb(D*oC2nNt}EVg1`;%VIzCJb+j*xLVhof^siLLrm*% zltK)DE7sJ|EZ)Rj#Zoj`w&Y@!xc@0jAkgyJWqD^kx%l3a4O#%qjBwTyY1>$VXN~i* zup6CBYQn}PL(WyYrFk!VWV-1eSACawt33r;pl2$8^db_54k^NL!5rcayT{qi}Bn@ z9%%zpV=Jv~x;UcFR8B|ZEOg@7Di5+B{2YF{_gSjQi!f{b)Lj8kxASuz=L^8pzq_jG zzj=Go>waL$G71FehktK_>`!A&#tbR!NNX=?V>#Ian*5Nsl~Pu;ZpgJvXN$MSytL}2 zx7n{{zVwwoEan0jRH{V5wLO#|?EbuuvaHmsZH287O|#OMJXRb1!sGGodkgFTWPGF& zrk-}MUWcqh4>0FyVDuX1!u4+o=<_?@FlHx@;H zKspT+4Jl!XUTw%rrf^ew^CbrnOP8>_)AyUwX7f!T(&nAbxf|UMZ43Lya&D$o{1^FT z?hyG`q9M1hic@8Gags79i>r+jfTkieIdp}W=;Bk^yOyTC(3y!DR@GNNTI!lt%R8;r zld0tudz{VW>>R&xv)94H#1xl7C?RH6Q2I~;oglAg%jDUrq<24`g>F&}(z zgVOtrF4D$C@P}uun`8Ow*9$}tc&?|eE#VfgnQ-h&k69ux!lN0EDS`tTQe~I${+EHmL8#Xc0ZKLWmatO zj5Qj{^f?%cKZh@Y0U)kNyEe_ASAnx z3jjABr>V}%?q`TZBz8XJ>hD4|ySB!7&1=85L(*4+9bH?}uWe{@=4*YHa(?`bp4Q@<8O_tyumRP<<|-i-*8HFkX6LeO@Zd~%_xpLR zETu~`+v<$@MI$H-=1K#h(m>>iwlfdkpBoXB#RPOSbh|-TCOu5fleymf=F4ZmKGNSNyiw%;I1t}u2YWEvng=y6qpRLvoTAIeiGTuhmQ09e4c4LELC*TeP+A1 z8h6|~3LK0JKweB*UG;is5`l^Gf_BWw3%oZF;+vvfG6|#l5Pa-|ZElcjaq&=F7yeG` z)?K{ROUNS^z|2aBz%)vC3JDX#a>k$8ae)~;It3c$lxK6kk9ypUOZ&iHK4$sxk+`Gn zp_R4^WQzNM@%#o5p&Q^F?w$PjvX##srH%d7iONgMQkL)9(+!(L?*5rH<26hUYQ6L9 zX$)2M_6Gp4#Z&7O56*3Nv_V7@g58tR-e>kXYh<-^DWmenHdMabtFqQ;A1a|8+2m_a ztJ$dOgc0{IuegKh;e5sjq#dw6NBh&&rXr7lVR0vPsr2RZ#z3*uED$xYcQGh`pmu(9 z=U)&V!qd)=5P`e&KA_6bEwa>uz^(RCQF)%Pu&{E;S@EiFlUK~!OQ7wy^9Ri&4S7KQ zip5?5P`|2#{NX}fyu5yMy!HHn-nq^mBY{`0BZNCeGF{b;t7}&}`~k~~sKg(OP7Vt~ z0iJFU&QEk$^NGYtrpm#GONc>cEi=_FJhB^0?*l)TrX6Xk4n%MMh!e=v0mq@Z5#DzE z6#7;~8GIO8|KvH~Mvh=?LE+^-Vs3hGd#$nA8 zSA?^SRan?}^PaukGGte3oIwifbl>+$WliQZzZK2-7)19w?OcbltW8BuL%1DYgz*qv zBHgeoNjLoB8VawhOp4pQR(6RQSC8vIm!o@o;g?BJLZDt-rL!;S5Ey&{q_n=`MH-@* zDKP*;7JJZ&zdv&&|J25Kt0`TR`oimyI}i)a@_*VT;b|sR8Nbor=ftU(fHsCp(2BO`+=p<<;Ty-9@s;AETu0J+kl2 zAhVn}jyzf)Fn844O|6}9|1gxJ`tq@|&mjVLhwNoPjq>?=`8MwE=>+Dh>%2|V?E4&A z$*Ge1mi!;fCEWVb{x1b$pNlN;GX+u+40{knS@Aib>kHW+4rAO8wSvlR$_e~GN4{Hn z*3~SgG=>Fv4G@cx;X%ZC!UnlT%kOh}|5AnkvA}TZ-ON~H?Idhjvlq7< zE=OO}hE}CCBiyqV^eX1thU}CU)=XVjd#@U_5 z4sJDP<|UVw%#F;}^@#fc0KL8xT6;KXGJ)13gyJ&#zgn*_n%X>$30F~s<-63okHE)?y-cnM!IGOYwz~*vQo^`(eIv zh1M!~xhmOc@tl;?+p$Gd$Bb_;Dd_H+Mof^nP){0T34S==#Iclu34WVp;q}+Z;Jx1n zIA8F=zo2>09xw?=%MY(7XUSL57(klC2Oqb{7?Zb_ywt;(iXgK->(g^6OX=fm3cY@b zei^{fX6{U@Lyr+!BZUVIObxK}f@Zj-*rn=w+rNGPyDIzt@oduuvQW&23kV0ZB%tyA z#6l@nJ|mt}E&|Ir;`LZ4Ih6}?cE{@gSl@_?^@P-%_A`b!mdOUU9&v|pogv@$If;F` z>(*>Pi#sH-Qg9GpSdsihz*W%Aq~QI;A#%(9D`c|}1mBw1Sf?@8l0XiM#y^>^>b;;`9yth@MbRxqB?pDi;jB(;nR!Jg(k3 zLcNv;7LQ1UYRQQG;$6sD@KnWF)Vm8PX5gWq>P}y55u?Bd*D->8nou^&-O${ktL?GR z$W=X?|1@?S%N@#piw|HDiJ^0OMeE3>58s^cUd7#?Nc+oj;Gi&jw?u%RxN0~}HDvo`Yvim{)#kf0=)GXLza&~Yr%WfEpHWEiU z@?#!%$+0)APn99aaRg>cbX52VJtG&^PN7Vs|3HEJe1`vW2Z{}vJnm&nX2-7;2w6kOYIm`lzrXHXucGQv!wW{gD?R$*# z=R&8ECxTB1XikapHtq*MbQydeT^U-ZRWOPG^Mb(BafoXu<_}p=qBIh{keZ42>hoR@ zhE+s_Pn{5$$Y70oN%XjuP~^d$X1YnE!kuLMz;0Wyxwj zIQ*W>!`staVS78Aw(1r7S~g|DyWrD{pwFW=AIyF&~K za&7ZPeljvjFl&o<^LkRGmm&Af=9k^zX~0lLj}(aN%osmGh$HF)AphO)UhEd?QijKM z<GoEzKw%K=?S z5(bIs{TC1H|NIwo0C9a4XX%$@uQ~l#*u-w;%ZzWX9F}uuJxYF{OP% zX;(0{UBZ1%eYE=9?Wb8=Wj=AYb@THa8oJm6a)1F!BcU~?0>}3BPT!ei-B2ok2V(&iM;o?xAnt_WdS9N#3RD- z!zR_XxEF*PkC|_<#{N$8-(s1%7DQ+Zc;Gfr=;-BcoR&i#Bi;ubhSZc8EUl40J8BSOiz!*8sYR{+cogdc0vkK;~fk}lm$GX;35s&0ed%KG1I5<+zIzzL^K77 z$Np*vV@Mk}kCwt@zA>W1i(sqS_q5gV_Os+}-lL5W5yOly8JY5&{haf@=iGD8dhfk! z-9N0s8fNeP`|a=kmQTrR=o!B_!1Zt6?G60Gq&@^wcE*@(#e*rxbkI48L0HRvkzZ{~ z0pGiMfBE2x6P?C$LKw=kB4{;}N&6$h{l-{T#p9&gOCTz(Vxn9}EDf%(SEO zX77&f1$XAea|ZqBucJ2`ro6m@qiy$jo)*NHr10EXRr~3oPVL?wRi8^h8v_}Su3w!NT86bCKmWe0;lJ{ zc0lIgrWV6R3ZLhL`6Os45B#21K3F!t{=MMKr{sb38;no;+~4~h>9|d=`0N^>uVF3j zbYUxETQ{V8mz#9!eFOnkg@2vULhw?CXom0cUNS>cQmc!I+q2=_YnqRL{OKgqn-a7j zh+X(mn-(9Y#whiV6{e@5;@3@RRzMq-3}=R^CuUvFTw%8F#bo7k`cIE(#wh`b4m|UY zL@HFw6RL=1ek)^&u6V6%(eR5es9Pon@-gHdARQ#Cr2U-whT-bPZJil2A}b%R8nc`L zOw&b+1FFGj zB}mTh(6W;-DgPX;D9iNMRSn14tvq8|k;nZ^GyFa3y(#_oY}TWUs~|h8?@>@~^6Xj< zqMkhC%-R~j(lTP+j(yhR&$&x-^G9Sh(vfCWDI`n5to@N@NXTDgCJLvZ#LnFAhk@Q4OOnvS)jM^*buWC$* zeOX;fN)tMfI}4#9GimfJM6B>%-)&K<3mNPQk!=}QfS1Nt+$9wU__`y$L|a5wd0E+i zZP+;w7B=x&B{qem(_>bBc0~0 zZkm6K;bxXat{g|b!#I>wH;&Q2NhGIUrhamIC1SaT429U$ z_^Q=m=I9F(6V}SayGCPj6%twbpb?-#^Lj_Bh0?DREg~_(76NG=J?saLQ?0`0LMJSKT256YtG`LKKCyO4kY7>lwc9+W%$REG7IX^B<6g zr0Nfu%e@*@1j>3HCw$m8Gl!3zbAp!HP9fN4@l1o$PmWCPXDF!Qu|!C(n@TCCfA+s~ zw^Y!R>N{*D2`7yK9|27Y(@yw(L*Un^pe!+(VsEFSZoqHNn7# zC-8Uj0BH_m2WZbaAHu1$SawY;!-QrcjByC5L>pmmtLZjtp@?e14GW2sIf{iu(#Lv} z5hx8NcW{gLaFYVNna9-l@mC1iC(>PAQ!M4PK7IP=VXxxN^wDj_^xmr!_zc1|Sf9QQ zkS#}n8$DvXL{NN5KO@|CvKM7X;$-W}!vZ|=Ps7{yOft(i)!n%mz7!6K1kk6o_!Hys zf3Oy)Kj^SsI5#l@%T#nyalpBhbkjc5H~5yKeRf+@tMv;trKub0V6FPO@vD-N@Gs4< zJ`SWuUWBc9b&o9e@lA$NH%DO&*@)58$xXWrEv8{1`brwc_q2+vFZh5Y0gTrLj0Z^D^3C8@BqU z56OETsf(uDt%D7;wK*{b8<`^4-hHFfs}sD-5hj#p0^-&?6umnTIuFMfFh}#oC3ZPu z8Fpy~joV)7$H~XGj7cQFi!`yM*n@oUTl3qFmx*FTe-TLFIAuP%MPOG$=hfgFOq{vX zE;BRqxoT?6>$IfwZz@kjX)pSH{uCeTdyGznRi{PiQ1pPwQ$UR!JRO5%^1FXCGWFS) zFS%Dw7ZGyQj&6%3& zDF83*%?t_*)T~VK3l(xp&uqHd`aGpCtutqSmRy+!S^BbE1XW|%E@3j3~vh+ zYDZ+!l`j^v{QR7dUP8(rvyFN}w=UWsQZ?`?r7>;c6~K!7iU*`1s2}1Jz={5H+Ls~A zx?eEogH1+P5D8BEbGTW$aXq)zwhoh&5}~m+*5}#}9^4YyHXyRtKWNM`wZNrfUwG>c zDF=E9a(aoxI4)G*|Fe8UG}%J)t&e{Rgs*V^h1!WJAiLB+05Y&XHKG_n7(Z`=j|)ZR zV#~Y3p9Q0}!;}~2cjwXWFT>g@*5pj4#0Q-f6#Y!cF9|gN{ZFfvhqpy&(>;r$Kp<}Z z|IPI3|6-Iy`^QKzh}n?-6!Mb`(sw(#zmxgKF; zeDW3@|MI8V|Ahzs4{Sd8pBVuE0H{@zzfu5tL@vw;=`Q zkqzfjX;B`>pU8+U!qbD2!GEj94KXGK1-noATUi2147Z08Q*) zT;T#mjkOVfY3L5g)bQP z(+UdyvSxO|yjqI9Upc)Y2%GBr-XMZJlf4bj0~}(|(gXvX{BnaTFsF6@byH>Y@$-WE zdp-6uPy*OodJ4Inq!tTXbsfx^+)F{Ep3_)r^q2hn>%$n*=Q2Xo9cchuW-iRoauU*| zA@P-CzS3Ag+4|vIiARFj;Q^7?4j?SOg9ML^r5;*fM}i?AH}DK7c=V+ArQDjIb|16w z1q5TdPf}qANEhno+J7uosQzdp*?>Y1apMzS33F<}BiAEQs8?V_&-?YRb%+AP6MnX= z)SLX!73*C zHuqU#s*vC-T7C1x6|`e5%3q{3Fpl=g8klH*@MD;%+3wF7<&V*0J%9Tx^2T$EWs@Do5m=e{ns&Uu{dn!8Yc;VAou|+F(gwMLb{rgM9j}y%0 zZ;B(b8HDSNcj0PK^HTCV-jh+h3bK`Cn?6IPCYCO&^)nLzP4<7^`vT~y|AsieY;W3g_*NSUo4WmuMYn@2#v$m(BqO!}SCj|?go zz#gQ@ZHfJXGnp69R#Rz6J{v315OFQAKN#C>7(de3g*#ZU=lokx9SyzQRl@vbP9Ssp zML0xe9l_TgCVx9#{a#!4)>Q5vQ0@eiedt8WH|r4?#>U3ndF8Kx?>?CArySC}x#86H zwxA|~3OeJ&K`KISf8b3UGUJ!YvVjB*@)owXmeT0`L8vL-eHtyZ?H?w7k??hp@yDKn zwGpr~WMCV=iSQ-WK$RhJy<}BPTSmYRAyUrIoMB3sFaGO?F_}k0jHf2bRg&+Op6u|q zyIksP)w$GVkCj6G!MWnYF~xHR_Ks?UJ)%qU7JI9*gV>cJ|M1T@^u^Bp0ol)B49*=1 zG(>UCNWc85buVvdoKS)|mNU&2}F$w(! zM$pFTxWbq`)5K%s6S_=LAzyf%iX=GOesWagh!>&!G8L=y9tumbT^k*bvVr_KvIefT zDrO69wmX8iK*1T(Xz@kiw*D>69GI?_1?XhwkAzSI_KdHMvDp@^*Hid&Xl@6LpWtO+ z@%61~Yjev6?=mjM?3k*~iT?0^mb1SH=ZpUqu}ueZljPnNg9DP3Z=u(*KhV~GSnvKx zdq4`q>dzmw`ATWfmql4Q88jesVZtfwk=3&he=L;!je?{HNgA|cejBWL!Um~$)HWBK zqDcFttEVgb2?7y&BPUGs1;^u8Slo=_K=GN(yM}*b-m@e+Z@z4o zGcN5XcduzdHb5YEs@?uGegAkT`rYvnt;#5@&mHDz8g7e^D<)69qM0`+_H1ig8*Zg` zP+6)9ZC}49@gm(mJA<8{t3ZZMPZ}eSeu~lEK^*OQZEwZ!LW}=S4_%gdP=cj&Rxa>U zJUvx+YnzwNpamcvtI3%s*?TVFKgN2usQ_NrJ16RbVR#!X_NBbIbdocj*IIpdaAr!c z)Oza&xf1FClbUv0Gj0)~?;u#+IN2A7KtQy9TMNwoZ)0#JjIM*PD&p$O=Z>8{pL%%( zkqaos~r@M&TWTd-7q9Ft2Tq_rF%ezg-Vk7i`Mh31p7xA-f#l~xb&%wcQjJ+x9 zerjTdl-|&HQS>%w^0v-2=bNBN%mA7GmrO^CD8S|P{;T{@XD=-wK+F)lKSFHk)+gJd zI)RN5FjAlcj_{p@UOC`0Rf!vzFyeb8c@fi^VrU?m5HtP-fiTPs)G!i!+@HQ4rM-kF z0UIzF1CJ#$;x&i<0a3L;PKb`X*Mc!NN9AI&yAc9SlW(#4 zI3ztj8W4h+CbDz>)r_xa8`$K;URf#(rE`^;hqylGiPdL7OlJG;C+=BC%@x1djJh>V zX1G^k_tUw>`3>BxwXLPKpwDVstjmavhwUM9)80EdrM7)c{Rb!rez3J8$$+WpOT5X< z{L}RxkeF-3ZV9fLRMX`{a3Jcw8F9KXAB+~frMP&8mYXoM);3Lpi_X^0jZQv$AND>B zlwy-y>-E9IxI&TSHGdSb^V7JQ$WNWXuZ%k;X? zzc_f&qp!v58WW zW@~+@_x_v15q_Oa2Mk83k2^?Z6$m^6t8dka_o~=b_VQvtcP>{T)FCVjv4}S7i)Zhk z*e|KFwf7sL8L+-*L@M_>@>IS=n(tYX*SQ%JzIaGtQLB_-*^?Ve^Udt)yA<;MTr+=T zs_4E4>Z3o9+u29}fZDrtg**v_`76YiyD3!tYbS9peNLA;HcOa3%-cH~FSATAIK0n% z^rg^7|Lem_`4+`!3W5&%qXAxBdYQoCPmkC^)gPaLXh9S+);l9a4g_up)1CI(ANGtn z?p6N=KFy*#CBi}WZIq3TeYJyFjY;dniI>v)Hu^_a>ZL}ve_x7}z%>AIzJ(}>_o#4! zSm2;J%z}{CfqoU`v6&X!#k;Y6On{@Ic@p!njq0x2L?e<3xTP9i7m1PTVP3bu1H5PX zu~qJ{O6_J8$<8__tY&xJB+Iw?r(Y!MApeaz8L`;hrZ-hGj)3)Za!CY&V z|CubzM6ORzxg$rqfM+ZqTQA-7n4$Z4_j&WR3xzWonKz%wU$z!VFP zEpCawTdbaQqL)56an-?>W!=P^GKvzLb_by0^zm!c*g<{`gRl08|C;5TZ|UafQt{UN zc%yyEvS+4Wwp1YrPmF@o=;Lpxv8nKN-Kcg z=~?{oi6Q0nXh3qwbUz3Nkd7b2P*%Sn%lR{sN&l?bNzD(3f=94c&0*C^V(-4nX71|;$4yBUJxwt*Cs+satbOSP zou{o-j6jtzTxe6w+-{#;*I&K0t%R0H+J~nJH#UBD6rNrEwr(bPcY;0f&KmSrbw_pv zOYV@iB!tZz?}!x{0yC*Z?*ASDv{JLBJHnpndMW9NGGv{OvftcJe;iH652XLSIvhWp zsPVr5MN8hJXaTi>P1%`q`!S{?vF_|MrSTD$&L_fb{fz+4&uJB~K!4*zYJvHf@!^}d z5wQX1)>!H$2d|EorDDhXpJ#o|MKt1Hi01P-D-SCU8=Ni&WiwKck|Fj+epCaz`fmwp zUQ3)yaTA2RXfdIo82|=O(%>@PQ;(`cBk#_D z^4>%Zq3E#Dl=bhwsoIvLv)63jQJp{d50wYzJq8>at6I2?#9t@3?g}_h5-z<#F<#IUqQR&q2^i~Z-S^p zW&&gh>j}mmsrGZM6t!0tR{=n3^_upla_Beho84UrC2`iRGbge<+3$?#y+YcC-lbDf z$gs*i&d3(gpk`j*!i#zIhReUzX~N~A2$g{iM8oS1o1>!#{iCstH(8K;>9-@c`) zK50U`P~d}rIETS66SRnQczDCFt(FHd0g?V|-U7V1NEz=eufHiReaM%5(%fztMuOf^ zQxv+NmJmuD&WnOftq$Pvm z-HbRPH&z-D^f90~*3x-Jceeq^-Y%tz&i8;JO?%HWs4ni+CNmxy@foH*8>4oA(M{I? z!YdjRZ{m-7VN*IyV0aQySsJ_z8!E%!s)fMqInAA>>mddXn2mOW$5$t6*ZH0*abC$z zuxWg#xH4?58Mg>)L>#qZ*>F*KF!q?xYjw1i=*6p@T|T0utl%9~Ucyur=*3?bpZrP2 zMM$H+E5l!^p$ilVKo_WwNtN1y&@n(0+h8ytURxszZH*|BBFM!Q-w`g`uL~DQW^_%{ z>}q%2tkc>v9xQ!+svL+MoIilKoDkV{M|w2z4G_^qvzW8+4W|=9m!E5XbuEfhK4mMq zxxz-1`sywYU1=S*wgr>vXRzjFBAY$#J$@N=5WK~Pw||Te-x(EWsQRTX+>|+nN~_{r z$`yS4=Rxn&5N1g*QWy(A4BF1^(}{yM{}`xK+esUcRk!itg~%O$zqPnG@p^y5(U|h0 zdHnXb6%eR0F{4^I3U&*LF@&$t0&%xbz#7#8=2RhR4j5H=M zGE69us?}^F+!*x-A}=&8MnLfOIq z*^q(u!VLBc_83}_^$N17g2?u-N^#9|Ez{zAI*D4(9?d}BSU*-=mq}=x8)tXSss5Ed zsWxeucRz+{4McV(s}T9I5=U@ss3D;8r=l*eWm0PA#k=`Q;7t?EWAiKLcRRY+P$SkO zZSRQE&(a^T4m92fJbBP;xDDbL#9tLvp|2J*g`y5=C{ zI`oPb-3)A<3#|3gn-aXiNYT{=6=pV1KOg>A$1NFQx(}9FT^sxLl>&SeyG$rTGrAU@ ze`OeMq4;ZE9l?(oA+jX_nGKfO+q%(#cn7=rJ~+kTQADv0U$CmWJP6We02Z2;~_s&diN5Kfk~*#lf=V5L{zRv+>G7MsbeID+=cjJYkm$ zZ4U%qS$y1%Gi9OF`os3Qt0O+H#kOMs6*i=@lGNRY-P!q}fa=k}n8<}E$Y$1d6t)6h z1sHa=r9@h6C{V*;bqCvel-rhC7*4JXRIJ-gcrdT3=&?ACDTS3Kb!nm=^E|AdDqIhV z0^k^WZ~^;6FkO!jQ9W#l658Fm=L$L}BREsIkoiR25&nIU? zrsZVSxeqaZIyrMlRyd8<0WI5{e+ZL%)*sWX_UPs&F6rmYz4-r7WB zD0Nr>iU*O)D&IN2OXI0{$^Oq}Kg3bT+w0UBWxf5X%V{3@RWcHV(;Ei>Wm{7Q)?26EHSnhei0I$(EJWQMh4_^SBRl1}@X~$2NLKke z@y2d9^8+kX#)~^SBad4Xk5^Zrzqt3T94A(Gg-$Ow6lsA8jO0-=HI|tu=ERG4{5VvV zU=G>)l5mnq=c-{4EnSf>X=^4lTzv<04w|7oZ7he50Yl9^Oy)H1-E4$(jokrfZqlvR zy~@m6#+&MtQ-WpulGMMv>&6`#=&eKU?xeLuSde;<-dk&(y}TYrzg1%D4iB#cTp1MP zpRadcJpa+UE-X5+|BXv*m$j*nKRoY+{#FjMer<4`sIoI9jN3Jz0}?>#&f1GVoH*=| z%om};<7%F!+ge#uAeaJ-RcHI1Gp`mGU_u9GZK=^XZvdD6QF9W*bjRE0)wNt?Yft9% zE1C`s^$e>q2%hfyH6CBh$?A=;COjsufLr7TNVGW99-j?=KGn9Sn|`rHz@v^AzG6%& zl16>(>i<^UI9_i{otgWRNvF|HL8<7Bf;dOK17r_c5%zQB%XkAve57m-0?Xywj4#p4 zKjw3vnu#9>a92*1&8x)DWYCH4tTkmSulx+HH;JG*mqtSWB9EEIdvG&3Q_2HZZb4Yg`9i^v2 z!<3&KpROGq8dcml=2=BP(L!|}CW59TC5*Go(`+-xH(D>3oR)NWzWbW-ftVz&Mstw{ z+RggqEJa?^Y0Az;!!Sk5JA>qF1p{h!{*3{(tIlHWok?F~uYYvQrxLYaEH1=Y-E)tu z5DS%#dO6PaKirfb#g?h0l=C9p<>l%yPIt&fTuxR6c~fJ~FzJg~;OcMxa)PCi zIU(U->|V(s;>$U~4KtG3-81!b>l8$K3cMri=ZynoV`zVYdWmO_DbMkEQ;b-HoJae! zUaD9{PTF>jv9D&Ut-rU9vKSvi$G2!%*=-i^3 z^Y^qsL$j?XhB+ST21{Ct_)e45&)bS0-T3W=Lx*&^!PrHLHUPW9tSyXgq`wegV<|Q;J#_K!)|=Llq9sRI|5{9PNNwpe^7#JR57z5_R;k?ev|7=IC%3^1 zx2(EaqRDgNd}Ui#CIi@$G8I$lKaYNQ6I^@-C=5P?ZNrO116E-;9PqicBh9i|4&S_c zsE~zC84TrxdbIoQ7h;`l@z#nc zya=7`v7BAln`=FF?605&>~F88UAHZ5Pro+6y~qaPix`x6POQT6kh+lDpKwS_uERk` zTBayDfl>QqcQcCWxur|oi-3H?8EFl^Bn8?*vJ57*Vu!9}aDk(% z+u68j5iKTV>5k}1R<*u$*HBQ=fF_+J{r59)G+yM1%`13W!p#G1)yyTn6Aq%u?9q9h z)5UbY_CO?fP3EYCDPeDfpY>DT^U$vjIc_X(iGieg9ao(-UBg)@BOsp3V70VA3*}q! zdNr9Zn}@VFHI_Aa*d88Mv|t#6N<3uW8gCgj>Lnryl9QlwXvx zJ`AIC@qJ5#hnIX7$XQqzAv z;9V=t4QafjzRpp$uvBeykT?CxnR?B%3`pP}b=@l|k$txeyQ&4?B3q}&qfPY=RdItk zQX$Rv-}0Yc7SZ51amLu2(N0$o12N!KJm=r7n63MuYdi(UT{+e+8{F@@lU*z6mHIfA ziT=RnKL@DTm33V#0DDJZF*qg*1&-;uRppcKUqAh1X}QU(ZG8Fa`;tOIjgaFEbvLNR zYT+oZ7@vv?ejxN3iEEc#&6&aBDC#VU(YHZN2z zq>X}GEcc8V_XYUGYVtIkrH2l(yrVYYCp~D_Q-O+9^^@aUFYv4l#%BgK?#ukX)hG4E z-Au?|ohGaDCz%UKDxuu)*c>Y`Z-h~`T1v{ovYJ{C*B8S&k?4CVt}P5w^O)#0{_~lE@t3ev>P@)&*8M4C@noVFEG_?E+FYC*}-el@SEp>IwM`#do?LrgbD9 z{QOP;@MljN@Df}pT@+q*Kt9uNTIacpb=opgZ;dpwS)7#>CkT(~A~L9GVjf;vz50TR zQ{|!$%Rr`cCb&ch<6nnXLZ`EI;+2uAkIKC}oLVoXRU3H!*fYt{T6&+(NPAj1+nAAz zwsYbFE}I2;U5B%Er#ix^s~Lk0Q+05Lys>qBc2NQnm`&1<8;tuv6ISw_KV89)b}uIn zWg4VEuj0pN+!=0f8p2)I${tUnriz)&Wnk!0d*5}in?6#Qj2)h2(2s$+La)O5B#F+u zuvIPxEIeLz-2`7%Z{k;tcQ)yk^<8RHb$RIL|0c#}Z^7#BwmNCn>52eHGZVr1!j=ZOp zt=;IBw$Q-Z&ks`A8{5Y_)CaB$^wC~IDv~Jx-y`T1A{BlQJRB+SxTsP#S6bvpYluu0 z;dt9zqAzH4TlV>^2;!abC#!+N$&brFHvnmYKIn{dBfwAa!bs!By76xSfK{knPnz9Q zgUU4HFS{$5Qvm=^+>1+T%^}Ac(Pr3nAv82*vmZyBZfpJ5V@Ch8@-1~p-1yDPmN)3l zI~!bUZSn=5(GKNAw5EYTobgg|l+I0u8m58$W!4x`J6GUT-)w&pVe+p@g`^ z{teX#E00Fe%@~txcUQmkczheo%EP#l>C6aH5!bMc(Cb~z3&cQ}pG2N_kwiXUfo2Hp z-cujytM{ZSMo!))!QV@La6Kze1mrrOJg50jrMds=73v4;vsG5Afer~uA-RDWqFhDs z7JsHT>CCFjwF;10IvKu&buMk~jj+J`?7)(pnYwf_$l<^-xg?YckFQ);4xOURo4p)y zcXwNt=S}*?pP4?U8&FeS08jX6k*zQo5Bb{9BBuyoyfL6nBy94Qimr?OFW19Et2XozN?lRUz zPW&IU`v2Fn{4dTP{Ld_jSkH_qO6|FZcSVsX`m-0#1RhMr$A4;7=;Z??ZLA@<$8Wy?xj6fah?R^p9#3ER(u}zjT!#hj!zj}7yoh}*zrbev8j=- zzDwrOS-U-TXRXz$?g~=rSJ<{LCk6sbJ@v~;4)4hI?-0o9q~A$q(J!Lg!ltV|aYuPc zG|o|7YX8|wLi2bd_r>7-m6r#=Og;A>&}XZ<%0n!49tm!V#2snR?%a}oY$5tbX*^W5 zE{N^S5{x|*qbYnp-FmnG6ch}@=s71^ogRQ$p!AOS6M#|-k?4D^_qUiy{M`8YUk~4B ze2>P4-FAB-EyxTO+m$NLtH1l5)MLM14+v)Fxaa*x+b-`DFj4f^>J^oEo>CDD8dv0L z%lhNuD}=<2qHFM{IgM8DS}EE+WrFDl%c_8&K|DWOntu`tT*r5=509K%>{L8 z%N^4nD`Vh5E&v|JoDr6RWzadN>zEH&Eg|_o-ujE3LVb-wpN4wRveHguC)!?!ByY2P z0Dpo#)xnF)56i#VY7vMVf~UxrtpDs`3eTOF^*yHf?Hw9)8#APslC-DGobP6p<=f*e zag5CYUnc4-XgLyuVSR>j!5a(%S%>ppn~KQU?K#)@f~0P+RrYQIdN(0EVx&1w>}_Q4 zdMG0$h!z+$03Js4POHQq40FmiK$ZHC%u!i#??=r>I~4f|Za%Okzte;6oZKMw)LT3Naijb?PV6Sf2- zu;#0H_=q4!69zRIy0ua;QL`VX#om&+cKJ{CVfnUHQSyc%?S2}X4O=p_)si;Uz((}N ziq)*w*MzY@TrW{>`}?x`lZoaH@kM|zBO&3<Ah1y(> z-n`nKm)_;8CCkm`b2;kVzY{=H%NjFb5K-V{o?7;ZQHDn}(7C6Gfs_Df3Fy!e8QV$l zYnZy8vYixTW%5$yp8}Hcq4vFRe{RHo=c3dL0jE zmXVLE7ex;cekh~z4q?_oQt{$WLehA3$OUsFALybwD4lr<&PMJP)W%F71(cDO6@Mvw z(+$VjPZUzf+Pb&S$-7@&-ynS|CG9G8-7B{F+&G4uyk=v)=#1%X-AV&vjGXy@YRfI` zFA(oxCY)z$kLBb_!|MH&*9!;%jV7YW?V@3Gw=eDceWo1Q=OJx$lHgs}BMGYVM-wjt zl{;AR`to!P!-nKJk?2`J*N!!IgC8}L?;|=R`aZY-Cb}L-ph-Sr7WbQIjX|br8GQm~ z5hHzn;c>M~bEtjG&IN(p-1}Wc-}<9fTJmpP*UZ1Ck)kW|MF`lJfYV)+TR(3O7nWaV>3Zv*Pv<*PtR&o|+-YLe%0Lt#K%w8@KwB}c zmV8<3bfqVT@s$(&De4LxtmO<}@-Th9dV<%u|HfYr=MO&9aY`>#T-yGy(J-m(Tmc?1d2_hJF326S1E=&z5EU19 zmz3?3QiOi4MeF@yPkUOv+Ph~SY;NfhGi;2GaPv2(yO{1T;>N$mPNUp&V}tcNuv|%9 z&Q%;%z%1$5zuu;+*;K@BJ7UfRaE6NwQKw!$Q`!bJ-eJ9UI(nJQBb#bi?Jw1a)?E1y zTjo9`Gd&m;OT>Ra6Dxh18YSp+Vz!FJ$>V7WGJRTGjKQ{|OUEb$N1wm7(I=Mqtm|E$ z2p4-R)i0V9E)ML)3;l0a=-%B&olnY~A*0gvJ6 zpaWQIJ))d=2h-EZ{FdnY)YI3$B7e1B_NAtq*hkxF!&r@LGQGytN27NYu2}^9EMup@ zpXzL9I?>D{-EVnppQpA02)RL1-G^~bNki70`zRB#0 z^$dQai`*S~yci7Kh}vRZ0cbS5zJmOir2^&pj`B}6>ziInjbC@aW-hI*g_U`Uv&625 zqy^ILw}er{tO0%gbWb=nk;4O{W&*?=0}24c2WV?~?G(hHGdZ2kEp5mSXqcAqzh&fA zEaRi0&!&bdLVl1hM`ihhayc_;OEUP0+lqS1oEOSW1^O4d>bFM++ori}-iPpSFP{J= zqWC?6Ca`vb+AKtk#X906Y=dn;d@gP>v#(6{OVjLb2DgHe!M+ya$yIG@w}jVHSap@Z zLpv}EJh=DQ^CAY!arQ^qA36S)a$RZC3&v?&e^W~qv{Byup-!84c<_;#n)DGc*-d+^ z({l0_O%%cU82KFdO869NAFn-Y>u$=+byZfZ@Ng2~*Yb;zDa$rK15@|VMyQaABB*>Y zTRTqglL&Tnt^gK6K{j0fZdwgjF?}r_p#N;9k4dN8(6LLEh%7{$EhKBy^dep~IzNjwpXc5a>!#1D)f=_Hu&D^R~VLl+j7!@X!?-mJ~m7Zs2tpbCu+vZSwu?NiR z$-4`GUp6%TJIe5Oyw-ZM3P%m6@z#umZo{vRTn)_rZTgmMs}4-FwJ0Gdz{Ul@dflRbsjtv-c9*Pn8Q+Q5QRq@8(Uz$@HJUTc4j})^}h7TW`o5 z2#nc)Eak*NzF4zzf|tACkQbPuG$Yl?mK(%t@azSkLv4KuG$E;H5>Erx-|W1yIsQ$v zRE}9AjQx8XJeS+ex~|=e1B zp06b0(As?;0nuN-w$L!u=cOz^Kpwu{CF-Ey0~+r~|Ic219Qa#6X;hEbKsh=aV01>V zaDKJ#mcDIL$Yr0SA|tbOXj3$9JsdK8nkOvxyjVXaD3=lm@#aek4{sN3?Mx7lb-yn9 zLNYk`X>@IcP_()b_BNOqxWUzWL=OK|5Oamc{Y`CnD)z2JpaAkh!cCfEu_tlMEgE7( z7Lx1-|F4trmt22QAN>msQgd(-haaQ{_n3G z#L9>lm_LI$D}aczB{)S(ta#(lv>H+ii5tM>%%X30=f;b=fBD?HRu?Od3Kyd=p`=)Q zQTh+a@|2UHHQuN#NO=dz4e6Kv|YDf&dzRaS=BpAV<^C-DbXT3T{jKI#QA zfv7%K{GY)5|L?`VrRIi#*}O2@p_;Ui($hK0O4v0LE8mAhZG{%@|5~EkJNk+y zRPcpt|F|VdwIbP2C=c@i5O^kL@uoV%@{}FTG?dI&S01bi6X)(fjy*uW3O&+!dNm)G$eCQ$h7wSE zT-fvidSvChvRi+{0dRulu)qnlNXin!gTgyC6g=&k(8D(`+A_|kxu+k5yHTCpO(b>$ zW;_kB#-Xh0b!SM@Lqor+Lgnv)AhI_*?4ra9d zb)+OrfqAD8vG|u=>;gyM_jj#uT6OLpsX;4I(4$%BD0$!>p8D0iT`>dafSDcT_X7vl zzA2vb(obTCBc(<2wp;shY5R){jcb|XS1;Wdo_qECE1*fDb`Pc+x`nY%OPOQ$`6SGStirIbJQd@&}zG_VG z98i#yXPqa`wlH>SYvqPT$^gvH<(YZ0-h8X@s3Bn>q;eu-!Hwnc%2U|DcbHGw#cxa; znf_SkLNQ9G>QMT^5^!J-Mc33hjVizSn6m~x!o9lwPB{6xkaDKB(n4m~t#(sAOnU3TlRc&qAH3h?{`D0CG*#^H!K7aRf#)uAyUbho|ZU72V*}kKhaylqr$`)eLRhbD3Wr?c=>eE3_Y_Q*9@G z;r)|)%H9CFe(a$W3H@$8sZaPgJd z>N1)BXMW@`e8E!}>;og$GoBONx=%NogygWcoamVh%3} z8NY`Z^WDO)jYA$qscY(2Tpv47s5t$u$cz{LgGQq48|8ZPZ*?ViO;`C82c2Rl6l&4) z72LqN1Uy;{?iO4#W=2s)kvA&r0n^O8uB|4YK< zS1$>_Q?rR^d!VA$@g7@N#J}my`7vi|@=yY(!RGm`LxKFPkA!9ER<2i=aQ9lJ42Y&k@Vh9V*$jY0FA zlpLYL5(&0nB0lcDetMQ7h!Pk5z*1;%WRiUtHhhy6(vW(VhQHR@F`DVK#a*OFR8oFyr90Xv*g%q_k4X;(Wj__@Rd2t(J|V*;w&)&r^hZre zer!d-n|}13tQHNJH{vyRhGq+FAzKf>0DeOg1#pSbcXhIZnF@vjZ3~Wop*UZH#DUcR zQkyJJ{NKL+XO2WHP6YU7miRls42%93nf`~OazFr>D6_@-6Z7#}e4JG#ZcWhUL##>6 z*w-WQiS@aq^Ed+iLKX^4q%3I@N}Zc+*6igfT7MAlQrWb@ktFBBM)wcVfa7z*(odVXY1 zfC>T&c@yc{5bGpn#)%Kw*{d5a2@uLzI7C?6)v8W1Js!F8eQxN>1Nu(so9UOIgf+BP z7DuTwC%_oA1&FSgS~7qa{AdeF(`$Fns0(oY#%f6|lc9bMm3>FZh)+5S@UC+LL@jam zNrgZ^$9^4cwtW(fR%RgS-{2VfWfl|};xZ~O*4~{T=9-WgJzFAm1C(w^9m#PI#PRMg zXM%VmIKFfqZEpz}wHZXrTCmy4}Y!y^x69V^D0FrS68en z+EgrgIN3`9f8j~_N?P()2e+tz{tU|k&paSvxFW5fT7e}<}>p~l|lmsf3ruo3!L#Ph#%fB5~}pFo7(L^D6K zn7s{7fi+1GS$_{YH^-sX`Z~2D`KC-c-(wf{FlcMv6+(I$2LM;Tk*8e zO*CCZ$Q5UvC<(ag{Kr>GzGodO3{bC=T8{_@)iAi>(NG@zFY*2&&FEwCeOsULX>U$WgPd$Ep7yXuAY;Qp%iRVg`b(n<-s zq|-G10h|m4O_P%UdH~u$Gqf}8*3%w11SvbtIT;G5ruFBV{sa1+=s{FjJ_33s_mX;H zcyq5UA~Z@nuDByK-8JpapKX&o}3GtS^2P;vJT zGm#HKj$t2DoYQdp_JgC-2olZ#r`ie-u@G17kZyNchqK@A4rf1jMxZSd)9cbW)5dfI zwP9wO8&BK0UruP`3TSwKf5O}dXvmg%HYBT@0N!6mjyuEBl@XS+ds5G#eF94#HP2Mj z?=wGG+;x%#LU%iKSdj0{)a?0`&yX4X+)h6wkd6E*zR8*RDoV#xvSH8}7=-ruli6&q zX;b3;P_pircHZud`b@fM5d{I=C=FWvB88jF)0+StC3=%+*7YKS88dxnj>`w6VoxZ1 zcsw#5M7i>uS=2RS*uV}%PCaPY3$Os*+d^K~*623X>A!LC%5rhoTso3L*Qd(1?H>@O za}bgI--f-&&%j#|zxZl4kO*Drk(n-W@1s12@OYhqgUYiSk2_Ay?*#RQn- z78N7kjkd_+r5n;z$1@}B+D@k_P6Cv*zK2@nEI;o(zD)aVscz(`0tmQ%SjR+|H!@Y; zuhi-h=cnBoC`T$ccg3PEC~#DIbfgsovskb`ZICCj0V1~2RXr-)Wf5{}4v=!XOSja& z1brhsRt36#h5_sHkFB~EL@?;CuSb&zyOF%>qTd@mQP~f6r#GkTKrl;l6Lww24&X82 z`I>lG^%L~lK6%duAf%E5Vea65$KoAqzU3RoX&kGcw}eE}+jw^~~m?FnA`8Ll;3 z9_E(vDZw%7JC!gcEdFJ~PX^;AKP8jq`685kTPq@wDo|rXrd);IaXQ4;Jq?H?r2k^5 z_J8K*)^xkhi8_pAK3$HHK{GB-C(gv6c(~m{UCVj;@BV@Wk#7(nk?t(+xr_xQ&X;kr z7->g)6D;Me5Znr*y{DD6T~xvTnqKJjtIfVI_X9^Bl<0sV^JIpXn9M#AK;|k8vpZ%OYQX(Csgdz!u8hQz05`rQn zkWd2&VIRNU@15B)JKxN=Gdnx8f2GX5&%O6N=bU@W@0_zST(|cJ#9V(c)@kU#>~3VN+rP7XMf&J=)?Fc zWnKd&*>#N-r;08Zy_hC-vzN3Ek!C5?Ku+HdVdRw#AAY1(3gC(&{5L;Ix`VD5I(S>K z&pN8Kb#lA=xvwrBTcsrgAh#F9e$!L_(Q#>E7d9*c0fF`zwT|Sxme+oZm6rP>`_@ZD zu3G%OJq-&NSr{@eIx#BopvWVUg?B4WDrx)GvyCpez^6|T*)}jLX~kv4Uq!s<6x@iwgkH}wE zZ^eil@R*@ITwo-IP*#rvxsEMZOC$bz&lLr4_qzt`kQ9G*Wsg7%$H{8BTMK|L4D*1w zS9NI?H6v2t46_O(ek}*(xAfRm=BMMJKw8n(d$`4lG5##U2US5}LcGn#*$a?0PvTk~ z#=G8ZA9HjdmL`Oo(M}?dObK$}>_ygdW{3p$0AkwmE%~QMhL&G`cs z>i%i|b*VDXLn`tQU?JM`^zlqOhh)|%+DoPIrK6Yjb~hdJ((W~i+ggMM~S_X2u4 zFeHDkr~}u`U&Q^W2JGRBYg$j*uJ(*Vyp_B;3v1flV7w8uL?#JW8mV3S#2*B{?R$+h zzM`<`uCRS4pkcWc5!asaacZ)zH5KUtlEJyit_=a1YT8x!UT zp8>*2tlG^x|P!Fr86Lahc{x?oD9F(DfifhFh>&Jd7;$=>? zr*8SBJ+NzE!DZyx4vi}*p?ZojZ-!w}FcHI*Q~gj0bBzF1?QZt3)H5Y#ElC%*qaK?O zj=%2?F4Dm)UCpY`%}5eh+sUwMNTE@gK1_>pAwB_U(mzmZ~rm;Um-_=g~;vn;SC1diP%Cb9um`ZZsu`2=oIRDUP%VmB(ud}A~{DvPyp=KA1(qa zhJ69I!s9rtLuwR&Gw{^N2R#V-f!gMt ze3`Sm-@!4$=LEU-kI2fG(s#4Q04v!YPOQ|BPs^2rpmV^9d z96!vNjOSo37y>v^zGy5s%wl(y4Cf2SOYOz+M0q2#tRpQxm(p%Cf<2g;wjKy|`5fes zvtU#EXl#vtAE&P?`Itk9ghFHNg{vCTOG#%Uo60X?Z|O>$f%jbic!@kR5RHDYv2jyn zR@x;uIA%6NDZEyhx%Al0H@uZUlkcPEX5^2czSwz#1H;w`#iROw{9+YPHXc;PUkJUT zYjOF9ds{WDouYggvHA|gtI`8t0s*^1|HpK5j3#ly7L zTPP2k&#GIcdOjnuG6wuP3&=$>E6)9c={mPC(yOR)KZQj z$G?k-1mO};L?RH2X7_6mhoL(wIx=_GPE$iF8f;8R%NZgn^+7Dp3LIb3Y6+Q0TuMu< zLzGJd6yR$_PY?95kNvU|caah2$oEci`u zuC^b(M149T`@KIr#!E6#2s&}t!`SM{izfy5gJ{Jj6P|kn?Er7qok?h-K!m5jhLN6u z5x9%93r?a5gMu%#vWD~*UK#AFrqBc;deHnxF3FfPfBBLU+jOb;#V|vsxxhHy9=0(& zLiApNb=O2_p7(*}lgZngE9`fv zuY;pUAJ(X49;9zcaqKTV^G_jxpzA&V=Dz|I;{C7O2v3P6Jev|f9evaYC+pi-%$CkRi>v7{D zSNC_NYtPtKjh&IY+^Y>6*ci15pH69jeT{=7W#jFtZ8k_U%p_6F7q0r5Eb{2dIbc!+D{77?=kf0)7 zS`%}Xp7HT;#OIfZi6jKAZ45=ZKBwg_*rd*r{zXs=!%G`J+j7#ip?&KQ`Ys6VKvmUa zy{2C^YMg<12+tv&FFBFx-Y2>N~( z91mwN5C`Fcc#vD8#{oSwrqBxV@$bg~u+u{Nv)*J;(JC zr7HwE=GtqGs0Of~J%Wx@!4+4oH`)1Ab`0{pUl)n{E0CH>m-v8CE(6yjo`FY4fRW^~ ziY=APNa%wGNiW)PP-%db7xt6ml`HX|exX$mOs~zOP_7o9JX}yDkYXE0FAN7%&n^Bz zB&LN%tR#C-S1 zg1q8l){RU41w(JD9_W3r^Vp+pE37#vtQNIM5ak%N;5_|sb6fKh9OtH`l-88at=GHV zqpCtNC@I{5AGQoMo9v~rG79{#`{xBCaLI8&A7_M=hPa~{Pf>qZcXXg^=FhD&l^rMg4kq+R@+Z(sTe@0{ylmY-4%6(&>V0&SVvqE?wo1MyQtwyVyNs_maAa)-Dr z?q^+O-*>aRY(P%5cy6d>QrDuIpuq;^$BJ}T;WG~ABYelC-xE>>5|OJE^xdak8AYuR zItHG=RL~Z2f*-S&bFJztrf1RR3D#sCVqHfT0ehaW@ z6KFefIl&owhTVIT^SH62*k4;5`u*J9_c$jTiJXvr7~2s#Smj7t!aQ&@TS=$j_x6zv zjmym=?$+NX8PHz7l=%D;-0jZ>H2nTO35+yi9fI0ZGeo3UztHjZ3=r(}%Rg{d67Tk` z&s}N9>ppu(#Jv`aH$~`=uIN@;>4oUR$DoG9U+SwlOQ9dtrkbpIQ^ISsGHyDHrzwQv zol{aWrT+T=X(Yi$HZGi#uMUI z{HiKO0tjbXH*iE1a9p3+A%x%|4Umh!cY!Fd0k1L|_b#m!x4Q2;5aPyKBBwxx$abH7 z^k}y+aZCAub4p?ro6|GGid{Xt<(beV^a!R!9o+$2un|DlAq<_Ib;z6%l-*7%rL0L3 zfdF&uCoue^qtJLfo38`Lv~(Tp#;^lmK(gNmpbwb%)xB1a`i_4r~@^Gr+%+KLWlX8`K(T@A z_=!f;F;vCg(%v7a#;=|sCQak8W?hr#3?km~D0HBJEkFCteM{Nla9d z+-76h8WO4kVed;5uj(;3&366x*&|y<*E;7RBt;tX6(YX`<_DPxph7(FNg79|M=Mgd zN`I}z|IHUQn$G9Y0*^Kc$oRoALtRrFUAiM1e<=0+Fev^7wq;ZKlnM8M{0|I`FLAD{``e@=Dk1^ z>jLOXF$65{Jskb)7rXAW4d><66mSVzxjum(<)K%{8Z&o%%)i#O*hZLq2Mk{q45JHL z8CokyD;x<&U2`1CtM9-1{B(43tnFT*K!=U=pciIY2}tf98q3*SL$hHITe(c>r)h|m z_4_8Wg;)9%#Y>zpsQ^~GL}YxzR~WBth5Z%`?{}EFw>WNKE(^r}teo$`{`DVXE)|d^ z3JBW4-)&bG4EcbAo3Q!okWbIsJ^(>C5cG%6%f0U9%LcxYOVM(eK0sG7?~uBAI8bBt zDKJ}~W?;B#08-wPeY^6xYZoKNmVAgh`&23JExXof4l?;s2Vn~u;p>ge8RMp3-O`^RC z-*kFMiSM3+QxT3s6u~B5k&TQy?P2LYG;08xqL<7%^sa&eXehD(sPiPe)TOBIbk5}I z?N_Xy=O)~^>7DpE@K)Nq@ez}=w+WL!!9H9pgwb)Z%5B+B-#ZxoJH~$+yOk5l)J3YE z1n3MTa%NjYfc+$Lel1^I1rcAj;Z1|l)>Fw`%vFhTc+YQa_TU7KZH-CNf1L#%m3_cU zf9v9Y{Pr#3)eRi0!{6RoG9T#=;f0@r@lvIEz`}w2*1#=^n8`}a55NVq z2pEF|TXcub0q&TsN3TP`E>ULrCZFJ|T0l+5l&nL36z%`LxE(%&=^{MbT(b`OR)IMR zJTLlE0(df0_UCP65SvBLK4$usc3vq{9oT0-oGCa~p8<@a``YLZYGm^1!teyr^8(ck z9HYfQx7&(dQ7zd4xtlGzGB5?OKWsQqxb$bx64|(Gv6B+9U0&agiP7?|M?9rk*ocQ; z{h+%O40z_6$FFL%z{FIEVVAn&B>|5lM>fYKeC#JTo*b7uRJRjg2{4ROns^iun353Zdz(42J0hN-0 z1RXcGnL@ns{DL%3xhm_xt|*@~hCkMiKrmk^md;eA?wt8(ml`XEcypxvxhXD5rDoi4TuO@MPus-lGT zQ%=c-wU-M=mv~c@bd(}wL7%_`csaVblfr~baUEOOCo{5bb3gQIk4CQbCk4ETS^j~5 zG1g4GjzS-z#lYR}i9Gn;4#V)~+i^BlkNwn{wm0*XcS7B3X7X%_XiJZ=U^48|@2RM9 zJZY|8(Tr@Ps(Wo!6VIk1&&x|(j7+OC&?@jrOdeyV97e&>poA6y(oi%}fr_SgBU+R_ z8<%)8kMI_>(MY+hc&npTp~S4=MvB8s#JtzD%D(-$NtI!6~cB- z&i_(T?5mh^Hw}?5A6Cq$o@Q*hS`)77C!;1-+?uUX9&phVV4{jX0bOLxQD;r@BG7#= zjB44qX2l|Bd;3LiBtQy_xRri$ch`JqKG1O7zm%Zj!3O@C1eb>X_Rj~M5ON6AYP~x z?p8@C^}9JIq>U=XGad|>kK7A@vRN!s?_DvP+p=DZ!6GL zz&>pG6F}=`R~7ho*CA2AQ(gzBBm_!n?9GBWf*gi+5z0@1m-RY{GC#wAFY?g(K2nCu z8QWxB`hDVE4(L`KOxm@x(}&sH+X3$5{8}n!KD>ZD#=EX?38=9%guzYwh38I^1!Aqd z{ccFWpv*fXTrxi2b!+-p)DJ(-BE^*Ap!fBz0SMIIcMyD}y8Y3>PJL6T{H~S|QoEpr zEfORcRd<9jRqi=YY?Tt?;2*%~FYqOpXavtDnVoyQ8hP5aI3xxP<}ng4mR%scG~dm3 zr;oP`3Hsw%uBqa7|r@Uwf=lOe|j4>;HrGPycWd||Go8~ c>wW)TK>teD{ylB`|DS&;um54%2(J(Q3$HQ_ga7~l diff --git a/developers/transforms/dynamicppl/index.qmd b/developers/transforms/dynamicppl/index.qmd deleted file mode 100644 index ef502fdda..000000000 --- a/developers/transforms/dynamicppl/index.qmd +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: "Variable transformations in DynamicPPL" -engine: julia ---- - -```{julia} -#| echo: false -#| output: false -using Pkg; -Pkg.instantiate(); -``` - -In the final part of this chapter, we will discuss the higher-level implications of constrained distributions in the Turing.jl framework. - -## Linked and unlinked VarInfos in DynamicPPL - -```{julia} -import Random -Random.seed!(468); - -# Turing re-exports the entirety of Distributions -using Turing -``` - -When we are performing Bayesian inference, we are trying to sample from a joint probability distribution, which isn't usually a single, well-defined distribution like in the rather simplified example above. -However, each random variable in the model will have its own distribution, and often some of these will be constrained. -For example, if `b ~ LogNormal()` is a random variable in a model, then $p(b)$ will be zero for any $b \leq 0$. -Consequently, any joint probability $p(b, c, \ldots)$ will also be zero for any combination of parameters where $b \leq 0$, and so that joint distribution is itself constrained. - -To get around this, DynamicPPL allows the variables to be transformed in exactly the same way as above. -For simplicity, consider the following model: - -```{julia} -using DynamicPPL - -@model function demo() - x ~ LogNormal() -end - -model = demo() -vi = VarInfo(model) -vn_x = @varname(x) -# Retrieve the 'internal' representation of x – we'll explain this later -DynamicPPL.getindex_internal(vi, vn_x) -``` - -The call to `VarInfo` executes the model once and stores the sampled value inside `vi`. -By default, `VarInfo` itself stores un-transformed values. -We can see this by comparing the value of the logpdf stored inside the `VarInfo`: - -```{julia} -DynamicPPL.getlogp(vi) -``` - -with a manual calculation: - -```{julia} -logpdf(LogNormal(), DynamicPPL.getindex_internal(vi, vn_x)) -``` - -In DynamicPPL, the `link` function can be used to transform the variables. -This function does three things: first, it transforms the variables; secondly, it updates the value of logp (by adding the Jacobian term); and thirdly, it sets a flag on the variables to indicate that it has been transformed. -Note that this acts on _all_ variables in the model, including unconstrained ones. -(Unconstrained variables just have an identity transformation.) - -```{julia} -vi_linked = DynamicPPL.link(vi, model) -println("Transformed value: $(DynamicPPL.getindex_internal(vi_linked, vn_x))") -println("Transformed logp: $(DynamicPPL.getlogp(vi_linked))") -println("Transformed flag: $(DynamicPPL.is_transformed(vi_linked, vn_x))") -``` - -Indeed, we can see that the new logp value matches with - -```{julia} -logpdf(Normal(), DynamicPPL.getindex_internal(vi_linked, vn_x)) -``` - -The reverse transformation, `invlink`, reverts all of the above steps: - -```{julia} -vi = DynamicPPL.invlink(vi_linked, model) # Same as the previous vi -println("Un-transformed value: $(DynamicPPL.getindex_internal(vi, vn_x))") -println("Un-transformed logp: $(DynamicPPL.getlogp(vi))") -println("Un-transformed flag: $(DynamicPPL.is_transformed(vi, vn_x))") -``` - -### Model and internal representations - -In DynamicPPL, there is a difference between the value of a random variable and its 'internal' value. -This is most easily seen by first transforming, and then comparing the output of `getindex` and `getindex_internal`. -The former extracts the regular value, which we call the **model representation** (because it is consistent with the distribution specified in the model). -The latter, as the name suggests, gets the **internal representation** of the variable, which is how it is actually stored in the VarInfo object. - -```{julia} -println(" Model representation: $(getindex(vi_linked, vn_x))") -println("Internal representation: $(DynamicPPL.getindex_internal(vi_linked, vn_x))") -``` - -::: {.callout-note} -Note that `vi_linked[vn_x]` can also be used as shorthand for `getindex(vi_linked, vn_x)`; this usage is common in the DynamicPPL/Turing codebase. -::: - -We can see (for this linked varinfo) that there are _two_ differences between these outputs: - -1. _The internal representation has been transformed using the bijector (in this case, the log function)._ - This means that the `is_transformed()` flag which we used above doesn't modify the model representation: it only tells us whether the internal representation has been transformed or not. - -2. _The internal representation is a vector, whereas the model representation is a scalar._ - This is because in DynamicPPL, _all_ internal values are vectorised (i.e. converted into some vector), regardless of distribution. On the other hand, since the model specifies a univariate distribution, the model representation is a scalar. - -One might also ask, what is the internal representation for an _unlinked_ varinfo? - -```{julia} -println(" Model representation: $(getindex(vi, vn_x))") -println("Internal representation: $(DynamicPPL.getindex_internal(vi, vn_x))") -``` - -For an unlinked VarInfo, the internal representation is vectorised, but not transformed. -We call this an **unlinked internal representation**; conversely, when the VarInfo has been linked, each variable will have a corresponding **linked internal representation**. - -This sequence of events is summed up in the following diagram, where `f(..., args)` indicates that the `...` is to be replaced with the object at the beginning of the arrow: - -![Functions related to variable transforms in DynamicPPL](./dynamicppl_link.png) - -In the final part of this article, we will take a more in-depth look at the internal DynamicPPL machinery that allows us to convert between representations and obtain the correct probability densities. -Before that, though, we will take a quick high-level look at how the HMC sampler in Turing.jl uses the functions introduced so far. - -## HMC in Turing.jl - -While DynamicPPL provides the _functionality_ for transforming variables, the transformation itself happens at an even higher level, i.e. in the sampler itself. -The HMC sampler in Turing.jl is in [this file](https://github.com/TuringLang/Turing.jl/blob/5b24cebe773922e0f3d5c4cb7f53162eb758b04d/src/mcmc/hmc.jl). - -In the first step of sampling, it calls `link` on the sampler. -What this means is that from the perspective of the HMC sampler, it _never_ sees the constrained variable: it always thinks that it is sampling from an unconstrained distribution. - -The biggest prerequisite for this to work correctly is that the potential energy term in the Hamiltonian—or in other words, the model log density—must be programmed correctly to include the Jacobian term. -This is exactly the same as how we had to make sure to define `logq(y)` correctly in the toy HMC example above. - -Within Turing.jl, this is correctly handled by calling - -```julia -x, inv_logjac = with_logabsdet_jacobian(y, inverse_transform) -``` - -and then passing `inv_logjac` to DynamicPPL's `LogJacobianAccumulator`. - -## A deeper dive into DynamicPPL's internal machinery - -As described above, DynamicPPL stores a (possibly linked) _internal representation_ which is accessible via `getindex_internal`, but can also provide users with the original, untransformed, _model representation_ via `getindex`. -This abstraction allows the user to obtain samples from constrained distributions without having to perform the transformation themselves. - -![More functions related to variable transforms in DynamicPPL](./dynamicppl_link2.png) - -The conversion between these representations is done using several internal functions in DynamicPPL, as depicted in the above diagram. -The following operations are labelled: - -1. This is linking, i.e. transforming a constrained variable to an unconstrained one. - -2. This is vectorisation: for example, converting a scalar value to a 1-element vector. - -3. This arrow brings us from the model representation to the linked internal representation. - This is the composition of (1) and (2): linking and then vectorising. - -4. This arrow brings us from the model representation to the unlinked internal representation. - This only requires a single step, vectorisation. - -Each of these steps can be accomplished using the following functions. - -| | To get the function | To get the inverse function | -| --- | ------------------- | --------------------------- | -| (1) | `link_transform(dist)` | `invlink_transform(dist)` | -| (2) | `to_vec_transform(dist)` | `from_vec_transform(dist)` | -| (3) | `to_linked_internal_transform(vi, vn[, dist])` | `from_linked_internal_transform(vi, vn[, dist])` | -| (4) | `to_internal_transform(vi, vn[, dist])` | `from_internal_transform(vi, vn[, dist])` | - -Note that these functions do not perform the actual transformation; rather, they return the transformation function itself. -For example, let's take a look at the `VarInfo` from the previous section, which contains a single variable `x ~ LogNormal()`. - -```{julia} -model_repn = vi[vn_x] -``` - -```{julia} -# (1) Get the link function -f_link = DynamicPPL.link_transform(LogNormal()) -# (2) Get the vectorise function -f_vec = DynamicPPL.to_vec_transform(LogNormal()) - -# Apply it to the model representation -linked_internal_repn = f_vec(f_link(model_repn)) -``` - -Equivalently, we could have done: - -```{julia} -# (3) Get the linked internal transform function -f_linked_internal = DynamicPPL.to_linked_internal_transform(vi, vn_x, LogNormal()) - -# Apply it to the model representation -linked_internal_repn = f_linked_internal(model_repn) -``` - -And let's confirm that this is the same as the linked internal representation, using the `VarInfo` that we linked earlier: - -```{julia} -DynamicPPL.getindex_internal(vi_linked, vn_x) -``` - -The purpose of having all of these machinery is to allow other parts of DynamicPPL, such as the tilde pipeline, to handle transformed variables correctly. -The following diagram shows how `assume` first checks whether the variable is transformed (using `is_transformed`), and then applies the appropriate transformation function. - - -```{mermaid} -%%| echo: false - -%%{ init: { 'themeVariables': { 'lineColor': '#000000' } } }%% -%%{ init: { 'flowchart': { 'curve': 'linear', 'wrappingWidth': -1 } } }%% -graph TD - A["x ~ LogNormal()"]:::boxStyle - B["vn = @varname(x)
dist = LogNormal()
x, vi = ..."]:::boxStyle - C["assume(vn, dist, vi)"]:::boxStyle - D(["if is_transformed(vi, vn)"]):::boxStyle - E["f = from_internal_transform(vi, vn, dist)"]:::boxStyle - F["f = from_linked_internal_transform(vi, vn, dist)"]:::boxStyle - G["x, logjac = with_logabsdet_jacobian(f, getindex_internal(vi, vn, dist))"]:::boxStyle - H["return x, logpdf(dist, x) - logjac, vi"]:::boxStyle - - A -.->|@model| B - B -.->|tilde-pipeline| C - C --> D - D -->|false| E - D -->|true| F - E --> G - F --> G - G --> H - - classDef boxStyle fill:#ffffff,stroke:#000000,font-family:Courier,color:#000000 - linkStyle default stroke:#000000,stroke-width:1px,color:#000000 -``` - -Here, `with_logabsdet_jacobian` is defined [in the ChangesOfVariables.jl package](https://juliamath.github.io/ChangesOfVariables.jl/stable/api/#ChangesOfVariables.with_logabsdet_jacobian), and returns both the effect of the transformation `f` as well as the log Jacobian term. - -Because we chose `f` appropriately, we find here that `x` is always the model representation; furthermore, if the variable was _not_ linked (i.e. `is_transformed` was false), the log Jacobian term will be zero. -However, if it was linked, then the Jacobian term would be appropriately included, making sure that sampling proceeds correctly. - -## Why do we need to do this at runtime? - -Given that we know whether a `VarInfo` is linked or not, one might wonder why we need both `from_internal_transform` and `from_linked_internal_transform` at the point where the model is evaluated. -Could we not, for example, store the required transformation inside the `VarInfo` when we link it, and simply reuse that each time? - -That is, why can't we just do - -```{mermaid} -%%| echo: false -%%| fig-width: 5 - -%%{ init: { 'flowchart': { 'curve': 'linear', 'wrappingWidth': -1 } } }%% -%%{ init: { 'themeVariables': { 'lineColor': '#000000' } } }%% -graph TD - A["assume(varinfo, @varname(x), Normal())"]:::boxStyle - B["f = from_internal_transform(varinfo, varname, dist)"]:::boxStyle - C["x, logjac = with_logabsdet_jacobian(f, getindex_internal(varinfo, varname))"]:::boxStyle - D["return x, logpdf(dist, x) - logjac, varinfo"]:::dashedBox - - A --> B - B --> C - C --> D - - classDef dashedBox fill:#ffffff,stroke:#000000,stroke-dasharray: 5 5,font-family:Courier,color:#000000 - classDef boxStyle fill:#ffffff,stroke:#000000,font-family:Courier,color:#000000 - - linkStyle default stroke:#000000,stroke-width:1px,color:#000000 -``` - -where `from_internal_transform` here only looks up a stored transformation function? - -Unfortunately, this is not possible in general, because the transformation function might not be a constant between different model evaluations. -Consider, for example, the following model: - -```{julia} -@model function demo_dynamic_constraint() - m ~ Normal() - x ~ truncated(Normal(); lower=m) - return (m=m, x=x) -end -``` - -Here, `m` is distributed according to a plain `Normal()`, whereas the variable `x` is constrained to be in the domain `(m, Inf)`. -Because of this, we expect that any time we sample from the model, we should have that `m < x` (in terms of their model representations): - -```{julia} -model = demo_dynamic_constraint() -vi = VarInfo(model) -vn_m, vn_x = @varname(m), @varname(x) - -vi[vn_m], vi[vn_x] -``` - -(Note that `vi[vn]` is a shorthand for `getindex(vi, vn)`, so this retrieves the model representations of `m` and `x`.) -So far, so good. -Let's now link this `VarInfo` so that we end up working in an 'unconstrained' space, where both `m` and `x` can take on any values in `(-Inf, Inf)`. -First, we should check that the model representations are unchanged when linking: - -```{julia} -vi_linked = link(vi, model) -vi_linked[vn_m], vi_linked[vn_x] -``` - -But if we change the value of `m`, to, say, a bit larger than `x`: - -```{julia} -# Update the model representation for `m` in `vi_linked`. -vi_linked[vn_m] = vi_linked[vn_x] + 1 -vi_linked[vn_m], vi_linked[vn_x] -``` - -::: {.callout-warning} -This is just for demonstration purposes! -You shouldn't be directly setting variables in a linked `varinfo` like this unless you know for a fact that the value will be compatible with the constraints of the model. -::: - -Now, we see that the constraint `m < x` is no longer satisfied. -Hence, one might expect that if we try to evaluate the model using this `VarInfo`, we should obtain an error. -Here, `evaluate!!` returns two things: the model's return value itself (which we defined above to be a `NamedTuple`), and the resulting `VarInfo` post-evaluation. - -```{julia} -retval, ret_varinfo = DynamicPPL.evaluate!!(model, vi_linked) -getlogp(ret_varinfo) -``` - -But we don't get any errors! -Indeed, we could even calculate the 'log probability density' for this evaluation. - -To understand this, we need to look at the actual value which was used during the model evaluation. -We can glean this from the return value (or from the returned `VarInfo`, but the former is easier): - -```{julia} -retval -``` - -We can see here that the model evaluation used the value of `m` that we provided, but the value of `x` was 'updated'. - -The reason for this is that internally in a model evaluation, we construct the transformation function from the internal to the model representation based on the *current* realizations in the model! -That is, we take the `dist` in a `x ~ dist` expression _at model evaluation time_ and use that to construct the transformation, thus allowing it to change between model evaluations without invalidating the transformation. - -Knowing that the distribution of `x` depends on the value of `m`, we can now understand how the model representation of `x` got updated. -The linked `VarInfo` does not store the model representation of `x`, but only its linked internal representation. -So, what happened during the model evaluation above was that the linked internal representation of `x` – which was constructed using the _original_ value of `m` – was transformed back into a new model representation using a _different_ value of `m`. - -We can reproduce the 'new' value of `x` by performing these transformations manually: - -```{julia} -# Generate a fresh linked VarInfo (without the new / 'corrupted' values) -vi_linked = link(vi, model) -# See the linked internal representations -DynamicPPL.getindex_internal(vi_linked, vn_m), DynamicPPL.getindex_internal(vi_linked, vn_x) -``` - -Now we update the value of `m` like we did before: - -```{julia} -vi_linked[vn_m] = vi_linked[vn_x] + 1 -vi_linked[vn_m] -``` - -When evaluating the model, the distribution of `x` is now changed, and so is the corresponding inverse bijector: - -```{julia} -new_dist_x = truncated(Normal(); lower=vi_linked[vn_m]) -new_f_inv = DynamicPPL.invlink_transform(new_dist_x) -``` - -and if we apply this to the internal representation of `x`: - -```{julia} -new_f_inv(DynamicPPL.getindex_internal(vi_linked, vn_x)) -``` - -which is the same value as we got above in `retval`. - -## Conclusion - -In this chapter of the Turing docs, we've looked at: - -- why variables might need to be transformed; -- how this is accounted for mathematically with the Jacobian term; -- the basic API and functionality of Bijectors.jl; and -- the higher-level usage of transforms in DynamicPPL and Turing. - -This will hopefully have equipped you with a better understanding of how constrained variables are handled in the Turing framework. -With this knowledge, you should especially find it easier to navigate DynamicPPL's `VarInfo` type, which forms the backbone of model evaluation. From 56ca72d73d8f75251a493903b8a83c01ab6d9b33 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 6 Mar 2026 18:19:47 +0000 Subject: [PATCH 14/26] fix multinomial regression --- Manifest.toml | 2 +- Project.toml | 1 - .../multinomial-logistic-regression/index.qmd | 143 ++++++++---------- 3 files changed, 62 insertions(+), 84 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index b5bbe8265..32b848f31 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.11.9" manifest_format = "2.0" -project_hash = "cb981272be13a9b492f5c49b7ce271bc1a8d742f" +project_hash = "e1514f1c2f1d0ee5cb42fcae104797660088ebbe" [[deps.ADTypes]] git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" diff --git a/Project.toml b/Project.toml index cf4773edf..790aa498a 100644 --- a/Project.toml +++ b/Project.toml @@ -31,7 +31,6 @@ MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" Measures = "442fdcdd-2543-5da2-b0f3-8c86c306513e" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" -NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" OptimizationNLopt = "4e6fcdb7-1186-4e1f-a706-475e75c168bb" OptimizationOptimJL = "36348300-93cb-4f02-beb5-3c3902f8871e" diff --git a/tutorials/multinomial-logistic-regression/index.qmd b/tutorials/multinomial-logistic-regression/index.qmd index 130bea580..1377ad9a2 100755 --- a/tutorials/multinomial-logistic-regression/index.qmd +++ b/tutorials/multinomial-logistic-regression/index.qmd @@ -12,97 +12,90 @@ using Pkg; Pkg.instantiate(); ``` -Multinomial logistic regression is an extension of logistic regression. Logistic regression is used to model problems in which there are exactly two possible discrete outcomes. Multinomial logistic regression is used to model problems in which there are two or more possible discrete outcomes. +Multinomial logistic regression is an extension of logistic regression. +Logistic regression is used to model problems in which there are exactly two possible discrete outcomes. +Multinomial logistic regression is used to model problems in which there are two or more possible discrete outcomes. -In our example, we'll be using the iris dataset. The iris multiclass problem aims to predict the species of a flower given measurements (in centimetres) of sepal length and width and petal length and width. There are three possible species: Iris setosa, Iris versicolor, and Iris virginica. +In our example, we'll be using the iris dataset. +The iris multiclass problem aims to predict the species of a flower given measurements (in centimetres) of sepal length and width and petal length and width. +There are three possible species: *Iris setosa*, *Iris versicolor*, and *Iris virginica*. To start, let's import all the libraries we'll need. ```{julia} -# Load Turing. using Turing - -# Load RDatasets. -using RDatasets - -# Load StatsPlots for visualisations and diagnostics. +using MCMCChains: Chains using StatsPlots - # Functionality for splitting and normalising the data. -using MLUtils: shuffleobs, splitobs, rescale! - +using MLUtils: shuffleobs, splitobs, load_iris +using StatsBase: fit, ZScoreTransform, transform! # We need a softmax function which is provided by NNlib. -using NNlib: softmax - +using LogExpFunctions: softmax # Functionality for constructing arrays with identical elements efficiently. using FillArrays -# Functionality for working with scaled identity matrices. -using LinearAlgebra - # Set a seed for reproducibility. using Random Random.seed!(0); ``` -## Data Cleaning & Set Up +## Data Cleaning and Set Up -Now we're going to import our dataset. Twenty rows of the dataset are shown below so you can get a good feel for what kind of data we have. +Now we're going to import our dataset. +Twenty rows of the dataset are shown below so you can get a good feel for what kind of data we have. ```{julia} # Import the "iris" dataset. -data = RDatasets.dataset("datasets", "iris"); +X, Y = load_iris() +nobs = size(X, 2) -# Show twenty random rows. -data[rand(1:size(data, 1), 20), :] +# Show 10 random rows of the outcomes. +Y[rand(1:nobs, 10)] ``` -In this data set, the outcome `Species` is currently coded as a string. We convert it to a numerical value by using indices 1, 2, and 3 to indicate species setosa, versicolor, and virginica, respectively. +In this data set, the outcome `Species` is currently coded as a string. +We convert it to a numerical value by using indices 1, 2, and 3 to indicate species setosa, versicolor, and virginica, respectively. ```{julia} -# Recode the `Species` column. species = ["setosa", "versicolor", "virginica"] -data[!, :Species_index] = indexin(data[!, :Species], species) - -# Show twenty random rows of the new species columns -data[rand(1:size(data, 1), 20), [:Species, :Species_index]] +Y = Vector{Int64}(indexin(Y, species)) +Y[rand(1:nobs, 10)] ``` -After we've done that tidying, it's time to split our dataset into training and testing sets, and separate the features and target from the data. Additionally, we must rescale our feature variables so that they are centred around zero by subtracting each column by the mean and dividing it by the standard deviation. This standardisation improves sampler efficiency by ensuring all features are on comparable scales. +After we've done that tidying, it's time to split our dataset into training and testing sets, and separate the features and target from the data. +Additionally, we must rescale our feature variables so that they are centred around zero by subtracting each column by the mean and dividing it by the standard deviation. +This standardisation improves sampler efficiency by ensuring all features are on comparable scales. ```{julia} # Split our dataset 50%/50% into training/test sets. -trainset, testset = splitobs(shuffleobs(data), 0.5) - -# Define features and target. -features = [:SepalLength, :SepalWidth, :PetalLength, :PetalWidth] -target = :Species_index - -# Turing requires data in matrix and vector form. -train_features = Matrix(trainset[!, features]) -test_features = Matrix(testset[!, features]) -train_target = trainset[!, target] -test_target = testset[!, target] +(train_features, train_target), (test_features, test_target) = splitobs(shuffleobs((X, Y)); at=0.5) # Standardise the features. -μ, σ = rescale!(train_features; obsdim=1) -rescale!(test_features, μ, σ; obsdim=1); +dt = fit(ZScoreTransform, train_features; dims=2) +transform!(dt, train_features) +transform!(dt, test_features) ``` ## Model Declaration -Finally, we can define our model `logistic_regression`. It is a function that takes three arguments where +Finally, we can define our model `logistic_regression`. +It is a function that takes three arguments where - `x` is our set of independent variables; - `y` is the element we want to predict; - `σ` is the standard deviation we want to assume for our priors. -We select the setosa species as the baseline class (the choice does not matter). Then we create the intercepts and vectors of coefficients for the other classes against that baseline. More concretely, we create scalar intercepts `intercept_versicolor` and `intersept_virginica` and coefficient vectors `coefficients_versicolor` and `coefficients_virginica` with four coefficients each for the features `SepalLength`, `SepalWidth`, `PetalLength` and `PetalWidth`. We assume a normal distribution with mean zero and standard deviation `σ` as prior for each scalar parameter. We want to find the posterior distribution of these, in total ten, parameters to be able to predict the species for any given set of features. +We select the setosa species as the baseline class (the choice does not matter). +Then we create the intercepts and vectors of coefficients for the other classes against that baseline. +More concretely, we create scalar intercepts `intercept_versicolor` and `intersept_virginica` and coefficient vectors `coefficients_versicolor` and `coefficients_virginica` with four coefficients, one for each feature. +This gives us a total of 10 parameters to estimate. +We assume a normal distribution with mean zero and standard deviation `σ` as prior for each scalar parameter. +We want to find the posterior distribution of these parameters to be able to predict the species for any given set of features. ```{julia} # Bayesian multinomial logistic regression @model function logistic_regression(x, y, σ) - n = size(x, 1) + n = size(x, 2) length(y) == n || throw(DimensionMismatch("number of observations in `x` and `y` is not equal")) @@ -113,8 +106,8 @@ We select the setosa species as the baseline class (the choice does not matter). coefficients_virginica ~ MvNormal(Zeros(4), σ^2 * I) # Compute the likelihood of the observations. - values_versicolor = intercept_versicolor .+ x * coefficients_versicolor - values_virginica = intercept_virginica .+ x * coefficients_virginica + values_versicolor = intercept_versicolor .+ (coefficients_versicolor' * x) + values_virginica = intercept_virginica .+ (coefficients_virginica' * x) for i in 1:n # the 0 corresponds to the base category `setosa` v = softmax([0, values_versicolor[i], values_virginica[i]]) @@ -125,7 +118,8 @@ end; ## Sampling -Now we can run our sampler. This time we'll use [`NUTS`](https://turinglang.org/stable/docs/library/#Turing.Inference.NUTS) to sample from our posterior. +Now we can run our sampler. +Here we'll use [`NUTS`](https://turinglang.org/stable/docs/library/#Turing.Inference.NUTS) to sample from our posterior. ```{julia} #| output: false @@ -133,21 +127,15 @@ setprogress!(false) ``` ```{julia} -#| output: false m = logistic_regression(train_features, train_target, 1) chain = sample(m, NUTS(), MCMCThreads(), 1_500, 3) ``` - -```{julia} -#| echo: false -chain -``` - -::: {.callout-warning collapse="true"} +::: {.callout-info} ## Sampling With Multiple Threads -The `sample()` call above assumes that you have at least `nchains` threads available in your Julia instance. If you do not, the multiple chains -will run sequentially, and you may notice a warning. For more information, see [the Turing documentation on sampling multiple chains.]({{}}#sampling-multiple-chains) +The `sample()` call above assumes that you have at least `nchains` threads available in your Julia instance. +If you do not, the multiple chains will run sequentially, and you may notice a warning. +For more information, see [the Turing documentation on sampling multiple chains.]({{}}#sampling-multiple-chains) ::: Since we ran multiple chains, we may as well do a spot check to make sure each chain converges around similar points. @@ -158,34 +146,26 @@ plot(chain) Looks good! -We can also use the `corner` function from MCMCChains to show the distributions of the various parameters of our multinomial logistic regression. The corner function requires MCMCChains and StatsPlots. +We can also use the `corner` function from StatsPlots to show the distributions of the various parameters of our multinomial logistic regression. +`corner(chain)` will show the distributions of all parameters, but here we will only show the first three to avoid cluttering the plot. ```{julia} -# Only plotting the first 3 coefficients due to a bug in Plots.jl -corner( - chain, - MCMCChains.namesingroup(chain, :coefficients_versicolor)[1:3]; -) -``` - -```{julia} -# Only plotting the first 3 coefficients due to a bug in Plots.jl -corner( - chain, - MCMCChains.namesingroup(chain, :coefficients_virginica)[1:3]; -) +corner(chain, MCMCChains.namesingroup(chain, :coefficients_versicolor)) ``` Fortunately the corner plots appear to demonstrate unimodal distributions for each of our parameters, so it should be straightforward to take the means of each parameter's sampled values to estimate our model to make predictions. ## Making Predictions -How do we test how well the model actually predicts which of the three classes an iris flower belongs to? We need to build a `prediction` function that takes the test dataset and runs it through the average parameter calculated during sampling. +How do we test how well the model actually predicts which of the three classes an iris flower belongs to? +We need to build a `prediction` function that takes the test dataset and runs it through the average parameter calculated during sampling. -The `prediction` function below takes a `Matrix` and a `Chains` object. It computes the mean of the sampled parameters and calculates the species with the highest probability for each observation. Note that we do not have to evaluate the `softmax` function since it does not affect the order of its inputs. +The `prediction` function below takes a matrix and a `Chains` object. +It computes the mean of the sampled parameters and calculates the species with the highest probability for each observation. +Note that we do not have to evaluate the `softmax` function since it does not affect the order of its inputs. ```{julia} -function prediction(x::Matrix, chain) +function prediction(x::AbstractMatrix{<:Real}, chain::MCMCChains.Chains) # Pull the means from each parameter's sampled values in the chain. intercept_versicolor = mean(chain, :intercept_versicolor) intercept_virginica = mean(chain, :intercept_virginica) @@ -197,8 +177,8 @@ function prediction(x::Matrix, chain) ] # Compute the index of the species with the highest probability for each observation. - values_versicolor = intercept_versicolor .+ x * coefficients_versicolor - values_virginica = intercept_virginica .+ x * coefficients_virginica + values_versicolor = intercept_versicolor .+ (coefficients_versicolor' * x) + values_virginica = intercept_virginica .+ (coefficients_virginica' * x) species_indices = [ argmax((0, x, y)) for (x, y) in zip(values_versicolor, values_virginica) ] @@ -207,29 +187,28 @@ function prediction(x::Matrix, chain) end; ``` -Let's see how we did! We run the test matrix through the prediction function, and compute the accuracy for our prediction. +Let's see how we did! +We run the test matrix through the prediction function, and compute the accuracy for our prediction. ```{julia} # Make the predictions. predictions = prediction(test_features, chain) # Calculate accuracy for our test set. -mean(predictions .== testset[!, :Species_index]) +mean(predictions .== test_target) ``` Perhaps more important is to see the accuracy per class. ```{julia} for s in 1:3 - rows = testset[!, :Species_index] .== s + rows = test_target .== s println("Number of `", species[s], "`: ", count(rows)) println( "Percentage of `", species[s], "` predicted correctly: ", - mean(predictions[rows] .== testset[rows, :Species_index]), + mean(predictions[rows] .== test_target[rows]) ) end ``` - -This tutorial has demonstrated how to use Turing to perform Bayesian multinomial logistic regression. From fdf4e82b9a99731d2a911cfd80fe72e4c02308c0 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 6 Mar 2026 21:53:33 +0000 Subject: [PATCH 15/26] fix time series --- tutorials/bayesian-time-series-analysis/index.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/bayesian-time-series-analysis/index.qmd b/tutorials/bayesian-time-series-analysis/index.qmd index 1e8846c68..80399e64a 100755 --- a/tutorials/bayesian-time-series-analysis/index.qmd +++ b/tutorials/bayesian-time-series-analysis/index.qmd @@ -156,7 +156,7 @@ Finally, we plot prior predictive samples to make sure our priors make sense. end y_prior_samples = mapreduce(hcat, 1:100) do _ - rand(decomp_model(t, cyclic_features, +)).y + rand(decomp_model(t, cyclic_features, +))[@varname(y)] end plot(t, y_prior_samples; linewidth=1, alpha=0.5, color=1, label="", title="Prior samples") scatter!(t, yf; color=2, label="Data") @@ -297,7 +297,7 @@ Since we wrote our model to accept a combining operator, we can easily run the s yg = g.(t) .+ σ_true .* randn(size(t)) y_prior_samples = mapreduce(hcat, 1:100) do _ - rand(decomp_model(t, cyclic_features, .*)).y + rand(decomp_model(t, cyclic_features, .*))[@varname(y)] end plot(t, y_prior_samples; linewidth=1, alpha=0.5, color=1, label="", title="Prior samples") scatter!(t, yf; color=2, label="Data") From c14803a73a6a1651f98bb91dbd8cb9375722b57a Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 00:15:14 +0000 Subject: [PATCH 16/26] Fix logistic regression --- .../bayesian-logistic-regression/index.qmd | 165 +++++++++--------- 1 file changed, 84 insertions(+), 81 deletions(-) diff --git a/tutorials/bayesian-logistic-regression/index.qmd b/tutorials/bayesian-logistic-regression/index.qmd index 9fbd1e66f..2ab4e04e2 100755 --- a/tutorials/bayesian-logistic-regression/index.qmd +++ b/tutorials/bayesian-logistic-regression/index.qmd @@ -21,20 +21,12 @@ In our example, we'll be working to predict whether someone is likely to default To start, let's import all the libraries we'll need. ```{julia} -# Import Turing and Distributions. -using Turing, Distributions - -# Import RDatasets. +using Turing using RDatasets - -# Import MCMCChains, Plots, and StatsPlots for visualisations and diagnostics. using MCMCChains, Plots, StatsPlots - -# We need a logistic function, which is provided by StatsFuns. using StatsFuns: logistic - -# Functionality for splitting and normalising the data -using MLUtils: shuffleobs, stratifiedobs, rescale! +using MLUtils: splitobs +using StatsBase: fit, transform!, ZScoreTransform # Set a seed for reproducibility. using Random @@ -43,7 +35,8 @@ Random.seed!(0); ## Data Cleaning & Set Up -Now we're going to import our dataset. The first six rows of the dataset are shown below so you can get a good feel for what kind of data we have. +Now we're going to import our dataset. +The first six rows of the dataset are shown below so you can get a good feel for what kind of data we have. ```{julia} # Import the "Default" dataset. @@ -53,12 +46,15 @@ data = RDatasets.dataset("ISLR", "Default"); first(data, 6) ``` -Most machine learning processes require some effort to tidy up the data, and this is no different. We need to convert the `Default` and `Student` columns, which say "Yes" or "No" into 1s and 0s. Afterwards, we'll get rid of the old words-based columns. +Most machine learning processes require some effort to tidy up the data, and this is no different. +We need to convert the `Default` and `Student` columns, which say "Yes" or "No" into 1s and 0s. +Afterwards, we'll get rid of the old words-based columns. ```{julia} # Convert "Default" and "Student" to numeric values. -data[!, :DefaultNum] = [r.Default == "Yes" ? 1.0 : 0.0 for r in eachrow(data)] -data[!, :StudentNum] = [r.Student == "Yes" ? 1.0 : 0.0 for r in eachrow(data)] +yesno = ["No", "Yes"] +data[!, :DefaultNum] = indexin(data[!, :Default], yesno) .- 1 +data[!, :StudentNum] = indexin(data[!, :Student], yesno) .- 1 # Delete the old columns which say "Yes" and "No". select!(data, Not([:Default, :Student])) @@ -67,31 +63,40 @@ select!(data, Not([:Default, :Student])) first(data, 6) ``` -After we've done that tidying, it's time to split our dataset into training and testing sets, and separate the labels from the data. We separate our data into two halves, `train` and `test`. You can use a higher percentage of splitting (or a lower one) by modifying the `at = 0.05` argument. We have highlighted the use of only a 5% sample to show the power of Bayesian inference with small sample sizes. +Our predictor variables are `StudentNum`, `Balance`, and `Income`, and our target variable is `DefaultNum`; we separate those out into `X` and `Y` for ease of use later on. +We'll also convert them to `Matrix` and `Vector` types, respectively, by wrapping them in `Array`. + +```{julia} +# `splitobs` later expects that `X` has observations in columns, +# hence the transpose on `X`. +X = Array(data[!, [:StudentNum, :Balance, :Income]])' +Y = Array(data[!, :DefaultNum]) +size(X), size(Y) +``` -We must rescale our variables so that they are centred around zero by subtracting each column by the mean and dividing it by the standard deviation. This rescaling ensures features are on comparable scales, which improves sampler initialisation and convergence. To do this we will leverage `MLUtils`, which also lets us effortlessly shuffle our observations and perform a [stratified split](https://en.wikipedia.org/wiki/Stratified_sampling) to get a representative test set. +It's now time to split our dataset into training and testing sets. +We separate our data into two partitions, `train` and `test`. +You can use a higher percentage of splitting (or a lower one) by modifying the `at = 0.05` argument. +Here, we are training on only 5% of the data in order to highlight the power of Bayesian inference with small sample sizes. +To do the splitting we will leverage `MLUtils`, which also lets us effortlessly shuffle our observations and perform a [stratified split](https://en.wikipedia.org/wiki/Stratified_sampling) to get a representative test set. ```{julia} -function split_data(df, target; at=0.70) - shuffled = shuffleobs(df) - return trainset, testset = stratifiedobs(row -> row[target], shuffled; p=at) -end +(train_X, train_Y), (test_X, test_Y) = splitobs((X, Y); at=0.05, shuffle=true, stratified=Y) -features = [:StudentNum, :Balance, :Income] -numerics = [:Balance, :Income] -target = :DefaultNum +# Let's check that the labels are distributed +# similarly in the training and test sets. +mean(train_Y), mean(test_Y) +``` -trainset, testset = split_data(data, target; at=0.05) -for feature in numerics - μ, σ = rescale!(trainset[!, feature]; obsdim=1) - rescale!(testset[!, feature], μ, σ; obsdim=1) -end +We must now rescale our numeric variables so that they are centred around zero by subtracting each column by the mean and dividing it by the standard deviation. +This rescaling ensures features are on comparable scales, which improves sampler initialisation and convergence. -# Turing requires data in matrix form, not dataframe -train = Matrix(trainset[:, features]) -test = Matrix(testset[:, features]) -train_label = trainset[:, target] -test_label = testset[:, target]; +Note here that we leave out the `StudentNum` variable (row 1) from the normalisation, since it is already binary and doesn't need to be rescaled. + +```{julia} +dt = fit(ZScoreTransform, view(train_X, 2:3, :); dims=2) +transform!(dt, view(train_X, 2:3, :)) +transform!(dt, view(test_X, 2:3, :)) ``` ## Model Declaration @@ -102,24 +107,25 @@ Finally, we can define our model. - `x` is our set of independent variables; - `y` is the element we want to predict; - - `n` is the number of observations we have; and - - `σ` is the standard deviation we want to assume for our priors. + - `σ` is the (fixed) standard deviation we want to assume for our priors. -Within the model, we create four coefficients (`intercept`, `student`, `balance`, and `income`) and assign a prior of normally distributed with means of zero and standard deviations of `σ`. We want to find values of these four coefficients to predict any given `y`. +Within the model, we create four coefficients (`intercept`, `student`, `balance`, and `income`) and assign a prior of normally distributed with means of zero and standard deviations of `σ`. +We want to find values of these four coefficients to predict any given `y`. The `for` block creates a variable `v` which is the logistic function. We then observe the likelihood of calculating `v` given the actual label, `y[i]`. ```{julia} -# Bayesian logistic regression (LR) -@model function logistic_regression(x, y, n, σ) - intercept ~ Normal(0, σ) +@model function logistic_regression(x, y, σ) + N = size(x, 2) + @assert length(y) == N + intercept ~ Normal(0, σ) student ~ Normal(0, σ) balance ~ Normal(0, σ) income ~ Normal(0, σ) - for i in 1:n - v = logistic(intercept + student * x[i, 1] + balance * x[i, 2] + income * x[i, 3]) + for i in 1:N + v = logistic(intercept + student * x[1, i] + balance * x[2, i] + income * x[3, i]) y[i] ~ Bernoulli(v) end end; @@ -127,7 +133,8 @@ end; ## Sampling -Now we can run our sampler. This time we'll use [`NUTS`](https://turinglang.org/stable/docs/library/#Turing.Inference.NUTS) to sample from our posterior. +Now we can run our sampler. +Here we'll use [`NUTS`](https://turinglang.org/stable/docs/library/#Turing.Inference.NUTS) to sample from our posterior. ```{julia} #| output: false @@ -135,24 +142,16 @@ setprogress!(false) ``` ```{julia} -#| output: false -# Retrieve the number of observations. -n, _ = size(train) - # Sample using NUTS. -m = logistic_regression(train, train_label, n, 1) +m = logistic_regression(train_X, train_Y, 1.0) chain = sample(m, NUTS(), MCMCThreads(), 1_500, 3) ``` -```{julia} -#| echo: false -chain -``` - -::: {.callout-warning collapse="true"} +::: {.callout-warning} ## Sampling With Multiple Threads -The `sample()` call above assumes that you have at least `nchains` threads available in your Julia instance. If you do not, the multiple chains -will run sequentially, and you may notice a warning. For more information, see [the Turing documentation on sampling multiple chains.]({{}}#sampling-multiple-chains) +The `sample()` call above assumes that you have at least `nchains` threads available in your Julia instance. +If you do not, the multiple chains will run sequentially, and you may notice a warning. +For more information, see [the Turing documentation on sampling multiple chains]({{}}#sampling-multiple-chains). ::: ```{julia} @@ -185,7 +184,7 @@ end Looks good! -We can also use the `corner` function from MCMCChains to show the distributions of the various parameters of our logistic regression. +We can also use the `corner` function from StatsPlots to show the distributions of the various parameters of our logistic regression. ```{julia} # The labels to use. @@ -199,60 +198,65 @@ Fortunately the corner plot appears to demonstrate unimodal distributions for ea ## Making Predictions -How do we test how well the model actually predicts whether someone is likely to default? We need to build a prediction function that takes the `test` object we made earlier and runs it through the average parameter calculated during sampling. +How do we test how well the model actually predicts whether someone is likely to default? +We need to build a prediction function that takes the `test` object we made earlier and runs it through the average parameter calculated during sampling. -The `prediction` function below takes a `Matrix` and a `Chain` object. It takes the mean of each parameter's sampled values and re-runs the logistic function using those mean values for every element in the test set. +The `prediction` function below takes a `Matrix` and a `Chain` object. +It takes the mean of each parameter's sampled values and re-runs the logistic function using those mean values for every element in the test set. ```{julia} -function prediction(x::Matrix, chain, threshold) +using MCMCChains: MCMCChains + +function prediction(x::AbstractMatrix, chain::MCMCChains.Chains, threshold) # Pull the means from each parameter's sampled values in the chain. intercept = mean(chain[:intercept]) student = mean(chain[:student]) balance = mean(chain[:balance]) income = mean(chain[:income]) - # Retrieve the number of rows. - n, _ = size(x) + # Retrieve the number of observations. + n = size(x, 2) # Generate a vector to store our predictions. - v = Vector{Float64}(undef, n) + v = Vector{Bool}(undef, n) # Calculate the logistic function for each element in the test set. for i in 1:n num = logistic( - intercept .+ student * x[i, 1] + balance * x[i, 2] + income * x[i, 3] + intercept .+ student * x[1, i] + balance * x[2, i] + income * x[3, i] ) - if num >= threshold - v[i] = 1 - else - v[i] = 0 - end + v[i] = num >= threshold end return v -end; +end ``` -Let's see how we did! We run the test matrix through the prediction function, and compute the [mean squared error](https://en.wikipedia.org/wiki/Mean_squared_error) (MSE) for our prediction. The `threshold` variable sets the decision boundary for classification. For example, a threshold of 0.07 will predict a default (value of 1) for any predicted probability greater than 0.07 and no default otherwise. Lower thresholds increase sensitivity but may increase false positives. +Let's see how we did! +We run the test matrix through the prediction function, and compute the [mean squared error](https://en.wikipedia.org/wiki/Mean_squared_error) (MSE) for our prediction. +The `threshold` variable sets the decision boundary for classification. +For example, a threshold of 0.07 will predict a default (value of 1) for any predicted probability greater than 0.07 and no default otherwise. +Lower thresholds increase sensitivity but may increase false positives. ```{julia} # Set the prediction threshold. threshold = 0.07 # Make the predictions. -predictions = prediction(test, chain, threshold) +predictions = prediction(test_X, chain, threshold) # Calculate MSE for our test set. -loss = sum((predictions - test_label) .^ 2) / length(test_label) +loss = sum((predictions - test_Y) .^ 2) / length(test_Y) ``` -Perhaps more important is to see what percentage of defaults we correctly predicted. The code below simply counts defaults and predictions and presents the results. +Perhaps more important is to see what percentage of defaults we correctly predicted. +The code below simply counts defaults and predictions and presents the results. ```{julia} -defaults = sum(test_label) -not_defaults = length(test_label) - defaults +defaults = sum(test_Y) +not_defaults = length(test_Y) - defaults -predicted_defaults = sum(test_label .== predictions .== 1) -predicted_not_defaults = sum(test_label .== predictions .== 0) +predicted_defaults = sum(test_Y .== predictions .== 1) +predicted_not_defaults = sum(test_Y .== predictions .== 0) println("Defaults: $defaults Predictions: $predicted_defaults @@ -271,6 +275,5 @@ let end ``` -The above shows that with a threshold of 0.07, we correctly predict a respectable portion of the defaults, and correctly identify most non-defaults. This is fairly sensitive to a choice of threshold, and you may wish to experiment with it. - -This tutorial has demonstrated how to use Turing to perform Bayesian logistic regression. +The above shows that with a threshold of 0.07, we correctly predict a respectable portion of the defaults, and correctly identify most non-defaults. +This is fairly sensitive to a choice of threshold, and you may wish to experiment with it. From 59aba56fd8d6e73de9d1cf8b6ca999ab69ead4c8 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 00:29:14 +0000 Subject: [PATCH 17/26] Use Mooncake for GP issue --- tutorials/gaussian-processes-introduction/index.qmd | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tutorials/gaussian-processes-introduction/index.qmd b/tutorials/gaussian-processes-introduction/index.qmd index f8f05e33c..f2962b16c 100755 --- a/tutorials/gaussian-processes-introduction/index.qmd +++ b/tutorials/gaussian-processes-introduction/index.qmd @@ -105,14 +105,20 @@ Unfortunately, there is not a simple way to enforce monotonicity in the samples In any case, you can judge for yourself whether you think this is the most useful visualisation that we can perform; if you think there is something better to look at, please let us know! Moving on, we generate samples from the posterior using the default `NUTS` sampler. -We'll make use of [ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl), as it has better performance than [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl/) on this example. +We'll make use of [Mooncake.jl](https://github.com/chalk-lab/Mooncake.jl), as it has better performance than [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl/) on this example. See the [automatic differentiation docs]({{< meta usage-automatic-differentiation >}}) for more info. ```{julia} -using Random, ReverseDiff +using Random +using Mooncake: Mooncake m_post = m | (y=df.y,) -chn = sample(Xoshiro(123456), m_post, NUTS(; adtype=AutoReverseDiff()), 1_000, progress=false) +# Note that the struct `AutoMooncake()` is a very small struct +# defined in ADTypes.jl, which just means 'attempt to use +# Mooncake.jl for automatic differentiation'. This struct is +# reexported by Turing. However, you must also import +# Mooncake itself which allows the AD call to execute. +chn = sample(Xoshiro(123456), m_post, NUTS(; adtype=AutoMooncake()), 1_000, progress=false) ``` We can use these samples and the `posterior` function from `AbstractGPs` to sample from the posterior probability of success at any distance we choose: From e25f30b7d5052437fcaa8bf4599a4431c9541990 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 11:05:53 +0000 Subject: [PATCH 18/26] update deps --- Manifest.toml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 32b848f31..0dd105fc2 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -186,11 +186,12 @@ version = "3.5.2+0" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "d81ae5489e13bc03567d4fbbb06c546a5e53c857" +git-tree-sha1 = "78b3a7a536b4b0a747a0f296ea77091ca0a9f9a3" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.22.0" +version = "7.23.0" [deps.ArrayInterface.extensions] + ArrayInterfaceAMDGPUExt = "AMDGPU" ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" @@ -205,6 +206,7 @@ version = "7.22.0" ArrayInterfaceTrackerExt = "Tracker" [deps.ArrayInterface.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" @@ -285,9 +287,9 @@ version = "0.1.1" [[deps.Bijectors]] deps = ["AbstractPPL", "ArgCheck", "ChainRulesCore", "ChangesOfVariables", "DifferentiationInterface", "Distributions", "DocStringExtensions", "EnzymeCore", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Roots", "SparseArrays", "Statistics", "Test"] -git-tree-sha1 = "dc30adbebc57a3b488a388d3504937b88955517d" +git-tree-sha1 = "e876fd33fef2708270d8f72b4491af71fed12ec6" uuid = "76274a88-744f-5084-9051-94815aaf08c4" -version = "0.15.17" +version = "0.15.18" [deps.Bijectors.extensions] BijectorsDistributionsADExt = "DistributionsAD" @@ -1589,9 +1591,9 @@ version = "1.11.0" [[deps.LinearSolve]] deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "15e73fc6ac5ad564842af06fb9f479199e7174fb" +git-tree-sha1 = "ba64436736405d666e0d22d54ee0e1b04e2e2b02" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.63.0" +version = "3.64.0" [deps.LinearSolve.extensions] LinearSolveAMDGPUExt = "AMDGPU" @@ -1983,9 +1985,9 @@ version = "0.8.1" [[deps.Mooncake]] deps = ["ADTypes", "ChainRules", "ChainRulesCore", "DispatchDoctor", "ExprTools", "Graphs", "LinearAlgebra", "MistyClosures", "PrecompileTools", "Random", "Test"] -git-tree-sha1 = "6f205a56f9222e4cfd086d4acde3dc475eb7493e" +git-tree-sha1 = "bf6df81be03543cd072367880d729a331c5048a5" uuid = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" -version = "0.5.14" +version = "0.5.17" [deps.Mooncake.extensions] MooncakeAllocCheckExt = "AllocCheck" @@ -2364,9 +2366,9 @@ version = "1.22.0" [[deps.OrdinaryDiffEqCore]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ConcreteStructs", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "SciMLStructures", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "65363819a98d156fac5bb48b9c604549069b6d10" +git-tree-sha1 = "e051c1fb69b1cb1511a00161b97e7a79e0b70687" uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" -version = "3.16.0" +version = "3.17.0" weakdeps = ["Mooncake", "SparseArrays"] [deps.OrdinaryDiffEqCore.extensions] @@ -3292,9 +3294,9 @@ version = "0.5.8" [[deps.Strided]] deps = ["LinearAlgebra", "StridedViews", "TupleTools"] -git-tree-sha1 = "e8f4378674a1bcf4dd8fdefc0fa979323ccb4141" +git-tree-sha1 = "0fa01489ecc57749f2f7dcbc2918e46a164af8b2" uuid = "5e0ebb24-38b0-5f93-81fe-25c709ecae67" -version = "2.3.3" +version = "2.3.4" [deps.Strided.extensions] StridedAMDGPUExt = "AMDGPU" From 10637dc3207a400f7b33cdf3106a074006a50834 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 18:17:14 +0000 Subject: [PATCH 19/26] ForwardDiff -> Mooncake in GMM tutorial --- tutorials/gaussian-mixture-models/index.qmd | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tutorials/gaussian-mixture-models/index.qmd b/tutorials/gaussian-mixture-models/index.qmd index 217d56c6e..aaea5f5e0 100755 --- a/tutorials/gaussian-mixture-models/index.qmd +++ b/tutorials/gaussian-mixture-models/index.qmd @@ -336,9 +336,18 @@ model = gmm_marginalized(x); As we have summed out the discrete components, we can perform inference using `NUTS()` alone. +:::{.callout-warning} +# ForwardDiff + +In this example we are using Mooncake.jl as the automatic differentiation backend for `NUTS()`. +If you want to replicate this Turing's default ForwardDiff backend, you will need to [enable NaN-safe mode](https://juliadiff.org/ForwardDiff.jl/stable/user/advanced/#Fixing-NaN/Inf-Issues), or else the `gmm_recover` model can run into issues with NaN values. +::: + ```{julia} #| output: false -sampler = NUTS() +import Mooncake + +sampler = NUTS(; adtype=AutoMooncake()) chains = sample(model, sampler, MCMCThreads(), nsamples, nchains; discard_initial = burn); ``` From d6a6e721a6bc59fe7925cebb5e2903e6c305cdea Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 18:34:58 +0000 Subject: [PATCH 20/26] Add ForwardDiff NaN thing to troubleshooting page --- usage/troubleshooting/index.qmd | 65 +++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/usage/troubleshooting/index.qmd b/usage/troubleshooting/index.qmd index 12c45dc80..528a6ac07 100755 --- a/usage/troubleshooting/index.qmd +++ b/usage/troubleshooting/index.qmd @@ -19,6 +19,45 @@ using Turing Turing.setprogress!(false) ``` +## NaN `Dual` numbers when using ForwardDiff + +ForwardDiff.jl is the default automatic differentiation backend for Turing.jl, and is used 'under the hood' in many of Turing's functions, such as MCMC sampling with HMC/NUTS, or optimisation. + +Since v1.0 of ForwardDiff, a number of changes were made to equality and comparison operators on ForwardDiff's `Dual` type, which can surface many errors that were previously hidden. +In particular, the presence of `NaN` values in gradients can cause various functions to fail, even when the value of the gradient is not directly used. + +For example: + +```{julia} +# This works when not using Dual numbers +sigma = 0.0 +Normal(1.0, sigma) +``` + +```{julia} +#| error: true +using ForwardDiff: Dual + +# This fails when using Dual numbers that contain NaNs +dual_sigma = Dual(0.0, NaN) +Normal(1.0, dual_sigma) +``` + +If you are encountering `NaN`-related issues that did not happen before, you should try [enabling NaN-safe mode for ForwardDiff](https://juliadiff.org/ForwardDiff.jl/stable/user/advanced/#Fixing-NaN/Inf-Issues). +Specifically, you need to run: + +```julia +using ForwardDiff, Preferences +set_preferences!(ForwardDiff, "nansafe_mode" => true) +``` + +and then restart your Julia session. + +Note that this creates a `Preferences.toml` or `LocalPreferences.toml` file on your system. +Because of this, unfortunately, there is no configuration option that Turing can expose for this: you have to run the above code yourself (this is a limitation of ForwardDiff.jl). + +Alternatively, consider [switching to a different AD backend]({{< meta usage-automatic-differentiation >}}). + ## Initial parameters > failed to find valid initial parameters in {N} tries. This may indicate an error with the model or AD backend... @@ -169,20 +208,6 @@ Alternatively, you can use a different AD backend such as Mooncake.jl which does ## GrowableArray warnings -::: {.callout-warning} -# This section refers to a future version of DynamicPPL.jl - -This warning refers to one that is in the upcoming release of DynamicPPL v0.40. -They are not currently available in released versions of DynamicPPL.jl and Turing.jl. -::: - -```{julia} -using DynamicPPL -if pkgversion(DynamicPPL) >= v"0.40" - error("This page needs to be updated") -end -``` - > Returning a `Base.Array` with a presumed size based on the indices used to set values; but this may not be the actual shape or size of the actual `AbstractArray` that was inside the DynamicPPL model. You should inspect the returned result to make sure that it has the correct value. This warning is seen when using a `VarNamedTuple` — a mapping of `VarName`s to values — that contains indexed variables (such as `x[1]`) but does not know what the type of `x` is. @@ -199,20 +224,20 @@ Dict(@varname(x[1]) => 1.0, @varname(x[2]) => 2.0) or -```julia +```{julia} @vnt begin - x[1] = 1.0 - x[2] = 2.0 + x[1] := 1.0 + x[2] := 2.0 end ``` you should use -```julia +```{julia} @vnt begin @template x = Vector{Float64}(undef, 2) - x[1] = 1.0 - x[2] = 2.0 + x[1] := 1.0 + x[2] := 2.0 end ``` From c9eb09b6555873d0e06b9bb752dde5c2306f2ab9 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 19:12:39 +0000 Subject: [PATCH 21/26] Fix VI docs --- tutorials/variational-inference/index.qmd | 42 +++++++---------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/tutorials/variational-inference/index.qmd b/tutorials/variational-inference/index.qmd index 70dfa5491..a82e92fec 100755 --- a/tutorials/variational-inference/index.qmd +++ b/tutorials/variational-inference/index.qmd @@ -57,7 +57,7 @@ using RDatasets using LinearAlgebra -# Import the "Default" dataset. +# Import the "mtcars" dataset. data = RDatasets.dataset("datasets", "mtcars"); # Show the first six rows of the dataset. @@ -137,11 +137,9 @@ test = Matrix(test_cut[:, remove_names]); mu = intercept .+ x * coefficients return y ~ MvNormal(mu, σ² * I) end; -``` -```{julia} n_obs, n_vars = size(train) -m = linear_regression(train, train_label, n_obs, n_vars); +m = linear_regression(train, train_label, n_obs, n_vars) ``` ## Basic Usage @@ -150,7 +148,7 @@ For instance, the most commonly used family is the mean-field Gaussian family. For this, Turing provides functions that automatically construct the initialisation corresponding to the model `m`: ```{julia} -q_init = q_meanfield_gaussian(m); +q_init = q_meanfield_gaussian(m) ``` `vi` will automatically recognise the variational family through the type of `q_init`. @@ -159,6 +157,7 @@ Here is a detailed documentation for the constructor: ```{julia} @doc(Variational.q_meanfield_gaussian) ``` + As we can see, the precise initialisation can be customized through the keyword arguments. Let's run VI with the default setting: @@ -258,6 +257,7 @@ Plots.plot!(iters, elbo_mf, xlabel="Iterations", ylabel="ELBO", label="callback" We can see that the ELBO values are less noisy and progress more smoothly due to averaging. ## Using Different Optimisers + The default optimiser we use is a proximal variant of DoWG[^KMJ2023]. For Gaussian variational families, this works well as a default option. Sometimes, the step size of `AdvancedVI.DoWG` could be too large, resulting in unstable behaviour. @@ -312,7 +312,7 @@ This term, however, traditionally comes from the fact that full-rank families us In contrast to the mean-field family, the full-rank family will often result in more computation per optimisation step and slower convergence, especially in high dimensions: ```{julia} -q_fr, info_fr, _ = vi(m, q_init_fr, n_iters; show_progress=false, callback) +q_fr, info_fr, state_fr = vi(m, q_init_fr, n_iters; show_progress=false, callback) Plots.plot(elbo_mf, xlabel="Iterations", ylabel="ELBO", label="Mean-Field", ylims=(-200, Inf)) @@ -346,35 +346,17 @@ Now, we can, for example, look at expectations: avg = vec(mean(z; dims=2)) ``` -The vector has the same ordering as the parameters in the model, *e.g.* in this case `σ²` has index `1`, `intercept` has index `2` and `coefficients` has indices `3:12`. If you forget or you might want to do something programmatically with the result, you can obtain the `sym → indices` mapping as follows: - -```{julia} -using Bijectors: bijector - -_, sym2range = bijector(m, Val(true)); -sym2range -``` - -For example, we can check the sample distribution and mean value of `σ²`: +The vector has the same ordering as the parameters in the model: for example, in this case `σ²` will have index `1`, `intercept` has index `2` and `coefficients` has indices `3:12`. -```{julia} -histogram(z[1, :]) -avg[union(sym2range[:σ²]...)] -``` - -```{julia} -avg[union(sym2range[:intercept]...)] -``` - -```{julia} -avg[union(sym2range[:coefficients]...)] -``` +:::{.callout-warning} +Note that the ordering of the parameters in the vector is an internal detail and is not guaranteed to be consistent across different versions of Turing, nor is it guaranteed to obey semantic versioning. +::: For further convenience, we can wrap the samples into a `Chains` object to summarise the results. ```{julia} -varinf = Turing.DynamicPPL.VarInfo(m) -vns_and_values = Turing.DynamicPPL.varname_and_value_leaves(Turing.DynamicPPL.values_as(varinf, OrderedDict)) +vnt = rand(m) +vns_and_values = Turing.DynamicPPL.varname_and_value_leaves(Dict(pairs(vnt))) varnames = map(first, vns_and_values) vi_chain = Chains(reshape(z', (size(z,2), size(z,1), 1)), varnames) ``` From 22ba7335b35e837c3a2ee8e6d71176b807f69a06 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 19:22:10 +0000 Subject: [PATCH 22/26] fix VI docs --- tutorials/variational-inference/index.qmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tutorials/variational-inference/index.qmd b/tutorials/variational-inference/index.qmd index a82e92fec..56f0b0951 100755 --- a/tutorials/variational-inference/index.qmd +++ b/tutorials/variational-inference/index.qmd @@ -356,9 +356,10 @@ For further convenience, we can wrap the samples into a `Chains` object to summa ```{julia} vnt = rand(m) -vns_and_values = Turing.DynamicPPL.varname_and_value_leaves(Dict(pairs(vnt))) +vns_and_values = Turing.DynamicPPL.varname_and_value_leaves(OrderedDict(pairs(vnt))) varnames = map(first, vns_and_values) vi_chain = Chains(reshape(z', (size(z,2), size(z,1), 1)), varnames) +describe(vi_chain) ``` (Since we're drawing independent samples, we can simply ignore the ESS and Rhat metrics.) From b72c8cbdb164707190265e5034c28dc93cc6668b Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 19:48:22 +0000 Subject: [PATCH 23/26] fix extsampler --- usage/external-samplers/index.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usage/external-samplers/index.qmd b/usage/external-samplers/index.qmd index af742a0cc..41ca459e0 100755 --- a/usage/external-samplers/index.qmd +++ b/usage/external-samplers/index.qmd @@ -37,8 +37,8 @@ end Now we sample the model to generate some observations, which we can then condition on. ```{julia} -(; x) = rand(funnel() | (θ=0,)) -model = funnel() | (; x); +vnt = rand(funnel() | (θ=0,)) +model = funnel() | (; x=vnt[@varname(x)]); ``` Users can use any sampler algorithm to sample this model if it follows the `AbstractMCMC` API. @@ -146,4 +146,4 @@ In general, we recommend that the `AbstractMCMC` interface is implemented direct However, any DynamicPPL- or Turing-specific functionality is best implemented in a `MySamplerTuringExt` extension. [^1]: Xu et al., [AdvancedHMC.jl: A robust, modular and efficient implementation of advanced HMC algorithms](http://proceedings.mlr.press/v118/xu20a/xu20a.pdf), 2019 -[^2]: Zhang et al., [Pathfinder: Parallel quasi-Newton variational inference](https://arxiv.org/abs/2108.03782), 2021 \ No newline at end of file +[^2]: Zhang et al., [Pathfinder: Parallel quasi-Newton variational inference](https://arxiv.org/abs/2108.03782), 2021 From 9fe6ce6acaa4b46dc848f46dd5292b7d07993111 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 19:55:55 +0000 Subject: [PATCH 24/26] fix submodels --- usage/submodels/index.qmd | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/usage/submodels/index.qmd b/usage/submodels/index.qmd index b77a54cd1..b60befdcb 100644 --- a/usage/submodels/index.qmd +++ b/usage/submodels/index.qmd @@ -126,22 +126,11 @@ end rand(Xoshiro(468), outer_with_retval()) ``` -You can also manually access the value by looking inside the special `__varinfo__` object. - -::: {.callout-warning} -This relies on DynamicPPL internals and we do not recommend doing this unless you have no other option, e.g., if the submodel is defined in a different package which you do not control. +:::{.callout-note} +If you are using a submodel that is defined by another package, and the submodel does not include the latent variables in its return value, it will not be possible to access the latent variables. +This will be remedied with new syntax in Turing in the near future; keep an eye out! ::: -```{julia} -@model function outer_with_varinfo() - x ~ to_submodel(inner()) - # Access the value of x.a - a_value = __varinfo__[@varname(x.a)] - b ~ Normal(a_value) -end -rand(Xoshiro(468), outer_with_varinfo()) -``` - ## Example: linear models Here is a motivating example for the use of submodels. From 18a2fc48795f80f1b02a685fe6208e0c796fe311 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 20:09:03 +0000 Subject: [PATCH 25/26] fix --- usage/probability-interface/index.qmd | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/usage/probability-interface/index.qmd b/usage/probability-interface/index.qmd index 3a1703d29..d65feb3ac 100644 --- a/usage/probability-interface/index.qmd +++ b/usage/probability-interface/index.qmd @@ -97,20 +97,6 @@ We can then calculate the joint probability of a set of samples (here drawn from logjoint(model, sample) ``` -For models with many variables `rand(model)` can be prohibitively slow since it returns a `NamedTuple` of samples from the prior distribution of the unconditioned variables. -We recommend working with samples of type `DataStructures.OrderedDict` in this case (which Turing re-exports, so can be used directly): - -```{julia} -Random.seed!(124) -sample_dict = rand(OrderedDict, model) -``` - -`logjoint` can also be used on this sample: - -```{julia} -logjoint(model, sample_dict) -``` - The prior probability and the likelihood of a set of samples can be calculated with the functions `logprior` and `loglikelihood` respectively. The log joint probability is the sum of these two quantities: @@ -118,10 +104,6 @@ The log joint probability is the sum of these two quantities: logjoint(model, sample) ≈ loglikelihood(model, sample) + logprior(model, sample) ``` -```{julia} -logjoint(model, sample_dict) ≈ loglikelihood(model, sample_dict) + logprior(model, sample_dict) -``` - ## Example: Cross-validation To give an example of the probability interface in use, we can use it to estimate the performance of our model using cross-validation. @@ -133,7 +115,7 @@ For a more competent implementation, see [MLUtils.jl](https://juliaml.github.io/ ```{julia} # Calculate the train/validation splits across `nfolds` partitions, assume `length(dataset)` divides `nfolds` -function kfolds(dataset::Array{<:Real}, nfolds::Int) +function kfolds(dataset::AbstractArray{<:Real}, nfolds::Int) fold_size, remaining = divrem(length(dataset), nfolds) if remaining != 0 error("The number of folds must divide the number of data points.") @@ -179,4 +161,4 @@ end cross_val(dataset) ``` -[^1]: See [ParetoSmooth.jl](https://github.com/TuringLang/ParetoSmooth.jl) for a faster and more accurate implementation of cross-validation than the one provided here. \ No newline at end of file +[^1]: See [ParetoSmooth.jl](https://github.com/TuringLang/ParetoSmooth.jl) for a faster and more accurate implementation of cross-validation than the one provided here. From 6aa6b5226ae735fa905622899d6b6a3e8ad48c6b Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Sat, 7 Mar 2026 20:17:27 +0000 Subject: [PATCH 26/26] Clean up _quarto.yml --- _quarto.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/_quarto.yml b/_quarto.yml index cd8f64800..d9e4f38f7 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -115,15 +115,9 @@ website: - section: "DynamicPPL's Compiler" collapse-level: 1 contents: - - developers/compiler/model-manual/index.qmd - developers/compiler/minituring-compiler/index.qmd - developers/compiler/minituring-contexts/index.qmd - - section: "DynamicPPL Models" - collapse-level: 1 - contents: - - developers/models/varinfo-overview/index.qmd - - section: "DynamicPPL Contexts" collapse-level: 1 contents: @@ -134,7 +128,6 @@ website: contents: - developers/transforms/distributions/index.qmd - developers/transforms/bijectors/index.qmd - - developers/transforms/dynamicppl/index.qmd - section: "Inference in Detail" collapse-level: 1