From 4db388b20c467132a0eeb597ad9d047076a53b33 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Thu, 30 Mar 2017 20:28:56 +0200 Subject: [PATCH 01/40] Add IRIS example --- Sigma.Tests.Internals.WPF/Program.cs | 64 ++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 4 deletions(-) diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 55495b86..ae3679f8 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -11,13 +11,18 @@ using Sigma.Core.Layers.External; using Sigma.Core.Layers.Feedforward; using Sigma.Core.Monitors.WPF; +using Sigma.Core.Monitors.WPF.Model.UI.Resources; +using Sigma.Core.Monitors.WPF.Model.UI.StatusBar; using Sigma.Core.Monitors.WPF.Panels.Charts; using Sigma.Core.Monitors.WPF.Panels.Controls; +using Sigma.Core.Monitors.WPF.Panels.Logging; using Sigma.Core.Monitors.WPF.Utils; +using Sigma.Core.Monitors.WPF.View.CustomControls.StatusBar; using Sigma.Core.Training; using Sigma.Core.Training.Hooks.Reporters; using Sigma.Core.Training.Initialisers; using Sigma.Core.Training.Operators.Backends.NativeCpu; +using Sigma.Core.Training.Optimisers.Gradient; using Sigma.Core.Training.Optimisers.Gradient.Memory; using Sigma.Core.Utils; @@ -33,7 +38,7 @@ private static void Main() SigmaEnvironment sigma = SigmaEnvironment.Create("Sigma-MNIST"); // create a new mnist trainer - ITrainer trainer = CreateMnistTrainer(sigma); + ITrainer trainer = CreateIrisTrainer(sigma); // for the UI we have to activate more features if (UI) @@ -41,6 +46,11 @@ private static void Main() // create and attach a new UI framework WPFMonitor gui = sigma.AddMonitor(new WPFMonitor("MNIST")); + StatusBarLegendInfo iris = new StatusBarLegendInfo("IRIS", MaterialColour.Blue); + StatusBarLegendInfo general = new StatusBarLegendInfo("General", MaterialColour.Yellow); + gui.AddLegend(iris); + gui.AddLegend(general); + // create a tab gui.AddTabs("Overview"); @@ -50,16 +60,26 @@ private static void Main() // enable initialisation window.IsInitializing = true; + window.TabControl["Overview"].GridSize.Rows -= 1; + window.TabControl["Overview"].GridSize.Columns -= 1; + // add a panel that controls the learning process - window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer)); + window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); // create an accuracy cost that updates every iteration - var cost = new TrainerChartPanel, double>("Cost", trainer, "optimiser.cost_total", TimeStep.Every(1, TimeScale.Iteration)); + var cost = new TrainerChartPanel, double>("Cost", trainer, "optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch)); // improve the chart performance cost.Fast(); + //var accuracy = new AccuracyPanel("Accuracy", trainer, null, 1, 2, 3); + //accuracy.Fast(); + // add the newly created panel - window.TabControl["Overview"].AddCumulativePanel(cost); + window.TabControl["Overview"].AddCumulativePanel(cost, 1, 2, iris); + + //window.TabControl["Overview"].AddCumulativePanel(accuracy); + + window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); // finish initialisation window.IsInitializing = false; @@ -74,6 +94,42 @@ private static void Main() sigma.Run(); } + private static ITrainer CreateIrisTrainer(SigmaEnvironment sigma) + { + var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); + IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica"); + irisExtractor = irisExtractor.Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)); + irisExtractor = irisExtractor.Preprocess(new PerIndexNormalisingPreprocessor(0, 1, "inputs", 0, 4.3, 7.9, 1, 2.0, 4.4, 2, 1.0, 6.9, 3, 0.1, 2.5)); + + IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); + IDataset trainingDataset = dataset; + IDataset validationDataset = dataset; + + ITrainer trainer = sigma.CreateTrainer("test"); + + trainer.Network = new Network(); + trainer.Network.Architecture = InputLayer.Construct(4) + + FullyConnectedLayer.Construct(10) + + FullyConnectedLayer.Construct(20) + + FullyConnectedLayer.Construct(10) + + FullyConnectedLayer.Construct(3) + + OutputLayer.Construct(3) + + SquaredDifferenceCostLayer.Construct(); + trainer.TrainingDataIterator = new MinibatchIterator(4, trainingDataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(validationDataset)); + trainer.Optimiser = new GradientDescentOptimiser(learningRate: 0.002); + trainer.Operator = new CpuSinglethreadedOperator(); + + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.4)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01, mean: 0.05)); + + trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); + trainer.AddLocalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); + + return trainer; + } + /// /// Create a MNIST trainer (writing recognition) will be added to an environemnt. /// From 22e1fc7a3c0566c4e38899efb9e97dbcb68047c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Fri, 31 Mar 2017 21:18:20 +0200 Subject: [PATCH 02/40] Add ArrayPool Add ArrayPool --- .../Panels/Controls/DrawPanel.cs | 2 +- .../Backends/SigmaDiff/ArrayPool.cs | 72 +++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 Sigma.Core/MathAbstract/Backends/SigmaDiff/ArrayPool.cs diff --git a/Sigma.Core.Monitors.WPF/Panels/Controls/DrawPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Controls/DrawPanel.cs index c256afdc..ffa2cd40 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Controls/DrawPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Controls/DrawPanel.cs @@ -108,7 +108,7 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) }); DataProviderUtils.ProvideExternalInputData(provider, network, block); - network.Run(Operator.Handler, false); + network.Run(Operator.Handler, trainingPass: false); DataProviderUtils.ProvideExternalOutputData(provider, network, block); } } diff --git a/Sigma.Core/MathAbstract/Backends/SigmaDiff/ArrayPool.cs b/Sigma.Core/MathAbstract/Backends/SigmaDiff/ArrayPool.cs new file mode 100644 index 00000000..3c31a8f3 --- /dev/null +++ b/Sigma.Core/MathAbstract/Backends/SigmaDiff/ArrayPool.cs @@ -0,0 +1,72 @@ +/* +MIT License + +Copyright (c) 2016-2017 Florian Cäsar, Michael Plainer + +For full license see LICENSE in the root directory of this project. +*/ + +using System.Collections.Generic; +using Sigma.Core.Utils; + +namespace Sigma.Core.MathAbstract.Backends.SigmaDiff +{ + /// + /// An array pool for pooling arrays. + /// Duh. + /// + /// + public class ArrayPool + { + private readonly IDictionary> _availableArrays; + + /// + /// Create a new array pool. + /// + public ArrayPool() + { + _availableArrays = new Dictionary>(); + } + + /// + /// Allocate an array of a certain size from this array pool. + /// + /// The array size. + /// An array of the given size. + public T[] Allocate(int arraySize) + { + if (!_availableArrays.ContainsKey(arraySize)) + { + return new T[arraySize]; + } + + IList pooledArrays = _availableArrays[arraySize]; + int lastIndex = pooledArrays.Count - 1; + + T[] lastPooledArray = pooledArrays[lastIndex]; + + pooledArrays.RemoveAt(lastIndex); + + return lastPooledArray; + } + + /// + /// Free a specific array allocated with this + /// + /// + public void Free(T[] array) + { + // TODO what happens if the same array is freed multiple times? check list? but that's slower than checking a set... but a set doesn't have an item order... + _availableArrays.TryGetValue(array.Length, () => new List()).Add(array); + } + + /// + /// Free all pooled arrays. + /// + public void FreeAll() + { + _availableArrays.Clear(); + // now get to work GC + } + } +} From 32b76a345600cb60d58c567a2785c381ebb02d8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Fri, 31 Mar 2017 21:18:40 +0200 Subject: [PATCH 03/40] Update .csproj file (forgot) --- Sigma.Core/Sigma.Core.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index 704ebe09..086f90b4 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -195,6 +195,7 @@ + From 38bd3af2cdda0ba72fa529663ac90a2e55fdebf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Sun, 2 Apr 2017 21:43:47 +0200 Subject: [PATCH 04/40] Add tagged map operations in preparation for performance improvements Add tagged map operations in preparation for performance improvements --- Sigma.Core/Dependencies/DiffSharp.dll | Bin 2135552 -> 2148352 bytes .../SigmaDiff/DiffSharpBackendHandle.cs | 12 +-- .../DiffSharpFloat32BackendHandle.cs | 76 +++++++++++++++--- .../Backends/SigmaDiff/ADNDArray.cs | 3 +- 4 files changed, 73 insertions(+), 18 deletions(-) diff --git a/Sigma.Core/Dependencies/DiffSharp.dll b/Sigma.Core/Dependencies/DiffSharp.dll index ee9e31cf91ff3b82afb1e25c9b17abe1d46de484..dfba877ac661e86a14586085d77761ba997da755 100644 GIT binary patch literal 2148352 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

F^jS9WtnNwt=+ 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

MIU4`>b5P8Fg* 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

WO& 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�e%Q!&0j@VJ z0xZ#u610$LcEFOLQ4%5_8YPuRNw}lRPZ>0a8a2961AR@Y>WvQW3b9Z1z@!r=Dn?Kj0qWIWR=H+jWMn&KOagQJ}X;!oNkOm9}>+DI4)$2lYryG#yA(?bF!5W4j2ccg+#Lh9vm_bmVgI`je}i) z&&yVB(2WMPkZ5+mhM>_PTe+dqXmGXi2HDEvbz?lXGSTdS;|q=PvX#eI8RK28{DN%d z2>}E5kp@u&gf`C5$`eAy1X<+?mBs{@g)hohJ~Ut)ihxA310EVO4wZn1RvL%80RJLe z`7qr$41Gv6JK$j<<1h($Sfz283-GV9l_v%a-1r(qvja{H8I){_8kNRG7vM{>l@HgA z!_h*b*#Qp^8i&hPKD@#>9KLy}CcKwrD^JpmN!ZFnvja{lG$zSbo)k7Fx#I8@*~*Op zqYz*l7}PYxK9(L$ox0Vjuy$r5mK*qH1B{JU)BDY`KQ zEhL&9a7xgaB3pS%r7^`7Hvf>VJXJTQVk;BP4mh>Ym?~R&YLzk7)t6tBtvoGYOv5S@ zML=ld46QsZWK5G)o>pc|EANQIO|q4z2aM?mNHja(^pG)K0!}Y8rn>-Nm#y5a8_noL zqS*nPLq@X%Y%VjJU4U=MRz5ml9E}zd%?@~U$T(U89$jV}?E-vLw(<yt zXut!isHe;*HD;7``0y>+$}@FiCblxs?0_>1jhV8QXO?xGX+Y*50L|8o*=QkA zTKu-rKHEJf!{Q58UdHU8F&l2Uso~{cMw}4l>&AREiD+ho`Gtmfo|4!FzHLA*AZVVT z8z-O*L^C6t5HwD3+3=1*n`om|H(C*aXl8`gpwa3=c-MerLeM-@H_k)^qL~rS3>s&; z5dLk@F5Ea*H_k-_qL~rS4I1aV5H^n|6IKR{l?XsIGr-D1Lq08oR=)o+XghC2bRzH(7?-^H-4UTR&h(I(mf)g?v7sC4nZRw3`bmJOCAetHBnvfyCr%$!` zz@S~Xag%P`ga|}4Bis}+ZgSc1p+Q?b<4)bU6A_4JMz}L%-04F2$hemLaKCQcj|fCF zBitV{?sp+N&p*l zV*{E%G&8`4kg>sK!Y2l8Pa((9cm?}5(aZ?16dJF%j!-@|{zx`#(v3}Um%|{M8DY~P zW0ULjV4HCxA-t^{Z=(%FGb6lRXuR#R;j<|O@V;)mk8U8E8Q}epf!{b*L)_<01n`M& ze1df#ni=4eLB=PpI&7ar0AJ|F7jOV#5X}tmMX~XPOi{$6j~$H!@TG2ii2y`11AJL* zeCY!CVj=;2r5j%r0|3#?0AH0DUqOPm^1+wW3E*qp_!@(eC{8?d^5C5-Kn>@LuY<^iSI*9skphc&|C^jJvhxamsXie z<$@kz_li?-b6Kvr3}K1N%5@D1L5eub3e9D5I7OU&3#n?Yxn?UIB%4HK)w+fO6IIoI zT0pvIia6qCvai-dHH6dRU*mkaI zBN);D8q6**;R#YH%YMTHY5?K6CP&W_MKJuzY(5M;^cxsmS_t(s??bJi$&2B74PFm6 zx!fp#wb2|C5)pxYL#}xPT1ylQz+2bweL}JC7jEpRdPmboeM?CH&wlgI7=1*AzE7Oq zqb~m6?dd(5(Zhs0-k^R@u6YmKju$iqgIksiCiFBRNf4AC%{3o|Sy0gbR=HOL={~KS zPs1w0B#L)tq(`yNXg>VlZy7Ps-X^5*f%r4J`3zQ@C_c2uttM3Q&ddlDDKwwy=x$L> z+}kmq)6M7L-j1N4PhJ=Icfc|7A3(tW*e#zcHJ>Z%u%nMefp2SUL=>VueZ#x40}(cs znj2jReN9N-12%js;#F7$2?~LaZQl(FtN_ec2br(Rl@PXHKNC{sfc>s+zKi}KN&_2y zNe9Cees|#;@F&{zZlMWpc_cTzTV=l6F}g+jn`;SpXOX$H93+WC+Q;Xqv=4C1a7Zue zjWIjCm+?9H5c>xax`ba%P&RZV9ERmT_!5ywHIz4e%$*hH&PwPb*J2@6CcN~GZjYEd zhnYJ^!1eXWA7$>WqZ>Zv&e7)1gF4#b024CNKw@u^xfjhO3TAG1nF-k?K3}!V)a__v zEt*=3hGO~ynp&I9)V&qvUS;auDs!(gb?-29uQGM-D08ngb?<0%uglZ{CfxRmw6h*X ztOs;8L6!gTMp?bOQHD0b5({k-H_BY@Q#Z<34|pYeh435e5oYl6De@cZF_iVdTTI|L z)?*~=0k@bA#>;xv1CmcvKgu;B-woIUir9d#qTsh3F27Op_6IX)rW}rqyhF^HX$|da za}0-$|CBV{J41fQMTWrWPitK^po$HEO2OR31`K8J5+sTdHeduB05|{e78)B+#|Dgs z>p$Z47&ZVl{CEqE4Vb_Nz!m{-p|JstY`{@)4Y$zPfaz?&EVzbSXly_W8*nUK!!0y6 zU;!I&e1~%mG$92L*v&<(8J$BEob!dtIjNxP?4U1Hl{vS#I=<`Jw}IjFggH7f@-k73QqLCq6bvvN>#BWqR;YM#!Tm4ljF zShI3a^8(iFa**GAk{lE-VsV&>8Bx5=3U$E>K&*({tXMaB_t$%gw^@-Z|I)oDy66Pb z1@SP8SBV&j*D!dNrHGOEa26j4*BB%5S{AQ|YmAZjK`ai_4#i0P5Eefit}#a9N3i%* zxW*WXPh)Xd8BvVHXS4V*aE&n%pU>ipJ7OfyY$q4A7qND90a1vNFI_Q`>Oho$0WRrf zd@0%&D()UBsRQB854frW$&ct2xMQx=Ixezzp!P7s+vnJU+G|+5a!&hj)~=k>Ud!P2 zxo}SVL9AUlr~MGtuAI|;1Z!8$X`ja0m2=u>vv%d2_W7*c<(zzTJvnDj5!-{#Aqvj< z%Ih4eGv3gG(d8?wCB=krj&uQzg!G?q4sns8q{%0!)^U;DIeWrvk95wS8V0YT6p^!M zINPI~v!|BrQO?%KD5p0ig&Yo#(k8;kQ*=&z;&Yt;fkIOl_xDgN; z7l@35m7k!ZeW6lfJ*j3(T>Ze14HJK4Tqq)Mj7G+VBY0ypvQf;e(SW!U5NQlV@CK5g z*%2E<5qSeC(io254W!85B;r7EDK1E={|z5zf$O7E;7TW`-j(5%E=t zSYX_NArV;=h%7=xq6)G5S}!V$ED|T}kwsOJMX*4L{9Pgj4OpH6(kX$+DTqi^A_mLH3y+DkDE&pZT{$tQ3e= z58dhkh=OLd(drSjdI&_TN2S#R5jRW3u;_)BU$^|w3kA(;qvbEO{Gu0H{wm9lz3@L0 zu}UHq>sB!$63uR7aiLW#5sRy=VnlpTB37F)W&l!+Zq>jBQ&2IncC*FoNi&UAGsvoe zQwun%vTACq8kibku(WFGts2-sMBbP1H70a-;5X=2!w^Lke3uiMgl{Od8p;HG!$_-P zlz?v-XEhuQ@E=I{p(6IJX#opwmkTO9T;2VsWK9cM@^-m3Eo@DLxKcZwVIoki=>ZFG zmkXL5aC*p+x67^RVQabzaJU%dtY+Q9+vS302W$>m@^-n^9JZQWfFs0^WE~x_@OHVN z*#VCZS@L$db#&M|+66dL#{CT4!rSE*(d>XTf|k5pZq2B)X2_cYc-k;Z2I)-Q!rSE* z(d>XT3oUuO+?rWs$u~gZnLxBww({(NH5;o;6ak@)Gqm#TkTqM39@gwiYqrb6I@!uC z0jmW8iDn0E30W-?u%*&!aRJuLR-U6iGaMz@Z^RwkMq z@R&mD7&#Oj6Sj_V#o<`l%JT!(e5^821gwV>s%}>p*8Gq)Usid3*qZMG94A|OLBLvo zfJCzcE(lo*B;bOuwZH{vXvJFtVL)c(d>YW zLe?S)xF~EbasiH)t$dtr9fuYY%?@~6&^k`G@^O{cajvjAM7Hu`-CB&TOf);-;zDb& zY~{sO)?%1&)Brm{w(jbPaQ3QlG&d|yygsc-}l}{+MPAKmHJXE&wi2>_G1SFar z@WhaHq69p#%sSBpc$jSElXUAO^dZsgfG35llO*6tW!6b9z=^VzmjtXOXd%(;fJ;Kw z5(&7Z%v$0CJY2T&Qr%jL781=4xHM=jm94zA)LL5B;loL?m6z!j-lVdKW(QnWXu&Ni zn)jELTgzPcEshWgPFAaKVQP?|v_o&By9MqY7i?Z(=W4YEEtMLC!%L$`aI((StuxUi zqL~rSEVRya9pN7-5}d4abqiC21kH?aZqQPxL1;shNN}<)(XC4mfoNugOM=!VG8Y69 zCW{0ot4+7s5P@iBgtnm7=0cbv5}d4l&9Mj}i$^)=j#FsX>BfMz|?tsnj5J!!(iLWZkA)w;=-2%m}xItlMNV2qH`u2~O5M zx^)jC5Y3EmPsqB*h0rV#oUDg*>mfuSni=7tkoAxY;b@WIWUbe&^@u<;Gs60i1slQC z;5S1gI9VHX3v+`6&5W=iWU1UB^utV%;AFj`TdyDj(aZ?1gsfLwHp~(UPSz&f+Jx~y zG&91cptZ>rP_rq)$$DG2-bNFMW(IgWWU1$jVI^8bf|K>WZoQ9vn`mZ)_Y1A}T_HI~ zBsf{0=oTgi37Q$4W{97Pt)JiybmSumajbD4LPUG( z(cWN%pcx^ey^Er~(TXh+V!m+?LFDSuT!@G$(aaFJ!Duc-MC4-$vA~3#KByMx(E_xB zC{7?Sr*}WAM+=Ig1%qe;i565x3u*vyt3+IA{+kfPdNd5TPNPKCl+^XP-53-b5)GHq zgc1$cM8ohXKeg~!G==a+=+O}nwNav2$u3rwqP3zULeUYfj&ocS0UV@94}y@363q;7 z(4go+uDh^{;a&DNfyNdzGr%Fm(L(_oJf|_2@*jfoNugiN(>0E*nlV9wHkW^=KnD zEYZvejYFc1@VpA;h9$@q~N$NQ{cbe33wMQ2q;XSvqdCkwpUdK44FqeKN>hSSyP>|hj< z!f^o>on0Aq?{HfMUW*=WK|G>}m+@>h+7gVmNW7NHsC$EZ$_%RS96gHr+bGfO^_>%p z&XIU?Dx>cG?WqE9t{$C>cto?;cWy8`SK`gBjJmhCrwP1ydK7oJQKH%FJ1-cOyW8lz z%BXx9G95XbZcyS)biN*)k8w^EBgEI;0ya9oI65Ck=1=4Z_B+u8OZ4axG>K^DIA0Qs zE^*DXXBZEV(@)l;C!-BSGuv=-ar9)g;ZteDnZhkA^ymt-foNtMRs^FfTsAC+d%mD} zmL5F|2R)()(EX@+)}ZKFu0d~wv6>Lh&yAjsLk>|uz$Bht!k0d^8%X6=s-FIPk(e1x z=0=l{94V-L5QUfn@JSCU0|=kd0{}85 zy(Kq#3zkhZtM=zo`y7#&8NDkvdKcur37S=VyVO2cBxXj}42Z5l%ZZY9txU`m^-fRB zjIPO#uEC7R9TMm~k(e1>n;Tt=W)PKTh{VjU9QcLQK3^neMxPuIeG<(eO4=$hvl}y> z%#S{aW_&4uE)a>C(Pwj`&*ET3RG1+$Bq$KNFa-kvoAN@DoEd#3H;O6of+7G6X|<4? z=?(^r0e5m{^p(OWB*)`Pb@Y|$=qs?wP_P$?QrsBE}o0qMSx8+`-2DAE5`_foi#3_9=RM&CiV5|z3l zIWvPxFT0F%-_MP{4^LT$68&#=FTb30x8_E-qAt<@R(ItUq`MVuqer ziKN>N&O*2E(4#v7Ili_wye^3D2zI#f4{eNacjrcTBQ8<0sXI*Bl)Lrl?m!356-x-_ zM}PE3j0mE#Y9e70O~e1YO_;=h01FW&)-yNO6IxYJs%0;CVyOGNn@H)E<6D6M!C22B zIlkZHWm&A}upHl6csU~0b4-r!Y`h#7>v?!bH4JIMfw{2*(Ey@k064i*v0@|_4)5qX za2KX6ih9A=fzWrbumg)@2Ud#04y=kDNH2dCz0)+eQf))Iu@D?^#fS>0xiSmWi*WS; z)&7%BHXfl^p#Du99#EbPs zvErgwF+MX9azA6m#j#?1=o|E*Sn-fpv0N!)Ls|w5hQJ=8$A(}TL?Kp1y*eczgSh+$ zP!O;%V#bCP#fFFtPHf1C*pQJO4HPwDjs}UbdTcD@`3Z_Q#-Q4m+}S-eG!0f@YdORC?;mYYzXYhdTcU0cSF#QVyd$iGr24_xm*-8d01@n za9Pac@v+I1I*N&#Fl_?-tfJVgaz!DP=WACgPbwDq|oUSn+5sMsu#WEq<^IyOrt zSz@auOqi!ZVqsBiA(~4R%-!iS*C*0eJ51e)Hp+x7uo;&yXsSqE&0y-nir7MB>cXnn zLS^d0VX=kE)PYrOtno|6o84#iek$!PKaWPlQIl*LTgp}9NGmrp=g&# zhjZDbazbOv%42X=D}1*s99vc`eYb3AY#FpK`EJ?B*s@y635_kQk1dlqq3AougvA9I zvb-p^9MT>I1>fy*`7YJe{lOF*+66;3`YthTr!~AQ2C#Y^|0!uo+(LfGMTS7>FM@V? zRctv_5WDvBp|RyKa8k@H9}!y)_mnASme<9W%k;y^V`Ju7pEwSY?{V}$DL2UW)9eskEV(3^?6kCHmlPEZ9cXy7$ z{6FC$>>0a7wd*?f4ssIawt-ibljKKS3CSG5&KKF8v?d%|BhuVrYieR^;9fpCY0dE1 znvrmg9cxW(Y>iBFi>)~*wgyIQa?+YZVryiYTWrk{u{BeHk4{=MEw%<$C*-6xvtw&y znp^wp}@Cdu?pHa?} zh}d@Jr0vsU+m(~H&yH{w%z5VE6uOaN%88Ucr|o6LBUDix|~GA6?QjFc$85z zyqEE~$?XuMi>wRrW2 zc(v?m@#?yGwd`u~>M`+Z+129J6XMmftHrAuhPl&HpPFmdQWW2UP9h3U`k`wlQN1CHT}9FlDw3p=q$|?K zBI06bDd~;?N^!D|Me!|F@h#FxTZYEBC?{05n&J@#OuTz z{6vGEz(+O-njNtrlxUEM4ONK-M1)>Lh}Vm}KdSWpm5=BHDrn*O5 z97-&fwO$-fEQVx~$Tt%4Mv>{9I4zJk4H1cEuk~q#iPL1QPpeLxhPD1yBHko27ZT^{ z3A`sSXm-SNg9*4VPi=i}IB~8_c)|6<%_4Ilu~JX0g#Egp*#TD;Cg2es1h}#~vC?%U z^e5@XxSoikg+v7)tP{Fzmv|@}ufJ70HmMz@^UK>hW zD*>+!C$4o>`4)rD7817x61QT1A)4L7TSJLkCE%@9iCbM3-YNm_3ncDCK%&_#yf2iv zPXgW-PTc3R@c-l(u`ZBUhk!)0TevQiSSJD3RVCKBEWAwuz7R;ffPh4^TlhjK@qz?= zA)I)@W#R2|%y})4cntxGX1DOQP~tTS_*zxsHJ62}CE(^jVlx5~&2Hi5P-3$L+#F79 zc3F6b>?zyy#5N2YqS-Cn7EElDJ!M-svCRc|rv&^)Pke)bM6+A?O)&9|1pKBl@r}G? zg+3?0WmF6Z>6V?`{ET_tovb04Qiy3+=vzc3%N#_pP$~ zx*Fvk5jOU~fISczMNna3S4Tr~uCfP)?17?D?15GGKo{V>qLuA}fL(xqM6&}HgzN$d zSWsmbxB%}HgM%H^?I1LYpxFU~Av-7mgH?9W1-M4^WjhqG@hDEv?0}(=9g={dDm&x? zykCTkU8viIXd%(;fQ3Q3P=t+L7`6*tarl62YgA-hrnR#w@SF2HrNmBYFn zMjsN*4j2yEVF?(nvcoRGCuA#E1?(!ckZ5+ms*qhJ0jsL)Di`3BvX!fKyBaMdnjNq@ zXjjWtt`6JPu10B>tz4tq_`q75Xm-GwLc2z`a!s{e64jkpX)oT1YfI;K-0YQd&5&%pU0id{(ydDBT`~781=4I4Wq5lC3BTNa}Q(Opt5!u1^4Bf_W-Uyl*VMfq~Z{4J9_^Zecw&&?K z=Di4-8DU<~hMboa!b{`v%)>r0V4sKpL^A`NSZJT!&w@-nacYzxWe3~0>-Ozv0@2I>w}))_ zMsLc5*F|=)eXnlci+!7DW`uhS?R#Az`G&|2wjb8*haqc8(98%A53(PYSxXp_ZyGmJ zw|GLgpFkUkW=43T(0;;Y!&?SD9mIZ4x1WO)LqRhmJXc~rhc9>kPM#e6(|D4Mcv-h! zhWsy^C_;2`m?MYDmy7L}O90|~3GpwZogg;p_9m_Xfew2vs8t~p3;P24w9dK7v(Cmmi%IzI+=Mxck)Y&`Wl@O7=67k>S zd$9IC-QI^WL$qg3FR&5+b$RyFOW3(@kiAcQ6V~20)ZPb&v6!G@?;CCJJ4h6^Z-Tw= zP$+DlENrv+E1K{0)17|styn=j3hQ#IBMNi+l{x*&DI3P=H`3_`r@dI1({GH^Z!8t& z^qb)H!@_=&h5d&?@&t&K=uQcw%L=M|)$PjJDH-CFlnTU>kxt1dK>S%EzQ>@20BMx& zj6y`B83WT9HN+X^N~?I^c$yH#>CQOtwnG#Vy0AyYr891jGY)!amSVco`3}oeP4_1rqOqO6LOC zp~IImsJ<8K&V`6aG<$t73_2G|ybHt5g)aNV!)=|5bmt<(BbvRw7X_V*B;G|~=OP#0 z*TTMwb?0KlBbvRw7YCh-CEmrA&c&|!?i4xY&SkoD8OAwLj1ZAi4k3`f?Qt$Eb}qyD z9HtApnXpSVK}2^VXcE!PaUKae5!dQ$x5z1X61tN>8;EAMAyMok(1zcn4c`d2T%$Yq zeL{z5W*e>vI@h>t_*SHZJ2&JyH{ggt6c9R6!ZV}_ekWd;<$e1hOcS0rANGcs&-EN& z7;{8oun!%LLnwZgph4)d~@)7%Eq2qy?PY&D9efTLL?}|xT2S_M_hMZ$`7Ix z?~4mlc2i<0e9HK$FKIUp7kj!ztd(|mAd=m+KI6x(?EbMkyRnoXMJe8Q4yNp00p7%I z`hR2h3P9Z3En<_jy91HzZt@v>yRv(4cXmT5{b%O1t<8zFAKClJ1AH@tpdShS6M6H{ zm*IuBZ9n*W0&|x9*$1_u9}Ot{z{j5OM|i??qM@o`ww894eaii?q)= zU{*ebavkf>`om{!Rv(CLsFAM@q}c(H_SpkwQ+~5z4FFbfHqAT0>Vs0bz$(L=$qQTS~%3 zig~eO!i8d*woI#=^Ofk^#5<~$ukUDj$uHRXk`JZdxojF zrkl$Ym$|tS#f`YRmf~7&t_mb0>gIZFfY)esVFPl#HXzq)19H7KAlGXHa?@=99&pqB zAh_u^2yVI!f}3uG;HKLkxal^~Yo z5uidsjX(xm2+mas1ug_fjXefj2#y+G3^Bfd#j3aCg^;;c;lPF9T&Fm2Avo774qOoD zP{{x)B-FTIz=h!aQR%>i;M}MGLG{87O^jl%Ijp=ZW$&Q2IPw zexB~?#WN&thKpz3BAMnb^d%7*`tcW``0%9>a&m&{)3q{a0XF`0Igz*I7`MPgE|#M{ zobS;p_&pphae_802ACCM@mtRV433`63eBv*Ne(AzID(={+N{hqE9v#;iU~8TSs5}b zhqz}9J9H8YGRkOOdDy2Xcck^G{k zk35eoXb;G=g}0QaSSxYLgydWK^70P86opw$Y12dp+ORIaLaq&Nk!u6sLZX{o8{Cp3 z)&_zp*9IU-YXix=Sb*jja3QU%mumx1r?mlO0ScUYXdNg)&>Mozfd9oRYon4ETD=tQ?h_cR?jOW>k8>L7`x1SB+tA@ zFx7W`%zM=z?(O`CHZfY>lG7GZws!uin0dd_gbPtLBKYdW65|$JYDkNEnGYygxJWS{ zR7|)~%m&GmYoB`aAteMCWQbh-fD>u;BcH;b#)YTqn-42ZxPb2%p=rQ9y_gc@>CyH3z~0VT;_$f%;2%=}j}gF6E`U@{H6)P} z$WI8;DM6S(YR$(L$m3!`hT`2m?%iCcq}TOFn}2o{NjAHmvE9q~nJS%bJ*01AGBVXk z<+#g_m^0e-bl1h#nop|YpA<_` zGXMYkXNjBbs+@MJ=6+W-Qy#`I>|iVPGWLrqLa>RiSx7&khhfElT;*Z;5k1_^1G~-j zs_6Ap^snBc2~j={`&TR)7^-MlKw9GxR|pAdN;^ljjtgJCVaTG@0-Wk07kw~N$pyIJ zG9@b);K;2r?oix2WM9KVjXM?h&JJ#^akt{$-NCJw3uP$Ha&yJv47hT!-kl9lCAlmI zS!o%0M=r~OE4K#N0QDZOkoEcjWz)GrRxHZ_H{~6aP3H<(OVv14HOPF zIJC(@4lJ5*HJBqdIlvh&89-@_!o7`+8YMKXb+ zZhe#d43s{LjnyqVw6TJ}H_E>QrN0|$afTOEx}nxncp*5jBonO#7lQMs;=qN#c|>vG zf;iJ9LvGQaY+t>H2P0V;kH)qcQde%}NY}#y$uu768fv|Y7iftuRf4kq0c9&(kVFbc zN*pBxfQs6!RvK^t9J*`KL*5wh9Rz#79E-L=op+IQfQLW7fdKyC*>dW9c}|XT7wjU% z%>f^7HW3=PVt#STj62C_d_WZ5U4k3GS{7oEND+-|(YV@4!t)qtCmBuTMiT{c$3{%p z^hFbe(L|YK(%ueslF>wEG%-v97BYNtNkWSz)J`%5Xy-<42}pax6sTPowdwvA*sFGu zQM)E;g9L5`JMAQ+_UNb$c?tLjvAx7chuDWl?a9)FA_ljxqqY{cJMARzk~>MdKLq15 zgdegX@bQ+>Xy8Z|?IdaWm;>y>4!#ssJ4w){og`@Eof1oKCGV13Nh+sSZYA%MTS>u` zTS<_-2pdQ;FBS&Kt)x^JVw2lG{y?i@=@->yqi=C}NUB;a)-* zVAFP|TcwF6TnHP*7Oz3_~o;sfG(98G@>VcjiLYMHX z34lIVK%XO!nd1VIyH@pph+d}HYKe6rpy8N>Aob>U1+raiI+aSd&y+BCD2*MsH!;;? zIUqSn4OV!6fJ}xl5l1iayO&8jZ!Eo2ZCn+DEfW1%{Kj1kex&V5=L@L4Y9#XuGNXs9 z_9-`_8J!-fVD=E8kgwo&D4Br!Bj73%ChpQOqjev+Ri;X;H$r}S`jVlJ^N0Fu2l?Q6gUCM-AWI~^=O(4{cFN&Le zlozB4vY@mWATGK^Nq1B}#qq(L5u^!f$BvGxmAeO+3``ot$h)<2UkqHiFBY-7%GrgMd?sccC33}w@~Le^V1luhRfS#OO|Hk~VE(=DsTNyB4<;Cg+AvR>~XH{CLU zkZyzErrQAeUDzPF={5*%x($MxZiC>a+aS2{;$4drKfpVpifD6I7N^#&qa9}$wP~bvvU^^~2a3MHiUk(=2 zz8uRI`*PsWz8pDXUk)7Fmm^2)%Yj4ta^Q%4`CVdPjuK*D4idC4N6sHr*>EAszEN@D zLU5i?9JmmiClv=SkW+88D-K*Brw+H{qE>JrIO32NN?)%=Hyj_IQgTnZxbk!k*6f>L z>FQ1?H-DA#=CAI*KwTK@0I5UI^s@ z5I%$pfdj__f&&-C5xeuda^yJy*y5}8@L;4& zf?9P>0G250A5gZ!1={LM;V6mKN&+rG!gVeH(&AhI4+ngm&jscJ3xE2;z8HTxoeRv( zF(Ys;Ad>HVczgi4qT4|#m6PQ>kncPI8Hcp1RvB5&1I5k*6|}2vV#N%zksr{U2Xa9Q zED*YIpx``M;5;a@sGC>`D?yItJeUt+or-uU-x04tP`YrS;5=09Jfw;k%rIs8ACk@UZ4Qj74;^@=L>O8K>tz_`vGv{&5dE8U(x&mjNM|WMRBcF}Y#KJ5Ly6ZG& zok#bHeCG*|%}*3NPbizKSQY3#p*c@@Y<{x9dD2tvlcmm+%I0cT4Z2Ti&Xb;U+Y6j_ zk8XRZ)2?)DSPkg5YfigIcYVNF4{s)bc9T(xk+y!YvtDFTH?g5?C~`Dsy+6Hup9(oo zsa%OvM|i5-c}g6aHL+oA80bEwIZp-Bb)OD7PkVHqE_a?*y2IIU(0y8So<`kHq5F*A zc}6^kwuy~kBS7pK&3Wd4bg^giooA^zd`)a58wq01YRpPc}}5?VxvIpIn8;_ zgZ8}Nd0vUtvRV*(UUQ!Jh;8sY8z36vd zRAQsqXb^i*b6)g_{Uy)&i%58BVh6En@8+bzw@f{+ac@_5PMZ~UiJ9x?|IJO71{(g z0mS~UIe+({{UhJ`hYF-a*`Xlz56$_9Cy-vtb6!(uhq1#z>^04K&4acn-`S+lCbEej zwn=j~sR2PH6FIMkoYz$cQHey(>*dbts)HQP4hP-WHRpBJxl+1s6gzLwm;;?UrTa#e z^M-gDZWEitCV}o7n)60T1__Db4E1K7gWn{CF4x44U`HTFbKX?7NQu1_aNeSE1H>9x zBZ$4FId9<*fn7Bv_Rj+6pENXq*pci=5c{X*{1Zo^PGbKGIR8>;O{@vT{-rtpQUea5 zL0Yx*cD^HCY6C@pKIK9?Zx=gnlcS)B$!s!;Y0lfKb?D?A>-A2a^Nw=+6gCApn)43U z3zNds$-DDzzVj}9r_^1Y*rqa#-@STX3g2`@#lYn&VR)BmzvmgHXX$NqdEW4p%(D9 zh>j)7dqL+tm2RFIncpjO-lHrwC5g3oZ@BZ`X!rOJN#o9YW1aWtz5%$jnKdIvbKb*J zV4g_jyEz{OoDbC8L2ZO{#|ML*57gXoG&>qOn)89DA|HmF4^^wpU^77ML(Tcn6UiUx z&PS>_QWg2A#QCUFdVVIG3A!I?&PNA=ah-x{OVHV(d^L;B0^&*r0;=4@A%q};wE z=Ygk$BqNtuQcZ?94$L_fv3$n>zV+ySTj6}GbeFItp!==ne5-U*?fYH8`A+pd0z_YZ zH`w`3*}Rl3MULitr)*B?ejjqaSFw@O{l47!UX{CyEd$-}HRpRzxj%%QA3VB0lsi8t z-ILkLp!77CS$BV)Dl-=SLNjr?68% z_eah7(G!zIYR+Dd?mpew=ZWWiCC)w-&!@4|KzEDWRKdG2Zwb9Q(=Vy=Z&t=ZfO80l{ccA;T=KQR5Q=`x? zy7P;&IpybHN}OMm&1bMPK=&8T`9;~B(%m0)_N#JJy8Fu<`H;LOb|yO$boXn{eowi- z2Ay9$y1$k=zbc!Tv*n=stLFTwbW`>HE#Um7;yG3BZ-brR)NHbXtpMHMH0QVUc;-1F zo|7I|Jg1!JsJQw)gO^tD9F6Cs#})U5xX+{OE9X9?dlrKiPjH{ceIDH&1-ysaW-6O` zk5b-4Z8OhiXM=7JjrUO7OjTdrvxxUBlgo^hZqG{I6O#5}K5k;?uya7Sr^b60q>Yoj zR}t^!(d|{qdnw&>*}0(GOXIyfy1jMYTg8SNpLy>R-dn}SdF(vU?XB_NDmGF!YeBB5 z_D$((Wn5G3dpFvw=1bH8iZl5yVN9kU`E&$y=8tIVI(*1BUPe)cAY}y99I((D(s)>Fqn9kPlGvLP~c) z1s|Zs*h|@^pgTb00|ut+<`(i?k8W-S&sDmYvCBX=SL3-#H|47X2l4}z%_(0UID{Xl zY`&ab4!Q?w{6J-MO4nb={i@uQuD^o&Rk^g-D_H&pU3mnZsH1d1&HNqJYVf5$P(Cea6OOfO012wAxGo7M=YT807V*fK!X_| z7SMPAgQ`=Z1M~Pmg=R7n#0F}7pa-oWj~6I0#u$hdXuQB97R=*8B^F^35DRKN=n)I$ z@sJX;m<3`XjfXs9h55WtZR?^8-k-w@HD0K8VJU|cVpTpxRg_zB35G&DmiAQX3K8J@+3NeQ{ zAU0UzgFRwH@;N+8QiyTJL2QV|hj_$F^Ef;pQivs462wY1Uh45%Sw1gQXjif;L99&U zWgfJ0otLW!xr$u{V&xhy_e4lVK8I&Mib7YhRUlTO@d^)GrOqoA+STl85UbR9r9^|9 zE|AuPyLyb^aFB;-&<7V^!>&P&#=|)7^n_tittoj`0k2YH7Q`%_2=J;hUPWUiND>n^ zy1c5ISE&wmExQ&u8n42MsuN&!0k8G|R+sT=4`6jQhZio0I$y`G1HfvHSF4#XWnoPL zuTg-hk)o!I%V#h)vFq9Opj)Hy8jtSKB0jVni*U~bL&JP1ebpO0a|62pbcbqusG9jw zo-C*iGyv5F4TK5y5n^k%PE=f?^Z9ncWOxBQ-t}#h|vSBL+T7=cCkIm}=iq zC0st)sEPfF{RwnOX?zrh5jJJ27PUcMt7?(btu5oVswpYhFg9wddF?3Klz(P_Mvlg7 zJyok4#OtUz!1K4TTR^N%<8{hrDgwP%KZw_>a;XT|tMK|VUa!1&E4vjr8m~v)PBxD& z;iHv#DVs-E^U)M(s&;7e=#hN%7-{qWvHwGk#zz+dAn2tI;P^ph{2*2CZR|D>J4oXP zm4F!fIc4*hGCoF?n~Ksg)qIR{%kAuT&>f@kF{q10P^4j39b3%Dk}kMqHCv4wjgL*= zTJUi?ALnVxaV2~l&4r+Q2fG7w$7y_=8edXH99+N;CYOTPo$O8!J6PifV}I#X*@k=$ zuMcl5y@S!1osH)e!>|PK%RO5%LC3UKZ!vg#;PZ5U=;fJXr?qm0X?qM1~ z%u~d~5TB@uSi{zU*hGy_#3DMi&fy_`xDvac-49}iYy5DJC6fYtlE;!sL--_R$ph>G z(4D05Noqrqs>Kl@egqYvq5>UtL5~} zA~{vx$vU5`HgBm8K6x;otTu0tvPVI8vc@N4Bx6TQ=}rmqDQW|j(w$Pyr>G6sTDBH+ zr)YeNT4bkmrv~{{kM7iRK2_;H#vTLRsT!ZEbW?-jQ6YYm(oJ>nqssYFO80U0IOraw z@uQTlQo7TM`Lqgj3sfYfJFSXOQwIv`*gDXirtxXYS1H};#eBL)cX}0{u5_PZPk`=p zjZas)srojDc(bQ{n=5#;YTqZ>lc3wI@n&UnO84kuezd23kFMrNg9Np2J8K8sqcwiC zr`#FEe1=DNMm3+Ibl0=>pgTk3@L<@q_MI8vGd=xi<`6zp^`ocQQ=mIj<1;<|XjX{N z^3-=$1)rtr`!stRbZ2RNmZ!e6LwvSJcXkDzt#qGZ&w%c1jl-j9(rj)i;4NyxA_rps zZ7Jg|DmI>F&mu?TEuJOHoFYD_T*gL9cTSkkQSJL2dk%ExXnc-ZW{?<8lyi&tT#xSD zFrTY*pJ&gbn8xRNbm!@Oo~IAa8_eY!rJL9WwgGhKX?&ii4;~Zb$Ed!L>VwCW^J7$f zUtlkQ?lBraM)jkV&Bq4$u^!!H%lWZN_eJ(1=pL)_W0fuyf%ToQ^Z9B9O!;bl37@aV zjlZzJpqR$zE1Ofg3xa%sr;Qer@dc{fzp}rA?gEW3@RYkS$QOEa7nbpbO7|u966h|} z_(G+ds_!D5FY@?#(O|wv+59ql8FUwEe356?J}$_QBVWNh`wDvn#E#SWaaaV-P*gQs zKP(RN#cFcj$TlKJ;h!`5XHi=pL`}<2{y~5acH)OI~HKg4hWf zKfz9wF4Ooj z6;UbOlY{(ZPb8mQ&QDfR@dkSXbWhg!$)0jsgS^$F+gi?BmF}DDP0(%Cc&pM)dG8dR zpW^Y}DJA?AW%FC?Ezmth=N*`zPq0s_|1j<(?Mgr+IWw zE90jr-G8xvf$nJ zbpONt1G+0TzCs;uQGGG&f1k&HuNLs{vG|_k*&07vb;%UkIeGjXh4vx)5X8>W_&FZ5bMyGQO6(){5s00u@pC<5 z=jCzvl=CLGg>3<`^E7^*N9_DOe!fEcn0*Xl=WG0YkJttI`~vDMP=&2*D~Mg7@e9=X70h+U}h3q4{N<@1Y_*r)7M5W7g@7kR`k&gT~^v2AP{h+VAli#=kO zCOJ!pT>`5#n-e9689u|H`151t6QBA;KO z(7s|{f!Gxqzrusort>z1_BHz&#M(68=0P)p+)!itPPP-o42>H&=D@Vr`4r3ya+CT$ zH2*HP3q(zgn^Lr6lg|cmMhhtr+s$@^7}GeDXD)v8O1kzyWE=iA?~Z;+#LcwDJS zAfbT5rHU2gmKxx}Dsir6m2-;*X&A|fiRTbj4Y#OgtKlsVnWMNhR=WRN_APQWZYjG{ zVH+L9qqI2yyT4=Kfml@IQFSOnMW8XUK|H2L?vydHG9FWlbQ-tNm{>KBsS}Iu+4soN zcnkr1fqALg#ml((TCb`I4$1KmJPs1H%SqKPKAOj=B1#==7jNM4NwRi7upf}4ad;P< zSl6U#mnh>2HMi_xdq6Cqad@t)IPyu=&MxD&sz|DKb~U%vkq-f4?d*}=+ckOo z8a3qn#(o2_Yczh1XUMrWpI<8n3CJMN0kLZ}eywMaxNac7P8J&R!GG=iI*nh4g~F*- zqzC-h&ac<__5G29@d*k0W<-7=y9ra=J6PDYfi=2=MPJCKudQ`_Ase;n+t(nPBOdML zW;OXBa^+KBWzszL0XUd+J(6u6*n&S@Ce6>wiS)t>-`t1a+|LKO^*wy2fK7vZk>2V- zsz+d5P8Cco=S0lcZ}c7M%jw90K6Pm!4w*PYfoSb9eulR!&^oJiz+pp{c zjN#FJk$ySo$y@yVmY||N#ZU@wJBWY~z`_4I{xQUFf#$T}3$(u9!^3fZiX1@7xB2;P zs7w^TA1Tyb%60h1LVg=GvejEE{~XCBAx;M%Cf4;B1w7)q=@vgG}dd@A{2KgU;faH8ohL<@=b#K#i$K=mH7_0R?^_r(JKVo*Z8ID)?j2Nc!-3DqM4 zZ=wL1jefpyprQZ;9_VG3c(#l8`Ep*$#j>n9Pirf5r8Z^3{Jo!lKL~`0c2&yvCH#9>f>?v3VqRoCDgNl^KVrRzcBS}Z5&seE1$~rC%#TbU z#h?8ACoGXDD!Qi$95H?>;h4>4l}JTBau_M@_w)UQ@OPqJDefP{_v5e${g_G&L=H#A zWR5?X1D+JL3saLh1<4%rE`IoYQ=*$0-aR+&T!MkW(de}A$+%#BH+-68caO!miF z2M3;H|C(ffoOQ}2QYbQ&kaGRWT(pTO%xX*NX;_`ZKbad!=3<2^q;g?o8Y$=blX);G zCW#7VoVNsu#E{cQGB23SlY?wBuPT`b%SNkG;uS@j2`}JJ24D(I5~UHlYpg(VGEf3F zgSbcrs*(Z3g3*ecJt#7Ru!8<%5V~fPD0(_=+)4%qCWF{DtE6J_Fw!gXCyPozk0{vy z9!aZ9(U4?ODU?4F<%TAU(6KP+QTZh_G9*j<$rAKCQ32BvpD-tpO2!y_12Y#);oSpZ@PiBJW?V$q#45!iIyu^(9F2XQ zC{{!)gw+aEwFO2L)@gJoIT}|682h7(lB011!1fzmk{pfWC(L-hvtX$f7R&79SbuUX z!V`tS@GP?tbZlXAEH1O*U0bAF6`@r{vcaEhz{VkpQKhU=QPnUg*?@yDbP7_ej+{iT zGr^ynfN@L|Ha23&P|pZbkpT|De^#B;u8Axq?TP;6MARmlLE8rtUUFh6IT0p9^ufeo z$%$|_V!<3t)(nlDOn8m{B)&i^NtAqm!=SQ4I<_&CY{Z^5S}G5VoI=Wz{mID)PPD6@ zHMt-;8G9B?;8g1H$Z4c_ls|bCDiZCcXB}0LJWBPfqe_!Ul>yEei8Eq3!8H4m%?Lvj z%XhEr#^4_clFe8?tOKb0k!OJjZqZ)QPqChCoodZWY^DcRyrwxG9&!Y-me zhFVK$65fG)~YD+NLg0li_ERrpS$rhaXus608CtGlYM*~~J z$rd;wvtVgL_ScFHQ*xm{xe#XyqWAzS*E6hS+o_Jea8Pn#u`Fg`NfPhAS@0+5yW**ncHY?3+9h_FsZR54aP2AogE}NXgM+Ta;Yd zH@Or;k|-A8-WFj~EzM8DO{E+Q)UZ1pEw(G^6&k%bzrg;cX8yxeUT{P=ZY0a3(x#X$y{7HPr zXp$&aBfZz3SC~8xhYMJtQ8mVj-CgoRfAT`C22tEZ;qDHe3g>DqwBf>n-9!mBPVC2$m-~~KQK)LbCK=F|M`wlWiE{L=iE)Pql@TZ8#WAl6no1OUO0MpJeD7qFpJn!X!i2z*3S5 z93T0Ac>4~(s;c|{_mY?7g%$P&BZ7z`0wV5#L=+`}EEftPd4Xt1ViFLn;|<(KXOd?zumbif2}I zoXLuE4XSwN;Epp{ahk5Ur;2oRoKw+p4rwY^R`fFCoBnGLl^*w6cbfEgenrRm z6eGE^qB%e!>Cf-qaXtq~({;tY)ikT)!itUySy8S*6))`HaUm;WtSUY3qo!FM7guy# zObwGOE1J_R_IUA-j*F>b2kDCYs%cioWfdKlu}8TE^>|tTj?361#ZAvg3NH zxLj35#~#eog{P@$R>w^h9XDapqpm@{+%&x7CfX_tkENFb)ikT)){2f>iI-f1D&9Jz z<5uEzn65ZoO|v@IS9Gjrk8)*2ue7Wm-m#uNVh}AoR;g)L$6Xa2chS?!HK^iULp$!G zr?1u(57OiC2P!%qAn)WF1nL9*J02kKX6uSG)}1Hv`EW(Y!_;uO2334`V8_GQS$)PF zUGZQ&(tNC<<1rFPuB>Pc`>a99V?#O~BXKaK790=JL(L~DI-Veoat*5Z#L$i>^iY#S zsF~|75J;b_=y;MtO}PfudvavQld=RW{b2;SFt+YOjxC=l>v*Pn98pw!dqZNe=|`;q zZ4bIq=f5)!cMl%Nm&9U=kj+0190%f$1II=9i}yI|&~+CHXd5azHqfldwWKK9gRIyv zqGQ9z*t#ToElOm2B(goTKTGlS zO*Rbf*gzA88A-ea^gB$Cpq{Vjc%G%@3h&m7jXXc1MD-bu>}3GhD;~#AEwl+I zSHnDOq!#aHSF?J2en7|b)YAF7$64zx6|%fu(eXOfK(6Sqf<3;zUB~MhSu|ULb4GT&c#Sl%4g z@g`xB{@)zg@g`*PjD@=Y+3T*9{@N|L+X%cxQy-Kd|qEV`AAqInsxJ z=pDcKXLPNqkO5SscLsH+69N>nbJkrYoxNAl@g9e6az$r-+1Y!Q9q(ZXNnu0deR2G( z)mdLYOJ{v?V|1pfSe?B$tm8eklp~a#yY6b~?EQ+4_o)MNMQ8ok+500p-q$*S#{1zk zTdT8ve3s7o;l}7pRk1pIe{csr%`DSZ%JSjsu940@sOb2BoyirQ^=D@vjOh5l>8w9K zxMFqIAD#7=&idoV=uB0yI{RR7#|K7d^VVG}oqbf%@evJ=T+!J8efpx-ngIq@1JDtp zm-scfs8Y#AZ0N%e{%II=OBMhhjp*R<0B2w>FSMP%?s|dX(`3h|G}3aV>=zk+ z13NyYk;Y_RDlS-eBP(9;Rq}$bp!4dAie_EPEhYgMd^O;LuQ(1wI~RPl%>`doq8&`` zrJaTAZe}~3cO*OSKs)Lh+)n2m13K@}?R4I;P3IkK=P1<Ty_jO4>Gy7T@4o%a*%J$XN<^L~z3k3pj+LR^nXza}s} zR?+zw$tPF9G^l@f)R=48-9bk0g8&Vq(fBnWRjC@LK?2#JU~nGm-}xA490cdFft`<0 zDi&*Sj!eHN;5=E;`6NjsSAa9v4bET#oWTGD(|Z0I;HXp$&R_v&a42~ze468w<1|=Dr{5Q_p0DV99;Uiet^jMO8?2!QSVIBUPyuVG0hUVD zU=7uRG!!L+VS0XG=kuIC5vJz{cRo)ajxdgp>X`If0@F(soiCAdas^Do+?*R`^gawQ z4HKA#8IY<}2_6XBhN)jSM6?o^v39;Rpz|d%k7EAPpw5>pioG#vp8v{Gv(39%UHwJgU!N>*) z_{PxAH#knN(I6h1{#ZbKyQ1@L5>T!HafBPh5r)$k0T4$Bh$D;HLgQA>#Adu+Go);!EdeBRW6humF)zVNy*7bVQlYD>^@?Fv}JAY-fv&;Io~9&vuFI zc7hMKDrH9xcDbL?20o*K57&6`Yv7|&1s^mt8n|r7KiuZU=ko!bpIf5;`Jm3vX+OxH z&xdq=PWw@>@mZF^>JZYusObEH_Cv0~XN*mE!Dozt&zMAZjNpTiWp;bJobYFR1M=;G z3D=D9YhbBT1s^oDJ#ZPrKMLLU_?H){F9vpgVVUVK26uj;W2v2A4DI}a76(yhVN&h7 z2L-7wD>}a%2BhQ)q{d>X+WF)p} zUyifK@H-fo?SNvK_s|TC#T_riiZ?spUSsBf;IwAht1m}%emPPL;g{n(zr;4SGgfGv z>ef9hIDJ>q`5k6aopJ?E zV%=xRb;9)K)>JIHvaPncwXtDYY?w|yd{uLMO?yLgQ`>}tR@XGHs%dX-jh*+vC0}RH za~dg{R#i5mvAL#w*U8ED=Gm)OE=#q>YsywNozT>LQd9TlmL&(RX=!YzZD=pAZm4Z- zZfmY@FI62R*l$_As$AUA)E-|GD{X6UZD?9<1JiT<+P3!8$_ew4*qADrThrQ>veTsK zwz|Z@jm^ty8XHa)h$kpO=C`kHOtlTvC1%cOZe3Z^KDV`bbwgdMwNxedbXDwOR;=*U z=stZ_WBaPs)Xb*(=E}fsjRO6br`ngyY+7B@+ECNft}{vm+Y;b9bqarXoy^}!Q_GtG z_UaVwOWKyLZBLc1k|J{1b+TM0O-{)wE7b@TPoDORAM@Y)i5lYsD8VsNZXGUESjPHp;}}me%Iu zQ?>1Fiw)UWJYfR=)umR~HLPCT)>>;7Hp{fMHmuy4UAIlBZ)@0PVN=_xmX_w$_EcRZ zQzukH4$v_8SXni`QgeNLWpisKP@PbAU`_1_siwNp>CH{`4a+O^qk398si%HEq^7B^ zF;&_mV%B@6PPI7N?ch|qPC97%UW*sDrCNbUWAoyw=Gs*&Q%%6?;D+`?RxMjRzhU{x znhCZh2u{wE>J?}dH!nNBhmsGK){ji}^jfZ;mrfe6sG)6@ErY1h-dfYvUdcLuf+`YN zpwEnkHL1F}&7i|UEo}{r%}v9ND!$BQWApM!6BpGqCKk3gG*(zox`%R2*`<@psuqFX z&8^)*l|yRUR!ncMOLd>#+}KDiK&ku8Jm^G1+rD;s^U9W*)>LbveMLhXRJWmhTI+Jt zIP74n?gWG76K2&kEnfv8n+w)AP=4En5%7akO{vy~T5s#4wZ<4AOz?qFDz(}Y%bJ@T zlU1{;rnR=#tSwv6T2q^v(^6KYw6lc0%q^AQDtTBSztc+EkTFf}XUP4Gaux!uR;4H$ zFaRgjwAS% zb@lPqqN*81RrAV0rsk&UHEpS)nwFxP_M)1GqS}_?)>M57{+3Qks(MSR;>$|v>X+2j z$nUaJxnEY&x}#C;8=BCQ_6{*U$nw6=_MwDorKtnvOt`1ykZt8{m`Ky*e zI7JYcRSm<|(9*b;_f-w68`@B;cy9AaCDYn#nkL8B7SC#4UV^_#6N{n7#jwW3)0^9h z7t}QMMva9{HLYuBrR9wV}lF zrV-5d=m*OI)Txf}U-;HvuiRBQK{RWa%rw5R5587p5yeWZbp*Okqwm##|Y!@t9CrB2jRzi3I-qWJ#t=HjYFGw?T0Q~`#Ov!(s-(l zH}-b&szrIaISCcctt*S5o*?C<`9<;LsU20#?UqLHaoWlj>#>K*rH<64%AipcmL9l5 zp_I8Toi%AT#u>?3lX;ncVyU_*hR~KyYiWUx>pm|9U)z#e&|FoWs7}>1C86LLB-Ez5 z&xdx@!9rD~R@?UtC#TBU6dg+{38A0aRF_(lgyhRj8C3+S<(6+r^`Pv}Xsl@$L5ARx zlBIL%dFeH$UK>&2UC%l7%B0GZFsd4iiZ@udi{dMU^hgzAGnWOH3(auLhk8vw$w^t| z$RdkD$XOJxHFBzroa%De_olX%=C)L_s-b3ib5l)YiJ1J7`OS^1Q@!MO{@Rr*Q!vT3 zn%dB})`m6RL3*o>LDxlP7NPJ<&>%){17$+#KbdRy9F8ZYWh^0R~FlwVUL9 zA25&C8LiDL)zD|K&Yicasl8!kikT{-k1wT{E_xtbDTJ)A-&^;ci4jUeQ(Hsrj8#o) zP|#yx)3W9@+Jn#EGB(3CGAyZST|RkYvd-djYGq6N+OmeWgLq9eVC<2oZ%s9psUcol z`TW$0ig}4zjHRl#3`DS1v|-(69)xZ%B3_26MJ=39dr50e1B52Erl}8xKr&`LXiaTO zOuj{WUq+9ET3ef2m6dNBKC`K16|6^F`+=$1%}vTHu1=}kVwle|{MD?5|G;ovMj#FC zsn!8jqqA2vHrhQ7*BlJY1R>E*abv2fge^=iS~;m`<>aE(lZsYPE?O|DXu;%CdQ+GT^)jd_# z0+rfBkD1VVs=d2@n7gWNg?-=J+>)$Xq;1ABH8JU}+^FNbW^9hy>nQ_-aNtati*WMc zw7qmvIW<8%m2kJAlss+#ODB=orHzw$Nvg~I6BCliANZRZaWZ8sttmR2QV_Ma21?c3 zSXTn~(w-`5qrdJZzcSkHY4P&Fnzn|v-mWK%I7>MpP{yyCX0Y1Dy6Q554(^rI;W}2& zmKM}3U!H0e?>#%Urai&D;x#a>YnDtZZfmNO!jsFGJbCQc9xXNPKo7D9)hVi*T&mJh zcyf9Bs+Pu79W*Vf6lHI_9)xAuJmrQg& zPErApsZ%W3uWDWe3sY8?s->V>b{X?SN;_s6D&I=4QpI*IWCm@|pPfnO)G5|LK!)S! z1q#{L?o27CPH_gzdcNtNL{6Qef-*}dZ4uWtbqd71q`IbMPD}YrW2#xx-jCBY&un_I z8obDCS!V$Sgan+7sZ(4Tef>3@B)hDWwCiMzwUab;icT6}w55~grD~m2yC6~r29}-d zB%6gN%gopzJcn@*d0|nTgo+M^HE*k}X-v(=NlL&I{2q#70` zs8FRG9W0$(!h7}GR03%0Rwwv7dvold2Hh9~#TQxwAWo?IS^+D2q|(+6)6%N7O*Jby z5`>|jtRK2zVrZqyOw~%qRMEP{tkk;2+|;^-U(mPRId`@1F@?46Ig_>SQQW@gyw*zR z^wz!yVEVp?cH+Qb*U84i)G2-DK>rc0ImveT))2#&F>rRXj3iPR^-B;yIai~(NmH$d z`3E8_*bP%`3jmp9>xW)?u5IPXlv_VgWM;vpE?801)Lli4BrY^q4+pJ0n->^x1A{ii zf0|q3i%K~?U$t_}$%7b($a~^^)rDMiWV^sWN>dzH4&1ep)@Yc=_^4_?v7MT;0>Cy?SiX^3_EvR+~Vr?$%h- z(pXa~@L?voWKlP3*0ZF#+|F}6)YziqkGH+t0{d=kcg(BQgl9>0((-L3wX0ei$M$mE z=yW_Mm0tUgW_>ma*KXC*OTTh@$-NjGO1p%kjviurzhstkjS zR=Dg#!*Y-^yUt6y81TGN6F zG7vxf@fS3D-fYAI{eV3?UtuNu?@r|BxC5Z>k!QuAC641z(GUp%WBCTH;i zOive2n0?TK8Lfz=p48lW!uUn7cnARQyL!rm-6l+)Fs-dEwQ^bG+G${B!?IQFviwor zCZ=#@b6sD}C&slb6AUwZutW}8X=#V)5=N43U`tgy<&DkDF|&f;Cb@jp!gwfem|KP) zMoJT{44X0)GrBVTHLP56@f>?A(!COLcHcH-Vhn@yvQD34m1d z3h>N}NKhSQ)~g;e>vb2vURP0_pyVrT>RW;H+oH@mW`C<7`Idk&Q}u(3&ep9UL7L5u zM?I1_yK{B|>f?DzaWS7J=~Q-#)a=xFF-yslZY?`rwZ?09Dv-?1R@_qJojsgSGqUrF z5(BbFWRJ`q#UjT6tZCUb{LP$+)~01o&7O8xyr?))QVOZ**1bp1UKPFj^zAor@Q@KB zx2fEA)ada$Pn3BVWEIC^B}K(0@mKE1OVp&jPGAOY;D6v~mV)vlL9z{Kh`p0}g^$bq#6`WiVoZLG&xsNxws5f};79vF; zyaE7`iIrgck|}U;yDauBDS<0a;7*?Sg{6|B5^zq}p;%EKD5>FUSG6|hhlqc#QON?yx zScIQM$!Inx8h{oC>>7{vi?i!N@!eumiy&d8JMTVq@YJDJ$Nh`r1B&8!38NHXm4)P$ zp_L-l%APU27z|*5i~5bnD&l=9z5@Ub<+ccie8v005~-V#c+!BgIFVGz3YC3G3~FM$ zIDlM(;(NySRlSi$eJRN7jjw9pM>VmZ-9#d!3A`YyDu*?3fZarirwMd{ZHotjqDArH z@lr6UuexF1@v8ViJgNY%K@7sPmBdq?kkl872zv~WOAo=%Kt~doRyGqq9_jEj2qaa@ z=o{h+ZAuiy4h7c9`}bdRdY^Z?fe{I`6^k7PqcAJfC{!~ixE^4LV}mmx2Dld38j;yN z0Bm3}dLID%xIGpB<|>r&9)XQAl2{i>4$4WQJj9K1c_7NJ27$6_nJ8ob=l=(k71)CE z+_<1T#DntT3T3>bV55vAqKqU50H(O837{Fs=jgK)^B@J>k#--H%r z*ZAx9mbxqRYhr`v)}u`$-yDsKjS$m3mUBcw0la)MB!;X$CjB@H)%=ls7LVgtuXqfvyCjDy zbXIuK;jVI`Gb{k&6$0_lSaNs(#4BW2JXGknB39yta~Ob=VF*r2gb0;m7;^UDv(L6h z1BvpYIOfn8G7jVL)TIq*sIMT*cewzWtD$b*hPp{Z-QrME_%8n9g(i{IE(Dj2Lwj4g zLB_kO8buUXNV+J!N7@w&?3Q_>{u3QVSY;uS3L zGDtng=26cPvE&Y+>Nz&XhDU}rJT6beBV)-O*MQD}dOyz4`)wTBQ-y>LFoHXv=N+Lq zJLRzh=wtj^H!mGKuv09#GXV&+1IV0kGBN}005W&++kr}fQ+TN0#4X^&>v6H2HHDz} zyU;F-G6lqK7jVE7ipOCF;xU}toSc})E&#nr0T?K|Ffo>#9Dsqc3ljw(Wf$_mJ;|-! z-M#AFUDUgKh@IHpCJ1Z=8RrmWq`ToB-iCWf!#xbUF&T`CC3nT?5aPQXN0I=SrksKw zV;G&>Essz@qNj#Bhuvby-2+VRalrBjfYJt;BU zhD*$zD9$QV@wW#gX0JTBLt^$0RfxS}$$bLEN#TyneFMZv;l3AeFXy0jYMe(#6OK5i zY~pX_f~iT#5Bv{lC^v<}PNN)Vq$(GMOHh|}iZF24FA~xAanx)-5^XyW&1F?7hDHKr z_ju{iCf+`{-y44<;{FA9O#L=G-k%-k(QnK`QCxMjFFHD);Ep_EaX=ShaR54T#DdB* zEx#!_Fo5^UluU~yrw8y}nG$4Hol1r|D(Mr2=^_J)tr$^+iUP~gqg3H)2?QQ>f{2sI z1sz$J#_K>3$Qb1G^xBx7Vqk zhX&YDB~ORsx1(LMekRcHxR>5u4)qoe^$ubEn1cOQA8*5bq~SgW>kkF%56f?nXN6ki z!(z$m0IgIO8JV*Kv{G4QWX{Q_l?VjIc+3_5$t6T9t#Z^#o^IvRN=b0EGC8+k5vS3t zcC7VWiukB-7l-4qP&|(47NPEX>=GaYeZ8zg1P^l@1a1Q7IEBkVKX1eRq~U&U8PKLk zX=Q&@@n~g#Ln~v+!}DksT=={InNXT_cq}I6DntlaF2qY0q>}S2 z!=$F11H4p2^cn0J5W;bO|yA)C2M$Z_9(EWkdr5C8+Sx?_h7k zgQelY2FN_~w=16)AoN4LEf0~Fall(3$b}32P;bLSrC~(;ZJ!6>vi!>o)4wovE6(Xf zoae<(M^w!U6o`Byn2=5fC1!#Wvq6cupu}|niFW7x7-QgqXVC&qQ;eDBLWUTOsc&*o z`V5wE22tcU!jN&C&`0CJXo%e|NN6hr&aZLiRyfKHr$~{&^zP_hlfyyX0qF=2NJn}> zIw};TBW;kJhC^XG0x;o>D?dy&WH%fN)3JaF4ENK?mOBTgr5>1Syf7^bg{j7Y$!<6lrlo*sSrAON z*gG)QdSI&a!juYysm_7PZa5UCTEK);UVL=Y+5v!Ut*a+UhL$ZSNQM?BSM&%`x_TR; zu9c3FZiLkYAnDzsbS6X%9*B1d>(_6Qo8DNGrV{;VX-1 zD!?)|Iv{nea!mkfWe`YOGfa@0Js`DsLBcl}gF$L`KJRrC`wz*z#x-8Bc5FA^)q%+iz`;qcnnADxCd9FU^2K; zcN|<<%eY0c?&h*?Y%R4ybt>bt^tE0buCsBF-7P13aEQlF_BL^Sz<4r!Lr~(4{K|j^ zz`E+8ZajSxYA_EIDwS5H*79XX3eOwEzbdts?@p4ne0P$p<-3z)Egwk(tyTIewU#fX zFa=P}%UV8??6v%=So&sCM2hj~DS_e`dxyzD6t#hq#eAu4C#7$-YddMT1*F|>rzNdk z((6eQv`1CeJ*V$bX?iabk0}#~(szcW-(`VX6d!|ztsF+md3Y9Kcn^-a>rqOI1En-2|YZq4V4SquH+)O_!$b&iuNyw zSEiqJ)dB}fP9qxzIs6CKF;L&o`ED5eNi0HqK`As!dZmDmya}^e|978-Aliy543gu zISh0f^#Nr%ttcyH&ay~^<-7Db5UW@^1J>HS2#_;wyeva4(tQpLjUIV$gHQ+bQxJJL+rEsSOh*hGlEj0A=|8rkWP zlA@U<@iFN~90k@j6Hwyx1^6{3D}A9><1wRc)0*zAQ))cKNV`a@vF^;sxj0yj(-&Am z3U2xI_>#POjJnD6rFj(j61H8LenA|Q!Y?s~%ACFs1R0(fBWiLf1^u$T+AKX?o=2T8 zLlaj7X~G7j3CzDTNE0?Fb!Prm)C7Z=gtJowaEQQpg~H}VB*oHKi8@~->a2;a)L9-> z2^716ntVBbt|XRM=T&FH@|qwlv_4;rCaw*_Vx!V$=3mzZ7S|{&UJ`x2&aG72dzET? zQL63vF%YG;b7SeBa`2PnKWn@Mf_R?o!at*q%dT4LxW1u|U#E4PMgon#oWET3&Ff=B zHm`GN)b-|de*A$1`#vc{_WtU*A7Cj9ZVy1Eo6!YKpUYkVfG+CF2ESr z)y9QXvkcMC)hoP7kDC1&=$kI2~DdS>H zwbD0f6T)mfxPR z@!Rv*liQHLK1dU_Jz@SGL7KQh*%Rj9Nli59M>ua3VUl=!dc7bZ+eFiMim2Tr=0uZM znG<=SIk}TYWIcaw=g%EP@~-^mgh<{UgoHLHcOn0tAS5;_bHe-|cY(y+f&_M90Hzmj57eo20m4XsP;Wlfz!^CY>D{OPoQL)HQ=LP!jCzmg z{in<|W&-I)^#)XL`eS+rswbT@hxEOanJ}yHcz&yJFJ$tGJXYaxtZt)=`|@@1Wd1Jh zLl;kRZ9Qaq@}z3po}TP17U+J5LDXCkAUe7y2+mW~)}Q1zN$mD%?g25#Zq8VKg8XL) zmM>491pHnC{)|OOnxGA0q#hC@CFNBO ztr@C>)WOfwto@^~*6pm;Aw;L}fCYE0pJS;X(bJmU8<>qy0yc=t1k-_P@th2r;% zJX-g2F%vHCcWRvbZ)v0xE#^s<@%JXl~e6NT+1Tj+k*(3tKx#4 zX-VN&2!GsToqi_*MTLuRnnv^;P}Gg&`yQ^o!i5Zjsx~%jMmK%e!r+$bGs= zA~)3w%v1peZ_wCVDDja!3jt*(c1InLo!H&56QI{`^IHiHdVUuqf7(j?7WuyqlE010 zPyN<6s1YgpeZlg^lA(i|KSX8r?@UMZ2a8t9zU<+p?;b+mJvNisf3TVTNCf+`rx%z# z1(-cO%uc31i$DU=F&7CwbCX~%Z?AhvuX}AK2|lw)5M@HMw-=bb1(>}}68xSf_WvS~ zz_0TE=O)2E-d^{SUiaBd68xV{f+${QUoSBG3NZVcB!E8Y88$abn2s<+vDlU^D~TVFe$9!!Ije2m(tk|2qax|gz45m{8S%FRjHuY3 z>zw$Tv2v9DLdV}UtVWH$==hsI=dU{cW*}wM`!Xc{_P3Du+u!rV-~MPhWQ_iOOMd^* zt|NHqKK)0i=2v;*Z~ssO$j|e2@z4BSe2y;uMeh_6fBPrf_N*!%AThWRal%@7vG;Qnkoks+>- z&>so-*9u>??)VK1TP*z-l(#j3HS`0+B;Tkyxcd+9{!6sK%|9L>+TR7CrN;x`BL9Cu zXl+#E0p@=n6|L_ST52Kkd$+xw<~5Pi#6(Wp3Ja0nYa7lXZoY*`RWABMA%}T;*J}NkbLeY;B+qmrwak6n?B}$5JNEThxF?(V%UY@IiV?oy;81CX30!E zzxKd3WQxK=jF~v{i-RVoN_!+f5i~hf+Jk(VqvW$KnUccAFjGwZkk%^GqFtF1A@mpF z+JzGFm{iO_qhpx_v@27ZpDfU>Oj)>5$&?~L8KixhEX*$t(mqX=QtxOSPysa1iqReL z5SNhmI-QbXqw!3)hy=~xq%N9gMbK_S(7%G9E^kefWhB5YXS%rwo8)7eP2%o_Ljf0s zsxBzH3lw>bW~RHUWA#~1w)QBz&j3;C(WNN$V4svhOO&XNnVwym>P)X7VNs?!(-Tcp z1PRMVG1ZdaJ74HPi9|)g!o!kO%S>NqhoF!G679Wx61Bx0U z#wxFgs}d7ewdH*TdR80Kh)W(Hq02@05eJ3%2%IZd=w=n6PBb4e!%M&!Lcke@kH}O| z5&9O+wg5%w+odA(^(unJXcg`_7;t*R9S4)i>huC^u89w!d;CE;F|;Me7i9W{`L+H& zzorfm;~rM_sL#vfcGZnk1CDt!1B3jQ*0}-59~9)bw9XAEz;6wXKx3@a+I~x^#$bzL zD(G>Dm$QcmXAjv5sxi1g)llW4tH#U_)tDJUHAtOU`fm}2PltL5c&HHYP*XJqQ8k8i z?fQr2as4#-!-A~2cKysB9%Rk6>u3Imyw-dWb!&Jb*4!>B)_jD|noEjl%|{k4vdWqd zGe-s^g(>-b@<@V?tx~ZJ#=ArU$Zk`3pBcZJY~xmw!@OKROt^g5R!|dsdtA0OcjZA; zx#(&#D@09ZMNkt`Cz_g6dkI)A1g!R`iFVt{n$JcZk2RldSaa~WGR$yq>oeS=x*jZT z7o=X=aF0T7ql45-8}3oQk+mqv=z`UWB|}HnV-n%H)r6%kmsAE9M9*=4=I7 z9#fz!t8&q0d2Wa-&y66gHc}_rAa;S5fD43x3rw~ljGD}hEu3uuo@1<=Z414< zE|gyJ*5sDnD4!WyAlp>A=xkdQ!Zy6_S@7J0)QRRfj_?u?uaaVu-4Q0+U~ARTK2vE9 z?X5(-WW%5ph6eDgO!O>X9Iz!95aLG$EFO3|JaP+mXswp~Qk{H@l?^tI$hJE9mMa~u z9sZz&wb>t$7Imu&spX=e1t9z6+sqD#W10IxGvhofAekMV6%g}1fy_>I&I*XJ*F7`d zKK@p~fC}n)Rc2?s0;1tHawg~%5CeQ8cbDK5kj%v36_CuN@D-5E4)mlUJCHMz^`Ihn z1q5}InO(zIKr)kMwwD=~uZt=9yBLQqcH_7ucm*WGPZe3OK4f+jCnutz)(&us{kxf6 zIcVOErf+KANeUoMW_HgrNtufLJ%UD2dXmEYJ%dJ38vrF>VE$gTzJ`3jUS#;~B_*5~ zr$wv@Aie!!XsN=Oy_?9RJAiS^!j$A*HnoO5byhnDTu zdTh8ing}@R6fpr6NaLrWtm7y1qq2|NcO2z4eRw|}rtheb*CH~LY%;mR{)$ZF+-)E2 zZTo0x`)Jdw?h8f$xBb#@sIb3rq)P%!%IxnOWgn1Vey9-B@`U{lK>mS2;S()C%%2_< zKGE`XKmiI>6+ylZq=<-msx#U%eB(Qo8J|bKs#rzpP2=5k%GW{psY0!qkw>czLjJ*d zw2JwMdT#*X;+s2(i|Cw&O z9?ZuXHiZw30E8F~6Np0vhJyuR8OSLqPLQZj6Il()8KM1Syk_he zF=NMU2@|>4+xB8hAp!eZnR(+n&s?X0ab+qaWf~>aokMohgFvx0a|2V%(t6hL_@E}8&YL{>v z=Vjn=!ocIggkxd^|GC85_7Z7(i76ZlDIANsHvUKCG5(9t#F2T7Kl6{uWBi$abl$k{ zLQ?LiLR8u=DJp$5s<>D2B*jtbWagL%Hd4&;k%n*J`HcC;a>o$zBl&ZL!l96XR*;}9 z^)hp*Fmvga5R@8k+cna5jYm*ikg!edG2(~+pu^%pB8wKo=Awz~jmHAk=GS_UEyteg|xlG zgdC#8PJpw^=F0LH`bfq$EV+NcAx4uzcWiX<1&VInWc=o81v*zjU9LCmpI;thAgYI z;x2&3NUsfh^E*>#zxgd78+B5yH^05P^>*9^_!+g9+i@3n`U*Sl;z}3qvV<}l7I$gT z)-NRPvIN%c_&jl!1~uSVs+|poqnw{Rr&483kPd>sKbBdF<{N2Tje}zOm7pbJ7c(a) z$nBTDkLQNdOpTZ$3Ji`}RWE(x-1iv1h>RZ$j*^*`s?WghlS!XV93~hXXP@c|Wto+z z-%OCa*$O0PxA@KdD0TF|)IO1}+7J)IyiA)=$c=&-@=BO-l141kY%z#Yl@rBR*P%SO zmy2AmhJH{bqz-qw*{cILZQ@(`t1QItxz!+X0M8hQkz0a-agBy zBTxHV2UwlpHCHEyxjJF<-U~o4YPC0(Sz!~~4&FG#Uh4LRjb30H1(-(DcD93^Ai`>` zD#2%;ftAV3NqHhNtC7DZXl$<|GR$8aG`8OW^#z|-cd2S8N8r*LijJr)Ed#~sWD&et zEqDwdi>NvW4WI;yNyU?R2OUage$NN2>R;?sqeDbUj8v8c#K0)sK9yJ>nVA8}lwrfxa{6kQbQ2@(PqiG!@io2ArN5U^5A(b~4h+B{OGh(;mDR zQB3J0nbJg=LVT>JqJ9yOVfQ`1R9+~e6{IT4)#0?W3>~p#mku%;Y`bBiphDl zm|%rS7LhR4^p9pd4)#PZFeeHyCz@h%F2&^ht~^OcxF zN@%-kGZ}rk&FK0FW@WV(nAHNzY7e86nJXfYK=jK+f-Br4ILX`VNz&^{n@NHzY!XD7 zx~%a6vqpefW0K%9TGlHgkif6*SGq~C*4yh^>2>X9lHf|41W}yJ$zEVi7GO>`NdSG4 z$qeI1eA(F!Hyv*|u`Lm9ivP$HYVvgUqb=B(wNL47#?(#;h^a}ej2~+ro;Zd5;@OI+ z>ByPq)pbc#g;Z(Txx{MDjTKWnHT{l1rgl{VlLjMVlDXQum+2ZEQzKBP8WF8)>r_ll zU^LRNvtw%B*x2=UOilP|)VaZqso4k_xi{*VnxJK*-=t$|-t?PwOwE%nj{Pdy$-obK zXKqpBm?a)(0owv+aTU~2&Q}c%c-^7~idS26Nr|V)8!_M_=Cn96Dq|h88WOR?am1P1 z>5f9SG2N!xwqt6iN=)qW2hG_OTG zO)TPRn`xf!v(59(Ho^7S-z50eZeMY_7Z`jx2)nLMH_h|CYW{zJzR^Fm<^hJ*3=3m~ zZ0|?*gPfjuvz2Hu`yv1A%nI4wUx3a%9Dzj-Qg&<&rsO>=l6Re!JTXm{i4HJ!ll+7pD?A?#y(eAFiKlM$d0gW`hX$u14blkCaq^Kr8E zsR(`gMd_(7Md>Lw#$W{l9M&6=+Lm0jg&roz9YKW~l8sW$1(F z(lqqX2Uv1Fmwpb}F9cX}J(qs2089R21R6b0e6=N4&h|wMV-;vi=X}h`DdyxhQ&?WK zg@wn{>oK{1faCGE>2*GM)+u<_nZoh{h2^EL-OEq&xR;mE#Lt2(hITK^e>uovX!pYW zpXaq0FOd2#L(Tb5E=4%6Q*C^N=J$x>gh;M4$1-+Fu^2x`S+~WI6lq6Wj9)|$0*%5xg^ej6Op#`i#vKyjM0&@XqwXbEbml zOpoBXB5&!lP|a&G&N3_p==Q3X(>$K*wIDgvp6gXK@p_OPYR~nmZXbhKCU6`Z_*Wb&L;tZq7%rGI%>&Y}~USjru=qhQW zZWPpMu5u1JjDl98yQGbeSyCsuOWH`9C3T{^fy{0^ zoM!J6vJZkFvnAPp>_abPzwtr#Q8;A3aUioB4~L8=YiB+Rg3Ok41G103kbUBV?9*__ zK5-zk8xM!;vqJP{96V z6U^lxLMZkH0sC_hU|K_5fc?b_*k65seHjYaUmU=6+xaN=B?0?u5MWwCG+;``|K(3B5%UQ-h@lM372{kF7qZ_?oGJD zn{cH!;RBW6%oRTLCj7>m@R2v+V{0sLiu@-kk#gcpFRoHm9mTlXn{bUzP+}g>eB;q# zTWKxct7TVws6O+pj9Uhd_ba$11y)(e(>J!2*9t3EQnX*)(Jk`*q0$6=cC7mku~>S4 z{T$1DOKGHrTXJ@-7mrU>fYE1XZ^a z&FVVQUHvl!4$Zh4hh48RD2XS?rObC>yjqWrNifWf$O3i4@y2&H7t&ViY7)gRkjrIE z7-Or$|MNm{g9n2DMTX#i4g^-~1_b}}Lhwh`p+o4;C4r|G0Uy$3ZVZQH>CYo;!Jiw$ z5mw$LoG;}~!ZA(WBpjtANkh(Z zAqbt=0OG}Y-GZHzzSU~MDVDx1AnkTLEot?V{#iiU%K>TYZE%wKqP*4?9LxJB4Udx+ zud%D!luqA;PbCwZL{WSUq)UF2=Dh*>T?thdAGmgv(7Z&af3|ukijSk+($qaJhKf9u zNgPoKWf+?Qp4 zZ3E|T7psRv`a)2IG?9zk;>Y?*eY!LKH)orb^Wlt=%=c6s<5LEiAGov1YP55-ZB?_e zI%Ke6BQ2idE+V^2Bd4fdl{Q{Cl=YPFIYZ;o;vf%i_?5>Zh%=f=W{V{{&+kGw*1V_} zN+HGv!|*+d;4M9r#|Maw85=flun5a!!3H*q3PlxQ2n#0Cow6$lrwiK&QZ|7QYPLl8 z`J%T^fT;T{|DvyJWwT2pbT`)mhvY_EW2qeU-DuJ`fDt^2VwD&!lE0R z=n;g)O9_FH`8~V9qPxOEj=s$H6#Hwx#FxIv7wWx8g?cey+S2Fop>q|N2j=L#=OyRcOKs1GC3_SVVt<+M`S3dc%aF1iJNC$s8!bJ|UhWfUtV{SC}xrEt7? zc2JOhV`l)kmSz6nApL$(St;fZ@vk*ydy90+a5y_i;j;lrvFs4BQhmfqX_6}|B@e0u ziVdQHLiJd7FtHq(*GdVN!-BBTR%$4k7#@U$wo=R=(FGQAz%}>CLIATPJXY!opTb?C z6b=)v%~>f#M|!0&+t<-|;Oo}+D}CKxsk+DX&e32{XH` z)?wYWp~Is>ba+ncO%jhn2cssVw_z*RB8%uNJ{Y0q%UotyJcM_tw z>}2~qiaQ4RV}nFqD=zbQ2oia%xXd3%kvHf_SSv-$WQLU;D@e#WjaeSl6w7WadaKE- z^j03Ix8ta-WBIc^e|8{}JLcD0BDqr#5?XI}ME>|7B(&Z#f9Ecc*h!FBA!@s`M{ln7 z>CM$jZxDtUhU0RCgE5RxWZq8#j54&4r`(%f_ZnYo*QnMI!*H~4JV;JOaGYMKZctb_ z4*4fvz(`+f`b{-n1vk1;n`DZ?5v?_hy%s5=X0CC+z)s~uD!O<6w@S+jH`ARPxPJM- zUi!N9zZ}=AyNAwp%TBq~j z^~)LloGJR{3NZ@TTvsU(WEPbH7?)faLDkg$>z5 z_8De($=A(Z`McQ#-RzBRON#UkzUIVeFV((#VsxDtE;${@!!~NYiT5Fz&;BZ#-f=T%h&&Z|_pO_*2R5H_zuK(OF> zl^hkD-JPaNERlZk#FUg>JXE~VN5vZz6>l_6{&a{V7A)u2h3k;mg7g#3epoTc{o z%s(W^S!&hbp|TLyyyirXhAmLW4tBLh)seGdvy=0v&P>*kiZgh32vz6M{A8i(9G1so z9E$u|L8_(6!u;wW)zV}+6l8IowF{^KTD3S|wXPR-aGp~#Y-eV6b_81_beUz^qS<1L zrhuR>cTIa_Byd79+fCS6eB^<&io|mwKp_^<1;v~$E#e&Z#6K1v&s#ZWA29&0!7z%N_+g0Fo#c%>mrv zqv9=!ino{!U_KRMQ3Uq+ZR;X|EuU>&nj33fFZ^UB#k9~% zBZ#i}*<(#_&l8Pe*?cpPr3C$0{w!8V0NI)defrg<#-lEG_!xbMV)PwbL0xJJR2Nll z6V&C-Fm<^zg1V4I5!K}`9~JLXRJ_ZhE_zO;E%e=}=C#mw8x|VeUY6fJbFf^SXMD2^ z`E_~5H_Lp3VbOuQg0+PuLkGjDsG?eH4q#FqQN71UdN-5jzosV z`>(TNR$C(8A5T9L5bF=?`jIWzHK)2Xum6?>k4HlnJb1R23QKbn&!Y+gEJT_67G$x5 zZ}u6B9r}@z9h@m?Rda6a#g50){|R2~z!3nh*mAakiyg)qTK0Hzv4h|}HX8FUwZlAn z0yNR;))?Ss8$%a5R@w_40=&^ylWU>Fo7-$Jbhu7x&$ieL9q#lK?S&3kx{Q2RSff;M zC+6LnrH%v-+nSYK0n5|Y#X?7`niV#%o4~`avh6bL!Fno3O3ulM9Dv8N4d`MO2R-hc zUnniv?FxGL`o?3jzHvO6;Rq6rP_frGxRw^nwsDvZN+z@FRBk}$hG4l3!AYFd7=nOF zi$3c;izBzQYY3n>TLH-Iwf;ewJ~&8f%aPlLz|hc~;7F3Sq`~9IL2>-7u~^2q?8#!7 zR-(Kt!c!-#B@Kv;Dj{|7a}sLjp~gt?<9BDf=xD3(3ZmJ)k8 z!;z8(4;7#EQSnJd#V1X7goC^pDmp#?M4yVE&a<3xI`Z)?1(!87C;H6K28EJz-2U_~ zjYcklgk>o9Vt}}niYk#4@-=Fu5&vr`4IWep6qAZ+*2d1vWOki0RN-dgjBqot4)xCr z&?$AgaF*F;1?ZGIT^QNkb&M>bI*SGh|Kt*KvI#)fB}1ofXGf*wnWh0cTWHw?T3X8% z;;u+fBZ2D}XA=^Krf2f;4E_jp&xrtqm_Zj5=Li(}%-}if$?5Yfa`fB?efp*7+%Bbv z=kOXBgB4V+^OPKg8{hK-1VtO)^H9GdKv1;tW%dPmBV-~DIL5g^!C^@mCtQFVcZ5t* zq#eD6abW~%3J1?Ot^S3ern!jyl+Rv0rR>#HTfypISfJHc$S>>4hhHA3i8q{1DpgDR_b1mv$AD}sUP;;$s^eggzeZiW-lA)vD z8={Kob>^t$29KD&z1u?y$KrvP2HbG2(8YZScjUc8ZQ7qdW#i0MpN5!8h zD&kdBXScN&^cy3vPb`~@eK&g8_p-0!msQ7D6x!lD3T`ZreX86hu;w*!POB<5yJ2uWSYO-Bcj^RJl!H->YHldo=?4 zNTP^N;x!)?UsF_k&14^JuxsJM9k+kXj)ZT4xP3hRdO*xxEn2v{eSHgdYb{uOEejUE z3|X*{H3%F%s3OgY^e+hk60HRb35K|6z^I6%szR!?tW&U>b7L=9ypjHI@Pft7T(B_W z&e>bMZ)e=97Azd_-Y^y!Zqo}E0Z5=?F9>Ay^(W=yvl&3#NWa_uY=$dcM!PrD{RXcjs1GfKtR&nFYx84H4TDz_?ol(pTdZ*};v+Hd za>%`U@)`W5diECda34lFN)#M)B=Y%!MCr2ks`lLr7H`Oc#jWBYZ9#fN1^)Fjga1F~ z&>CM+NM_ZS4j9dJtynMtqkaM80nTHLRRtA(m8ee^Uo*%)$l;hTUjfPdhy3F)G!N3F zedf#O42=4;GPel^B2Ef;+!FAc3HXB+Wf@+T&lzObqdZqF_bFb zea?W#2YAqa$wvFpAhh)4{}D9tSP)uz^3VLo1N>25v>sJxsp&-i9?YXD~-C&xb=Y*hlfS@j?OrjbIT)TLVFgt|Zz{h885*5TQ@MD8107D8WUU7=sm5uNSp27O-h{R6|79N(AVZ+aG<6ggz6cIwbe(`byiV7EBGHw6Mps2Zi@s7`Gy`!ww zJ6pl_zg(d0SLHUr_P-lu``?XV`$?jRw*NgJ6>*d`H>ba6+WwzXA$}f#eSU@bd6x=- zPe8a8!eTfFBX|enR{+%;B>NS4ZLVMZLiA@;@Y)~U(<=e~M~BINf$UcU{ErTk{h|Q> z^I8NNy+VAo|53x6*DQ?n>c#s$=De?%^Zr&4@z)9zaaC>;MEuubBL3?LB2E&;vUf!p z-hAMr;s=U~IIhtNcD+gwe_dPOJg)qgd0hGHXyT0^>#SWl^WO}z&f1kT|E;{%`Bloy zn}t|syQEm>w|v%FQcUaob_CHC>->i4>3L>)EboNlZGw(TS1kKWg#?g&Cqkcob$Q35 zE+6_B{h?wsj^W(m!Nqq9R2Nll6V&B5Vd{c2L<@c^k0gqyE+6@*_>rO_jw*Gji+c&< zV^s56=Z_8R3~s-xwJXoq=Di^8(PNu;(ZsKUv`3F^-t`THMF)OWu(q&d=s@`WsG|Cw zIe2;BBdVYHi2R8n@+VtCRNpU9R8_f65Y=WzeV&AVl?E9Us{I17fqnlM#y*_ETQK`bqKJ;- zk3K5?QBe`+`kIcy3P5r_0bwY{@0}nlpCq7Z?5{S0mY%?YRoV&S+bMF);^zU8{Ge_> zx2oy49wgMWiQQVu7~jY;#-Ge(3^|~YhfML~FnX)}@I?Ag>>Y{jqZ$#Z<&od|lsSF8 zpL$fK^{W>8d*7@tM>}RVVs7;3^b^h!hC17^TUI`tVuX;h^5GQol*W%-?^^)0KRZ$N z?8kN1`xb!7NdH7HU-%Dw{8TSrXgrKMztzhZ23kh$@AUG8;AEu#-hST#xEkqyu-~_E zrOQb7Lu*uu=$CJS;WIq~30YwH5SHfuFh9(quoYoipaWdc#-Gr{7X;9kk2IbC7yn4i`VhF(|0^xFQJ?1JV{z^x z`2swZfPjBUz`w94$~fy^#Tcu*x!Oe+49wf{{a z{JLx1`)?lI`x;Gr6C|V?6j_-6ZIF;|0OWw-Yu_yB-vsSjX5yb*!j=QC+k!6@ z#IjDG-;%B0N9fZpO5b-WO5eLN1}mszKXhr)abkSmTrQF1W{$E;i}BqUc1ikiy-fAyKJzbe!9*UdAf z=*T)nIFc#-(g)9%3Z5?wQwn;41BnQP@QGF~(UoYSgiD!VrQD&LzX4Ql=;m*vn(Y z`8|THhH^2I-!q@p$dyrDdlcYuoRVTSditz}q?lHtSK&e+Hn)((jcPtq;)XDXW$n;zv(>?X` zF#X>?BL7t8q_l*YLT(ceReuYDbVtvddC zGYNrNjQTEkv?(fR z51wxoJl~pxfMwUw9ko5!9ohQxmW*u0)8BcbT0vcYw*|YjLV4dxDDQs(p*+l5*dM|z zJdQn){vV$>l>r^>NQJtU>5ZD{kYf5#m6lK*)0`WArA0z{->1Lxh4OL(6PURf(UjaE z&ramrV7(LB2JL$%V3r$Fr$TuGsgXX^4&@0`jhtb2C{F-4a)#TXJR2<|cZ3e*335jI zNFB=arf;J|d7g9`4GgsAjzNRLO6^;MV{AE0o^soAJQ^Hh%T>yFGbf){k!`(j_MYv? zxlz(Z*y${&o6Kzo_mwAFm>Z=~a6)ddIln3~A$+Tts5;f`x}AMJ@NijXRVlDI$bAl(%mLiV7FyyD9pE zV7YxkQ6rR>iTg|!W@$8CD785s1VcxgWJ-&C@L(B^@L<8uF{OJ`wDyZY2)}6U*QIFf z=M^oBbnp_;#7r?j^-Rh$_(HHdl()aO_QA_!V(kwIvgUePzCZAs7G%x!w0!>ptoeZv z=yU*a*4A8w@(#4HR-wF1!p9(d!EAzoq zrr;^_2%amHmr0_U*J>mUs{y)MADYQC9zQHd4z>5fhh%cIg5*$pFW-k`aw1K$3YI&T z3?1rJM-Vh&`eEiszuLp}avzb)6_Lv~lj+qq(?>+HHr;&ibW`wj^DsS`lP~HNDE*>w zE<()q5Td)U0uIL7R|1F)Tcl~_{{)6>SGRAdipx< zsXFetnS_{Q6C#rT>E(l`mx8C4NeF0|8o48O)eX1q$kzAPTyslAw&IxzPgE=OKu(~$qiP+q3D8Ol@f8fchrXI`c^A>jTby)Tf_3Vkb69JL)$Vi*>|SUPBDp8oV> zrq78^G*9=Oz?UC$bMb2iWpalzqGyO?Zk~$hsY>zTiA*0Oo;JVE*_>yDc5(}JL{A`h zwZBkD^awBzG}>CEBYLWiH}{C(&3U;agE!~pjtbwLmzztw8WwIlS`USSH|L>lGItDy zrTM~bN2{Ud;np|-GT>W9UaUvIA%R1Dr79=iPzebfE>kqf<1*fFq&# z;&(&=1bFHK0iR32ms-qYxMUejU@W%~<$1t>$P8=f2USAq;0Gs7$8t49yH=weGV>tX zbwOz9nMW=1Q$c9ynFsR&KD3Y@tvZF4yn&bVd}txl*JnxlDofgT%kLCN=W2SYO;^}= zGIY7Us{S_7aoBk*TaRdXGYcmiM z@TM795x%W3w;cHmoV^;NZEP!){Nw$zS3BUnyZ{q&LIl-mpzw=9qTQonoFJ;RK&y@z zT}yTFph}>aR9wN@z$Te%?Al_i%wsVc(L_^_YHd&!gZa%ts^0Tn=N zE@Xgimkb@Cw?rjqlWB`ugrJK+Q0qWs+a4JSj77E(W{0p%d|YXh_{0cMh(&ZkablMi z@kI9I^w~_dwnpgFFG{Ulic+f^W3Ylc*4DKhZVwU`ZHL>?#Ht`+(RP^mtMf(`L?l)f zEIce(PE1zg#vO~46k1ID@k@`nlOj-5xTwEzpd7$Spr|>tAK)`x1C;3+uoWBtMoxvC zjh|EHHo*Z5408YjBRBw(D53)xl)1^YJ@hXJH@bM~w zIvAjOV6U2OIn3xZZAm$`dEO%s-an3Lw74f+U zQgN6m=0BpCpW3xMKP`_tKNU@!9%P}lJ7<16$UgOK-^?RR&`;;jX$lD-8}L1g&}o5RUHCl<(<==3F&cX}$mro) zL0xhMs*5VO3Fam{uDe8q6+%{66VOW#7GlH~7k8kj`kldL;+M~xezR!i^L!bTE8Y1oaS6 zJwvI7vg~JhM77dK4%B>)(XB8-_s@x`s>b7B`x@`neC5d9WBcfRLQ9de;QdAt} z5!GZa;A=0TmPV|bi+%jsi)m@L^L4zP>Ug`Yz`nB!WS=Ux3G5pk#=g-J*hdmY9Dk1S zQE`l-;uw>CXVNhTd?qK9eSSy5&*Yfw+uqml_NwFUw*vdlDUf}t+$OMZY#95-MqnRF z6wy)a;G^OWii$g!?1K%~QSYG8exEHF+K*?(`NR4_y^h<0y+W{LN#lE2(%3O%NyD>_ zli86FAknjqVIK>tf+i9$QH8>HC|gS!J0*gbG|o*RmSjYvbLV+CDW9*FH0=G;nVpPf zh>kjEld=)K%UxhEX?T|=F0_|4gz-jOo%WK3jhT^qQOG9ci$gXkUy^5&^0{=r+-3;o z_|_UO)ua57wT5$HZ!Y6JF=VabQZ)}e&l>(p7o5T&)B$0D154&Emo7p#DdU4xIet?m z->S*ws(ts8#!j-NalSZ7Yol@o+eNveVQf^sj3ewTXgIIbfP}cCuWF{Hr-8 zGgxoNZJB?Ke@te_ZJB>UymhrVCNtRt`^G_F7d3 zW$^)+Sne94eVs--BosijuMa{?hXSrc{tZEB=}-Xk13tl!%Zt|a3N1At^n8LLGu~%R z$17txek-`78w+$vs@x{Hq@BZD(#{cFl6-<8cZn@2L;aF+p2x9I@KJGsqT&S8CEcLH ztv6{i5VG1wGjMaB?bSCS{}!4F!?v2MeayerA5OAY`)(@0jNBGMb#9^X+eV41bDOBn z1zL6N=)18RcpK|T#hZC|D^=(At}Vv;JQm}2G;v3eYU#ai%)c{8we;S%+d&rhlE$qB z?ao4GadyejS=?Pw33`WVi|!JFc7mW>!LWT8<<< zyR?XRvnQv|JIU62BJ}AOrF*&*rF+~MgB4uT_;J^E_}(C4(RTR9XyU#gVbOM&`S<4y zn2AW-SFrG~qy)_F$BlbQLsHCu*#i+MDqPfGK~N6h0Z`POlkDO%UArjLwaZp;01p)C z093h6Z~zm-9Kgf~4uB+zMRNd?d{msIs5r@V0Q{On?!gG`^DD%IT`I(bUWKq2u9q|> z15|IoY%+OmE@?cZeN;%uj6Uk&ARnYdW)C6%ksu$WLuL;Z;Da8GK&OX^v-Uws%pbL| z)=L_@`WUpUV$iNzLCha5P|Q`iO%U@bVPZZdf|!#;vE0Q`#yPwBsJNS=;%=sxKSD8o ztZR4vcpi8D7@Bw@$U8TOTNkERnCfHnRK@72TR~l(E>K-m zxlK@)-NV#n_Xz4j5=B&(J$zK$Ls4-LkGg2$YYV+6s(CH+o`!`6x2>;?BsY ze1oru2z6pgkF?+$M=QE?xSs3vm(AAt$AG-BOc z?BhpZOiQz`uj74H$NO#t_B~f1`&7A2VBdaW?AtE_`$(dQ6&fOX@^dNt+%_Y4oMM1^xzI)j+up0{lySu^eMletj8v|Q0`2PQA=A1KU zX3pL{gzx)%KV9~oop|QyXX?x(%Ede~3WkZvk`X;-Nu8K184+og)QO3b5teiD?CqKJ zSY#OT48F}7{2|YB3COq+vM}Vi)-sa1u;-&UW&}B0DG5y&@~pU;ghrr632MC3a{)Ci zi$_l2Kf{hNmO|vUr3G?8B4mD~IR;|S+lam3AogN9VlPC9h1^y6C|$HMd!CrR=))}1 z6$7)EY|LJEFnc8(vzKGcBH-yfdx@C6;=?S`O#`!6ZOmSCFnc{6Gv3sr%)2!Lo{kx> z>KO9653@*f4b0xKF?-X&?5%Xn-i$GefTv^j1~GffhgoDPf>{UP)HLL68?$#T%p#^l zwbPq^o4sId8}E29&=!d1V+$Nj1Pp^4@-7iD7S#$v#&k|IKy{;zVSvC*8=!iUq z0LPFq?`pIJ2g?8xc#XC3de6b@{Zzch#uC%UT@SJMiP(ES#I%Vd5c|MJ>_Z2!ajA%@ znd(TI#%!T#NbmO2HH*%7)-D+_$&x~1uWekuNyDW*JW^$A*W%NY-H#JM8!ja@Lx;v!g2Bk z6XFs$*h6p*tF&Hbm1w=(P8g;Wl-1^jeCuT%#%!S~s~t2!t}x^~>4q)P+x1tWQio;1 z&u^okW%g{unTh+C{y(-Kbh&Luq_v({Y8JFkU4@@@oCm zPQZm;Np9gztOP$>aamO|;i^zB2G?7oL_@S;qQv7!99R3QM~P;2otUitg+hl)iw|US zm8PI2*CLw#eVXvTLBr%=L6l!Vu%pMzSTwK@x(H30K(1v3U)mU4ZDH_3W( z82n&k@U=A9oSQQT^oe<&+%_Z*2mQ^Po8L~FCrs+AN{JHbQgKpLYCBbG!Dd{)q)Wv~ zQYv4Zc|unzy!x*X;_ROIH>o)YwgKrqa=E30px6-yb~P)JOlo~483xIqAwS}~Dc2p| zK!D9cXp-?0;!+b@H@o?fguZKrSHO{9s-`L?9RfE^-q%kQIu$qK*;z?w42&O*^VTPM64Ecp!)_GljPy_|Eqj^QJ%D>_Ym?6IwtqMTw z7p)F(*SE122EfsKnIEf`w3%<;3d9g z$Zv+HA;q&2PDj9L8uEJ)r?5BWdg0)gn8qQ06lV`b7NZgCOD97Js{LG8~XPO(-1x>A=!p@vNMC{tm`Uu3$^Yfl5Ne-hWp5b58F z*D)uM{+AZ1pW%Pkp>VEPi2tMtaboBZ6#bN?=nUlqo&-bw(Q3j3Wa?r{O>nY!s3!lW zwct}fn*- zMnN3^G{r_ftzoLvEUGVa$^+Zi2cLS9gkQ9*PT;lv)U&L-2oDa&x6f z?t8O?fr~uZ4@q<|;xwa!p%c-;a3!~?M{=7g$!*G2IFICzv@eeWfOc_Mnw^1P+-J0iN zHw>YLxHb28P(pkSO5Ao<>d06g+Lu|+ss=VP#CIbbr88UVlopVSAW-#4!hT6m>SXm& zy2Dp1J``~he@iYe6nC~k!UC~}6k#PIaD>3-sLSd;AQ&Uq2k@DN-27}9=V=Ja@ZK#g ztz#gYEh(D;OAj5ejB>rw<}BWjKdU$7&(``o-iIOvaM4>r4!VCUfM)jw{yF}q1OJvm zp)_Z)m*DLpJy+`_M$MQM>@g_K7So7`-x&C_tw&(z%IU^&_YZM95snIn21v1}Op7iIZ;aVzNn z%+{2{Z+0fO%oR%W7Ev#ki>(}dk2)8)vMeag8Z^thCDRyG^gjEI2!+M+#jSIk#z6Cn+G$Byw-b~()x*Wrglw5Y`NUx zU{WpzD8*F(DVVhg->bUna~4YT6;~w_S0)n@q+>=S2oR2So-heKz)-#kV;-4sEzOV9 zTyk^9)igK6J{Pd^z)i?TX|ar4$TumupfZXW42ojE8e2#IytpO%7xR(-3!-xult8ce z1M(b6;3TuLC#uv%{Dsm8r7bbcP%k>6B*d}}^rAFuvC^<5v}P#1z>E^rVH>Ci+ESXN zYi#SUv8}4HEforgs0*QFj$xX6!=iI@lWRU;j9tCZ#@o+ty#18%_CrZZEp; z=ri{n|M!@CkBsKt-8A=}mPwoD-pk4}&7FLU&3&l`%)JM-eks@7mr~}AAq&)G>Bh}{ zC%^ITq>OhbkGb#cud%bLv9mV!ZqwV`yJ~Z1Un3qi@8TIY?^0*j91W3-k!7ygpNi3x zn}Nu=t2J0tg`%>%MxbG~OQS2fI)$u8roHW9B&nfKETa3&p&@3s<(nR}HwVD_7vZb{ zI894QKX4f}-0PB?Gw$R|#=yftCE6bq;A$d_ z3Q}i}b>ANW6CM7wjSl~c#dU~OOm0)>rk-=tV2NsJg&>aiD_KTvI)Ig}JktTJm~a5A z*bac5_+_9H5VTC1YUwF+z>9}06$s38i=Bk-i!tcxa^Wj(UAs#Y5* zV`h_rb4_SqFNjw$zK3N?w|x^AjE_}+&qT3 zUK+$AW{Ajpu8i}WcDtUjUxEg*MGR;CG&s>V5(Ccq7Mv|(I2)wG`9k576FAC`Yyhl? z9e)v@tztMEross~l^FPJXyLPU3}>TMIA4ZshZqE`8>fPt;DX%P0=ZobXOmPo;ie{oRhw9F`o(ZIO@$L~eG)jb6QZ=K6{5F~;cS)) z=W|7u8R|E);Or2?**q0axZBR4YjcaP9b-6Kq`@h|E7~Tqg#~A)7|xb9oOai4cZMVH zUw7sW+jXEAL1{|_IikW}w1i#aX1B7NjXdSof<9eE6FH$C=rdqP^ce|=yAqd0()Y@|G4?-IQ--0r$g|sb1sL8#NzHi1;^Pm z75B_z@_*#QLq{UOaeF~io=JOkQ1x^8g@1dY#$HFT;F3c}cCBAfBKJ0G6TqHb2}bt1 zG|ip{nY`a7KqCmEY#K=I?IMMwePX2c22%R~seN3eyafT8=}6w=P0`C*NakdFv6HE0 zI!UK^p;BMzaRM18!5cN@O526tlQZZ2q|xq)Zf~KqeLTWKKP;I`&E&j#Comoq?&}{f z?W=k!`vS0ZOpF@)`D^T_YV1dPfHh9>E$slt*v%uWU){cPD^)!Uz{V{`HVf0YANl>=Bs=|rKl zv!KF+xvq&(6vf*G$Ri_8?F5ZP!6vRpKtst#?_QbNv3M{?bNXsT+NPDcQoZHesT*A| z@l79!nw{xG_*|m@Y`qZ*0P*G_OT9XU;}iY(E(mv!!Lso|Z9(lhHK0$Gd4c zDjH&h3yRj#IB_g<$Gbr%qm{Hhtl_jd)ZWv|13+*^t)%TnZ_NM1ruVXk+9(>Wq~+$~ zfN^(@t@i?3gAxwQCdaY-f@0wyoGJLnt_I}5qUbTO8VnKdJHXj;{j`5>UO34?PM8}M zhq*zdxd~so${@IE6($k&Tk?1>y?7w&zrN(q*LCOz-~)FT*F(&Zdmyf2#<$)rxVKO@ zOB^MI=6#BL(~%u$CHH3>Pb7<`robm>`jgy!__a4HY7F=%e9X;a`~v<5x%eLx{c)htyHLUl=1eCQ88G&cjz!G!bHl0)B$`Ec+aiVx`A94tT%)=b#f%Y^+DwFk#c z5Ndr;DB1l;<-VZuU|@vS4_5f`3Fr)V(HR`0Gg#0W9MXisgQ0%x{_G2Sc$8uB5CRyz z(9qEft1ca6c*yob54%E#@Smn;K6T<_5 z;Ss@kqCoBjZ+%L@P%MhA4NW#&G`-!=qUDgN28F5My}MP7#Jjq3%%{!+{FJ zqbv;F(!_8eFgywv0{l_H@MyP{qvKYNMk_}PhA4Nm#_#}QxG3r#qYuB(eeh#q%8o(3 zW8jYP9jlB=RNeAH3gu%Al$&6S$KcacC>^MC z2Xg?Cn6ZLKP>SPVDrb#Y_^c6ntFuVzaPQ8#BiMAlcwASqS;o;)_{bu{jM|+T=M+ju zA@zTBH~n${-S(HG{-<}lMQWC&x-0+#3Ae}}@7cImYiB0h*pcn0I zia&uPWb_21P4UOkf)Qo@v#m$}J@2ipM@@R>fb3d5w^mRbjMMLO#S@n)9C z6)Xtmo+!Qpf17e^@F!;tPVyBzNf$gx6+8*ue+q@yJSGHrvPY07D?y&D>m1HusDF?A z{|CZ?N0*QMX^N(KrdC*|_=I(e7S<_BSf`{3>r{`hPF2D>H4;{#bTor!Vy#t)50b}p zhHGnu(lJ&IXbSGKG$$X92}E-+DDDmC4Xr!Pvt8gczDuTd+4C)RHF8@Jm?3t+?}JMH z12bvnZ-8sH!U%T)6lgg@BHQo|LbE` zp>(1alfBVmSwylWlpeSFqEZ_aC>faW8?vS<9dGZ)J`M^5T}rqK>Y_1$G{iT7G$fut zTD<+87c+D}_DMzbmbvHJWEAW_F@?m95@f(}<`mM&)-;hhg>;IQ2Y}#mH(`F@!wlX zO7CJ?)+I{*bqO3^gO!V7i4ML{Du%XZ%tF!(3|lMvY^^M|X1;qjZMIhN*;?g)kFB*u zwq`KOwzY7&HeqYHYZuzi_^U=wrmdB%ymVVD*R?g7u5F{OmBrSIVr!yPND*6WBLe@2 z4Jb#)f{*-(dwkPkKvlm1Rh0o%l>t@I36oK~(RC}7s-amKsg_yQd}dV>voia8(`Htu z`^@U}|2<|^i_FSklxk(PvAHmEPRJ- z2JRL;r~abX*&y}YEQ?;a4T7p`^kTuLP`Wg-5(5mdy~JZB z(&4?dj+G4cSqTor`wy(-vieqXX%OrD<(6KXIzPpa!&B8WV7Pc=9f zl&*kkod+hLA2Inn&19rROuimWzR|-R-f7sV zle$qe`6dsX5gFjzl)_{xu#eBiPWqcw(@CWi6&aD{=xK4RqK{i zh#v?<*;CGwGTAq~MK;W;Uo$O~=ja&DZK-fRbm81)!7=u@-<}Fb zj!HDn{sdjOTX43F@wp=v&KC+F?s1=&Dg-!p;5+<9{%jS)xib}x>~T-xbEk#R)-jyB zQsI0VwjE*+l(6S9fzLKEoV!!uj8}D{vr$3U-4;IE##6L?W03cxf}G%jyvG8$T@2^m zR5+iyaPGC>7<=6BONAqQ+__*%R&m}rDBUNs(CQaOXY6smKNZgB3Lg{B{T3Wd&W9%Q zKq?%Mi9BG@b!-gh!BjXN6M4{ra~$BPMIWTUhZ@fie` z1B$pii;?F7Y^W_>HAnHPxpd&Uuy_(v<}O~fph{^*#JLdvE>M3iM9ASbIQ|sAsLl6} zD>CD-E*Lza$c$5?5YzyNA19elgk**_u_;fcR-w?CU_}v*GlJ4%ET?FtkCILix|E>; zJjwMF$s$!37B~aBAY^4l|6r~hlQcxO6v~gh+xFizN52^r!rGCQ_sVJuq z#m<7rDDM)_Q_~y0rvgkNDP+_%kL(X;9~PS_pgP5iJj;6*sopD&wwAHtD6Yz>qk2NI zqz}KIQc*c5p_auH@hJ&@>_8OMt8`DNQZDbwB*VzlmhGQPzA7tt#>>}d)hHrXhH(9R zS|->o_D`@~tR~nlRugQ`6|u=&SZ~a{l8ul7R~9LQOE`{ryIb+?9@+-UcW!II(c!Xz z_8H72IQv_1c}!4x7TdX}0MdHlInt%)*yYFYTE673wvW@$R`YD4e9wEC^n%SKDf^-b z#yFm2da&+NKkF`4th-dP?xhA;cUc^(ET!Yf90!RI#L&CIr=rdmvIJUoh-KI4n?2~rSbS=F`)L#$y zQdja!S2n#Bh&Gnv^T&^HV>^87tD7mH0R#5n~iAmzd;6K-c;T#0dWXOIX^`ue`z~Z;a;Hq-&cH0v8JGo>qccz_jperZ#2RuS zw+L)Yn1zffO|y}?iDeJD*zYsX#9>FQ;ACM??-aK!jk(3j@&;KxnE(5H7LEW zxPrEyv1{?T-m`v<1nKcd{nLGB+HPp7&XXp5j7CW$ORM1@a^XLu_(45aW`VLbRk zxnGfNg^I-_YT?Jk<`b0tRQMg1PE??NWBR^$CZM68e`Rr_WoyeXP+NW>-Os+o;^Ib5snSybQk0rJ`;$ZKPe*8=3V0`l4zq)JrkJ0VivYc2Kt z3_?k|tm}iVe0zV)UL0f zUEe5OH_#SccQ`7#{v|3*RJ!g|aJWsaV1;kN7wX-$3Fe3sWfFD$8)7pNWxtDbomq(r zmaboC>*@7AJ-sepydIw>19uH!(Zt@B1#(eQ6d{P8{ zvkl`GAB>yx#ar+(1pYGxE}rOG<=pfSc%oaAp6J%t6Wt0=gqdM}$F`vowR5{wK;EjI z+fX{U{s4Jf669@h?b`qhlf?Xv+fj+ix&0bBtlKQ-_8WwfbZ);F&sK(c8^HC(qw2vG zN`Hu68%cCzzbd^(>xI&vS@nAIbk*zMOue2=P5P55paLJ&Cv(|DyZuA;$sC4?Z~Ft< z_!s-^021@AsS{ln0TaOQDD$`K6eh}GXpt!MPZ3M_2{?t)zp-fSSTaRqV~C&}v?GFY zE~5y_I2?is5I52^E&b&wh6u`l6qKTEfgO+(JDmlxG5A7K%aX-`M8Lg{%UfdAbVRw7K%kWN`s3?wCd3GoeDKECOeR&g~1l zBeCg(va>WS@Vjkc-QyG1-TC4@_@oH@UK_@JJ{b4ri}&GU2plhKHese+>tr*$%3mO$ z^f$l$kykyVEDTiRf)Xok!?%%$U~zvkSll0*&ix1zSia$R94u6#jz9NnX!oNCJ~|Fz zV^B-;0Ra6#67&Nx=m!84D?0p+L90ZGL*-c`XZJwtOWAKO&jx`e;!t^ZQT+#cM-d3& zri`P=IfO+ch4LI(Re#Rusru#FOkan+7(sasDBE00^$oPe*SY+l>zW-E=2oijRIs@! zzK#{L;5BdDTgZbh^_~_Q{ zAo8#c;}IW>hx5fp@X;`+Ukg)D3gtz80_Q|Cpd10`ql%*dKE8lit$A{ z-EdfJDQb`fjqxv0EMa>+iRn_2g)&BI%GKEG0V4%b>d9o3dNTH>Pa-}&DN*XlI7+ER z9RQ!ypq@lQ9sMpu^vfR)xFeHrN5&vV0`5qGJ2GxeC93GRv~QuU+&l8!I0_E`Mf2t5 zWgtm2Cd#=%;Uyg9rGXJz14HrQKYeNt&J-d`o6|OeK{|w%lk-`UgL6T0B>W3 zbO7O8nP(K6Ba=dTMWld$-VvMFC0IT}u~1$qt0P-^x;io(A{;Fjlvk#{t^|u%ML9A9 zZRrv?nj<`35fxTdj?AgxXcdLR3af!HG=`B0=7{w$iIHm+VzVmBt{youW+f_Ek?Sej z2|ev|LQmz3PvfIow5#)vu1l5vsPA(S$n!_%o?V~tW6oM1sScAMPt@Pg>|!N3@fbHzQ(LWY}Q5D^&8fh z=WJ;|@00d(`Qr2Vq-e|wHjEd2FkZ+PU&P1InDwYJrb|lrrw(bV1R9qnp_ZdlrV&F- z0JeM|9PLZVpzu;06kdYI#Rda@$L6aNW5s?+z_S<^<1S&SITlb~PC|V-hWaw#VJiT? zW2h=og_;e#{&&O3|GsSb>y5;6;zaQsF9SSIN)5^zDi_NZgYrfybVPAzgZAUlD|Q@u zg_!%|kROziqSopF%`q^0Vp?4H9#7}Gz^C8ZWIJ7ZHwByjG!kf5Yp}ZMV zKtP;CCT$WisZicLt5?}#x_XsOO|P;A)q8W;@s`S~7-&lza@0zsycsHNrM!w$!BIJ? z1uJX~zAz3^abo7gx`bj|5}U11cALnnuymq=6^CB6J;G}~kML@~_!>UCbvq8dZo_!P z2jlg8@eO=53{tf<gZAW9aCpJ5vtU6ydENyW!vEcotE$z2_(ta~vd<&lx zjd|OK@s1D1+xg-<_!t_qBjv1|k^VM+NF4I15@_6jgj%i^unSlBqtBP4L_vVK%w2=#LU~U{CDZm%Y7g;7t0J@ygtn`r z;N+C%d9d#Y`FpbBUPa4kGzIR)r9ye{y6^`n`1-UtZfDg^?8TkG;g7wQv4fpWh4MbB z0E1k=V0-Qw#Ope9g2w29d;ur9->Tf7)d4BN(_J-BZG8|n^#_jJafM14?_=APdgL=& zic_FpW0LwcCWbc#`ZY%MYfP+PV?@8kfW-haMu3e`;Kyjq9Y)Pv2$07nA&-rLj1?f* z>xCA^#tn|;Pp!H8O6bCGM|1as43TbX=>Q}tB*w-(DwOvxib5M{5{x~FpmI>&PgJPR z#<%hTN`ejUBS zA(qf9#S4e~G?x9r&O&*R?mbX<#^Pg=od^Z**>3!OpBsNKUwj`QQN^)#-{Aur#D_i* zALNT4;-f$iQ6Aemmh9&rB?kQq`Zq4Af8%2P8z=fVPV{eF%z<&xzi~>l$BAZ-!*8wC zS3s-t3t*$yM-f!y^^3pC*y` zG)CgneDPC3;!_|oA&JCb$MA2Q1ah@K>_?4*JS5UXFlj`<$tZrXJ z-M$ue`#R>aN)(+3n6J_DSNw-Zt?pM*-RDF5-z3}rCT{maxc!M} zf1YTaDs?|rt2^LLj5RnPz&9QzO8kwLdc0D1Be_sMK}t@H6@+2@SgJe0YIRRR zp6Y%aRp@w;a6NTDQK`Gpj;OmsuBiJ7(8!aNx;qsdR!}im;bag(b)Se&OpT~Jlc??| z64#SZ_LNB7nU$zusp_}3s($BF)o=5~@9@#B+v@(k4dVwNjPLWsAMnvINY%+u_la5% z{1ZNgf8!*m+oYtrO^VfRQocAz)NK;f?Z>3L{TQp;k5D&khvaw6W0ffC4lqBWsYIpjr)qTvyq_(_ zK24PPCo8p8sk@O}D66EOV+EnQpGtKnSgr0U$Wz@2NI>hlyQXId;;`k+B{6)m^3&injQXId=;`kNf_*KO5 zYb*|xDCz((zoN}w_>cJgijUTbYoHU&`vZyJaO}>xKP-Ok4@>g&f80@#Fa8#HJbx1` zev>wSi#wjbu@q4I9alr0`$La&f9Mrm9q@aM$?qt|y<2D*!T^ z!kJHn^3eKKJtH_>`%E>2)4zrS?XwlAB$rE?%Z|nn1MVaSjbebmYl7+dYveuNje(+u z$>et8w`RYc4n6+E)#E>6J^n-V_z%(JKVq!@fQJ47J^s_x<3D3P{u8DCRKqN^@+TU{ z=3w>kC!V!M;ry7E{7S%Na%9$GO_O6RCJPpm1&hfs7Lx&gGO+k7GIW5<7ypVe_=`Wa zC7q)!X)=;xn-L>BS1f6=m3p319;0xfe15o}`!7)Q7n+ZCwNSpGDAN!|n)Cxagow?Y z+m5F#lrL1q^jF*njS0t}pm5?W3g^RME>RxC5Qo|~o-8NUL2$H; zOTgivd@=dOB;gnK`w=*PGSzra{?;t!AF~|P^zWpa{vE67-=e12WD2eOJ0|>Z{)C$T zlT_1xVm18-CAcjWE&Yur{=vV0h}=JT)`oID4P|Ly@NW`>f8(b91)zVW{eNS${uQ+T z1qM@+7)*&Vn1YH^w4q$84dq`X#X`vkh(?!*q5Ny5Ual0%C|oEHQ?~GLtYo4OKC~#Q z%i6VtE0irvi2+i!mr}MwRAf60YI0@q1}c|PP8xP;rCwcu3Re|JNc@-rK-a|3h2E<* zWpQ$32=?qVnp6;@5?)i0LRW{TqN^y@*kaTqk(z%C0gSM80ZM3ySw$X;86WdzEIsv_{1=!{BuLXZ{LGi{5J2ipf>OZ~&&Kqy|68I*a zU~mWIa%-a|47Uk)bhULzBG;jVss{LAcLxLob)RSXI>-=dU70OA*m!{;%Cvi}B3{b+ z@9tGB-URfBw{fvznbCX(U91QO$i<2s*(Md^I=NU8$#S=Wn=BVAy2)~}qMIxiE4s;Y zv7(zS7c08S`eH>lLtm`uX6TC*-3)!PqMM;FR&+D;#fommlKOf}gg*cEmUs~l+IlM# zEG7Ro^fFSiLM^~ysF2E%S~7HLZMK5zyj%y^4}=Mem?>!yGsPA$Q)m$=JChu(154^j zOKL&Ag02T+Q=OXYdqEeC!?d;kq6b9rncYKI+hzuW1zc}Yyd4g!4QJiWiEotcXn>YP z@RL@&eAsp;qX62^m2bdzzO7SiuDHK$o|SUBu7dV_xmAKyc?C>|Wma2t{#C=npmK9# zVUeqd`3}Ueb4q4gXTWJ9HS^`x2-Z}`G|Y|V!#VL%x@`K9H77Jri?{(k1b1?D1_s0>9E=)w*ip<;xGgKV>ShiVjdjz(d5a!^zU`JsTU8w0s94alAC0a-r= za+3uFt#pBU-UV4U<<`q}$fIrb!1i-}avS5olw7xFut@%sB(Ak038#d@_X>eGZw6s? zi({fB-mzYLLiO$c z3DpX7p?W(-bq|Yby~Nv-B=%I|?-%Sqs*_1Ox=A~^NjuY8P_ZYVi7NFAc8N;O5+?1c zOU)9O+AS*8H7q5EzVsxzJ<*ejaN8rQ93|};RgRMOQa+)lJ~gO(r)Bp|L2jeH;cq&J zcCX3RNbh4+zbmymMmCdhj2B%;5(NAz`4Ezm+eYI(PiSTRlyV81;b3Wa{c`;yQs59I zDcH9q*9=dJa$Vtl0TMisKk|sL9yyS?7Mw&&`EEL%o?YoLq;prkXFv22S z$4I*m%k>6WBj^4DROudZn(V;5n-^SdG!Q(*{~Ha$H~W|XQYb%gAYVWLe`6zQnpOA> zCwDgrJa`b$G*D`i(x5jeKOkTs8V*73QMgOSgWOK=kb*qWf($G)G`QIu zaM<8PaI@uL)&YV(zROR7u~h7K^c*d~N`k{X!X!GX8co!07>4)>fuVVvv=c&({|`%x zH)MMJKx4wG5JAwfJQClgyvw7Guo9l4d7))NAvTcm(*snxG-;$ib0pIv1dW_$ad@#m z=eeVqlR)37_dHH?ji@owUpUsE{^D`obTR3X=_dVBJ(C^@&3ifBq+h~DbclFVI`miS zK_3O^uO1J^`yIwB0#-YWr-Tl3mPANhmvQp*(n zhXjnPaAO_*nk6xCR{1E7H#DVIQ!^SKpOuv#8&*1ASos`SnQ+}H2GiTD~CKG~LPsKsY(z9aU^Ihe;0S)_+f%exa-uxTKn@_B# zdGzMrdfc_vJREjc{?6mBwdPH1$6Ys|9^aBbc3hjs5g+FHD86}8)#HUMadTb=K8`{s zd>q#vtH*a#kMG-a{y(HUf1EN`p5!rW?fjYjqsOeZ^Jn%?bn(p!5}Ir zX8n_6){+vNb)o!o2CERaJjsX+KZ{k=bIaID6_h9O>jy0)|;bw!hS~%TXxst4DRTUH*dX-#n_L?eZ6= z-yjOW%~Xx43QMN+8ydCgUqeTyUH*a&BNtSR#B6(tpm0389_}{K7w+P~#|h=MX}r^v z5L5#Mh(_B4EaWt>kZNF|R01+}<`;J0FRb7%Y!ZOIZw(OOHI+r21{P5bERsq@*ZL z-j&lYGh_JGRQ{cVFk_@${)4kG#w0+Y{AX*KW#Zl)H2_lqaG!sOmDz+vc9R@xWA9*4 z{u7WCVn9MOC1!wu*kl{AzZ}H=PDkvo2(cJA1e}7|WMYPGKQ3mG6b#J%u`&DC!E8!8 zX8*>RMZnWB`-hlK@nIIJLX25OR#FXNR&q9Gm8Mk8DwrmeHH?1I-3wwVex6mJ5=kjiZP3T zr(?#o*Gj>InYK)z6YQSjm6;>FBBM`7s}s@csL>J}EW=FT zC3o}~4x%!PgV(I7cy*5OYQQclvl6jce28h&NgyWox0r~{?jSZtDq^$6h_!E)l{tvm z>^{V_Stbyh)0X614q|hsA~t7?SY-0)qU4r>%3MCgwBaNWo5x0MUI(%HQW2XcMyvs& zoR5gj>qAW2O#-p`ZNwIE5L+-6vH4@f8nDR)iP!=j#3I9C_rx-Yo^X_LVx%x;Vk9gx zF=CXN7$IpS>c*K8x1;+B$wb|FGEq04Ow^4h6LsUs#EM!~ja$Zz=xR1R7KS;?Mu7{duPzT zpb-Am=9p_8jvCCv#EeSoqt0lMeM8;CB-v<@Op=Wj$t2lmkxY_}7D(zAZlUO-Hd;t2 zjOy5@?-R&I3nWDwE&2ql*ODhvtXEh}c3Q|Lpl&D{AtyU6q;{0ldVN$oPP@UAHX=$Z zgsrsRNR|K|Em|YkdXq}i`^LIQ={KjO-xBUuY66}disQQwquh#P-W7Fnd0W_y+EyV% zV+BC*ruB}nD4>LCce-hMCrP)KTnn|QvPds{8>>R-Xs+LS7gQC?+P!!a8Ww}8^j&hT zcL%Na@R+JD-h0z93h$B2cL^}pxtO;=+hS6pZ83su!US#CKnbo}i0*wv7vy6Dpy0Ns zoT63eiWyY3|6_U}x40j<#T9akhxGOg!kh8hmPonYt!)VwhS4o5gaC0(2>1o5iOBSR znLcz4&A5sXv`G)WvKU`#%Jp(-1H8oq9twwyc?6ZU2E=-*?}|h_y+n2J9cMlc`R3Y| zY<;2y%D|I2@uwGDQ43k#E8n&x5X2+A7yig2zIp(?ru9&-YwMGVdXPp-WpT=+Ta0jJ z3E7MTU}jfv$pKt_1W2P`SG^lYH)Z5>lifIIIZoruWo2``6e>M+J0tCO zfR=8j7Z*qkQn9)YtbsD}djiB##KXx)n$BN(FrJg^>!=Ufb$)M7&l>fK=#q-RQf8@; zPgwP=^oEiJm9CI-BvpnS{X>;Nfu+F9N-usbO)8hsRF1N#1kX`saTHnBN5v>b#WKiW z&PT;4*{4%s{_^cmv8_cU#~DYq2;Xbb}(x*K+*f}rjM#*L|LxO+>} z=CJEtt@p=vt?T9k*!BweHubEsVrbij5mijGR?cY#XQ5rrY+a z^=*3vXwzzSYDqd|NNE?-jul*f$g(QeKUkzj}T9W?O62vG3K9zoySJ zMk>o-{#riE7^&==`D@cM40ci*R}yXPE_kk~=)n>TGS(LRURms0vs>A>{7@xOY)zW> z8vI&|RIXFszDeb}J}R_*uY>&cd{k)rX8!u^P_eF};<P+Pr?C&9AR*p1uL)UaVhkDqc=lI_>3zrD3P- zznlPyHH(7EDxwFiQKxrXCaZ>_=wP+WozVb>mx#Y7UuVDhlp*2h(XZspwic}k!2klSytJ| zvN@=xmR`JLo*dX%_@hj20}I@84!GqMxaCZf+ZH^h_A8T1H3mpPIwvo8WH)_zGo(v5 zy(3MBt2ezEvzF%*l|Ip77hH8}i^>iQsnW6um<8eocJPa%(BulOuf#n8Gzp{ZSlP}t z&3>E=>}FWn_O#Uytrd)n9R{cj!N*A7QST6z^aQA#^bTP+XJ@@bSm%%^1L7`vhcI)E zVMAqCy+hbe-%aljw$f#ou^rVX%|Yy5-$85#_1vS5gV;TgCi>NDV$b?b^g|PSadUvt z36l{9-tVFb@2OzNBbgP%8*Oihh-NHW#OSvNO?NMv?%wtN6C2)#`&|sin?swuk>8() zIr$1P=I`rnTZo1>%-@fuZPcgz?I4&_QW*LYaXb+5?TC2)kdyRB`-#We3FR4Xq8j># zDj{|7wGV6WOR@*l_gEx*e;--eV+}z50Y0*{$724#tYq!4$Wnu!ftJ%*(Q!H}DyOsJ zG!A~SHAxSCc8hqfH(!`M?`Pq&l7r7m3Lm_~8Ew9(900+B6@%(484c*bIzey{@(=RG z4;=)Vf3Popj8s8zPy+@yID@nfq8df!Ocfg}O1NVkB^=B;Qt?1Of!adlkos()5*}K| z_6|Y*VLm0*Y+?T4J|)#`IRtE(nLCKXy~e-_s2xs^f{*-3*Jp%IIZ%z%aXmIM|@3KsQz%aLp;Zu4-8^{5PO zx~gM+81B4=gCb*-#i*UHoAO2OW#aiyy`_^hJvS;cgv z=+qP{CuCrRt6C?tt6C@6s)ZUd2i6;7EOZuE1*-NYM|h8JdhaqVv`{&*z9!P!pXBrA zS`$x1{>eUXt~K$*2E6$x8TfP(Y1ZCc#okjws`bRTDUu?u{ zL?y**v^icwQcSNgB!d!&*Jw2(&=4_}dcJ=MQE%nfX^IFCTguR;t9T_#@z!tzy@nF> z8q=tFrKwZAH647`RQRlEDPGcRtc7Z}*I3K&8sHmF-wwE9lCt)|u299NhuUY9kze)c zq4pVNr>i5{RBc%ASTeP%Q_Cv!iW#12meALBn7p=P^4ilV^jakJU9xzabsT)wQTVK5 z3B6D`Jp&`e;u4HF-D1SLPQ&Y}hS!}&Mw}ioBGZs(JqMrl6h7;jjHuG>o{@nOt{XVR zV#NAR!|SVt*Plj4oDnf1Q~cS$!Dj=7&juzVU}5MF@PF>{mOpwHYlSe@O^;cuT-%1$ z43^#8hSRaRaGv{BnXcQ&oUV&j;F82{6tPpvj@b}cE&PPVuRFayNh&8N!cB6ChYX$I@5L+sea~J^_sY(eiLV* ziAx!_Ql{-LA#8h*vX4yN4HXwHlfHctQ+F4$uW>1z%w@XqlwApI{PH?|yUUP2%okI2 z-;ViL_+sivAPpRtefq~geqBMbuhL|vbQMVU)jqOxSK%t;U*jW7cNLgFJS$l^oRWfk4z?UrhFk7? zW5-=?tlZ_sGhkhFxOVC7t!t`sQ?ahON!q&RCK=W>$)ccgVWcU^L62z4Sr!*Jb-1{x z;^L-e(76Wc2mxN(`Z|{l=d=&;s$6HkEL*w0z7^3++)!t3@_OWt@Qr4*6*2!t-)L4_ z(e({@nVT}G;|SV`_^b_Dm6hEjyv6~@saAFq>qx~L_;e$!?B@Dxp_ScI$GO~${9Aoi zsM*5&+k952*>bbfVZV{6-PTBlJt~>nVZS{qLvfTF?OQSQc46pwU}z$8tGUT2=Ft<} zo@DH;{CP{n;yW^6AtsT);ts*0p7X>Rgh3^4^EQh0&J1n3s&r?&s&r?PVu*s~cvt%_ z`);4IXqSB#K-}X~7VWZ`e{bDc22qK78de^blv##*@sOOGloWH8;l2zU6)DR3VqvVf z4;(c&nQi8Hxy_W9+iV8Jiu)Rj6{_4+#EQ++V#VeeVg*^0F;;BhaB&O8#VyQOaSsjR z{tV)C4dVWG4dQ;=AVPub8PzR;sy#QdC1tHngTStxTzArctqNy=h8aWP{XklTd(eq+ z>TJ2xxfMpZhkX%DTi-*-f5aETwDmpIKm>a<1D78r$8-c!9jZq|p6U76tsL=grNq0{ z3^0;M8#EGCZYqpq>ogJ8h7F4)Q+wSnWYy~DlqIPk@Peh)+dJ~uUddzo8KBiKG^o|8+*D}w4ryAA z7wH<_Eld^#mGiR%fgK$#?x?tkxAo#}JQ4(6%pg8-gbDGzXo+tpr{SGc!+0lfx^MP= zu|e^va#JC`ozuj(a|ZE|MHxG~yEt6jMR5^_Q^(?ao-zET4B~TR%1f5`c6A!YE1B#( z>^cL)_fmu6Q{|>Ye7mKIZ?_EMBa1S|l-(UJ?yk7FyD2{SU_A(U+8hLgi4WL`_WDPk za7|%)tU%=2_VBDe*iG&+9h(f7T;5P;BgYF#>TG1Lnj~H_06W6>4KP8Y9(AGgrIqMx zk*NmDi)Qkp&H7DddglY-Bsf9UIA zjRcm!f%)U;hzcDh3J3@V>G{qPC( z)rfZSS)E0L3CRE4H|3($i1}amrd+fdO=!TbzRaLzpHoxBN^$Q2mFP=Rv)AjW*_W&$ z^*-a%7gV#a>T`u^_H`ZO`U?5q)G;pRPpo5HUpb?fFNoU2Mn*4D$<)!yw^{l5jbXOm z3P0ZjKNAs&3Tz~B$$;nh8GQYQKfjJR{9Ohl#CMoTd?!fM^Bp`hvJy8rkwX1GLz9jk zec!GgeV?Qka-b>x(7wZxV^&if)(-&TIcGI;Sj?|`&?@v9ocOU}&0$HIP?BR+&GVBh zk`hlSHR>rRfpey(+}rVFdn-@2_w@0U`#A9TQSkRMJ>`$o2+v8esb1gF2stUXQqQye zY->cw2|Z)pADG%RD*efXMizofbMUmf@UTYdGTd;i_%zID9(4f%ig z+_#RGzqRYW8_*IS?FgTp)RKK2DekMJxNoYKyqzVU?&rYYPr={M)RI4_C4aUb3?|nJ z27dy?Uv+{3^Z%|B44D5<-8o}i&>U3$Zp6f+l49cjph|L0P*P$OFI4``;4{Td<4#@l zpj7PTX_Y~xo}2!cnE%DE$%=+X`d?ms8Q{osfRg8c>7y_EJMi~c@b|a$B{^w&0IJz0 zet==(knNQECW^jBHSnpAHqj}_&-v6xo9Gm$FF_@!%8OBuv}jG*yHQcel)glR#*K}n zN#h>qFms?{=D<{8y_Lnd2RZNuDfojdVKqPiwb~)zK&OENRRag65|F94e~<(JAO-&* zg8;~Is?FtKr-6f20|%!PkjcFccHj?I@CO?NRG?oy`9IynFJ_QqVsa*Cx=xWm>E%`R zw`A|@A?DuK98Z+uzE`x*O}<_8ZHK5SAdE{nR^|K#{#TF09*-?LRsZDVjJ~fb`4GLT zerW64@xE6yiNRUNY7>WOMnACH%=sE)d|k~)^EE*0(0Cf9+A<*A^9p>7^bTpSs#j-< zUR4*QjXDKAVWSAOb7zhwY(Sw=t79}_lT7avP1q#T8GouxRNs^dn`&q67X1@8s9UJc zl0IQm?JPZ$DnuvY2<}b>_IM4CPOllYXO#vp;lkdSK8r290uS{H)!FEEjdQ>-k$}>4 znAKSo=J8wVhjOcHH7`y|lm;(us%e|9c-gy(V`ziwZ0Jl>XIHIyug8;C=U`XD5IS2O zDBij{JL=C#r0i^k6tm}YBf&=MP6nwxH^aH1AVj)Fkfx$`3#TD?xfM8!uQ@{zVJuyp zoAJCl6Ux&JL^D`J|4=2Q4!-7K?YT(tJc?rPg?U2pydIJUDU#+v{rNm34U*}aDzoR$ zO47WFq*1WipsJ30ojW?2>oCV}9j5%&Vbk`40vggU$W=Q<{Enu5VtzMUk@9c{pTiYC zhZ}yhIv<1zRxF@R#y=$}CbMArTuyZXfau~I45+yr$zRAf7#Imv0WTM5*W?z?AgeA^ zATeKh2rAdYqJFrDIQGJ!`q3dv34BS#1zCF`s^22*8Qh}j2Db?6FXqwCfl51>y|_m^ zwZSa{ek9&X2SUJVap`i^?|H=~Q+i&7>JnLbxtM9nO9(GImhpj+jRO*=y?j=aCLRM=E@dH2r4}s?|~%7~!hbQthhMQnp%!tkbhW zM*&rPsCX2)re=d+r9g6N?c)9GAL8PB`&{@a<*}9qh-G{(Tn!ehOSkL7m(9SX-lSN& za20Ns4QbZoA(bK3d%SP(bF-y2T#=++ph0igjx-3I=S+2dfvV3}6Sq}AA z@VE;dSD3w`$6e^S!t9mmx{GDV_!S#*7g0%Z7b`jLLQ+h3v2q6ai@S)9#$6NS44o=RWh{c>f9=p&K>K>_*f<5W2aH)R+&1TJI=x9IEBw~md+(-mX1d? z+g%)QxC`)29XyKV%;X4X5EVmu-m7_ZP=~BlQGa!h4(gD#s?)a-O9pz? zlxn81bE<>SsS2M{O-8`NR977{PRSXnL#O8qRj%zcYj(8qUbfges&;_Xw-S57AUyv30aN6}NUC{Uu|TrMix_ zb*j3qo{AH+ipE6PdIQu{oM36BuOCgt*;8s8L{o7>gHdP0Xeuru$;jPEPsOn%b1JTn zo{F>6H`Y^eR=Py~wdp{yY=Z%YJx`_%l}(u^TN}11N6Px=$u?2_$#ue^r-0}CJH|X* zc&=>9L>~@gu5Qja<=-|{-Auubr{an-6}PTY&t?eA=31Z(Dx|L9+Y$$kIcIZIQp7k1RceV1B=>Wc5{K zjS4v9U?0%f=6FZkP{bX&ZPVzj`$gV*aPR``{I#%=;;@~qx;WNba*4wFRgYD}L z6KFjHO74J_Q>9mqd7ZUDHyYNatCwaeDC%R*xt?=1hpeID6(Yg-_D|c>ude< z%?IzyI#O{5KJ7&P+ogT8+qI6_?E(PhcI+QFti0eJ@WbCtej4ujqH(R>~8$IYsBI`GhiWZC4t4B?Yfmc*;3r* z?iA}@8QOGJX|Hxw377mNRY~SU!b5*k=0oVr_VFo;c4j!Vx7y#QEZUhdf8V-8ZBdE- z4J!{zO2FM056PK1Nim1op3{V@b%Vn`rWf5095rX=N{-jU?QQg;rD^n{=m_aPZzeBV zcJL`He9ER5?N8MjFiom8pk37(V5?ThIz2O20jl;;yF#v+GjsbZNADkO)6pN`@#K22 zy+5)CdOW!vZ13NICm)o7M+cBz?a5Wh9TZZm=jE!7aH>i;xXW)^E~u%3V67}XnP2zL z-ENK@a%&DgHH8nZtc%_bs$%-AP(85y@N!U{@NytP9PINLI=nD{u+L-Y@WT8<>Us=z zva5p|@fcA_@fe3V9z#-0k8x-QB@n-Vuo-<06+@}loy4McP(7Gm2Pq;z>|q(&bQSL~ zOYu&31bw;^^y$;6c!y1$;+^5(bB4m_3`_BnlXGXHn(Z-gg=OS1z_-J-p4N$6NBHzm zN3O#G;z*w!>d1At)6EfWIz-mN0^!zeU5|A zISQY1Oh#a0qfk9210!5FaE!%>bDf6IRSo0H)@fn{rc9N zR7XxzF~X@Sh%nYA_l-rvcB{i5mX4>Zq7=+q<=W1-=BzkDXEt|!SbRD(rzhz2^{M>a;|;@KSP)+~Q_5kCG)Ldd!kKF(u zhgqaq24*MQn4RKac4|6ir^J{=z|(nlGBG>Vhgqb_24<((n6)~X71J?mjWLUWr(?!L z!>dIfW|5v7n6=rM4RJ6lrDHZE#w-G!j#(QqEBP>s>`E}}0GyhtWg9bG$&oMsc3Z^p zMYYqLF0;p@ZKLABKwAl#k1Y@zNE7W*y}1(z z(*RE=V`>^L!ND@X1YT#@c%A9sbyg}~>I`TzUH}K}8Pt>Pl+}oxMa0hZA*M|vf!I(R zv9le-&PhdVXvDBqGeD$p>>MI?whu9FAqm9JwGlhdLG1ig#LkToGviSTV&@aF^L&VD z1JQ^n9lyXv>_Q8%NXN}^9WycV2uN(n6+mNC^%7EQSa0=GQi?bF@!u@`ig+E>h7|~< zZpf4qmg!G$&C%Q)bGZ%@buZO4uxGz(6#afB|AM0VA|z0!B{B1Poo03Fq4h7uX3G z+6fog2^ZT5m)HrH+6f=1gm|p*p`9?!PWZ@9_&Ds#n=1c_N~E5|!;8yQ)z~mDw-bix z1f}M=>XnuiM@AdUUah_cxkB|S>9=(2?HYKf1z}m})0L6=Yl9UpDb}x^7#5py>*YG+ z5wmfr=ae9rw4P1~s#j4RY2u-xU11Y4UM0kg{nSpFU?+TL!}#1zxXQ=rD3S3z#78Ge zh>sGl_EnD(&FVTaS^W!zj?8&VkK!s#K}#-AF;%Zl6V{Drm<+?)w zu0~OygSmJS3`B9;v^4mojltCx2G?Z9;F=hN5W0cEH8uucsRm<4e=P|-BOLS)&AtIn zj%!wTL~G6O8{qggI|(PF*-1FF%ud>woWp(7-O+#sk2AS+DNKH-7IA2nB+U|+YP~ir zrfzl!i|)>AujP7(?wCA@5Zohz5GA!ZJ>_nU&?)2! z7&>c$TEEfw#A&(yQT2$^t+(KwXi}5sJP4;u@m(;V4b*SRtFpM|J5fT*61R6x3|rv4 zhoLd`4Y2qrXTV3uxmSlrS>FQh0FHz8!+XV}%y@dC-O%g@zo=TTR%2O{R>+swE&^M0bb$?;!8hTs>5kI#vKgR zYq`lP1bSiD$gNhd8-NS~Hqx%wcWEQl%DF-A(gp@`X<1Pj&LJAlLI*Z{cuw%iasO7K zIzr~>d8I|{&YNaMsb`=dL3KEa+=vxDgE%J!sd z4Z5W4jhsZiNw@i|-6l}fZQji7A_m#g-m{c%P`wEtZs97Uldte${;h-YJd1_zv*3fS ze;em(^XpbpdAp|aIh#uG zA7#kdJA70;r>M9c`FHxLcnJ1`h?2r;EC7E`K!?a5j z)6fBoXUK7=zBmTcSzIXUVyF;*(^=%&F7H3#81UW zY%Y6LpVl^PY{RTRqiwh+U;?yZ!_TJJ@Tf3y`g$AB)wkhM(3a=hv0*u+m=i?Q_NPM2 z&2<%nc%CZ#f^Hc}&@<^zl`i$7EX0x(e`9ZsVh1U8Kzh30m%OvvE`gThqU-J>6?e2b zgxCyIjRR7U!1;^3k8zC|ICWQ@i_Oq^8Dp?Z8+L53;aVPzA<^*{+;u9NkN*!#%NjS+ z;|C5DxS2qu%?O1)&Hr=;4-Dh-Lt8demISevU9B!EDI|HPELdZxTt>4qo zs2Vx%>i0CamXoLBmx?8Q#0aC*z=1-tYFzVBDsS}?>Cxig1 z8WDe!h>s6BOg}auVEK2&(@A;UHI*DkO;B}E>JvVFO0qwz@99YP=RUHur~3@~U--z< zo{sr)^lBEeK38O^ffdhQHGSW;j!}hC zbWNy|*w`=a`{7@G%A)=7FF^b^pR#B_%>3W$?kE?P_^n~(VM#Gd9HeQzgCZ%Sgt?%J zv!H)umEx~v0QkdlT{k$c>jvezFsDD=1Hc~*1^`uVDgwZWv;Z(7LjWL)G6sMf9WG*V zi+%nZ%>eKl4dTxX;&XlLpMqOGgZR@nh*03YF;|btvzvgby$}8-$~w9e5J*n0Z$FGt zfB9mNwx7w!|JxUXwEawOAO`)Dflq&tW*yN~Kj)v2YW?=i&5nR>Rsy4O{|1Gc9I!JUK&eSBfw-?@{lJw9u4lojL391ysL)V%!s4nAd4I{HaR=v=D zsx^yT>cm-;kUEgw6h#Dx&1Y!SF_&82GMC#NLEokXecSXm7c}0`dW$YM73Ok#nz`KG zxVZ?6GMdXB4j1oGT)e|F7d@KL9{NsHvpw{khKGiyRKpL<0P%HfP<*P~ zREY1vH1R!{L40IU#z66q!^MXb7auajSA}QQGm&ZY{lmjKtLZV{pKE*AGuNNi^uyD! zY0Rz3g2!*N;PFW6f(MpQ^b|CA@jRk1z)F<4aX}V4u+qZRaI!@IC*G<6!ua*tEDw{qO5~?m&5=sa%&70=>Avle@wwQ;cLHQ_qaW@>*Cuvbdk__`} zi-RO{BK|SQkv^sz>0>h>94+2pI8x=NA{;%Q7LFdz5RS;Apf-1;CDC$5tRD$>Pqe^!ZJ=5Jp57h7Fv8jQ| zrkK5y$EMUt#I+vw&b&R-V>dr4Bgqxk1HYNwLKh@Q|D#lN5oY)-Y-- zX5gksa5>ZKuLy3MUjIqQUp=Y()sr*8>#x|L*H`7H!t0Mr^ZFw*czv=cqt_qhaB-C4 z;waPWFHd7wDTDZ2V_2zOW55yTNn;2Fu4l-e0;={5*;ACYv4&AwSqCQno^}aLtM~$s zTEnQV3_4f!1s=7Af&BIY&uSUCvHqSa-d{%MsSyRbZrIN4SUJPF&J%+E2`fGYzvyS1+Ud!W} zbqr_r+I3y?s#KS?8gb20NzvA|9oH-=rfXg&gVu^`UegTm>xf9|1=n?m`kMS&LlFUD z*UiwTYbonmmhzk<I@LyMh%Kjm75Cjy_P1v*D{EYEXvsFeBI&V>xzr7 zo8sGm@wiV0@wq{wk0ri0oQB^}4Zkr1#Mh@m@u_lCA-*@$#P?|4iK^aqIjd{(8`a+p8BXH|MFr@u3L!^&<@8_>w; zEh?EhdfPuML-#Woy1y`VOE8p66;b3OQ;h_!UF@G^?0)>YZ^YsQGGHOjFoDGZf<--N zcmP|9+Z;f#4$RP|t4aggRVA!`Csj$-E(U33s^fwW^eKyW!GnPKK|W>CE|~cT*PSF2 zl{lzjrl@8V|?COhjQj0Th}`uPMtZX5$_z86z_bj zvi=QekerlOZatUJss@dLog5jMZ?GxJX+nngL z9^JP&0U%EDSoZxhX#Rg7l*jiXJwIh6TR#iRG?7W<8sp@AAlRr~T#=)i2-Ls$E zpsK2JQ=zJ#r>W}a8B~=l3Tj(r@$6qXT>L_D@e4~;3$;@+h)=v*LVTxK;``ER_)FC= z&OM#(;zK}a$kV8DQz5>u(!_@oS{n|`WKqVx=hqGwzgArQ+7#bO49ury5T6?;PPN4M zjngpBNacjbH#0zdr#2`)Rcf}rEo`fSYOU|ERMq1=!e#a<0T9JxJ5!qBF_av-Mz37Rxsq29MsPvkY>s0Lu?hksK?`6E1&DKqpp&lweb1T!RJSX&yS`{=M5=f#l_l~Qs%vBOqbMohv8!6 zU&_fC!$X;iWX!*8F!KF}Jl8I6zz{FbAT8WLLetb{O%=OblyHbvLh;9;65@v{fnrke z64t(qN;s^2+q&6U>a8>KZc2(;}TeU*g^;Q$>zW`Nx>gE@6&A1l479Q!J zvM@z&f3we<>&cs&kbjHMo9oG&n;P)uw`Sne&7@g-a}|4U4XM_X>%Tez`c(<&*J)Ik zTO)<3W{JJOIr#jh@cGSDm|LhYx3wQ)Zm$z!ZUcxrd|pF`80O#U^BOwDF#oQ)UgH*W z|IS9dMpRO~2D-eK*N_y`Yuued3B+s26$$LAGhp8>#!}Ds-%Zr-;MeVn2oQTuhBjTr zyT?+z-yK2!t_1!2G%DUbQ>S=;IQaab@cF}1yyS%MpQvVgjXw>q0lwYae)PJ}r-wRv z-3t)+`}9ypuX~-Yj%d^U4eK3Crgn86$SU;v%<%MpCG^P-lP4=CPo74hKM)DMlEvHn z<>2#|!sjnb=!M#Y85kiJmte$$79;+48va`~{P#36;=za!nT9<7IQaad@cGAN#Qk); z4`pD4>joaO81b*u@c$$4J>aD%vhVSk$2=Sr3@9c{^a-i*r3 zJj{X-Oqj!}>#lLlYg)sa6?4FxbL4-{t?H`k>gvbL1KscE_lJ4!&D^eV>fUp2Ro|}Z z{zG;A$80L%4x@;M=AW4fJTn!ZnXV$>VLH1L%4~gU@ zCrcSGs}<;yXJ>OPnHHt;eq}1JlntcvkiTMo{Z$$!SHgoD_y8=)@R>|SZ0tO-;eV|P zRayp2nSH~@v@n%dYAXDeOy%8~!6`l zc>>Zo@-LIh6X4E~`%Eg&49huszfR@J;2ik_I+f?kAJnNlPcEy0JEL<)oVjNF9NR;B zZb`|p-3fnvnCsD$9NR-`y(!OE;XYsK!rPAgh;)&9cb2=*#lJCqwUsS=L=C~D^6&sr zo&w)3thJ_6*)aW?=j;!2?SZ9pe!`;~L`s&0ARgmdFOfyTh|tEPIQ}^2*u-(j^zkQ> zbFA5l%=%9T;@&+n0^ySakGBMVCxJg68IDV?ClU8D6aIzrbP!>amqmF})j_Gp`0fb~ z`#*ZvDW@A8_EVu@>C=t>;P}&_Vd>Ki9)G6MVLjze@Xuga&iQAlgC9Oic;FkZhLrGx z#@Ts{&4g!6IDgRST&MC}o!{l*$tCdQ6rP+L&YxCkhG(@irR0n0O#fvn&xt^8zW7-j ze~!+UIIc*>z8IBVZ~sSV$I5ly@tBB|aE#N)4oNUFC3y_i_vK2MOZ)U&=dB~#b8uQsaCmtC)Z zRTO$36xs}W^S|+IN5E9xt8vA?%#Sbem#Fx)22eRIDh^P0>#ToA5R?>W0$hMCfW(p{sc|L+RV?3#AFo|qfpe)Qw)!P9EuuxisA83+Kd|SQ~Mv+6E#dpi5j0IqJ~J^ zsPSn7B#@}_kvju@D$deY?EjR|KjNe&kql9}*jh=+Ri zN<2trg0KmD9ON`c{-j;CG$m7)I$t$FG%@-Y?n?hF&*+^KO75(b+<7*Q{*^I0lGQq| zP{&Gtz67566rTA!qvt2c6Lsojzj$0s5np?Xm_N}mwyW@zXa3n##Med<4>qER1rm4` zP!biAPIc){6J#5YC}4b4AY5_q~OJY8Hxz;D#b z9lO)!;Q~IE*}_wE=3HhgTUyA=YK6L7XbyH6rSg84RNlgFDo^EWK&-^hywbu%z-@QX zh56#NdMl?mJlo-Uj@p?g3gg>Q{!%~svDEcYo6XZb=eRlVTl{vDG84XIM$e(-gzvr0 zd8MvSKJAA+?AACZwKL&IozYV$-6KEgjGo5swDq&Ow}2U$bM%*#&3V73Y|i_wjm>%A zGOnhj+kV$ep_I*e-@G@r>PLQmgw>fX7Uj3#d4)K(#iabLlC2=@Y z4dG#=56le)N?j$Z_dSD^f`?surLK|~i#{_s_6L?B6;Y#QS3Af?^0-i)C@NWqmgHy&sx}?&aVfmj> zo_-?Ep%NdZrq2OhN0_ORws z!}>Q|J5%u)$CZD#}dw%`io; zP#mUA_zvW7=f}koT3k$NaWQ8;s^mdO7uquph}<^ zD^}*^ug-Lx`DYz57HA`4%#S7(47t|*Dq`?>mym1SFWU+$^ZU6-paQfmbu7?r$+QJ} zWuXQYT3OJIMGJ{Se}+P1von?I2+dr_rLME25+)&c#4s9tY>`>V;YCAa(Q$YYG_hESEIJPJ_~LD46%-{FtD8J5 zNw=&ljyJJfq>?yUg~}53YgAcLKjT16082olZs=M(5xN#vp=9FXbw^|UnUy0 z&Y&)pFwj!UKui4zG+(ApnyYf{p!w2iG+(*_no~uY3BNY7&RHg*#buNhmvL#nG-EpS}vI#>ks|>yDpWrTi>U0-X zt{v{uJ>NTe0TK%H zm3|@b(d!#LEu_*veJ^ zWRkYmpFq_Cby8K8YX?<(r%|U_Pp-!HHsELW={H z76-cKLkyN=3X}KA)PC1FncB~m1|`$_p?UO= zc~@D{T+$GfPK}k!B@HpWb7Y9Qq+v$p99=oQNx8C0c$0Ev)$~oul|h_*xy>+et)a4- zUgd|cHK1<3GL+|u;cE?*)#N;|vV64sl`i6&lqAj890Y)AmO~N02z_Klch2oO{~E+nPYl4Z_DE& zlWQ`Qx8?Cs$(2)Ou#7+)K!L|wT+)E<@oSApv&_1V%5cOhp}cVpFE2Yv)j=sd047rz z$zhMy!w#ncWY}Xu!_ujM(P(1L(6DqWfX4%mU}$?-W7M$Jf^aPi%bk)2CxYo<6-)>J z2~*NqbxujDTsx+u71O4q6&sk6sG>||Rl}6nrVGWC zf$-Hn2?J}VZ?CS51qaq)m`J(W$K&fJ(@ExP-`G0B$hZbvXC0E?1SPu8I8oq=+I1x4 zMy`VossxHj#kE;`UAoSCvyK?+w-GVcLlYZ>TubeJtMK@SA=grS-*DW!Qvy%{+J^O< z#hH?+XK@=fs?ZJGShSHSbO;n0o1LjtN5D%O8xgZr><0X}zESbU4WN*S7(=nKplB;1 zZp@x+pBvJwn>5g8l1iJ*l1iJzM+{T&lE(O1$Kg#wWYKYWJet@nL>3)~d3^IW6J|n* z&FUr(OG?6QbG(UP(h!N8Fx#R5jfxfZQxMbyumv>gP5?s^p=*c=T|@qa31EvlCjeEh z9TULHX%oQ84NL%3QG*k}DhVyFqO`b*I{|D)huE?K^CcZ(%UL?amcBzo2FHmWFKMg_ zsD8o>cZcZ{yQHy|o}X?JJZ9q?3bIf`UQZ(N- z8nwQpv0B1Ft0@Dm_9xJM+d65k%C&>$L(^zJv;mq^MVZPfjjVHqCA2t9X>piK^KD4; z?PfilZ{Nmrz8#v_ArztYbk5^Dh9b0{&Ut*NHY4;lIp-yt_;2UpWrUL)afp& zTsz!lc$&KmZ@^usq6Xb%L_&)rlom&L?xLq;9ii7iH9tbH;Y4UyJ9^4U8|Rt3g}g_v zZ}1e6%I+cW(d(PUQ$#A_1H0GlEi9S37~Z1+_YkV?=AOas;Zb#DLdheQl1KgtR7Fy% zuB56e*AA+VN~7wi2B=CEWhyH-64^&5v^ZL6akNL(d?oM@nAAuk(Jf}aJw5Y{Npw6$ zbv))zFyEeanopH$hxyh_GvAsGn2#!IaQ(SfLW^rDEw1I75Bb)7CGhl|RP!Y#ioHDZ zjZJhsR&_k~PcYwJb(&9=Ylr#PPBY)y4VaHAYH*@hC!xi4lor=<&4(B)nQe7RqqmpZ zUtvzB_OqpRlWG0Xw=~wBgT3lY8Yef&eN@y?F^|Y)jzUOS3<>efH+7kX4Mf#VNoJ!w zAr$Ed@vyUGb=;^UDJ+MCrX$?j+V6-WD{P6XyCt76$jXUKCt~0zz#?U zw!Z-uX;0U1tXp*})-XhMNwuLwsb1 zCXgMLj*L(0(XMP7Pe*nLksTI7W|-?BJKRThL;~57>Bx?-$V}tu$POp6BSXlHrwFo+ zz|>SZ%13szhs-F&)K2gED6WFFZyX&!puGg$TMs;j033&_97_PsMYVk8xK3#fsGg|f zI3TcT2UPEnf0pOz(gBa7Vvg0Y1cT>*F9*SfRv@sGL%_6$#DEojU@Zw?rBq-=t1;bnTfj;L))E4y z9Yh0D954I8PVs;lj=K|#gmI5WmfmF|I3 z^{q$oJ_vDEXdSurfFK9-4TSn4EI3`;AqOblT;HJeo%4kB=;`GN_)pyCUv zzM$p{T7AJpUvRoFIKvm5=?l*C1!wz$b9}+MzTiAxFv%B8_66tr0^Fi9rotjrNr74U z7vZNA^lQ#`pqVSD^S9$y%8kZm3V0Y{2h{6_O(6V@T`+19W15uRA=qLLbK=Ppcq%Yj zjVvdXxir**VpFu_cg{kJ9Rk9_t2vx-yRwmBCgES!|4rFZ*^W?DQ>Ig9W+wC1C@siT&ZKv7tdTiB@&|IUFL*}@ zjKKQwvB``E1LGEhN>H(TU`s|)n_O; za&tZ!R=26cJKJ*bx^$?uh zFoLr!f~a)|!P!0nJU~oF(j^P{L_RjVF$agOD7~|b`J%3oXuK*VB+{j<$duYtmFn9e z+c&CcMN%qPocn`bWW4$}u0tlXD}K(IJCpeuKYg>=wKJLGJh(X9L7C*7!hhoPpcv|0 z{O0W_+{dNMf%7miHD&poJ?W)0yD=8}yaU1lZaS%Is$#MtNXoF9_k`T4a}H-JJmV!( zIgbt%wSYH-Vn0L2o(QVuz~<#u=LH4nBpH|!XY-ZGT(kC0281F;KtJj&hE)L;&w#0% zU-T*f*knCi#OoVa3wFgFP6!W`oew1M`I17^NV)e56umazeMur5$JGE7B_z*R6FF2|@F>)uh1t38~e+dMD@Oc*_x7 zPW4_P%w(om{6gkJGIS9;ge%jAPNTWPyfVi8iZJj+7_p!w)j|D zi_-!vE`}DH55R_%ak=8H6UQ$zaeVhonM4)cTou&V)rH#wk@FhrF;^OA6)8ISm z+dNV1pkWNa3`|jl2Coh@ue~y(hhY){cILr zFvPjRa&zJB()bd}IP8sS>XMblafX)CDGqOph?{yi6%M{ei;m=3P?hV@k?JSCqd7V{ zSsSB!Lcpl4lh5`vb(OT$52gTb5aUYg4JzDmV&4<{E6$Mrxzc(J_xOXEp$RI-VptLS zD*6haoRiHij~05U7S5WAcQyyU#H)bLE zC>)1#Xx{dg{G6#=&(LxMf8EH*JaRC%o>vWe z`XE>8cp0|Y zgtpmZxruuWa_0QM1?T)*f^+_@g&*<#F(N>W-o!K4ZNZuU@BizWe-kW*Z!h*2+)2>? zDBzBu@Gwr;`W!D)xz&ylEB;PUsGidPLB{-zPkuyZSIu%-gqHuZ1qPn|^S@nSsxG5GOr$0OJ z^k)r(WpkxXvsvUZ(EYO6?pe_;mx^f%!67(SxV0&5q1YvLZ7OEVX1ha4*(_Qqu7Z{j zdso1!ja%TdUGkN?imOtID^m%vp(CY{$zVR#$3#ic!JX(0Cp{|VdiM#?SQlGOYeRy| zJ>D^B6Sh$-rrxMFF2A#tdzDkzW>6HHE7?01=%r1#z_^S0zcOyh!@CYaBA8NyeMC^Z26)dni+~0n<+YM26~_`#Ux#0^KgyLRgKL_ zC;(B9gpwrPY%hm}bN}SPZ~F^ZrGLGdm_QQ+2re6J-5UNq2urx%(61?oZe6?%Rc(cRS_0+XdWx`*4lz zRgLYnyFWIk-ThJR?hHQmym^PfdGii!oj03vBeTcZ|2&ezVNfh${mgSim@u)HyBKDHJ$%vVo(=tWOJu!z&86rsj|J;=czNHeYdsv*LfT zxCTMl;Wl+@>bEdGmQX7%WbFF>CC|&<2=KCZ%#8pq#v;Hgegxnu{#j50hK6c7W$_Iz zIn|)rWFs)2+*Wx7&W{(3*#$I2VR;Ljq#y3o(cD2@k$hFtM#^~1d964KgLSS}3ZJGI zN5`f4%In235IGn4+9K3zAkG`bHS4dyCyZfi3OD#(+PSz^;f~^G-HM+rtxiBnyA;P# z(xdoUZ+%LFEY{BW*#!evVQ6Rl7ZPsS#731&g->mh%i(pf^>txu{pH`#XNk%Lya1(5 z5n01E2#gZNgExJ5jdWSKN}Lmy>2M;5%IXa-N8wRhJRyx;j#|gI_*QC*kEONvR-i@P zqawoic4~{Mm(1P{v^dVT_)cnz(+oxlgdBAroO5R?@2D0ou0(yw!ZId6R zHu+w%$&b7yH?{42oZ3#bt;tc<$6h;|*>*ljZ716NB<+xdnaU^L6ur4^=hM`7K2YOw zr}|I5cDAtXe3sfywBgPf*Js|iwzTbhp4LtgQPFpi&%JiGvh94~w=>JDw_9WS-L=is z8#e5SI={dqM=1P6PuRwG`=#HliIg7;e1?i9YC^qX%=l8pj981?vPG4W`zqWb7BkW! zchX3U`i;r-hc-JPSIwZTyUG-|`!{yQME|(`>3IBb`_ls0_|z$zMZhj@4=A{!O;c%C zt|#wbYU2Hv;JCq{DF;z$w~nfQ7N795TP9Q5?NAo%Ir08pZ5Nc8`)jogU{^cMH!YCX zGO7G^2AyCMW!C_;dlJ;{xzZjM)b0Sa2SDwS1QjfZrYQ&6ICw1ZnwxgSVtP;Z^UzWg zA6h!oiP_g&X;0h7p4_GlVMa#u4M(K1k9*ot&D~V_wzz{j;4V$ET3S+)vi-TpRH;sm z^BYE?%D1xO1Q?3GW$ns$QS!t;*L6OI(cvq2;t9M$V1fPD^vL$-e4}{ z&Gb&?ozwhk#yf@vp%rx*?{~N%G^8%$RkQwSK8l*lc-dY&S^WcXrJ99WGZoycn;OTp z9~6rc0F>Z|%N*E&MX~%~HG}}(bx==}+1?1y2PCH01MC!gKs3ebDhFViP*e0ynM`vI zUyCmt$okLpocN4hcA(<}x0kR-WC!AfCqd&kf+TvcHp%EZ+ZkG<9f~_Mh#u&PbH!ae zu`o5IeP{+>n!>LR{ME$vGy?vK-ex;HpMd|MB>sae{)2L*g9QIU87v=J^&tLGs`Ric z^w6OL+Bul*JlAvLb5;)r@1XR6h1J2*$iZ3(%|Rt}RHHrEDnUjYY6X_9cH}6VG0KC1 z=wSX4e0&Euha}+~V&NPja1M#abV#mrh#t>w7!U8HSUQvqytw4V7nf4YN!akv&1F1X zh8@ZuJ({@+xDJhv9`0mmI81demIUBK@j@?$C3`u{_Hr0{ISe528!wG;_Xy$Pto!n^ z6JN$&Sgwpw`0yPgomTc!|?*bBa*!wVS70Oy&NG3kH8y^ zaE}P#k*xdbQWIa*Yj+era!Z5oNPg4^=T-=h^bjUX6XD!Icq9-Wi5CzamF(px+sjet zg*R`;Z@e_ZJtKriv+nezCQi2qkKW24JQ{V6)(GcO2#@v$AUr17 z%Q3c>W6;Yng76r;(Fpe}!e ze21LB?Z}jnhCGgq9EX?I)!tm$sc^K9eY-C;ICqXgcRrrHWSxhkigbPs#g%s8Jk9ej zG>B-|m3dS41<5vy|!r8JW&lQKlv~i!&>oovbb>1Mh7KVA`D3mt(36 zW_Z%BFyWgs>J9Y49&EO<+9kDzY0NxGdVo6$^&2V;rv*$0K!Ukgw}_3}&AI(RisRub ztyeA8dX?U2EtXm+w5_kYFuTr`j<=(e!d;8|Q9!3%YXb|wj;c{$p3n) zouOIU2{sGBL81-%Cj>SUpFqmxN++NoS;I#;#p^^L!PYbEW{Jw@DBa|9~cX#BJz?yO(wtCcF9d6uh{Pg>=_E^sdSe}2-+SC`Uea?{6gJRv9oMY}dB@V-YWX(Z3dYD(m!n(p@l%=V0C6i}8YJRY%gGG3LS%0L zx@~o^w@3#Rb1ASo7`L~|S67U#d%4Sh^wvLl*^8RUR99@{s@KGj!Evjx=o@T*-d5G> zN^M^C0_uEqNCQ{Bs(2oQx$0G2*)yqY?p3^FuDMs@c@O`|f@0M+%`H)M2+h5!m>Un@ zLq$YUG#Fjt0zb!mAqqcWS#*o`P^&1XtHAx*(!}4um z-myuYf64CezS90s#rVYT@9HqW<9v1XC`3BjSE#MJc5PSDDKwL>4mWP%Gy}A&2i!zf zyu;gYlQTnZg4^r;1#U8;Z8sTicXU_R@QCe_ex!HICH;sP=|}mbC+&v9wFrxoIw;!e|}*0z0~^V|+Hy?o3IdKDb&s3(1k63T) z21BlN7P?d^61+nNvU0R|SbdxsqmthSJOa7wNC$qMKNyMbJ1i^s*VI%F;a{tWrrhWL zNsX~;H+e6*z3d{2Muk?PmeSdY{o>~o1N+6#My})>Gt#s5h#`sgi&xh~%v@WkkQp4+ z8FaB$1G>N_M)99@0_}`#pdDPAVT95;WxUYDh;%CgO%GhPjnuoYrAJ7^ND;G(59sab_Qt^(mbv8lE|zI8)!iKvU^lDEU02Au&o`7fN0~pqz0HC+G6@{gGmINuh1yVc9Vex@%T>&*g#!JCsyFQ8?~N0D72|OwJZf>H z)E1{pi*RJtRHyVC$#z}!iC3?1RXl2Es;J&^mw zs(08u$j6!U_ITCpxv1D7QUUBs6Gtk=&Wxz*9fMu(G&^16adDaIjwxLqi>|YsWnSNz z+LLYCz2jkY1vo4o-o=?`61MXerz}{UvXGv5CKr#VWZ~kJC6uHCW}M0RnWX+q#+1Xm znDC=0L$>}`cTvN%)4CwoRSnZhxw5EN!@F>pyGFx|YGUw`TSY8Fh80CPi)X4kvz!_$ z?4V*2mXwhdcH;#UIgAsaXyqXgcTc6*-I@fdnrd5-Atq6zh(wv{?u3meRzXWb3jIbE z07=wm9X3xS#7+WakKi?)J?AvMJu}E5DKIL}BfHa`%j)L`F7TbNR}U?NR20?k)=J?johTiJ<;4kdFrOJ5Cm?Vw< zs<&Eu1)7SFRmfHk^0}I?CLXe5JS8v%MvvVYn<=zJQxErM@rLXmI^&$0dgRpcAR;_i z0NN?1NHp@5`063yuVLXU@xZ_@gK;&$-(=Du(vJGXg8SYlQqB2!EU#)nmfYp){HIu1vU%@ z3wnmPSc@gamcZoV!TKRF4Kl`$;GH>Twc8b}EZYdPEdm-1KY@l{0_{$Xw>#A~F%|9N=GpvhJ5xes_!Euc zr+S7zDPj1N#qd*IyJo5ZdV(EmI#F!_e zLaA5{R!C@&)L?}&6hp&LjrT%kQA8TH5KReXPZ5PjrDGLHaBP+;*3cT3`j-~hT7JUd z#U~72QZMx{D~^R=nF)iV`_QqKOLL{m@X}pnyf!ZP+qfds#^t%v6?o}3II1!gCcK-f z=%+t`Y*)s~cBLiTm7v*`LbfZds+3TZ_)2N=O3mL^@^>_voEC3#nr(6#nw%z0PP0ua zq2lkUhQHH1{+q&_C$q*x=9OGI0K3y@utPJBVm*xl6@l4oQ|?* z8nW|Htb#|>t9+tf9U|&gxzg2m>E3;^U*orNZK#cFa;0nW(rs{5XVB33>RBO+PjD=L zcB2+QXUMw2&7lQ-Lblu(7Y^G(RQ*$ZzMz$o$Xc46^!<(W65 z(SdlYR&n|2MM7*x#87s=A~t%@S1)dq*q6*%Vqf4A8|&0e^DO|Xt5v#l=eEUf?%myw*nW<`F7%PJ_GwD1kb7}Dmubq7LGHV-uI=Nho z6};)>Z+>97B@`I`mMh(Ym$tP(o!siTaa*X3TXUt` z@N)Qa4GEX8UKg_XWscWf->AiJn6nm-dEE`v@%7O0jg46RI#jr+5sS0J&9k=njYM-3 z%Koixi~rrX*6kr{{XJK@9j_FN|HE(NpP@GXkt_WZFUR6H!*`Hz*QD$K>^PUpRB=v} zsa~4lw;9bLoUYnWGF{w^-;NOT#U1ha;tuOOcVND_L*|P+?0lhwdJ4Kjw{`~#;-#me zGdUIQg{JR}H+`pV`c5=`r!;-1ZCVM{RCJ38cX!%oDvRe^VbJ(gbenMh&VgnU;*5hk zqVq%+o#d;3ZPEZUX{Wz~ZU0c*cW_IzODcrZ!fmMVPsRO21z)Wa?O5TC z;#r(WoC^8somR2_JaU(4)~YdIy?a)gy{A#l-aBVCdzY)(d#TxbFz$afqS?Dq;l4&R z%L?~HF`P&4jA>Wq5sG+P@-L#f4`m-PQH6(M6})-mE=5*7%LWYz9)(FDdVD?ru4|w8Q7hU1QXSR@rmj|8&My`MD?IdR1eyTN(uEG z_@Hj;K@`*z;JKIpbH||FhvMx%WSe*h?LH*!K4d#nLNx(C9lYfBjEUY4dDG&vu%tUJ z#=ijeG!UUTC=@UL=vxTkPQArRFeR`)jGKpKaA#ypvT*kU}l_J_v3%!OL z%T%9HVS>ZTRG-D2eX`a6@@$7!7@#DyrhZ@QL4Phd)aOG(ott)j4jnYxamcEGH%oSN z`uXaMkf6(f7*4crF;jisK+IQPYBZ9)JZB>rZf9&S9K6hdy#$wdMMW|Px2y^h)Db1W zhzhT&NS3IOpcSpc3a>#i^oECG+7b7mh;tWiaGa^Win7y9B;%o21#j+p#E(M%4n?6y za;1OcrF-}1u1Ebg9t*YcXs+}aUb+pA>NOe~jb*C;O^^*rcD~d19I3AN$G@JS%p0?! z%$to;=B+tPnb%#)yhS6u2_wDT2xZs-RL3+fVT@06pkAm`zF}L8HS9${gxaU# z)524BT6hXE_bIqGep~-lLd)!@qq;!Psdw*+P3;M+5>FqHFknn7-^k2Mm@BU2moZrUtp*Eh& zm7d2-x4}_;MMKL>^r7`vO}6+<^pP_YeFHtj7cbvJ;*Bv*neQ5<%=dGaGT*qA`JP6? z?QyF=G(wqgQQ^l%D8mXr&6+Yl5Y3M$t8R815zJF(?Be$ezPVovnfrxY=|#L!DD#rv z#>=5LUdokT#>=71Pc*a&NBXz>L1v;5moUcnIZ!XyqAk3lF{35(*0gFQ(Zs~wBO&II zSK{-?D|Q}v1#uWlL;kitt%R2CujtlZK`DJcbUwJ=VLLSaYP{)J?H%i0MWe4u)34fl zD!wZBRD2b#z%U%$F!)vXG)Io8`vt$+%Y^NG^|#^$^q`pR_eOo@4|V&-;D+Q^JvV+c<7L?TSrE z*$j4UpkkI6o7{@nv9{LE=smWvA7!Q%!&0B*nT#~Dt&fnsXdPR8w5wH&LXrI=EG(@OOTK|R%AV@wm$J+&9TRho1p zAlPehg1u(jdkqA8O$hdyCD?01u-BjhH1itJvW)cfnx^hWr0$Yvd3wC%>9&#S(#Uja zd%Ep#Iy#)Ls9S56$qS!dK9IV#jxZwRmL>VxTo5S`)2)v3wR}++?Z{+04gf*rOs%7E zsEvJawYe2RZ66?Lt(gP`Oi_G36S{w)!;85|#Chr>A}8tO4G*2R=5Yy!go7g7bp05B zHi(70{DW9Z842~1KY8dgUz=AiAjqTXc)8<_O$M*~f&7h7Ab&kqdIK*Zi+YBRvzh8m zzlpa(O}v>ay@i)*f zgc7!Eoiz8+-n*9OLjKNRI(qS>a%;_)IA5DzO1|sbEK}=5uCiHVvv|Ah6!1u2);c3D z*5;d~ODv#blhY5X%}*|(7rfN&faE}FyaiMUOQ=RXX#rX1vI#=wWE;JYeb(dQA6E`L zy%)FBd)7|xd;B53_wmwXxrAg{ z7$81~gZRLL_#jvMKtOx|5HsQ+X4w8_p!*pDVunSggo-Q+YOn^xf_HxOp&y(+3I(SRbES{)(!Go4 zI05cszl~2qZG4<7eS(*6gQHp$wwj?0!9UU4=&u!lZlA{K_Nk@Yr@7LnLbp#rx6k5q z`^?hqGtlibq1$Ix$4V%iM>C(H=TG^Ax0>!#NcTn2|L5`kKezpVo-2JW{eO=Bzlit$ zh3)?f^p6u*{sl>EXHg!A~~q&u6{ zbWZ_Kx-UTrb(>{uTuRa1=|||E7_QKLNicG0MfXI7gepi3R#*lDA>F^g%Z^6qP7&$8 z6tOOivdbE}^H8jUNB1v%s(uxs>X*6FS9s~(eY$_`xA9G=jjwa1Z}8G>a8%2H?q6s_ z@K5wM`fEj?+qZGLeQW9VZLajK(Cu5$?YlVLzO!`u4n+G-==Pn}u@Va1(ad+~`CI5le(@QB?* zNc_Dg?WySQi1W2xQt}5&5YoLn>CR>~-BZAm?mbAMp0l94knRVxr)K=*cxc^TYQ|4! zKs*2=0TI{)k-6_2!JO;h3C(L;%DjO zXS?wHnWX^j7d)xz%rE<%`DK6eG=X0%l3!5j7kz%zTNC4Fh&&4P5p(}+rTJQ4btV*( zsawX?|1F?ee|2vEv*i&iif12kAsHB=oKy8Db^0Ot4B)9#3@b_4nNu$$@@ybl8dSVI!{&cM58n0D+VaXv9L?dZY=v+)(P`M;2({{_ z^YSdJu4tKEt-uqy!EIL!qzrWJ<<%*i{xle{S5!^KwcJ;0Il&krSP{T5MsdJj^ne-p zd1tcPAaSZlOl_06=CfA6F9(l*P4f6x%i~{#$G-}Xf3>K71r_i-r_ygp9{*-}{2NOB z24$kxU-6EA2#Rlh!+Y&fS1`&B0g~U1TZ=dSZc+R$D1H|dzgrZ)qkTNiru2t#bTpYO z{b3RO!H?RLR??pIJ4DuJa$Hdi5l{Nvldi1D;}p)l8&-mb5l7RLr~6|uF7nT z8(Hw%z=9CZM1nX|Zi*vlvIv?`0^f7Z(Hn*q*xTLb-+W zwUOcr<*X$c`4EIfOO2SNFN_jjC^y*#Y1`pYmH-vojs#6c7pD=UQ%*Wgj+ML`g$iSe zS3&itfrc)%t;=}V)FZQE;|PgqqKv4;7EOtetEfV2YFCM>DAo98)I$=D=WA=pIfJWE zj(<#qTnev&;f(DBV__^Dj)hIP5D}FHyUxpTQ zcUEpGx!B@VmgTWPB_08&hLb;k00FW zV`#Q`Teff+zTlr7fEPR&|Kh@~xKOTc98g^hmAmFd9&o6Kf;1{^NW|tGWYIto8cTrcS>*F?j%}_bx#JCXJ z_143oE&;SoqY5lq7qH{FgD%&USsys_e;c*)$qT+X&+3SX=p&Qa06}R(+;<}UoXL%N zBwPNa*pzNp;SQp=5@7PDowtSif9R(!pgxYR!ydlCH5*qh>K zS@en9YhtL)+49_jR$FeN<+^5CSr)h0=?WUn-2nyUpOoVkiSj&wa`Oo4W>hM7N5c78qJ`TfER1PU)ecUr8u!@THtLHD@WU_)b_1wHF* zA@(#$l&yPkG;|jivK}|@ zv&mk%VEn*BYj3D}B6}gke;Ktdx1dr%w!BcFv4!NI=zK*wLx=1@hxZWCAt7>N$tH{? z13i6>53)JdBtnU5TSCbue+5A`a-rXfq#q%OKN_Y%tVcaC;*%9Ij)-oC;gJyPHXMT@ z0pcFjvT*dd_z$XTVTg2%A~u?%1dRnzB*a&dA|Vz9z)f4`)}Ez|eKjYDX-21RhQ(5j(p)Xso<~ z$}T?gQqIoxjQV3S6ENzJ;`+F$>5vvyQ~!AQM*Q&bxK5c&aoucoV{8H7bF4dLSI7<~ z7AweDLGe+R7);Hq5EYV*10pi@wlt-TXse`XJ0n^sYHJ4)6K!=iU1oPRr9_E@ReVfj z)Q`fc1i;yhQ!}_~ZBzcv^x|;k^nk09*nr@fD2@g)HQe(OJ*q*n%udRVXiIL#UE8cb z+Va*6!L~B^&Tw|gY{#5Z5QolkyLjzwUVnQyFDr}+w5c2zsAbldZdBM3GYCc5^U2UA zAPtuPkp>DOVKF3Z2?EWDvsQ*8^HWw13%ZA;uK*R@l=wpHO2ma(z6 zEz@l&(~Cb;xxbbS8WRzABj7D(4BP`WQ`-t{E2wyrPzhw}-d|0%t$nE5B%p5F2-Iy1 z)Pie)6s)+JXQsAo2&=J_gLOL}>-Gt(J2ZlIdyCa{2PLLp-Hups%gm%+4S^i2JNj66 zN?_f&5v)5|tfsqktUD4b_F5&e8eThCck!|An!vhSBUpE}SWS27SP?fewcSEkjk`Hm zclWXGk-)lVBUtyaSWS27Sb2BM+MWTdItt*3b*;S!)d|kEy$RI`3;EhUn3d`c0(%*x zCgh|8-G@N;)<6Z77X(BW1%Z8ir28e1?%x2?eGSrjVgPSjSlcfIRXb%2>H$8~0~1gW zY5?j17HScJLj9T9-HDy-q|h!Oz=Rzv{pk};@< z`A`o}Ks}-XsE1jobp(JT2o<+AOhVNj8H0MH5A~=7)T0}KdZdL~hyNcfJs83FyF0>Ez$riQgI9=B#5p^Mi+PJKP zy6B^BNuVyZ4|R)0Z8}azT_oyK2(|HELCq(OG}X#J>Qg+_W+iKCr*~bpK;@(iAfi*2 z7~@X~p)(HapgYw^cUl@cQ#&2qsdb{meLVF_3rKXF)t*U#i3k%2&Itgu3c)!cB44Z4 z8@poanP7m{5fG|0cSS=Me9_dPSL`v&+}$3-+?v2Vv0a#J26H{}U?M@|zJ8+T7-;R5 zG0>;`pwCEvKC@k*Pq(1!2nS~p^cf-0+ACwA&+!P1ECoDS-@5VQNySuNF$`N#~iy>b&8K zd~_R)7zu`W0?C99w!-3*M6nW+i7Q4mC7CE9)0iX^<045W#zlq8O=C+&jTNrO0N4S! zkAH+F8AgaY8yqUbD6Q!XBL*Nh?2gM+l5wT%kfN`&p`H?mJkYr-G@Uy_v)&*it+%Li7PCS#U%Emw zAGt!aZghnvKs!P+au_bkWn4&Ftz^kryNDs*NyFr87uUV0Ml`=jPo54PFfPdvipo^( z6>ph)y^!($V$ult=#^k!4qr^HmsTQ+pkCrbosxh$wGpUO4AjU13ZVi+)RHIGST7;g zsUfU}CO8;jz0}8gSpw_jjbOdZVl~~R>-AD%y*z}~u-CzQg^%^h1lDPdV7<~}HQl9S zy@FV$g|HfrcCcRMW4$_o^_oVoUTv|O?$WXHUZS;YLRgKj3syc2qN#SRkM%kat6C%> zc$?bkU09xsaHmjlc0uJidkpDKKGK^LNdMLV(whv@$k(B29hcNQeN9N9{*6#^ zsW%B#J6{ayEk4v+6Hsq!0O~CksyhdyX!SNiy)^_?`(6y{-+idJC!qeL0jPhsP~Dj+ z1?oQt6}QVwYE`?QhN`^hpFY$(JgCNd-1#rmb?UhY;9zG$riPseNle-&W0>yrG2NAh z$(?>1#e_W&nHu&yBruuzJ4=sNS<|}-$#LM?J%r>WP4cyS>kf#qB*{I-xTfFq@PyqM zncBS?GiUMSOzwdGmk;{B1nB$Q2l_q(I`Z?j=5%Zb$<*!-p*EAOgZcp<^@9o2548{V zgBG>vI9=Bd5H;?~C;W)%+Dx|&>W6*Qk0en4yM3r1v8YYQ>8Kwj>VJn&n~7IYt31i0 zKI+Fj)V}w(W#&gU(7@aoWBg+wbY^aL&^_*>dm;^;shzHv$LmD*L;#)kOhB^{;YosX z0zmCQ1m}c^eC?@vV|+|KPa1pIG21^ybN@#}7JS}pAH)2#kNKGd=4ac5nKy5WpHjdO zsq_A`1pQ11w06rF=>PhlpG$y#zFnaIYeCns0(hRFp9_K3UKs=Zf)Dz|1n8IA1^NXG zx{kHLO9cI52(*p{8nlWAFZ-Zh@jx3Rw|gxRWBSWP_euzz_U9P7SABG^rJ-y0svw5$ zRib+>gzi*HcFEkUPNOAj3ckY!lt8kku0XP;u0XP;u0XP;jzDEi9f8W4x&q0Xx&q0X zx&q0Xx&q0Xx`MO)u}Id`Eg@M`S0GtaS0GtaS0GtaS0GtaS0Fi2S0Fi2SDsR70>SuIau&o({>WE3(h)eu*i*V1^Q~hBB!7% zeBif%yNMu)8mRyeGrX08RkN!oU=)Z>nzF-?Fq9zV~$CdX%T@`0@Qop;}x zHdUfn5a~p5^km1lOs8@eZ_Z{JFly5Ssa)Q$IVy+K`!3nV;p=?1 zgwB}7g?jpk3w5G3F4Q^IxKKyaxKIbNn9v{^975y@4I)>lCyZ6#2zEfGb603OcZ6m& zLP%Og(dwVYtkBG+uF%X@uF%XQuF!;UM`%W#$*vM5|6ZqkSLtOE{57P%ZK`Q0_r=B zKz-XlwcWu6DOlek)^|c!4NY(`!uqa{^}Phv_Zz|bp2cdqOUL>yvEq(PNxd5OI#@sO zvCc?f{jd?NGb~oqT{_kei1ot|R^wC-){lIwA1APW(g@a%EmqTAI@XVf^^*`*CkD{6H6 zxzU~**K`gE-9|apRp{(rQhB&1kdRVPdCnd~`jwCL>jYA{b#0y7?7uQdBVUKAwXdsp zI;Sd7zaiAGLr}Hz#h`xcL;WrR_4@{t`mKfP&H*V}{hm;9=bfZhweQ8C{@_FXF#+|b z2B7|6p}I3u3e=wn^~VrY?Rpxj@}8f4sK0nnjrX|oU#M$UFzh%#6VoptOxh=7n11y! z{g#Hwoqij|gqwk6YQF_AnfW_Qk5)O=-wDZa;MyOAkCFdchEA?Upgn3;CcIPJr&(F3{@!pK=~F>lHw2SAt$R1X_D#3^czu z8)L_!3DAqR3-lsZ)3aU+v@S-_i-th!XrMu>Xt1~sdI=A-9}QBCoVpf>v4)w9)+Ivd zv_Hqtb@S0JnTD?2tAZH1ZbY|a2;HfY9FnxDN$7LpeTEL`e!vm12`hu(FIT)gdID%WpjIwN;Rfuuk^{ z*(&P_Bn#{cB!%hruqyuMt)YL zlq9e;uLbY;T9BNtqvC?(d|kl@o+b;D^K}3gpH|~T;t4lwSlJGz_)IkLytQHBGZ9KE z7^j3%V{s&?02p^Fcov;CWw+Mf%T|BwL0waexeq+5_gq``o=dOyyh4~w?elruBm+5E zQviM1USE)dQdh1#gOv8*ixDIUbrEi4RO5WnLW*kYLj{Cs+ze{bLB*F^hIVfmYVOfl zUbIkRG7+1~a^*#HW!~*%QDpZzX3C2dUuNn4Ekl=+n{rZ!#GfjL-_1?UXmasnlZ!h| zE}kndfhHGMO)e2=64AJ+bt(Ktsa^ykw@+wY8bKL#tz_OTOW>v6WIHx>VQKtJxfxRN z72GQc18+(@ehqF?5x$R7vCTuAkvpO;R(SXeg0(J%`>dD`OJ_7f-h4%WQ}BO}HM{UU zf>wZX1PXOPytLeNvmCS{%*cB9wY01sw!y7D@Jx&hh|q0NvFGHDBPVwpB}OSP30p%j zdUD4xBET)ey5VO@`~io^3#Tmzgjy8iJ(^o8$*ZLtUM-a?FAZKn@ucd~0bWUaEXGpG zL72Eh)61~w;XPZ1_m1vVTVAG67LcU(GI*isWmVJ5#_pRE9mios|L)1Qx;t%k&y~BQ ztsbha9{QGQAUjW~n_8E_ZbLi=S%`(+L7@xT_+zGrc*V$VrGjGpv^qItPjaV!OEPWoXj znw9q>?8%>8xfjRJf(s09_{r`5~{aDsNT79Z=l58hspas4xywS9_CTa zcPudRor}I~a%A_Gkv8i0Eu1Rgc%#j}{E_wmvoBt_pB-xTOV;Y=)ar*?{iGH+oNetc zOzvlyEOhOMGU`peyge0p-S)@itP_U2D?avXoR71OA;7Ngid{(!N+j-XSoJ#00_FEd zFrD=K$VtDeU<$+Z$BQaw;O>r~fd>$ksa_NwkhIhQ$5I1O4L6MjUr=QL-)nZ@Yy-8I zW9>0LTgKRExLn~h!;a-pd%39ga(J)UF)&$cpi^rgY7MmP=ppPF=&@rU$_P6K*2|95 z<`_GAD0U2NoE@``A;1pI4~#uY4GKGY7Kg`TJC|4fD2FQ*cV8=k1 zn(Bppmrq)1dB;-AqZ)3;t=O?V-)nZ@)DyK=VC}KpTgKYhu|i>jVaE!ny+Txb1-w`6 z7@Vv%*r_!bwFX;u^b~ds_Si8PWrQ7r>t)A;ImV8jiXB*XH#(QiHiiH@dMb7#H7M** z&nMtQ>`ldv70HgDMo#+4#Eunn z19=G49>Ut|c5hkNvSUc0V%RYRwTDEthv2-j-&>K9lcEKcuTQk6)w}8Mow-r>{umNUWFc~D}x1`PKoz>ANc#&=GE$kTTv12I82s?(>%Z}r@9IfQt?pQAbyQnD zvhV7Aui1eNC29|6?Txy(Y-HInyihaj7>?S*quRsqUa@0DvepQv)(F%ZVcF3~*fGLm z#|V@Wc8sW(9kn^ejy{SVBN}JNY-0$pLp{W#oYbJOqmN<7JBl4^kR7>^lXHe0Yvjsn zP~~JtAFyKt*g^Hez9W;C8tGVSB&v;!>^qY0H9K&h1e^wqV(sxgTE_R{IXY5hx$>yO zM8l3z_&k~?3)$5d>{=6IentyxCvCd6W7D;>x$-)+ z={jQ5bz(MMoAg+l1vKSw{R4zumrZWoqh)iUToWm`ZsBx+!_(w-`4bU#UA$KTX{V+8eO;Ry|s_vh3KPaE4*W2B^J3RC@!wSM1m@S!+Y5)`qCHp=C#ZVaJ9ZJ2pfa zVaJB`vg3?7#*Y4q9UC^zj@iZ#U`Kz&j-&>K9sLbE-dF6{i0sIYnw&N4*eF-th$<&L z`hy)Cf*n*Z?7MN&QX4y#+8EU~j_kWJ-)nZ9DeTyUwYTljvaMyuCWSK%J2pXW+>2dt zYZJUz>=>V{HQuQ;9<|0>b_@`9U_!({Nfrw!#-ogSQ!hKtoMY@5px80Kadyl$h5$R% zgVD-K4GKF378BYj^)6PEg++MQFyDQrM7Y`wH2yu71?(yzSr!)o(a_6nzeWC(Xz8; z$JT|j4Li0*?X9EQTjRZA$2Q4Y+c>qhL9J~pI|d3nw(;1p4ax{RwyBpLXU{Qq3{>pc zrg3)6HiiH@kgFy;k{T3t3^eTcP_biMvg6xPlfE_V*fv+*mJN^{1Hq1Mzz(Vx_T4UN zsqGv~ZHH>xMfTl}?=?HHfd;j=XYJj3wCrZtv3=nj!;bAyd;6&N_IR(@u|u-f4oL?`^SGs_MrBkb6rUUr-_$JjAQu>;SgYBT{m+ZY1u7^K*d)S$3qkYUG1 z&>u{;BiZr&s7c?Crb0Qh?1&dtPIe3eJ9dDK>P6w5l9t-ZvD8kewo_!^o%mj}1G}kE zduP_(vwO>)Hi@!x;ausKGt18WL2Wz^3vcjJ?ARq)YZs^1E~vGO)B-QEt;-8LcJbJ; z3(5#PcENWS>)MHNZaOwzN4hw8Zh6qNP0<_5P;Z) zEyd=ht78A$V%!;ql!YB~<)TL%|+^qa-EQc;8L;wiJz zuxW3wZZFmpw~6w>dN@c2+!YRZ`m+O1e|GsynP59)m(7)T&7xJ_x^UU-YFW`DkfiP% z`V7bLwd1r0tqI|?+0}qCn;n9lKW9Jkby_?Xs1-P}^Jwpwd$uk1MY_elK&RO(o`EH% zz+ZH3xH9i-_xxpg&tFQ<^Xi`Q*X_CIZ1;Rade1jV&pma|_$xij{GE(q`X~v)OJrZ6 zE(o$4BlI^TCw*fQnY-o6yD{vk#_$FKlOYa;cTYyk-JNK;JF4v-#n|2XUPowbZ$<4r zSbLwIE&JHZ>w6R?0S5k|<{tb(ZMitV2i~g)y=Su4o=&YjQEN}BB@uc>iO_p`5qeLQ z5f1KIZ=9Tz9-$kIlPjtSy=UX|_iSSb%-<`j`8%mWVaJMQ{{9*^fywqFJANKL>E|(G zB`{$xyr^=rW5o>KKt}bV@ZL#F?d@19IEjv~ccI@l1V_%dJcI;a(J0{ODcC4h>v2Ww- zm~9LJcHsIp*ZxTj3OiOZ?D$5pV?VOv$2BMYXtsClmn-kb2FQ+;z>a;v4yqUS-9Krm z{T)l~k81lz_T8WFH9N5J9kmZ&?Sp!@9Asn10fqAoI}SkY1ESgo;JsqUfyr72I<*c& ztphDPh6p*=mA^Eth9?JFSHYTBt8g)QF}yMty$1Wd z>4)Y{Ka@{DG*|ke1#t*>!%=JUIE?wy4|PsI)G7VY0_lh5!6CDhkHhGgeu!rlDYfQL zKO~D#uJKbB`8VJT0>$sr$=l{4G>sg^WrQ7a8U%Kz^{Hlu`ml;jDchm%A5au-dKiL6 zdHTTe^yqvgS3V3;;xL>r<;sWhEJ~{iL?iF`N6w#C#(NS9rSOs+zi4UvtA@A9)PJCFcaA#b?_4KM3z`hs&o(ajvLUuu< z%Cuq&P^J~9MP1MtgcR$bbqS`lrt%R4byVM$qx#EtN_dg=h{7dk1^@USKS$!><44Md z{-d^RIch7GlO)O!IMm$Kghq}^Hgc5H$WdtIXf$%P-v~yRZ5@i=x$;qVbQ0eK_370^ zQS@k-;wbz<$Hyc)KE~eOivOgF3Nru^H5fsCuGQJrQrzpiW9wImxMV5~`e} z2erBk>LhPafzlk*>KN2X7}QC40olpPZccW(IT_uYEXYpAn`lt@_8zJhSoPT6Eyv0# z9mjIzLg7L)r~*Gr)dJqAK^2o#icXaxsucC0hRdLe-k<`dIjG?nR1t$J;ssSq4=qT#%7}s8-^SR4w6+8dN!1rR-EGqe@v1 zYJ?1`>-!S)#H1&9B(ak zYJq84{6n=<`6E?N#TzxK(~?zAbE=$%D%cH=;bdFakU^d14JuHYgIXhliU4^UUO+Y> z+06u}n+fO!+p1B10$$Oe@XgKU4&@4~p3uGJ1WEGZTZ6fBC0DK%rl@i0k7xk9=gL)y zJty>UIYE7EukF&c;!kXQaLWlR>Nv|yGi)8L@pPg?xi#5)Ypy)e>75_ZJGRP{CkA>? zFMYb-JM`PsI#RTZt*H1XX~x!3vOJw=B~1$eWoo;ehp?S2(>e+!I9+Bvmc@Gv=ZxfV z&d8O|bcVx^7|vN3&Y6MXq?bO+AC7d*@@OqGDc9~D%4ZYBiQQXHv?e_}S3ajO)tHnY zfdaYw@;QRy#QrTOT9c-iK37njIJo6R*Q6|u)|5%lOZI+Vt~|-@lIO(M?^oJu|vpibUCN2Ifq30r^IH_05Nqx+8eo^5(Wl!{d5r4$NFTxuYdM-{@ zx!9?4F{)tdgzmDfYl;RhcJ;-h$7edb^$!;!jDqezyumVH*OYn+# z`i=~03ag&nqvd2fNlYocV+Msgh$7XEnp5y(Jz1elO;(udRKN{IQ9(wumW*hsH=<-= z4rndhN(8-3<@5W>mnOTo)al~V2-Btb+O%GK;``{Rco{1e`nMFc8)4j+72Y$0xh$%9 zSu~i-lNBy^DqL;{Ggbz3xi^?(VGd@j8qDP~m@AT9T;X(aMTF@JJD7K6Fjul-u}@3U zF0`&JylV!7dyy*3Tp0~!TC&14r@}Nln6+gv)4ahX3v)1QtHDf@!CaN>;wq<$t0GKS z*};4ugSna&Tl%)N*t3GG3*4uJf3VWk{1KjAjW>#D*CeZ4<5al@Rj$!YTSvxojW?b^ zX%1)|_|7%p+BJBAGuI}&xz_3CT6A-*AiEZCBD&#T2B>-+tCsq=lq}t@E4*(8bsef+ zCsnV*8#SowlU1&Fs$7pM*Xu#8D}%b;8&se)2emE+bv*`kJzhX|L$aG2oNjJFH@L`x z@;BfW4a(eLI69#-HyDltuk)S`&dmx6<|f5a33IoONMP>Pp#??!Rd?%%1n6Gfts@e| z?$!|rV|VL_gywD?I8nX2Ki0v~zZ;>uvCWyxIGpE>!V;snb~d|xHoD!^P~KJ86?C+M z;-iE!jCah%HzHJ_&5g*^+cGJVdkafNQ))X?s#nyOJSz^RI-4%DyP8s%1XYjfF>u4= z;cEh134l{S7p`?2Mwsnr$-(n=J3B_6h(oYsv)V9H} zRM#h~^u{o#)2KbVvs7HD@7xp@wuGwVRvK6ZNQ<^jeXF2YbRCJ$vcwQfL_4zq@7 z-4F{Q*HZb`jpX)j!|G5tjJKiWlBi|V8!#{xtNm3>TE~a58cR7?H}$b@mcY7sBUm@HSWS27ST`ls%|loX zfgG$`_*l10VBM+_tXo>Frn_{kTM#RDASO9rckf@z-QHp~-KAs2w!KX24gsv%F9DPxRYidv3DpVDtveB_6BhEV zJ0qB8>kI-r8l-guft?8yFKGZ!DQ1@&A>h2b59U)*(Lfs<-Rr_QN>Rvw7y%SLPX#nb87HS<4U>`!oK7=Fz zv`faI?(0L{F9CJ`2B7Y1q1F)qa6LTJx?c#Y_Q)921AM3lCZHbF0Mr94)H?kCAVNJb z0M)o;mi|9CFgCRwOr(yxw;n>I*Xi1vX#+<>+nr=vcMsE-JtHh$`$KGH{hR08$U?L&Q(MQu7x zM|~twA00w%T-HH-jF0-*1nT43hx%BH+H{}_fenVp*E)u zrgnPQ$6KJca$yfwk4{=*j6WfS&N!@t?nEEmNonXz?R0b})`{+<06OiNfMz4Y$pq&F zfYt)RIUyq7DpzIeSrNq4bFu+iM?k>occ!(VAqzflZ4krU;$to)Fqi9%w=v8u26H{} zpiI!E5NPd|G0>;@pifPJKCNA#PqCou2nVMT^r<1x+ACwAC-|T%3DDJcfu3MN*AWe> z1YHS%*8Z$Pt7uU3L1U^x-Ckyrt2-K)f^7zZ8qu|e&}n~;p_}NVJ3S5EtfE1E=q3`~ z=^=EdO4>r^UX`Q4eYudwa0Iv>7#GN0fZY;u7hqQ)cL8<;#mD_NaG!;EqjDEur%FNY z0_+O#UDtROxeKsc;%vW!+y&SzA$I|G1#%Z)S0Hx*b_LiB8SnNyUw}(7@e&vK0=et1 z+bFgx#H;ALr74Nda{MfAjIk!sVALh8mpgBwt99rL@;6`7~u)z{=WaK{n5t`%}A?j>!s2roz)Hy~B z;9~>L$W)qfcy>h8loDW+QQq+kdesQu#T|8E3P*9tJD!mtFr^~m(s@U;m18TdX9m-R zfwuUijuB1SzS-;=k`nEfE!-j&Y0h>VRJg5h&LV|#7R!_wcRJ7lxo#|+>&C5DHwFuo zZgT4iy?JMRQeLsOJI-jRgw&F=_FVFDtH5I8x;=F;@NT zw0KD!ZR0{6reZ<^)8U+j=?V=@SE#21BDbS7ox4KQxg#{|4MNg-i#lg9D>U<^D>UbXAD^Ab=eH3IcK12wXMLa4wHwd9F4)^mw< zQV6S|iKEuZKGyRSSTAS<>-iR|=`LNblZo|$5LUxp2kV7C){7EYFKz_uMHZ{+E*m@$cDG97o8^JooVl~~RW4(k}r-rZ^Ul**+K-tuKsgLzC535=vA)uMs z>0Mu{fkqePoHIXQx-5W6dpiJGZ@-+79OrJmf{+~d&$nJ#@0uCiUT(DK#x;GR1>Hs$ zT87ivucY#>&_D&1=j<`0(|n{?C6Hd-0Mcm&Y2@orwT?^boxUa{P_HJ`t3pt<^TnWE z<3qhR0rk2Dpk8C4x^qB^R<9$}YeP`A@5P{A??b&I0rkcPpk8mGx-(M>)Ef!)h7eTk zdK#+oo|}BAH+xWx_qg+4sO!{o5x}{Lm~IYX(mol(^fw>VEoqqC>9d5)QW+9-U0KSQX^B5|ppuV?#sPD0;O~>h|?|Muf z|1iz{kcKSyyxBg6`4J!UzY~}rZ5QT84CW{vz!0hP{-Xr_?+|G1mNC$e`Jf+9fPSJ~ zpdYiK>sSFiLC}wfKx?mzfqv2l{htKrr`iSjNejA;wZKyZ{httM9St;S6%C&DK|kYx z_M<_nkyFM7~QMZK7iBe?sI@RW>tWb7#a$<_KKV3C$1+rb# zEg{=QT>*BJBUkCPF+&O1rZOqEkH<@V=$F9PfLOu;d&jSWz2NaSu%9|Ez@FrI8}e*2 z)984e?Hz?QodBaibi$2x*)=4|JC{9Je2VRjWRiDOR6&xwA~J1Ak~c1rByU`#lDw2P zWd~sDiyD-qF2tQ}zlAGJzowJIw1iA0f29|l=*4&>`5Tw%^lYDKTj+Cv^z4Z2_$ZCr z2btb3**@^!`T18qXl>~!btIr#U^)vH7wRb?F4W1>xKQUw<3b%@<3b&nVnTyxSO}3T zG>BZGo&-k1{B}U5b603OcZ6nzK}cFfb_REaW`=ZyW(IPFx^wno+cY8B5t@;A%#Mtb zkIys6kL+cx)3v_9An&A7@~tn{y^KcuenC%{C`wKh)jP>Y;4M=p&okn`i2j+H z9Em(B@ox`aMJf?l1ob5!>dOhJuQUSnWdqfA2PLLpeTi6K31Kxfan$;%kM*?#*6EF4 zea&Ju-KArFl~|{Tup0I{SYP+CzLCKCW+PbNuvkrZ=~!PU);B{~jZ-;T-}14(oxu7| zBUs3P@3`kseXE!x0#Q#-xucQw$!xgIdR7r>;w9e}L2 zzfVYxbGLp#NRIpGTW8d}N=CQu8|}GqP3MKsZImY+NoSuy<$a)m3M$XpV@N;rk$#jw z`f&qDKQu@qUx%u-ud8=DPbyG9Ce)8YP_^^Lpnl>*{WJmfvj(7kVxhWoK#EpBBh*hr zP_^&HpnmQ{{UQPN%Lbr+ZlSs}Qwr2C3H6H*RPA~is`8$%e5hZ0P>uJv^IxcIRWR&0 zUlG&SAxzpQW0=12F@2kc$(?>1#qC- zAsKVRoO8~8W>NHRy$yy9CNPUR=ZHCH1;v0_Oqc^G7*PJVx~6-2W@_(t_eOqrmYuzs z4%Jm}Rae#YOvg#1IZyfsshZ;xuzacN%v zMN}`As5aBBMfE>Hs{aj9y`(y-|MjRg9hav1AEJ7RM75cC71b&;l8XhX&cy>%2erQu zG3R0~p@Ipp5ud|C4A&C{C35*}q^?sb>Z6;3lVbJYEuAn`>T5V@N@d*KBudpvCtC#s zR__Gbs=G8$qE0P;wdkQ2j8XTVj8$6HKA}>*_6axDOQ*bQS8D?8lcpqTlm?M|QYo1^ zX{y^L-IM;3Uo*i}lR>ExyQ+Ej#M~ekR36u2ah=NJ+9y;V*QQ+Majg^eZ}9k#cygP^0|CJok zFFC^7b>PlAyey3V;l)gMCK~RF?nJ{qX!34u@*bf{7~GoNiugvUfkcRUS3#~b>@MnhXVhys(cInqquf`Vo>lrS zk&V6@yX0FU@p2L{wWa$GQMg7h;450MIL&qDH;CR{`D<|hOIr1#hTfY`71hG&&ivwB zQHl^FjTT>>m5V?x(ER`m0TAxRyD+D<96hb&7!qQv;XcS3C&o@|IZmCxTS@N4|NC$N z)Cd<=TR4HVF`vdan!7)YtNSfn-JfW90JyrJarJ zy`A~Nx&}og(eNNXX!;>;`XRkTB@jx%KVQdXhX2FiwjQ?HdN|SWFxr~IZOy>jJ!8m- zQ&ad~lUoVjC^3-wX4rR8u(!@Av{N(uqg>cGEDhMNWW&A-!~WsQVgFy!D&U)_7EX6z z*o)FruwRK_-^IZGL&ywZdPMDrxp3^%g$(nCN9!lzP0|a;PhB{H#7b}Dd4&Ea8Xg6B zAjuhod$%$Cr7%ST#&5LuSQt=`S%7*h(eM}m^*96SaSKqY9lA_cUA)7G#G?{VP?ID3 zB}aNz|A{)hO_BbgttaTeY7b;Sfe*ip{K;^wC#_mfqSlkD7BC#obyY}y(nGR>>ys$M zKgz{z8mZeD0*biv(BwUL?zYZnXM;pVX?>&Snr*VR<4dk9D~!gII7jS7;itordfJlI)2Q~e zmhaQ_+eHTg3e8( zLLJ_BO8-#v1^TaRzkuJ2ju*qVUbJexh*~dt=;*G{@nQfSFQSY>$BX5nBO4hyx-&Xn ztQ;N9ra?eQcSc8;g9;tp4LUx7OdztC2pxZnp8AKe9WNysULuwgI=TZLF9IFJUKD;g zEUA|*Nxh6}FKhX}Out=pAk~1{uTbrY{gM+sbi7h`wgLyC;}!a^YrlfujE+~swO+Mq zy^30|dg$n((D7;j9j~H{LdUD+qT}qy(9wg@@oMGhXf_Q3I(jfV!W>lS=wZ9>mxIY~jT zh9LJz9o~&k|L8aU*MR*5zu6#t8m{%JRqIpK`qVQ>eH4y94dCcglusP?Uv@3-{ZMF;MLqxN@Hd$<0{-8^)BS9iWa$9JfW&7FBG+3)b1 z(eZt_*7sJe?@{Y}4;}p#I=&B}<9n1*==i=|betaM}I~~n1c!( z{S7+4W_0`jbWHti%+%iuI(|qr{6H)xbo2*0z6Uypy^!yZVM+aHN$N*b`%%mHNBZre z1Ir>%`zNZsXaD4$9y)%iyTG91C)CD9(u|Iu@SD-`bGX*eR;`~=3!6Zr7H|>I4N&O# zIe?CzQAVNT=W@|;L1gF{!07n7a&$DC1_2!d7#(2_Ds&7m=$Oao_=V81V9eA71|7d7 z8h#;`6FLR}9X|sd#9qkv*RZ61wIuZ`s{N|v`z!r+(SbEGs6C%*@6$iIkB5%=br%|R z%t!6{y7qkhW^^nF*IHoJT7X&$Jai0H=vWXy#{!g5=vYuLIxdV19RnF13o1uPvuO~} zF_6&_=Ac5yK!c8N7#+V6I({EB^>>4g-x3YK5z7f31A&eOKnJlG^8Gz5soyP0{f=tC zYx(|8zg=`-!4zsQq}u!UOYZL_Q5ITToG(P}g{U1T*LWd5jE+U&T8pe&i%@Hkss&uc zbAuE*76s6;2xSyH7R8F@!wjiVft;=Y+l3DD8=jV6t7#kJ>zKedO0UIm==>RHx#9K zwSppWIk#AAx~;yp+Nl;lMz~wn<_5>Gr7mr9j4y2X!6PGa(%p1ibaE@#?-gto51yh1 zb&sb}Rl}yemEHDyP0>ow6|ocrJ13EA_XiX(KWk`ymfn^%-Z#h8s|G5Kb++PgR&Uk^0K8gPt0}%)gUsyoU0wJn=LWS{w2t$ z{|TMO<5=pfM1i9%u{O=_86HHbo_|(7W2v(08ArQkwSzA)q$Gdm)PTRGwWGe#9eiob z1Kgf*R6VQP>tQSAUL}CgTBTn=5&-fiS?Kwrr_MKt%s&$if0Ehb#_$6MlS~{6{}r~D ze_7V@FI4+W+t|P8w`-xXf)%y@rrHM$NFLwU~gl zk&5}zk)l(C4wPE&H1up7x@FcRn(LL9Bde|%85CM>BMOHwtcR^!SyRYSjBbYN{eYS&Wj zBL*aoFt#IATX%^92g$gW{_EQ46Zbl5Q7aLym9T0hP%Gh~V^xKYL;xKLlu_tNl#7l_ zB16ZjjE+R*wxiiJ2IiX`!z#;)j z5qlx2mSIV?v?SFM)v(T3MgFOl^xH)TR^p>}E2@1=zvMCS{h>h1#ejuGsuh1|b!t52 z1dBk}HM!N4$Q@7QxuLY`G-aJpvUkdr{nbljvFU0s7GMA`xE{(Fae$Gs>_%w{8}q|U zIX}yjb%xQZQ531)IhQ>CV<>!HmxWzzXLvPodJXMuN?&SS`jS)nQmfLJR=}lowNLIR zqkZX1?Mh#2Tl&)Sr7taqOU9M=lhLyDC7LEm)ap?Bl5#>JrP5C5?QlZte=7~%MxD@7 z;HdAT(18V?3LWg9y6E6PhAN}6JNjOTqEOS;Fd7XX4sG~Q$190cYgmca2$-Oiv|QL_ z6+lP0ql1c{R>N-s6iVTv^q+pI)>iD7m`PaW|AWu3y^bh5hXgl;-1$~xhP9uyu-L)8_j>WPDs zCwhZgu?~A-yMtO0RS~G8s}=F#L3IvS>1wbh`y1|%hvra`TZL3PETy5a-Mx`n&xW_8mI-E>owb;A!mC_ILU zs@dW5U=u&VSxl^*V(hO0sK2nR-SkwH^~4W7C_E^Ms=cV{DT9)yc#`T>M`>C7L$zM?Usdge zA3Uhu;VQkYD!oyqw>zkH)S!9?1|^iHL9K&9^~Ruj;{(e2guCfub<+pkVB$deKKSTC z;o-~{wW+>T_0)dJQ&o}|PYotgeG{pEbyxAY+&|Gkf7qUW%J!T(Bzda4dv&9w``7O>TtZ@&J#^ zxpkF$I?y{)vplFQ*)GjPBWNC47a|y>W<4s4-x$u|@NfnvQY%}-p+7O4RWO{Dh2fMg zy-IL6s%t8b*0e~;cdtziAu1;KOHTGgIwX-=weD&oQu-5AV1`evs;HPeBstj=Y3b6d zDJmwfnVf8kl**$u7U|G%??V%*VOH<-CwgBUy$=(5FI{@|VDCz#>nV{A^#qt(Ux{>> zcSeb{WV<9%BwJ&-^&!&L6x#dXloI*PJ&@I&Ktt{T(`s(O0=Msp1)flV^C2 z*2ucg&0t3Aig*y52eVPQ!bVnwjl98Zqz1E5Kr-RNG?s1{DWjh(|?7t(fGl`856ED#;P&~Rgm1rNaDFsYCK~C z;}J^JfJQ-g#y~t{@Bw9G!`+Ovx*3aZ#wyCj;)jMCURQvs1pvH%*jJK+cN0ssJphl}fjSmb;C{2SJjX{mapvL0^$|i)nnP7D@0o@?E ziSiTh(S!Ps-s51silENC7g$Gl9|cQ%BA%c(J?JXtg&gjQdK~$M9Qp*h=NEG56TTO6 z=##z|a_Ez-xGMJKiq-#pHD(R{Z(@sBY{NFO*cd!>eG4KPgzBB9p_KcNE^p%SIwl5MasLk?F@5tJbomdIKpXXoy++2CXrvxb z?>5oOKVB>2O0|N00vc~+tk=l+KqDX)emszd7`|t`WdaTHk9fSk;oFPDoSFbe5~tv} z9)wY5(R7V^IZfbi3s!K)=dfIaUd@eMO)en4nJA~xD&W8-Rpx& z(OI0FsPZSJ7#^&~jg?W2WmqpVZfq?eJGNF0MEwMdXrw6`sd}SPZsSrT-GoMJ4IlX? z;)fdF#(I39Zxc#$2|O@mY#waVBoFLrh6hbmYlH`2J*Wl;+#fD4+&^7@AS7v#=%NI? zDf45TJ#=+pGvdd%030?~Ij7*+E$WXTk>edN7XO^wmi7PAY0SUYX;Q-Vv1>y8l3KF9 z6Nl9wwMDxvI#6yL2&6_5sfo&cn@CmhhkKw5+{RMrjaBK5xtKnnPr~3904k30aS&r; z%Aec3gj6?$1Z?VNFRu_&7~Tfn;M&Q4Si^mv_{YgWHL?&qT_tO?LQUI zsepCTg)Ty`7A;l-(Ob9=izL7iZj;@Jtx5rUYYEWXh=AT!0<5^_zXwq%*= zgDcbR%2k(bN~nwBiKe@1b=gXyeJg{>t(bm&@X>Fn%hseW+beYmlUA*|Y%P(twIOY5 zCQTojB&|_(0kp?5=3Hg5P8j9zpOa3970RmvUD_tBOSL7dY=a4gr`7YIi?yB9Y_S7t z9a<$%Brt32*w*hvs2V$Ydf^qv-05idf*lE*0hTb2kjm`3>1o7tL*Os%_msZox^Zk7+&{1;)c3bx0DkzcxH2iy)IJC@ z-8L*!#rK^XlhiJfq;?f0Mdna>or%=8{7Z>wXIn&I*)D7ucVo-At!LSs-0ohx-f7D+ zZcCPNH?lO1VZzrT${PQ3mnt#gYfz1VFyT9kZVV>M?525`Aiu)TY-0{W7Yr_hN&2Oh)BNVQUhPDegq)@mAqY$pDr~K-|o`k^Q$-O+Jc*SdK z*tbojwsUzva@qs zxZY_?F}9<@?cJ1O&?rS?**M7<97i`HW9e&9u~&1&?#3uancXx~F@hLyUBTdK<9ISW zFr{kHaLJO_f#L1L7=|)%l%>^B_qV-I4X_BTMeXiN&ij^fOZOwd2P3NeJp_1wcX9_L zYy8?l0@xQr8s{Q@KlqUc*8NUl*UE4_yt>5Y3ifSJ?I7;kp4vg}+n(A1ZL5d~cVFsp zgOq}Z9f#FDJZ0r6NDY$TTZ^PlBDEv!)r152Ku+$UWGxN#NV=|^V-UZe(z+h;`lDlY zH>!NxPSkU%dmU~ba!c$^?L=u32O~vSJIh6ORz;|<8r+f3A@El#y<@opz?FlOiRN=< z7nv(~RVm$y+J(5{!S_BA zar=NcrfeVo!6wipkBJOg6)^JPkg37R0|^`$B#lhZ_1+0zsO=U~lQF(Rr7?2KMPun0 ze$mfl3m~Dko^fz|DgWSvwx|&F4^EW*gOlp>ga%Ep2P!9bGP@4mDT34SfYUe^PA6cJ zJjHVz?1GiK4*SXmcV9NR`+|`{*I_@wb=Z$B)P5vECwHn~j89M~uh4baUpB`3`;GCb z;393S7|Wduu1xk^hw8a=3`q>a@)2D{~!^Ww;K9mU0~qrO|`+XG*R^l4h(k=&PQ-lCWSw*Wt9L zU5CRY*Ws{b$8|WX64&80+jVFNxCgfDkP2M0T?b+sO&&aDq=T9mb{)gi+hm)JLrIyoZ5cw);GG8+etjPeCel5(;L6k$p`YZywi$&aRtJv-_&P)?B0Z ztlA_QCih6P88>yWyGh5-+BG^-MG38_ej;@w#RW%|DteS%^eA+Pr^ZZZHaH${RTE@F zrKa_0*|Z+bruAs*(#f6EmWDe7e|Yn*lRH&mW$HGI5W>UdM?c(hFuXhzNY)CqDI_2mBGF^UtCPW`aD8KdfEY({jEmJ&TD z#!@E^qYIPjW^8W=rYk471ppNi4Z())a}Lq$j%%S2pw9*BbIQr!(h72xpfxdA07OGM z30*c^-nZfM{=P0x;?bUj?v&*s^4%II%Qa5s8YdHhAmf}^4W5kvpt0EiSc{0y$>pO0 z#VIoXPw|6-e0F%7HU)*KC^%K7;8Z^a1*X8s6_c$awJ?*Zd&wA0R^oPz(PWZEQx?X_ zo$o5X-yB?^&iYM(le@5lk#KSsg?;RcqvG~yGPh6jbNgb=?WwMh%?dDmD9-Z?p)v#0 z!Z|u+;I!2^UA7vhQ)`LT>BQ6Oti}|16jO}Vn1Z&|f*LoTjnxK%UY;r8a8QUzL^La# zc!o4@pJC?hGkD(C2cixA{zoCfnZ%n5SE{?Pt1&}ls?X$k>r7(0le;7w5?mS;#Oh?> z)cGNHsfO5Pm4yVCmk|=c^vl`AdKx`ge~Aw;zh9f zF(9Xr)M8SK50cAHd~k)14_LoF^@gRl(~ErBog|5Y7um7Gm4SG`juoy7TtmaqHcm4V z1BrheD_q@JtiS}2wq8L}xf&`P%T1+tfv-RgbXFxqt^l(1)a?2RXC*~Hp&^!Pko|c<7aSrB-MCu%le)NGH%X6jD=c>}@a%p`) zr)Fj$XPBr^(;%(&X*}EARuOid)YWeWrU=!$)$3%ilMPk+2 zbnnN{MelyOpSdP~9jp+T>Vpl!;81EC_jg;=)-6(w%=PT%jI(24b>Rj$X`$5ijdE)H zCMkb?J$gs8%0Ary1-&_n{B>T|%{=QSUP2zqUl)W>v%uy9Z>6UE^(}(V+~8V`if(-u zWt}Pdb>`~v^TZ|9LaxjS6n z+71>J=8gf!V1AT`@ry-?EF3zf#wYW54+S=9$Z2fDve%3t3QN-7a?mCQ01$uhf$ zWp)wE?5?o0dUsSZyI7Xl#eSLHtz~vkWzOooWjL!-OF64kY4l+IU6QkUFB!`_>FXZ) zx))|Dn7_WQY5#PZ7l$fOWbervy-XHKgZJ+dkz%|<^ zC8m)}%0B6XK}|%_z#4@6i2V=3P{wk1z}ABnW$PbgU-Uiz$H_fZe!->=-tiSqzK8^k^r7ZTP5^xZw(n7oV*zv ze%Q-9`#B6_R88LbGBOKNR_HS2T)SDJ%RqaRS)ocz;^neQyqrxU-uOb(*bMk39GZB; zb#jlWvpR+8T_F;zyz>=;GjIhv16SxosFQm%DieF9Y+|qUo7hL$#JZ&F4ANB~RmeME z#o^gi#0=(drFrM8WumSIQOt>}U0h;;5;C9EiIsPro)qKBYhtNu*N~OagFPUtI#X#H5|%2KOPk*u9x|Ly&n{hGbmtn zP3HTFs3^EWrr-uY1yAUi|4A?J>{qNREzFJ7y<}l-Bq<=>uWo|fNU~@u@5~xdcMrX1 z7)u&@P|KkNU=L+KdQixAlUN{i6I+;@s7ojJl(Hqkr1jG!ER2(TChS;082$M_*0)L1^lfIEzKy48eIVLk6#k<);C303w=*PfXGp#fjssqd3SxK2!nwl_ zu@^POUaBk(c)5%?;LcKUz@0RDu>J)p4!}ODvE1|Y^%8x(j5vUVR5EG(Ow&QZT~bhR z*Rm57yrP2w)^AU}F-Ws&mH=N=E)c82Lo%L3T0p0eu<+zm#&v4@ty5q-G#m z0rU_Ps1G)Q%p?6B%i&!cvE0Le^jmOHpkWw_TIn5NrFtOGzC_A-6V-i)zTQLwv+FNt ztOb;M3#Hz!zmPI6o{+E@D$pyL?Aa*#4%>cz@L$sgtIK^v>f-O#?-PbVO`G7o1ukxR zhAP#MF0uV-EcY&&@D0<=q5Dr-E5Ln)gZXn`Er5}-=j~wzb@u!{_P54`vgdOkj8OLc zeK~vnfs{Re4@^a~%23V$FF%YTd;YNOYdp-p#>0S_a`3Exd4>=$&tN+?gHY+@J`xPZ z9A(feT>brsY%m`28;pp7ypvWtVGShfAUY!aVmllVM!>EwQZ zUlI%+o!pP=Y?ImZ7X)YE1$G8r@UrJWMP*`Nluhi5eiQo>n^>AatW?%ZAXUhozr=Ck zOT-MGaw<(_y(|;;GKgYMyo|OHzKx!=Q%^}?t`^_DEExBQ}7s71BNb*x#}rVqt=YsvQ?!8tu(a%RgWXEtl_ zY~oIJCg*K=6mJ`o^ETQpH+%k`(&=Vp&)<=z>37UD{SHsl`arb7DEvopz`HUe-(^U? z%aHst90&Xr6~x|?h4Y>tVt;9f{aslcu(*skU{0wxU=EEQtp8Jr0~V9}`3HUdO<#)< z2au3TX3u|bIw*Kw3JTs|c7lR`bWp(h?WuPlFmR_@_W-v1ZU+ee27&-PKv)vEW(Nqw zK#C94@|t`sXiV$?fqSL|-9L~Do|}gE%_dSGmgQvp7IX6P@|}#2WS8M1b{RebL=E|_lku@!<72LYH)bnPW9#kUE&6;- zR7(Actkj?QlsaF-N)5^B?0LR6DhfW8DfrY+L9J_6@`=c^=buSN{xcZ)MCvn6PU`~% zVhsFJ%AU`ah?}csAj+Q4WdilVCQ#?ibhFAb=lc-6sMFNhU#)5j|VGb zdG&Cid$Lw%&2=dxqr>My*>YVPR*o{|9bocm>wc%)WPUmJt;Pj2<@q*Xd@xgP&gQ4fxhRicIAC)c636;7dX#o+Xd8P)?5iKJN`@;u2t&8y`*Q;F0(_K@{~(1GsT3Yl`?Bbc~i zyp+G>=^I&Q->}TSVVQLfdC2*dqLSISvdq5q%MAO*vCO(u=%oKeQD8-U~F zdqtip|3T8>AE3jD)DNt``e5ttQp%M7C=vIgF)%+ef%;$*$PR`39kearF!u5dWy5IZm`3jUNS_|s3pKt1yhia1mL7j-XL zn7>F0I#d1^$s%eC^EY)J&XoVn7Upm2(#a1NEzHU#ER2(1CG1!aiAq$9Wl=5mi)x4# z)vB&z%?2`%DbKGKoYMm)=O5YR{KFdj4{@hDlk=}UihqsC`4?@MnJGs&Ktwbv4p<^h z(@V@Wy@aP}eIVLk6#knyARQASnZ_K4*JIz#(NnrF~{ZJ_mScBY8+B`mwJ=tUVH4q1okZ8_g`1_a7 z%BG0O)y5lFD!uB&8uJA*2Ex4qai@|C2Hw}=wzf@ z#L_K9CnKGpW)o@bG}-j+`25OnGS(^E$w;>pU50c^{gEP;_K+`EoPmRD7fIGvyl)%^P8kBrdoKaQ6?B5O@C$ zB*XbE%nc>NDNmHBJ4>Y=N3rWPE|dr#4ZemF;bYV+7ehdULzT_Lx^Ai*^yopDTqS{?A((R;? zv{QYmfI=Hba3><&UiRDCv)|Sp zlqzQ#lcu}bOS(fi`H=3wb3z9in3LZ`FuoJi{q8lbvN%=3vX9dqZhX1Egld zzLNy|P6qa!820)==s@>Mi8bii$j9;%LWw~lu7WlD=@n&}t;jN4k!7}3I0D%^Dw%bb zW!Bj*v#qtvc>B?@ej`+B>p&;JZ5a{BN~I!@m1y)}JvPF${adwEJijejoh|8W8~WN- zxD&Bi(?LfUDd_03>;xT?bkJez2$&(>iP+2zG`0%_6Lz4nec&1z1aA3G1ThU5b_0za zf|?i>#3W+>4l2ml0=6D9Q?`Bw4lpJGIPQ>u(yNHsuhintr=V+S?V{n@D$M&D956 zbC=FNh;%oJxNgR@bYlYb!6wjWT7=sTn}$pc*uF8QjvbS@wac|V2L}%n){xyIo|6iV zN5P$VdbSIpUZBv<$xh+c$f&_(qn%(Hd2=o-v@y+9ZkChoF7dCs;a_*=pFY_9gLmcn z-o_)rxRuq`VjC-_X}nQ`oF;wn(dNp>d-tNW8GN&u*Ha>{r(s@C zCQu)20yXQjitb1{y)yy9g@&fdPzL*r2x^3`K=EwzjrS;7}yOetM(Qh7bdl8kH5D> zZf^sT-b}JS_(-<&YgdBD9-wb8$>ZO}^7!{ep}nK<`1{CyQXlq{`he1)$KO}*`1`WQ z-_heQ`%rk0o6;>{-Cp3zzEODm{bjE7XRh=ot~mMq!XE$r zQH^|nJn{klk?*g)#{)`v{09d84D$F5kc?#nvZ{GXH$6~-{Xhfzfed?nuwfsxjM$+! zuoQrZtHk3UB+G0N%WM$K?4Yp6e{fVX8!XFguwP~eYndHV**%9t%kcPDF6HsNPa)I14^cDi5Y}IPu=RH-`TeU( z#I0%!%&JVFKG+2M3{23rfY1Ae3=U524GtgedFp-#p$t!*w}4l-ajW&zSCdA(ni=tG zJYs#YM{IlQt|x&Z?T#TGQ-6*QKKw(f+C3X8Q8`qBW++pr4?YT)j=w%kB5s&r;V>pp zA8Z1BpaJt}zuWxL;NY=sp?$_{_m~(6!S|x_$DsWG)P(HS;D)_=G`Z2nE(9U9($uO?RuV^cwXOaiULlO})txMMA45(re&j$WS4d)ykT|R@RbQSu>Gd3m?-8 zg|WxFf-!d;{GkX_Poas4G~83+5QHyacu<#QXN;~z-HaCT^xEOA(^XJ%T&bYscyK&) zhvEb=D3SL-&6_4$61c`@i9f#$#l~L)jWwg`BS_bA>L_a zS-Jy5)CbzaHlg`bBaeoLONbt>)NMF1JdxH17tN=X8x3J^%(ijdy#=~??!pfrPnzu` zt|QUDj?u<-n0|fm(Qk!D$CGBAs^&%`E<;+iwswR>+6Y712qsM*nj|eASNlImIf(dJ zCqFrfb>|E_FLvgH5}zgfU<<(fX>vlzU+DB?7j4tM)|~v5$g#Js#H4i<_SR(v>4VE4 zwc%1Zx8<?a>;ol^rF) zew2azD2Ba0*s!N7@v-`w03Gy}882l&1(Y5w%WO2uY&6R(6OP2QQORtKEVD6wnPs)i z&aNyHKc|dHd~B&m9Cr=Wjf0F7iJwE09F|AM@@LZ*oObvrt!aiH5s!C;j~2_H)pR62 zPKw0GEjy9;xs^oXXW5bXd4Xu#j>L0;YwXSNy*FYSY@Qp5=bMhi&n5QfmA8??Lh4ptOJLO&4|R0Q^8TQBJqjRh$os6PvjBngFRw95?7Av6vESq z7}EKXN8%exRBo(5voTYs4?YUrfbT!Pb0)p_F};al;U-L=KG+2MKm+C#h=WCNkal?m z@$Q7>IgWuy{7fo;KFVKMStPz`FoxbtilH}6q&LIIkP(c;HxIV5h1AOCiS!oum{!Qd zT!1(X>mA+bR87rzH%I<78qQ?;f|(0m_jYdcS2K4KgB9#RKGa$`qz@KBIKO2$oUbie zaZ4>N7%0jL;OSOm1s+8+TZNlZ;rB(QvH}-F`k}1AR52?s%?sD<0O^wYvuRrOfJ1&5 z_SrOx=`IFnE+sVuGq;M5o$i%Xq+Q0DfvvpLPX2PQEAOdl}ljBJ${LYf1gL zR_ebsYnMK_+I4xknSrS#G6RNJ%?{PJk!at>Sch$xetq!KZ-r_XlU7`z=IStM)y{U? zN~CRTNZXc4(}yNWYa%mnC9e~w3DU!llfNo*v`mtQHA$gm5)Vlq+#yXXA1zM)>b9hu z-UylvknJRLw=+`Mj!D)BAIU+0Tm|i$F2(W&GeFVRD0EE}vHbRO1hhRzK-+`TU@X6b z5XhJHpAnxWxvrQy`vl*?dXq=uI1@-(%T{GtNf@t0`a;X%ikHeX2FuV!qYSi z>E6g=`F$iR_feqPhbhztAB9UNmfu$*ZePQ~eVIUgunF{m2F$ygICu{@cpn@_5I>d+ zc#dNrmY+`L??w6hD~sj#3r6AlOHufKiS+*X7%~*tth?$51Y0>!YUO}L`apb4D>N_M z2a+G4A#(hUU@|<=z$J?HFQMUHN?%u^fd};ij2w;zTR^D?Q0gK10Y{ zU$8i?UiBvxpTQ3>`ePH`C?{MTg0oLj!unwv$P9?tzF?L(`%aq01%bl8bcMeiA?M&L zfE>d?;T(gMs-S8IX$fJLphN{;_k?!}E>`o^Bc)Ojk3zzsl*D6RMqnTSz&GEV{Nvt3 zi1d)B$A2gPgcO`S0_co$C#**yyCW=49u1uW|^QgCw2vJ;$` z9V~4fL4Y7WPmA>;_HT=54 z^hx|;os)2WJ{41FlNacWay`*Eo%9oJL%QUd zp^Zw3J_e?3d)^Oc{Xd9GRCThb>inYmK#S@_H|x(tPWPx(-t|Ypgd?ewWpe6elT%Nv zCDQf89jZ~e$w|tiNE(xqMB8dP2O`&|o+y7r>2$N=fU~4&`Yba|pT*O(J`im%3ja|Y z&>%yyfg#zzko-7&lj4)8AeNGalk!6h+cxrh!9J~rA_Q%6>6;Xvm2s0IT`CSp)9Ata zkENRwpOO3d5q*71U!Q?05)x6#@DJRvc)#hOAR`3@nPn#^n5*wt1dUK2FyPCssUilx zZ{NN6JaC7?zI*XS;2Ii+%JWJ@Vj$Gt4G_Kz8WR*XcQ0H4py#gs3^$E6y*FA%yTJ#;9z9+ zEA*c5One)a>VXW7+M?YS9byeA4=l&K!>>ID1{>d0%{!2Xn-@x_^He&WSEbDXqA;eN zLPSLXfwAeesBINt=Lub<&O=vB)p`B{5myjuqzk%6y1)eLgH51Ip5fBFq*^lp=5N>} zd&$}w?1n)jqv4RIJ&r=(dU2v%5DMulNU5%|bSjqr#*+eGt^(4F66r;bGSbCFx=78q{#MR`%*l}e_6PZMMC4TL|)$@CwkjQMvk zkmKAe3T?IYQxqBVi)8=eBK9vXB7~42;0Ef~;$18R$rrQjx|rDNm)SxsvqhD8%72vMDPK{_Q@(;m z57yHTjFun9iP}F%KYydIMfCLt^fkDg2fOe#l`+3ka*nTDcAVoswR3Fi2$&&e%zw2V z;=ck;uk8^39k_-Dfm?QniD|&F>kuyvYGPOre-ir_!%)WZ3!ssZnR0}&#VEZ2=uZI0 z$^R31#{4Qthp&PTC(>83{_2CRze_1&ezip0)yBYF%>?R$O(0z%ds8Z7{!7T`k%sO>!`MBNKcRJn<$o<^`CHLQVO>?9Fm$dNYsXW{g9*aYViw%-$l`xP@!nLR^Jj zEeQv+1!0fZ>gL^BW&Ypl2L)WxKrmZKLoKPTflu=5~^T z&Y0g$vWPlkeg}0O&Y0i97UmA>(kZkQEljHt7RD(!A;-GVIx11!DU0e(zo=SkQMuc# zx~43UF)y?U&glV@bC+y#?qUtTi?~yr$+=q|#ofl_+>N%&&6t0ubh=p?^LwOe`W`b) z-^0_iJ`im%3ja|YaIXwW%-gg<&%F%EwxKwn&@L*7-6sp@K0m}LFjm%}eMNCVp+gyQ z!2PA-fct6m@mQg)5C;@G!2K+=p|AGz)j`GWKd{wQQ;k1kUT~TY3LcPxf(MqFprEk4 z4hncK9SWIn#v%|HxKpir0COBGKq#yb2m-7Cq0ljK%?c0{1L00_fKccZG$wX{z&&GG zO<{SGO(&>qtgsvf34DbD1)QZo0VP5i^9N-o-HVRjiF21J8S#tgZ}46ZT51vR$g?nJX4_@-})7dl6!)Q`wY{fJ+w@d!xJ$&mK{ zttuJzs7%45ehTm&CN?WwI8dYVdleXt4SJh=Xj6_DtN<^KhwyV64tBKIoDcRwM~^@N-6ej<^6!jNKQ zQ(?aQNvVe?-F)|xJo7$jdVziDg0Xdj^M$AnseBI{R&M`CGBRCJuDeoeE@_t~Vyy=W zo(eul@U-+G!BdI!)A*=vm5N&}JQHl;S*e9*66t60Q7w?g!61B(w9Hbt($NxNa9rpO2XZPxP>e4Cj_P!LJ zdhl`z{lHeDkEbl}3NgaUDZC)$6kecuiS!F@UE~z{hb?=7Hn*<${a-K2cJ)QSUG2|y z)g@Ku6kd`Y{Fiw4e2JK0D5_``-pevkFM}xN#LH+KHnz}PnS1KQ$|<}ePxr6J(yz+X z{VPoHt7T31{Q&3zeMJdW2e4ka}!r|`O5<8`j_I&l>v?<-9A1ET`P8#4dj z@PmSM89u!2a14ryf|)V}GyN0{VhWtX;3SX`p@o@6-Afi`7D+){m{}x?rg92SLGQ)u zHwUXIa}YEVLrNG4r?6@`EwEZt+G`|-ANyy&5sx7h*F2kIZ) z_Y!Ua!g@D%h4?!({_x!N4$n>R5M!Of>fz9Tji_Mst}K9e{V;;5V;_CZdVt+l3X(?2 z#d3wU$_V}6D;4^`N23SpSC>NnwaDKaMqjl5Yhf+du1Qhb_3pL3-m!*Zom+@0qd6U27D+_>L2o?{vpt5$ailod?eTSh--Z0 z;&~O2v0idH_AG5(0;^V5O;)mq;A7c>e9RW)W4F)s1lMEzsBFk5vJLsfZ$s91Rn*FL zY!DR%pUM<`>Zf1>mjZxgoEJU!RxGbN$MBgnn|y}ZB$57%I`Iw=g_%i~QjTG+MBH38 z)e&WLnLvH83Do>?S1=X^lREby%(|>|!&K{p30p=LA2=_59p+JwGR1 zY|8Z{gIJ0Be<7>?7p(qYP?t_&3>Zj;(l$0uVXQjaWN`bX5Zr#r7VXP8w~F9)oS@1h zU1L_!3$ebERrxEwDvx7TCT>}7>esTH`ZZ4yUlTK!zm?uFpC=PF4@5C1=Ams;?om>3 z`;9!SeH%-EE6-}*Fu~uJHLHyUpvRX#t9>WWQQz@6zQZ_zv)cD^jqka}_rz6ZUKT-FRh53o3po80=NET6B zn4hWZaES6VTbQ4zOQ*1jXkj)jVPTv?c!TDGut9U7Dhu+9EUI7pqS{=GN^j82rYsm4 z3%fM?OwO;e$@!Hv_*ddibtY%NJc{|oK}@~krWw^Y<6V)n+&_(7(8xa0XvB_;8{J2m384Gow3l>2?Im5KUuhTN{qTP!`~ENNdm{ZWhl2V5ff(Dq zlw#E-5^+n^c*sCqXB8!OBsQW8?jop!Jh#bMdf!v`Q4NXcs00T zuO3aX-W}jfEN}-n6Bq6PXJUy=93Ml5QVpw>nqVunQY$ryOf5d96*6JFf>J_<8;ZMs zm@wS^I}n2NSqy~2@4hPhzFGy;yO#>T_W&0|;rE_$_|1DI`(8U8E9`EC-`G&Ouy?fK zcP2r4B{;{KgykG(5@ci|c8)VGsOyk(oN1xFlnk<_1rT8TC))5>q7_G24G`rw7%8AtSmGme^xG7d4LDqlF$ zS|+MBh+f%=Ey?NXPON8HQsZT*LGNMdKUO#6T#Wdt>_epshgB z@C#fD$C6l%$1EEw93BY2u{{_qM?V%aBW3n(OlP{wK17dLribi9V8Jbxqi1@Q?gr5GmN+fb=QwKVl|g9g08PM^*gcH|^72z*gObQ`Otmg$lTS3a(E+*dK`2 z&|6`~amQqjPeqy2yx4M}*I^sD7ruh<()0;p^kk(lYVyViTf{T{C2sUbpiR8!?;c=$ zG6ST71KffGxZnW8Ep&C7#S%Ag_eLSzDX$F#@Lp+{C<@}S&=>d6r>Y?S^io0m6v!eJ z#GfGt@x0A)Ac#NR3gWRBbD_>-v?p1znz(yi#Xa=QK+;ah#U5z8*aN}J$X)C~)OFa! z9>l)RAnMX7kbglo-G2`~sm?YT#19sN_`z&^bzR&;KTEK5Qxq~Q4B}UoE#1m~OLrFZ z!+pBj3gTChJ?d3>K3j#D!BVd99(rboOw-RQ z30|$N2{;KrHVFFG?1&Y;W{;%!_MT$WI z*U1F&>8L1JL#AL2KLu%~z$s)R4&v9O?j;MeCP_gD@oSPSq7LHMqOQXhW-YcbYf+a@ zAuC##vrAYQr*KXjU)<#m6@9z z_zMGpx*fz{6u5@z1&YQ&JTVZoxk3EJL0f^MLJ)reiREIfgm3Hf>98E0ftG+ zZ21ry%09%%SZ1W`Lu|+vXk=MF#M$s6rk3wRY$SUG8?i@#A%}d3QF4t@Tw|1r=d9pE zOp8jNN6Y#=+ON;k!1};LW|u@o!5Eo>F@6dzVG5jr+B=#f#GyFnJ;thRd=<}>XU0nQ zeJt#IA_G%S;h{c2AjY;Yr67KsMBF$v`4D9)1ojR#fy^WQ9V=u=!Ri3%%Nk9CR2VIf zm*^YsM$6-wed7&Tpx{zaa5+36m@hYe_rw^8;c1ik0`~PTT%nZEtHFcv>XB8j?!Qk6 z-hZDc-G85u$V|k?kfCgg)yl@fRyL7Z**KBe1Rv81O+eTK9I$D|UHtkhVL=n!RQ!J> zJ7VDn#IFJq*}?GABC5vK9N3cU5x6p4&JJATZG`Pr&~8)x67^oriGrL{6G=%@U?Kb< zbD$i`rb6k=rb?wYWp_y*Txd)ucZpO=IZV`dsYlSjU*4RU^t~$LHj{|kOcA#k6Q>W2 z5?B9Z3>$=EV!~`i-*Fv!D?@}!ctxMoRf@V|mT^BReIU+lE)lo6u94ZC3DgH4fq;ne ze6Q4b9WBBnPE_-1)yx(WF%a#?&^>(>Uukf$yYcPXZOx8o<(*tvd=O3&GlKAGS93&4_T- z?U{Pa$8=v}0IXJR-J8ld+)~Ow-6|QV+dQ-3xfo92c6Yvs0Xb@y;wM^?qkAMPUO4|n0{ zeHUT|)ld{w@=lw~t};=(f+*(1u4tQLygQ^@7Q4ymhTUVC-Q{${ZcOm*Wu+VL2B7a% zTIC8OKG-K{8ZqTQ+JI%yXH{2H$DE5;1 zzn32r_c17tC^EM!?vILsy=4ma_ET^_Q{WUHi1?PpKGeNrVfG;@=vx;1kSyS(=^0O5 zY37?rGW$~3VGFY_TbO;ROQ-OlXki{IVPTxY!}S1IJnk7Cr!XTbQSB#-YCpfIW@u5l zTZp@+Y`RC1ny(%WrXfk4ER(apY;yKz4c?!)Lp3TlIS0t2IKY^k1JJf|!OiSO9jPd? z+Q98V$%#48I57vZ6Qd8*KNSBq>6XQ<&Aw%EkPN$n7>dl>vUofy7#%DN;9x(D z9@j8>qOw~SPnL1Z;*e6eEDoX3gY}O|w=9rfh!q~CuP5m1N!KV!w=5pUi~ub}Q~1#T z&~DP1L#105hb}v}ES{?Nmc_&NEsLiEwZ{nj+AR0$u*92@%*6RLp&dqKFhnpXZ*Xu7oK<3#quFu zh>C)vWs7pO-=e(WQUJlZ@eMnc#=2K?vjUsKhqjr^90SXq$Q;Ajc71>-j8$JsH!Gx# z&oi{~Ia7A5|6miy33L4&D?C7|btl05qO!);t72*bO9XF6p_jZc(2Fi>0!svMkKx_n zPT}SHvtc0}&pRM-@CrA)D-(Y8|46vDhsIR@PYIVC@8jeGw1;(^9*H8Zzofzkr|^n; zf3Miv%c{5I<;IRTy`3NzI3e5{jMUokc-L4>>zMfoQeLK@od~n$2K)Led>vqo#k-=q zI@pDYK_e0U6KgU26HN|5Wxf-c6KN8m+6jqOt|Zpel2V_|;?hO_Z0; zoFtF%B;W>QJBiFm)a}V~sgq5qlMU;M0933YlkUXuh=ySm{{mb;v6x}@F88QdO+(VOCMGlzSc-1ljwZ`$`<>>DDkZn$cb z^RS+uZn`{O=u!cS#tdx2s1HUFE0^bl>2{OPOZIxvR*HqxpN9LrOeu^R%Y!rn8{h5N%iV_jJ~(R9jG#DLwB3o?me)~ z6vebwY-Fc^HIc`?XAri+aqk%%fT&H}ox+=77rRW}aGkTHvlwKIjx+L<)2MCMG_ zD@0~(w%~reru?f4Gi&mW>zO(;CDg1Cixp-={^7;I@&@XedUi7FiT^C+N*4nsiOZ?( zb*Y|a2VA-(lLS%Bi6q)44W4Ppvb^H6lF|-TnTA-VLH3HzVuBmW@`~RApx-V(vzC&5 z+!T)^Me0jDBJy3YI4##mbB#1{6(fIB@QUAw3KSWc{~13h@Cx|gLY{Y{q97|%ko8mW zE>qwX-itW1b~be{S(vj)3OciPHpv3hSEQM>bExaEg*k^U%sJGhQi9NJcyH8ZVJ{X_9zmojUwH9NCbkYQI~ z*cBLdpM*1OpGF0vq70*=A4Z>Q7=2b*W^Ha6nYHsvW!7j9Z?d_cAUk9wZ{V)s zwVAaKz`M=}@|08hMId`-XV$(9T;pJXGi$^^;vZ+$z6#n3TR7~0k$^rYv3!MDHdgou zj;U*SD1gOTm09~7yeBzWKE#Ex4{=c}bCK*rT*wyaqOyF5_u)f)UA_--vFs6C%!Y|J zDL3T1KEzbH##F8`)y4B1!H1X^l|E0C^?90KpXa&iVrAC8iHd?tWD5Lyju*aR3Y@~X zQExDnxm3!p(Qe|247L!bCAazjff(Dql=5qrNyJ^ICLf~gGA2+TYy#;D(aYbl!h57( zvp6I6U9&S{YS(ew^HFGJeOH|kyH4)%I@9HK zLYF2Z<`jNV(<7iTPDNZWH-k~Z%cp3+>0BsQi<->!!3Fj=NDJ(*Ph@Vu$26*@O>3F{ zjlouKl3KYjk+}&U(+YVKZ-7!F(5&rMf0*Q*dohr>D-lx@{t%by^>Em;`{5}oPZ^@U_BfVe-b&-b z!Sy(iwfkLgZGKW9tT1aQZ_u5&%}iS=Yxg^_6VBRUcWo(zzMUP|+ld)8xXMFlwRd(n zYj+2TVouzFw#m);)sSU*+;_?z_g%5fU9!i0Clh>ESswRq0QAE0J?^_@|M_kn2W>{J zq-JI9uw(SFhRgdlT;AWLEa?qD_i&ASh^rX+0>R^66cs4$C6tHxf3F`Dix?DeXUuxI zKcb@GKAD2RPSJlb1y145h_iP0m$ESTlN5B;?tYR*)LFX+WDD~ETNvyRO%~=a(Zc*) z!ooO(#o?^oKT(P5L0MD}`oZ##7S+EzBbCV7EeS^Au61-bh|4@Ao1BMOgC8R9RA+J? zmPhfhF*y&TZI!h%vm15PtgPJ(DR7zrzlPIwGyDhYABz98l(qY**;zZai*tBldxT;4 zh=N@)7RuTc<59s#-o!cM-^96yb!0RVImMcavUbJVGO~7$mCD*ZMx&3%iby)a*qJ3) zDr;A)rI>XIzKS*URqGl>DQmYFjv1UHG=&fS53h&AX3gQO-Q&wl)~=YSHfy)o%GwoM z1Tu40)~?txa19)XqH)%a7)bn6S-WDZpslclLk58blpwLR!Ymsr{Oix!;VfnCig1X{ zBz!7eGM2%n(!=UzOsbo)y>EJcf-TUKW%&?)$DE>5z7O$~>=8W09>G%> zry<|X+C44Tc$#ZG&3G>S74{*Dt)tTCXJmu=jBi>fwszIU^C61MMMc50G6m22DOk>> z0D?n+s54Q&Dvm1aUd?*A=OoMi94vbx^BgA#^Z}wUR(&bu>zM z@WV-x7mV9Yz;kwWc6a zY~w+)JFRm`7X>+{i^v<`USGP15B2b}P$=^<7s|Yx$Y9Ja0F67-L$!|kN1-L1=?hR1 z7)f8iom@aYydo6Lyut-DudomEis^;f9)q%(6o>nVNpZM;2T~k-7Pg;K9Eg{Z;+RgE zjAFYIDUM=$$TyhcD0UE29L42PmU|eAADky~iYo}&jbb}5yHRWpSa`%oxs z&%AE38^zAyDFCcyo>sESU*-)OP&knFZ&qH!-9&8&04yD9%#=fonLN?YBxV?jDtg*) zmQ2(v*bkncY431M3Pr4!a_y6q-FQ>>Ox}uR-jY3&H<{qK%JEE!D+16fmG7C%mi>&` zJPz7ZJLs8UQ*0@_fnBgE!}T_C6(jE?cqUz<0)^TOI}D0ZDHQCEzEl)i>R|3bExaEg_*+^W)5}f6uXNS zrbh`2;}m;_vKz%-QHkn(Syb=)!O}~Ms&`}Ajbfi*#6kwdGC3c}Cg%gz;17s9)tQ_R zYek{X| zH?Pio%&_Yl&TjOJ3PzvE0`PBLUF@e})W5Rq#(*-i8=scSZhT6k2kZMv*^L1dJollm z{`57#HHt!Zqu3KZ8Il?ych_2z^qG|1_-xt9ZVaq4yMeKLYm$nC0vQZDyD>O$4bux0 zO=UL}1Bri}-B>wjD^S#=p4k7wnxx`D5)19-9xL_^WH(mk>;}bJq|BBNF<15>K96NS zmwkx2Y=J&6%ZKOzA7YjAeTXk)kKhaT2)+P14f$?%<4d{5mt5mZ7th@VA7V&U`uvrw z&;H$`i$h#>v3!VCqoUwznS!tV6Vs~NqO2DAnxuJ>eV+&Wp2*DO6oNiLAjY;Yr5wjM z5^>+C$%k?r-!OstU=tX~aTL3eg5kZVkz^&lC861#7t`^r5gPhh&3OG4WhK6ooBl4` zG$7GQI7iPOt9IDI~!rO6}6HBiV`6;-%<7a7g$4`mO&-kdu6ql^^A-@D$_*H7*mqg}Q ze3%^2xO~hcO(?fL4#T0xw(vWUETI`)B}!m{kSO^?B}#^|ZyH()Qd}LLbtqA?hMXu_ zv*cQk;#yL+WSEsLSsfF@+7V|<<_BS~{mc1wEHj_D6m=}KfVvLHG7C7CSwLMn#o=Ns zvrdUvhR|-U1^G?LmSAIQij;rzvLz#gDP?s9xC+;T$U9MI{5w$>NAQ&5lB%;M3+2#d zAv+FgBWbEp`C5=g#N}|bzQ}|wi@<1_Ue+>p)ADrW?Tj;j#xj4(o(^wkoGEKN1+^jw&dSZ76yA54>oH-{{1g3%o5qcU~l4;VFH%0h1pQFFe6J? z7^k>VI9oC*B2i^yqNuW%1KgJosMOjhEvnHxBe|w*`cRzrmM9j-1S257$;rk=lap1g zC9*I!Rc1@FHS#EGw8_cVply{cF|!+y)|_lfwpQ?0vbD-#MVchbu8}!V|1f!LNZFFr zo0~1ks(p?_6I(W+V3$?<8#~3Z;cUscs9@AW766vV+b|lZVKlz7Y{`VCvnAPj$e2C4;_93#%iMfyLa>|FuE(dfP@;O_QrOl_q z>q)b1xJDZn&l?Ip#O6`yb6Z)T+xqo+b5~ugY{?c;QP57Npq-zBEnEtGYeC>x8tY!g zT99me$+EYHWlv<=tMK0(Y^%O>@+8>~5^){Ww1YfJwgVHW4>p0pJjn*6T5AK$TPkZ@ zdM!wCO%&S73j--X$+Lc7EeHxC>*5r*Ztjy{+2u+4p|neOc_V$0zLg3eoZ>dkeG)9Y zg528*;oe}RgeSp@TT{?p`bn_jHhi7<*7&=TDErqUp6wXO=VUvE@;S&KC~uZ>31G&S z${LJq=G&37on%gQ0>0FPS=ml5qP8MOCW>dlvMb76u4uYkQRp(7XTh?a<-TcWZ60pt zQhmp&d|gm>CArI$OqaBSHo1y6htXREZ%4{@k^Amq`tDMy?`od~%XXE!>}tBiYOBz2 z^|N5mHh2tJykdTkUFRfg1@HXIc9V(dW{Bt}5TSTpwV1ohU3NEJQW`KQW;O1rS=~eK zvWMxihtQ=`B>JMPpD`$$rSzRLxl7;KKo--!21(JvFC@p2&zz<5ncJ4iXHG)w8_H*H zC+9P_M_IccF9vmrJ4gx5ZK*Ur+*X`~*=a{_CiCigz^ZilSGH%6?`}df+f(tAA8yO` z1oNX#Xl8p+*WtJiyLThqknKfXI>nv9Fpg-v;X1{g)!C+&e`R}z6PnrH?1=Vuo$(r{ zxQpQRO;S!+WeLq}9~w|7cbN6>#9iD42yoX~d22DUedX*zU-s?$5;IuJ6~2-x+fOE{ zAKU}xL_b%tb}(dF!AO5O7#R@DVuxs9VS2Vd6Fi`-U}R?ide`!Uk%4k(F_6bWdngBk zkwJ2eL0n@HaTSx*PC_uUTU4MJEc1V`anDqaYBvT2rV6wCYxk%qkhe|FuI#5^cc#E8 z?h$Q5GmD*<{ob&)FsqOh+=tt;tB@=rzGadfLS2U~%n-IP^uz`%%$}l!*{g(waf*9~ z6Po)(C8||ru&nAA)jnEO`!<@;+%K448H%=5 zLetD{)KRk%n%IdtwEQbO4Bmsf_nO6y)RfoM2kIY+za1{C0`w>C`$8utH9MiHwxkZj zZgqy;>cm*5xPLgIc|cS!l6R!e`gf!*9-v`#U}Xu-gUU!~u30LfsrI1;m-m+vng>x( zzaM=aNMG>4Xr|=ppI1bfgy!Dx%#cWHWcgQiEh(XiO{tfW{b`E_SDVn>+fHa65=dIw z3C%+T*D$?6(Rle6F_8Gj%fAi_+6ojEmVX^gVmS=6Y^=C198)`?c^D@&4~EQ0nJph; zZP|wy9?K4weTcQ$0u3+Ahu8}~#Np-p5bMYu!8+^_tOMONI}tfj?rmhaHy9Tw5qUI4+l?e5kKyY8S$T=bje?0tShT>xGCOYoX6z76 zB65_>iBUiVXXZw^7&wX?kVq1dqvb9~n=VHSU8?*ECIp@r5NNZ%N6$T0lA#(S_dUk+ zJ*HIORcENi%3Y2%UBW0UZ_eg0dW#|vIZp0-oauX9slKbuj*XYQ9B;ZDFLX&WJ$xjR zZX}7w2{I8A3=tCqA{5W77V|{8OWJao6=|Z-r5bnDtln7ea%0ow#zL1$k?6}Q9$S9_ z?2~0zhLXK%M_({7+oQz)>Mx{(p?4lnFI(j)BXKN>9VfZjxMw94J-!|xp}l~#rVUn) zn2ad5s6w5=AU>`X<2WMccuG&hkD-(9>Q3u~mo@bYp;??3uEb;YH*Gr&`EK{$CdkTe z2p8&vK^Jy9^-H#bcf>$16fGx}YUQb>S{ds#a&n*%5ZeR9-VKJ-#K**2 zCO`@Qh{x+2222g}>J*n(ed6)MP&13RYuYISPvJ;^e0=;s;;({}x^QY+aIvL#63UJ> z8!aJ4QarYsgdOx=FlW*jldJoRQJ#nMkn}w$E`mV&+$bcUEam+)xd6x)j;&-#s#NP47Ux( z#}r2EOCdTbA^I#4(G3!!l})HkWH)#1LcN9tWRc{)Q&bNnh8j!i6w_W?-f6v~`*>;& z^;4LYGoHS91vTud(w8j+BxJWx`mzPXO&?sDrpwlsvr6cTVTvZaYJJ&KB7RE^I>O%2A!)3)(N8>{&Ui4XcA2e zmPUDXpiEnbm8rI5m96853Dnej9+a`RlTy1Zt6fWWLjv>0*=_x!fEuP>(Q}IbN_&o>igSp0Y7|KT*2TCZ!HpoAlPlff>q2vw=r>@Cy6U3ii?b* zazGQ=ZTOdx)48^sz_s((KIYjzZsXZEr&#dX^-f#%aT~Iac``SR0mIiJ$})CT&y6!% zyK`Y+_?mQEiWPll(UAehd1WH7QF0o+$owUT!OwAH7(y2eID|?9guISb>V!1VesSy9$dWQHHb;crATBaxjY~p zE&_x&i+ee-;`t@!D^teC%=wLr($}^PfhOxUV(Hb0FJ%3gl_9VVqDQs1uj|g zI-tB=7|PHILSVSoc0O&mgl5d$m9Q@^<)}_2+y{fKX&wwb+&jff)XFYPNk|44V@MNR z;7^5Td1)P9drh~9ZEYe}V#(k=vATO{r&P5{E_7!Z&njcZR1XRgwx{e>s6cjmzV*C4 z+Ey{rDu}r0eLtwNgRn+w2fnwp135)b@iKK2X~L1lT?X+}mGV`vK57EG+L4G0uaDZ1 zGBlVr#@DE&Fqfep%J{^Jmw+pmCn1LBa%Cr(D?2e)b|S7g#Vf+=I@w>ENeoh&hDimp9hOhv zPyQx+=y&MgBtcrit`a2gD$8tFmf5bnNJKn!c{3uj^=j4y>N| zKlZKzK#F2%@80df5>23D0zokW3g!$RAm)HslnkQeq!{m3!tE|9yK9b^G3T6f&N+)Y z=k$Dr|EsRRT0Iub8;Z_l$u9ub3dFLBn*&`0~b9 zOmIhBLhQd>c`E0_*n<{@axUkU5|^NlNpUQ#Ia68HvLkOpB=sEv^^G+QVbwJkkm9H= zAr7Usj=)NxbH}!n>y95H5qF4VTMl6Y&BZ3rSQSO2->iVc=LBpG63?PhL$kJ8g9|qS zE_NWz@udAv&~X%@J_mZlw}~1^LUlb)9W2TR5U!8_!j&>WxJqwxp$T@aetf~zj2+x0 zGWm-v>~IA}$!lEfU}r21I~*!o+(X&o9!jc2Qea_+p#pXo%GhBj^zkC$7X7Tpz>^H-y#l5pv5%cw2sh8HaAn zhaGP68!V3?IrvV;?JQVzEaaU1HBg-t42!tJ<^nD7|Hr=E?U2@l(54U0evRo zO2H1J~MzY9tKx)s6><0Rt7IksgS z6KF0rf%L?{fGPnyToTjf*@?rhDst zAUuMN?5($HtM(9l`w}YUC&i-ITe0_KUt4CZgCUu{j2iJAnWm=lxm zZi4W4OJ8kGPDsazG)##!Op#YyPiBIrV0foaBe7XV-Sgj6rGA1c?}yYss8ELc)b40% zF)jbr>!+v6>!+u3JEo#KWx1>p)8rD~;=fc191 z+Il!F3TDU@%`ZXYRg`$#XhpETTlN`q`xfQ3DfZmr3BIvAx>2F_TGqhzab z6um9ha1`;hJgYHFZpAFeYRtmB)hZk9&_>+(WA=J^yaeDNACrh^Qatf!Y1}^A8Mlw- zaob#oHq^U>e1c<$H^IpGF+6S^Lrjk^cqZr*JR6pX9V>Uvv0f2-)`-}1CHe%<7vU2e zm(M3Sj+zhNKO^}B&l41Vntq<6pXcEdP%k;3X8D7QPZV|#j+Y#Sq}L)|#gNDPGPX=mZ(#+(HvfYkK`>XnzFvylZ) zk;A}GRKW3Nb{bxQXpu@=pJtsP1BJRsL!As1PN3Ju8tRGy3XcOQyiz<+sF#QRdLH)c zA)*fX8d@ae5(zGm&_ewf$apo;nuf>jNOC(9ta?;B`#_&HEcij9efR*Lz4@?^fJbLrghaUCot- zm$}Mkoy(tGnF}g)h8FT!i3)eMX`}IO>>7r6*nFX?IrG&>hK;M{%vaSp7mA0?6G}A9 zGbI}4F@fe{6R62!BEh9ch*kH}Hw9iU>NvGO*^O=cpZFu(zUMFvfCUMxEytcGzpAN{ zHyG#C+HR|Q@Fq}NVD|ehIk^3{6v2K2&B1GxeR>lL`c4=T>;_pk8(23Rz+`^}J1O{@ zNj4uz>XZ0_cLkk!Q(KLq4~L@J@06@FDX-4F%Q}M|e;ZtRFN_FwTINccxsoQX#236D z1lNnhYWaM*<@3EQU(79!FZe)%Yui*Sq5IH364GGj2vU>L>PeEup5&m_lNha3tiNe(nRF zHYokV_sj;R#54%82Bly6RS{X8{Q`J||BTrGB`jrR!3P9LwXy$_!RTj@ocMyT_&afm zvbwO$C~{e=>7{cd8?p)$WLbgD1$7c8Pzqe3ICf65FgeG<Qpts~E;g7$)Op;B$)X|hc`jcwv-RAqd@ zHvlH=`nb)FFZfoanjoh8gh;R=&!-D$;B-a%0 zNNn;)p1*}ae_y;qd9Lgpp3Chx7wu3u&Wb#rCzm*nOPohsgdkg5*G2rpy{b0Jk3U+}ZCCH}dsUsP()!o(N+8bsE=h1FFT$z64kx2t|LUG*Q0 ztXbFmVe8-hW4h1eTr8WMi&=v&ChnAHaxRfuafxGcF2TEt4O_pVbh=4l>r16!`ch|@ zzLbY)b0OLcj_?fANNlt73d1y@L3!4=KNEBM=Z1+3t% zIre!5daTtKFy~jxL&!vYUV!BxWTL)jwue9r1fF6KAyehICboybHB%h$Z}d&3N_h$Y z@rJFDs=flCF9FG}SYhicWt4GMq~R(VWn4)W#u~0F3T6BfiDwW1L%@y6RKt$XKd~^w z)iP$dnlZ!G5K)JG9k#wkE^!T)xJC>0&q0)tiG`)r*UDObtw*afh`RVtMy4h#3a*nW zxXw!fR@xE;@l1>QjG5nd#hS#T?CA0Jl9j(+d5YI_aMoPVA&!NwQ1ti)iMSio5JU$h z+`t5yi%pf<~!e3>Bq+f?=|($E%oL0s=_17;{UR0XKr zHy~F_!AXH=12xxT)Bn0atm=K zo>?J)@-rR6YWb~l%Ww6z9LIgKsqCmxz8zDe_<3eU|B#H>oGVCtffZ6)!cWMY!y(+V~^Ud@MqZFIc4@0o>;71J<6Xmq@WUlnb1tm5aH zRf+v;5Hikmgi3-Ink+>Mp<+Bm{5;b+^!WMRk`mvoP|@A2z~%yifQndwD-=J!M0~QBOTNWJd5_0_fUa|{Pbn9LkHBEHuUXnb^FsdhhvP-pz z_sKT#KDLSXQI+w`ngAy3_P7`;p6RMmgV8M_!HS>XFQ9?@84cX;#LqL`!m_as$Ts!? zuZ``-Hdd2r;^z;7R3U!;AUlc=5;K^;rN+-6l8JfWi=~ z%u`f#Fn<0NTbQS)%6Mj7(ZZ~k$HK%j>j#nb24Qv8({fim?d_@!Ojq^L$eMM{7eCMR z^pEMJ+pvztP{QNm-n10R~ zrk~?s+FXb>gCjh{G!mQc2s|%~Di^Em=9QuD#)UXmlwoA75(`q_wndQT&_zHPCmLJ!jkde{OJp|oc>%VEu!-*(UJP|p%f1x@p?caw*wk-LkkwgXqdNc{ z(uaCwQ|N3Y(}TPOexf{uP1#fE1JNRtwot~)32~PGl}N)YGRkfQ?6^fs~B@y?Q8iFW({uUExE;fO_ z_<3d>Qm`%%>8*fJpkZi=6#bUs=LkWfY-jq}5--@gVElY5@y^5HB}RV2>zP zzKn{M|E!{u+cUTd#>)GG@qt)*KRH&ugA^;@9^Ho5Dx=sJjHnGGR{pjOEZ$~d@irMD zvbvUc{Epxqzr!}`9g@I!roUhu`YP*J;!bPt%EsYcuW{(l#sNLM1Gq9Ej9B@5GFRSX zuDnNFiDw1|5&e!~wfud#;vwzor4g0m$3TmL%GjB^!C{UoA^1~#Lub9cxE2}6Thbz&+v)W z1!Lu32x#C7Mgw2CvGV=Gvaw&vHug)ejopuJER7&m;OZ-oD#XgaVyEycVg`>nrN+v? zmWlcrL@_76)^fSG6f6HGA$qajMjF1Az1VM<;BTwA(@1Rct~Jl>3xVFhcrW%l*(d#u z+wmRR;rC*{mrH!lCB7%FLa+7_yx0T65{e&W{{P?=iUU|EV09fYmQTm_Yzdqx3#k4m zQ}Cmg0)0AmJabUUvGSj&ddb54M7>}v%um!8VOyA=sp?>?{Aac>KU0_Z&w{^P})$9tXbFmvGQU5G2Lf!ew9tmudKnp5_ifoIlsxR z_{}jnzv11*#>%%>I^CpL`G2Hg`ajMv{U08t&4p+)IKnebBeCg@!0)n1{>~!#JB#G- zpd&CMED`&!+&TaCir5GvVk1j*1V$C%2>g-H5%`0e4>k{%905A6Ix~!ZM$*qHI0A(B z^2W*!DeM*eDR~8dHXpBGwDAg9!L0z4*E7&#t-gRQhu9v%7@rqldkFrMt!)p17)TC+ z+JiT9nBSV%9s<{lwdR@8)GLQUXCs-R1s|s}b_#~Vr-845Q22B;4A!m%mb;tKWoF0$@|o`Wb#4JNd4yuh`Qkp= zLK2@AO14`l^pZ3eEjlyQg zcC27_E}rJp8c~mArjbC*1nIM+$%v`Y3o{vU6fzwh!em4;E+V&NTp_n4ovq@Vj7YW$ zh98oxcu;6X4U1=v5$yj_YIH1ZG9uYpw!W>s*7q2;zF^%faOKz#CL@wti#J-&)_U%~g z&BYdbBlK+LBblQDp+O?9gvp3xd%4frbDy>6KC2J_o&w!rG{mt1TLXq4jj~+ROYcc$qo|#Iyn66!2B~8n}5+-!$Aj< zfFuTA4ls{oQVxw}p}&q2eI1qXb!6Ji#Y3BdgkZH}E$@$jL(Ag?S^kYu=%mTaTTvoz zMTdDSGJ)n|6KGgxR205-B$FmV(5%y)Z6!DY;7yZ~AuKF0!b6s<1it2jJ5V2k70=Ai z=MJ1CxdSJQ?tpcGt1HIw%mUXP2;%6n1Y#wL=PN0JSc&;pf4+7{`nT>&mdDS49wq2MoOI+DRly+e$2m$ zfcaNp%unAy1M{CMpeQ~Pv_#CW4yp`%&zoG;i=s|t6b060!Ijg(!2GMpTv?5|vKnzE zo;f{;`OgTe<*Up1admIY&oKD$%zT*tEI-g7JmCnEV;Uh@<$SE0TtgE3H5{>DgT>xl zY_a#7MjYBpv#4w-0mID9Owk|fCOgZ0)|vaPGxyoqLCk+nSbf$-?z1l5KBK{2eXM(K ziSrKU6@mHJ%!m2cq~@dR&z3O%d1Q9ZqMvi==R5)PpI#XAca<=I*XD!y&o2e@pKfFR z3w*fVo?ck!duC&PVj2cwjrlM1t6~uIpHJ++P+|Tvp_1q`HLY+VWB&6YIq}RzVJ|>R zc9WF2n;L7ou>zY52%@mE9&5F>I^e6(4Y12au4_ret>svlwU|J2u?aNBM41%7aX~9i z3s@W^=D^{LU99d!2t{CZJ{i7ASbc4&#cMk)UYlENE_RD;tgfMi>aBR@lKPZ!KfFyU z+g+FlJCb!ymXH9i6=xn6yLBy?`rsH;8` zie`D%jV0H^KgWGgPM7tT_5E+zKzhsivE&B$=e&i+g-byxDN42NeZs*A{OwOd9-kA! zFGBNZJ_5((*3{J9Q4>w}2%e*^+>*=lxh0Fh@xUy_6{1@rpNE=p&O@z^C3|=xJwO^e za3XxiNak`2SuctxvaY6y4-|8IES|Z>oeXi4m1QB|OLgE~I5ISIZRq|`Pf4PCDs}5g z438zvMN9KFMf*cID6?&}WfV?x6%Ssx@i3*yD6yABd@n~GdvOEI#nXUVmL?i?7LjUQ zs|H7>zZ}xa9bPt+NZZgMZ9^u_Tndt=gSPhzVTkAs@yvCJ6%pxC!sxos98=;{5+EE0 zn7Lk#DS0#9kXXqWb@y%Y%#EQ7-$oLXHd4a35i`hKG=tRPOYj?O-N?*!5=$Z(96Ox3 zNh!LkQBJ3p>y`AD= zO8w6G#)31xF+1ZMQ^Vq!TLt&#CN*%B=!|b7yEmJ7-J4t4y#ZHl23Kwi!x`UH=E|nb zl}(8&@yzW(XZ((^TE3aw^3A+0zk^#I&)k{M84n!T8m^h$ToU`u9kJh>#ok5iZgz@?TkO*bGU71 z{6XI{+ZiXOL5Q_8{!n3O9D{fy^N_+DcUsQ)L+p&-56OvV9uD0Z-$qj6ZPZx14J)v@ z*a}>sX}E1A;dAbr!dNg!re0zz??Um4M&lH-Ahr-G@<9#LK`Z_G^%LJN>O`u0; zz`TcvgO7lNbmpt;TD!>6=ZxP>`5#68$4hg@`}y7I9V9opUn~iq4*@a!qv2Bto8^qx z`rp!DdP{9A*&qL$x6ruo7(B6R$3bPk9Ld*HbAY2GnH$uyNcIM}@@oAdeV|xvBTpP( z9_G!s!(3a?tM_MtM?WCw(Yv$Q{&x>BY=Q-*z`)8XFmM-MGcfoX<$*tuFEH?=@)ul} zN9BG>3=BN&dhBlgc;=b+_@;J`pP zIi7jmt;$Wdf&&AoXP?7+UkKel+fmZ69hLg;$l7HtTDzVvIymrDp5TDPtR_2agCyby zIp$#yH^5vx4X9<=C&c%mhb6p`J3GG zc;>Bq?)=++AHp+=G}$ojC5ioBj@a+TVs9?C*wYg;+>&v8IRLI%UW%Vv-&^jpy}8f! z=01BT=*|nro|Y%AgXKOO?CrC6O`pA2qC5Y75$^mx`P}(^sQF;?JCZy9J`GHC0z&3J z`gxylhi}WfHwwG+`}VBwcJlK*PJX_Zo(+n2i6!@KKJNVDQrvl*wOWOFp=t%CKJdBh zwmbi!@0sn+6VqIG{v*FCBCBt6kHy6Pj}$_9%W~&GVt1a7jg4nM4&9yKPg3Ij)L6S8 zE3moP3S1#~et(I${T&OlKNDy!Hh~@sBe?Ug2P_Vl|0+2ANfX@pC)6<4BzOJ*sl^94 zEk1x-Y%X?-qd_QvCOwTNeHywuf1pI=fl6o&WD3p2Lt$my`GX|l4suv{5EE!FHh~_Y z0rNg4jr;^0{0xY(2zUM!%Ks_ye_on9f3V*XA0j#82gi~_@Xv9?m9Sav{2~6g94fu# zkXZ6i{Bzzy+LPhjH3cqy$wshcl9K1gXj1$!KX980`!Lqj?xG7m^P2()Scd z@DBsu1+YS?-pLrb&&F_{jp05Eo^F{DPPZ(t&&JAqHrCr`f0#Zi@pQ{f5vN-w56kDB z97fFt@1@f%Gk=j)rqeAmbh;(}40LlD3Avk$S% zHgbq%wvj_DGsHB*wsacHC{>qduH#+@ck)ZX;-Ck90*7PaZatVBPj*4r7%VxS zMoqmjSaLjRsAU+{6F=Fd+QbR6O`O0saROBt&(;95RAHYPTQB0-7AiHkF&L5HZbY1% zD4>Cfj0Pq;TMuSihJ^?w$u@S9$Hrz`vW?ZG>N7KvlR;{5>%rt?YI`g>nV7-+Eph9? zmzY5WqUANgO@Xql!V-#^ zGXH0Kg`yP;1uVYVdNA8MEDDa4DLB$gL2ITUo^6u=F}!1oi~3pi>K=;J-B?B6VdXO$ zb8NFQXFT=VQB=KTVUAMW-IA(`C6A)M2;0KUqN)R14<=`^g_%WF#S(#Ej`nsHHj`K1XJwbwaepS#HwBzs&L45~nVe%}lXDEcEtWin zxKp0VIaY4Pv5v_(7VlQ;ZZXYX=+p9Vl}@XW8eGh>J^?&V8m5nPhUw#Ym^K%p4TJ3x zas-Z-Me=wS$>Uihmk&%+WLF4F#7>Yq=LD~aVJiR@u@0q8Q)D|9F-=jI&k?Aj=EEQ_ zFHBQpI}-j}j($4O55n`RmxxT3fA5?{mX0UJw`q7E{?UKYDkVx3Fxv>tgK4Ulyn^~> z;}v9AG;lESQN^@ zsnOY0ibolE-92qCQXTCk_j{y zn?OyT;Zn8@sa6caygJ)tH(XoQ23SS&6PlL!0h!it9Ys4M6w;HCf?Yc(u4GqtdjXpz z)I{el5J;c9pjr)=a~H(sE}-^FU6o96rerFXOgT*=KC5wjRrU6)^!6+Yf{}BxTuGK{ zNDCR0Y0j8T^WdF!Y5|YdAn1lhAq#!=rvI?w?&=`|@f6r_qw$mq5`jq)5L1NHzoRH+ zwsW3vdbSH7qCcFTT~iFFXS)h9^K54~W}fYWF6$OX%zVBKFd&laz+%n^Km0NClLRmM zB(_~A5nJQgwSq&I)WUwgOiuW`2f5+!>CAIfDr_7n?wjh4C8~ zuygHz#X({>aCl=E3b}zC9=*znXq`!RL5gUdNu#ETnV(4-Y8giL#80-S;s(UkqJUg# zH>p6t3U~^WW=yBXV9O{$5Rp9@ljnEAQv9G*+eVE&dGGe1uz>O2s|oH$R*Wgi7p zs1kAqXMsv=lyQDS^ky%JBrlM?+4Gs;3owQjj+t)?f!@4$Z+4;Vn=a&bEJQmLjqJ`NekA;b6w+$le?ZWD+ z%jB-Q%-dDlnXb~OuWD1~kD2%NkLf;>bGdACE@utCoVZh-$yp?~Vv%EV7UA7R#?0Xl z5D`s^nO`9d(^ojd^c6fzn+wqfqp*Y=fh%Q^ypl!oN*2j}K}TSRute-CxpS`air5ZD z#A-`)1o{`@2wa`d5xAO~58n5a9D)9XKl{>8E&cR|BS5{BH)g(VVXxpC$t$>~`FI5b zj90*eX%BP?9~Oae!uAaGSgS8!%eJP4#&wb8bu!AhmTlB^MWKvsfHHO}9%WoF zV}|P)Gh7c5b;#Fq`8UWVZr~C(XradO+$+#<2fjID{LW!%^^LMt-{{rqoms1G3WW23 z%fmT0$rRk=rC=APAfDZoJw*yyyJGEF`f?)YH%nIjX5}f~%ztll3{T~zD zA$?46dn|be{;67&id%2E)BlFMq&M6dOWuWl>J2oG;e_KI&{7KAQ!vYf=W&leyeTk< z6s%tzHn+O&JQW_@ljEkffw=r$;7%ZMZ#h^$SOx2ADGbd+2U+GlRj?kzDDL+H8~3Su zh1gBXXlGP=5S6n`=5DeD66C+zhWvLETf&C?_fXYA$bS#xt9z)*c$QE5^#>L916zqc z|6og!Zv_?Z6@m))vZ=q<4Jzy}Sav$=ns{2$hr{>DcJ)55UEQDUswUM074DZ2{{1|9 z-cQVMC`z=Xpv|1AVs&$-qB_;aIa4Wg^MIHu`GCold;sqzO&u%+6&{p_`-dXQhveb@ zK_>ViSb)Moh5aDV2NXZtKP(U44|9(`jCS~k`$yywk8p`ch^uJ%zQS-XoWKkHbGo4T zxu-{E{y*v!iUV0F?BV{Pu*C8)nS#f>6dc49#Ipw{)I?@z7UprPUa~NcQ!kjH!sFBz zg)B@wYmVl%N04~-5M>VhM&i&sMk1aa8jK4J3ya%N$lQLy%k5!?+rxR}$P*VB!ARa~ z>D`mVlTXT4<4IP+CyA$y$d+U^o|0Sflw&oX!n z??0vp-~YLMzW;O7eDHpxt#iDS)p}+x06psU5l1KHIcvOE0(&><|-Ts&55-)R!m$f_} z0y4%Yup(UzOqR0?Rt-_FEM=q5S7a0N3Y(Bube-b`>@guMBl4e8QzeHd&3Db zyuk#Ti%p>658*SS`e0J$eMn|C>#CjQXC}e%X01%*)z;!CkQ;hW-fd^)-D2GzmZD9{ z=iN@0yxS?VcRQ86+aBm@*Sno$dAF0HebZd;*3MYAcl#!ZpM*W%R4T4N0(p~ku@Lqw z6+yfutN&Z9{%=v0@$7U3QT@PmhDt5y-M%e&w{NpWd)xJHX9}u3SsSyGyxVtVRer~- z$}?G&iCY#ng5R#+5#EK~5YmjYTNfwi6S?9r}w8;XVbgsPV;%qP?f#=HH5`XX!#^C?vw^ie)# z3-c*e8P6UgT9{+=SeSS=cwBQ2-#qKK>yWk1ZS>Xif^2F$CxdXoTijg@%I$Poi(%IQXxW?b)bB({D=7aar z3DQ|QK{{JUKXigL{>(okeq3SK_*=;}{cXt;z7g@G9>tcA;AxjPCtnFQ7-W#m-tc3^DzR5NQE_o|0FB)PhN$_6srF#vUFG! z{47)OvzLOj8JXtu#&+a_xnk`Y`Es1qUnB$ni*ilrTp`e|74{CZV7&|TaK7-%>n=Bp9B7n zGza`!EcqY&b81woVZG&d|6Bemz2)~<^1t}!yoJpFNuZRZqndqj{fFai>%ZZCBMJZP zTxbaS-(8gdeSz}7Ps!(hF8~(wl*rA{b7ow#QOfTu>$$PDMqcQrK6X{qGd$Q1&V-_}{52 zap=Scx2bAz=uD|0GltJRxzk8&@^ABU8U*@`qKD2@OdJSPG1a4~7~0_*I#V@ri5e~e z_@SWSslw2CW=KMjY9aH#g;yxfWT61?a+b556&3|8WeQq)DL9KMh-c3Z*Z)q%sd~Y} zq~g>I+W$_)sV_qIzf-NK>VSnwwNe%))rzW&XU`EW%(;0iOgwvDaBBMeu)3$Ly9$Zsr=RalXJ zDRs*t46~8!1wQ{92ZhnMtCynBNSocM>D2Nvh*%+#T0sU8Fca9tCAC6PAmUtrh%1T* z5glYm(19UA2S}$wK2J@jI?5$Fa*2*wp3f0L#Fb$w^op`Vujp0iE48{I;ldY84@4 zY8B3y!oqv%Ra)=O-3cPEw^)K~dJ`8-oa?8%EvrT%+;{x*=Z1+QFTSht;!jsz{0;fM z_#4p|Ht$sKn`AGZPh9qS@i$mrJdS0~-r_Ra?I;FY<$QRaQlE!Q7#rUgbaycJs${Cd z#@MULU}rT3JF8KZ@$9W&V9<-dO{Es{;!~>!z4+AXYTC`vIgKaB zBn4INS$D^tb$9Ho59eV@p~o};cZIE?r4J-F`MvntAkcRdKLB@=htqD{j&7*VKLD>K zmspEStVIOEHry%PZjrK*Eo{JLym)}<=r*?U9_b8j9C6VKik^y2RitE<+NyJ|ge zSKV*A>VZbR_y_&K+-Gvumrc(4ticrGF4N>}Ah%)z$K-5)cPlU68QqAqCVBBaBtX!^ z@#1^17jG_9KNKG)z7rzx?lN^_lfC$!ve@-xvFpiV_fXJ_e>f~L>LqtTFRvIqY{cl1 z6216Gi}2z%%;&{#NX-ZDACkQIM+uWYNI#Fz&!bEs4<$Y?{=ULq{6>-&zftq?;vXy5 zi@(qI;ve^U>b4jEgzp)~7ib!L@x(xAo%Z6N^cxFg6}=uahbB)G9 zN_3aEl<3>Cn#tNyUmUVP!Ly*?c|ai7A9lNuhRj-*Vmfa=izB|XFDNB+OK=vq99ac- z20pcwZw5ZKwJ-yp+A5aX8vmRcm2z5d*~b5tZKbzt6H9H2f6iNI0K#$LO`FHBr#NV= zlXB@_WF&@&!CH>Es|PQEiHtCO4_>B0SA6n{93FVpJrdh}mBCH*m@39+!~KPRp3|R{ zWKMsDfSd~jQMMCur?yinwVleHG8ZixuMl1$l~Ra_>Qb7U<%%ySa?iZ*tY)h1RNP4QTL|k8`@YvKe)t3o07Y~7u5rutU zG?5*L7$lT)7(uF^L`*-2n0`!*x!A<$p4139l6{GE`BgQ%2gxg!S35}L?ck6HV@)hG zmm0m`ZjAU4NR=F&KI zOT?-Sl!zPXXv#n)&|EwO8mr>Shv~yaxmIOIiI^Q7Vs>O=%*7@~iz^GQl2iP=qpV7h zymGC|Ac?#|4tax^JaZ|6Jf<2$a;>X!+QtMDEra5FW?L0A$zZ*&+MQI$`wp0!or313 zy3wLLG4&XcX=X3(7jYo6kbMCt0ZXUAy6ejCgjjKDrf_$h$B$p8Y`j_U~QG zO1%dw^I^!d7CVzSBE=MUwquGrqt`>9wb+HK4#pIB;o#0LRAoH-5qQf{3)iT|vmdL} zg0mL83bPiwva`8sl;4W&az7C~yZ4lBEOFLiH`%k>&Fk5H0$3ZIwb)$_A@0up`|iXH zvO}dW1lmI;Y7Y>_oY+Ha^al=ER={CTIpDBYB(;|uaM+Ux-V5lq@T|qh5a>^pR_V@& zb_X$TM^lT57#%*?TMi%W&F$D5MOCj^B?ikS26KtQ#8nv7kA#53XJHA&J~IFJ@e0Lf zEEEV8IkOg@heg4@G6nm3DfpZzh-beDdDdb-s$Q}%`%y2LS&RLsF96fbh^L-3aYOFZ z{#13)!tBo$W`C+Op8Zm^Fkj`dF!Aiy!C8xM!s@C6`rfi|B zIBLB5&L4;*b+RT(50p*Lfvmv?5_hOX=_cnOxfKUFCg&i$TVZf#bfb!zG;49N1Y!<$ zK+M4mV$6l=hvL64&04(I1~P+hiC5tt{TDbvE;Uq| zwHVrbW-Wd$ch=%-d)DF?-^_$PYw@e^8O9fA8qZn~1Bripg4}O@V}Y!~ti{jNEx%!y zjby(CGS!xc*pE~dtNIyzM%rwFh+#5_7#>LtmqElZHbKLS0uf&UMDQv0MS+MBG9(zm zkYEI)(;;8Oj*)VSkz8V=mgg@85b=9h3O!0z=uuvU{#~n!1tR_%76qea3PyV=_^+k_ z9aqZ^4w=~x6i1bLFK51DjAYu!z_iCwW2h4Mg067PdWGgI#!AGERpSm(HkJuA7n?xC zA94eU>MuyOK7=s;q0F%r{;u*Z6I_f;f4Y94>t0s*mI*G7z-Y#^f7K^pA>%GQ;9;Fs zxnV;=EEZJ9P}>kqQ9X~2p@y-57kwD@ejr2YFsJuH`kxw<{H?a}6>ED!)izCh*}Q2^ zZR5lYsd2&DV5Is)qbo{Y zCks_7fuc4;>R{BnBTKctkXI$BV4aE5=}cCb&HDt(K(V#8Nek=lBwr;L$rD@4Md63} zqyM=oF}9YgMqZal*WAT(F(I^;BVDeIs!gMF(MUX3g8ZVIirqZ?J!q|jPIa&gctdNfP$pk^*q zKdP_7W0isaqzO7oj5ay6cA_kHC$iX`NQ{l=RtSXFavj1FquFu?%=U^AmQ}IFcPuTm zmRqri(Au1Qp|v^Ge6V>1A+(lT5$%K(_cbMm-PBt^7XY$KF| zYcf{~t<7yVp|#vfWro(!cK0aS+{(W2nH5^gb@Dx9Z$O3C6a$HWDzuhc#cwQ-H5gjU ztwi0j3WnK8ZaHsg4XNaAB1a&!HZLK9h=xe2K?V`?*aS5|Hw%M^_5cy977rqlG9*Yc zBuGL!{U8G8)AyWxPM6u|bah}Iee;y!5-Bau?F109T38C5mK8efRp`~Ux>zt~^{^ZX(CNh9s%s=CV#iJc}_d74ut4w(;B8B$2> zbh&Oi9i0Q7r{}A??2y5c+!K*ivuG!(0* zDs`rRk^NcHBKtFAsk89Ud8ryUt)=>B``>bo^p>+@sdMnpc?&^9Y8DY#ZI=A1Kb+{D ze&~zbaVp>pMeVwip{To3MeVw>lY}4|1x3M(JJ&A}#?d)f@j-{}&IJ=gcdE~$s)J7TdFuHh$xcz(~YxvQ@9c2ytKRU7k&lqYPriQf~~ z)=?iXnYv0gIajd;Uq#$0&*WS!x8iEYccP)$EwJdg<2E%rng(XJU$sKT=SBy3@ zVzhaQVY@Ag2-{tsFKl-`H6Og+R0`W|K~C!?^s_nrY@w~96t?S)5xzj!?glArhx5Fb zr@dvOU7~A7tFWX26=7yDvJ74pzwPKD`*qsn{bYnW5#`vkbv8p=H^X1V9xg@<9 zZ(I`yG#bTQ>Nll?_VpWL;T~CfnjqP-+^}75J8ZX=FEnR|?Y8zk!}tPCfviH- z?vRMPLybE`*&R%vx!436{+NJWFH)^_Ak2LWtcc64jZFPqKhX6?eJkRSk(Uv3hzuId zH$1ABupsVE>U$2=*PJWsugUQyC61q0o8DikSTQ!XG+}@OVRn{EPxK4 zSyjC~D-@iYMM22O+$>j;r5f%PGN$h3jH!DW#N6xD!fdB-j1%L~e>gD?{kJd1!Ktv) z6ytywiWtX270TElUyP#`csLN_=r6}O1|Toj&;vIdD2e9=O5u$itnfxH#Ck_ptlhG% zykcO$m+paOdm81<8E<(MbH)=t@AHe70fhHiSyT6cqoF$=_fyqD=i`1xf%j9D@!TM= ziU&Ejx$)diDz)IMqz8oX#sfSmJ>Z5nb{2+!S|$D^hBqFh1_i?#4?3!<{K%cr<2sID zg*P6OeT|2Bpnr&%!M$ASHiZw%L_G|mm=kmaJn7^>hb#-3JR&2LM!-gsOt@i>>jYG;MC2MNez*RX`*37P-iqs?=> zvQS_Ia>5(Cg+;-WG6he1#d0^MAfDSjV+#ZV%DI?3u^H#B+NE!y9{t)m6{PUGE7!A@xH)fw{I}Kv0qqX^rGAWFM7pjKO;u_ml)nSpos9sOZmbZ zFH!Ts`+cSG#sLKJ_o1Kt>E{4#6{YaTUWLOOFH7N#mzz&`O-6OfdzVOBn4sRTYJ|k_mK*TFDh78 z-;fph4X;8Us@25;5kteGKphGm#I|pGDHv)@%COK^CA}pX__tJ$<1O~K%>^Ce821VV zIo_6td)oEj{G5(Eb)ZsCg%nB%OS~_2&->Mk3Eq#T-gkP$!67AvB^FCH zEJh6!<66uWEp}>Q-o$gmmD$p#0b|yDCyLg28ERASf~t&^nMfN{*C_ z&c7ODj1(>zVTDUZVqh2>a=0Yl$>pg}Y-i>Z^mORXjC^u=>QhFQd~$j2FwvPAm&chQ zX@^5#R)c&dgiAi-QSLK0TynTDq>NMoS7Ny2b9qqv+%X|4Tyi)MDVkI>HT#9^yL`dG z;S1tFl_-5R$d@uvUxFy+#Ftu&$2fM=LONf`NayQF>T4P4e8mKRT@=z82Z27Kc%<`< zj9b3pc6@_&_>m4y$Cf5?zU30%5?5gs4ik{h_^^cHJDLCAd4*y;3k5K$6E2w$76sqS z6nyWcU;MHpR?3DKm?A%n-RnvGx(xz--52Ra*6sP+=AfL(kSvEO8vj+c6 z+$qoG{2~k7FOJFi1@Bhj5@&RyikcKIkxr*h@#)m`A?>e>Sj>g$hvJWt!X+b{94`4y z7Q5eA?0#dhn-L6`%nVD6{v&t5f4mw$(}>ZLC5B6mDk5C+d%keV@6>$oeufk-If|Tx z>GX3X{T#&L2si(xjBo8}9b9LwR7S?Dv;W(!38A%loNBdI@S z5b+0_pg)TO5t9KTjw>ES{3SzzzZeqy1wnJj*Wr@C#|_gz3}OCQy>DW&+K{CeZN51WG27YK?_3*A-d~G8&ocT|Y4YYLLc=kuiCCF>1 zmCjg?2iF`Ie6DS>qVS3Q9Ku>)e-z~hLW24IaoR_Ge7QBsTPo{9&oEf)ijvI!DO(e+zp}9 zt>n5}Id!)ZnyczA_j9mxYq`qSPL-{ND#Q64EZs(~yNy$Kn|yVH)ilO(fU|@xx6*Cp zD%(0$s$~3x^SJ~dFvb|8HYIoVJ zUPi8R8K=r+gesLV(+`FH9D|~_qq38twHQ;>wo`U0?(qQsg3ll>wDfBOGJSQ=tAOV0 zd;!flaDD>;&ADr7Qu=KKizUz2H zdRfI!{=O}(j))IA-jH67st&{((#t8wFTEW48}Wt|7{(rr+uV3Atx^ju081|)jA*7g zj+e$7cjYHl#dGro)Hg?gu+k!$=@qC!fl0FT3eHHZBAW9d0f7Zz=?-FeA&o=OF%_Eb zK+ND?E^z@^x}!`~M-ZhTdAg%ktOkcH*BME#n2>gqNUs!0uOvDn=@psal`y^*UI3Pc zK%Z2!Gm>6ebS=^=b33s1bqAj_lEx|ELPRs&iA!`MuEKh!1ZU*ru!Le2ng6SJh2mru z3JeuaMDvueC{RaH2gPz#F9oMC1@YX1a3h*&bsV*g%8Z3sje0>xG}Eh5UxaO8R+lXd zj;cmPGrc-h8P8=z3zN-bVdA-5Frs;CSY5S-EG*uWu5+iFt~#yJi00}3AO#r^cL7*h zJ{mjSnKigGai=_!(?xDY7supu!MjyN(;3~UqNYSN(`!ne<(fbbDwLUC(|e)%q4;z0 zSY@C;&G&6{ni|neca_DiD~nxM7P~Wo5zRBh5~FT%2Xyml{Fz3K&MGmYd3NE5W_qnW z5zVwd96Wc16wy4Jy!zAW=Pdd;TU$jnl=vc=*wU=P_igF5g@|T)?dB8FJg3}4@g}eq({GLPYZ%>X!2{%tmsj0hwwLML`3kl9!)5 z2Yp7`Y=MaGGKg3wl3qs!5#8AYtpnXG3?i}s5f>B>BG#25!MY3y)`fC9=$jYJ|Z;pY&t;v$h7`6H3)kaF_ARGZ-e zRl&PfFjPk(8^Vc1_Le!(+lglM)-rGrA&^iak$vPU`#4pC;Xpam-)@x@I|(5Yxv^aL z#!lTE=c~Ky5Y;Afm76$KZX#3}QY3Oyx$aG!x-sn=tsBbObn8xrI=rYIoVJ-cqh|OQ%ZX zC_WZ9J-WUt!M543L{a$Hsq>=m`nm91)H=O-|ADY9KI!EAiOY`xlK zT~v>y*Y-wZRc&m`#@Upw(;fU`;k=y4S%m1CWB+s*)J=#wp;0#twIdn-{JEo%M2~3* z#hU+Z1^Cn#|6Q>{BytD-Lq)41kZS%%kGIv2Z%~ixXD`Cu59WXLd~5yuIy_$?8Xb?d ziilDXW~JLX?kzlGlX`}GJD(74l?vWoK>)ETIswe|o6E;ZmR8l|(S zeAxB^hi4G?uE0|i^gY*w7r0fPL{(BVqq!^dR2k1*l>j&v28+S{<&#f}Ci+AYu&UM30nv_lPQPl`jsZ>!i0msNMpus#E7Qz`C*f_f zDRxZ)J8}p_QaLa-PdU}{Yulpz7Lzf`suw8^f~u>O|8O%bKAweUCq7iLcz^mwvMvh_J((I!Y!XRqR~02YH-P>haqlQHM@fVqu2=pM zXWyPSF-ULSGtswxqb~IunSFa>>8(*5Pqqm@*#_?+dLlU-Z{MFJ7e9Q}t?cJEcn7+T z)L(8J4q_+S6=Emb6|do-=iBM$x3S@v2AS1{gKo9qpj&M?=vEsJx`lij!*PSF#RH=Q zUCt8A^a~)h#&94@bre6Y;kW@$DV1f`JlBP_;h^_ehU3OORmO8SvEjg5yo6YWW80wN z*cMg-MH=aU+U`di4$6qWxehfvnna(5*Hc zbgK;q-D<-@x7u*ftz|fF^YK_Q{`P!^1H#al;FM%IZVwoa?SkfEJ2o8K2cK+DhC>PG zZ4eSN93*(^iVmb!YQsUdY&iPe+?z}x|4-QraFn?D8~y`GUlloP$);AwB)vo3AMRgBsm|R&DjG}oU5j3=EN$*i0(G%;zaDPVU5RBW$@;Pf5_<=g ztBzFT7rF5iH>kbVuD!oq`vALkRj@Xe?jK7Jh^1@MaB4$;(}sceTXwYHGRS_5YQx=3 z@IZ^;dkAsH(mPtsx|iE9$jyZ|+(VfZDFbm6OAo>?+Tfn94yNsF*S?EgyDGR-EWL9q zy$gPI8wQv*>}t1RH~THS+iy{AxR2Ygt4m$(ekOP~E9n73$FcP8ZnMya2Pj36vTH28 z8}9KBZP>%EeNVggz3kdm!98N>J!9#;@K3h^duY^D#qgHB?Y9iJ-?ESW7S)CaS(f&8 zsmndY%^GaA;bCsWK5i}y$uU%v-iHR|2MNqS42a7~iab0UjK?MoWbJE{wVzGa{x(^v z^uDq5ezElaR2sK99a%}*j;4hN*snU!e$_$tt5gdg;pQA*HRn;5v;*Ddl8V`u2>7Hn$D_VH4P1X>btV3+FROy3b=^?T7Ayk^K+`{_n zVa_qMK&{Az@LggMnjPH@jfv(Sue*;tiSE&8N0-ug?uoWKHR`r9o_mt|7U(@{rK-0) zMZcaGJgp+N9mhN71I>LZQiYJZdIR1bk+7pE`ZO}6R5QqSk<;_-3|z7Q0EZU@!YfZhXlC~?7I#!M9|EtD5639zew&G zAeWBdsp^O4j>Wr|ce~7MbucHhDr$S|s-@iSG+wYb5t1 zO9aSj8{Jw{NIlSz#2lSK`P5X(v*1WP_hMovk^sB~|MP#f@=^l(2}Pr85%bhIr097$ zv5PkqHGy1^jvFk3Fs)^wKgp?9Yedj);abgchy%JHJ$x9opR^VCF!i|2y~^{eKF++xJ>{mx zbFZ5)3(C6b=;`RX5ZK%BUQ{?D-*n~(s*-s4D#Xf~GD9kL`|H%5uSMEKG1?3V-$`in zA1xwnBY#IC-)&zN-9FkPrc)!4Hb|^P;%aVU%ScPKt)actkq`9 zt)7qN;$xXXi9Nxfs=bl*9cln|3!1})ICl09tBblb6d{CAkRZVb@_&x zJqzpxl%w7r*E2D=ZsDqR3s={@&2JfpTzD5X`yC}9R0P;u}`x3h-hck$(OfR%=8z)8e{ z@nAvkm3y0UfU}R+7ngDI+KuCQUC@a?SOgG9g&{!ddqh3`&+3?X?tQ3C)N+6d(s)o6Xgs*OJR0-iqr{MM8l3p9BVK?v05L@qL%C!$J)vh}SXHMgm_X7oJdSP= zOHZI%{4W~KE%qCqc6HP?m%P8 zg6a$Oe3ETx_2WtW7{^sBhY@hBrfNOl#mUZy2PhFsPd-$&Q;m3&BdsIpDcV_UOCThc zo?<ZUZ$0kRC$08b!O^yPOMKm6p90l}>Xy`RL3g~4Z%H-%j7kW9UOMqUJ(I*Oed4+=4 zkrDJ7f&PNHO(p2HZRgasYwE$6px0D%Jh})HtvhpN=m27SY|%d^iT{N0HyE4$QLFrq zX#PCU3tQ%Yv>YB`QeGmXef~%7@;_>u|IxDfAGOA#JjA!i|A_2Jo>FiY@;zedB<0FC zqFjxUvHmB-b@GfjSLYwS8+p_jH7ZUkKc*Y*Be{>!1l;f+pD1{B5bFMgC21NYY4%$^ zX1~=-OHwR74G?r1KpDxRDz5~`2L(P=W@U=cfK0I+yD7?m{Oxn>rjQXqqQ|kDLWTsY z&W2F^=67G9<>an-UcqyD4N{jAJ*2 ztc!8%ru>7g3xzb4VG*p$6buZ?x_Ac=*ScuOZaP^PzhgID4K0p!K~F>cm#6AT$UbGm zf-dJ&SbjT|ve19u+tECPr3#@cqmTzKKyh_|Bxk_oEGGf7IIwYnO8uTVXAwe6KD zKxKPn3QR#*EHH(?EHGufG6kma$O2RN%K}rzD^p;~cx4JV8Lv#?CgYX;lW|jH1A~j3 zJg&Hlo3vMUlr%68~+8;OsISMH>NUAvDst<6 zKo0HwQ(BcN&i1xt7j3 zb!R*D%|THLVnO(GUn~0N_~;XI6MbKUzB!<84*r3@x&BJ#T9wR2C36*hb8(~T!$z#E zJ@Zg>#EK(Ua_E~^ca}rnJQSU$>H9{}H_u0(kelfH2K3DXee>`S^fmY^X|O73KqU=| zz6RWA`i?O4B~f%_r;#rIl69Xs^d(U=splBOP~EBc?=-xJSQ<@Cj3g#i z(~|Bp=p&c~tJE#PAVh3bD=}i}Gw^jD{_(`?87M=WD&2r-MpfucDr9fyVv3!qzHn2U zE}UrUWjWy$)91T|rnRJM)cNW`!f?Jib(;N;cSE?q<=G{Q&V_QV3l*JI* zx=U4w3*{0QIwdaDCGg!>NqZAH#S+t1MHf*;!7o`aaw@vWDN*-0m6$h0EHQ5iNN^D-=pL_!$OcqFp$I_QOHPl_HY6u)^&L18x zQZ-aX*G7Kz3sXX0MlZ6;*HCThWbz<|S5!x0-qQXzUE#ioW%^2)ZaOlY>%P)0!7_c7 zT;eLH#8sw*woB?f?;x>sp0}|}iK8I@v~ZcMTTR(|^CL!2d;}iQ^UN zd7k5qa9|QAphft$=d@)pCuIIduem|Liq`03f4!|SYlBga=)i5F&b`HGYf{&7Z`XHk z;b@o)a0kpS;C)RMEh4ITd4 z3u>>ms8xwLCtYy_?tp0;Ksz_>IxDkk+OKlcuB&*{<~dEH)7E3@>(I38EoxQb^}1;Q z`KD+MhqD|ZtR5Nz50(EGiLB% z!>3LjGHvR}A?{y;XH6I}Y5cg6y-;@e^vyQuHD+3*?&g|^`r-#O_(UG2_b}&z7UA1m zkO38TZt44yD0J2HtID)(!I@0?!iA!dwir~X4l2_DySUJc)jbfEb8n|(D=bc@Y*^*N ze1duE9c?pd^3Z;xMva?3Zqmd`@$K~*aI6ZF5|Z3|AO2IkZ2{(1 zwM5xy6$Tb_i}%JiuW5ZA#oMogbNeB@GzWoh(C>~>(Cky2Y??ew6;2DrLZ zXgxwp+>?aXPH#kL$sp`DWBl}SlgGp6R%UGa$JkhWW9~>Sw(xcC?ex`6dR`kVvv^4x z-1<(97+f;NSoK$wDK3x|U+t^cRGX0u?f}_dw$jcmEib~*=>280O(q!mO?mQ4b$MTQ zegWlEc14%zK)r#Sj@dT%c6wdHWK!MavD?%?{m0E5H*G1*;1022MqltvGTL@}&}e&E z+B@nu;{PL+7+RJ}kg_NM=pYvGgdnbfTMA_LC`*C7G5z`)qZkU$Fz^AqF&Kyz=S8c0 zzg9oGidDD}6bn1qJHrX}F<$H_mbtgn>#`Md#^Yr*B}=6?+YY zcSr2rQGv^(UXJ7B(Z%XrCyjN7`6b;6_34rnt|Wybt)xYdL2rVdH0EcxN~kpqBVqnB z^n?~n+8U2m@u1g234-c;(n!`qm``(y6(qR#{j%^NzGRe($`>vKEee1gPlh;E5`i#OG{EjG*OLjB>PKfmLvy=LHepMMY7HTj_rijrCz07_zm7b~?KW!>B9bqmb{B~OTRDHZJ< zT^2Tc--*Mg&f0zSSl`&WWCJx1I0GlF9Ja6neFOk8OhO!p4>eWzX`w7E&gd|=Y;t|S z%ttDO{HA>2Lg1rv3bZQLqCAm+`aPj8J3Z)z2@I@c=-^%mr#lXr0mJa1;;}8_l?fB< zZr$7ILrglcx@P9^@iRs{;#gVWP*lr0IV+EPT zcZExK^!deOHbJ={wj|h%MX$)CtHFjj5E(7n6(9PE|7Pgl!@9TADJrY-2%=pLzxiJ+ z*aN{FBh0p7+v&2obp^SS!~H*CdW%>mnOi%3q{$=6Njv%)nL9S%{ocL{G<|N4G-cBEF(j`IOXZXL{ z;O+$GNFcyYmj&65#|Z)Q%G%)imW@cVS^Hv3G@2cVzZoef8E;R!_eJ{ZY$Q26fl+Az zr+zR(Z40=a4hiNwf`G>cPnn7}))fmuKPHB@KwvQeE(juW`hFGf?O;_Ld8`1JFFU`0 z`pXkr*x60@#1`!IHB26=Qj9J5y*OTGxWsYVUu6k5TEimllVv9+p=G+J(&$6+T%!*P zlo|A4rypU`MVTHq@vsWYbn}BByBJADxYl;v>~vY0ZPzUZ6jw<;{_}9M;-?^~cKVpc zB(=gEZhn%wYaU6p(~FQ)z~ZHnsw}0EHZ#6y=~Vm_B-KuDR8j$iE6L&JC#lL0)-w*a zO|{cyNiBecD{N-}-$G#<{t|4EU@ zGzRju!WfVlYYK#2zwc;iE5T>ZDzBwr$C5ttqpZYO4XIlaqz0^2(&*g!RzM(~=O$pv z+i)gRzLi@(Pa%|P>z3(2J*Zv=K$!0yAHtYFFdCa|?ju?ur5Jh|oH)6ET?_ceY?g{Ql%44S&Rvyp7 zz5h+9rGCvuG$el<5zV(kExxhCt34)bQ2hT#5k~4G1Eom%&Aput>COwQs{4(wCfkINUH;YRNg{9 zzU+8N^;4%=XsH7+TBmm)55e5q=@U#k755qM8Z5w>H1%I?z4r!tB6y&Le4ddJrf4%Os7MVI&R90iAn0 zeRGp8NLtO_lV(iB>Ww~?8bit)mGey8k%7l3kY`lRQwU|?E0{7J_QAbm(d_hpy+tEt z7&)^onw{>kXy&^KN3xcz*}t9kSHUd2g42)+8u|$$U|G5GMq}Se_cQ5=Nr5lKT|{h5*OC>mf6OKchk$R! zv7q76+}r7En)H9G01`8d(9!1&=H5=Hb+{^hsQ~JolpsnhIQB1DIyIhRwJwgB4cO9fC3;nsKj#R=fhJOXH^dj)Xm=%U66TdiFldX#&Zo8G}z zZacjIZ=IbGDg+JxF(dbIi?`%(n33B~?_$#BL1`&(4S#%t(g-)bgUwqzy%FB}C$N`_ zu6N9*@05(V+U&K{m$H{25jmwLk7x+ci0rk~z3io33xe~@c5rNo&lWVZFYbv~=5sqj zT;|?Rr+EOCE?ZZ3?bcGC(}N1=s~JiC?R2kvdJvcJMTlcym$;bz12(3jwU}lf90FbD z-cF}jlS)^jt2ZrixVU6vBh4oGMhr1tl|9#Dr#lhLN-}EWKFwzr=xr?~*}Fj7>8qPO zvLUP(%+!4Q$3Xb)z&B$Ei{De%vzDbYW3*=MKj1TYVyPLc39XxZJDs*}$TMzN8oB?| zBzF5e5^JXiHxvzU6;m1p6D_$B`=2AU#62UZw$R$?jR>v0o^1&Y;{P;>?Q2OaeS2Z- zt({Kemr8dAdB2U7S-hlW_usP%H1&r0R+BWq+}r8RW*6vxnhNwY;*CjW8)n$)L8DC~ z@4B!BHpZ-&Ij>*33p5QC=uuwA?)z2KYqW;Z3@6mbX4x$%mbtgno8Kfq^?%<|-c7e9j zH!yiT!;8Blp_%Ri&7H7x7igtzzHdZWc<3`JtxzO9g+D2Qz}a7ikdT-!LMB`Hc6#&J z1^S<(khCSLifrjs^XA@8?`-mT6td{S&I=AJ<;X1E1sc63e*=)`Lq@Xi)_Q(YQR^Fk zJcUrk{`!%`#(e!qv43-Kr`Ihs50pIN1B?IJF3?&}%Um`K9|$e+{j#Ye<~8MG7Mepb zu9uBL?ew4<_P?5w(rj#Ib5g`BgX`#XDsykAH-}xInU%)*1(p8T4;e{CV}Qamr-9!V?kzhEzF$|b^&E&& z@q&ePH<)=7Vx5sg`bNs!+v&qhI#ucaMyg`FKsQ^d90>MEQfa3XVrg6|{ShkfF3=lW zC}qj*03eN+Z>LjKR;3G~U8!B5o2_8)XoOZnaUN3-*~CH z1sjdICDs`eYnxj;eWb}F$z+8#fo--jIVg`z+UbR5vQj&cYBv7!cDGaPNuUYJLQp6JH4=+2K}c>?E-&Q;<|UeN1DLTB$vt zo2{hMkR_R2JG}@=t<)aS|5!;?{1hbBPH$9FE42r7vz1ge5(zliPM0OM01mFOnf?C? zgsC44_|11e#pIDtL#4KWZnhFmF>=Wk+v$ZRym@SD%S^7{v@BpuZlLS*fh*4B9nuLb z*U`dm!p@vi-tSgV>@|ZOpzX;IQVlZ^Vy90x>7r^>Xb0$Ks~YxZwe|r3c6wpe2uAao zm9q42L|I7C3&i@gN+{itHA2#z=Dq~xBpbA`YX`SyQ?cRN zyf$<13@Y)-u+UcGRQ+>9jChr7so0lD2>zYJ>}r#1=q1{a-JD#0(>JwgB4cO9imJ z4Ks)35kNcLD}YN!7d1{W-|Sz<{Wtr&56{C}JG}sJm+l|u^3b!9<_I^voNbCdG4Tq) z?tcs_qOWKS66$Q-+v#0QdT_uGY^M|zss=k~-a{pm;tLR{wFPN$hHl^(PJWL@2*TT9j7 zGjh>dK}kOCbgz7R5SQ>dh%ciDmW zeKByw9nTrwYrl^M9rgsxk=AZCWZ!9{r%oG!b7zP2pEPpDgwYeHPaCr1xaoubuf4Nb zZ6b=|_&*r1NEa?$&ccO44XMT$M9^xi7PLxJgNuMpl1VytG8vMowBQ5y5I%wnUqEo_ z(ns(Od;{@!?sb|Ey6UcwxyL-w;S3N8Jv8{W}UP&3G_q9fXstGoAE0Gj81d z&^fNxI(tzPh0|!ZQ_1>WY_G2KR-mM-K(FzuzeNlFd+q8Oa?^Xx{q{HgF3(W!%Qcv` zT6)LxsrI0D^h&$%J3P0c?fPE+^VdERT!#L9yyjk|H9d5@l9{x5nZJHqGFeMGlNKx0 z5Noj#MOaQX&=}<}PN%A3)zpQS8rUvrOH)>)5z<5_oQyWy1X&C^MX#!g?r}G`J#HOb z;b&QUQU4BzhVH74otpFa8rx&_b)+6qFQb=zebOero`4v!BI3!3OllI{fYs80LM&#w zPvnKv;`h2SyOvkP?lwMC=hbHxA`j%_8G;C%4_`%G=z*@x<=Mo>6tvYjBZ{IrXT@T< z8g?<)UFRV()2ETn;+KAE|1{SO-IQ+3V~j5R`qz+&hcN{;T7`4rH8Qdn@;-`xVc-cG&Yu3cCBd@r?fy&iL#rz6sT6c-lkYgazJt#RUIILijgN z-GFb%hP^((_5we<=F_^p4|^VJl>Alj{_y0@^Hy%W z@aY@ze!z>7fd8fLsGt2e?0M&{oM=s40HE*&9;M>f<8J*OiAt}WxbR6$Ad*)PJX2QQ zD{;5}j`X~v??Zk0M_zod=>6<5Rd3OGRd0?!J@4l8>L7X)|*u?C9VH0!v#ZAoY4-_^rvp-PW#LWIcX%jR11LaMU z8EiH7D|_F>9kv{L{(>#R_!sduSR20iii6+e$3&|Kwps--ef(X?f z9SKnF!7Xz}8v7Nz+mHw5t7Y*4yfJlrGaghif#@j$&gl5H0wrs;K-5+*l_NBr(Xo~v zvpN7vtqk}~Kc)x(7D*WJQGQIZ0W8up;K+|D;y|wZFH+jTt0<*Z2Ky`v^|b#pl>uw4 z4~nO$hhA{`rJlE>RvN4Mr7a7Zdx9_}1bajCD$wq#`d;IGBC#tb!>*VLyOKnqUG~n! zy=-JPcDgnisDnrmO10FX?TJ)^<}wuCW;iS-XzrCsQc6s8cqr-u9X9qWdXGoh^`z`a z2bV(>K5F+!RiAoEs?}Gn6q?IHa%{D#Uw=ue*(g-QLZP`gQx+B!!zE!GLPeE~P*Y)2 zmZzgk`C~g7dngmf4p-#`Qd~14!F^Rxft1wTm!Jizh`=p#sZvIPeLai1!G{Y8y;!JW0T|2LgE#Z;|aZ$lj8}!Rg>chz5OP~6MCyB#}j&M zCdU(c`%jK1^bVLDPv{-kBi=!i<4L&(E4*&@1j8)A1iXiO6R^+ACSc2#wbmlvmGIAl zSADGN6`sk<-axYLo9+DR$Tz_DaQjo>zM^sDs+C~6h&>8J8Pf$;Ap%RIWBt*wXf0^T zD0pF4HmkxyeJuywmr=FEic?gUew>bhL{~bzMYRn2F#zM%jxFj-+Kb52JN3KV!c6 z;;#i8y%;6L{_=MT&)xBU-y_~1dc^x{J4k_PCUAp;$|HkX_s_K zds3IQCwEChf8VjZW?PyvhgvCc@R_Ey^O>f#^O>f#^O>f#^O>e4e8O6^JTJ)#lyJz@ zl`hP7Nf(B@qzltXhdl?X)JS->-rM=}HGf8sdHPnmlRqon$)A;O@uvz668_A)@Mru= zR1VvGO;mBfst#Dq0joP;eGXW^12*7*&2_-$Ibfj!Hs1kjIA9ALu!RoTkOQ{J0bA^V z4LV>;9I#zd7;PAVYQ{&FA}XQ|=X})><>+4c7h8j#m*{o3l+O94FHlZ-X`14BxwK(B zjpeUK`57NSl=JcEOzP}XCti~6B#|%EFT&BY!xET9jd=*?f zfgXJ<@J8zs_c9_tSWvq%xc;Jg`MT2r&+qFWY!u5w8ybbM5Ej=gtAxcMEZ)HGN9wkj zNMUhkeWMr_!@|(|{qLw&ZfwaQ=W^Z}rLZ*C2uqD}SdRL@cXS?j@kW~^dF!iOi;06a z1}ee;qOLiON|uAYLa>1UZ(zaFk8UPfhJ_zj!%7PwMD50>f_B8pd%E_j|JS0CxIjrI z3#U$r(|j1Uqc9TKBOI{fQW*Pq$$KJTIxgUQ&^(Pu5{58VP_UDejO?!ogL)srSRs9H zevy>&bQwF`AR6^B1{}POQb;SUl4wut^D%&hu7y1Me3rsK|Kg3Mt&VJ z-mPshSCE7nyKHnwn z3nne$&CnFCl&7#IPTsoWS{fiOjHxYN6a{FzbES(Cx}=LDx}=LTkZ#3?i4KODPjsN; zL)9$Wl#t=wiuFVZ`LeBaQAC$?QAU?^QHV|-=3UyPiDlhNA+OzWQ>Bn^NbHHwJz&1NzH#%T%cfj81fW6BBd$$Aj zjub{cF}Ae(;!;Ebo7nRCc(yg8VoULCA5H0`zFbmnNmG-%*PbuOL+YPdC10O z(Z>i=b!zMvc#HFVMIQ%3WQ}$#dQ8g8<7P)0H>I#loQ+1xIQvlurVFiO5OqdB2WC?O z7w~~NE!HR!Z@S>D8*!R{WEl!0f!*bR{V9bpE|k1~0Zhl6d=HxUCP)dbza=1%r{udY zg`KNu1%={3p}8eVU@S^p#HPoZ*i^kYFPo22clV+>yi>P~H_=BhmLLjZ3EmiQ&I3v| zo^#`cJ>t#p5wFoB-e8Y-Lp|axYQr1O$i>8wyY+~-v`4(fJ>o6t5pRzKkG_Z6RP%<> zvLpdIH@e?L)ltWhM)$iXsNL~~d&JwNN4#AVyfls^Ptl%90(j4*?PaHt-z4TTv0Eux zV#Xzov|YQT?bao2_bzEmO^U==rjATtUi#8=> zc(>w2Q9{0KD_s=PC0&%!C0!Jv(}#JNHkpefb4nqv-EmW;nEoU>ENv+X>~II{2nXy) z2ka;Z>}Ut<7zgYj4%o2{*h3w#hdE#mcfcOufF0+6J<^e%?Mea0qanTd< zX@shnCwgK&P03X9U7Sy|@?B!5nfNYx5}=6hlJ`s1ds4T@GFLVR&g%JmAhgH8QbQ)? zb#ozMIUPPOg)+PsE1T;*)aQtgnCl zMSYd)9*2ot&iPi-S?6k4#3b_#HO@Md?q=d-rhM(kHb=}bmNsE8zA%zfHT7Hysaw`1aB!_iEHbj>f373L*(yaDGT}p z>GWzP2>+@hi5CfnJGxJSZ&>%~Z`6%>2^;Hr5ObLM0g4EQS+1m#>k zywL%CU40~SmYWYp0*`gty&M?4>3L{y_#8zj$Y&B-&^NuFW7$@2p18S4fU zIF_;{&saH@JmZT^^1Rr3#wa|2W2QQJ#z-uA#wa~`-rahJXHDS4@+{wr5X6s;`Tj^C z^$DV7l+1{?#+x_`rqFsUB!X7K_fO^Cck{F9n{w|z%DwL&Wbt2?d;e|j{jfq7|5ds7 zJ9F=+7PI&t$-OTuS?TnpG@fW0^C3xIt0yH){OeBAS7+umV4lhM!?1)Ijkhz*m-!5x zB=Z>xs^&Qiob~2&b20L@6h;DD;(+a%!q~q_-eJJdpy3PUJ!tNkAaOo|IB0bD_`ouG zqPfs!A>3k-u(u4BDu3;;yN^g<^nqMoGX@_LT#hf5>G~QLRh9xHI1Fojjp8A@ zzGfwTkYW#WAH<-a8%ua+Ih-SLB$rfKbbrfKbbrfKbbrfKbbrfCVE=ry!F zpOh6S;M9vNU6}2XE(~``7p9TUajq&g5?-zMcK&?LpAlr9zLoCe&q{alXQf;GsX~K< zKl3j98UGR;mzb!`ak2$Qk95F}cfd|?z)p0)PIACbcECW71`ioOuh!Twi}Lg6Sm@~|U1Ni=E$Jhlg;JV-qRT;B zRcmYxkiHLv49qh#0W|%SvcD( zahflpb`(YeyVe1_E`_nbm%J|nOvea(51Owbk^~%#8x-snNk+yEgh9Q3X55gzH!Ecw zN7!^3N8BwMRcmZ0g;r8&m1O!$EY)Ve&+O>;d1Jr-zNGB#c<=8K?*mEwy3_k$kMur7 zyi+KP?({y~BfXFGi1*PpJdABE`LQWdemD1scWaM$AL|kC6FuU6D#4>aqSm!P`b?4l zUt?suR@IS}vuxy+1hqTfCws*Ec#n8DC3vYXWeuWFCkfy^m-bmZjr=;|yo#|WM_RQ@ zTCGc3y-Ql3N#i$#Ogt(YDXGxi(nyByG!7dubP~SPw7Ff<=545#p0sFNB_8SN6w+`6YInucgp>mf4cDDoerxeCIah=V$ z)jwjLO@K13Xh(e)kTRHpn5aX(V#j<;LB7OR%XrVlWzpYlzSKIK3}4YdfDl=u9*Z86 z^78l>VcFO(`ezEu%tv8bG+k$N0VihnVqGM7fqeEv|Ep0X=5)bXH{vu`v2F?@fvtAH z)}%1ToRaq-z;w*X_n^5pK}u+iCm@lhs3&Bi>nUc!y@>Vq(Vgdc-@wN4&Fp z#5=b~yvHSY^fAU1HLbSj+Gt8qwj3rI8HZCWZ^5CmT8m z-)Y*VUDBFe(k?S;32%m`4o~tDCvRPGEe#OY6%&dAwB5PVMG0NfMG;-nMHxu9V#Y)V z!+_^vMpm&+2^rp#m`y7oU$&Jlis+Iq%IK0V3eoAqxI1IUoKnbZcidDdrr(IJN?S?- zyV?PJwgdJY2kf~H*z+8)=R086IAAYuz+UKpy~qK3u>*Fk19qJQcD)1kQU~m14%o{b zu$MSsuO=*w*F>GKaNxa?Ff-4mVxYsVey9`?A+n-Bk;2rP8mS9DMPg0O!_qX)XG&e0MYdl5Wb2~Vr2GRVmzy}M25VAObwFFKNjX}{h{Gn(=8bW+Nat$Qo@-Lr(3?*%(!rV( zN{4GwEb+*il%u2yN3#k~RC*|Q=YjuYtTL43o1Bp5nv^{4=z_Uk$$YNXy5hQ&3kg;w zmzy#Tei2IG5dk&jh*ti4UCM)gUCMOl59rGzuhkgq6#G zgD+Dn4#dN6`LNO7_-ov2rTES{Xv1FXpJ?+FF_-q>c!yeqHHV`(sjG>z8fqi{MrQ7- z#Atqn{z`loZjD0ger9&p+`2^}G{z)bn2`3H7Y9 zBz)7jto0Oj`=Y*;!Gozkc$XzAApUf3nb!NG(ow>Pyqn`XOR+X#a%iqYdrJgus zPwF`bchoZ^sUNkIS_rtJfqJ&c7^xb1Rz1&1>iIWTkM+Ed52)w8xTBt!X=Xi#Skk>L zX(P!YhLL(+uIkCmsAoU9tHhXzW<3`(%baqXK6e8g_2j%uRj!6FeWR5z z)^jOIEompU3~)sQ^?WKBBUM9B*OPtZO6dbSb;9flvK?2gB;8ECB)ts3Cl{r!-FiAD zj$QQk_n;F)(Y>g~w&LM>&mY=w>>O}07ys}av{pfm^XAO+Mt>c&R^xfZfpdt3a~N?L zADjjXj~3ag#h&a~u?Q*GvDVA3j4qDp@v}L0mzzp?DEnw z7AIx!$z29!hug{^EG?r*f#u3@m$xJ-k5BIMFeBMk9${&D{f_d|I$_nSMt$p3JpQ-pp4++{F5ArF<`8VB0G%k8AkxRup0Q`%O^J4-#Iw*mDFQZEWrzHE7-WnG@ z0;fvvS;{W=7kX?@eA4qV|7UC-_Lm5d`el1MSILh_ts}IQu3~#qQ$W%;{{VOxeCycs z(bz^JvCMitAeK1;cf>N^DM~DJ0*I*C^lFgdnV}NPJeykgH!?F~nePD?vCMaILo9O= zvp8bYQvpXT!?Ojeay7Aszma82Eb{|WLTvg&k}9`OCn-m4x*?%~Smrroj8qLh)X&7G z7bo?646DbO?L0o9p6B9@dj1L}A!a*^B}r`hT#|$ROFf^b>dDNg=WobeCH^&;E40pG z7DsIQSin)whu~I~tKrMv$g-uL|4T}!=kG|W+`53I9I@#W5*n!I^T`;g8hTbe5ua;) zB8#f$6ZwF8J|1_}^Dig~^}L8BNo;xz$)PDrJzt>e$;_zdz2vSE|CP)YT9+`3BQ|XU zj(T#BeO0c8FMlJ;mU`YtN~q`GNvhm>3Q0L))5{YYsOJmG7^xb1x}FE)j{OdpCqh5e zwpodBDI%6qx>*S>mnUT+F6Cw=6_;*34Xji&eE3dAqKAR?ZBe!(&b%5$nOO8Wcy`62 z*I76(Ar50vjM+R4!XV3Z;}K)gw^4$RfCBV(ul&X%#-XzDNNofwPBsoDER8)*VMR~}cNx$!`T&-}CwCcG-6s969qSU7mI3G1R))L0@uWOH zxyxJUD37qTJUE%Q^3bL`P-w2TWKWw`5vFS%NVd~%m}xT8G6 z((<0{C@-xOW_@)Td~%m@q@xVN(lT1Q4A6a%lGRa?hy5m>^!X1DB^u+`vOzi$0W4*q-j6g(0)i~+DvN2Zrax>zK<2!j6?YpAcEbO#^8`13fS+!lWl$r*n# zf$=A^x7FW|g?LP&(Q%L@Ee0SJe`?)75{V-o<4-;*{Um4-e;yAwI6Q$j`6UDh*2JG1 zl^rmx^(>Tt_*2khLMpB20fhMTnl>$_vOE!pD*ohCTOBewJV|hKIwY`Xxu@mAqodp$ zEdr-P>pEqJrwA>!A3o`Q^~a;q(taKVm=TDM?WlQIHV8GiI_AeNdhC5g6@*e_y?ugVF830+PQy+#-GZWaWby}d=g05yL}KHtix zQOMwXbw0+Wdm;ZbI@HCFUI)y+Qn}K4KeJH2=m0zn2q0g(PS_{$AMSk;{nhI#+$T{O zY?P|lmd>+IOKVo*NYqj#EQzprzNsbf&BPB&I2RT3!`wKr|F^;d?EHhmHRUo7JYWDo z9{vMBh6*3v@%()>!ym>0-b1C*=QWrqXYbPsGejv)k3+AWjp&|I3gp ze-RqsXtWBKzQO*{qsvvR-Qm|Q8pY9N6`WnbQwG=|5!xplMz2JRF*|BNbIo_FL+ksi ze7dR9`a+gZ^qb^mv*z+zZ8zr2mA(c-p>4`)>oJWza70A zETH$sEC#*zX}F>7Jrhoc5bUL4a!jy#ZoL+Oku=}wD&HAtK0-`Bg5CKZt@5o;^ATe5 z5p3r}KlnPu=LVJUOx}u{FwaGH@tYQYEGaP)3>BtoDz7Kk($Bv^(K%akHukG>uFQk; z!<;N(*S^Kk`azv(*I!gCU3Um{SRd>!4Q=SFRM#vkSMe(=Osw)eMn_^FjOIA*+nLYXxzD4xGdo{7h^n|a7Hc;El~6`Xo;1Ax(f zwC~lpw9W@FH=@li8N3c5(VW%=k9apozLYR#=4%p%{W9()VM6gC>fpwLsRc z8^}r@TatCIFIROVP@&f%#7rd&TbrA8K3yJ)mwaXE1JRaX-!Xwf^G0CSO3~YKtCym8 z;MP|bG8G}BI1qbyC(>a5kJGd&GKPDV*aKls@p{Xk1No~B)<+kYP*LKRQxjNUD-W%& zmlYh%`Nt*7>0PR<3xNwcJzk1baw16E0Kq}?-9R;ME!gw~mE(!LrLk2F{iXi%V?l|D z0dDw$8{eY$fKv2cT*Ur^O&3{27}x9p5@_Y2H;5ce3|gOs!nTxd!?pE3=6*je%+5IZ z19*nKE(RjwqPhoBduW`1Dfwmv7^ ze?G%~qrhL}sj?2x!$(vdE}w(~)`B9*@K86c_hw0-g-;-6oOL;49 zYT`z^@29;pN#`eAwPimhs;2b`(t;dsQnW6U+>A$tK?BZ-HcVj9ycrm<;ahMkMYrPG z`Xnyso2uR?M?DXXAPk~U3DP(mnCIPo1-_-p53?+}ZWY?+^1<8btpu`J07JKzvVcXm zpO6JCzWu~3V3*rZ$^Zt1^q|B-!^`J*-gPG@Dd$B7j_%C3Ywq8wO$@4=jG`0c!|Ei%NKDOpO*#p zRRpZk{t5xB_x@@MUUvt;)#yvejrBn4&SQ$Ck8hNG-P2;C7rEACq#k(QxBbW1|+<##aJ6tmQSi zCxslqYqUS? zA3u`1>(6U+BnNE_gafJG#_LR0fX3W#Zkn?09%^*1(dfV|*XS;7ZM2{o>!Prz9u}Kc zi^FY<^L?6;>a5W5(+xLn9nTBrjX#R&nwQt{p*d(H48v5D<2bF;(}2eOaDJMyE?~-h zqvLRv>v-3mb-a9+P^%xYx$@Om!DY0L?!Hr(n{+O10YI*|nX%4AM+BDhzS6L#%;3Om zAKYk!jd3j4^uk8o47f1JhBg+23sPl|@6BWdXe+=8|l%N{iHZpKlZoEpX^ zBl&j2NJa|VI5vM6RG~)-&ota9J2)uk7Z!($$M0sJy*O_NKg>ZJyM((~+Qtyc13<;% zN#tGJkrDThQK?eb@Iz85Jj+O-T_-!Nu^yGOca>pJDe2&xl9q%^R1m!+ucTj63l_Ao zYq+bWBn-AZ0A`btl3`KK58K0{tBp8jk+zOWwe@Vno?BbHg}aT{fF16Z*A_>$Hng#O zxVxpT?=X4yF523y_d)EJih6QFO+_rukM(!SkM)=2#`?>5?LMl_tM9d`e4bhS@oZZSYvBeY8rge=G$L!SB3k-X1Z7mCzDQzutYRiH) z_6qmPYiqBaLt8IMwe>>ci%*Vf)Uhqm65YU{;D z9J5GU4^P>{S7$Z<;MUeY;XbO{+9$6q>9#CrBMKu+TheVsvs+ub+qyQD#&t#-vq)J- zr|eyC*mEmu-*8{mwD!#_OS&x!+87B(EM-ZzH8Q)EWxA~=rs8;s5y$M*)=Le0Zf%W* zqe@$&PHkDx##lI(*Vfohr>&P6am-F_VaY-_N4O$fp|rKasVxiISQ)O&Yis4sp{=*3 zZR-_A9J5nfuQcqr+t#XZ)wqw!gsbw}`Xh%^7PPTnxSyr1uQ7SQS*5MT+4(1Y@lB=_ z_2+~irfPeYk<08<+p7(GZndorS1YxxcB;*SHr9k|@@iYNld0{WsoJo1XV!fMvf_@{ z8ur|3+dtf2scnC!+AL_}fbf94+78&s)b`0#ZLc$OX>V=YYfk>~lpCy%w0p4pocw{| zfvN{PFs~(v4lQWopzt6|OA;L(G&5SteW9581fp6j)N#7^>Qo$WFyd%e&JLTLx2Ais zmekf(esccc@Zj%w(;1+1G53V5@r;p}VyZ!zq-dzC}NLzDsz zaVo%qHVzFB%`4#0*`R>8ni?7f1krzTmEmFGVU450qb~mdmSL}>Pr&mB`P}65VH>d& zc1iSK#5_Da+>fx_V{{y2{~fS6blI z^#dT(98$@3dfRZx>}Des)uawEUwnPDWVQ-@wk?_E2Sf{)Su*>5q$Nvc*{R5CWo|GS z$FgM)!u%G1%kU_FTjq?v9S`>ETEzUIApMc`9e)S(M_AQ%^Y#KVtxmYG^A>q6obvddF(* z9Y#*Zhwjh@_D;i%vw_KC=BHDr`Nhm*7uulgO6IXg*vpvHHimVyV=J+U)@opPAF*Z5 z*e>>B=M{a)0_U)}W7q4ytGjHl)^}WFGmx`r$i@Q6%HLE7SZF$SELNH3g|OOQA3U~9 zzhxJjLN;a@>5i7oySvKP^;GrXs_7O4!XpTV$Rmc4Mu; zglrnxDeq|6yr;WtxTa9-CcmZ-c4L8LL18KcEFy&6ENT_)FS#DcX{u#nB- z9Vr`Y{q1|Z%La?*lx%isw;K!8z*4WYdaxVyCd;}~kzs`q>}Iz%k?mqH{(@|l%o5qW zue)rp3Tk|eJ?QQ^*^Ce7pbad}v3gLfzZw4vo%nEG6yrZ8cxfuiaYU5{(7>vZG-aLi zt$S!urF~X1^{_TO?A~@ehPtd@e7}+4tms=2zITg=u+m1^`kpy`!Vg%W29|@QYJjb) zH(C0T+B#Mtz}A=B3f6tAwLk>6zRYFoi4NQ5QgTY&h70pCX0e5pEX-GtK9^36GuFon ziqA7>#~hyCA19V=K^yqQZy7(n;*Z}>qmJ^j8NZp}eNx$uBN#G(2EIL~DeHFlU=^(| z8|(XOVBv(H_1Hi2*x5s4QkcGN=STHVb}@J66q@ zawI>d97DErm?>k*72#MZT#*@0VlQq{&aA;u1>?ydfu!#@{|B5jv5K?S`YyG&4ud*u zCWYOgXCH?3y=3i`qa7cRdM<~Es zy8(uyXDTqxQ<)csg)}#IPf|SIS}xlUB6!6bkJ1>wng&sf?jV~#;RQSKY8=XpU5pXS z&-j8P6jb`p`BpJ+SWQyH5Tr7;IIKu?EXaLf8L{p!k%lw$!?M??`C%=rE?6+Qp!HK! zFghHSh<=Uq=o@(T)?&uXaE|Di(V)`wB0PwukDa<3Yied%E9H^_En*l#JA+C(-B zBJ&94s*h0<3y>KDZ}d>$q{@^zgMkc4^ji%FN`CXVpox(cCkfR zA9$b~-AOD4)T0Qf@4`#;C!*-*yRGMYhzVu&kG`ioVrBfZL7p_@+U5ffJb>S0h>k$b zePL@voh5W6Dvhoi`<~&7usM3{fKr4R2sLSgjsEh?`u5>a;p_UjF?q1EnfC};N2Nle zpYuo7d4rPbN8f~MM!c^FgRAivAn2Ul|;W*5Fm}Zvg-Np!I9wwSLR1-})VI z=VQOOI{Sl07QFP$91;p8USc}yN~{upsaMm$34Vnzu22Vp$l1YZq2SR&7=`#-=0 z14mgU9;03kqJJV`Wut_nMCd+Rm_DdQ_v13MKxl2@bmR zG2R9Wn?5f0;-*jV9zDQ}BB!#46#4UG;^0{50I&R4!oMn$M*F zz1d%EQHzcN3my`sE;?m_k|Z2Z+94{U@r6=WhXFI>Vo=D`Zk^eQ|qhL@a&cM_SQZZO{TP9OEBh_t{m~uZt=I+ zJLO`Jd*bGN35N=hug(ngd!rR$0CE@_VZHW59?C`OsR~2Ue@gy|BV{_yRM7T#6LLWN z=XoGqS#9V9Y04bdC@ls_N#&&t`c53Ul2vMFt$fumGm!QXy z=X=4mY=h|*`lw7LCz=K`pxrYr+vQ5|e}(WLjTCrxPBeyFdcM})c#9%l*q+hU9s-?9 z-PP~*LGCnHVeB?q~EXWzXQbyn^!;e+~QJ=5XRuc2?1|FpxeZCf1 zfOm-Q(FGM)5OCytEdn)vNj{rDoUdi_m2^IHz837kSr ztwi9mbHH)FR!z93T-Xd?ZshrIV36lK_3e261~UBJs`&f6=5L${tUJ;t4U;L!FFgag~kf4cy7Wxc=)pHB`wB$@Boex@OzE7w52r>BxcISiCneVe{ zK0-`Bg6(`b+Xe?HkWWZ~`A}i@-k-;feuL+0NlMHFLxriD3VIoJzEIS!=s+6CY0lUB zB4p#ogkAd<#;52K>l62Sh_;S^Tf7p~nI`9J?GN{zKVOT9`h2Zbkn3jRa{Q01Z| z@{iFv8J9Dt2#T1`j|mQ%bAj5zSub)9PpI-Cde;2D0QJQi^c@rEWLPE1`C7nnov+2L z=6o$UqS9vKwVki^UjRnO!dXWT#iex=gmL3j0n_Je9fNnC8-TB2h9fSwjf)#uSf=-F|;e{hAgZbfeO9G!sUD|?3Wgq=<*Oqi%it{TFAhB1O`n^ zgYj&lA>0slo{LTZgl?1SKX0j(Fk= zZhVV&1*HhbQYhOGHht3~(ss5M6NA<+sKJ)f5?tHQ*4kaw0pBY`R(0>K5Chmx&(;#b z@F27NxmwI)&efujgsW+vtMzac&~~oYuEP0l8P2okYAsd#f16S$Y{Ez)(E&kP2LuPr zVW775pyc3t_Eh=4qw;;1x8kPn;f5xx&edX)&QG{%!+uOuO=}rxAy(W=(fYpRHs@+V zXS7`cgC>rCqV3`s30(KVwH4tab0A+Eb)KvBx*d3~)(^mQ_FS!YZcc(f%$)MIHVc^g zTwnDaAw??!(JlvqHx|Gu*g!yj{=LnvFW1sdKe{Zsgpq^`vt-B-@wFz`DE+olE<J2)uk7iR8UEm3kY4PXvu*Rvq)RqRH66z{NAwV*4E6OtCiPQ=X15%2C+NxT&+JC z`OG5qS&i+FhCR3XX6{_Ay!sMPv)w#mTVrcKSL;qAjoGQJy9|47WzF2VTC-4D=719G zT&+JDam-F_-EG)&Yis7t)tbfHdO_MzV9`^jS=z)G?7*nw&xSp>wr1{Jty!$CH>cYA zixI~xYFiIa+54+u&#kSQJ6CHKYD;%pFHWU_&&0E?X<6r6{LQfER@Tg&t2GOiWxA~= zrrNsCh+`HtElXQ}H|)8!HFM``?Htj$Yzyx+)WcB&1FxVts7nLAf&XHeV!rD}V?$Ypk_4J+Tf zscq)Y)!G@Ed~HQvWXbllqtBPwL+_cT)c(2W>q!)fN`! zchc4l8#i0?zt|jNt1mxWKSKv?wXXzfn<^+}KR3_Z&o&lK4QG*;vkuzAPK|B~n4yEV zcBBHZKV>$zfQn(y9n{UxL0dag0a$^bRlwFBw6)zUvv2B8(V1i`lYXU5dcW=GT(GAg z%T4A~Ei5QU=am6rUAQ{8O!sJTN?7DQm4micV|jA!pe=Nj*|WCx2Tsi)m|RCV18aIZ zEu+PD2_+cSstzz;foIKGTie}+u_)Vobj1#mtkvvLRbgLA7gf!!v$l4m*08B&7HJK; zd%9_jKOFpYhR{3etgUuUZ9nIO9Z%h4v%}BY+L5xs&Zlm&+2Lnx?MT^RYgsqh?C`U; zw!3Vs4HejN*G)D%{H(1VDI07E>?WI8b=FoQr)2hFyRG2qvZfKcEtLe@2kA*vzy10T zZ2Ih`&mDf&R=W<{Mm#yC&e%?{_Qm?x8fyzHS*$;c&e}@kmDp07yk>U#$r`U>cW~CS zxA|FH`*0Vl8CKc{YhiD24ZoITgT6t~&Ko;`OiQnr`dM2nU?(_hi)_xqv$n_JGk4b3s1Tq0tgR!6*E)(< zzjX|6a@N)(I7@=PIQpzDE`;X(aGvwB7w#VbuU-o$9O103TylRS{MGDD}$z6H^ zlW-+xZ4s`{+DfSZ~m`sB~Ms^Q^7jalHsJY-wb7k1bd3C+PdDcES7gIEGI!);C`RC!k+8 z$jgR^sArCR8aQ@pXVlhfK|{{LTLYQmFptnH3iU#B1huRA#h}z2#ZwdK0IRnZ=FODm zd1tabK?n-1l}K;lR7)HNa#xnuWhjDwM{4fQ+>qgZy%a2$GtU}1BdtSgzm%l+!xTP= z7;s$SYGzy`ywEOgL*d_M9W}ePpl`mvW$-!hZ_WLIRf>*>vuvFYnbdPh_`Hm|wP1WW zrn4}(YEg6mGECghqY@ED*C_eXy*-F3EL_LHu~8bt*_^OC{8oL4gJd*1h_%Qy9U`F7B2 zr;125`hrG%e%;bvr8$n;QHi6`$+++^iW_mx%aZ66f>z^_>T=O_4~01`AIuZEc(cHV z-0;=~u-is8pQtSTX_QF+q?Z0YaMT#cTlxTOx*wK)2&%A|C^<_X*k-lqD^;|d!@jWE zJQNHx55uK(I4-c2innxYZRLu8+e+dvm94}(sjYM{l_O{>5=U&ct!(kRwSv#q% zm|i*OR*uxRQudZ?tzWtN-?oyomFMiFwvz9G5UQ{bQa%Ms{k$JAR>{QKCd{t;Wr@i8 z%8kPOf*lW}p=p0Utx@ue<<|2kt#VlE8k?3>Y+4ya4_rbthM%koYluxNI267d)~wjH zhF}aaM~DL^5t~*d*k}}s5}V?ndWj)bh?)kc=nhyB2CK#B4DwU26lF|;m^rMch&qbp z{0bHpAg132^0;PJ%EKv+MqefD6PaK#3iO}TSWvp6NaUM=I^l&y=R(1~&%jEc4jc@D4pe&;6^D82_{z{`bzi5fAYDuk- zPb8<6)=MZe4C1=VtgK{KZPW%KuQH@ohrIeAHT=#1nqQwKHAqWjS{JE78%k~^BR3_m zu#lHq5ppZra_cv8D?%&D5VA3V-&IJ(*1|ed@l9oK75Xropq9!kHwd0|eEc$sVjGW- zcdl{ND=3kja2%EI!=wjm%qcqM>0>o4z`1H;-+squll#`*# zJh*HpYdVd2rEs3u5Bj`QO`lis9t*$yGi^uM3|^}R{qqCMA(wI!BYl<0r$w?9l35WK zSSCg4xiT9?cD%2nI!a-&tDi4kCsQKjL4;OCczI6mRpI5!@be|iNTgFD2&^Rh!XzL9 ztn#*~N28DoTMA`sGDMAV)%UF@LEb-~mGXYWPAG5VHf?b?YNfE&qRe6Gr_s_G_g*q< z<^IM8kK79w(rm^or%0dUud?@4$o&_y(%#?vppm-~d!t?o>lw?ZHb<2yt9w5Yqsv>oWe$F_Y|tCTZ{}8`)8X^v(^zS-jDnUAhP9zZ%@dF#tSuUnhYj)xX!#HT zgF0nUq3D!FVQo;MBC|qKDXkL|o!>QUb$;W&bw1-dM{jzDi5tt_i)XFw-|=A6y>9I* ztI?yAmW|-PW{nF^(rvQry?oZ{ILm)y=gZ!ES;IH@&9`sZ2Fn3pWKkNrftzr zqW?5K>yYY5*Q2vleeC+y$!xHUn|6gg;3#dG$6;ty4{~23%DDk}e|7Q!c#cFe0(Zh? z2#y62*$*K2$blg5eYA zQMk5nXtDfO(P_A2<>l$T6*l4bKoF^KdNdOe+jE~Wx(4qzw4>l!oJGCl#v5?~5zf8) zF%f0mOWlu20w9u5bMZ0}pM%TfHJ2(Si_WnAPxG)IVDPX3H~DT-@h(K!C^TEP9}8kk zJZt6HGT`#>NIP8?&tZ95K8sprmtClayeThdDqhZ-lovsaiRb1eO;319L6W5dFZdm) zv&lrT3Cp9nE)wg!xGEOH)9Wg09s+W`ZY&n0n2CNYm~!p9mMoZbEm_I~^hO@ACXhT} zRiKLpL5i8^$AT%>t>@t!B?o*(BM(>$NFJ~nFyVoAqSnvFf)q2+j|Ee%)8WAvD)RYL zJSDnYuHs_5NacdnhU5ur2+7ld7EhLL1Sw{s9}A{jr^A!A&JR3jxnLb4dBB1~^03z8 z!IFz0#Z2^L!IbNCc<_bFByz!`H}bSj@dQVm=*p6dAjM4dW5JZ`ba-;g1&hYW13uYP zE?790@LvVW>$^{>u z$pgNyk_UWBb;(7LVkY{rV9IqmJorLo61m{pC3(UJDe{C*QVCC%Tm&f=oR}!ST&KfR zRxaAlB1$3;n13PLchJPhT4pßYK!gL5c+@CW7bX#Z2@W4e9H2c<_bFB>n=dktf(Rd4jDcJX!ui zkk}BwjbO@kIy`0lg_a8%9eIE~kq6jW!hux}dAB*n{<6)%^%c@dnUjrfOP4ENo~n3xnwu9vikaxgf+^P-=jG{&mn#%6SGsu-q?n0*ESPeg zab9A@%QF-&o7}tzQp`j@7EHO$I4{psygW8Rz9{#mlo5FVAuF zB1kb4{a7&NIzzl*uOYUH$zH?b^c`zO<^9#koM_ZvPHQ(?`g;Jp-`iJ5`cQR#leBuVY8`2nXpCtpv={imJx8^Z0?HWMYc3#%jr zbH5>#j{Sx#yewBGaB8CkN2z_g+Hd$rsgK!jnDAQ@Iby%zS*VfhH)M%bDMFE?MiCED z4k{+Ec<+UB?wqcCI_@_VX>{Iicq?S8#F5``NImp-k_K3(Jd*u}_~jp&BcGODf3zL+ z+NmN^4YS`c(O;#Bez6vv4edqe;37Np{tAPL&Ls%@2$h|RE_3@06C&xnzHDa9!CS}J z`wf#sW$AZNB9pI^y%!vH-fxIbwYHfkIZIdj4Yx&YWWS*_AK4g$p1jsXr(SEJPfhn5 zZk4V4^xw9Uvz4Fkq_%?nhAvY<$OVsR_NH!?t^D%ewvw}zU+<*0VtVDATS1U6wxaeM zZk4V4_TRRWvz6cNq_&cGD+pEC2c`QB@w0rn7@I*g12XP6WCUaO8zvH|q@k(VZwY8ssC{e~PJ6r)d)AMQ8gcmy#s zzN*Wx!HQzdenb2Y;LOY8&RHoBr#RGpLq_(Pe!~PGKTc9M_z3DDN=oBeF1f&nocj&a z0h;VLr17ZzhBP0JQPh6J#7MB;Fd5vW`wf$1z2ER23T^WJhGIk=_Zy~0l;3a2h`s@n zP)1Y{Bf@?|;UX~(z2DHXBJ4L*M#TMwDW2MINU@2~WWOQiDAN6g2tBj1!#oBoGZmfe zH>Bve-;jbc`wbJhR4u8Q{f0@R+HZI-Wj6VKLy=jR{f4R3+V>lZ+_2wJ$xR6i`weq) zQ~M1qxnaMdk{kCMrgD@0hKbl(m{!q!8220g&6b(kZ9Mbj@oZn zgAt+6JJ0laYQN#%wH;xS)$BJ+L{rL5j9{PMq!S6Uu`r>K%!;_cGAW|>8zwo_e!~Z- zj>-2M%9KdQ{f6n3Nc(=n8Lx-zH)Nkt2(bY!oeWVU+;qR;KW3%8=M;B7c^kKBi(BnC zq|9OIkENwEwnKO9%}%)o4<5O56U0LHQ)W&_?Ki{^xJq0&yZlS>K_hn~cD3Kow)}Lz zVf%L`9jwX+CdTAVswe&2#5W0I&CI|4<|J4c7vU>ht%VPA63eRnhO@JMRUb5ZM(cVm z1TOn1p2vsD_ZxB)r1u*>A30>dAs;r#Cm_AwP^DnSyp^K%8>$qnm`_t$*C4yvV|v%D z^{MrL>sm0r5`6g~u`weGjd+&d+=^o9Vt-XD}VG`W8UZC5g+HW{J z^)mPWQ@xnArrD`sE*%=eSB-%$6T%KxhUh6Jr|y^syo z>^J*Ci^u+y! zDkT#=$$mo(H&(&@h6E|Az^bSh;iVM47}wUdv=glJybgD)JH4K_!lsw-R^0SbCSnbd z*>AXocBJz3>v_<9ADSuqKD1Ewzi6(#^}j?k{Vz$N|0Rh`|C@nd z!VH=IH}z>BP;&U7lEa7GauB3gaAKnPa-A_bz%@_~@CuXzTtshjAfk~2Nk9%Hk�N z-c1f4Q*!vYlEWw5auB3gaAKnPa@~44Xq&uA@o=-^;TAU!f)q2+j|Ee%ThD{;Uv5=A zd{Xi7DT@coUkFmnL_ZcxxlV@%U#LvtFFvh!`i$b~vldU5zYwIDiGD1Ya-9xOS%0DB za+~7ebBc%0TRd2D5u})jek_=BoemGaQ0XKW&C?eYPhV6#eaYg9`wVrABuFt6{a7&N zIvt*5N^(T@dFt~1WdR}?Q_RlNMSn-@WfndrxYDc2e2 z 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

Bpm%yjp$mB~@h2)E6Y(^(- z&GFZHMn?CSRR3ck(qbQ=i1-Ys{SN zldqO18J#CrB=5%LYqRD_z79_6Q(QC zH_1zk&a*0#_hRxbS@RO#3P<$WOukiBNWMkRVRX)^NZy;tw`I*ad^_CH=P>zpRU!E{ z`GnCqw<38TCa=hvPxubFo#!$64pkv}g}H<82=3t05wvmszUOe z<_W$lc!EpG`!RWC);z&?!^ymm$#<&?$t%qXe0OjHmy*XY`JSvff$xQJc@dNEH6yS; z!tRm(7oF!L7C%VFGWou&`G4<+UHJkg-*5I`pM0NOzv#TMB6%E>AIO^P_d%GHFJkh8 zX8QHX56J6_&WkIO_h<4$S@Zfn42SY1Onz8Z*ye}K;rnoK_?EW$046_@HHYt`@Fic$ zmXZ%-@?%-^^*#2RCmi`5-1gku^8(lQ17& z$>b-^%yw|6Ul*NMS0qnh@^e}9>pl;c@ik0-UR9W(x9Pr+HJk2>FcDu%){Ckl z)}hpTDQoWBm*Ek!>sP8G)?~8Y%$oD|*Kq&dNY<}aMXbZgdMj&&+qbb~_)TQJttw(2 zLDoB2^Vzs?h5YYJKKWzAmuzI#uuT6lPG0Xbq#CF_H%xoSUzv-ehNeW)s8 z9ZA+lSu@jq3`6g2WPPkEVof9KldO4YKZTF?cCtQI6|s&Y>$9v`XFrF1cLiCWtBP0+ zWPOn}$LyDI?cPDwm#QMx(PaH5Yew1M!mN8IS-({kv5q0@cUkkt{vICPyU6;zs)#k6 ztUqMU7W);fxhu)~N>#*aB7#YcktidOV)R)!f*C(&HDOXu)cn4*4OV^u)cnuHS6mSu;xBMr5{uUrSHx0 z`a^KMes7M~A6js{{yA%o*T2BF`!JRMqAGmd{j>b7=zIjRu+jX+I+L6I*R0h)!k_yn zlYdkdlK(0@&mNIss)f6L0vTK5y2xQ{dWCsiT&Z!)l=^NEV&6PWySR-VvzwOgZ{zX;TykJ93rL*3Kn#NyKQ|3LD|Mi)e zYQ}p`GhjDCy}4Z$?2K7XWqN%UY?~PVI*-6}%%&SwAZ|L%L1UIQs-TfGr>PvU&zCg% zD)53ds?vHCY5%p<_hRT1DE$G4uhvNt%|qT$HRSW=FO?7WC8qkTavAR{tpWRF<+TF4 zCOAx6d50;+MBghK6MX`uF@wRhH8f6-03zvM^=16EA2pL)zLhG32Q^wQ}ZCJk( z&k?%|*oL}--Nl@qa+`h>9~Oa+HEdT8V#Cgr(0ULuv_6E^Ghe6Nr=OG!J5THlz&6wk z>Orktg} ziwhy}dkOXQASQI4gnB{9P;UtJGWVr?q<@GDA@G%idV3HPS|p)OA!Mizgf=y=rCg(5 z$Au91qlEf+5Ia4cFQL8=GPD_l`kKR19?@^&LJ0gxLYtK=mZk6E7f7fdgbekEP(Slk z%I^7XTnK^hB-FoTtSkv#D51?EWM~TrZEkK#`9Qy?kp7y2_ZR{{NN5WWVkfGLB(x=j z3~dFWEzLVA_vfGELJ0gtLR)zd6S`PJ10ZB*AcO{(Q&Nu3zs7|S_)$UwJ%|ZiBB4PL zGPE^>2AMBX4$r?)i0}Dc*fa!wlF-&3#9scz650krh6Y1u8*@R*&-rs)2!X##Xs`z{ zp-Uw+1VVw|A+(eE5ap`7bhU(bhmfH?Ahf$V3}t-eGfGP{LO{+! zIwA#PLf1%WPY4;>3qpGahv8n{VW?l}c&{NqTcNCy0H0I>>I^C80>@0B`AL)p4Ssi5&^jbX)ghnCENev-F{eHhq=CW3uf@CHuw-oWsZAV5Q)Oo{@rm*iFnO@ff2$qrIcK*&%LLMND8 zPd>xV<3b2*p-n56?0ThF?LG;e2q8mF5IQlq^_sj}FYF@(Xwj4HP$0IC?w8Ok2pKvF zLbHNL?}F`)+}bTWhtodThggEQ|G@5~EA2+)ovhoL}B=s^jc3L!(M zLFiO-;mJO@4HG>-`0!2#`yu6>0ru%;zLPU>a2fkyab|;U=uEI@o99lhzaeGpN5no0 zY(r;*eU@46WcK4jPNSJTD)t<(4V?q_9CO&o<2SU7{g~Ku!8SAx?73#FleKTVGWO$Q z&j;JkxnR#XKb;(X!^+rCh`j)8Lkq!PU^Y4#`L-`(KPmQkU>jNl_Ic)>lYeh`8T%=* z&j;Jk1z?|Vra9U6aG!i^pFA!0g5VF5 zKP&cPunk=b_F{9!$(y%B8T&c0F9X}qjNn_EK}b$#=)cpGMj*iG4NLhOPnoYBRgZ zZntY0`(?4O1>4YdU|(w0c9>fEO*%XFfLYypPSFZS5AWUun=4 z7}U@m7<7f1*W|w2&o;(m5J_61Jedb<6pLeg7 zW)j?ME1~>rjd3@WSDIx_#yZ;AN*j-Wnbz($&>ush??4TSJ^~JjK04JTAW%9V+s418 zq3*$;hVI3n_n1LV7Cb%@H9D@|7W+Q14c!m+eZiszf82PEikYBqf<{Fj0cV0f`qJd1 z6Nt^k9);T6?g1#jqcI+Y@&jf^lX>n?q}s;!RDeD-1qf(J19@WT6DT*NJp|=1AwYnhGX(@^f-hb zGpm^laYxv&{;2vu>?goB^d#6%n8QpiH$ELTn&gLKKLxg-r@?;8jAgR6O)X=8B=$34 z8+sP(XUtC~M;o7z8ok6Hi~StfhMoueIkS<;$TqEv{fXEwfNkhSuwO9unEY#eN@}G2 zsn{=pZRlmNUoz8}Y-XMNQr3Y$t49Rp3yetXmS3NGXM(EF3epSe4n>=+4$*dW8dEc*k zNM^0jU+w!KK<8sSRG6!0TYVjy}#N zd1`}K8+e_J*V)I}Bu{Pd+6LYl##__J*(6VG@Y)65TE<)3$Jr!LZSYnLymgGXu8*@x zp4!7QUE2p<7Y1^>7hghE|CWzPuA=WpF3F6r4 z7Gj$rhBtFRQgB?b$y#mjHVnM}#@pP-*(6VGjI~kVZNY#YV}giv53wzym>^;shuBt8 zOc1g95E~H11Tn8oLTn&nnExPBFdsHqs|}4Ffwy&}A$UTjYtInd#xw@As%jb{CN$Vh zE%vik0Gho*-nL@u{UnH3?+_ar#RL)CG{m-xVuFh^UHgRCFvPGu+q0@_8qTU+u4#la zFb9S?7sgqWz*+?Cm%c$~Bm&SG<>PFUr#9xYS>Wx!fW2OV(C8OpJDSE$K9@~us11$& zfwyy{A&A)KA+}2t6NLU2A+{@GnB!=#%O>^JhQ^kGw_Btkh}c#kwtEy4g#LgK+XFG^ z@9A~fq`unF7#MhaMH+&L4GOWnqnIG{w+^v=5QF}{UYAYks|}590&l-aLlCjSAvPw8 z2||BJh>b-I`s2JVo77huyln$-f8!nC<7|?rHh4n=??B@nV8N8}H+6 zlBYI!!vb%D@ec8EHpx>PyzK+;P~#ou<7|?rHh9AWZ=&%g`8b>8sSVzUz?*Em!+o4h z^3(=zWZ)fPyeU4;CV6UuH!AR^8t+ISXOld&!P_D5rWx-jA7_(1wZYpl@EVMFw2!k% zp4#B;6nMuNZ@Q1ONuJu^?HqWG#w++Zo8+kt-Y$VR!+6K~IGg0D4c@MScbxHN`Z$~9 zsSV!fz&qY}C-^v<8 zsSVz~fp@m?=J+_9(k))-=UMlnIe z3L$n^6ca>jMu@G9VuFYr8)A1yF+s$R3$c5mm>|Bl&J3}85ySU``&d;q-7hAND|Ykv zVn1sIkav8@dw>bKrUzM7H9bTce-pBseD2;+rhyBc9fVCo+!x^#MH+)Pr<}f=J z`xRoC!<(c~k8SFx13G8MxWD!>)zCRB7JJKd-VQo!Q%4=pIXlLE$H!D7HYXN)*T+;N zc1|qzo{y=<_;X{i_YuQ(d_W4fgKdtl4(QB_aX<7i)zFzAi+yA|9|s+_siO|)oEzhQ z;$x~2TM&zV>SL-g#==5ao#{J&7KLjq@5am#%(t4FM-Q8 zx#|G-${3e7*x@)!qtbE4Ho58mcS(%Pd+5N;1}@v=ssr4sV%(f@s{)s8a@7Iu(ioR_ z!a#^tST;<8PyI>5a;#^wEN&}|dAY?G@FaIcARdCMBOZ3CBW za@7IuwJ|R5N&|Pbz-60Ub%1+ajLRF(z~yabnlIbrssr5RG4ATd<(*{WvQ4f!z`Z`k z?O5a##^p_5nD3f_%Qm^{!1?Q@7?<~XF{T=^ zn`5!HeM~jRxFr_jJzN-rcWh}sY*R-a(783nHzny7`MA|Hx693 z$yEoqD`VVx<8BhTY?G@FaPN+Bdl5ar#_eU?-hs5a@#^r5C;PNITaoHwU9pF9?g5w#iioxDUs;gN(}?ex%Dbx$3~N@<@!!yL=c^ zjo72H*kB)1jo4$c*bpC6jo9O{81L7irfS5Vh{cBbm}&>`{SBIldQ*jYkaQOkh>jbO@Q!XFv5AV66yp z-;d=U%A{P=VXUf}CX%UK_A`e8){0iyi4>suBAv7Mtc{suBA<7CXwvR3r99EY{#- zst0B2u^ee@+^TRiyHovejT^vjR6tT_XY}nfm5TVs1U`Y?xBz|>pB~}_S{@TG3H8*j zO6WBPK7m%mBtOzCggAlL!Yq%^2yp_tp~1#eyH#SmV*{T+3t#&Asof^QKQ8bIwAQ8P ztKBxipBeZBTHez0)m|;ZKR)mYw4$ZwtL+l}69S(=i&%QT+I0zjG4KhrZl&j|-7&#G zG4KhrRHf&u-8sQ;3VZ^sPU-n-ubJS_3VZ@BNa^`%ubtqZ6!-*MgVOWWUN^x%Iq(VW zW{I-n>68#B(1MfHi;lNbL!3ZMO_s+`3vq(t`ib#R4{-u5FIk>{Mu-z=Vaf9N><}l= zl9J`|Geev}i%FKp&kAt@EhAYTKRd(;w18xJd`^fHXz9rE_&Fg?phY9g<8wotK+8pz z$LEDOffkA^kIxTr0xc0)9zQq43A8w5d3-^L6KGk;^7z6KC(weBtOPw+1Yd;+cUSU&!RAx@yx9n0evg*buMbu5ox z9O498(Xl*!Nr)5JO&K;{wFf2UyEyO(w1#83-lZWO|BnZs=S(1X@S2Jia`{3ABQuA5ZN)6XRVU_yk%sv0U$l5GT-biRJMdL!3Yh zCHnEy-ZwGcO@U9KwGqqpZVqt*t%_J4za_*8v>u`#PwjDu@oo)#0xf~)`D!1K;NKSb z1X}gb^VL2m!M{E53AE6m=c_$F!Cw*h1jPwHj^kPFLlXQu0-r$38G3!S4@>ax415Bu zVCea3PfGCb3VZ@BTIl&|AD-Z^415BuQ|S3>Pf76a4txSFP3ZY*ADQ6a6ZiyLjnMPe zJ}SY#H}DCx0HNoreRP68eL{l&aNrYY$w1Fn`@{tQk-#U=DuJG__N)Z|(ZDCr z!hoKy_Q?tUV}VbgwE#U|?Nbx{#{-{0%l~=4+NUS@PXs=JR{ZmPwPz>zPX<1L7Wwmh zwa-fMp9*{et?TFcYR^gVpALKiE#>F=YR^sZp9y>dt={MPYR^ybpACEhE!gMzYA;Ce zp9_2ftI?{MQ1Xpm>#! z(ktK5~xKMZjKt#4Nz|0u)>w6a}!{NoTO(3*DT@lQgWK&#o6$3G2m0qefk`FtDl35qWz^uG&n0=tpN^woYP!T&z+3G5~wtn{RW76BIx4`8Xcb*3Ca< z{9gi}p!i8*yi}FHK2A{7O+aP&=@2Kd8-Q&7YU@UzGJYoT35s7t^HbaI4vN2j@F+OD zK2K28jXpH&I-FwZJDRrgXIH^F{5nZ%6ZKANT~tOvG0^o8Y^^Cn)A3zS>m@{_25GP|Qbs zwW|~Sy1*wW)H}fAbJ0C=N~J zZxP}I#qARDEkm53I4lw0D#Qtj+b7}!LY$yDJP{ul;snJJiTI!pCn%0g#J3J{g5sz| ze47v_DDIGm4-RpH;*N>PIDwu&UmhP3;sko)e0h9ih!g0^^5yYSAx@xY$uo}go!Wc* z{T15#RJ8X^?9Uy79)TVXUq0TBAx@yD!29vk9vkVaJuacYQ^+UKquzbK+6P4WY9Cn9 zJ}9BLbI>EuGuzAOyGw`@Xu%slp4t;4eYFos=@jXMFK#w^ukM9-Y1bUu%d3^5> zC(wh-%j5fmIDwu}ULM~!#0m5$a>l!4>W|H&TKCu>mF?PjTyD(&Vc&7MH>*dxR2KJ~ z)whVhML+a$|JHsO7PqR6VO7;MmKAQ(8>hOeX@AxErUO)0HywzYbE)gwCbfMgm8wan zT&75k0`3*dw9Xg*m`>%|qRP#0#Xs4$wkrP6(k9lmcCE3Q+_k%- zxYnJm(H4#A&$mh)jc1a=BZKE{{DU2zcX_|@`G2BMH) z;Sqm%u}WL(PW4m3z<%k-S2GnIj|VX&*K{zes;2R*a6C>>joUj_=bH{yUEOpTYC9fV zrIzEBtpwV5Jixr6LL91oxaaj+eT9Ie_&|7627eo=FkrqQDf ztFi4eEghw8Tlr(Ol^vp0t?UTR<50096aYtPUA3$BFW)rmPgnhqU%vmqbhW>=U9KwH z1$8>G`5NHB#L2S+$J_ef>&mV_0pC+`)u^YwqSudZ)CHC%61 z?D}leL~eJkX%efdrpc`EhC5t!Rnrlw^G#D!S2s;nUDI?V>v}9_*1AVs-&U!0`3Azj zOpyc}vRO1(TA{3llIpp7YQS>@18BNS4dAWCnNE!-Lcs>ZY9B~#Xkv#(>uiG+*=R`P zoH1|?bFhjBJ7$rm*{xx``e7-oomS-LG)%;J#a_HYxyTJ_7>I1#eGOQD67n)dCf38z z*RvsmcKt~>32Bo$g7S%Y}cka=dtJtMd8z7H|2XS5B+Ef?H@}Ipp_Bz`O)1edo zYiwx8j{siNJeB)6+cZttLsD71Es5(-;fDm?8>b=OW7AYNn;X-3I`Q;O{TY^X6nHp{ z8(38}9W4cp-zv2WhOWl`PUUh97ec6YzJ4_JV&fq=KCU?puZdp%Mtnlx1(8gV>Dgtw zVJFnTQj^MeYQ%c;2vWTMG|mN|SF>&0V>n>0X*#Q_rbbqH`xI1HHO)|+Z#q_Wb<=UE zZNIch9f;2>9RB$JM2*7N*g^QbYPQd-zw`4dU;G6XzCTf2-=9d*_oqJsgzrxr6yH}! zYV3$vHLQjI+4m>TL*Jj;v41uEuT_0_Js?|j4XW=?99CbOI50kgsx)+6O)FOuzCYEp z^!@2y8(X_co9(JAr_5dEat>dG8cUOQHDT5oFPX&s%k5O!ncUX165GmMrVpo7M%&t| zm?Nm%#Q&Y|Pjhhm;7svvZ+yOd<6W*{8@xEE2BXpm4Y+hNs~^GMnHW1$3CLEO((FzVOvyP)pVljd{dL^>ZVz$Yno0% zt@Hg^I6<`4cP%OuxNC9ja>wGk7I$kc-tA=D(S!Gn8qpCn9TTHl2x|&ayQmS06pMCA z+g7c#KUzh*qgBg$L-Q?an_?Q#-mu|qkAxA)jvaje`-5qxtYR>~=fgPMvVUnDy%?() zC%#e9`RHWs&Ro+etg4z$WrY{^G}Tp2r>o94ouRtAX*Oy*AJwL?YHtdkzBnIIqovn0 zQ>3iEKkGy^1K*!@B08KO|5$zrQG90fyjH7N}q*N9%l(vIZ-cIv{LUS~|4!*WHP zy72C?Q&)9O_~{40FV^@H>%Ul^irKoF7QR^f_w|2kJM`*kgK@Geow?h#$`tu}wZf0V zs@OTOI-CRb5^FEpF2{OSpl6D<|M-$t*EBZaLzQQ{4p?D!ZJZY3zp>6FJ=b&=tE#56 zS>YI&qq?f;9M$=zxvHz1=ApJ@#D4SRn-`7|YOL}zi|YUQGmC@bGm9kK@^vvs`^@4z z^qJ+*)v!ALSNa`H`oI5~^{$ex0)h+c}G);haTMbRf34 zVH#iK#Ocw7m45S6OGhbw^Xq$6u9cme@SC4s=;|te5C0$h=Kl{&SNmJrh0~4BLOQVZ zo1d?N|IHsA*rnh6+R*YtG>7X``dU@Fjfvm<|Jg11XD=oXB0FeWelerp{F*0z^OyEa ziwB1e(tmz%;5W=Uc;ocwgx@yfa1h7a`^Vbd5wFJ+2XNXhany(B3a}5qmF7YRzm+b) zhV)4Fz^5-!79vsXLd6E9vRH`^&+-&SRm6YoL;}#wnvFyxi7H}eVI1* z`DZQkeO}QwGF6hy)_-Ba@ERQ(V&80Anp$>ZJzt_R{utHY6#kuSRQ%fnj-z>Y3@_Gk zGz`Zu5w3lI_f_wx$8yu?Vb%x;(Z2kV~JhpxT z_OV@>(|Db2xFQ?6G}mh|uFI*V>vEdg8b&gqOp$#ZIy4N!uTo7Cm)bgMBT_wA;sTcD zFNxBnG!5k=9h6hLhIS?<8Lpu*v+NpLHq~>YZR|h3fYv3|6Bn((?8qx+m4lc1Y}l5r zo}FHH^~|oFt(n?mid{Q<%J1!eJb|{Uo;8|4E?hX{bu+$te2?>WbEx&t_Mk46y&WAJ z3-OZluw&yYUXtQ*e;)gA4rrL89-Vj9CtkzcRq;xnOaI#E&^4MlKZl6QKZmYWOrJx9 ziO-qqd^}SmN`4M4kMao3KNRTFJmo49_oX?3}Hf3$JDvV`A7+{7?2#^l&9qQ<4>|H!sx z8ZX3vxFByEw9412t~x&R*cR2q`(s;#Yx=I0wn#g&t_ph=n|P64MQ&Sl>S=5nuAu)% zwyjmB@nUWqZrk|h2Vz}5z7esFE8FPU#^GY0tBE#Fh{tACst>jaS6Hx3o%-bKv6Ln* z;rDKx<@23*$oFWx1pjZ1$1l}m>CB#`ZoSsqgxqXSWJuIVBGq#PiKrLfCK@j-6R~ca z1m`dwI{2VL(>%XnJ)HHJq%K#d$mNL&bxzreF;|uM-G2d&b-O8lvay9s@pgvyMrF>!W z*?ldV`1N$1My=~xlfo@ZDSSD`@l<5zs?SBZxyT>4Usir7+6R{Jjt*S=z`7oJn8Y$2 zUAk`L=W#moe|a7^w=@rS{#WLK@0+)90`s%}uT#1w z1C3nct>|x`X`k--S+4Oma-w7Ub~f=oDm$jx`CplHG>;W6&4Zo)m3fr*T`KIn)$k72 zzPkf+(7yXT*LWulco$NC>D;)3EXYlmsBNwAY zdiR*#yXuyUAL-p^diR&~h+3Fl)ZLO^ztr?rxb@S%#bdtwj>pB?@wL`v zW}J*uTI+nT)$(mp)%E!9+_QceuM}kJuLiDdd;lZ1t(m(FyQCMcn7HXb;O^PRZSjMk z9-j$4yQgaAAHhG}&D$C`%+ytN!k;s6nTcOsU3I^WaKm7AD|{mo&FkxF6?ysr!RU9>tgq#7dL-&0qQ)ap{sRRbLc$ENylRZc}jirM5wV8z6NS$}K2wpun=7TCXaV8i{fw3jPR^x(DSu6nsNXZHqDy zg}&3sCMy`JaFPvj_fP+5_Dxj_K<5sR1wj^vf?UU-&!D3q0-V zQNFk(rCLko@ ztTtLhchv**v(yysB(1A;wOU0tIY6zka3^l2uB~gUwRDrLFaD%tNBN5XEj-Mu1=2*2CGg>>aKbkk6S9dGnu*$u7eiUO%8Cmv09PU(RI|b zgp;h}jMbW~POg)lBn(z3t)#o^X>4PuZJ65Gb=F$C$pJbU3wH!(>eg^;=+VMS);E9E z-oPz^nYuOInp!tE$$HLM?Z{fot)>(LyvW#;PN$tLv(@b(5?w{-Qn6fvol1dRk#O$$G?C z9m!hXt*>=O|HCZUe2hn`9M?)tRhruAA1}O|nKCYYnnCbQ@~r-6X5tSZk8C zk=sb??)xu$&)1*+pbcN2seN1@E!vCJI2GsX2aUA>S$$n!E!CT3U1TgcDpX;Y(dy}l4jkOV3{at@8-kW4?WUTIFZSFSL623{+FW+k$HzsQfw}lq& zt=rOVIrls4726%y#$i89HWXRJ-g8t4XUDc|JF zHrZG`$QtAZX+hs4Ydd4nI#IW^+gi)|Cbw~IWA!3y8@G)X_f2a3@ZB%J@B{uUUw@9e zW(E%qDh{mefbZ(PdBEtlvw`2&p}nc@RI3~81{dK!;f?o*H!Q@L{JJ6a!{B3aLmDRH z`@1|Wh|snm(?VodX_&8{1k5`Z2)_{)Scf%-p3ZS%zY+ew{{8Bo{l+;i_8SK`-Iadh zz#dZijk7*}%U}iN)HIakC|JEKg%y8NSVbZQCwQuevJ&Mzlnj2u3`RK=1@}y*o zN_+f%*%{>+l#5VaL-{L87kuX%i*gdmH7FmUZVK`=7wn@aHPhm7+^2MGqOgw5n3Odmp@{Hn8stq>POZ{ zH&Ty%ht^0f7ryH4JkwJ9Gj)_3r3J&2)0kka&B@xq?Vx4DldP?cwFOx_x*hd&cuaOj zts-8cmrXwGjg+Ns$<&?PPFhF2lu_Cn?|h}bu@zZ6yPdU~cye#tX{-Tc?c#RPL*${g zixw9z(aT=SFpc9a752tV-L7s|EiYcmC{1H8V+|r}v>UBO#*>rnZLF=y+Rg2zXU&7P zo7Nm(^^5ZDAGDp@Fm-pgyH*`f4)B7paNl*NZV$JI9zKuB?x97;OY|0Z_d-h@!qh$8 zo?3Rilu_Ewsm9utti9Y`dK!IlZ;UY3P_p)Rd+S;B(AryTjhDW5w79!lTk3X9-N)^t z)y7L1rD=Tjd+m*3WbNzr)x+tNlYPio+mp4Q+fR?Cht_^tV!T8z`$837_0ueMI8(>C zFt=I&#F&Ob}M6zBx{@-rzh1zYn)aVU-hg0^Y65sqnNtC+h1#o zC#UhIv34Nq0C#{MU7uv#W~?2_I?x@c2iN1JJ5URXm*_1X8#63*C#D|c4$_k1rHsshQWt67z zjIlnL|rk!yh` zCp+6%`;*n+8j4&299j)p8oWerac}HwsRuCiXm_+02QOumrm>N+4kYUscTDk$7Wc+4 zUucsKB5S&vUR+|6ovszZOWW4s-gv@N4`ynkYt)+HrHs-vt}xbkvI?$HUlC`I?4khbYcdSG&J4tJYCs}VA>qxRrb|-5E@g(auV@)IL z6nBc&5l^z_80#pqPIaehHSr|tFk>~4b(%X(Yl*nDvujjaV?rb-2*{AsVsBhp` zljr8)FR$|unybIOo>PAft~6BFUyJ|ayLopTe+I{&@8)Yo^W@itl(CK_>s)uP)-6x6 z-uXoP1wYL*bqm~r;v@DRUZ7>lOY{~`5?5O4Or|b$3$;*rDWi0fINn&tlXaduugK-d zle=^;W1T?OBDbi>MaaQgq}9n+{W-RVr52fbzB^y*lP3rG_G4}5iDX^iF3>9FN!AO- zY9i}GccIoQPqMBx)-19vau*d}1tV`S_ zMJ`F6JpFbx)+uByc8iN#cpO@bwLXj$)Jxr^T9Z6EjfaeN8d;aQ%Zgly zJjuG)Sf`V9xw~BJktYv>>Bc&PtSj6VT9rJhwTrQ4lXa!LQfrYXwYnSYOtO}^C0da@ zsg*L;S!7-1uF|^XN!B|b+NHtQeEl5ini;%8%5evt$xC!w)-82QXZ!_y0~^?0S|F}l z=9U$mT^dB(mW5avt%HEBiQ)R7mW62O4_^(k5!f6Emjk!34r>l=^Z(f8!2j;Wng1CL zS1teHEhgMM_$g7k&EzZKaGOa1mtVteCO-j(OR%TnvTL{mi$%CgmtYsfF2Q!j<<@Ws z7KXagCD@H{xiwsZy$Lv6g2h{)bP4vp*d^HQF!^u^_8ET(mX}?58J3q|c`5e)#wA$p z2VRD)#iiC!DAQ0Dp}d6hJ<3|R)XINDQ5R9JLV;;9^%V;L)#0-1K!53#mjf?-S0~c5 zd6K!>U0wWur^ssn-Y2-$U8_H~xNBm6a|xFS##`zfre5c+({m1x8mD4_LB=|VtmSTb z@naicxgLA4>H&UvM{}FY)a%{#dhkJVfVYi>uP2$h8{7?g{6Ug+hq309b)&nn$cG+) zb)%k!u(8; z@Ta%6Hx`j~tGl(x#~9!<^;SLKphR!+LwlvAp3l_V+--WoK`Ep3MQ4GrE+Ff6cYBe~ zF-U%BPchboWUX*3ihOzj{_?a!k2NTLJo!Ienszu~`dI2kOufV1p$8k3{>oXJMk`}o zOxB(5&LSUQkYs)OmiERaWZmWND)ONP*rdDkG=o*|?&X%cn5iq>N_K z?d~q}sRc>a0mizFtb5!&MLw$ltb6njgH=yseM`NZsrR~j^%#TX06+a&+j#|9_qqFu zRW?Ayo9tJ{x{|E>-Tg&Aq5xX=>)8dXp2lKJUBc7{+yi=gL2?=eV_ikogYLm1pHYxx zjW*U&vL12|75QWW96=B1kp(4si-%~Pr7mOY!|q`{w4jtxIySy~Q+oqHF*0?JxJQb7 zG(qwZecD*pkoBm0w8#e%KNdyCgBoaCZQIQ~EC;~xI zsTXpC2v-n$1Iy=!iVYDEqzj0&P^A|^K~z9GigXZAl<>drS~GjkZs+Wi^8L^MKVS0f zd*+-yvu3qfv!<>2%_#370Ic801qEUDOm0-Q=r36GCjTb6q9800qVdT6!i{s7>t_FE zxu_tG>=l~pT;{sPzh#uy6Cl?ua&JKhG!u>Ewdi>)daHk{+*}Zr2+^3Yxz1;<+x*+) z{(>|b(>2!x%yqke`zUWM0Ib{PI)gBKrcmCvPw2dmMep$MkP8jM5+NG*YOafz>rVep zxz-?!?75ojm&|pSf7j@G%8k3^mV+>RCO3}Iq8GF1-TvKj&p}usL}RYzx`erY>;HC? zw;807T~~8m%3SyO_l)um1HigRE;k6XXL942-wQW>#iIB6_saDKVTllp8#UKu%=J6} zccZ+-AdT#gHP^41>-YZeM|pJtVEtb1Gzhb2a^nCkdO3^U=ieu{8iXZ6G&a{Ob6vw+fAaq%7Zap&9i+LgWv)N_f0pYB(z&+PT#K3OLH|Ly1Rn|(0Dy_J?uX$7aF8<-K)87V6MOTf01hq(z(vnTsJb;BmN_D zxj{PD7d6*!nCnshQMuwEooheMbrW+v=07GE9i(&3(p)z)*W>=ugSb3N%lDOVq)bKRo3Zey;e{HNpsgmkXcG}rCS^|b%AT!WC#HLAJp zV6MOVf0fG+(z$lmTz4|p-~7MHl?drv8)~k*nClt;8MzoCovW$2?q;sP`+t|~5z@Jy z_^oi_x6Jjd|Eye+kj}MObKS#S&-u^ERSD@_-_u<8GS~C|^KxOr|KxPwB(4AVtp5f7 z1-Wox;6?w%6VVN)rz2nNI34*SrX!!_bR_>2n2!A3-NMWJSpQ4@OQXD?0XF0%x!ECP zSEd!*M~mLiqA&X|%iRrOiO~Ga&|H6Du2=k5MtMU++DMJlTn{kUtNyE_ymtYxUX=?Q z+B)sj`>)IO3+Y@R(OeHP z*BkyDqr5Z$Uiuqyn?jg9a~Ke4(T7>|pZ-7PK83JE$g`5>`U`XY%m0_$s*oNAJanfJ z{s?ou>Axv=E2MK>rnw$vu7CUgmKzq*HGWHTJ=O*TJDn5rW4Br_65^k{D?}Gz);96py-hr5qr$tMJsjo&_4i?^O+%j-yg~7O0M&{Oa(k*vdD6 z)81!cjt`r-aa=!`il5B6Am)&BL3^5WLHc#}r7HnqJ$@|cFc5S$p7EHIc|RTu#XW=v z_71|c4(4DM;&}zniR11D|kMREtB`*`QLy4%Ypx&I4~Z%?fz@P2wnJZ7|FUG3*yyT4GFK~+14KOEQ`Sn1ok^TMa>}FVSS>22 zig@U!szv+lsUicT4SvBcG-hFjTqMtYQ#j$#c=O;;tvHegYtbGS<-wu4TU6_BOXQH2 zFR?t26g9Q{ID2Nv5b6633A}+*LB2mecxQ|*J--zbjPEz|^XKwG&i&LEm5B@w7PSd!8}%!=3HG>DHf_D9zGhU;8xc2T@JX0 zrO8Ndk`-fdnjB>a>%Zv@A*aszd8}zb>tDql7&C$xZ)+P2S-FlHjhD8R!@)T1G}&J@ zm_`Xr@(2A%0b&u=a71jpKT#Rpt)8Z<%!8{O3FflGu4H-Z>q2~k#Pb~1L?wPTJ^L0i zKf)wI^JMryliSl=tT}9{h%|`^k9rL%BCG51x(q~6@n9B*^O=w({99iW`g>U|&yKC6 z)vgg9)3b)c=v~~gV`iKlq+O4X{ ztfdDT9c030@3tdbv1JTeoRLt<7<7fz<*y2h`iT`!_N}g1840#*)A#+B@2l9_c3=l7 zxG@CBBY zMPVhPfHQ;kV6UQ}>ST4o`WY((k858LR;)}scs6!QT(I4;c|v!Zt5!I(=Mz}lrh2YISd9>PdiR}OLpVqwtWF3#*}Gxa z5H?TjIfys3hl zAqR7DjMuc}hCc_fClA7mAwzBaO2O6!M^^Eqm(H_i!9qxGo zVh&~@C>GBpM&E{S!$i!~^?>OdfBU^m&=#544c5i%uD?U@9&Xf}c@zeDD96xP0!7QM z9WQsLyndgS+mYp_Y=uG}=(bR6;V`3tz0R1vJk6;a$+ne`xT=oj8KC;2fUMz3$}Ln9 zJC4p_Vtf3uxnUN#G#wcE+ebn<1>bdJYOo!W?Q1%d=WFVV9%D^Bjd>VXEw%;AS79?q zsFl&&ZG#^JZtxufp9}S!8+^E9J#)04cd#BF%G{Fpr~Oaq0}yv5>XD`s54g}#Q`(fj z6m=zU;<=joq9NAHW1d^Z>h*22i4ChwQ?gaQv?Uz)S>05+i&i>?mGXe-)~qzuR)hBu zW=4Yz9_EXphT#bwjj1o1%F1}obX%oxXAPXt#4p?NmlhJ+GvNoj;EephoB;Y;Gk)k` z)XFAe=p#{Z{fRnY)p4unXK=fn-V8p<1sZDI=3i$M+8&1+aPrungZ^jA-~5)Yr69fy z+$QlA27TZD#>o?LrRIZ7u=Y?itf_T>&cOEGl=H*d4Txy$*%2FW=ApP90B)SD;~*?g zYQP=#EEnRa4d;Q+GM}g7v#HS|xJA5o8c3Q!>!r~nUYUyTn`!h29@3TQ5p^H$#U2jK ztOr=_nS#!BCOX&iL6(UV!5rVj*GYStI1&1F_9+DDtQooU)Bi7~u}mdF!NG;tn%5gx z_nMA1uZ4IX!-Hu6Zvh^he(=U&?Q0i25967N^{*@NG_VHtAw19EnTd6mdq z8=lW&9gHCxcEuW4AJ)G1#`7SaAM_!_1D?aN{&fh}yck~L5Uh92$6D7@ct)|-bsW~Z zYFG>S9G*p3=Xw**VYt;~zd_G?4$qe-dEPOTJ+FoJy!T_3@HBkBgy%;{zl3L}RXp!T zJmpnA@1uAw$J4hO_A%pW;qW3MjHtjGmTy;H~A>GSQH(V$lHPFBJr_d9AO#?BxB zkHSus2YwIoa7=yChAhf+_;Xpbio{MGVHo^^m)Y;w5O;o6>}Lj&M`}$Qu_m77e{aVM zLc=>li@u9Rd6xfuiloxlseTaoI?nQd$muN4Q~o<^)q7|Riy}e@9wU*Vlv13uk~mRo z+L$#lQosj_6FEz4-mSQcEHfw0SS=1v6g=~ z%QGgzURr)Xjrb9&@c#Zx9f2?K_xBeB7sa$T!?x`2&&toAtK~m`NSLuXkzr(neH57k zG?<8k4A9BPA>_@66xlHa57dAsR!vC< zSk(bVsKHbPw-v!L%)>_&+{ZK^%CLpSwBTN5KjkNB8k^l=Ti;$TDqa}f#o^ZAaJSU~WOulN zaj)_;OnuR|gv-Db2P@ozG=z&I);LGNieP>oBdmUf3a^URfk?}^1&Yyj#E9`O4poc} z)(|l+MwaBZ$b=k}b3gS(+Y>G$WFUYVHSQ1%D&q)*qmB-^f^k>!cujrL4g|+g8b>I& zLpA73NP5EXTwK)fXvcP#W#zC<9N`c9N2u*M+&|1eJP?RkRxQ^`d5Zaah&h8}EL6;o z)ZjM`=Co3|2#0+AB~RAW7wt%JjG{53;1+6>90%M?OOr9J!`8+Yr^&I@Vg2vY`gdae z48`$D)?Y>9C`H70dkHJ~>!Matk>20hSgugZ)L?ANWPdD&3B;~U>d`!fQ(rWfm@_=c zrxf!=8ve)8behy$ghNII3huoG$2cO#DE&uioFK=f8bK^qn$RN7<_VnoqW7_WMkx8T z*8fQjJml8zc0W|Gd{;Fxy~=j$0GS>vY#-Vdq+4HrIkW}A<&^LK=n(hU#?skfKf@z4 z^+niVs-aVkSM-n8C`bgD{0{bAfG%hlgec!)X4q>u6Q~2? zH0R~udK&ARoo@l$CFwvAhb(s(f0#i;4Q;F;r_1MdYEyW=r@rWeB$h#ezNW+;r%}5c z9xp)a73~aN{KG9LR0HKD=&|_}BOzDSuXC69lY0c2-G~fh4}D#cIbMTaYjO^jf0)T&uZAVu&)VymL}9OlO5f10)0Y{ z);*tfGXRyufSZZLca$3me<>7AiWig+dxYQ`ia$e4Fb^DHwwI8#Al4f(^(oMpy*D0! zY~1WH)QyXM>|Mg`JxMWxX?<6@{dtXHm*RGcQ1U*9Q2GMx=?i^_sdXtm}Kq z?k{MJJV*JeZCIc?HVaV?Q4eaBd$USL{*pL*RU}SP4j3;g)b|W_=PX)sqTvdP-7#ii zn}-LcGXOCA7)!*aHph1OvE!)D^y+fG14=H98vmYswzoc;j9VSEF z6vxo^WOrdWr)0MnkSw8DRb9x+cPqjE@7*rQe3-~ESlW-3>tEJzgpS^Y4!Ps5hW(Fi z7_vDwd*~rpX=5W+oy;Ln`_FBH+P*}M5!!yLsC`94AM$XP)Retq-BxX&o57Va&B#`- z&XTq2VLJuuA{SM!xDn`8iuWVM2t_ygGo|>e8oJRD1{6Xagjtpg*<(IOKuwG?gyybf z@Tprx2Ky5u#J?LoU3K+q8Ya@w)o^gIzin9P7$Uti;>gxtj)erZqDuStErQhn#Omw* z*EJeth)md8ih}!&g8K-;A*7#%txSVMv{~KNdsEbxbZ%fX6!-!HM=(H*cIf~&yRKqg zQ=9qszuqjQf0W=DHt=j!k+4HFR_c)mMe!Be+JNsU%mWFNK?Z-}!c>>n@-+BMH-Kj= z;Exe7;}V`DfD?UJ*p&#*)S7uZGIq>1Mq<_>rnMH5@)vYqJFdG)*z|GM%&>;%rb%kc zk`uK2Cs>{V56^SU%aG!0WW)kPi?7S5z*vdrCn_*;afKfHHWfhhH<N2B5GKQ3UMeuNw-mN*s1IB(tT~c^7zFcIOAF{5 z3TPn#F;3=XOABaw1vElH45j(&r3Lh#>x8sL1jJ~YmlM#b{$?ZC=Th@e4SsCf7w9e~T+e{>`HPy;$i1C?%@0qn3+rxxodwQ6;iyOI%)7HJd=~`jir-%f?bZSIf z5S*@?-jP|o4f{_H26O8U$4Lvcj$>E{BZ%Ip^qsDOac5>#)>eysg?B9BF#@4P&Yg+G zO$3ahm|Z!Emdj3NO~4PltZ34n!GC(Z-r*laW{vYLW-}THj2APdq|AiuLfLIF>};J$ zybd{?K~&t!UH2Lh&?t#Ts6>tR3sfz#w%?zCA5t``_ZrcdjYL~!pRri#|1|4Ia7T?I zoKZjYl+_z7l+lK1%K?kk6^rAD1tUk^PD#%};x;BCbg;|UG|(GD!7c^S7hWwyAJ6I- zg7QwS?re>FT*WVUXuYN-WO2|S;?EiW9@VY$K9kv6>1S9egIC_&v5K&Ty?vG7djg9x zqUCQD-*YsKvK;!QU&!{f@0Xq-zlhbHP-S>{BkdUv1*4lmb;(JpCe5NGEvo> zA8UVM!CcjUhobU1qQWqm_Z4Tz3s(w5KF^|zt$DvvalQt0wgZax2xbX2Rk!+QSNU~M}% z({_H?O*i&=h52Q|WDw8?3Da^I>S26yad>deMC5+mNbX>mXnw&Vkem5SQKzV-^?rr* zGOXxBv3mE140O=pZV$4*g-F2By}g@Czk9iEjQ)oC{1QH!8ao@ppEYX=_APHqk!$Si zwfKEIjh)T-r4l>4j!h@q$*F{ax%J>YZj8RvpX*;5d@y9YAQClHl44G&E_N6Ts{|@%TK|x5;m9r5zka?Fuw@zR>mgu-SM1^ zr-IGsTjKcwo>%c~jB@88-v!u+z8N;5UxMdMY(k%cP3S+t^DS&bUk#hkFUNBZHllBi z&F9Bs) zNF`rmB@90Nh*o0k45A_{>{NN+cY_xFI*T$Q@nc%_a*elL1i#=*9Grv%q$;t4jrm&B ziL8kMj2|zKDIU`;0{KiU-7~(h1_ou zE`uZgP2pZU`V153ZWP>Q5z?1gN)ggIrH3Kh?<(AH6E4FkKdW%B)0pKhzQP(rekKR^ z$mO8X&#Qf9WoG_d<~0?W{~|Js+WfpCbG?Q`caVWp^Kl4iyYeF8*>?zzk(^&7xGEAa zC|rZ9pB#Yx1jh&NaRxoXB(`=TNp1XpPLP7YLQ#BSwsI{f1(6vj&fM zFal1Uw*G>^GZftS368xV z9$&}EI<4L^*|s7zhqqb1yTc~#^zZQR)P``of17`MAP}>fXl|4H?)k#p9}sf}!+uLK zze_{nJD9V{~hyES&c18%OR$=HcItidQwlf$sE{#(uya(=}6 z8G2iS@y|uV<1yc`{>8So+e22u58yw$fu`!;i6(deC3J^>yMITp7n8U7i~ZY_;kIMR zv~Uh;R+i~1^Wd6J=mb{Sl`L;RSBU>HiDyLdGHITRL@9^(6wPxx(Ok^%Zmo#?gorRc zc|{SqSFbL}lme7DgTp~C6C4hQ!oU3-q5o7?%Yf%{1;Sh;YD$0DC7DE)G{Z)w4N5vX z6#@ryaEVN(k)3Zb`U7bsS$%F))JRyItXMti^0^K7;a>=`KP9n@+m739DD26dFN~&8HX%xgG3O$oX9qnbU|2BfdZy?zxIwOx0o`q7=;f0ht=F3U5nz1;0kMPk*CIJiXGof{e>D*q_t$F#chSRDi8 zuimkikkTny^n4a&)ciG4ly*V_3TVNiX!Lt-uxYo?%O`eT-6X?s~-o}z07 zd$d+}A**9_{h}+=K_LR3U_wV zh258?$`Xed|7t`K#{UujQ90gyki`~G_I{eh*kvcMuZDwqb%y7Q=>B?$ z76JSp_n*+Zp7bB{pNzA0O(pAelEv`+W0kE>>76eLKR8B>p~X3*3#GXC4B^rl1jji3 zIB8E?__SUQV;d8=WXw-UX7=W(#g>H;nISjREd%w>)B4Y3{k$PSZkw5l#CWAEG&He+ z13QZR1|A8>Y^vOa)0&7qqGONj{-=Sl*?ts$7UsEK$$ylMdT79!W$?8mB4d)FHWdlp$%)o70F~rx14|) z{Q9TDgiBdB@3oLicIF~6q}&Ltpvus;uEi-{P(mCH1P7*?ml0QVtj~h5DYs?wp;} zV7u7FQ8D4O*iE{lFz3<7tw%|&8{GR(*_+Zkx9HkdIC7Q{3oTfKm;Xhyzdt$Nr_ z!Megl)hn(U*Zoi^zKRs{GMHH^jDP6eSdK9063O`QQrrJ!dw${I5E6jrCp32@gLf)M zR}&*%JTqHa|C-*z<>+eY4_s{<7CHv#uL;H0R)6XK2x>)@_WM5&K3zksc+t%qq}Ux-jNdeR2wP73pS!sJyvTe&cGv|}w$@cC{4zw~{f{RRT& z?LAuy;6&dQb|r!{wdOK)h8?qwSvWg=M{6x41J>cdPU^+M5fN)TtHu4_6V}|s3YPdw^aeJIAcs7n7Qt5| zn4RVLS%rBsVZQCZt@pL1VSc3>n9~&IEr7XXjMuZI&+E|}-sa|sQBYn^V!ZIX!lhfK z_8!#U)1x=XMO5XWfjM7e1!6OGRmkZhpg;I>#Dvbm3KWgo1dS5VDD~*obQTTMNd6~q z`O(S3lG_EBGH@yP=mmHdmx0T=N24q2yRu?%hhR_v29+MYTra}Fs_!==E_YVn8~$4; zyHns+0k_(t*YVBO_@Hh5m@jJKyQFXpg=;-}OJ9+~J8I#(rEndE>pgmTUy;HsE&N+4 z+(6+*kKXB5r10I}5t{Fj!c7!z_UKiAmY2Gq)t2lddHvTY&19IxclKm$fjES4^n&_ijV6V-O~_)Rj`#qx{HqepW$3RC?t`eLp8TRI{VW${&f6kIh$R^$I zxjmZU=HQmy?-^~goGT%V?eD`|lcgcR6g%v!>RO8R9|i02z5ufX2n-_4Cw$rzIiC6;;3s|t?O~A zYh~26a*tjl8L}+&%A{Mvh1pR@`w5bQ0fPAjduR{gFGaojTTT*QJt1|kg1T4f(d#M0 zy1A`MT~2o=kNqt~1n$jnHx=)Uin%v#2lKgw`J92zA@5^esVr0W$$-k({knr!*7(b% za&RDnEaSJ;OTlh9*D*BRTi9d-@db<^j@9`+O2Katk-1bpZgJJClq$zvgAe2%*r@I; z#(Qiy^u2qYup!cWYf)MQov&3Im6D?@c%o!Hi+vDw{Y?o@N1rxSOU6dupqwfb#YZ1T zWaQr9Gg|Ni@%ZRLMnPsdGT8Bkj&2?@FWmQA|{M!i3>%paQ7j zSunIBe@zWTkY`0A$`5%n5RX1|2~hdk`2HP~BOdQWz9kca9r$%N(vmW7k#BfglaFNx zgJsrdK5n#ESkl4pcjjj&#Pq;MRqv4aM3L+tnO{H`BADbnp`= zeUX#C&`DqHq<`t8&oJqgkH16ooNfH)&igZ+^jS{&Y$yF)Cw;O>D;@WNYeVQNNYf?q zW(#9O@I!+?ps)C|+PUjdKl+Lr1PyOj7&-Z6ls}Y%?G0Sye^B#3#E;5x590&EJRbR( zgf-`jz0K!`!Pj4rudua$Va~N71WPk%mEHvMAx}A4qFyk4vPn~Zr{TAbHf&O_X5|SNt+arpli!-jJ0nZ)EexsPujDu(VRZHRBJjd5iPL4*+4V=+mN>n z?7MAfzc#$u%l=leZ=?x&>EADx5~{~MZYgaucp=i4;3X&hqLZ!|y``>|opjAfSDo}f zP1%)?zfEMva&J2D{^g|q?WF(Xq_c35{`wWow7yp^1tz_#H*z<6z2H>5LMsifFuajG zXK4Pzk-sbwD(xLyi413sqn5~9;`g$tn{DMCklpE&T`AZZIeTkmbWHsB(w1ku8=X}x zaTkxZ!)qZ+yj-PC{)&ggEymXp*7ufb64(>%JKIM|+aobQq8H-FgceHtvVG{+j`zxk z62FC|;7KSd{Mo1YQ915uepHY9t7tF#k*0@z&)%6r_b7i(xTmv@2AI+)%bmCr{h+JJ zo6;!ZwQXjSL+&twmTP{a>h)%=IXnYs3Y#KTuO}H?QiS4;(X78D5V{%&4O9zbL}&xG zI7%z~H7w3GhyMnm&R~WRsi*zgKxO1s=vl8{IT72ea(Y(3g08h;$Q`I_4_lwUZr!if z;0x7HC)9{&zmA?3@7U8ml%m^q{Aw9t|DOR~V*hO$!*8GCZ_xFMZ4XPp7yQdSynF)9 z>ByZR;{-NNnWj8}?%~Lf_?vW~$+6IEZ{frV-Vtb79|ebpynQ{1VNjC3Vi=>LDWg-^ zNv`e%^KcOeKhbXF^Sij56aGWl+YAW(9J*ENYaI2VvR9hcY8-{|?xkrHywXr<5r68f zjs5|MjPs`axwMGyTJ_OC=?}L-Kg-_MNf;9ijMcr;B80Xtjoy#!DQNd3pLri{to>u2j3izfyoFq*7X9x-;o87QQgDNZtra6De;1iP$j@q;?!3r63Wa?kq~CW z`g?U{W}=dkQ%OVXP&W5BmC2Q+^0?Ym7T3TdWib+9F&nBOd27^ywwp4Jtc&bL&n-hK)z!0YL{)` z8dZsmIxu4r*0F-yK(X2_FQ9B9m}PGWMeD6}l!4O_vVfL@Zzp+)c2MzfnApQXWZ$b) zgJ&V;-tw4=BwDq)v?w@a0~<9w#3b{6(Ye29`7JeZYat;f?sU~}!iKHkN2s^#NSC75 zz!_<8S{_uk9ach7@zZTQ{Laq8Z!|E=gA9Lx8xdk7#tbIfb|uZ6t^{48v8zPF@6EQW zXws}MPO?QR*_KMdDWPy|V*+fpCmho#)}ChAKIM9pG}R{Rfi;ZkS=I)%4T;b1R7iY* z>MciT>P1{j*`zpZ*rO}LZH);eF;a_o1YMHeoxMvoLEj7IX86fAg+u$MO^KOk)k{(u zW3%8numwJ*)9%Jp^lhtBmp0y8t7 z_9d>%tDwiM^Rztof#)>ml+&qEDb)w*ey+5)9rhHba12E4Zv)Zv4%H>3rSJQy%~ z=Mi=_0xpnS<+?!bHJxdn?Mw$Sqe?Iw8kvr%ztNQbHH56~9Wjf%^SkJ01KZDXD1r7) z!q}&l{Ys-AJmt19Y4(^1G~)*(IE2L@t=e{whOi>u<_>UlpJn!-E^xMfsTnUz=wLDM z3!Y9ifBW9_zLnswE^_hSH`KM%KrZTiX^PtPzET~QZpwZwiEBl0OJ`! zpmb>mZUb(xy2K$}&FNt^E7%Scte$qj3Wvg@ArRp$yCEoyK>?9Ch9Dd4X-U4apXH!a z>_F9Y!WHex`%3!VZHBZjv|=o`QCKeChnr%32283r%g(lCjTvZ-LG!2e=&Luhk1w0= zRdrHRP?nD^cp+vB{_ZxnWw!+aJhTN4aM}X<(%OP&6Sly<4{gD7E^^D=7D#oWEr{V- z5nR)a^xROHmXj?Y4(V!s5mvK;Z9&26X$!1ytSu1XExRo!j6ngBIJO`g>{&^^vRxve zmg|>eBCpr&+NIrx{eL-V;bm`4hm-Wq#XJxWdqf#CQ=VIiZxQpVG3{!B~r63=3Pp$RD#$Iu+3iRE(R`XNuFPa3(;C)5{3)=lXb?Iyu1_R`)Zn zBwD+qGPN#s95`ftC{3k4pRgsS`0>x$&A`Gg2ZKPnPqH+E*8r0|q!sLycCc0O3ewMqo1|KV!=^Yw$XOTL%q!>>U1ufXO-h{V>nK zIsEQyAH6ta5~(qjYP{L+?OWcBq@~oYJAxUAn})fqM3C^Z_z{k6nNjAH2ufBW2uxNY2rjiUVCJTsIi)mI_GtW-#*v@s5oFzi zs}lSkn^P)*z7QK?%V~enD`3+ceJ%?LF0&MyQ_4b4kxJ+f<}vOM^(X4Wz;~Tf`la%n z2%;TO?ZI~gTZrDPuPdCG!`mE23V*N5n!Q0B#<0FItvxs zpqe&wN+iBO^;S%r;Sq6#eV2#>K8uQj>lGr7Bt}LjXm-q;QsJ7l#srdaSvY-HHrU^X zax?t=T&kUpY_k&7k&X2^HaZ|`+a21T%;g>iUP-%Sg6-~Ld?I5`yMEqny9gF3Fb=mc zm>`UCz|6GWFJnw}@iMesf`mr#qZvGbzgR_F_O_db%C^g2sTBM~Q;^!&cKJQlcCl4A z!e+U*-7Mr3DMe!VU&OC5{3bp$@O~q*%s~mfA9(>{LW{d`z*&EM3fXo2@!!ycODL1F zbU=xAU2VwnV71za7GSqUi7(;7_=MQ?H=BY)Gs2;ngTnP83e`X`DAl_K5mC`l5bzJW z#Nyf{7GmEvf^J?~#J+vN+P62r1EY;g#REe?0Tpi8g>WReN(*abEdSoX!N(SitcB_2 zfLmTeD3$At2|+J=G~eT#wiqBdt%o2( zRkLNl-ysQ~{vhqyuP8rfehph~gHHhzoya5bsqhUNVv}^76<>FWI zHQB{z9vErkF$>_{a!mkZ%r0f=voKK>7?QMRRH1oZ20c5b>Crie%Y+`w76r{Y2v$K) zo#vVFU4C*7LdyxuImQswOfk+uWELk6vHw-+wDfQeg1K11&vA%8x8vzM9E&{|j?$lGM2TDbraP38MdER&JzM%x}BXc2PcDyfY#~Zc>Z3@Cm z>aV3s#)+(leZ9NJa}=@3>W_ubFA;h>{z(SZla`aP_vKFIUs3c!8AakLkGzjc9FZur za6TRAy5m%LKK)oyhxv3-DYQyzg7BI)!L~^eM5;|zWK+nm**>Bs*;mz>GR~+IHfPic z6BFrZmy$9q6Ye8BbyjR<*Qv(+=*RifP_7(zj>|D-cPb7d#_j~8fJO>co3tf@A(S&| z6rGFgj$Jb_e5iU{Gq{{ImLu2%N1Gtw zJzMq0^o>njjrn0hs}&R)l2#0`mAkKjJ)axj)g>;UQCyBs+3b*4>bOevr5yYaSWxIN8=IInC3t#cA$SToM?NEmCSiBLS&T^moDX;5X3%tm`<`=xtAnPFHUhRG1J=Uj z2y4-Dg!Rd#g+={iJCOP0WV0*{|3hqUZ7=anm@hGp-;15;;;BLIH06@dN4~4Yp6W|> z817mj=hKD%)pkZYxDd)E@WTAUO)4lZ9pnlH7e;l)d zoQMAeKXo3SKVhEYADDR5d3e6VJp3E_Lo^Q`gMoQ?fx&tBkD!RNh>mi7LA3Yc06)+njW1ixK8L%bbH~A z5;W%u_{rXh>O}Z1KiRKoIbk{H3IsJ%jB^E<#jRg!byo_}UuS}qP$uYj<#+hC_GjW? z5lHK`jA4&<=L#(Rl~7LF1{0P^kcokj)X7X3D_a;$I567I5eTG6_tvED>DnoIB_JWc zRRA&Go;h}xdZ0|?1?LDPS13~#=aF+DRJMWtB-?pk47u2mEqkwWyA-Z0XJZTw8Q+MR$0@_Rq29 z_0)6eJ5u}e)&gN19*f$cBX%PC zIMPJ!u(s8+Xi`3i&1DZm-l7PLk|q}A{76(ZNfSvCnpo1INoXl#TuXf)P2ac)<#+_Xb#+S#4) zO3Q-B?uGD>T%60LUgE?DbY55`ldYA}GB5}}#z|VNu7f8fZ2YR=HzCoxIIUMse=B-b zu8gS$dnhX4TiyEt>mlE(Q9adUJ)GpFqo|X-dmvIsMON`mxR7_(N{#tA6fl1nCkzk| zWK0F|Lo{8puNVYrzT)Zz6S*mz2R^4ZR22UYh4?pQhrw;cUsX!@R7&EnKMbC}1E#(Y z>Msp{k!V)nrEFMf!qxRFUSC;eu@PcKekwJ*C=y9fYa%{FQwS={M0QgrvXz`LGQuCJ zXFu;OgK99}>O#ev4*uVfsrSRxP~B=s4J|w+q4wceSL}AljLj;6Oc6l+`6+%a>$oes zj(S)}L+W@rs}9a7-OcjlU@ySzYiJ#Eqaob9$J4k{46Ulc)66r2N$Kq$xdvfVbDec`X>QCb%Bpl=76)a4!V_nU>`M zsx8mW^wU}jXWG~>MuZ%%!K@VPl|!Wf3Hw(H9>8XIrU_?L2M>WW!N8eJQ)$8um@pA? zaA#=YenjeZv8oDVbL6{+w6yAa_;x~FXqq<3g|YC|u$x4`*ow!TBpwkx3x6CIUie^`jKL`f zw-OLwkk@}Syhc14Ozq0HO%MHY#9ImJ5bQm{?x-r;y|#7lD!@QcKwq|SDrZ+Sr);Nf zuTeZ;)g_RJIE6+`n7(8fjJ~=kK!06NS5=zBkD~E4;cN=UPb%>H-}V)jUE6lf-+qqMw9xCq(n zS#Pi|TSyRa!|Um5oH*75v}r}5;*M>6;~;MPJxK!PR0qMY%A`HPPwWktKAnL?u-}TY z33|BWYM?p3xnz*vhM{X3JjVvNVaUIY@Aj+xBjaGd*6^DWd40B+UJ~dWx=v zgq))5LxM3=2KrYrIQxBq?|PH`mL?|q{U?3|b^Z^NF+P(FIb$=%AET$;TS$lkjzvNg zFCxQWKgl2af0c|08Dv0tXtxll(YqfyYxJ}?w1evz`!#!H5TzHc(hnQ-SqMCULQbi{ zwf!7T-^gUX+#u)W%6z$L_DiY1?p=;ggd&7qL$}mUtcL_yJZ;~EMwjcuO*B&1Ui39Y zm--v3NtK2wQWfevydw~#7Q-_`gu{_O*xKQK{K0Nk*MK0_iwLqGpCZ00%ni#%jX$^+ zG-IN1cnpdU1_$FCfXMN7#?#syt>KSCgAL&@`&E!-PnTBkI!;M>pwI79Vy7S>#2#6e z<_m(@eEYphy*bhgYKO<7P9?cOte`5kDvpdJr9S?Ur(+P<2Mnk>^qVdCW$9gIi#_e8 zY_S&x)B&X$K}qtViRhzJ#rTLDCX^5S^)c|k$JE9&M^=UK+1MF7ZvZ)m__8{tKBj?} zt0!O5SAQH#`;+Km8185Gb!4Q8__G-4BqLFQGIC9Gj(pnt;*6{}=NIN4_j&S+MHD>A z@Cbagp)G8bByNgk-iSN70gg)L3BjM)PcZSIb{M4huNm~-D{v{dU?zV zr1Znrvu88f6P*zur5v0LH#8pAiL^dsiGEm!Ce6=e(0q$S^KS~#ylax?y}F{Ao;>Bp z&tgO~XHwF!Xcu7vm=HW-seV*N4Le)+UIJYR9tt}f#s!;wH|aK^!S2YQ+gg)pYZ_BB zZOR`A;%I+W(nB`yU+If8UPw4J_>o z60{%MJT$;{5WR)@3d7yDHbuWmBjALp!(MCUH9CRS@j)q3YRvGVPES^&?Jgb>e zjzY|XN#f$~N{S~|x6*h<@6vci@6vci@6vci@6vci??ODIy*1hfLWY8uWYNjtpvPT`G3fP~V5Bxc10N>G-S-zV= z!|o~kALs)ACeYxRp$Sirs+8b;daTe4SR{q{FVmQ_P1Z4o-3Ir)Qn=$no5H;B1tL(H zmXOc|0W6my;F1gii2sG{@c&Q>f83~37=J|^V-*h9f)~+i6yQD!rI7zs8u_Kb9e3~) z#=TFNZgGF9815{T!u{9TxSy8MX4inxk+I`W3BDhwE>TA-L#Mx~u7776!^|mcuSjF7 zdfug;JlF-V$HaL3axq@BPzw92(%3IW8^z5@h4o}C&_EkyNDJJaQQXL|TnhcgY4n%I z#^5HV!uS($;7@eA!k^_*_+OiYf0w$0tDp+w?+fC#oxV~`cUUNe{Pk(%m%_&23aY}m zkB{O0YBAhdD24lt%LR8_eN`Cuff(-pD26)=rEtG#x#0d-7r0M|;r?1N+*v4v`z_hH zUzE|Ou45-b=O=7?FadLE1?~GpAc5A(U@~2`R+dX4e_IN9>ibWD`$OuBq2pFxY#k(| zU)nK=`|Ds{0(Y(eVER_(|IzIe*QjbB@4CKR>)}*of4IbxEFg1mrQnVT*D(G|-TPSv zuIpJ`=O%DHG{BW-Dg91hJE>c2;{^=1ccrk^KD0}GpX`k9K5O40fXTmFWD#AY;$g%BZ zje|nFksJpF|4g?%F14nXPSEC7iJ|_lVyLrF3iZEcpe}P0j9Vr1JtY}H>7KWm#JZBv zEZ0{#hk?xt-gr!tVttBMsf8L&*s?D9INc$``7ziwz`QJjGoQ$-6E-abkKufQl;jRQ z&f>%(XlWg(aws1w$1kaJ4eu>1?BE_J?CIJC*I@L@Wf)@JTIIgM{)z-&l6?t#*rlN7 zfnl?@;cVGcQ=5(}yIw9~x5;%_P{Ji$X3un3bv?KqFQ!&&{k(R~uk?9SZfM9lvf9v! z-W|aS0WqJrW@YoESp)A966h~P(6J!)2aqvPZRjUsRq8o$VUMXRK(;@cZ1S0z4cj>e zJr}Q;pL-jZH45N{l()0$mBboT6r9xO=5F_D2xlJwN^@}yGaI!H-yKl{USUKi%xW|+ zjo$EkBRM6Q)c~`uSByH>BXL&^y}d$p2pZtU*8XQ?ul<)M4#~=Y zX%atsrj`bWWYwR)W6ghP;kH;VbvFOuZpFL63f$)-cb;HBk6wO)dw$IC?2>TL58E>C z`Jp0EpOKF*u%A`5(?_m9~3Oem6gkNonTWUyZQ-O>}4f7F&|Lfiq9 zU%m^HT3)^jvd(uw+W8*Q8Saz16?TUEq!^_x+9!28f0cbw47C*7Cv~^J;yx(`K8o#= z!oDrpC&d?LpA^d{_eo7+zj6awduezw*Ggp^hYJ`zTm%Pu29UD?d>ibQ0BwTWwDEpL zW4mpL1mREnw1(De4fd{i#W9=xq+FLEd%=x>TU+&j+T@SSpFh7B%a9T+s&A6!YDj3Y z=)DweNc^$#@OB_A^@<_MlCKDrIP_0es2Z&;QM5VwtQ36-J%8%e-{sYQ*i4jq^^Ck) z35-d-V)V5%E`vk7LlpbvdW8bWjeB3u0|#;Co8jjV@U48*KES!RHtXy7QX24mUl>V2 z^&=fgs#O~p?~iw0j(1+7YuRc?0WjbXsB9)8!P3*-g#`IB`%6$d6;FRn0w7|OX;b8b zi+&gj5!+<2_{nWDEI3fD=_e+^GzJ`Eb!Y;+ar{PQcn64P>bvk(BE|8oB;2jrGS>hF^vJr}}uy5OR3O4};twc0BQa87i-L z?CE|%+m3{(*e@vhuKNY~lW@jRCPdICa1Yy?a9)_^e!&^|jKP^`;H-pAt&9*6e3&g+ z1t8oUT6i*dub2&kgfRy&9)%8ZpN!x#v97pGj=@;?Kv+)O1-508jRDj^_Sey0;hw=5 zEbJK+y0~X>r7^bR7yulzGxnh@k;P->vDZ(^Px2P-9Ts2s!!Q{_qA=on2J_%N92Q=< z+Sn9E(wt*^2LEmNt$PNyAV0nT@=6YWM^*&^PG^skE0T*cs(W1je~kQzF@ zvUb+?16H!Vw7mN8Y6Qh79!6+bQDGy1Pb*;)u^mXlCL${L@I2&d%3t^pf|qiGF1o5N zn-KNCAD+hBYZj&#pob|1KLn z0>RM3bX$7L-dxD%amuH^srtXVhPj-!fe{Wib*eR!4d+HK*w#sb;F$U?%5?~eti}(Q zsoXi|_k_ruOKBqaAtXfZd!*#ffG=g)q;6*uSR!BgWeFeK)Q@OYfzU<%aj~0x3BM78 zf=43n&kn>W!qXhTukPzIDNZ>xHE<5al)v38_;Ln-2G7=58{Y(kA=bs($ zryNvKQ%9XH5ARMT&<{{0!5JN`PEp0|T&ncz8ZWUP#VW*4i&3*&@aM!!40Z}P_o4y~ zmxvhcxMGvAf?bHFwA;mtct(()u{G_8(|NUH%S#2vz#k^iTCzlZTkJr-M_kO&wc=Q-yT! z9(4@TGBD=+aTqueY_owd1ZVkJwdxM40Th-d(xAA@0 zgEhu5a+mtZ+RQlIDdPt9k#(8zGaWMWCSub#m%#4+&5Y7vv3e}k1cNMhKJB2 z8*PVsh>Lr&=#Dz}Ro*Aw1nK@Z=*DHH3A*bGPX$aZoUChH%LqH#_k8?*9hS(zZ)hp-yD9{jf#0>^OBcU=afK>5ornxJv@et> zBVyRl7WjP$v=9PdM>Iq~Q=AaUfc?Q5CC|eJu8_sx>1;v0wE^rFm$`8n1|ZGp@!9h@ zX3#7xITq;H;L?eUGE72A?wlpA{bCak@|2qG*QT$7#Y9*DsW0GB1BrtcGYM!S&Ed5| z<66_%BU%TUJ!-V8QVc=w;6N>^5pG#jrA+-~8G_z{W=FWK1l*Pbmy=Lga9bR=1pCw6 z_v%MOO?*vfoM3@kv*u=EjBi?sM)Fv|%atSqxWqOhBq z>7Qw%Wg*x)rg9cz8qt0y{v_45K;UXQm9ZfKUQG zPv|nwW=NKIp(3Nv#z{5vO3*p=1~DjBZxBX8y}^1}Cb@(cGtF$*Y;N90doy4|{BZ#Q z>aUJu;Lq|Ly<4ZVSF7O!l8natFaYV3cml=YjEa3I3K}nOq9^M2a#|X~z z$CzN`h&80QWW!kAPGgziCH!L$haNABmmsd;5Qn^etBAz=w1Y8LKI0CJ@&IQlMbPiH z6O?r{6ZjIYpfgphk*{LOra;Y-i5Q%h&y&5wxIH^CE{0nsGuq&m<|PybYJ&4pDMc}I zAM20Ru}cjJ8M~zAZd7+mpng1_1OqY9G@~7vTGalgJ(4v?;F-mK?K`s=kDDB&n|IE=&4h16^T%^C)-&zb=ow5#rl%bO*+9QE7bks;}~ zGt5iGWkN~z-PwGU9^5@YxP`;2)cL`!k}t_e_WhVa?Y8fiC3^P#vS$f>KLaFykI^~I zuW&YCCP+#5{VXgKR9v{^0=^zZrR9@R70*)EMrNVx@a!Z<-_2h)$DgRbAqu%CGGkEE zc7=SEEOP)dv+r-yDVx4uc)`A32B_Niw+vXpALA)7MP!jC!Rf*}_5EEDSB>NA_ht3{ zNs0Hz`u?yBYuGLff@a?@f@a?@g4Vvj;R-spe@#|s+{?~~liM<`Q{TT#xFr+?q)FeO zsVKPz;L_-)`u=4_(iM0n|FfF75jgj!bS%%lKSzG1@23q#pl4%4sU@?`_(>E+$4@kn zHqJ!R@zV%x=vHW8X&Wj7hIZo;k>7i{n!hyw#7?zGzFTO6+V)BjluYNA43;e0prWJ= z72`%5Dz-iyzM{?esn38F{Nbj-hSF5E977f2--#W$iWrTbV%5QmM0Jhq>I$(ow4pGr z%AQaTaGb=7vMp^3o(*q@KT&^{Ba1W%UD(hVagZX26HA`vC5Wp!_!gFUXhWqtrVW(< z2`wZvKtlfb2?jn=G5X`xq|v7PpQB=(9kjNL>tsV?xMhwl+ThlWqU8GDY4lSzG=^lR z#M&ddECT0%uw!}J&>Z=R4Xu0sRq;FonaBKpGzs-E9eOhf^`3Tm{em%nvsj`OWNW=(6z9I=NbGd^=jfVq6bRRGv&76Sa$-;^87aW_X0sqOvY! z$U3Qh;XF^v&hxZo(?0FkWYH_glq~cxC8)y0| zLK?1vu5X09NB2nCs~*}bS;S1LNyhv${VCpVL|=)YumZArX?)!ruZlUN`A<2|6~EEi zi5pdxl!a>TAKE1 zx3-!$9FcZ@Miwy7`>;6+8|zZgiZ)1e<5GqTS?gLahg(T$SOrtK6LE}}+GbA%*p1qN zrsY;9wX{mtbn^wBJN&1ci;;g&g9P#zSArQ7*o;*rNLi(f&uWa4LeOH(1dkDGIBNU+O^ z9SacO{>$U$+nxMrsUZ3!;MYjCz_({w`p(BnUkFm_RY$wp>x|i ze#+WGops|p!=p86cmXi)>IV$d_SK zDHBArRzW|?CoB~hU?&mGmIzEZ=vC!z6Nh+nEeo2^Iw=Jy;Yo*j8skfo!4>y*y zWtUj~Ja!p%amP08Iz*^#8oxMiF(r<>zbNG8(gBDDMbouZgLaK73p>5@SDUoVM|T2} zmb`QTU81r^N|0jbUeB;|&pCGPltOlH-;|vj+pV2D!q_<;Euf+E+ceB*4+#yOlyt_W z9b~d;iV@uzx~bN;l~B28;1=_;!F*f{^QAU;YeEWJQ4+Qa7`C$dtbtnv4WFQZ_a(fi z_slu^= zZWXkF_Pw=%!aUao+6;~j9E_p4B5a^k>e#?I)(yqFcw=`2w@fxr&?>Gkvr_u9f^DE> zn_Y|R;031fqYbn`tPONEV%cni8KAbY=4gc%_>^xLU58 zKWt7j55N-`o%#|##Q|gc!cl1x!&9@uZAPW;Mm^4L%Kj^v+w3bVra06U$G8)*=|Pg2 zZwlu&b3mtEouDnG$8k` zkhFA@bDJ4xbSl&v&GZd(vHF zG?N1EnygEpWwU<2VLrokiB2@k=+ZXJFUC@5;i?NWQq+m6kka8oP$FUP_SR`s-VfofF^9*g5gtbp5rH z@0MPFUEQ&Boq9yEb4SJP+#0cV8J{tVPsvF^r`zZtk_}UQ&?`f@Q$SrfY*f($jW|+o z4m3I&i^DB9V(0qH0qe)yyMBgtt`p5;a42w0cqnj8bSN;ib2*@?-dVgFqq}~2wBLQ- zZ`K6XEW*z;Qbp}tF0xfc#*t5l2JOgaj6K#D_vHFu=j@S`v?nKa&WOYH7^exj! z9=h8#lqo4e!p_yb8#3nIxX04&Gx>PV`fJ>u+dt*ct>xIcPQH!Uxlh7eXlyaihDaGx zG?G(jI7HWTX5d)1=nPyrcrCTJH0jZ`pMYE4PQaZ`K0zs1J?0HUR6Eg|cAJc*@x00= znLw%3IUI5wIfF@6Q3?^t;awUJ$E?ZumAu8(6wy>`kwVcim@9=Gzb$jNZ5KP+CabBK zHj-M4It{_ADcLWh+a~8%^4OGtUR!gPfnI09cR%a49aK!tvt;1c)}UqLX9QnR1hM94 z$ETcg>q?I0;N_Gcbw45P*^-3c_Ar~2hIE*HwAiywep~vy-P(>l>*T|TJv*94q2PHt z=5;4^+D;Q>38AaWws+bMB$pUd!|Ka2*usY34Aa|*-n1Pt_H1obVC`A^N~q?BW3D}u zpE!FViO`-c&4k-*5}P-J1bfyAKgGe75=>qG9GEMm(7uTsh6S)QZ_yFr&|jl{BYCss zd>*Edh?ncHwbPA~YgL!e#9Q0*c@{kkwf%8AT5rdcEcDWX?|#NDv}YC{$3g3sUF^t& z9@h9zD(qDUA?Hk*|?9UeR*V5;Y*LCb$C;vt4 z+cC5c)h^B-vw-UkwCicgK|RBsiQR<+i>#1_PTS?i^sxFB=CoP+*1i&IyvsJ%zRB|q|C(ljL zE9|+Y(aVwkvbk@9R6*CP6l5WlmUiKWX@{d$ZC#aV2L#J4<&^ZqzUkiHx1;eWP0{Qk z=Nsbw8_qW*)=SrO>{}uK?O19f=FjZ;h7AB9;dg+>tOZkBvfy6nty8Q>dT#9(OnJUR zOuw9Oz{pJMM=;+q=J0vAVEq{8oruq!)?E`4+6oV6@Y+>DJ-6>m8X-6k=Gm16?t8Nt z6h&EF3u0)B0ZB7Bjh*Az%_Metb4wkut~y8+T1j;T7p^eG{k--osWKynwLsxTLH`0x zXUmknbawRGvaRh3Lk50r9lb34LX7~C+}lgP!PSV|rPMUq$t8vi^xC?3+2|S37nea= z^s^yeGwp?iN$yXS}e8DD@+NTp3e}u!6x*4D(LJ=jz>>urOQE%GfH~)a7Flm?{aKlCs#;p;Bg5XxN)qB=C~gorq6cnWPPbM`f8~{Xn-0YP@}KClZ8t)&|lKv>6;faFZCCISfu?SJVbt ztQ|ivj&)U$as=0*u{(kbZQ#=QfmU7x{lIxCeObYNU?i(TT|*kbP8zXnexRV|NUehn z%t9|M`VK(Sq8C4~OH@9PlBC+e-(xJCJU{UgM_{=z{3>!07u}m_>)CUz3o5bsz%mZH zZW0E@I!PiPK=;+zYH|-!^mXTPHtHH;%rN$?-N{_FZ$dcj8}XSf_N@kpL?GHeSXm?_hYs|A@I_-x#dUm48L=1`ap+)a+5Z zTy^82FtKkT1D#pMZW$PB#syssrzu+d2GxzMK@l(|2>;}iIAPx^2y5?oS93kLEYYHS zOS&%~cLZm?<2ISRcZ}DO_l}1k^WJe)W@xsDX=BE#mf0P~40Y-+DQ*aX#$AYUIMF+< zwdcL#nd7{7JifyEr4pU$9`d5^bd(hzKjhURac1Fn;+yqe7}n;!Fs;pdVO*Q{!aTgk zz3pYiN*Nf#r)2Q83{1jv-U}1kycb5cc`wXVe6&)-P~d033q!eA>N@1}$`T_7jY>n{ zu46A|{y;oRZatV4c9_~1;TFTEap0-Hp@)?#4GnmT<6FV^A+jbuHB_h`n9IKwT(a|? zLvwxh0Iu%MU)%^j6g8x(9$X_WH-nTOr3Gf$(xO4!r|q7kWp;5|P5~`yv~k6K@NRbb z)fh$TyQQ0f6mlp6d)rX7XNn@~bKUz*JDNV2q-pcwH2uKPgn&94Ou92gQlv0NyQe53 zJ-8)2Uq=t?rGYpI88q`x~DX4U5q9vRG6mya%j2+^2)V$?@#LAHpOY;{TfZ(>KSiI zkesakV;WNfJykWEt90$H-GUriy0drN7N_OZn0&S?CLbwOSUw-gp{YCjuzhiwehQjk zA5Ig}y08x{=ZdPmeK;_KEU^#W(X~Tyx=0Y{5;W1_7B=R>h{EFfcphEd>EL^c)AchE zl(l<17Sll~RG6rPGKlKl?(I~Zrqg3I%`HZg6e>*9ADOFflBWbE=C%U6)*WxstZS>F3^ub~@NvXm#9ko1Y z+O0TEzlhVcdoh}%RAHKqULG{Nt)+7c|D~hFnfo)yv7ufIe&Z%W`W2Nl)sLo5@PS zpQ0mM)!=tv7v_WN-ucM&LV}iX4k9&fpHKO4mZ~%E=Nb8^Y1mW6bB`94iRLWCSty10 zgDJ#;GjU&>fqN*213Sq9H=!4m!}&2<_9{jT3#DjzIFFWJftDv!4q%MVpKOc-SvBp$ zooG1$7qAzU%LPEI8SpRWQCxXsjg^=!MZ*JmG>pOh^140gfqPM(UWle<+gJieg7btZE~i1034W-=MD;?*=_8s2d$A1z%0+NOG$Xx&oc*Ep{fluGievhu;JM@l)^w7Rkx1Vl2&E^8UqXx;RGDf?_mDp~5ts zo=H>1TM4?i8f+4l__&PFiyr-iEo;G-ke0O{h6dw$*{b+lS@Ut^*^+#9$;WlkVf-d* zh?9`7Bx^n5NAzkKkyfo9ECE@%R`^cjDQliz5f*fsOM$&Log|ZjEiE`{&%S!Y6!m5R z$;*&27{l5WuiXKwqOihOy^dcJ+zF+fIskNy$IIGeVX+jrmG?QITaCIzrnR)c4`r)b z$Bo3Z6kLywzD6zhJ7{XvBjBmp`brH`n}!SNZyM0#Dd8^`zpgCz*0&I?ns+A$}C?|NLT#UY) za+`ynHI>u8#AvWp8$5ku%y0A!_D@;8)|7N(Noi_-vt_>Zc~g44=A`-k&Du8(n*LCo zYu%;bI+PyX4S!T$3&O2*gnL6A?o{A=rO4l@GHMOdAp08H9IQ$XY*h93fD=(Coxwa1 z+*cZY58wt@;14H+sEu0&pT)QSMl<*dK2<}v3{GG+;mpWeu-60C(f~Sk?Qb?gLdFw& z_|=h5ujJJh?l;yuVq^&i4-3(Rv^fsHjqk%A4F5pQo3b0S9?z`99kadzSx;cr&veQf zd=NCT5BkPI>%5txR@MCMxZ*5rhTR?KqgDcm-Z`>i- zhabmyQ{eb{1O41z<@cZderUsRkKm7;m-D&95P`zxZ+yOAT{2<#KJ;y-jU5UeH$;~v zEGf_03*X92d;p1(^wMP3)bivh{iesBTAnneXRxq;> z)5aqqJCdd#A^bm5$8&u;s=*3AyZxs8T{0oK3!*T6x0 zAHxU06+p$c(P#BXegwxer;i_bnF@;Y!&J=5`JbE}#Ba2T>_4PGDj&5E7}Q&vitYuX zAyLTc%`OG+MzT~sj(i#NRxb%_h8BjuGdz2#avZ5HRgWW`w3o=o7en~u8-B{Gi^Fm} z35;^266HuxX-wrf(oh;xJ&tG_ILyfM%*jt?Gc|G)fAu{4{&D;Jbo^c&QyDo%U-8{1>^sU9{(}eW6qc6;Jzg zX%Ufb4fd{i#W9=xq+B0;6+8;=0o>ZE2h=8iWd8j5z4SRrLf<6K)fjypnWFbnv@!Y` zek>0^1Kmr#`bWkqLM0CUlND-n^xtWy&Cxfd=u5Dw38>A{f61%;(56za{wc3^1Y=UK z-jG*uG}&q zKBcbh@tps%NUh)b#fBGsFM7D-BXz`mrw80$s6mWzmis8sads7CCJicNF zySKU(V*3*lr#Uppyw0Ou>tYRiNV=w3A{{brqWg1o_%ujbuUsD!>e&_HXRHn3e~$cb zt{3l@t(U<#NIP%IXlz^H``lQ|BMmM-Cq84fi^dQ#?xnt`kBBY9ZGxW+Zky=Kd8=@n zWU_6?0@{5VLM;e53Slt=8p?lASL-7>TR#!uy9EvE;8=DQ{nY?@xJH*VCPdyE89!db zxUIA9i~2qYmEh}ha>VzxP3WrB57;_zz3or-oDUT^&Uz8QCHildk>iZGTFCWBub}IK zKCt*_C8lIvSB!V7v$s9(DEj$#3dO?FxcG`kA-puz%{vykfgpD@^7$7ge$VY`&pV#1 zuqz;Fb#i-FE7|i-B`Yk_1g*|&$Evj@D{l0d-i+X~SHqfqz`$!*Td+NsoYP@Z0iP$Acc(V7IM|+M{kM%gI6s zS2F$nJcEAY=%1fFHfEwt9ct4|YjF-v)8Jw7pN%z=-IPPVc**(AY5InXTnB3-L1Ss$ zr5I;2oal5M@Tp36@lRX~wft`#|69-hwoRhCeTJ&*>zX6DH>={nPXU`Ff4zfcumqek zAe`Fvi|gfHr*9RwPw`d7b1%L{;8P3j0?==9JO}uVPF0sYUE$!Gw(E);cy~&C)lQbH z`5ux-dv~Sw&g%BA3AAgYaSvVDy@wtyjfxOL_t570jOl6HW@tsesk#f>bj@-Ha8uH+ zc5X^~bi+-F+hY*nZ>m&HOrCxWsT&RTmqw#c)pDcN##zzA1h3>9Q#q%epT_e3_qP7j z?X(C#Z&{?$IPZLa(O5s5v_@O$)^4rc=ADZxf#xn0gV)B9|7$&kR@?jsu02no+ryyN z{;tAR{CAJw-^L`vvOdPo?aa0ki?*duKwh~x={+?-MiPc4`GM=lYN0+%7vG>uhL@4t z<+hJW~TX*f5T8b7qd(_ou>aW}i1FiT4CX`oEckt?F2CJK2WLmk1 z#vp#6G|MM#S3!cv%j4+P&Dpy6_O>JK?Px+TRrFo76QX72Ba+0`Os2jr*G%v9oCN`x6>%&qR|g!$claNwz4-w;4?=u z8YBDR8t5JzBN_0SPn|tu_$d9Lf(A=7?svmlaihyPSzb!zq2k_=c(l+hs`Bwb=l&Gu zZpFD}ft2T`Be6Ql^BHV?qJ;qO_eQ3+ZF5}NC*$7M=jsD#bB1xlNt%>l;I?f6E4qSk zN5-vl-emmQwk7@vO~&adpv=!|^>2-Az1RW-Fnq(v8m*iSwQ>spA@xIOb+G`6m;EhZ;Zpj(_l z|G?{LohA?z_1}Z2Q_oLnzYIA$K%pS{&>-;sLud5p)EFo<#SGj@KF$MY{AxO+C{zPO(84ssa&kT7k7oQa_l0_EKP+{=ixE9E)Rwp#pmO{bYQtfDepIf` zs9c5j4vA`UBcaJ13BhXlLodUxXyE~{i@S)sD(Zw8fH?rF8j^L%Lo$3x(KK2A^w9I= zb{iV^m3A9C;B!@t*N)H8KEZ&a$%Sq7pB`}f8pi`zxyEfI62_0d1hzqyZh?dvJpKm| zehdX?4bt=NJ0A*AF~6%4VA~l`@HQOyD#yhOI+8*b8lq)IiS@m!kM;bDC5rVl$s2)K zZ@zM!WBp9J;CI14;VDYTZz`lHZO_A#l!mrh_$LtSF$rpD!$oAo5pscM#Nqd`1EnU2 zQhCEshp+>mZoW%M@4a@by+!*nRo`0AD)r*g0&$pC!thF8;>$s!)r!RWrRBUipsMP}b_NtpXgiHdu|8pZ z7_q*O7wc(sy7PJ-pfaxyzFNMrdHo?+2W{I67ko6<^Mtj-dHvoLG4{bffmrYVHuYj+ z(&UO`y^m7WB#JtOP4|TZ`j@IVuje34v7Uo4&9mR8XxxMZ2VouSd0H2m*EeZct`~0O zi1idw8;yYK)vKdsN*w5ZtPh-yejd@!h}hHdrRO(R{7)$_*5f81&ExeCy-bjzJzcA9 z)N}jcpQL%cHvx`Tp^8`^s2qA1mE${3v@MtPNbq7kPctai^Q-L}k#IjCPO+W`Kxkf% z8@y1n@){!)2WHQ>CiMYVMvDO_0gZo?KX5ru|D8))l=gHpQ{;giND>W)r!RW zfb&(wfOZ;uDGeyP+0_{1qbheP)+e;Jj`b^J4F``Qu$Jhp;V^ebui<=$rSRa2l&suHxI)^KREU^CC_=gyX!M^49=SWwqp9`l=4 zQ^B0}qs53C|Mw zmR!v|)PDrt@y%CaD98T8!ZEZ+*XGFRh2VG0{pFReK|Z5yfp{9MmXm3W9;zyG7kV+bKvQSx4!H* zTvh9m@zXILk{w@C?KX5rYYqr=OWx%$H+gB42Rco&<00 z(wHwZiu|D9Jy5a(v7>z>(VL`>_0&p4FOeWj(`TMX(^^DF^Jx5jW?1&fT#N9>_Yz)T z_D^T7MMO^LPmkJZaxd1?`f?E1T#Go0V*Sy9Sf9{G?S`O^_KgJE620rKFUM6*Ppg*9 zNbq7kPcyvvHLX!Z=GW2nWxwI7USDR@z`R?>`i?HCb{o2*SnvK|aYshwQ>OUe3hZ+= z1Frh{xF72S&Q}!!+IN0w3@BLx@yAD1?#9pS{a9aXEyA~J3W)VGKaov>pW{A&*C5dK zIc{>y0<*gkJz}8VN;m>9=b>G#?j}Kex@K3}p2%BSJN^O4-zV%sd&u!}g21jageQ0B zpSz`>-YiDC(cR-C@`Oh@Ysm4Ud=$ zPP5*I*N8uO8=f#&qm{&tbUtU58?=q44{olD>0M)YrJvz8sgtGap8#i);NJL9V73uB3dH1@2TNEGjxE!|KJP^K6i0UXk*cPUf6KGLJahyD)n ztiR03+^N>M@94tP5B*h4JoB#afi7`l>qtD?t=f3j6_*EvDLVQAf`7Ng+`C=Pssb9~ z`kj$Rs3@Y*8*nLBVHT=s7{r06h{o>X5(~QB>A2Ptuq(C$P0>wSszFX^hBqpp`GZHH zXejQEZb)j)_5z*Ho?vfW_C(CIEv^CRGGu3}nwre1t^tj?Z0Hyvr1C zkBp2?1w6muW>PmMHJs~Yl?@bi(rs#bzbbb{Fywjr7doaoYz%+TCZAp3s)s+yubjLm(hiFm z_t;&Gl%U&7B<{sQQ{1C`8tzexEH)g&EKz`acWWIde?F9Y0USQllh)I zjT`qRMSY>*j++xR-}B!8PqQCdavp*C9zBzBH+fari^&nsE?k<{4l07PsF{cUIH|Y>_8*AFZ0L44`~a`HTY%!ysN&rmxR3b8!~1c z9_xsD!HK7OcvS>1*M+BgiC#uK29u8DuX|?9j`21M@jM?tKxE0O5eav*WjCjr^oRHT z=)Y*V>VDwY1l91Kq>jcz_sDqYc%-)5Trz{<31AqI%t-te@P=C@iK|JtG5T? zbt~41X0ypnqLRxf&aG&dV-Qu><+PK%+AF#x(t|RWqnI|pk7@i6S;sVfh%7NJ_z*er zi;iMi=()n)Moia6ZMrqR)lY3==nB~5-ai@X$w?ilU0W8X*%$h-S#!XZzC z>ygk;gB!i4!QL+=ifR0)#f@p~Dc+G2^thwSCXO>Rro}-=8p(`l+!k(3!&libK=uj5 zw1kF?dPB`<#f<*T$F!v8it(?5m=^UfX$0s;tkI>OXzzw&T8vv& zHyh0_c>KveEDnqvfJD38sjnWTSEL6erj-%XdWF{I{!0;DugjefGf#6TbXcX*FI1Tk ziD~;%OsnQuX)8r2bPN8cE3!?l$k^9$_*-A7IoYtvA0yA1tx@@t(?~EMcQ-W^mgmR` zTF~I5x8Tq54c%My8&N2}t=bMW{Y>S0%PJg5`qE(LuT`U*9zv7Oe(f}BW$!rYXq7Im z9q5BW>`awE#*9u1{#uRM17&RV_Eza~`l$q;yUGFbOk{wB1D^MgmA=Z9^pF){UEd!% zTBYku14W$-HZ@&JfpMXOUndvq*hRiV<&mrLN=EFIc?iFdLLU&qVqKhzwv2`C5_(eRFqss zN6F5NoR=aaXDLTXcCyL_iaJSA(nZ2x;V@|qki`p=j9g`Ki}TU;uA@r!Ai{VYrG?rGJ+`rm5*)tR;4{YZO4#r8gtTIl%6={#fjFYbWZk#+I;QkVc zlY9yzPMW8nIO&$VagtlmjFYZ{5ho7{xVbdqB%joXlR>ZR#Oo@9mOJmS%?z`#g^h;x0O}$>oOpqg+JLvf6{Q|DXPvPJ@K{Z`a*I2)f zju#EFu+8pb)g|b5M>URa4%Q1f-lAawG%XngTFQ-sn5=Pue)ijl^%t7G9TJFx39T9R z#$fri`)fMUOX){(Mt+Gk8@;B9qaXJYmiG}UYl@^< z?VgwD=uVe7NYSrH4$H)x;8(LDbVOgx7ToKH%bwlE=a++ScU0rV!Dq(3IA|K?l<(Hx z-JnlDQl&xMRmKL6dxr+%UP5a|y{RJZ#e2Efz2n6_j@1z(si%q|@FFfyyJ~nB$;o6ORu9Mtb72X(PolF`KiO)`=K8NF;>svJw z=LFxD)Gz>dq;pV-agUy*4EEz5U9jUSd6vRAT5rCGXDOli-h3nOabW3azSoDM7*B}# zf;}v7!Sdjz(8PnEeiqB%r_0|rtbB?0gUD?lJnc(-ON6etp7!yx6ofx=!l~0o?^#Mm z6;B+4-m{bhXd3NYZ;5g=v*QLcXMaXHFBd`Q@Jbpr>Qog`Fs>cEPO9c2#|+HqBrghb zewL#9q}qAHdyxUMG-rQH%t>!t@C?hpko34neD80x&%?oR3A(5+ z*(xW2(b0f4(9S`<6X{(4xiY=aSO4~<(d5QLo&(Br<&Nfn(dWuX7_qRU84>^XT{ajC zj|^P4!NsfK5+NH_bHBo6_F1Gg^i+_30$1>sUT-SMu@GC~$O+nm#z!v}c2x1iy$oI~ zOn{~_AJ<^|g$Q_eOrTu9Xt#J&C5;+&s?u1P=xmKR+xbrNUT_ec5yrki*P9V?EYy9X z_XYAANqeu(b(iNqi42gAXN2uGT)Q(u*U2i^#-dJkFfR1O(0f|uT}V;a!?DnHvC2M- zb8$(H2K?^n9MngV&XrjBGvn`-4r! zR~wec<5n83BWB7(5g&Sei(Yn@#g2r!wqx)*5_jJXPnqzOMIsL-Hu57BUl5cZp>=8e zDDF$~5j~f-u@HdI6c&%Bi&=m1PT%Axdhu-0MuKOHFtt5Xd}*+|@x_9E?sC)>)LaM*yHp2RrWqYM6WEs zC-q`Ly;j0*4zyCvZzVr0N;}fRpm^l@!+|B*eo;5*Ra&?>@M}}vV6aT`Ucz9Vy`GR= zgxnK3V?i(%w;&kk2`>ur?ay z3<5nNY-g;t+h99Wza=%;lJe0T2B<8C0ZsGt#iEBn;>8m6T}MIhg$7H`M}1XR(;;zV z!5hhXlPHg>_C84B-r&B7^sOHQi(U-O_+wJXK%O9eMg1s`J;oi$F_0#Rh=CN~bPS}q z&j^ZvG+0MWk z0Qc}!xlj`fXoM85wKVMOkK#^!1YiB!dL{8AT8XxO)^CNwekMLjQUXXv)u ze(i=t*T-t^80i=vqr)IP6ZEc~sI%c1=sH!+wH5Ew;$Eb>^LhQ-9cPta?)W@!S5A+Wdr0imjCU_LwzJT?$g5~eXc4RlSbmWmCO*RZERNcr=KNE41%RR4O}8Vdc(k+2AacQ@uq=G$VWXEs_BqS zF*+7_8d$wcnc{bmzC~E0y@NH_V_ocM9{9b)K>nR^QbqH?X>s$w1;%gTj^;!>4=nIJ zP+sZN(d>mo9~o3R8T>KQGM$_Zx=V!YgE<*IE)cmps(3U6=^Ham23MnwK&at!Agp+k zLGv7RMVKvThC|M$86hV+YSXAMMmX$fM#w&zGs2*c;zH*;%ZrZH%n13#SeV$bZ`I8R ze~65er92~KAFH`}q>E7>6UM^gO$*(gt#}R=@7WR>0X!|N-la_OKan2QF|ik7B7Nu9 z+$UHG?}Qg*yywQ?orInnA0M6scJ$o1KZP?a7Q4KY6Dg8-PaSyRCp#4Tuy6T?KKGbxsPnnb68n?~JD>9Hx_aCmniSV>l)A#!41?jNbD? zBTpPFe4@;}6Fdp!2C4G-Gs~ zOC~aMmhyaZ$vEi^5Mw@R4v@v0PcA7R^>C=NOQOSp=aZdrDi!HnTzqbvTpIJqvyC{} z(QJz2PO@c{H?zh_do1RBlASQ-ljj87@2CZ$ktiG|F*9>p$emA` zr=ZKgEqCXW+=6bLr1_+)V9Y1a3%Hrk%2Dqsjgzj|#(Xm9b&WXH`QG#5WM}4+Zl_f< zpRA9JoTWUU^n0!H`DE0|jt0o$%_rH%DmyXG$0ao!cs|(~r)nd;%W*Pmb;0q$G}b3G z#g}o-G^Ayd(a@F^W6S7yQBoQ443o-;?~qhR>j*=~S=eGt9`FQXC}OyA{MIR=SFO&oEx&8a&AoVM^3666#lt?bA!@%aGrwR zGO{*~XFKvX!vRQ8xE`^2nqQ@fPd3u-ug2Qq`7}8At#h)U051-veP7LWvg<2bC!4;& zx+|`UF003pULb`ZVEm%Fbcyc*xS09LTn_CtF{<5Qd?ep$T=(YQ37V zQFS$QqBWzwdak{CO$pcQqRQ(vUe}AZ*YZoagZ&j(D>kXFR?X2`(LAx%dbz!NO$*oS z;>znafyQ38IFYMYMdiq@%E8zYQ#qUynvv|`oQ z>(a{WwYDCMQm@M@s}~zpSFaxN^?CwhF)Js~mv6 z;_Fl0_`9O=`m7u1rzwos#;)S#Tye1H#;C5_@(FdTZaiL7dEGYP4s+w-wUv!WHma^-{i7ADJ|13I zdA&9a)a&}n>cvLY)oZ|#sMigZ*K4Cdy>6_mUTjody#_6bdfilcy*3Wi>*mVp#YWZD zYx($kRTmd;sk~mBpk9a_n{xH4h#h2CWn3H*ts2M07u%aBZXLci-&%Ryq*4yv(880c z+bZicwyLhvhDB;dv7@?r-ClXUCh4)L>vczE^NR2s)a%a5>$O?1UUyYiFSe?# zUL%)4y%tqoug!z?y1TM^u~l{T8WmfwH)7_#W8AfX8Nus|skR0mtG2B>9t>8vHn0Wi zSzn}oL%*Nn=E9^_WdIoysh&5l8Y1fg*ghib0%MTiwT=$!cR1CLzl_x3+Q($BAN`B^ z@rQicS@|F}y=|61SAZppqh^gZm)_-;;Ig*EeB652A}tR+GIXPy$jX>~8vu9|OJZ3PeMO)zxCv+njk#l+8vNVAG>S}pK< zu~vFf^K-mM>5cBI9Gj3}CMC8UdEc}e2F4Wh|+ zez-`uAUV#FX6Kr5$;3H6zaQrw3`CM866g2~ew;JUK*O7gX*|)j&j^o@z0q+u; zb+O_cpVW_YL1)EDv$y^~#X0thJE@Zw>{5<%epf91 z`U(~|LBS>9+)RzuNRU(uxUV@w9alc_WqI8I$+VUjSgNvaFuVql{=$=5Gy*r6_u58J z3Gb40o5*)8p*f@e7~6e@Q#F%VA_;!#uBqmAjiIjT@O_OnJn!Zn*~Wc65`OGjRBwIy zsy5#h*Nlvd&UB>FaJ#hEa7)fhV_eXVNc6gJY|L?ycp*i5UT;I&1kRsN6hXz0{%g*pkw2Sk>9!!8<}ykynd0{h*>p(Z=Iq7 z2#${$!Lg&wfgIlK;x>`s_*ft~@~<7-O60S?9v?slN4Ay;I`7@EjlCOo+};gp==CBk zqkjTZDCd_6Mc>_AE5VW5fPy2rHI9R$O_1aVegJ#Hkt^^0qK=Xs6NjW19AjX4*h_s+`0Xvhk-iUTj*A-E z|Ku?^ZTE{1i6hYqj=rOq!&E#AiEB=B&A;L+hKe5;Ah~r44NlY)Cq}wj_5*!_b-+`lG|Rri4nO6R zF*_m{{=Dlp{4Q^9|EcbpY_rS_<0q)4suXHpmW%beabsp|K{Jn2Q}4xd47OYX_C7xq3rMNv7pr!H>CDjQYzm~@KY zXYLMTsu#^Tdse)^_-U$FWzW{O3)Jfwsh9bTEv{Z<6nVxr)%4td##Zfq)MqR2lkEe( zKUZ0wuu*k=vW;0YW})(RRNcO^=PR$*j6l6!sH|RWR9(HM$JHxq^}<*~@8aDxMcQ)R zfb z%IU?h$Moj<9wW0otYPVTtEsk5qsVjYnJ_Nq+~?R?YbtPu3$9nxV2t-7HqQ(j-r`>X zRC6YDq>H8_P3fX%Z!`n9!=^aL2suX^PLD^_)PzlScJX`Eud&t#kDRS3U8m0`Z-i^E z*DXx#OMUYS_erMMg&GB4+;OOW)Y?>W%9P4XC>D{{{bJhD>z~PvI3d;85lM&ai2G8F z9s7yfRlraBqY^)17dT%9cI+qY0`-fvtFhKWd#*tJ)Y_14ZTpkPU~98Grkd*NM=zhQ z=j__zdo(JV^`DLP4c4%fRo`P;bA4TpX=C0)LxWqCF7Azbu>p*|XmaFmfZzBmZ!hIxNs|4B{m>=mtLTQ{<<4>YJ8TnWItCWzF1ZPfDXb}d(f<+o({Sk&^L?O7J5pzgE~f9h;{E&g6jtu2k>V2|l7Sgdgx$6tz; zXl+5y{*LxRF1=;3dGt(tr~|Y3KafXnt*a~kKtcQq{4*OmxmG7Pvc}0FsI*%694Iyi z&_cS?1({tDnVc>bek0ak`sQ3Y$+A*yDQ*I%xyLmA(qmJPX=5(I^p%^c$Mlg+;BBs~ zTPcN~Q&6L+V?&Q=6L$Xl@4uaza<{fOEvtd9Rl3&qM&GW;F{E2LGj?12m7&DuNTjK@ zyfQL8({mW!!N)s~hG%*VOSLv+s1b}p*_I@Qh_Dly7y#|E|8B&{>WTz+{xBqHv1P;@ z*_YL%U(i^`R4sX3cez{f1N64u)6hK&Cy^F$E^!}LzRN6H7;HJ6eA{` znNJk9p;o^%H_*_zUOv6AJe{3SOOEN9`BYu%Q|M8_P#md*j$CwyXZH&kWam>YVMi58 z=d$yu4(VLYd~#dkkRsWWCLKwYj-*OQR)wFq9XG(wKPlT9omP|(XW@@u{+C-$32_qT z(C5F|S>tcFKE8d~wWkF49Qg@*{+pdN{$^*5zu9TyZ?~Rn7rsI6ypz%FM_4x1!1VcV zKId}j%)DLE=TtT{U7SHP9&{txdfx7ot@Ch{#SdmFmFbl$#3UT@cazo2~| zH-BC*e_1#GfM9-KH~-*Zem^(=P@TVm)Foe!0`mLtP=15XKPr^psPh+u@|$%2@uB=? zoqtj&Kd19g4dpL`e6;NulQv<2YUbr7?{+hC>S4_7^AfA$06O(qWhVtJ4W)pF!NT@_FskU zR~FrGP2E)_?|UU=wtzqZb=59P0;^P58X>+1YvLiy|I{H~$=^>u#t zQ2quwzh@|aL!I9zl)sVA?-$D7Sm*Z-&vuo(ea*aClDD6kx0~e6HS>0typox>hvXe#=FOJ8 zgUq}=CGQY3Z!gI^)Xdvk@(wfe_L00J%)EUi?_3tGIx%uY@^AAQo-Fq&UZ10|Y zh|a$>l&^ID6`}k?b^g_%{Q1bo__&U;-SKgl@D z=6K)cY18HeKmS=X|3p9kc{Bec;~X!B&T+DD^NMM6ied9w$mUev=1tS)G(Z1sGyil0 z>)jC68AjO$p|UfLvX4V$XBlOmh04x0%DxPhonw@J6Dm8`DEmHCcAio8uTUB7z@o87 zehZadY?S>ODqCoj{T(X1#3;i`56^AgYk}5{+&a{R z$}Tg?>Oy6g8)c25vMY?TT&V0yqs$4FU1gMY3zZQ!%k{HIsO%b}taqsFTBEFQsO&nU ztPm=@-Y6RoD!aib8yqUTQI{d+451>oop18d^Xfyvd z18b!a*6qH{s;12ye*Rc9|4svI^$^xwM%h}SvPDMO#84T19mK8cx}marjIs?vW%n9o z8;8p7Gs-4~%I-JHwg{CyV3bV>l|5*bZ5=8j@|atP>7lZRjk4`SWsm4GjEfzq$Q>7t z`uRJX`H%VeyO{Zp`}woX{3rbU-OcJ9(f%=~Bl z{5fVmy?06L&olF%_w)BR^XXZn)<4k9$D=AY|6nu!B|l%8`NZYdIP=Z?SN#0L&HPvW z{3Ff$*ZlmW&HUH>`~_w{@qqPtk2CYJ-tFd}VCKK&=bvQezpe9S9pDryqIFE3>%8OJ zoN3y;tMg@E$0nW)9_sM<1@HU-9v;ZJzAZHIumH~ajCW}e4~x=%*_FYvk9@pqO}vkF zKHVp;7ZcCFPkfu3Oq);r{9DZY&;0z`%>2*&{5#D2FZ}$w%=|C?{JYKkul)Rb&HS%* ze(%F%rPl2eTEUfmSG-`m?cB+Yc%XC~Z8AZ73`@5ik0d=StF^|hhCLAUdb>0|=2!uL z;h`LN?Rwt=hW?uf*&RZ+CK{T*Le@y(`8DK8NL|{pCPB`GyaQP_V_7>xu7Ugm(k*LQ zYeIH|oCdiU@)@L|24B&HY!6ugxdno6zvHozWetIB2~m)%ATL3FhOAzT^FpqNybk#T zGO*6Fc7dD>`3%xf4_wIhkoO?{8Z2uA$jOjJkdGk)8ZB#6$o`P~Azwh6nk;KFENedGaY$`f zoDXsa3vNnXwfm{fA0)oeTR`=ePwI}2eNVbnAw=r2RRs$F71n_WsR*3h5HU(^^#1j z`X0}0iXWq6>}6-#J$IQlZJJl~U9^ba6VL{LrXE_WPW>ZZYd>f;_taYT>R(YU@c^4= zqeXO@IRI$M_RimO;O&~xGQv23FzWlc7@%iF^)yDkLKqD9 zFku`>7!CP)7o21ac^W zER)Z_@o-Y? zns;2quBtX(@d#3E$#-=XTU1@V;*q4-E#KlQc2o87ibs)R_k1^3vAb%BS3H^&Tl3vr z#a7iAuXqe8_Q<;-&gr3=;uY~3%XCZ6yc^1#o~k)s5xZ^EExqz?G;?~XT)ZM?OzD>1 zc`s=7R?EaIVm_5_>67=ORv*%^La1IyFg=8TUm^=(DY) z#v~|SL5eHqS8~s`vRWy6HgfAqQd}j!vPN7*trCMMZmptLjwvIMs|aM({3;q`Rkdn@ z;?<trdf)$Lktu&3KR-2xQIt8t&QFRO90nZzRRF z@@wj|t)(W!oQ>SNi4@1@*V2mP)!H$N(puxy#F#PyxtTyF*v?g zAnU6w5<%8iny)YAomc+#`%pj$i`|~jG|O$W3^388CBhZ5yK~ zAe*S^F=YgDAAxL|-$a9Ks0ptM! z*(^WF1=&pPlmxPw+A#s-K?2!4znKfNxtf^-vbowh0puY9*&@HWZj&w4t}%+-CK+c7 zwM+B_)FuxT$mIMM8f3ECEg598niUW72!U*wpR7T)RC^?YY^ipS2YHl0rsTKOAXC(y zNg&P?H9Mw^s`D6uY?Ys)LAFwR$0*7;*-GsdQ$`?<6Ufy3RvKig+BZf~K&GmFV#)~Q z2?E(VKUITlt@evi6p*b|TTB^&JV_wi3Mf8&Y7+bfM)EqGhOYU0P+lhY@44ho@AVD)j>%h+o}T-K%OO# z?eg2YAls=!l0ddo2Pc3$MZquqbn%Yr$e0sQbzUNno$@=n zAUmmJl0bG+M<;;1OdvbwcXB~?R>vlR?5q|ffV@H=GxIy^Hkql8k5SaUGgBQGJponc zRRY;1KU0J3qE1W(*+rcY5Aqs;?3&+2gY2qKP6pXkofHr9I)Ti}@2Wv&sZ(M=$mKUk zaku;|t+<;yH9_%BQrtbin^xRiotB{Z7AfwL-(4&2p-xXwe47+!=l9Txv(*_1itmu( zp845YaZhz-g5tZRxL1Bpt+cgJ}K^#-&-s0qs~cC{D2hq z&F`ZX_f_X6D1JzaZTWq*Vw*ZILGdF}+%Mmz757u;Cn$bQigWV&X~j9}f&|4+NO5j{ zj#iwjE=*ATloaRX=W4}y>Y@b2&q%S9pQjZ|>f!{&&q;Crd`T%H#RJu)35s8l;z9WXMKR+Xq%MPI@sq&g9=a61CdGsE2WiBE)s@f- zFZdj+u87UOoX;Npq3{iX9+E#;gC3%;i7`J!T^*ZyRRZX@1gi3fXi%lDW5wWFjKp50 zu1x^>jzA90D-Cj}x*-wdP<4F*$oB*?KYyqOnXhh21evdHOaQ_2?sUsx`S}{;Fm+2J z$YJW{m@?|Ue-g;y`NK5G;p)}|#eb3F5&6Tl;t}e$1jT=o;*o_TEId7y#ynEp0p0MB zI8xo7fbbteII3`@hmdiOQj4G*JBc|;-4%m=l)5tk{lA2Mbm1ru-8ov_ouK;z=^j%! z+SAQA$EbUgJUK?)6YzxE_kV=2pm2`>ZzDAs>>gQb86ufALmr{OoHy8qOb3bGmvyLAOl0XB1BNbQBn3TOH_XQ@|WbOq-u^>R!Z;iL%X?7~?-&e`g<7+t|RTfG`nMmTB0Ij3;8k8_TC zBSu$n&QY(&lo3vbaLz59A#v~Y=!bE*0! zMptkyRbR)H5l%DVTvoW$$GJ>>7o#gUm#J@K$_OV%IF}bL^KmX$|A^5QoXgesF=d3a z4B=c+xZKCNLj5a7S8%RS|BNXkoGyfOW#I}R=SuaT7+t}+QvExojBp&nxvFrbk8_p! zAx2klu2TPvDI=V&gmZP_Dj(-+^<#{#;9RZ#7gI(!ErfGT;c5>j<6NVDf^ux!xJLb7 z0uHuPrdzHpTw~x|tA0tsxmNw0fYY6Dt}9$?;9RGEOTxKM{hEN&N;uaSuJdr5>(w7I zy4*e)6#gDP2enTR!nvVvy^nK)`YRdd2K8q=4tBDpTW&1e;N#q={!YfZQI+FydJ)b| zg&RGbjB}Gp)g|=TP0B)1rY#s#s9wDZ=jOsq9*%RfN+;;{A>CUFH+#An=N6TTo|ABw zCEZ&Kw-~y&s+y>-jLTb9HsPFo3Fo%LtsahZo3ayh`;qSLh1)#cjB~rHjh>VI%aiUM zh1)${=MGgLgR95I9jY!Kr$9J&7VhwHGR~cE2bi)6;eCQjIa^B>$Ep-9?4F zJl%}5NHs@srTrGErUaY;gmZUck%4o!S|$nSZk0>G8Av$y6z(=~?omz>&ONG20?r`9 zxwmkShvVFaUM{;qPo&w52&6o=b(BGA)E&b4;VNPsy<0L531e?I712Np~8a( z&O@qi63#mq`bEz{^%_n%j}#vEaUN0qlW`tVg?OA1 zg!5?O5g+GKH6R)1QMFt=&I*L{Sm9A0=P`wC`mr%`BvJtJBD$-eX;O@ulu4JnV>t4bYCjG=Gm~pt~07zE*hE*L_W`l%PAFbYCyL=Ig$$R!-2JK)P=f zUiWq1P^%>9P9)to3vc+kZ>m)jbk`=`w+e51x*6v!wHlOT)`r(1-M0&GdAiQqYAoXh zf9p|PS(kL*DZK6JW}J7_IKurjvgW)V>AqWd$IyLOtwp*qbOh&JwI+(f>yPiMHDYsD zM{eBwYJEEAdxdwsb2{&-@d>&ckna11_dMN<^S)Xe%CY{vuO`NL^1hl7$fY*gkZ?aJ zyzk*UAE@ zMpr!fNNp73$wz9#KrZ>P3E_TR_{hioSWOCO3F60U)7acikQ>*hn-cCP1q>Q@t@;zS z8S6&J=Oohow15X7uI{I5ix^$;*r$FOb3Y;Eh4PgtRnR*0zunAh$vO zhOE#C{uksb$QzK~ArqV6H{?9X*N~N)E$dLo6Oe`+&I`E?@(X1BWq=R)5;CTXWgP{1 z4bs!GtQ{fOK>h_;sVnLQc^=ZM1^AGAAa*zK(jXT@@SZJeXm@bTAb7Kgh1WD#>$ifB z2YD0Hr-xkh39AK>i2m4=&*rki#LjKt6&rfm66Tg!qLQK%RyC z0vQZm;UvgqkRKsyFN=PGd<~fhPT@h2TOof!X7z)gkk24nVvL;tc^lGPK)XWDfIJKN zoBr;PzajsG3|J0-Ll!~046v-dAWuX34+PH=@(iT+An^SluR?|mwya|zpF!4G9{m9M zA7oMy?GDKdv8){+w?pWih}%GJfcyp7Vi@?MkoO_=!@B5* zbS3a^A?HJ0f!Hg90|_ZXZiKuKaaOUc36Mu1KSL(3ihhMGvl{RrZ$X;Ig7XQv1o9T7 zX&kN}$RUv1A@pAl1h;*0IXByUXvt>l74Zwf>tmYXXK2#lt;i%kA~NZK*O*c^-sUN! z!JniHOK0KB8+(&XmY}8C#BBviM{SF$$e7LM(L6mthVfa*2v)n(t5MjxBt{u35)n zGNIE|IEAjc!}LSs5)08ZKY+|zY@r%<%Q`L0BXqh6ozOLJVdf!niGXODA4uliZDAR< zW}WWLAaq)VNa&h(XU-vViF#<7A4KLoY~dI7%!0#3+(9t3m_q29_h7ama*1?knjcK& zy=-9?_RfN^MXW)mw~z;2^Ips|L@v<{P4h#@ypJuM!ez5gALa`>%L;AKHSfa=L*x?C z&@@+M-q#j3VZW@?mzjc2KOqdd=6#u4h};yG6ixF($vkfhkFbz+^2`x*3PKfh&GXDE zL~bTzKA+6{+rl7RF6;DXcA&GIkOW=x{>&#tZcWJiFft!t3wLl}))~N@L6D+sLor=C zoYV%{avYom->DYm&R{;cwMmzlFSxud$70r5p80}Kkq^EavjvCPB|Z+#IzyN(=nUn9 zuf|-#VRng+!?VsX<_bE)`QWQDQ*eY`;^PWg5P%xVw-xx{s~tmC7-^UIxMJ2B$vi=4 zMLzgy3rKC0UE<^DtTT#Pg3f3@_-e! zS!Z?T20Cl-!B=Bu;F@-ck85R}HJKUcti=ak?PNk5Zxf zKCYd0CNe9~S(^{O+Np%Lj$Pv8x>;u(<^($H^1)YQM&NpOiI3}No%NUz=&a8NU+r{4 z+rTdIal@>$0rLT!4f)`!ok40F*(E-1>}c-1tO^Udi@f}3OuKX5Z_bnhbun@J)FH;Gw;fZI$GQMj`RZgX3hf?GJ7GeZyt zTSy{kkS?7~>XU6bZs|;Bo*>k>ltftl98#ZRm-x69Hh1U6*{viIRzH{2r`jbxZtYBE z&LGgYmPA3QRI*87<10TjX_J4L3WiyxcwHA`YcU&GVJUc3~7c&e|I66>~bm?+B>pr#|_jUGR79n8v zl|=ZgSCD#}UE&_d`T>#%t6xLv2ihe*9^@Rz973oc zBni`5wB&)zK1AWTP)p)hFt&l(B|aYF9Lx+uz#Jlp@L8`Tb!C_Mcxcv9%rkTj<%8dn z*OS_OTiAw&Wu5uVBy|J5X?!;P(5_=T-AQm~*d;!m>72prL%^LWi6Gn=%v%K9nUaXY-9>O`*(E-n?VQCtL>Qbc z3A4@eDBY4OyB$h7At!V1cGQ!L2<{wPj^{e(Fe4Fg=Sm_7cMfwI0e7w>qHuQ;+UEE2*F&*3`i8t48c4^Fjw0pK34Wpu6+N}~?>*E0JNFxN>U3iAkgbG=>S z;|*Et2ihGcc5V<-qlUSj`Hz6PK@w3I<~rVJm-u*-b0hN^VQ`Zq%(ls+bWf?=O_GSh zJw{&LYzzDG7VOa3OAKz2L=f&~=0xITw@4xi_c+1bY6}nYHs@C6IKtpINd)0;Wp*T& z?n`Hl!Z8!_c3T*ccVNp+n|ODJB!Y0aGfxt5cSs@%_au3Dr!CybyRe&Pj=jZHN31nzE01mPAjcM@=SOCk#QG{N0t3t#eH=N{%l!r)#> zm~glT?_m}t3J<_Z&1>)(g1OHw@$r7=K4wD#=6*?pVD4icB?=D;!8}Va57;F>K8PJB z2TSE1ltc*T0cKJ<5AwnE<~f3S$S(2m;jHrzGa|9mLjlgc1|MP$C478X64ADKo?sra zg*W+V)_H_Ek1kB@- zh{C)`Fi+SeK0fI@!MsQqJSmA#+dRRHN)#RyYT}m&<|$j)lTSNOF*6b{PfH>M^AvL` zQFu%U=4FC;#xC*kS?3w%MgrzpNrYgYVOAvyj}5`RLNL$SB|bi%b)I8(r1QLxBz4<7 z$9zhFKQD=B+q_CJFWADNd@<|1!2C$(MWIP*m=~B)378ip5ruh;U|zCIe0(|Uyu=Ji z=Vc*EYM7UpQwf-tB@u;ronT(EOMHCQd4>6tFnCoGK?BXAe9aa%yiko zze(tC*d;!`>Ab;QN~pgniLm-xr2dv&;^W)cq(F>HsJ|_Vu=?Ai{*GPZG zzF_Vp)W4KOSp6eX|H>}$@oVQRW?(}7Ye|IFnTPp}UE<@n&Ns}%g!;FV2&;cW=-=5T zK7Q|f$81cfe=mu!I&(7rVVC&$Pv;-Z$%OhpB@tHtjL`pOm-zT^=U>dsg!;cF5mx`4 z)c<3b`1oJvKg`dB`hO)6R%e#x4|a)<|8ss|mL}ByCyB87mxTVKUE<^aIX^O26YBpb ziLm-tr2dm#;^WU*=O<=tIzRIPH;K>bftcoN{$dMn^H=8=bvcd1?VMjFVg5)NfYK{a ziZVK2+3Oc(cjE6W@wd0^^$nf*H@n2g-<{voRRa0DB!ZB?F>BNLoezNgjk%rp`x+DS zTY~(0fMC12ak4 zFsn&1^OMYMoeZ1(o6TxrCaF4@)ux#4NoI9AX;!2=YurI2fXX=`i@N_|uzG+=ssUj2 zDQ0&PSc6WQV53-rSfN}_i7|bUhS?%FlM~)UVj3d<14RF zKd@Od%p{eAS#ye+pyj5VB>3#eyqC|8Oip-b7nW!_w+ul3$8cQ$vP??d2Yots7o9XK zIhHlKI2rVqmT!ePTFyB*;g5X6t~jBSV(uuNu&Yi6P1B|SW91f@ zNva#nT2f3EEjM+O1bKnHhqV{TkuLqr zW<6jgsh%+FkzyJtx!zMJ&9=hmg2rRqRw(C$jILi8tQWu})f-^FQp__YAA0L#*oR-) ztPjj2wJgl~q?mF_J}j$~!8)f)zp+_gm`SQ1%=)I7eM)BibTVxAJDcTUCaD6<@+l^p zl9L6UG$RiB02)tIABYAggVmru_=BPQ16oqc0lI&Rxv6BhoK6M})1^PzYyiw8H4tV4 zQcOi9vw=Dp@(3D4WYrp+3<8r!e=+nRKuc;cpa-Rxxk`qEbuws}E|uAAd6-G62(#r= zOkyRoqE3d*{${fwFq70!m<>rWXO+x`>SU-Q&>+UE*5G6im?}d2)^ctbpd~dN(8E$p zV8v$rZtpMl|DQ313^a?r|f`$h1VzmY*qtL{HE$2o8 zT2dJ1}CG? zM7b^J)&#Vq)&lgJDQ4D^;aWNwf`-Ot8X6j$j6xF&x11XfXh}@~^!OB$ZK;hX=%m@k zXb@<8LC~VXNzrg`JJcXV%q{080$NgQ1A1bL`L|@awoZnip+W3jt-;ACG;wvyxpe?7 zsdWLpPKqhHWVo(QhM=KAgkG(|$tX0@cgwl;04=HY0li*|S-NDnzD|aqp+Ov9t-;AC zG%f_eGzCwn`~+-P;DiyDh&x=)O#!5&wgTjo6jOu=ax0w-LqdfJ z#;m{z1CnUO<=j+2N@{CBPE9dem>{>-$uJ~Teq%@|aKeBjMsYc}4Im{oErnBWlVaj< zxoMgtWYH8c0tJ8QwnPypqisp#;&N^}ASJaeK~7IGhq&Cdtt3216cF>6{6`TdqmaZi zF6Xubq@=bd$n8>0CoVT_F9{D41w=w7NEC503Q3gXa&877CA91x^@kN$lftZbv{$Y9~PMm|_AlLGGlJL0{4(A|jV_JHt#;GpTYrr_o$wqdl5#mW8|sqUlhkLYn2TI)+EWr2_3L$h`n5sl5quuM|_3%T0Uhgy#WKmdm+)pf0I>QO|u+%vz@N?5mT( z^9XynoNI#_@tDiG{b1IXVv;hM?WdFB7KaK^oLPYrMvD(%pgDk))LcN$NikoUAm{32 z7!oSPc4h@m7?8wiF6ZU}Qc@*A&Py?MnIKC#8HR)k5uaIs69(iUhTI>Jk~)BzcmEW# zn9EHENW$we6cG2BPKF{*23wMPY%oI}2uMjCM34ujn9y8qI!F>8BnpTIO^_(!WE66F zhCCRMk~)MS4^A<+x!iP!Bs@qI5F?r(QN+n8B=Mii_wf zG$18)3_%{9VoG$m=@?0PkSHJ`H9?|?lTk>bO_y^E04b?s335S-+0o^uVU@};mtt}@nVqkbVKX9Wmva}uOi~xZ z?1B{Yw8`v3oeY~1U%Q;U2xgMH7-koxn6gb~7wcr$jHuh?+(MX1>JpeOOfh?#%r4Q% zuo-<++=o{PKM2h&|S`54l_wz0kg|f%;_exD|9k!M%?al?n;MEFBnPPf3nO&umVKbt6mvdLcOj6gt?CKOVy~*qvoeY~1_(VL>L!@om|`k8ncbw5VY7*Bb~DT* zbqmaHPBAN-%x=-iuoI+lYNb9wo>( z(2^(0R5M2hL>H1wa;$?(vh#AZ*yOj1w7?5Py9&B?Q;b<*?<)rJOf z)d?6HoD2e!N1HM9Gk})Vvw(gk#pHB?epV-g?UgQV&SuZSOj6Io?70;4)aiWB>tyhJ z!dEZnUVzya4Dce%UPv)zoy=a;$*|dER(=U)l6o0tFQu5hPENk8lVK;fWV2UbCaG6p z_DYJ0>}2+;PKM2!YbS0T+A%i0)n9OP!m8xTCJvhb_bLhQ8mf}8=l2l5dl z1OECD$mWp!As0a&gM0&N29JFVWIE(r$QuxlHLX0j?CU|W_0hsM0t*jraA969|JxD9~?NcD9LtcV3faAUa<$!GNiE^zJ&`}0J#zJ8sry9-|q6=-Pt&v23Z980Fr72&mV$M zxm);dxOD;K5y)4NMsVUsLAHU+hdcvuz=z)qauVcONKG%a1!Ov8A>>cU(B77{FXSc2 zACU3j!S4gP9r6jJ8C>|)A;&=Ofcya&0zUjUkjo(7K}LfUuOLrCn!$?bw$bo2E$YYR(LHLF-WH-pIkdGjZ zgP{*O3UV9dH^|z{qppxQA$^O`hujMJ6*6&%Wt|9l1G4N;jAO__kZT}sLej(F4`c_( z$&mXY-$Gi4gEtSE3%LyPGUQLl&=Hn34RS2xF39JQE-T<&4Ujt_pFvh13Ev3LC%6a2Kf)9?`T|v_|N6EH)Vv{UdL2+;k6gPL>~_CR>wqkVYOrT z4rTIvqYaNNTe2CUv)6#{&TMuewYz$n&2DEjs~u!_CbJ8tT~5%7Oy;r+rQJ298^Ihp zMO{X7+Cg?_D!VY+T|G@@Z^&p$JDBeD^;}J8_qFB`7OKg|W)R)!`?#9V?mE&WJa(b8 zyQbtwiHvg@&1VPEooVdCW_OKq!eSRPyJ@^X8F$GDi`@auoxX^xx$LfS7vZoAmEANx zfQ-9lgu~tfk~@70S2NjN|Qj%Ls$LJ1Fk-30%!%ca6IVe_d$ortv{! z+?o;odJhoXnZ7P8cGtL7*y}=KH;oS_q1{QjSnT`ei`Ad z=Rs^wld-VZUE_YjS{L%VX*{2d3mIXp_Xn*#OUA-oca00eSr_WMX?z$NFP9O{`T&sH zZ88?-x~r!t>jN{Ix(-G=GuDN;?rR-ESc5Z~xeh{m9bpM?-Pbyjw2B!atPcU7y`Hp$ zw(e^kMOs5M!dD*#I(q|Y32WWgVw(E!jL_9bfX&`WT0&a)wT>aI6*9tB9|%P|Uq_s*$nCh#7$listgs<*voj_WvWrV0c7Cd%`w1lqiYn@11<1)fiUmY~|uB0Vw zbzkcw(pn=UH1##XVs9ZWA*=gZCzIA%8DXi92Z_BKX$e=|*E)r?CS-)9J`o)D?xZDD zbzkdL(pozs9QAcTVQ(cZVXFIDr;*mW8KJ1J2L^i&(h{P&uXQ?Ut)CHw`UW7d_arUh zsry=Ikk*D7A*gQz{(3Lc5}tb7)5J?}MP_fwqywIDQ#RjR&LrcFGeSovQhOiL+k_9U z@y1L(N9M92Tf&(4U^&J|pDu8TjT^k+f#G+;OdSF=6eH5$^bo z;H?iKtsVK`x6DG)+9@NH@twg_A4*y~3uBz8A?qS@m}JsH;^_!v4wp?Ta`-CZWQ_E9sz_s9qnd^T9@W5{?mAN*5XL5}R1 z5d!#LAg8ZHT6?+tZ{7G;lGffC;eYP~+WE?)wGSU$NA_m6H!_L+?Vf<@dKDS(n~`H1 znCPpLaT_08Jx%i7FC!%HIbfi#Mp|?D;A=6bdu~R!-SfadA4^*QkG=1JlB#IFpPkuA zl4b~I5z`2m6+uN&Kok{4Q89x#0ITd`8rPf!Bjzjy%n31pIie!woO8sS#s9sxUcaz! zHsGh%2vG*dy1lBK0}5=$-&;^R+2FK~Yr1 zRH6>dnIZQxnunXU5wNup}QqRD&X~EwI@>JZCoBN5GJLeWH#~8!^tn$(e=rQ7|7LNa3RtdEp~vkB!Vhjf8Ka@XNE&GWgi z+}@7D=PL5T=g8C zVY9sxg)da(g)cBG<_olmpViwDndW+>ycqWA}%bCUUb)p@l^G`o!dJ>B8JT-G z5`KWfSLe(o`5IVK??d5h6!|t^Eem91(jqxtZCM~s&6x%AwXmPwkHXg~^1@SPZ;Z?_ zjf5X!$=Bt~-uQZ0O^>DU^@_akbuu$X=D0?}4^#MtoLLv&2n*_33g4*63*R7HVr1^$ zNca&7-;^_3;+tU+eE@}TR^)|mlI1Wm$2Ss|U{`X#(D>qR1UNipWVGXXMQ4cP5OKkD%~OGx`mL zXUNtUnMXDfmW}UyIkWY>9~R0-QTTpEzRmZUh41~|!Z&R5Gc5UmoLTrj2)pECDEy!z zFZ_Vn^*-qBdPCva6n-dYcD)b78u>U1Kdi_LKV;Ut4|{9gQ21F2Kaw+R-bZ14d;*0Z zHDlhO&5y{27nvu57w_#k6n-pcHoT9+ zy~v8p&Y5-Yv#=39ji_f8MW~mEnv*l5+~;5zd^%CjDT+`p6ZL$~Y;j+JJ@6Ssy`U&U zy+YKBIWxh131+}&67`az2=yvaFXzni_7zzFo<-CviXzl&M7^3bgWK2OGJG;ouPKU9 zuM_op&g^X8fKTtUiF!j(gnEOhH*;oQ`<8oCR<*F?g3=y^yF+6h$Z*$bOnLL)p(@ta}krpDBt^vWxvZXZEpQz()6CqP|cR zp=1vGWzNiEzk+G*B}9FtC_>2!_UoKk!_I|8?xjS{RTQCQ{Q6DKj9|ZoA?{^Fed}#t zKjK&Pzy|iaoY}yB5BuB8iTYlVe`o*BOkcnErmx?b>Ff6;OkaPctL$5U$yxj> z>~pWB@UM!z@Gr7vMdo#lgg@uJ_$?=E*8K0V#J!%vzbo>>zsZ0VnKv{NrmbrJkDP2) z^MAqu_eKi;smL#zf9PmZWZu+BnAWKIc{w|U^e@=k-b~@Y6#3?PGt^93E-*ta!>_3s zvptpl>n$;@*}&#B3$$6E=77$c$*GK9Zw1;ahF|BwxQ)`Zh7}PvIxUBexv1g14i(T* zZkDF9fW1A`v9cJ`q@$utN0F|!u=4Kkc_P9ea5!3KU|I?FMpZ$5rP-It4t6?4gRgSg zz^=3!=x_WQ&ZB#d)yP8?3j8PvpwBFskVd#QD z!6ll9{(TQNt_EQWI!G}u@o7sFW z3PnaO21SdS$)^lcAGczIPW(f~E)KL&O8~vNS$fLa^oe+}U_7Z}mk5Yhv42WYcPKJy zNhs=WcAc_5os}qdp3psjHfkxLdzd+=j830Qpv{bPX`qc-2I!^Dic@x^Psb|>#xttq zG64~*WJX&!mW3jtmV=^Y&1O@UrL*ITz<5@QmJ5iOqB1EeK#@_)Ls7vjG-Yc#C$0#L z=cH))fQTtFgUp^#WK=IG>S^|vvMhZ*t_X}5q^MUw#1!RJqux+t)Cy44+pI5TNBUx1 z5g0E?(Fy?(Q)I@LD?*V`D?!nUW@{;{(U;?jz<5Q9RtkvN@>HQ3tqes*tpY_Wn}wxp zL|=_70^>C)S|v2G44=a*rD#G(OOVs)Y?$Amf1zh!t;G9;x*qJO#|Zt zDOx)qV#D87iq?T5qxwV9I%Wkad(IEziop0tiuwmcOi?>2S{I6pS`UiWHJeA-W_}!3 z1jZ*)v|d2O6t$P40Z?Sr`cO2$EF5L4`Dt7c7@tYe`T-GB)Io|ifFh#?LeU0h&nU~x z&*O@~_(F;X21HEJ0#Y;xii{czMT5+GQFfSL#ub6_l@tvQh?t^|QnVoy88rloHZ)sB zSzUe|R|LjfDH;+GF-1;_Hi9CfHin{&%ra3nmfyq`f$^;rZ5$9WMV+K*C=?mB2^0-A zJ49Jjeiv5+#`jXRNkGID<)vs-C^Bj@DB9Gl4rM?2LtGIUKT6SN0TEk9I!nmzAhO(CYDXs{NpQUK?fQTtF6T>Z_$f)5^w1rt1%JA`*xFRrqm7?LHiD9^mm|@|T zP-N6rP_(7DFx)DzFw|Q*t~D@zmm)Ak#QMn02}eMYQCmaN2ya)obzoQM6@l@m6oDZk zrpSy4w}B#~wuPc?yfxvrfiza!@9ZJf}2VM!+c3 zF4*k?BG%bvFt|Mw8MOlxZEyC1GIY#RFeunt4DJZDSq$z3^p4(OaHr5VWah*(c9 zB}HSP$f&VUG{$WHWRb{oOT&2sh8g{h4TzW`GxZw>MMl*^(Kxg8lZ|4>xFRsj)UP%m zVv3egjrNBkqYi+g{k^5%0fD8T?|(38-Y1hq5wZSXR*J?$kx_L}G~V0y)dlu_UJ)2H z>XV_Oh?t_~q^KT>jG6#N_1>y)LSWVB6@fuhK3OM7}6}FwAi8kbsCO>M2EsLXlBLC_2=v z^<-zbXj~B(X0BHZh?t^YQgj#;8Pxzqhk0wghQM0S_YoL0(UaMsh*%%>mZHO<$fzTr z=x}eNcSK;L=M{lL!#o)qiijy%L5hxqBBPFiq9eU!-cf;No>v40&GBSmC?ck4MJYNO zii|o2ijFobJedzJO~C-~?eLBTdL_vn2lTOKd?(AmWfExYE5{4w@jx4O0?@~s&7G|N zmQA2n5&A@+jXDYF6V234#(p@HELM|Mg+3W*qfP<(WV5i7jUSIWjq1Ic&=Y|+Y7)>B z&9F|Ueak1%s|$T9&_b~CyPEFbsFh5JG#?>HtGzZPd76<8S?S4(+F+mb7ul= z)LB5EY1VVH-|L+~o7LQ8pp7~k=*ea@C$qg35@<7)I|pc^&IS4$vz3#z9*;bYYGO8W z=K*ch`9Pm%CUP>;TPcAy)3^(OHtIs4FEGnE+2*aBK$}I}ML-*MG0+#8L7YtTR!N}E z5bhG7jk*-*OUw>VmUuk+G^)4Rzg-5jQI`XKnVG-I0B^Mf+RWar0NSW2Kwn{2Z?e1N z@u!h)vv#`@XrrzI`bsl)leyg*3G@KXldFL?>KdT0HXAot+3^U}NcZ|ePX*ejYk{6> zrfo8=TQh;)K1!$vg1^N~Xj`~8RH3(_P@`@~p|_dwnyl~EOLW!{p{D_D)Ez)i z^X6-J1mEQ6T`1J3yHV&}W}qe$yde}0*W{r>-vhK! z_X2&7H&KIq9FI6+G}+9NU`>!myENsAh}Fc7LY>!P1~hM?GG;>a3^PZQ@f=Om ztnt0XFoQH$)p>(7fXyHcc_j?e?t|t{rTKnnzR#@CWH-lyQKR{~nJ^CkZPbH6KVZgZ zGJ4xQtOuF|25rv75E1(vF-(dcf+C|HhN6ee)Jz6(!>!ohBjn~nKLWH-j{^OOS(wSn zji;kVmE1z;$AC8KaiAYF!!nt+ZIwU|7y1dHjd~L3C(NEq7HvEsH5%eAg`NepQBMIq z%go4R$hLI?y_L{U18vkZKtFBPW3pf4DXEd}5kk)f+NfuNo^3{BGF#g=hUWAP&BkOm z2D_jPUXEON3~KK-*-9wil}Dy_?U~s=+qEze-*>XP1|Fc8EpOnFi9IumXJv)b6R|SZ z&35xR+L$n3@%GsTeLk&9AWu6I$umuyGS+k5a4)#p>RwSr;P2hi+LPPKY-&&g~BmSoHDl0F79!(@&JxU z5(>vOamv^^yF`r#(xL-E9zIAulZ=%Hu8qghcmp_|GDtp?jFkqit;f+$12`ThNIsK{ zl?JYz$I&DMIG!6wK9h`<2CluwW$@Y#Tp1$rnPjXqa2-4@Yq(s%XOcLjfm^`i$_-Z$ z@R=k|=?$_=bo97NGBE$Z6A7O4ysC&N61+~HR~_+0f|vKanusS7yw0B2CgO<%uZ!ok zjd&u#3nzZNh$j-faI&|Lcp||ICwzy9Clb7Hk}nYPM1mJi^o|ivBzWOucM(q{c;N)^ z6!AoY7f$MY#1jc#IFUO?Jdxln;rpda#1jc#chBn@@kD~Rq~~>ucp|~;;du*2Jdv0? zOL^Wx;9)KIW1d4-5461){XZ~2HP@`CIVD|uc|@X(%Kj4B#>GwM*@ zu!1B|2eMfg@);ArSOE0P%3jZkU_j4G0iQ|Yltx`v@wk=Au<;TJ9jkiYDyC!AK$c1B zP#QW`^SIR_9U{S7-SbwDcp{;H4bNKxJk+sIpqEMNR~kC{c-)$i4w2xk>3Mx4o=E8L z>v{dagZ{Mwy-ZTS($LY*OJ+D7_(7$e=mr3eZ8ameTxb-3( zBEjqLc>^MzNa$bJ^VSCs`ZoylGD-bP1Gk>X4K&=KfX^gxN&`2*;|3dU!+_5uaY_TX zzQ+wQ+(rSPN#c|SZUc|o*l1SkK4g;I|h6viBlT5O+9WW!|fdKnIukW z;5PHPT?{uW;4?{_(!dS#xY35&HQ+NzoYKH;?s2;rZufxCBymauw}r>;VYod5K9j^L z4cu^#+skl!2Ye=pQyRD}J#HVv?Hll!Bu;7Iw(_|B3^yj=GfAA%z>V;@v4$HL@R=k| zY2dc@xLU*QAMlwZPHEt_@wfvFH$LDqNu1KaZR>G$hN}Dl13r_)DUExm1aDu@J1gRe1aCjj zn;h{(f;YzV&W?B@!5iy&=R`b_;EnUVb0eNe@M=Bpyoe_fy!}1z{D>zKyaPP%f`}&) zyz!oQVZ;*&UY+M%6!AoYSMPZjM?8_>P4K)+BA!U_4)nZBBc4d`4)VOqBA!S*w;t?y zmxG7rgDV(SG)xf^^NQJ=U(9DL2ILO$a#vEIyx}TF6%AJt#&<$y6VH6cVqhL0>gBGX zKzYN|fX^gxN&{E)xN8k}UBG9OIHiF*%;T;%+zkPrN#c|SuEFDOG~7)ApGo4BMqeH7 zaW|7;*N;f>j_|x&BA&>7v)zvb)U$5|8%?`SDClOIWhmqLZ1ODICrrW$uaEnhJC?fnI={lz@8n$zG&E&JeFxzKI zG3?8ReZ^y$CRQ21o*ToyYS`C2mT6*@0ql7(?CXYo!(*8yRvEyaAH%+B*ta~EX=0TD z>;*CG+lGC|W0@va8Ngl`!@g_S_dJ$qVwC~xMKSFAhW)@}nI={lz+N1~erVW_JeFx< zl>zJ}G3>{N{lsILCRQ21UK+!GYS_;_mT6*@0qkWl?B|C4!ef~xRvExv9>acV*sna6 zX=0TD>=iNW*M^Wtv!J06R5?{mrnydo0t$Dg)SSW7t0o z`=`e;O{_A2y)K5GXV||ymT6*@0qpfLEH{B+-6=z)b%$wUm4Wr^h8ULnyvS1w-iQM&t+!n*O33!UZyFJF^o+`>IMj6v$Jno=E8QeIfGMFY-8Nl8V!*Y`pu-qFZEYrj) z1K8;?EcZbH%k59XGEJ;9fW0$@?POSPY!a4fVwC~xT`_ED!*cJEuuK!H3}Ek$VY?cZ z+mnQ4npkB3dru6@JxQo9w;~D4G_lG6_TCtl+m3+cZX;otCRQ21&WK^Tvj|vjC=!-w zVwC~x%ouiY!*Z*TuuK!H3}EkzVY?f4NsnckSY-fve+=8hu-xz?y-X9U49t}WV%Vhv zo?`GGjPaHUc#6S$D8^eh;3)?0;TVtmby%Ka@E(crxI2eD#o#>}<1HWX6odCzjMp>Z zDF*NH7?1mGs8ca`PsDh=1D;~=o{aHU2zZLYn-$}6#|(8U2JfjDkNacDQw-kIG2Y4n zPceAU#CY8MLOI3Y&5rT7(}g_6;5{4TabF90iou%`<8c=Yd5Xb%F2>`Y74j5=_k4`U z9V+B02JeL!kNZ)`Qw-jVF<#$*rx?7KVm$6Op`2pyUXJnB3V4dI&USw##^XK`Tr=E0 zf_DIJ6yZ+=+#G_JAm}5XdI?}m1Y;pk&Z{w9+#W)nV!Ug-7UK;759O@SsG?y5BBh`C zlp%w$IH=?6G1-9>DsLFXsG?yoBh+z2N=OI!lqG;M5sZaE9p8xQ8WQjnqmFOJcpHI- zayDjE(J+)q>1RImk-=CT$i5Ym-GoBr4VyBmXxNNM$ugfZWH1&7b$UA{J1pQS#(MHj zjJG*>(7Od891o_cM;XxbZVWp-;3)?0y%=xHfTtL|_hY=R0-j>v^GE_@Vj|D3EKc+c%`)wB7xuC<4M>?2*WF_4G{_a9v)A^HbfX+ z=`uad#@oB6$CHpl%AkLg&ZY2sc{~aEpbYRzSETTJdprr-ERm@1KAulP4kxKEn!o#c zJ_)&+O!D{hd=hdpndFc0d=hdmndFc4d=hdjndFc2d=hdgndH}cJ_$LKO!D{ld=hda zndBef`6T2(GRYtB`6T2zGRd#=d=hdRndH}dJ_)&tO!6mqJ_$LBO!5!(d=hdIndBej z`6T2VGRZ&K^GV1pWRib~=aY~_$Rz(z&nF>QkV$^g^GVpI3!CpsFPxf>hj}~+Ieer( ztcOZ3n!-1DJPG-DOqPGR=aZ0k$0Yv<&nF?jj!FKJo=-v^9h3Z{JfDPZ%CPz>-6K`s zqdlI4d^jfc9pm{VY-5J$Q+k;|ANoV-WmEc(_3|X-voWdvIL{{`Z;eU*@t#jYej1bf z6Fi@UZPKv%DcviopVGY>rB_JR_e8IcgxoN)JhV^gl~VYVJf4I+FDC1EvgebK&&5EW z(yONQo#OE%? zpM*Rp2IVQeR;s)+Jf4J{CMNZr>G>q&E-}eJ%kxRdQDRV@((9(mo9yu<coK4S7~qxO zD22bk<4MT3VSrb9XbOL!$CHpd!vL@JrYZbI9#29Z3$rSLa;JPA4Z3-C(spTghd@g(HeFTg83K83&8 z<4MSsUw~J-K83%<<4MSSUw~Koz!d&gk0&9AeF0wSgH!n1Jf4Jn^aXgO4^823_jnR= z%NO94J}iZw=J6!ti7&t_eRv9ghsTqU^SuDC^pPq2bdM(?e|rI5>7!HlJ3XF+TVlcUg?ul_(% z@H0G~ggoRCAH9#w^n4QXjhE!#=lLY$6)(xZ-}6bxA6}CGfajBtC%h#8LC+^4A9zXr zL!M7U-tUt9hdrN!{N5$`k9a-_dAv*VAN70^@^zQwKj!%)xz{S3I9Y@s^bQtDaB7Ht$&bmA);7f6e1b*v1{hD?Kg1qyLn?BPIX3mnTu2p5njZ z`6O&3kLg$Xt`z=Fk0)W9cnq)fJyCs>zBeWRmX{|{oRQ+c?fE2ZQ;+Fa`o0wY9ginb zyg$W%*Yimf9|-v9FQv7~2l}J&d(Y!Z6dy|Id*Aa(6dz9UKk$4K#Ya;74?UlRZT7MD zDg9Uq|B=U&C~D(RqP`z{K8fNJfjru$wCx6px9<~=CsCZ0D(_RzCsEWUphS6}c|Hl- z0A%%7S{s29_|H9_L~(XhKc%%9D1raN<4F|fM0llbhfusdUwS-=;`0$+Y1<_f$A9JV zB#JLac%`*5C{drUJ)T7I1?imyg^rESMh9RH2SlPJC(;g!}Vp+tSY z^>`A+HzT~#wsR=1|2vN-QG7eXE3M5!3H{%DJc*(<3W1OLq_piIitGQu<4F|XkMt}3 zL6DBFuOB_0MDfE2uk=SL{7)WFqWE!ySK4+H#q0C4$CD_28sU|;9Yt~cFCI^#_<4j^ z+IAJi@xOXJiQ<CsCXi;gz=CM{#`4<4F`VYK`W<(q%z9n$P7P zPr^1GC9bCm&nHpLrQ|C;pM-5Xvg=LhiWI)e<4M>Cq(phuo=>7!m6EUVd=ka#fRF22 z>6#S2jmMKHwn_2ZdOiu;kd&xTJI^OkY!{WMbo-RP_8w27*df9zy+8`z!Q)93J4Se= zT?)T|$CD^_ittM3Q}~V^Pomg4!Ykb+g?AoLqS!UUE8Q)H@8t0$iVH?~r58%!^Bzy4 zxNwA5dXW^qv&WMtE*jyLUMz+0;_)Pki${2+mq_8edOV3@_Xw}_k|}&Qk0(*=5#g0y zDurLr<4F{kPVpD=d=kZFQv8KIpG0xl6n_!VCt(|!67zRa&nID} zJ)cCeXNtds=aaAvP6_?pJ)cCecS?Rq&nHn_A;s_E`6O(!Q$qhzo=?IyJSF%`dp?Qc z$|?QJcs>c+_>_=e*7Hf&=BEUIInO6y8=w;Wg6EU4O;8E`@}5t^HbN!%Jw2ajeGn z)BPKz*G-Mb%3dD{+a#5!&nlizLZ`q7@4HH`AL&*x6-bozOczn15d&@typ{@R{TLg$$$`RjN- z2_0OXi2sfCD_ae``Gyi>+z{7*#Z^&j{P}Hc(vAFi>%2!yv^~4TBN0F8P()X4cE%F!F51 zVe24r>$inN@HUmjS1K~)Z7Yi}BWhP!d=*jqY?0dYZC%?51g$U-#7GcpEma0p*hL6# zwSnq7qE@vI|K-bFIW`u8<;tt8>e?~CJ^rgH%<0Gj9;H)-<||x$xOzmUZ=T89rf%g z%tdw-<|4bPUA9QI>>QhfJA%+8T*D?IORF+aGmTQ&Mb%UK3>r16+S+7#G&|eZ1aq^- zre;Nr&CE(n5u2GHFf;R2t|}O|eK>4YO%K~YTvhe6+T<#trsp-8+4q>tIL|ybnJfKd zW{;|`OH9kg?F+8F&C#~Y5a3hdpY8BiE1H{?oHW>Dtp8d4#slao{RpalXm_|GrDnJ$ zWHY*g$>7)Eo|zmjJ(!&J;+|kzm;cSY{K}P?LFj7!VWHoQZ7y#Z#;BrUb4IwhwoqKr zFkEqE!6yn9&|rf3cch8lzg5Hh_wW%|w{(U-<` znZDdYob6h78180P7`%Eww6=j6Dy^FpR%D{KtSr-}-^rALw+?0;PMm7Dpy3J|WZ)yM z$mZ0-Hl$av7dIjo*`V5bNMn~Z$ifkj%N8kE_!OwxCDDY!Iyg{SP3ndlh??FQJhE^U z1-q)qOy52K`s=UkLa_=KVA|I!lkIF(?`%y90G*{8p4{N)4Si2TQy3Y!&Zq}_Yav^Q z*;}|DW%}-o*f?+&X}ws9m_6AJA=9f}rq`00UTp~OwP2=KS*Aoy!aOUybKAGu)$f$a zl(nmF13FW+Y^LwwXhUV^dAZ)%%0pSVvX0cgXlBIznRXb?vgcc@MaN99wyH%H7WQsE zyU|-+Ces6QoF1g}E4RxmPPP2A!Lf0+f$7{8|LS@##O0p94d9S&K6`8}>2)(XT#}>< z>+-;BTpPz=40^7Z$>qvN)*VZFe710^$!r50rt!9nDjG&g1Iw?;Y>J|*(BGNz^4hJS zs7+;I2lQgy`j{VA9f&c}@YgL$Jw>T0Qam>WYf@QZQa)4JweCtyASy2mU|n!;!Xevk-#ykUDr6%9Ku!sWB0;);fy6jwIvthlOS7sS>tZ8JOJ-UK)2cut~@`d#ea^s(KW zKH|NpviJ!iJSS1Ro|6dDbJ8df{yB+-;<<#Nx|L9?+ST!&JtwgqdQK`Ze|h{@Q}}=l zFt`fUa}tZy;}HwSJ*PrN=c{X6wSP{kF7=%B_sUi`soAcoah2I+uH4~~r!K6ttM;{4 zd1)c`FWV`x)7jQDQf+0I>4x;FwY8@BC5gsOY|V2L>|}5*S@Az^d}XrnuDteF3=X2- z5NSaJ9WG{tEWAJ#V0VS5C{84sIPrmB1&t1#qN)oYahx&tb1P?~_1;h0QIs!l7|p1n zVOK_&w!0~=XxLqGWy2nds~YxHT-~r2Vy*WlVu83_&sEe=&#uLD6+0HsRqWPwxY~)f z*@Fv9iD(9mN5yCr1m8i_T~rB0DvP?LeNBz}qbBN(n$o?Y`WDrun2xA7ta$4YUn0@5 z$=CYA)G5sr7WBL?hb{YCt z4dW2|b@~;IDNakkdPE(i#xz@`T0JXkA)0_^Wi3Q|Lli^F((tTI(BBzFRZ4}&bwr~W zb}S39r3)8*QA-z|M2lLwaP`>IRaNa@@j&oF8V|0)gY?m;t*b8aARS!S|E+dtbktxh zcHzq1z9w7bc-7#guOhYvR{1qhL#$r5E{ESLz_Uf`KMrYCb=_LHsdBaJ3{SFaU|ER2 zPt_7$-mpKTiiQIiVUCPfT+vXcxU!*MaaF?v#QvVecYB!`(I<`H?GL0#dBZ`B zDjE)Egt>T#;);et6<0PC6<0MJhS=t!z1!mi7R*KJD7{`$ZM0tT-CpZe@NUo2uwD@q zO~O>8RJO{9L!(B8@AlNA*@<_1ElTAzwkF}-o)2>Q#_zuK@oxVQS5^J2Herd;%A?7w zcYF4I@NOSX=J4HKjZ98Uesa>IRO9xg-tGUrRx~$&oHRB`N)KT4Zm;^`-9GG*)MU_v zYP|{;RU>2?8kZSaY6ozJ|FK!XG0&}HyY5G zo|&Gw+mgybS;RYBybYlfF7`l2iX+Ss0VZ1{H6~XIb7V{p=`jUgkx0)`p&nAy<1uIh z>)I3FFvb*KvKA!rUM`V`hY$8Z0{3c(yw^(Py6WflVCCOpRza^!mYFSkdV$}t6v$4E}qf8?7Ke{;axnZ$1> zxrU=PcQ(KrCWWtGwSS??EDM-Z4Reez{8rTk`S|#Pb)I>-+S34Nlc}sb);=4A^-Gp< zY*+@V(q$Z1q73FmWt`k>8OMiZkSblq2_?#4UR1{Ejmn6B`@0Rjbt2HXL!QK_qTysl zxI>E5f zu5dc~*gnOnylz%pkqLc@>)jvU;gr&MIMr=I1DT?1k$IglvUm$sCGlyks~VB%H60(U zRDY=mKb@(lfYVtr;Wx7rP)YyIjFO3OX1PqSJ*=@!e=u7-1CvYK&U$s>m$Al$hj~_P zsjp?nCcc*0x3YyY!}qmsWse2D-E;-oXL?nu0_FZg8NZWp^f>Q1ZVs{jtOxaJ?3`$B zoD;06_*T5L-t2K5pUXU~F||X2cYU9yIaIrGbGY#S^q<|2CaDFyACXGlk4_cO?nk6c z-D^$@Fxeuh()Xj&V|qwO_nPQ_bVjI$)c@{B!TtCD@ck&c-k+)Q=RJi~>9zPQVUqV0 z=0$7q+tKwF{yrYvwWkSblq*(J(gUR1`1&6aUaSO%%mWt>~04CX~;d>)j+wr+(* zr90k}GTFk{3uh|Z>MpNeWZUJct7_lIkFB-mVIgVLwRd&rs}8^i@m_7m<0J9@b))fx z{LpxA|4u%)4!^A8j!pfepdUw4{$2g;OBayG_m6Uwf(7qles5)2{0S82P@=55^I7Fe zHK|?Hr1rU*>ZnO=08rk$%%W1Ffnbab}NztE`jbM*Oe*@aEFP{^DDH;@r));?VfcPX|`l@ zh0nkXvo*Hsc-dUJz)(>w6`5W=q(r%Ra;Uo`p~SMS60F0H(1T+;T_)bDbHghJhdR|> z3I%Pe3f*xT+7q{3hSgPt9?Yt$eHj;HT>SS?yzVl#gXQe@@0Wv1?sN8``j)#z@ZiqA zjV%yc=lxPpdkG)N#XGgE)Z!83Mgv)QDW@UZf*;~Cc;NqAy6xglDQ}05pVW^wTpqUJ zzg5n^*H`74A?PbSmp3=RI1-6&i7u*kl~r|@V+yseuBp46-LJ9T>_66dh3PD>odTtG zS4uP2m-5U==sx2=s_zu)t})g5@@m`A+1qT-Q1eWNa&l^>uzNQx5*anz!ivV{x&4>RpfT& zW-{EXLUQ7zxC7b!H77crt$XbF=$497B7M_L-yMNI`06jMF3Og=OjG)%o4z|keWXfM zFUl^ZZ`I8B8f?w9Cvnu5&u!-*#$ntpJE0CsSDVV-3sknvR2A@Lr&nPV-}tdEf^JuL z7fNhjJ#h-U1izy7a^ru*?$)~X@K9gCy5DQrO!cYz@F%xPt6`%{zM?CBj=<+4K8(7m zRhPl$zN#8LaZTYHLG9hpbtQ4wfH;!BTe!+@BUgI^kCf{tw$WfLQ0M630Chz=dJ3|1 zbX&6Y-QmN8rK45X(upyfop`{CRK=f8A_e~WtSa*ys*khBUAAx^rcl2}k;JA2CE8+h zD)QP@PZ)un4DDVc&i z&FQL+nZD2e{?}iwvVI&lj$z5uF}v7CQYCk`+*~n{%Y~~}R8_!b*+&0C^js6Ir6~56 z%b_iIpv0g+9bl;aiGmq~&fx{Bt^C_IUqBxdJ%FO^TswKVO&8G7P~(Ye@7l}HZ5s9Y zZ)#^9Q5{?d9oq|32f4j%z8W{1Xgx(2a0|%sZMuMy3^jqMj;^E5@dc`*{N6TSz%Ua% zkfP2xdA>~-P%zX%M0IkVbg*w4l{M7CMCDyx$NB=5m%H2MtMT}+>Y_s^+SzrM!`pNL zmmBI(qPn;)I_EcyDjKRtR9Dwkr~CrdRbFnJuf_lqJ&dB=TsQf-O&74Rp&E!<&@HHA zf77TReo>Qf;o;Z%E?ykGM z-=fN8z6BCJA&MhZDxoOlrhQe;`Y`)+M z@|K%MO*RzvXJ_-vyXECGH;o!+sMCn*>3Yg@ZW^_bp|GnW$CVDsrZqMolo(*+i}CR+UTLG-`80;m5yhel@q69P6f0%Ny!kqE>gS z%e`(Il`|ARh-UL^xHaTdH{ZwgnYcT0tUJ)gw|-Dh;PZMmzouJLu65I>I}NoZPQK6g zb$w;vm`0spD1772=KHyRajT5c^l+fAbe8wwwCv-!2%+H$#@ZsQV$ zx|pbS+&Xf+o7VN~_kaDx8~nFH{2Aiv37j0%*son@Jgcw338U>|{eH+Jy`pxQ<@>w- z#n1Kl@4&Aeh8M2>c6% z_Xn(&-f<3!z2nRS?cZ^Zi@oE(J|{B-VJreZWo2d~{D80$-ea~#C?ZTpcoQLucbNVN zyCIx}@CX9ND$^0~FPk77fN(Ct^9a8nERJWs?GTPYfJe0qyzpcyQE6EJXZAvvgm60o zTo7eC*JLu-<&jwn0b9p2Hy}KZ@C(A?Z8Dib2>T+OjxZhJO@u7o`3eZb5b6;wKzIP* zV}y2iU!RC@8^WsydDvn0L)Zo30)z(;K1OKQ0qsW^i*OdgY=j>W7RE=C0SJ2{OhmX1 z;eUVs-5%f)a?@Nbm-uNYn_thZr{mP~13;|Ed(Qf9eY@ujC~?oJGg15~l+AD8HjtBU zh{mBPU^7GE=bvnTpc|;O*70RxpnP_Ra919Cv+yq=olF#;{j>Q&ZjiiohZ5m}|K-B8J5MoDe4WVVhqxhf=AEv_ z9)`ka`)qzAw~<_Wr%~$}3ZL(@`HkJiI=LN{-B=#JLwKU{zBkHE6yM~t`Jry8e0+xz zVQ;+sm3jk9O*X%Y+eDte)4g$*q3~Tho8Q!JssrAkYg0M?4&jNR^wnrEQGAZh<~MVj z$@OpYDx~4TVp@+58AMLg&Oo*9iFm4<9>9c6SF8#pmK|ervb2Jb{N2VKqMeLcM`c z$l3fhZW|pOpRVjfhMGpywr*P;8xLLE%Kdi;PdrfhQ9r>%@%1>HAL&NQ0eC18R%5iG z@a;I8-_C8PbL7*NUE5Ija-7X?@3z+|^3b)tynZ)7>KPNom*H%F2e*U#ey6MP`seBm zeDlrbcXT`ISot(+nxXC?YA3go4wc8y?IdU4A-v?=IK)KnrRdIXXSw?hCBoj=%1|?i z+QsdnQ|8liV+BLaBx;l!r8DNCYm|I^hwzefM*^#D=3x!rW+JW#vIwRiJ_vY&}QNYUNh?sD#(E?}^s9wKTFw};N4PotJF z)WbyW>GsqK^g!(?kKWB!^^ej9l}e_jh#&Naf(iAz*-%dtRqJYXTs?Hv z%58TDFWDQLo9HtX-QVpm$K9bsSdHZkg=gbz{s4D?&aY2bHfN}3i5l<5>-2i)8ZU3% zA-rU7Jn^x5V-7{@T%G)NhZ12mt}xVdMAf@`9cQ1e>|us_fv5>?f_!hMQQH{mMWPOL z2g(C?8nv>ao+s)ccaZ#ir%`PT^%7AByMyJeJB|AABen5mq7HF~$Y*yNb)TVLA?i?f zs62P4QRf-zRicWnDF5AQ)ObU^M$}>MFnRG#qc%0v>qIrU2Kn+%qn0()8$=!M4wpyo zG%91LH;FpJ9U;HoY1HcPUB_ynCln(+u@CQAfF>Xw0W908UjoQFa?-6yZJ62x5)2Kxa^*&L@x#Q&fJB|A31GVu3qK%5m6_)6Xgv&f08?CVm*F3?Tw#a+eSaV9_miQudXM%lPBSY zw=923*Zd@RGJbWP=q9>J_|^3kH_4skCQTUuWqJaK>jC`gItjnJP6BJ9esw*ia20+j ztSVfM|M6_z)5`yt<)7+KmACQqV?(*2J|XHfcba^Pr%`XeuYUQIsMFo)MS2QHi%*ve z@ep2ek(gqlpHcJ-cZQsZhZ5l;(O{_0i8|ArS){A*beC>xs4s{*%biuEgK(hElIQT| z?_-Oa=$90o>?X^1c)Ea}-cvijBI;~+wmgWZQF9FSHBsldbL2-njk?ZIbBQ|Fom-@L zaIB8!%8hskFS)+gn&>waJCX>RY1Dcjp)BE9-m+RHk02$`%kb(03HEf*{u69Bd~WrhU@rmfKfx}8&#nFw z>?#i0h_Cs;Vh3_ro*1QC6LjTg!fb>e5EjO#R{jk@Ttv7W;cJOr(x~WB;JOI>G9ZAr9 z0XY->lcLwUYjr3=x`4M{R}1D5b)CCTM-!w`cN*$1qONz>7kMB7P}l3Eg66Ann2Bci z)6os?2Ax%qE?^r&Wr@1c-B{!a13=xVqX(KVU=b6|QS>HvlMWw97x3e2YG*l7H@lmQ zJYoR%)SGqoKnO2+)4s<6`XALsb!Vo4c*Z zlLhe0(``C(AiO;VKV6z`KVeog(Q1m`?rzti1L3cnVKv$t3KwiPKg~@m@@RoH>XTR1 z8*PZX!`)HjfdXjK9Xe^C`R=~KMB7qyx|^=E2GYH8yrJ3=b*HXJ-$pYyD4mMOLqGr08MV=p!Mr~=RJW=<#`-(g@05j-59VZaN zOHR>lCfb>z_q+Rbpg<@Q&W&$hR&R76>H+sak;ew4r|46L!j8gh{z3O(k%t99*MmAm zAcQ9tDnCU}H_>hseaJnea|A+(up0XsYC)nNb`KYMT0pw8gABD0QIEJsiaa9#x*pNt z0U^9(Z`7FR!W4bfJ*wjaLW!^%AH1aAScIs@++#XKAYIv+hJxp|Z2ocgc#%g30QI=e z6bO};tj5tM3MWh1{1fg8ohlGYgw@#5P;j%8%|Gd$)Y$^*YVo1m}T?NyXT8MU?5%D%MAr9ux$PX z_d=1!3P9HjI&UC^m+Xx_O%%o}+5C&{MV&YhN`%!IU?^<=&gNfoFBN&NK)SLE8w#79 zv-y|Z%SE0h09`NZn1K*pvNzs&UcJ$qqOZ7DbkIO35mw`FL#;s6tM1hzj}u5&_AEo; zF)^Ee&Ap~W1JbCmhJwLRHvhVNT}KC`Q9}&1B2jO+H*`Qj8nvXMRw3$5_oj{+NTYs# zPHkM3sJGl(I&2_~ddX0$5%sovTSpG0Q8ycEb)w#J@95xxH0mTntwGeg?p+-}kVfrh zs6Ir!=ibvH1Zh-%L#;{F`|f=mMUX~yGgM!qK5!rCK!P;t+d1lqenfrfKGd-UY1C7O zT8pTU+($Z`AdR}pP-_$QvHMs@6r@o{7z#Vnv-wZlCpxGgjoQvo{fYY2eX8RM(x}x8 zwJuSgxzBWHK^oQGQ0o!(x%*s47o<_2Jgc4Rg3TB3ypfGSm>FzH{Fdd3r*6 zk?L%yjfnc*eP8662+;Mt4pV6UA?~$j)PjvE`h)vH$0ekzal4_067{3|vB*Oa(x^#> z+JvZ|+)p|hA&uJ0P@56;v-`Qo0}b$${X2JqEgcjf{XepZa|a|46Q!mh5H+G@I!Pb8QYYDYFBrLYAwj zeGTS5d029Pfp7BI#0~TN!e__|?1G4pUC?%cU63W$s;9=Pq*>5dG-xV9Cw!CH41vEC zER63k`yecZZ!hB!@R2w31-`rNk8dpSEth!_-&989`w0#T%V45srXb+txy*+6PI4(i z7i>q{8sT1q1+e{WH-y&^M&jGYn+V(BTgP<>pCT-aZyUQKT!F9>zHJ<6ZGR7<#dGQuw`;G!vFsM*8~5Tdf;u$@%Udg7NMJe$0Au}Wxo&ZAsp^%|gNG(6G(Z1&kDB9p!0K^sUKv^fpUDBb}?3Qw>-JIoGN11sCbCU1qE?+AT{pL&Rj;e-;<^^3u~f%3*%6a}QAZren$xD}XRG-_X13L+Bbuym*b#$G z-9c1G<0EX^=9RXv*>}a%Rr@vtqu0$3W9!=#n+#$3kN&LY9L(}**7UoTzlb*&3kIT- zFRg3Xl|3@>rzr0(uyk6`En2`$vl1p-U0t`rS0uZ*POgh}_WaJ#ba74TwcaRH@oJv0 zaeVqGHT)1ZoHkgn0A|N8W_E93$451ZwRb^0`z+Xeds}xI46#Za%1Y40Yo1kNaWktc zQ3({>wN&pm-2tTrea??+dy&P`W~_`~BdbB+6bUZx;Q|p5rA9Kmxa>mGC2s@3XF{w% z!OSU*>*U(nwTJbh$y-R5pdvQ&6Xm4ko4jB@_(6?5jE$w~Th1EW-7E`ZecZ{fT;U4Y z)%S$WKD80;@i?oInrkg@`EuXJD$~Hq(88|VDzl^+FvcnqUheU0$QSH823K1!La9Yy zzH0Tr_v)g72m3h zj%BH|g=`mZjy0g!F5cDTWqV31$@X#iJRQPi2H1V16BZ5n2TR^MS~uzb_(rvq?JBJ- zJ0wd9=5V3o{0!t&(|H10PMgdHO6y!;esqp7ohMQ!EjT+$XQ?raRrNm}!?)+EcVuS^ z`#*1I>#y)w@mK|I48l8oV)5g0#2bB~L)7S?b_rhr$>;T5tausl!Zy$w@LKUUg<_5Y zaU=g1>hQ+b>H?Vu)BZJ|9L)La0xhqtU9v`7$rCx`w5jc!EZI-Zu2GM+yl%BOos+1O z7PwvfGzy%xG&ZtNj>ofKsV`2YG%a(x&X@EVCVd*EX|daFzNEJ@>C-7qOWp%SPrkvP z_@%n>Ojd?wy^C69)-v1bSY=S1rt1(si}y2iXHgyPe-|@#ePn10v)tfnt#Bfk6&GUnd9ob6Ubw)la6nb=|sVq}?adVm(y2#`>n(^|dO(BHFsCl+JTZ z=h@UrTfil(ib2h4VrzL@SA%CfP2_Me`eHCzQ_9L#$~i0r)`Dgd9@d=qGTkMt2(3Qz zUBolAsi~?zmqoyYvDkwR=?`MbpwlsdhN5TC*TE`vI8tWb+*R(R8o7m{C3(~RwzCy? z9*d(PBz&=y)7DX2C{gY}ZK8y6q90?kw;mYnr_66Sha08~{oss>Hil8E_DOtH>AehU z+TRV{K5)RIkF*7R>g?qKz!uTKayix?M~T`8^za!?>pgs^*qvuC>wrgMyM(@Ds7m(4~#b7Bb z>|z#1J5hMKXKxNO#|JeadNZdjh!se7$?AT*!5o(who`Vwlp{7;`b_q_YfAvZ&srb zU`3X}*18OSWz4*V&>O#B-HlL<->|ktz-RPKU;K`BIzkU9KNR6f1RVb%mkV3sH>`H} z?P>>vHxMpphyB3_L@VLX1T8in7f-bdIP zCyNZ}ir>x^|>*^V!ARg4^&k~iqm1ZV00%N+XDUl})`Wjf*%HPpEX;j3URC029fCjed>iU8G z{w+0E-Z$v9V7*kGOO_HoJKS#a^2h>#9A>VTqrnYzMlkg(_m!k1=((QXSni zY-;NEG>0Ywn`rttHoesABHsPJ1kYZ?26^e>ZV>vbGvCNc^{=(fUl^~`Xr`+EHr9yV zABI_t_A-Ylu^O>~O;#lAuTxCj?NmoM5t~!pKoDD)-hqFouIRYcOz$-6rDKULP47PD zf+aSr$sR#h6uLCk5q^G!6W%6T3yt(0cRB5As_O4xjp(mpgw<$YbMX?dk#BOdl?i)r zW79jGdgS){b#*tQ%L5#!{hGpHdcoMi)QvYUH!*d6eVc-%wbrk(t#4DT!@}|pu=4L=`E;eRGs~|4 zv6EFKc-m{UO4f5AN?pbNV)v`0ReF?PWBE(7zHcNxmyE(sThcgROX{7pqN%FCmo=w* zk5N|hdUM|so9SFqo2+oy5qq1u8B|90xAdEB`=q9274rXpL*};VNBRQ+jQsD4fRv=WC7Ikrq2u^$)V)^eQvP8h)txf-2GQM0@+T z)ZW%Tzr8~1nX3ASSP43<8Ecg&nyaZ2mB0tDaiw~<=?*BhAda$PA7-)ig0sIBdziVb z!iC_UYy+ayNS3~^_~^{W7XgntA#sU9fO}@U54Ju*_Y~lh=%Qty5tD{{` zRsADuES>p`x5hS@x2;$okH%H2nHfIXkMliYvrkO4$K$LZ~${n^Uh?Wx`uw{2KBF`;NiY7K~8p2034~+QMoj-(mDobRcV00b+txFBr=3Djw@^ zar}YJF9P;qU7PNz@!U~eI5c%l1~x8IIJi&rZ=&0+gfkefZbm?R88MA zlFRy*G~TJIm-{pNUOL!Xf28?A3zy)i^|40dM;g?q*+#eSZRZ)9&Q#Su!C6YzPKQ{} zA7yUV!h4Iq%i-6dzNNcjetQA;fZ|ztHqM7E;N6Rt9viYg1f11;a9=eXU zB9AkFcv#VF#SiCriLP$q2T6WVIFLggTfD;S98X&IrjKPF?@Y<{F}7ky!ya79`nHs) z1ZGdGo~iu9+F?(rljX*b-o}o#79Vf^{9>Jqsb+Ny*PGI}EZ7tI?E`F<+HBKY&1(Ab z5#2v`mMSxw-A|`x$Jv}a!Q2MM=3MyT9eXSd?>GLU&}P=suNbP8U1+RTOG_ZCHo~g* zEUQLOYA0INPBa&VG@?>TrGJfXcG}>oEF6@W8KtLJ%OmTjhrbc{N8#2^ujB%->ysJ` z{3e#AjcD;?Yw=0uVlg%tm=N|r(9icm>36%>0M+1aLT#R}F_`m&YV;gy1V44fQ*5rD zZ0;Omb2WSk809Z4+z_I984O41`O9}6Rjsv?b}g&b3#`>C?iBMH8CE8|T3V~_i^tW- z7pV@e_sqRyS{=N?+AiFqqx(q97ucz${CO&e(?0V`8B-qYrb^tF?8!LTgcbYQ1sBD7 zrtT%GqkBL6E*kx!fE!t`N?jCHQO}0Wt^r>>ruM%~opc6xMqH;o;)aSZoFBz!n&MZe znEnILl;YTZE4+=UzML_`?d>3Z<2baR^R zjyE4wcf3Y0shqwH&u*kV7{ALSoh^@F zFVp!3b<)Y9-Q|dR-@l$@$}tze!TeLLio4qu(Q?S9oB(PATNm5AwPWn zil47l^}~nM`gd6}9ZO!AEZHwD+6CF#?7)$S$mr>EBZq2#^c2>Dd3twSF zQQ>g4Af-V;jQGk`_)kSr=>^F>#coL%u#LMQiU}; zi;psW@?=YofbwM97sQQJ3{iYF8OjyQf28V+3?3fTZM(uBWtld$+eXV7zoP`3%lMX* z5DTOv)48-z>1!~&vBo~mwSY|Bg8cwZzE7Pe-@9;KXufw*RbN?ukME3(R2yxCqBfSU zM6;dU*~*t!UpQMduf8S9$2?{6K`pGKgHHPgYH{jJ^}^S@R_Mv`HjZ?E5Vw+us)L=n z!3BCmIIw@C(Mwoyb6Ff+LQb>drkWq(3gp~w{8k&fU!M z(+<~Ill!w=e_c8l6PubN6W3oT*yPkd|6X;-_pA!tTFz*FhwN;kKTwpuE@xURZZrqW z{>7pB3YHqwu*d(rM|Jy=1<)hr{Vc$5u=jKD77l!=-36hV>89o zd|nT+;(lgvbhG(TP-}mK3$C4!^K%>f{%-ZeFVsn=oDWl{@8RfON)J3Z_Q4*#j%3f^ zRS+p`z&wVj);GH zgpUvo!Upok5EjPfaXLeS4N(Tq$eD|va7k<&KM&!!HrSw!4deS^gZKv6Abtjd!v^s= z2uov=_*C#ZVI%ow2$K;0Kv)x-$`3>M0-+b=t_1E1Y$RU}8_B02oPmwxd2A#<9^qhY zB(K0m^2-p;#76R^v4MO~Y#zS{aSh@-5Nfc2d{=~55f;P-@(Bn}A}oeYBBhmGa@<680dG%bq1agn0)-^aK}4Fw^m)zkc10O!7Ds5C7yR7&xN zMm)Q3_(#J-tdQSX2ps@FZiNKv3_KH??vy<0x2}o)K~Z`Ie$qtmGN0G2sb66rUr53R zqzdtseDQYm#GfpQPK0N*zLMvg=sb$jv+z@KQ7gaMMs8>Fe^H)3ho3R|d(ESE*vJ`f zXl$?FOgF>LEObgVEp!Sp_0e#7JS zRoB4#GJ7!JWDf@ObB437EQxQj^Nzb!ohMJ^^ql;XRpvo+Ngk^VMz!fWgl+3%>g2MV z-jrXVx(X04o8F+V)BO(w)owbz%rC^Ym703KYth-(7t`G|H(m88Y(=4#-vX|@MGdUr zDAIHDYgVI&%_aI!Uji;X{4UUBMZyMdZR+GQoi3hVw{|^ZzSAqbIy5Heua@eG#iPu0 z%E3B)KfgttYl3)_L|?CSsDBh2jwhXFcFhKOo1H`PuAt|)QbI99YHOfhWNL3#r^#TY7Y*!g>g3>^4yoTYb&s2;cdyP@xOF<8zDZS-J9v7k{(w4% zf_R@qY~ltp$F8ETt-XqDIegO3yQe(yw0p`uZ5P5U_oSOukj7G%Xp@&*C#$)<(bFOI zM^^J^%q@Ma=Dg&ZtZ+CZAHGo?A-DB(QvI>1n{EE(8wGXU!pgSpH03+N`iE@jT!+!&JDZarrI5(Rs?va!(byk$lq4bWd7m`lWNcuU92> zS^#~6e`%F?&W;TzQ3%nhFP(&ku+!HbFJ9t?f3z#e*V@K5T!;k zytwQ_(hbfAfG=@)6bfz@rExQHAJD~7>Rua(2BWKot3)|z`6e&e(buVubzlO0rhjXV zeZfvni1qPIe~%3B#j|`**z8jq(H@Vp8mYN0tWROjzj&=GqjMSPh5b9L%!_tFL##64 zEr`?eb>nc6(I1o#AUgeXXt>}(tXn3nqHi$_UoVo zdXCSwSU}iy=bNZbPoU@c97X*tyQT7R8{5w0b*=(^%IjQ(3J~Qj)*;?VzZ=7RH8pL< z`1v(zsm@}cb9$Wn-a=P~Exp-9bwC3>)>oxk+EOLZ+Ho+J zs{+Iic7>IGbX|l?m2VvU>)Rp%7y9qGceO_Xe)2=f;Jrv4GSfc-m);{Y6FcXmdj=j% zXOwv2g=c*;fQ9q?_uU6p)`#vr_hGVIue?g#s$*8@8vkc&)<<^UN_b`3^KYUxL0ghL zJ+?M=I*)}u^nbC=`PdF-@fQ;o?_l`}n^}58)J#16H)>|so9Qb9lk%l2)f}DlLht-K z>18O0->hBXLX&u5;Ekf`3p^U2V3TBfe$Iri5W9($zW-F?oorDKel$Q)&6~WHbhYa1 zv>6^7@TYa(r*`a2*nRf;(0r}KiT}_Pb&1ZV;UNR_tS3IRLuz6p9PWnt2OEYV*}%%z z0V_PdKnJW;fM^%L0?|)lv3`$S?13n;8~RDiiY3{%iRZC!mt?D688HL>Gl(w^Pm?vK zH!)_0v*(}rf4>}bg?e9S#PC>#1#H>+!VZfGdp~M@tkH?x(4`yQy0_B%FIOdW1PxDp z=x9CvrJY3+POI>>y9SRSCA(sNdjZ2g(8^wh>o(7l(7`rCL3Fa72vXHhEu{9&(FXS1)+8UH)N=wWozbCla36)$96fjo>WgK z8p%FyqLK6Qwcv$IRRf*#gCjGFU9Fqv+JQf@30Kif^XH@G7~)Y@qz(<@aTz)^r~<@- z*7{(G!Z}`|tDD#j&7NP3Lmqo@4X<%`! zh{dhL!lgGLY?%*yb2U3{@MW;Dcw%Oho?fV~W=7K^>!*i*6!DL~t({)UnK9xb4Tg@N z;=wCR+F<-(=TOB4gO5OZ-<#I_lV12Th!Mb(p4vQLWAM<0s*#Sm;vp|^NW=%%AMMPm z*jx?o|1oLgc!9(Td zb;zL}xiULg&etP9eg3L2U#sk6XR8-@Slzr1(CaO+Lq~r-Z zWRgshU9zw&?9#ii0!ptcRgm6$la3&`xGNwaO{7T?R8T}kM0$&&2#NvR8G5ofaz8c&|CrwSq+B$5 zE@NzcSrNKfPgaC(;%D~4bFhDA32Ew+_0;)C_|7LK)6|oVv5jQvbn`};I^D$2^EE?< zhCKAb6X1oXx{E$4xv-gZ&1NGy41cGs71nIVN+p}&(!t^IjPtxnFHG>FS2^*gp>NH@ zHsRm@JD-%BmO8hge*^HJ+oW^!=={Tg=aW)s^b})kQ(0-c*+f>FZsI2c!-*z0`k$=L z-|a&Q<_FTnnpfD z|8U}kY49V`KUf!PbUxTpZqFXZEk zfiBs_XK=UeK=pSdiu*oi*h2d$9euP>-$zH{)K`#PGR0o^R`e)DD z$Le|V&pe(_DoFDzXy~7Myf9BLPtvEA7gywj!>|B!DpUSnnQ4?}%JpsMXY2e`@;l11 zYM_dkc>6v3g^j6#wXrhwb&w-wdI`SRF%2scNvB_8OekAfWqKZ6y}J)zy_>c~r${VeNS+Xl-PRWwFCH0-F~{0m4y&3;|-GUg@Y#I8-AQJfYh{dzrO>-cMvr~l1}+~wBvZuBg7(U=!qp`6yCb|jrH z`^4+G0xOqNF{-$jaBGCtEi#q|;@c=DzCMr;#aiff!6v57!P}3n^^{Pyl`=1Brs>ml zn0WdtW%{n7tKBLph~(+>Ks+p&dGciZMJq;g=s|^Y7XHc{%F_L5;cD(>Rdu=+{Dsp1 znt2Iw8`^bvIj*IC=kuhS%-VDtx1^Q&Whm*#d} zwt9k6-`}^>4-eo%@|WJ<1tSr&n>7nPzU31PE-kh7l3#L9U(`8v58LT{@p;-UvfaD? zs59riVA)wG;Gt za-uWq4%*!1>FVvtnY3=hv+Bm~E@#f*9H}Xmo7UC$lC8>xB2Kcklz(g?gDw-6P&(P7 z`-pxk*Q2}WOWId#MFq!-3Y{;^!@{f*BYIvA&dg~){FOFeSvqFV=fR#VJ@q2I^0j21}s+ba5`4g&I%&`6fM@b3=E@p0r(`@v?(g)QkBd-S^KS>}>Qup$?_U;bH% zR&o!oq+a&)p0ex(#s}D#{CM>Mwb8qIagSG*JWlmCXRS8qQTjKUSYqTKJzhm-^A694 zK|~IN!fvuf2SNs2$SdI~ZoK$7IO^(+5iz4#baAZ&et^qEy8vC%itapqY~?Q>>c>`F zHK%2zHwfu?!CgX6ZI?e7qjLr)rut4=*Bq`_IbS5|U34VU5$Jm^9frrtss{A<9v*0C zWLtF$hgo3@4ncM4@ZT|p-j8`nacriqk?qX;(YlLnuf6E@j*D(@zv%X>7u|m4qTA2O z?E>SU#(l@re*U8NO&8tXe9`SK7v285Wx@0H2HmN&G9&47yPe9KNzZ!eJ*bI}()6>k zZP2HW?tdHgH*pU|x~IQD9hT+dy#%eieCuW2e5~*}5WUSx=P2pjsb@me#EI%tRp^N- zn(a4mcz@+_=nEU!#`^C#lRQ#|*%kQa&=v;u_8s_sd9-Qse zwALu<78%Rq&1%Z$K!5OdiHzmx{lh~HJ@DH>w1?~dvYR_z)XT`E#l&Wc?dDGQ4J->3 ze^ONIP__lyN(+=?|I zIDh}FnrzY2sw=CT;^=2rr*bJL*@@D5kh7Gh8e8dPhn{7rjh|&dy=1+^C;dINW@Y(2 zn=a<1AN#}Oi(k9&Fxt=UI|hBP5+aYs@8)vI5L*5e?{kuh#Z#Vrk~>` zy~EJesJMyaLR0ykk+F0sC?3uc8{RN7mM)mY!#QHZua1nR%NEg$`EQl{k+F0M9`41# zz37PNS(Z(W`;QharDB5mmiB9Uw?A1G^=8wVs&Q3n=8HMi@TYJ)Epr6@Vw1j|FLU&T z+xaucUASE!bJB&|1v95yxLqi7#)aF3GiP78T_lsfJf^3aP&D!H<~cuXzbaqm!V9 zhvSBY6B=5yf5|HN_fy@h4`^ae)^&9Kiiz~)JS+eCl!-oNRwo*=jK204nMkh$tO7Dv z#U6|%(kYCUM#Jgh(|VUCpnukDVoqW{8C;gmb0TGvlu7?v{F=zhqKho?105eHS#)tE zzFlDaJ9us?F#cU6zpm$fmOdOwR$0sFcu0)Q%6Zu%J%R(B4`)9$#ij$D&z6(z%BAQL zgkC+^OKG<=GU$3q`jLcR>)-_uomW@+)Jw=(K{F_t9L19m?Z3C+80TY;zHF%IgAso2 zp+lLUd(!`+#49I0;paZ|Ma67=tc%*C^xUr$eGI|VP=+cONjK>4wfQouIcj(&y$Hzu z!Yz^>p$-Yr)QqR;TsP54t5hh>iDuDdh!W06>B2z?S#4jm(VnN@Pr1-;Q$u+^V7W(G$|xtj_d<&sd+&wZ-H7)~ z*<3gh-##vz>HIowdR5GL&&%dx7n>ee>B>O~c-@ms>qsB0&|_gjZgoBtck2y!MS$no zk@Q@_=i^1wx>;T5?xFXM%yD$dAAXjl>+d8)(&<~Eyua~dk$gFmA2ZQqEcc+3dxtDgpxj< zq2;&2_sbJ#=S_^}aMS6sGYP(DcGa)-QY%=gs+>tB`@E;>*YeR+s_C?8@1|#|WVdp0 zde!bm%w)IAQhp_`U(VCXDc3UdlUbF|lf!+ZA!mrby@f}w~V7}s_<>@JdQ3oLTf_r`n?-H_HRYX==k znb+i{yO*xak&y1t4wayyS#;eDIzPd5m-VM*&7f;qB+w4$@(xGi(s>qI!`nR9@V1_- z-hKqF$nl~c0Fum7d=^OMmNV3CQn>JUt zwOvJJUf%3uw1_DQsVO;<`K^;g`qk+il}jWiBuDrpw&pEGm$Tq);mNibL*wJV!5yIQl8eWl zBkk!4G=jdDF6l(a3_W}%;BlAU_oFWa^Z6!yxtEr(0gcbM=nc9I`VuadnflO|YPru} z7{agb^3rnBCsxUku{_Mops%MU@O^1e@;cBw=o_Fo-t@05(y&i1-ofZAnY@G1S1EZ9 zVvVzLJ2IAsWkh)heP@uS#`izB@pS3+{8%2Ex|H7iF$R}CE1okrtzyZnk9h|>#G8%2 z+n11@h;6{#Gw92C33%sAkDex@V|qMoT3xzC1TU}dAoHTvA+ZH{QkElwE?z-97mt=f zU)iR|gADqfUIIO;=sTasU4G@hHg*!~%h3@=$(sp)h)mrJnq zOz9daOxnMB3gMDCQQCDg=rSP*`DXKWx+=9eJsRTQQ!qVeP>&%%7JXF@+m>HjOrTEm zsT(~8$$aQk@}lh>&d%1YIg+fn#h{lByclt#=nhfG^)l%4Cl?mzq6N4r&2zIa&B$<@ z(8Wh&dg%jcMZ<-?(Ejt^xASvvMOqj7;4L}pAnz6{QfarKuMsAs=b+t!_f`5%A59uN zBG!=(GoKGL9(N**OCO=pcHlj$NY)Xa#8*6t3wxFs+o`gSQuBpPY^En+$KxquuNqRR zTGm%QflX;N0s2;1LOPwU(6e~fH#Af)0y^q_Kb>Cg>bGf4ejkax3l)DHWjlW9D;<1n z?!vhdAHRHyk6-#y1nyTle(4Jh+=sqbKtsagmp*f&c)8F->dC|9|cwVnxSRTH`%frVYPn-JC_nWxSZuAM4hdz6w<>6sw27QYO z%X3VYr}4#)9dBSXe&2*%=hE%8F5@^f=>5M7eR*B=en6kKC9Cr(js)7B z3^jfa4M~VbFP@M_*{PQwAr&*EiBwOW_#RDQJpU<8=5^tdYaFYz?!goI1M-AFHYhcjXHvgj+FKT4fYb#z`rDByzwRniFhSJ{~kJ9}(p04&m zx%(Bmno0XRG6&x_D2sdCxtvbU=~Ss?$M)(tT@#7lA1ZlM$EG(@o*@@|%upp849)1v zo#|ghSw`o@PnPqF63!Y`_=N+{{Wki)XjCcMcj#cStoL*L)qz)&W(6K_M zeOJ+iQPoPilFIY+KfV5(;{;t8_ zH`QjkUB~E5hrl*tl@V1tEpGjp{w63ZdfZM>S4USF391wQEvK5&GA5`g(OaSkY93nO zi>{{I-_Ve#8t66m64dJzc{=$T@Dxfl=G(V4Zq=CH2W~ux{;tN~*YWpj{QV1m^WDU) zRq(eJ{!YDV&`nYG2>!0bkRAAY41d#_SWRZCas*cg$ z1T~<=Dr1G}+Je`8VGCa0Pg`tlu|ln**MU*hwk@yk{rI~bfA_TKB|qGr*XT#OP1~dc zFWc!3Jp8GSJp4#UzFof4D&wfi--)MFzccq7LVpv~n9jUBQ}K5`{=PteqpErrt4WgD z-{pla3F=%I-nOY-x#weDd3%0Ex1%bl8&BuDZl$_KRV&s&qR+-Ph~5UBOt}OQ{OR^Z5G;{Y_9G^y0O+>E=m| z6I8pKdG5E|%+q`fLw4WHOVY15Px*=7&Aq64z4vCdLM05~aeo}Z%Wz~g_qllt_gO}N zY5B+S@N@Jxs?x^t_OFP)X?G>w6;-2GZKgggS970X_&b;W9#jqMW4BbTC~WMdONuFa z&gCP5_gSNOF11MAi?*_g+YXcX+C(*|O{pKy=Bk>?ptdtmqN)$s29KAdIziQqLWWHb z{avAEP;T`k)DB9aqthrxKV}Q%Q5jHmqZf^rM=gh%L3!2pP&+79wTFJyQI!U@5#@)viV8w~ zFDo37x+ z``IG2U8nj%Pl*OV>(KLhH3-^-wj0!7Xq)I(Xt!t>MDP64I@D1a&?jiCt8RzrO%Ph! zx+)8z7wOcqo*Dtsiv!vt>Z?)Mp7eT>wr2x18f|puNNo+(ShUf}EVbRJ#-WYQi&SaV zNKJssL5A z>qwpGI&!3n`Iq6)Zm)c0@JG_3yNqtENp_-(D zq|dM{i%3IApQG(pjJH{R1w|d6$_wfklq&iLDowggy{Nv0Dv3_vxLs&mPn+~b^*!#t zIws$Ltl0g>;w8I<#>=F(h{d8Gks`gMEQo%_yuil^Z&Uwl`HCh_1{+&wzVXDnwryS98=` zDxbxVrt~Fc+Sc!=0#E_yJyi%j=}R{1ezi{(fvS@hsP|Pdh)RUjBkDs{0_s9~TpduQ zEZ!3O{`**!M%xf->!k`9m7tMOL8A&ZozzzqG^#;!NCQbVuq=y7LrAsIwie?RGwMPw zKqZX&&>m4k=o8YDs-)2fIx4!!(vQ1*|CKbFTKf3=&ee+DexwFenKs zZDc?NpmgJQs0?YfDr;mx6`*U35l{otdR5UF1>J$RD#mDND%z?WVB=0S}}>s2@70jLw&dK&YgfoSV(JOqt|`WXwM3D7`e5p*9km>=kM+A@u$(3{W*V;Qs`y3<$z9f8IgtDtY8@x~hHEHuejhx>h@ z;U?PZ9%BRU_c|uu@2uGUevh#c<5i;%u{KfL`%qnIn(-mj9GYQ#1a%_4pk^8$Lp`85 z#zANp>18#~_zb!OZ4VlsL-(NVA>#%?d(8L>dIoJz7{{QO(YDn12HK0Z z<;J(rC(tV66m*QVNv$=$hki%f2IB{aU(jw+&lo>J$)p$5bH*=FDQL6t8&rk#vU<_@ z9l8;1FB^YA?a;QvI0yBGb{c;{gQ3?A!{&Q>6tssMk4eq^s(VXFF~IgIiX$9=SDKL5BkDLvGwuJ_xo2yURxjUhjM7$U5w76=#k1+ zCyZQC-V45^@mK?+ky3PiO`2t%68#8$XWW9eU!Wh1p;6n)rOsfyUyV%2qnF;c`pvil zDhQo1?u_#Mnqhvw8{;pU-|t4E!}Gg_dagD96jg-I89v&oLR7!x@ce3Gnsy`&Y6e9k z`JtYW6DjQQ{MuoDZlt6WTR%6l3DX=-J@=Z4qAVy!WHZ`EK{+E^G0m}Qki*;pB|=H&Rwxb1Wp0B?Lb=UXAiiSkNi&bR3#tL7n!BNf zP(Jfbs3laud>iTx6*Aw0217;651I1D${>nP;IhP!;nWlt3TtpERrS8}hVIBtzBB2viWN zVOmfbsHPc(DnYeO7petaXC^}RpzBQ^Y68_YlcCm7Ju?OB3e`9BLIa@&W*U?QH8u-D zjgo9a8jG;z_f!Sqt)^F6MPm0jR5a1C$PRH|s&Qp`K<#s3CN-*%)dA z^)Z`5J)wSP3uq8Dz-$eTfCicEpvll+vm-Pcy4CCgErN!b-Jw-bhS>{x9=hG^1HA!d znf;-I&&ITN}Iy3d>g&4A{a^PmOL1LlJe{qPY@ zbH4cyM0J^@hs;MHs+c4#G#`U@LW|5Np!cE2%%#v5&|-5rbP8Hxu7duAmYQp!L@F;i zX)ZH2K=j2U(sJ`@C_l8q+z6F`R+`U2S3|4J=b?(wYI6%z16pIg2-ShsnlC~0C2N|) zI&&M;3R-XOfI2}N%vYgaP+;zY20~ApuR~N1PE&ctd;=N@Z8YD6#zD`TZ$VR_=gfDY zInXBaJ!k>+y!k$~7}{)p2(5*-m>)r#p{?dYXeYGI{2Y20+F^bH9fn>tzk*IfyUgRz zIp}rsTPP`o*I~DL3MvY{VSW##LvNZtLe-$R&0nF$&^zWCs5A7Q`3E!v`oR1Pngo4l z8j1Y)@-Xy~X+f)@111$dQQJo76VrpXK?lu5=ym8*(}(s!pP4zKPodAv+|UW=u$c$? z8T!IZgCco&ZI7DypG&4?TlFqS_7RmuZO6dj@te->q2ir=gkJtXOOZQ zLC2to)dczlvaIHiNu>@a&8XE1$_cqvTc{|MV0C~hKsl_=P)#Vw>IOA}a#=m0c2I7s zH`E=fl{r3&

H5eKX6|javGogakZP3F|A!|6a1S(=>LF=KS)(GfDsF*bh z+6k4g#z5~uC9S(4Dy5)xFJ+B~jzOiZNzl(wx^)j^&<9s1&9c@sC;=*O-3z5b*IKio zQcy)}E>r=kY&`(gfvQ>ypq5Z|Ya!GHs%bq64T5T0i=mOw_12TnIOqoJDd--kjPTA)@JBE zsEPFg^fA=b+6oYz9cpRqgp4%a@~y1bpaiJ3wHr!<+E{y_ zQczoKFH{X`XT1&G1hu!`g*rf;tq-9AP#5bXXe89#Ita~xZnh3XPe8q`FQDh4e%9B} zc4(k=0(uJ?WSxXQhXz~UL%%>ntRJAne7t_QT0cRBp`q3>~`Z)mDj9U1{mvuZ;0B@UYAbgMSB z1e#%84?PdvYt@0?f@WIvAS#rh@n%^Kpx>d{){Rh3`V8DwbF9WtDd;|{2~-=JYc+$Y zY=C;svsyrdp!=;>(0J$ps|~aWdeCYQZH4ArouGZt0;>!3E%cDp4T{p|`?h-6>H!sn z7FxZa>d+%rAE*Vi$m$36gC4a8L8GC^tijOz(Bsyv(0XXGH4NGVJz-@+N1-Lw2#CLg zYpW-%QBXc;sWk?w3O!}r1+{^eS>vI>&~j@MG!gEm@E zLMNbSt!0oy6%@95&RPkTf;L%epc|m)t@ThhXtVV+Gz!{cJqtYuyrg;lnK3Qoq+Cz_FAW) z<VuLLj4d)A*&WoV!E7t{uN--`JB*m@iEfn`JY zKp$ET^a!-y@}Os+kE}#!H*~=Ap+nHeR!-<==o2d$N+`+8a?nbFibJ1Td7+xnXI2{2 z8aia3VWt?72bk^zvWkG*f{h-;v(R9uvi&DC394eBhaQ6H)B7ZTG+hT(vm?-} zP<7jaK89-8QRp;O({>@}8eXzmb^=rcs%__hszKM;Nl**udOH`?54yq54UK{7*mm6?lFv?3z#|sHJ^9)D&uE*MkN?t?dTTRH%*J z2wDTRwQqvnh1%Iop&y|3c5^7PBG0db-4ZGeb+lVUHK9&++a&(9tQ~2e>TI`%`inY3 zBSoE|>7*p;*%f+N)E!zW>IrQo?WdkMLwliKb|2^5v*`kAV7;zEHQ>qo7+!Uz0{dqev&z?eF{y+is=&9|pOM@7@1-$XN@#LBwoOsFX7M;dQ7R0UdK z-v`|UJ!H>=xMnW_8YFrN z8c9l`xo?A}i*`Vdh+c)(igrOSk$$D|UWeW$omGqMH=xha^HKXv=rnphYQF^;Rk`P5 z_B&8+Qj&Vyeh(^1`jzxPR24lJ+aE%W(DMoVBkakYNS~-D?2pklfOK9hvp8x5~mxTJF=UV$J=nnK;YnOqhqUSpMYUp9~TyK|yR-@;7`x8~ zy-jUVBe3g32cf6!hR|2gGj=2BCupO66Z9watlbo{Yfx3T@toZpN+Lx`EulitCc8CM z7CoQ0+d?%-NyhVbd#C}l#qJ1ogkH2eW2py`==uV7SF{Z!Ehi0v?j+?lUa|*6(@3et zHv3j+0jYqo-5v%lBNZWKV453Aw%TFej<&6&62=buVd!mAY2#J<5$F?AS!0*|D8~B+ zkBDYKnb!$z=X~g{wu{_#cY6TBMD?-@XcMTrJYZ|Jc4dna|I3 zwa6j60;H=&KDR4Dx?1G0T`f6QEpo)ZE;%;8Bld1gldDCB`(KK?%4Vn(f)aOeq1dQ z_}_@QS|sqljSfN^SBnJx$>?B+t3?9;yXa7et3?9;`{->DSBnJx>F98Xt3?9;$7mL0 zCb52wj)b^cB=CQYj)u5eB=FBf?}AD~XQLA!t`-UWKcja;TrCp#=c7}ghLCcmLtHHq z_z`C&#ML5!Z#i=yt`-UWs51}ZYLUQqoChGT772XUnGbQbNZ@!C44#wMgJ6 zI*TB#776?u&SMZ)iv+&!EQYvRB=D1*CD2kRr?V8|YLURt%B=GY%>maTc3H-dy28gRg0zcJx8sch^z)y2FLR>8p`1zdYAg&e( z{QS=I5Lb%?enIC2h^s{czp(QX#ML5!U&Pr4akWU`7j7H`6~xsdfnUQp4so?e z;Ma6cKwK>n__dsq5Lb%?{&mjx5Lb%?{`Jle5Lb%?{teDg5Lb%?eqHBRh^s{czn*gj z;%bq=ukW0NxLPFe8#?D8t`-UWMvltMMOx#C68N_}4Ir)-3H&Ul5yaIZfj`1& z0&%rS;E!^eLtHHq_@kXx5Lb%?{#d6i#ML5!KhEg@akWU`PjEUzTrCp#lbmi4SBnJx zWTz*@)gpmE#pw-kwMgJkbNWGCEfV-MoPiKmiv<2mXE4OoB7r~K847W=NZ`+LZiBd5 zB=GNZhC^H}68LkSOo*#R0)L)!2gKDPfq%a<65?u+z<iv<2d&P0f-MFRg}=Wb{qw9vT+;%bq=f5e#zakWU`FLI_sTrCp#k2?24 zTrCp#k2$j-t`-UW$DKJ4SBnJxVrMSI)gpoagmXW{)gpnv#CZ_nYLUQy%6S;#YLUQS z;XDd)wMgKvau!2eEfV-^oF^f!776@y&N7IrMFM|=vl8NJk-!g})eu*U1pd>`T8OJf z0)L~k0pe|(3t3?8T zxAPvv)gpnv$N2!_YLUQy)7cMkwMgLabq+vWEfV-|I|m`I776@!okI{;iv<2Y=Lp2r zB7y&b^CiU9B7wi(IR0{^h{ zE5y|zf&Yc`JH*u@f&ZoRC&bkvf&aDh7sS;ffq&eIr1B#sSBnJx3CD)GT7=G692eqh z5jtaW5+SY@p>q@`3F2xII!AGmA+8poa}*~J#ML5nj^d<2TrEQ9C{6*0t3?9;tWy}` zY7sg|af(4)EkfrgPDzNXMFL;Br6H~sp>q`XYKW^v0^fAYL0m0DXDseD5Lb)P8H-yH z;%X5(V{t1(TrEOpEN)eZt3?7o!L0#twFsS~xV0dz7NK(#_d1BHMd+-=tpjnj2%U$x z^&zenp)(KnMu@9L=v>3S3F2xII=gV2L0m0D=M!#Ah^s{czku5Y;%bq=FXXm|xLSnH zAlyz6SBua&gWDAv1eI`mKwK?CX9@1j5Lb%?{#9-th^s{czqH#A;%X5(gK!5xTrEOp z5bhv|t3~Jx!W|58wFsR-xVJ)FEfVb&VaaDB=BpyGa;@Pp>q^>HpJB;bROc~ z4{@~!orky&LR>9EXCCgu5Lb)PxrX}~#ML5!-^5)EakU7YYq(1xt`-UWR_+Rjt3~Ks z!(9b&wFsSSxN9M<776@z?s|x;Md-}K4Ir)-3H%Q3GZ0sc(0PdaEX36!f#1p91aY+p zot3zoQ~7m{t`_Oyz5wZJk*@AbkggW#=5B*@wMcjO6-ZZ$^l*1Vx>}^C`x>OHMS8h! zK)PDwW_K^7t3`Ud??Ad*q>sA~($yk;-47vMEz-|D0O@Lx{_a6YSBngA4?((GWT1Nl z($yk^+%F+rEpm%{4ARvigWYc+T`e-i{T9;IBDcDyAYCmo)cqdP)gr^(A0S;Va+~`T zq^m_T++QGFEi&Bw4bs&jx4XYXx>_XD{R7g~B3bS^NLP#8;r<2bYLOAHk;eCtt`-^T znvkv*8RgoLt`@n|bs$|WGTQYZT`e-kO@wr{$XM5hbhXG`ZZ1eyi;QzqAYCmo-pvc? zYLN+U8l=uJ`wa7hgDM(j~OmRy?x>{tan-1w} zk!fyONLPzYcPl`;T4aV>8Pe4v_qtUfT`e-xtpVw3ky&mnNLP!@cCUkUwa6T|4y3C^ z?sMxwx>{te+W^wlBJw=bltMILhpK)PDwarYKT zSBormZ-sQV$P?~ukggV4;@%GFYLO@1J0M*xveX>~>1vUu+%b@@7Fp(wgA!1^vD}>q zm4;ThlObI#veKOj>1vTx?hI%odaib7LH9vx-20%l&|3F?=nZI{J0JQITJJs#nW)#; z;4Xr6wMgJT4(V!R5eG1amA{*TmkggVa)?E$hYLVyMb&#$W+2jV0t`>RT z-3aMwk{tb`wFD1MP71uLb_VyW%o5mSBq?O zcSE{bWV^cu($yk6+`W*l7J0>e8`9Mxue$F-x>{tXyARUUBD>rVAYCo;n!6v;)grIE z2OwQ7vfKRx($ykwxSvA0T4axV2-4LeZ@PyeT`jWL{Q}a}B5%20Lb_VyZTD+PSBt#k z9*11vUaZVgCRi=1+6L%LezJNE`iSBre_ z)`N7l$Z5ABq^m`Ka2rFqTI5H!DWt1KesWttx?1FCw>6}zMSgMHLAqMxSGOait3`fu zyFj{HM7o@92EN=p&t3_;Y5~Qm|qTXakSBp5_R7h8g zxZZR~SBrSwy^yXJN$_Svx>_XByARUUB00QykggW-y$2y(Et2Ft1nFv#oZcglt`^DV zJqGD&k!0@)NLP#G_Lf4rS|r6=4(V!1vTQ?-@u}i{$g3 zgLJh>e(!lmSBn(zwm`aCq@edAq^m^=c`re_TBNYI4bs&jMZ6u5t`;fky$b1Skz(F1 zNLPy#_g;r|wMYr?4MkRlJ`dT`f}8`vua~BGtU#Azdv}-8%>AYLOb=Uy!aAsp&=X z^P{P*7OCY~kggV~?L{G7EpnabLb_VydM^Re)gm`|IUrpvQpZcm&!5V+tjX0Pb-i3r zPf>0tLzD-aM51f1c&X4_Q9fv~r~tH{)WE3g6@p%b8hb^cJ?PoeD+YZmDgk{XDh2&6 zDh+wHceYmXLA|}&&;;lf?|Nt+sezH<)q$RXMtb$2r%9cRab5#xr|3rLBT-}Mgs2I0p45%T zYX;@6%^L5ufJ#FXyjDU7xjlWiv~ikh;D)QiiSY@MMI&(qT8TvM8lzcNcWMXgt(XG!g10x*N(M{YvBA15G5IRg=A`&^+|K$D0m4iJtd( z_d*-dbBZ?$+KHZ1y*bc_=sDG!3w@2A)4cnk-_Ucq_aOFU_j=xwr+W*~mY3AanC(3Z z6({v2Jq}$hdIG8>dJ?*h)QNgN1+^9}hx&+jnH#}cLM5+o)38^^Ydrr z`Z`e$d*7jLFtrUd9`?>dcR&k0Re+xZ?t&iiBG7bbk!L~kphvwZ^ayE)@tEgAOVIY1 zmjG>m9`|xUFQMmRF9~{slw>USazXDwOT66B7tm5KPXS(PT`jWAOGVp{)V4`2^GZQ~ zl5R7Wd8MJmx^#6UV}+Lv6(Ef?R(fTjt4U)>j*U>l{VIR zouSsGyNz{TSB$5tMb>%U(bkLFUQp}2DbNtoRO&emx`TAD5qLA8Nu*|^nFaKdvl9-#qc=K(Ahl`b zQlDWwR$e2QiZ-BYUZagwB2HD~)HqIE;xr^qcg1N=oSul&GjZA(r~Pp{9;dT$%F*!R zbtn?2ig9WXrw(x%7^geqbZ?vHmNA*gm(J=4t=)kcW4jiN6TNB`-L9TO*>qUVcoV+JN;aFw_l2J zPVaUWIltRq$S1p5#d-LKZXR;0w7=0U3EnS0+ARe>E&b1R%LgZP*V9SsUKlRboj);1 zF)DR0gRIlNJhHj;>(advJfM4ZWTv!FkoH;Ph25`1`*QKd?)Bj9;mL2!9^%10Zh=RNC-)cz&+WmVbEFuL^%#X* z-9xX>^F8$T-Pz+V41Z62NZP*@pXo6P?RHPyKX*@ke-ss$7uOOu7Ppt|EjdhbOiz9P zO_O}Er{3;Mq6yC3Z%#gqFU zgy)JM>w6ep-S;cx^LHFh*@t(TP|NeTr-!ARrW%$hgJm3Gla=^4>YI4F zI!|@f&r5aM9hc|*?2aFAL|cR2SK!D0|2Kw*>l1F5aJ?=!JnR?SetJ9nZ}$(U7cNgY z-~ajW8MxmrozA~!cx?Opd!`@T4*%-(|D;z5d>p)k^U>Yyb)M>|pI_><>mui=*&RRL zh_=Z$>Eq!4jp55^L>rldA{#U9-!Kvn0n!&Xjyma*5=6$<30lNq!*t zndAw{-y~Hoz1+TJ0m*d9+L8?=+er4593(kHau$v-6%bL-{HEty}k zgyhwd6(ws(){$&1*-EmLWG~5qlDA2YlpH5HMRJbh0?EaaYb7^J?v#92^04G-$#arP zDSEw%N~TLzlWZ*6S#pTvB*}**S4(b`+$QXJ7~ zc9OhVa;W5J$!U@cCD%x9k$h9~Gs$C;zet*S_44GDEGk(+vZiDs$##<6C2x@&Avs=h zrsTttOC;Azz9_j<@;%8zlE)-}mNZiJawbToNtTkVAX!JUrDPY$L6RdS$4TBJIa~5U z$wiV+O0JT8T5^lz4#_tp-;?}U@`&Vd$z+t^uqSo^z`tUvoFu(9G;(s<6p_){KM`3&pMob z*#Ant-13IwhwVCJ+v7?O$G_72|G&0}%NNe?a=y~?W^cdJ^s={SAO9aa+|U2>au;6L zUG6x)^6>Ef{Ac%X-9P(wh#g=0@g=*%$B}TnrSdowz7D>$fBbx6{lnqekF)S`O%D&} z6J~5Xgze$@I>Xne;p1kQ*~k0ev);6BV$=Wo_5J^^{c`IUE^pYb zGrT`y&qv|%XK#-mKfK?<=ZDz(>G3XYkDp#RUf3`D_*ZuP^#0Z5|KFZ|xE}wxsUN?> z<80iaaZxnyt5}t>I>l1ri2>a>nAKQ-MaGg8lyy)`dhx=K$U&W6fE@y1|@sCGg zdo1;I!uiD~zppiXihh436l3n&XAlV`GDlZl8;F~DY-&&t>n{^nmXH+s#GM8jt$pVr^B}++OEqSeE70H^C zH%K;+yh*Z!WLwEjlHDbHOAe46BAFq1hvaC<@sg7zr%TS3ykGJm$wwuZNG_LLBN<3O zC;5WpHp!imZ%Do^`M%@<$9tpl3z=HD|uS-7s<1de@R-?_5I^XCP}79 z=94TeSwgamWO>O-lGP=zldLD%NV1t^Ysn6hT_t--_LICta+qYM+DVsO0UEBPGX5 zPL!M?d9UPsk`GEQlzd!rspLw@b&}6WJ}96|498p0j-ThFD$;4| zPn^ymT@Ny$-K+56JNY~zsuuNr6OPqs>G3KI=Fj<}Dx6N}yesF>=U2Qwy5D}8&)Keh zf9By6$BaNum7FzZCcJpeO629ndqCP3N{0QNLGjCTx$(pKU2Zy;j@RQ?y}TL7sbh4` z8Z!kB=YP5J!v2?^pRTvrFLgKL+Wx&Ob@}c$UXHF^UK+@GB`;{l=V!4xw9DOpmz!Vq z<+;-QvbUe=*y0bK|G%28S8{!JRJB{V2jgGKvHC!L+=TmKxc)~w=>0eB7nGJ32TqnYxpX>A` z^GX&*{-e*&c|3lfn(M^*^JJZ|&y&O91JG~7=*l?_>UZhq=k2MT&%3)z_NM$tpPzHR z3(uG9(s{l*WAhD%A3?v%&v%c^?<2`iDgV*u=l%2R`EngR&sS$`zTxnZ=y&<~-c0Sh zzC$H%NB`L8=e(W%`}z5QKR@T=w9~}@etxdE!+$?N*W2O0pP%dP@ZZnR^>+C0=jVDm zT>ANWc>bYtuAHA_KVJ!lhncB(x4hx_VY|+7d&Tb8aQfNX!|}uR zf0x7M3#WfMXJ5W6`AXBv-hQR&#kYt1`F~#S#p}Au9p_gbuD469-{l-`Kb_gPLu`N7 zk3ZQRK8}Rr#Xk4a+xgP|@$-rG4~J(zuHql}!uf<5TR%PCrH_yC!!OsKeLDYhhwH89 z8@?Y9n_k!+zujZoNe{o&;q-LIruTo_;rfKjcRB0fvB%LXIevQK{T4ny#MWO==hF80 z>4)Qm{j!gLWyeo1_P85v|LpDY%m2SU{ct`0b5lQlg~#dK(bv)U^ZEU%aJ%T^Iy`R) z&qKoXi9Ifa{q**|{P=phmmfd8pZzrhy zy0#;kLo!)1RkEODG0CeW%Su*|tSVVcvW{d!$tIF5CEH1Mmh2(fM{=O#t&+nfM@Wv5 zoFI9RUx$?cN6B=<pio|ODS@>j_}Bvnm)zu1xqk~t;wNamL;B3V*0UGf^q%91rCua~SZ*;ulEXg}1$4TBTIZbkwm=(* zHj->6*;=xLWLL>vlKmuaksKzODLG2=F3CxfQzd6g&Xt@m`H19V$)_Y&Nv@aND7jhk zCCOJLUzgk~`JUu{$%B%ICBKq9A^E-J&yv4Oo|iOh>-)u(^d)mkrb!l(EG}7EvYcc^ z$!e0dCF@GwDA`o9m1KL#E|NVZ`$`Uy94dLc#)%EKp)>42On zIcv-ic=4EN$jglv_J2V7EtCw$ThNZ5=P&;JTz`-J%AcR>@xsr`!|8;MeSWU{?U(tS z?RtKiUZ3RYoKwf>oHeElym-uw$Z>7|e!K^yeW7I7-x(CYJeM0koZsc9bLn_zX6WTj zyjL%;&RJuM!{PidH{R4Sy8q?pr@yDaU%szDuI=AD`{&bF@`84Je)f+(KiAvqa`Vf+ zJXe}u_V!a9=gsEr^{?iYJ}=MS9)AA4yS+YM!u>E@|M2tjuwUpaeSTiyW!^qj)E#x# zJj9=$*M6C|XBE}D?(^jE^YbwIx;dXd%$&6=uHUGlo_&S)!*Kl+{=H_^ZsIs} z-AqmOn$^5Xo;Y`IQYOy5vw3hfXJzx~Y@X1hO5F6OHEAB_`?9q^l&yVnlU{NCS7dA7 z(B$^G_UD_-i1V%{E93lDlkIW-D4S0-`82NmmnNs;e6C59)YFa+7J-z9T zajw|3N1SUm&4}}j+4{F=IxVifL$>jIWb5BQTl>(akHn2XF9uiwC!49^EGK4Mf+~}Yqh3DEwZat7FYC-&EtD&vpA(?WB7v$ z?nO>iPnFR9Q(BHD(*q6uy=K*FIiBn*{&f{zzn5AD@VnyuEjPml#NW5v4j+bj`F6qd zMg#o|moJwZdcnMW$?7h#UcO|-zl*~CQ(C6b*++`%P%1PpUmkTQ%+s$&+c&Se2Tpb0 zY2AbR=T%RLkGAduZx^3yJ&2sDz7(gn$$;Ifc>1Ysg*Kz$isA-sCcs_99otNUCyH-r zGZS7Z9xLtdiswoD8Sx5fFIHO5?`3IkBK}a?hl_ud_J_rrn%{@{Z5QWktC#1vxMEwq zJh{r~>3`qy0ran`t@^cn9Bu+9=bO;B3pq`7fy3>YruxG>j5BTd{!dfKEv9`Bfo!s#~w!Z{z|h9Zpfr+MR=|ircocX=f{_>Pi1D?R;_})j`}# ze2cih_%88~cDd1imbSX1T`K$p{F<87t`NDf3gA@t-gd>{?H62{Ttw{^KisZ7xv2V7 zyhMBwevS4=-v5fKLRa(pz9z?4F;yN;b@#OEK;suv9mEIV66!ATF}Rd^O8gUCTJ6GvgR}@iDlf8ZQ0`uB>Kh)AV`#s%oX!Y|pN) zc1r&}?S_zRs>9*~aBcOc_!xY>%2!S=&rfh2RaKj&&*RrqZNz4Kb^|q3`tNC%Nxo6d z5+8sYtF_`|a1*sx{1eicB+N=7~DY( z75@ZxQnR#a`rN;ZdQ@z-XLnO;#a{cn$vxC|u@CoDABa=nUh23w4Zd0ZDJ}^2R=Mb! zi~KlL6z-!+iA%zLRZVdjxS!%*S>gWW;r^<(xDq@--65_H4^-2|*TI9-qvCq-Eh-Q< zf(NUe;%4v=bwJz-zEzzRcYuc~b*)~W9`G=gN8A^_O{I$m!5Qj$aRxkGwGrO|->&Wv zkApMS!{Vvf|FhJy;(Or{>Rot;F{k~E97>H+x#-%C`tj!(@|~*G1#cmbR#h*!;{T!Q z?&G4U+6Io#+rH14FbPR9u}GjL^G@e3kWy)UYSL`(LMey5fLuh*Bv+7wyh%8|hCJST2f9(1 zU#}K%Z<0=-{nxAeq)zIWdg1zYpVWtj>(>%K{yu5g^lI)R$vFv*C&*cuRLFh56iRMO z+J=rN`_P-ETyjrR1@8|^mEZ3-k41{$aQz;`Y>J@DoyqFkioo`=}I6_MxAWyyPDA(^4*Z z0R40R55V6XyF5^FNlfYy9UQ{HYX4b|wGF{h1U;X6VyW zDtRROb18>B3f(Cck;kCFkSfUI&|gZmNloO5=q{<99D)8?>LyP@e_z_|6_eA^KT4J4#ps`;I&vPm zPwFBUqW>!ml1uRU`Lh&ot=QkK=zb}JywLkAKi|JevE;kZ1Cp1#3_U1ilUJdCmkP)w z$uR$nR72k2{fGMxse!x|`;gR0-i-ZEsgGRdg~$6ZNxDw#Uj?rJKPiyB4?Qf!kPoB( zmJ-RwaQ;71Cb<#)uau95`_sz}zOr0qI-XmW;V&h@>w%WyxEk`MZ@dCUOwI}my_F)j-VUKKC~`(k$cdF41diCUQeRDFg`$z zBqyQIl~aZJ^A~!cTtrrr!9j8@jc-e8(+VlGSAJg>o5<=htWMFu8%uug}~Qdallk?T z`wBUe#@-51!OwxrLw zW8`SE4}F8|CHJ6X`ETs&XCK<482IMCXYlfmK(^U(09qLxsyB&ohA2^ zFGAlfYd4AQPed<~gUJ!-Y&n8F3B6Q~B~L*wlfC4r=;d-YIToEG!{35|ohzRrr=wTNUF5~+)$$;Dq4zI-zShXjo5l8)rNH^ilS9aPDKh`5 zkF_%VJs8-Z!W0;PubfKWoMQ04PR=85L9ds~$(6X?M!AMujq?lSM)FGBpF;T*c?o)x z+(phq-zNvgiS3tpVgHKcaB?B``{fvN30_YgkWY{2JV@S*-XX)^aDnwJ@O+lb!Q_4DopLPsFnX8lB_G4% z*)3<28_^YV0r{nriF|u|YUjXBzrJIdZ0$Kb+FSeMpWseTMsSxrVIGy(j?w&eI^-J@-cLqp~wz%y-Y-$o-_8 zOXm0c+;wsRSxv6uJ|>rvUCBqd>*WeELq985lSiVTlk3Q%(9g?_ok~_xvW$CK01&9axgHThM(zbE8O^40U+;(k-kCC{4&$Mcq4M9#zc|B=hd zh3L2CYVs0vt6WcBi9RVelgqqt{@dhsa!K+#-0#R;`cJpuY>)nu@)oTBkaXxy`=PD88 z0d$~}Ak5c?`9VrLSxp89D>*d2Eh(RSv{FX)p+l59au50f1|izFJ8j zd(l&r401a98YPds7#*#Yl9!;bRjSA<(bp;UF2m_Rw_-OcP_vGS1OZXJ$OGegnPPDgNFArFGSaq znfFre8A=n4PfeQ4JyU5XFCcf5Gs#2bAn!Fe-su(F8}E%phY0iQ)eP=RZ!}L7vSxOGMGHEgQtx7SOKi|-GWd3~Po~?9{dy>|3-=++c zqrA{>SHe>8d^>OUKER!E2T&qwYwrG>_~B~@_Wq4be`=sT6b zxnh0(ek$(^l^F5>dXbVT%-4s0mr_PnlfhX^Esf{jpK~u!+R6O;bMB?e5Sf2}&b?d- zohP<8fL@`*3-k4%uT(P0{QGh4RZ0t=z67&JPZA-(oCL%eopBid(qD;z2tOsgECBBjDA50NEgSGhkj9s zCl{h$QqsvK`21{C^2uA#uP7Ddh2Bs2`EF8b$#3-4!M$o;MojE46!!_i^nRr4ab-%}!K zd}>lO_xnm5c>y_0ITB(cIhjzt> zhW9TMaDErLE$I%lb0Iz+P9OS1C6e5O?od+6QC=ATiBd#PLi?0jVg7uDep+cKtI6O_ zWr)VNC9UB8QVGrQZx7t1#FKllf1~7*2hiP0r7&L~#(%FglhtH!uhL25+mi0%{!!5u zN&H_BKOS(O5<%`k|Eze)1L%IGK$x!&<9|~s$!aoqP-&p?ZAqovXOwob4?U#xk$cd8 zDbB@W`vd4&CJyGo^ zk3@&7T9!EeQRqw5VDcFBrD_Cu9QrafmV6O9LiLg-qAypo$r0!))B^G(^p$Ekc?vpG ztszfEPf{DnvFOR_De`pmRcaS`7CK5DB+o%#tvc@($Kyp$QA5b-=xfwS@?vzf8b@B} zeTJW}Yt>ZpvJ^Of*Qq(=yp$KYr>aHd!W0-Eqt=o)r@YC1z1l+Fg1%AhB3I&i)6_w7 zHO{|DbuJP6yAt>3W;KMo1RbYFlJn5h)ogN^7xr(4T0kzuK2t3xm*DjzUaccIC@p&DpROWO==BUykB{rT2B`5R~D&FWbuCG z{c0;&ykGf%+CdiYS8i6j$m0FVVzrMf-miR69VUzSD<4vwIpTbZ_ba!k!DR7%*qeI_LAjP@Kb8!D$(8O zr_~&C0QwoVfqZ_dGK&8^i|Qj^h<;ujCSR61f%g~G^wqGQ%I{C%=W}0DGto1YUs9rZ ze@V@@^hPz;(i_!0vrp&aUsj7P{S~#+?6>j$s#F=o_W{2&+uSQsUyBceD*!~Awls)m>t&tRP~v?fZM0`ntcoRXX-E-zQ2NgTGiLW`PeM| zl2Xh4xf+Fr#~*s98i$7S1M|O7Q_=qUU#i)b`CqB!mib+3wK>0$&;MF&GW!YcZ`4zk z{;jIt>wkQpcdH?2*gnkvPE9xa``q8F1(yDU+G%!}|D)PxcG&-)RBaus5BuN4-KU12 z{m1{anvV7#|1W9|+Q0pNwbbme{;z7KrT?b-EPX)jwe&$XJl}tOp}~^$yBdv#^)Kf> zqb8tX|DgY&rlVp161a!dV)RI9Me3W}f2uj_VZD)3UTW(3{O5~Q?*`$*)cu>qh&p zA8xG=4aWyx-)^nn(mmRcrF*ntv%}ZFuIYuaegAx>g`#17`1&`rNVCJ&|2dl1?C|^w z(9+Eg+Yit(%ns|1&~h#PT&>vbu>MG`!tAhqpw?)1SpPh&+3c|Xd0LC52Wh7)JxFUe zJ8XZH)@A9z+MwBC`{!%gCjarn_D5^sX#e>gqeYq>wm(LTGCQmvqQzPISS{7;u>J*F zw%K9*aax(#;rK$e3bVudp<1P-kJqX#eY{pt%?M2j&ytbeJNVfLB)>-91%*X&;I2(1_m z&p+swYZYjC{;lD@LTj?jzfwD8nIEZjS>{jD`YrP(Yr#cuJh1<;{#9By8os_aa7Srz zXy}`{uhzVlK1D0H^lP+gOOMt%&AyY*zg8Qz^cXGueu@9{uYbLkgNE(H@!y~oqv80E za^I*`q5a1{P3tu0!~Wl-^_lZw|8Lfu51hSzoED7sAK!G%Yw0tzOiQ1sRh#`AzFxdm zZ}wlfZ_!%Nuz%2JX&q?TKVuC4{}gQ)9V88<-oTxpMQ?`v36k7tOSxxj8RUSp2e{{G z)#Pi_j&Ubyr^vBsFh5E2k!RriWKAm;>&;I4f_JYLMNUZz36Z1}t&u!G?FR0-S_e5J zEs=YkminNWzbtJNcdC|0UW+|VD<^NlK3{{sT>|@Gn)VtWe}@Kt>jS(i?F;U7%}ahY zEp{ybepTxtznQj*dx17gK9yF@y-*8%NX-8%?R)MF4gNNT_ohyeU!(Pz{Umpu2A}OO=67(f)hf|&d;{F;v_`XQ-pzz)MC)^e1h#4XbEP&i;pkVYR$fsdz02|_ItUDv@SG! zJ#Xc{UmHTh*Yi`{o3)5-us!JY+{Ic9+TS14a?r5-&v`G=3ed2BV?+7>H))Y&FdzCQ z+@)GP8u~5VTeWPn&*$Ezm72Yn`(drY?0dO)Xf0;{mb+Z*M+Zs&TQKD!{`(MGW240X zjg;8J3ohaRAEi0p1_wzupewXE^ho}t*KryD|0&IPQuL4v7{6ERMURxCGp0sJQl%Ev zCi=XL8QlA|IP!{&IoywG`Q&vO>D&jj3UW!tZtjCx3we9SquhtIK{T9?8t%t6?HyPj z&c~D7HCiwlI=ucI)vRKdwcSXW;zTv`q5s zv_*XU>skdlC9R0NSqp9#>&;JljQfNZMb1cr-^6-DYa}mA`-b~Xt%JN4dyCdj-h}-v zP5(fwSDJR=mHhizt&+SeZ5sF6S_Apjv?T6UE%rk({>`+_+$Xhk@~O1vxZAWM@@Hv7 z-0x^rXgJ>ik^K8ttpN?^dm{IHT8E{-uk~5_2b%s7Y|lUcLoE#LpWmUynSByp?_({~ z>|So4R%Uj%zI~=unH_#p?6jtJ_}5><{kax`hV{2_f1$;g9p-EX4 zmo{YfZtici;E(<5|IYob7LJDXVScxkX!gKK{QE;K!|X8sd#%dsu>Bsb&g@=3zE{&e z@vlFh`v)xq4eKxA{z;2L!}E0`cc11(`>(%0Yo%td;{6w`($f32Ry3S{xIX`?`OvWb zaX$Vxt@Km>_D^yTXw_)wKXCu9HJkk}?lW4K*~2FD@BcL2=bwKK_g`8F8s=}}{+||) z_FtcewJ=TQ6GlpvnQ*=RN6R}G?7u$$tJR}NO0}7AeU@x-=ZP+^&x*~99x1()3D;-U zR!v=8pKZ2!vba9mZQbN`8RM_w-yhoeuTbFjN-`#MyKRx=?HSi`>$VIuoG-Zk7`9wA z91mQd&#@Jo9j;#iwlYf(uvJ?62wSz;;rcwn)@|wM+WO26*XMI>Lumi?InWk93ifw~ zBCgNp+xp1j`aIfJ9xS@JK99Dwkj3?Rw5^>iuFs=w{b)EoxIT}zInNjK#qovMV$smy z_{Q4eEq$yl!R&B;F0iFr`Z!yz*Hy$fynXz_Tv(^9#^Y%%1&GYh#V*b2yM*7w|(+A7Gg zY3D}q@3(C2LW5oLN(|WnDvGt=zO1ETU$fwfIpCU=qY+>U>|18bR9cN1%FZ^cO7Veq0f{TP-O?#SqmaXPu;YC^ha?iFk zOb}j~wc#56^H{d_iNg6=?r8q~fK9(dxFl;YcbYBsQsG@`qps!m>$ZXj;nK8i+!?l( zD}=L=3-QwME4Uzn66b_hwt% z4Z@#hz0F->%ZUZU*Y9im@!Vo7L&Nj;{OkGeC)oPUej|Upw%eT3V7$NYuoa+TKJ;>1 zg{AMZIdAf>e+^%6w=EnE^Ka*V#8zhMdu?@=zTXyb^V#zswMC*~{#-u)|7#+1^Y=dTp`On!> zXPiC%d0Rf(KmSErpV=4k@h{o*nJ^wY%zwp}i-z+H{Z(7JrN3qyG&?+guiFCS{qy1R zd&8EG_RoLQR%v!v|39{2v%~ziZ6UXuJ-^LXg!a#W$5w52nE#$ln|1c_y>AOc`}hAt zTdAdgWUDnhJbs_pLT){K{-?GWw156-TeYQsZfiC>%>U9BmEfQMDEC)3FWP^8zp*u2 z`nR?&OaI=MF#GKJJ+>UQfBug)pQZm~8?yADZJBfY^Z($_-(PISXqf*7-=E)XgJy^Q z8?Xi52IKwfpRpC8;rv4X!&YtSf7$dz|N7AXXNy4l=l^4?wDf;%jh3$1!)`x&zG{y{ z`{^_K3iw_Cc~9+L#~;q?VR-^F8(BcIF^P9T3t_L2w5>Exl*clrK%>_udEnva{= z>&bs-{>^=ky`QXR&Ax%(_t>4uV*9aa>$ykSW63kp;5Q#f+f&K2)86AAYcD6yPYb`1 zzkb>?yfA;H^i@_G_eJ)4bdZ#iwu5`3Jv&9Le=6;USpIruub3zNS=xH;%k9l+!f&P> z+G=^!ueU_Z{n|K_JT#iC0WO~ zZ?e}f7T%S1#m)Td!rqrDT$=V6_bv9QCBn zwrgvI+p@;b;6D#+ugMdBFKZ5Wj=kYt;ZL(Z5Q_r?72S#2Li!`I)0nf(17 zd&YWy-^u&E_I$Lz=i7TNeZ5`U0OS3AqdgZ5>&Nl+3hd=(U%-8zebCa2?13Bo^Pz9H z=cE1ei|v(Wzl-;W?0SKJ|6u)6djuM`5A(O#%PqakUT=1ozr!9@c=r5qdmP$7f49BX z(ktw(W{3HE?J=9qo?mHCNBieLYHzmmDtnjNVg5n8_dfsp9PVm+9@;z@3vQ1dXHV& za`yVY_E5Bc{!jKYOYgJSS^6*b;H_uR@3%*z{qqOxHRvGe;=3L3{O3jO4diR?Hn@Mc zw~*)F9fHZ(pL_!oR^0X@x;c}O@p8;&o|QA)lWJ=0M~UXPyT@R7^VvmL|agXly@^kZVZ z=g`THeDYi9xsE!rFFS$nZ_JW0&5|y~xo= zzGUfY?!^wRM$Dg#zS|K+j>hrJ9L40grSO}y%N^C^RP+i*6FFz;9^O|veB`2~hq?J@ zZXOovS1kRU`(8)E5#cA%>m6~m!p*o|fg_vTu~eJI|G&afPVQZLKKEuv9eH@^72FRx zI>-Ub;5T8nI>rGsCANO`g?o+}yVBh7as}oLH2FJ6<(N12vtd5W0>*ysHE`#mw zcj!-x@jG$+K}RI{@UpjgKjg?Ezl=WYC?~&*^N%{Z$zS9AV-DvrvEJ`EzTOc_b}fhX z8XN`WvCComjgDsWq~*Qb#~q#I>C1<>Uw3HFi1pHzvs?M~-Vsh-v3xA|e;kSA`*Hp| zj(qZ-<&$}T*HJ}2itDvITFA$7y^kGz|*?O)&wZxHKkS#gm2B4;Z3 zz>0eA3C=R|vn$@?zRcN8erpB%Ci4}};1|UF&sO}weU&qs{9kmGGnFjg1CQU;&I0mz z_rUmQXBGJp^tH|=^7ZKJoSo#`asE^%|A+v5y~)CUgEN%89{Y{XIP!MvH#xJ(htM}W zOUWNK`B(HU&cK(%_H8TScxE}H$>*dnuY$CsleWA0H z{5AFrr}Jg8{_of`o#A9xF3itzddXvR;dquh^T?C1FLPFtr{`Xr!2iG6*-B2!y^?#S zbCA3Oz1kW0irC)$IDf4(j=TrG-kC=}nj6RG7dp$y$8r1jIqS(E(><>Z5_p5o&lb=HxeU)9Wgz}Z25d)3F>k2(9vpRf9nyT%!O zTx|arT>q#uhODmsm-nZfUh=5bus_F~`Q*!1!|^=ttRly*9zC1?f27k#_M%^Q4wJKS z{&8pGYhrr^IR6c29(gB@Z*kU<52IV1z2uj1{wZg~>tg=9tEckqec+5If3x~l?vI?g z$_i1MXdE6S9|CO_o9JS^_?ysFvvsgcV4XoGg3@4|rf%SfHCXiRH zf%Ef|Gn4!vuK%;MjJ$761s^})tS3K>9&&b&PvG|dcJ`A$!Tzr^_=MR0k7&&mL;eTH zyIdLMk$JE1^*ydC^2EGT+~>HO$y4)S|3|vQ-Vp2EmIwPE?20F6;`q_7VsbvNcY&*x zT$Tst>q3|FO)}z3v zqg_$t(QDy&Vq7`oE7rpHV_o&+o7Nh0`0t~;+R1a#GhF@TWozN_nCS|9ORT>M`z%)! zc^CRtmzR75o#4tNzk>5;yDG`=VNY~5lE1-zyQ`CY2D{fK{YPxieJ|`^iYt_S!M(6Q zb6pAK$=K6eIpi7W`K~hZeDoczI`Ta@Ki$<%egOMIS3mg?>=~|zx5f6K#D146f&3cw zOjjBCL+ndjb>#1{XS;gIe_>zla<+=~jCF84Ij(T>h3nw?y~341o`QXqD~CJ_`)XG? zc>(r&UG?PE*w?u_$R*e}x(3Pnu@|_4Pm1loxNaKXevvDh+_ny`Z}+?M$zQEo$@^wk z6?tGCT<=O;&16SDjNj(sA7O*9-y!)he!DA-9GMT}%U$tgZ+<23dt622<@rx??{n3Y z@5_Ie`=BfK9kJft{2uNaS1$RfeCKWa{~KJ|Dbbtr$8y)XBFP>3a6ao@x#Zq_`1*L( zRY4xkhvRK-79MB1|+e*WcztCRYH^)ZC&$WqkcMR|9$KhAYwhBZ*-DoZ|Cw-f`)|(zFfm zNhR;Ng2{PFH*mk}iX~^why8ia<@^BV!|xNX=lwlb2>B2>l00Vvyg%`tD+cZVe4O`P zm1ObxIPI?fk6=CX_m^F{9k{-z6D4 zQ(+(aYgevMxCi~ME9W!e0rYpSoYQFj`=&6z$CdZFu$m11!Bx;H#tBlF>p?r*5##~1%bg(1 z*N6EYcMe%i1~YdVjc-dj!+nmsj_gB^aGxUgphvp<$OGu}-1=AIeEf?Z<&Ge$$*|t} z?gX+c8Q$+2ecjFJD z&q80~&i_$(G5S(>#81L=(3iQp$X;}WyP{9@boAx!`2Py8L|@?!_*r-f`bu{I3JVUvE&kbK3wH4Aa6xq?QSH0x*;K%|NMiy{a0Ae|9Lytxg&l9 z!}S$D?`x_%23;bJ_rm9K#kk|let{R9Nj(s+FE_e#$mh(3>&=bsJo2jfa6P-xU0}{X z#pmDXuCvUKb2pgtzvDg5-DJ-1N4JodZajlNMP9QJ){k>{pyB6nu1W!SQy2R`-92db z>v*5;)&}5sOC+)XGu(k>vHvsNVPvuYGu%;VSbrLyKf@honLpF*HRr?r&va*+^I`vI zy7S0l|7W_3$zuO!x+~EB*SDGODs+&ve`5;Y-b{B5jj!GauW#}0dg@0vF5*4j-9)_} z`>pO)>aT3Phxc3EKI$j1C%U`I;`J@jtq;Qa@V~w#y2H@^zgLpz&ioy^|L>{X?#?5N zzgKd*JK_&KpZxU@K7T3MolPFIK{$`RfO;c2ldKJi`B!d$&wEOC$C1VBq1RnT7O#h1 zw~s77k1567EzDmJ$Ij*Vv+jO!UeZMFdG6ppaeZk*3hYm+yO%tf-1wK+{TVa7PH$}GPII>mi}k)i&v$o_r>2}YkH5d*_WdpTkIA#R?{ugC3--TW z-s$#A3V!`X7QpA*-{~GC$B`>!=wz$p0uvuP%3|a+1)`dEEt)_|G(8;YZJY+poTl!U11mASr9g#-#@!E9K!nw zuD*l+f2zAi7d~7tDV_iSr#sLPe!d|3PX4@dXPhJaT0#8+e!uFj2^4;(;E#p;{aSbL z`Dp%ndOCyOkGe}Q5ayrH&V9rkeUWfalCg;Y|DQWLOgPF5{YkfeiSW(d2YIh^hg~Y1 zg#DOXzY@(~4`F=0J0MD!e||gnbMC-v#rU2ieKEg(b@yKHcQW^j?xvfB2e3D~Yi9Zl z{S|jvf^Zx5CU^SnenWrF9WhtfhrQXY-{Cj(H{5*-(R}}4`z`MNOuwQ3$33`ISWSlB z>K?ksZ|H6A;Wfga6x@0j|NlRCXTI>41*zQcyPFEp{QPEdf9Up+edrGNAh`$qi92AE z7(amaxg&)6{=xjy?s&4A4DNKN()hNdmE2#t^T z()hNd&D>|)jbtBs$n7Kdp#O3Ykq6Mj?%*PEzW+u4;|?dQ$*`W}i6*;};s19Ok9NNp z&(NyJM;?jRJhcyqJ_>E~6m1qBgSLCT#lqvz4o~=lXnsEg>pMMz!qPCNT7$1Rl zd#WE2o`m*z@=JxMpmk3I|A;a8d7G(d<_X;@9E&zQgXHPxb3CovM4yEY@Kl!xFGi2> ztX)x#+9VL7t+W!pqR3Jc+x67ovkb z!MlYgWx(_Md{0!R@J|IF@%6@docn}V;`YXRI>}4W7kKLTi=Kxb=jkLDqC-8-M@6r| z?TzE=h*-dzDA~KQVtZ_9#yRc`Np- zJ?Z2!+}|ml3UrAiKA-9uk5mow;qQ~J;Ok%G$v@;b{C%isPZb*OXW;W1ul3ZS;ePTO z{`z~Jr@`#CeExNw4(fsP;r01?Pbc}Dxx(FKaX)swr_Y=}z~^7@33&{*5BGC0{w7Zt z`JB0W7C3^uYChbL-Q*QbeAxf#o(^+9?EiF6H(Biebk87J?EiF+ z_Bfmm|NZ22kB$zK#uP5a^#alS@hF7*$r+wd>X#O-<$Z=Hg8C%vw|JtdPc3|a_gg&i z)NjH*$Kxf7`^h<;0<`~ra*n40?Z2O#Gs#utD>pcCekWPnPbPW7YQ=bQKbhpoC5z85br-dQBQ;Y_m63w(qq`AsVN(m@cU8E&@+C&!+obG>{;PE z3p=?pJW*)>=gDPwiiM@D!tb#+lRr+mF`M5Hda9p;`9adE!d&hwPiup4QQ=nZY)||P z!Veez&Ar?c^`h|J!qTPu_b)xpmxLcH3|z*4-pO1?o}sVM{Ql=3?q*L@x3CZWhNtWY;U090r}$^#C@+lvkEdY3-?!xP`!7%8kl!D3 zw|T<;7EZ$Pr#z90is$QJT<<+kszX>!hV|M#MLL@QJ)<#e`TdwDe}vzQxH~+#LBa#r zKk*cd@f*6&QyMDVhW)gs>|(#6cY4Y%74~8O(o=Dz-_W}}wNYq(KLp$V#?yYS-_W}~ zLpKPk$4|EE$K?`GahM{*q#qP-Fo1y{__LY^)O+6es1PA^fTpNYn?(TXB4n9=S=( z--_28ubyKX#?RGj$s4@qt>f>%=tJa^WO#hibmx6y{$}j+^;Gg!?04wdX#f3cx}I=9 zjEDQx^?bc_z2yPZ{Pp-wy%!DlOGUgd(1*})zY3r4x=@!k!+7Yg^S)3IMZ^6jyxuR? z!^!8&6^p0oAcN3`Ac=F7|w_P_?PJc zM%{nI1_N`@c+&C5!!ErYEBP|KGPv&qTxdhR-)xrstu9q=v0UeEsEm z5zT*nE8M@X(95X5yS0q>6?z5rPVD#S)zp8+`S<8`)c?eut2a`2Y=il^dNcK)ZLt0- z{S@_Z?5p$+>epajt#?tsWgG0@YQ2xT7ki#QM13*#JY9QGoWE7r@6`j)LDFXI_v#_k zAI6@qhf}Y@p07tye+v5sJ(l`$>>Kn1>Zh<5=&97d#9p9hQvU(_COwz>AJ{kP1=Q_j zaQsDjDfQqoIKCpig8D@459rm@uf_g=UPpZf_F}z}`dsYAdJFX>*h}Kn0_=$+Kd zu$St+)T_(j@hR2&sUO9@MIWaA0`@JsRwB-CGxn`|06Iu|5BpXX(<$5{wRO~zTD(YF-cj`6NS7P6#*HbURzDsYUUV?qM-a>sh_TBm^ z>Ibk_=sxOCVz1DZjE{{wra9!_0*7|w5{9!dS2hvEG1(_^TQ#lBCEqdpP)em#+T6!!gkD)k$&KdNU^ zpZ)OF8~D$o>ABPwU_YQ2P+yJxfL==dA?yeB3hD-xioIH|rT!xJYQ3KN zo7fNOP1HZaen@Yj{tfoW^mgil*dNn<)a4y;{EzG1)JN>7T%RJ zVSh?br2g;@I6qJ6snq`ud!3$1{n;JbM*jVro=g1%_Ika5ddCiUeCqX5>R)4jPOqT; zE3W^XUPWCghx7BiUQ0cw{Cd9r^LhjI3$eeTH&dTf4*U0l-b#HM_80XI>fUlV{ulL5 z>Y3PI(tD||D~J7iNgt$MjGg}t<}KpuzXI2PS$CpKq{G->(F3W!jQtfognAqHSM_k} zU*i71sz*`(5&LmHminJK|F|Ac-L(^r|25r9J!B{B|7&_W^$6^*>)F(A-1!KU-zc=(M>f5ousn=4k-U;XDO}&Bov)JF#o2kEr z{Vn|z_0!nj)_v4}+X;`~+j=+kf3Tm_`>C^C&`;{a)W`0E<9|nYZWZT068k%PAi6|~ z#s01yNThHJSTCafDfW-`GU~n9Kh-O#4`csSuc6L%!|{El*Ha(A8_w@%dK2}@*gw}> zsn5Xvx!ytj4(wm(UDVfL|3dGhUW)xIeTaJXZaBYR>Do4N{iwtKwH|;Dl3vCBwH`wK z9qixg;ncsx{;eKG{b%go>9N%13i$f_PEVlDD&Y8f^i=90*n9L$>Jiv~&~vHZi2Vn> zfckCNf6_~-FRp;|^OIgdeI@q)>ebZm!~S2rj(R!vU-U-mHQ0aATd2Q){a3x6`bq4+ z>Ydbm*a!4p>OW#1&Vhwr@jIE|8y_)t=Rw8GpHZf1Lyy5J%{>H?EmWd)Elw?s~1ym z#V)gQ>YrnmSrzr4u&b<=`aigRl{HY;AA#euv1aOHAA#euu~XEq#O`1|>T%c|teg5= z>@L<%efcA>|1LI6eLZ#$b8Z*scPn-e3q+SlRoEE|rT#2-#v-V{iTxZFP2KkhT;I-N zvDCl89>5Z)|AIY$d8z-2eFV#(Zr=;@N3d+_=kA5$KbPfEACLW9RzUqS>?2tz^=RxP zSvmEaum`d#>bGGJWHr>&u%E~3so#zLJl04(7kdzEp!EBKFE7;Fx(!=8Xw_-n^IngE3N7zTRKfyX$3C9bQm?{(A#0%iROQc`_|LDiChD(ZzlgO`f3Fhm z&n{ve)W5(!fpt;;1^WcnNBtk{m#`t~0sG+f?GmQ#5ZCW<`{4Xt#sbhm(j@Gcu@LHU z*e_?{)aPTroJCPzf&EGrOMUY`xPD#95~%OSK8dALKe7)VpGho(`YYHcvmELlV4uwL zsDFq3Dpo{&cpu!~Ud76&JNLu>U(KqhkJ`WCK5#AdiP)oABlYX{!}gd#=G!D^`=$3BxaQh)E!Yl`^Kqp=q1pJTs;bx{8aw|@)k zq&|#&7VD!PPzCd6u_5YXtKj$(m~*E%f0tLm@h7kVbcu8W_Sr0ydJ^{8ES&mX*ypfl z>g#a*IV_HPG4@2}rCxzOk!4Unj6I3vQhynH5-XtIhTY4`sDFvw%POh=f_*NlrLG=; zEB5)UkNO?h)7dcfd$6Z7=PvR5-GqGs z3q}V?I}gC~ZvhLV{uuTQ7DfF<>=`VU`a9Scvqb9OVqeVCsSjb#WI5CW{tu2XljTz% z|9^0Nce7IJS7X1MRZyRWJ)6}~UyMDQ)l*-GeHm+}z61L*c8Yox_8itpy$*X0>!p4i z`#o%k`UlwWVcKqSe!jt;%L36s(i!ZzER?$KAngBY7D;{7K{&qEEQb1}*z;Hd^;qnA zER}jP_Ip`2^`!^l@x7PjQD2KapA}Ot#-7j0saIg%z^bV~fqet3qy7^10@g&m?cl5T z^Pjh4t<*okzKQv$e}{b&>!$uY_98Y&-B}Iuix~ftAricQ8(a;?{{Ra>2T7Mz!~Q?O zLa1MZy_iK%pHU6Z&teuueJ=I~SseAH)$sl0gDipidh8`Eoq8FrU&6AfS7I+^`P84l z^-Eb1^_Q@3Vdd1@aQ!W;lKN@vTUjmj|Kjm&WewE-#9qc)s5=kA{*|#))PoPf@o#6H z)Gs>($G4qzQ=f|cVKzv8&LKEI4>M_xIDhl8m$LwLkhBzgISZk_9{Vm9LA?z7E*4F_ z3VQ{Mr~b?#czi0Dm-?&NA7Po)+ps^va;cxjUdf86{}+2DE2I85_Wi7idcb3_|NB`j z^$Q+@E7e~jsm!1)T2 zs<1!Cg3%??G3+%gocf#CYgiQZkFg(Nanyf&3?82&EP?tU_9s|6b@_4VPq0ktp2y+% zYFQrjVC=Q5fO;7AqpXbjRoIWR3hLKmf0ETupN0KNR!7~7{VCQ&eG&GjSPS*#*y~sa z^?dAgtdsf!*q>&7)OTQinhjFlkNp_a_KNdYi~ShW(IwLJ*q>n`)K6f4hJ{f-g}t6d zQ9q5np2blA4*Rn#f%*XUXPKA!KiHpRnbh?fIKR)a9O|QL;QT(%3aDR<{drbQJra8Z ztDt@Z_6Al(Js$fDtd4pL_7_+K^$hGUvKH$1V1JRFqP_w9ORSUn7VIyvZt4}-8`&WB z$FMiDVd}@Qzs&SXaej|uf0+fMOQd(Pzrw<(ch$iC`711fdO!A8SqydcFx+3g%HpVx zIt=HhiFv7Cad>PoIGy^<*pIUu>USK5Pl`Xz@~JP!eu9-!-*gzx{|Q!3eHZpOST*&d zhtv7|H&`9@R#;cGJT&of2)qb_b2bNV04L8h`pVKQ!hIL=ck=TQm?}P0gI*n%n|thLF(<;Pcv=5IDcP1G37!2 z^VUp9mqpJjX>>$i;mnGIRS z|IGNGu;Aya?`NT8vH$%n+%mqO#ahPy#^NpGe`AT3@xQTb%lJW-YZ*Vt z@-5>BS-EBW8CGc-e}+|C#-Cx0mhnTZ*)o2JwOYmxu`bK_zgVwj{9ml!GX5{-oF%^A z#N#{60?6Y046|S~oKN_A8fFpH#n;o{EXvaVX7QH(4@5@@u z>5@@p>9SE{>9Wyi>59>8>59=|>8jCb>8jCh>6$TQ>6)S6diL|vW(1=B=f`G*Te{td zv~;@>XXy?j!O|T@hNU}=Y)f|<1(xnIiY?t`R9d>*sJ3*s(O~Hwqsh`eM!Ti!hR@P< zqtDWrF=*+`a3-96ehec3?LR+;5oYP<7!hW_{0aX4un|XH{5<#wBY`Y_9(;u1wTvHO zEn!Qv%~ouXEc}{ zjwjS;GJEn<;BM;T`VwaJk;U~T%orr|{p0I}8N=kI8-=wwaK7Mtz}H8Z5rT&6Ic#r& z5k?kY9}|oSb3E+d1S6KZc)TYX@n+AhSDc1 zjWV;t`MlJqHaqP9Wk#*pVgD~PnyHKJU2e3J#r|Jzw438$dzTyC)W!C$F#0V03PZZh z|9pev%~RCHZsf($9I*H zZT98QfQzV$$NOrdlq`<#YNOm759?iR)KC{+e^ZP)v%~&OF`CT|$9IjQX+#C=4cZ(5e z8GnlrZyA59k!TrztC4CMf2)ye89&>|w~U`{6q)1U>tVK0X&HZ;QEiTg^K+X~YZ-r= z(QFxiyU}VHf4k9c8GpOcYZ;$x^jpR!8$;%Jc>X0D0ZC_ny`>nzWbynuseGZW+JQh_#GgWyD*?uQC$N@$mJt%E&gy!}ix0x#oEI`dMS-TgI<3$}Qv98kLsu zYmI8l__ao(W&Ap$*)o2e(Q1x|<6UQTnd4#m>y2J>JnY|kqu(-qz2Qtb`|E9^5kMB_ zXQL5}_CFst8j+Uqg+{bxe4!C*j)(J8Xr!9sVf*(P8RmG{zx#}A%lP|@BFp&ujZ(|_ z`;BtT`1_4o%lOSky=DAnqtP4>ub-QZQ`E)ld9l%9>BUB`r9Wu&Tl#~BHdmZ4F~7vn z(QtlX{SqV8(jPLyE&U-Q#?niTI7=@zQZ0Rpkzwguj66%GEHG0hs-=FL?oT>ij8{7}41s#rG%sjZie4KbXJYh_%c= zV8mPIA21Rv^A8xQ=6twcI$-2l<{vcj&H3Guni35JKayY;8g&6ANd=GHu#cTeh~HZLvlslj%dqWa1NI znON)~gzt5|ulKpWu0NlT=j(c3Kkn=Pbvjk0mTz)ZBg^--CRdGWFUH&CYC-tXT$s8MprU$ ze0?^$($UNDY;t8NKYADc`HL%vUXEw8s{mO(e{6PzR9?J~Z+4ZUm+#|ST;eu|Mu3^n@bMb#+i_Zhc zck-X7xRQaz^ME-2w!8eu^7oatyV6u%jAy$m3%wlAYpxvSMZMQtA@s6do2wXE)@yTx zRbJF~y67$JeLBm5MCucev8Ee1|Jn%kOdpwfrtuftKIpD%J9xu5vBk>8e!uZSV8H zN8_s3^6$BtR9-w!yyuE)`S)C1TE5HGqvg9?eOkWDHKOG|bUCk<=a)SHK6E7ki}OcZ zuRe68qL=%*+m){JVn24fGPHcRE2!mny9%`YZdXXl?{<}I`5srLmhW*@tGw6`J+3B| z7yEgSE2{F6TebWiSC5wOb@gfaUe|z@?{zt^iC=F-y)Rrz$Z|h?;WB~6`iSv-;Y!!? zeXa~G-{;EG@_nuXE&r7(q~*VI6>IsgT$NhB-&L*U`&~6!zTXwq^542zwfwiPb}j#{ zt53@hxCXTRfNMz054e)9{rCFpbD79;efGJMfyMfW{k+eWq2&i%St>8~^Pnq7%MZFj zTK-2@v6lbQ71r`Ux~jGOkgG<^54q}8{@L9Q$B?U46p7y(|TzS#{4_Bq~;&}Ywsz)!crz5T=WO@FNxS}dA`Wta|pqKsqyOB#d`nkO1$ph>){|2S+0kJFkrDBqMn1Kp_iWrCXj&gVmt{XM|rVc z2a!DG#rzH;#pvbyoFt4a=jSA4THZ-&wEQ8YPRk!c8npZ&q+QD=l1?q3NV-*C%s-I~ zsk~U9!^yD9i}4>$9M_BW5%U-M!$~r*xF3mp67eI;^-3aXT0V*7Xn7aO)ABBoukvDj zTqLaWqJK)tR9^H)NrjfDq)yAbNrRSmlV&aNCY@T|B;8uxB)uvx=4+B+l^6Z{h~oyi zU*vp!BoR2iK0e|{FV}~WG%e3aK+7|dr{#|#`C9%cQmFD`e;q}_=;eMNP0BPsnpA5( znbc@LnKWtsXcE=@(WFE3$B-_~A4B>ze=Hf){ISFllItVKmqHSO#rlZxr;udLA4mL} zKaON*{&^=X#OP9tof5jyXMD`PR)-Y zeVR`t1Da1IBbq;%IB$%fUt)buCJb17ze4Q)Q%H*DPay%#k0qI!A4~EypGNXEpGJx` ze<}%U{!~(_`O`?X^5T8^G*Yj;c%L3env@ss1LH`W^5Xd`opdPw#5aO_m4Alwc+#)D z|69TICb@s)^>G4W$nyPU0!cxZ@8c6lDzf}}+ys&i9N%vfNH%)8o@bI=I9_LyR;~Tnr2YTf^Y_WKNhk6x^JKmo zI6mI9$pCse-gC&1^4AXV|A$4)o8#*v-cQdX$;fiN=Mg{hYp_yzsiSrzJSEE{ME#H zo1DL#@72Tv7W2K0=dUJy^z!&#Ljqd<8j`K@ck%o+B#2(_r)x<_`TMxPmV`B5NGg;s z=f03cG=CkbSN;+1uOm^-Ur*YVe}en#Nw?;2ApOcO;r<2^(|m|Hi^crKd~3N65feE6 z{ly!JU-_4~zmWtqe-p`8ehv3Gk)Y;pCL!fFaDOuiYrcq7DBr?;5s7I27E-VL>)hW$ zqME;zv@5@p`&&u3=5HhY%Kw-9+el3F#l(4geE!|s7ZVdWKL6W^U-{3tznug$e+S7{ z{wwb9AVJOFNkYnh$NilotoagBq5Kf{B_yKx*`!|i-?*PmqUh!4Id_qEWO@I%i*&2} z-#mX8>DTgilbDvjn>g=?&;Q^b_|N}{2`uI>?k8d5S3ZgRFbQb>9+IuRhx>a-Q1kba zkn%@ye=iAZeh#Tn{y6UEkO+D?zfw|<%+F7Lzbz$El~3jQQqqoI-XHHH-O7*S{yx%= zUfyr#k{GhAH!5$`!W(z zUaaSQ5?20F?&p&V^z!<$fJBhx^=JX9N0!f53rG}MKF=*6?Z9HZ(|ElFq#M0lzxzo) zvfLl{lbFiSXGI6D@au3%Xq$mw4;~(Jxscle~9~sNx$Y7 zl9=*~xL-(|v*r9{e~%CoS!qlcZhcKjHZ&Nw><2=l7>bzsigCd5XkT{tKReia76% zAAga5nwZFPzE2ZBusHtT@ch#xpyeYZTgyjCP~``CK0-n&FZy3X!YVKNTS6*S{s7M} zArUSA45`=h&yc9f|H1RmkajKqEa}$r&ys$XPxz7lJeS0@d<}7i<^1J*YlsOf=9|d# zHN=lz?w{vKK+8WzvQ?h&{BtCz<)0@ZE&n_TtGtirpC=VsekqBlyx2cWNxjM+&GSo1 zRLj?rb}e5^x>erK^R=X3%fCQkTK)y%yeGc@$MXCO!~~9iez%PHk>&a_QMRGe~ARNd_Bq5^7SOB@&!C!PeNLL zB?)W!m83%DZ{YcrB%$n}`W4j{jTSZz6upM@c~W zPVS>5Tl1SqQ2CFz-%LW9-$KI5@8Nz6snGmZ5>ft3?zfV9&9{)K@&nwrkao?#Lb{dT z&;2W;U-Pe$nDW1J|0;3L{rCL05ffO<|1a*h5x?eJNkDn$e*XKMBwO>_Nl^JCxZh4f zntzRim3MRh8mZ9y>m;JQ&Hd}7Uh{1vs(cFfZKPfEZ;)=~$8i4!>DT-Y5>x&(?spL9 zynoOCO=1Fz`A^{fP2$&lI|(SC$$dM?*8E!}sQd-ozePgIi_e31lCbiZaKDpOpqK9_ zZ<7czKi~NK&fBCOS-zjVO`@v(RNnq=(yq1dAl+K~4$`l+?;tVNKA*SmAkH#5f7$;# z#6*_Y|96NVSggmjJpT>}X!%_vTg&evL6yIW=Xa5imVcLowfwuJLgjDg`FBY~<;C@& zlhkYZP7+o5Fwb|AcJ%W6{V(ZOejfM#CH08K%lEY|5>oA}dHXIBMlZ+v0jW^_S?)g|5%m21fFJ)4Nj z{(eZJD!+{9KP2rcFUJ27>HhybZ~qbLN0#5O`iR6-`<1-?N5r|{-}}Ftn80GbP26`A zKYBTyk4XSo?vIa2w#skf`Hx8uy?h_vO+w1Q%KdH|OH&wouSw0u8_X!(9puky(}-%p}i{u|P+^5S{o z8`7=vC-D3?q+iQ_OJZ97TjG2`%wNp+6rTT2a#E&e`zr7@&^5c1aFUeMU zvHu20P~|0uR6c{}2S`}Ue@7~`{C6ax^5^pWccfm+?;}wyzmK%5{6##!k94cN82|UA zU*#poRQ@ua|DHG>{P+GJBqp-l4}-)HEY>H;^MfRy<$oaATK)$TRQaoT{s$7$@;{QW zmj97dsQmRj|09WL`Te9`%kL*qmA{4O_mg%lKSa8<{1E9^`4XNVA~7xh6LCKD@BRN1 zF@eQ==kWYb#E)L?ho4D6%l}NWRek}_|4f2f{s0MS`2!@Z@(=U;0aBsmVuSFP|FXKkjgjk{4fb?`QJ%}mj9hZRDM0r|4!;vUhLmLNL1y;`usuK zRelT4|3SLZ%j@Z%q+j{%-2X{p%8T|R#QAW1{_Wh45ED3l{{Kb%$nyOEiv(2uU7r7o zWTTh;{Y`?(f5`pcB&59P?;jFY{!{M%Ar$MX&vMK3=OOrY(` z@8v#$b}KK|>mb^%{EyrpL}TdXejY`g3*-A=jBgY*fyMs+h37|6KYE#W(twtC(rlF< z;dv(wYWag{NXs8g!zw@OC;s`8@BU0rYae6Pm63f4CeADY68c<58zwmqXErZG+X%xxVLCf^Nfa+ujHQ5u;y)Aq5NX*Z5q-1QM6w9XShF#Mm0a0wk!Vv z_oHdI=96i^^7Y&&)0pOurp`t2`LE^vXleq-=YI_KE5DKZV`xD0$I@)&U*Y~(8q|CW z4JqHoeF_b0{y18p{M+0gM9{0!7sPf`{`UKjp{Kwp%K)aO}&tHDpuY51} zei~C=e81{M>U=Cd|F5|}k($8q^Zz93N0#p=C(!`1d>=oFW+Tg=$DKrjz~X$_$LpO$ zL+IuCGKPkg|B3rCv;w_+ze=SMWZ7RTtw)yclc_YS+7I*gskB|S7uSQ6X}8w?WZM7# z?fLuQ$ux#6zh8ASbymga{|~QsGBttY$Nv=SSN@Qn`S&TR z#?p{#eoETJ8E7x? zMF;JlF`efp&;iX)q(hpYNJlh3i8`MU>l1H3iBjNr{mGOmpJDO84@{FapGp0i&!nlE zKbxj&{%jghej^|6IW(;Nv;+M6bF{r$j7Ri8i}OX)`DA>2!e2&Po{oDl|0%Q$Sd3qc zZwl?y{N=P;^Ow^;&F9ep&F9gW=BLsT%}=F?k$?9;jZ)xv|I=u)=BHD?=BLwiV6p!` z;`0g8a`gWc+A;q9CEBz^&eyn3%(#UtIpew$dHbtr z2e4Sbae0D!(C?p-&iyrXKzUKWkPaz-0r!P;MENP4ucyh+%KrDy$me_`4Fik%+c@7$ zqso{4!oMFwQ=X5nPX*^YX$i1cAK~XvXKmc?=3Gj%f#d#unz}6RSN!U5l+z+$;l=TP zgtpYh{SCkIpU2Z-;J9B*n_h~0F~4dW1s48mp0B2@ntzJ6YyK(Psrd-))_jEaY5o~H zp!sKLO!>bk|M@C)){F6o{=eh>KSwFBSU=&Przx6WO4Bu8OS3fp0?pI>GFqtl7io#+ z>u9;=m(yzH#rmwEHJV>R>oxxpZPNTpv_YiPFS*V0_guci5#Z=!{oZ=%JT zf0>3g|1vGt{5o2x`E@j+`Sr9`^XqAY=9_7==9}q|<~Pt`&2OO2RsUYUjWh{3zJ41i z)BGlyqWMiUP4iJ2(0r8UXnr%z)BI*yqWLYfRC#gz-a;!hzm-;Lek-lfd<(79d<$*T z{3|r7`B!L*^1t%)@m1QPyknUEJdE}#e=z4(I;i~7oVQcD`rqsK8fCy@{lxfRqshvP z`mfV8QDDi~4WTdgVp^oiwVv zsQ)(YQC`&Vpnb}V`WuVO%@5LU%@5K(&Hq3LH2(vQY5qq#qWK?bV$;9(_kK!&#QF7uu@%Uuc)+f2BQ||CJ7F{x|A) zIle!|_2)P01Qz>KT;GPNsl2$p{Z3Pr7uUBxXom9Q`t~O+P+nYLMrcTRQGbLMDKF~( zMN5?z_5Y?-%8UB{&|2k1eTUJeyr`dGbSN+CCm5Z|i~0u{y~>OFql_WtMSZ8?SQnqa zsDH5G2lhD*pLq}GLySt~;r!*C6OCcyteJujH^S>hd!OU7nMeK3KOZ#mnk8QZ?Old{ zgJe2$3-{D0M4mMB1I`|!0eRNU!~WoP40EH*&zN~KXJ%9)zi?wd=c9~%!7Vdcg6&oUBQM7?`HPG}&F2{YS4ICmN3dZNum2w-fLzcpZiN4T z8>0vLx`s^7ml^}ew>MnOd5STNd|$&V-agMr+$QUl15Y&=@?*f$j8x>Ofu|c8$V(gY zc)g%e4D4}iYIyV?{`*o!-hNqcXTwvRuP{Qu9>+%w?~Y1vTxn!pe=v;ytA@9D|M^Bf z@{ho?jAG#U{jb0X1B>;w&*tynMuqa?@8Mi+)GGfeuYavkbc3ib+Kb=MD>O=hMf-m4 zuQQsI7su}gBdYvQ+}~hyC@+5h??$6Xd51H>ag&i0lH)(3v80IqzKp?;J&h-Df18nt zJi1Z*KlEZFfP7-(xjcWnk%b%pzSGDn%zrY9~Kis&H^ZiE3&9dGinBPN28uC+(Uvpn!R3q0ldJj%;EHv7Xn_#?; z8lA|SfEO7($lHJ)Gy0L=g!)y+5OPPO`2XvV8zab_z)u*7MRGh{(0;LDB7X|L+DJkE z9Q>0;8uGW`pE5EeCw|{Jj*s_gBMbd+;GZ^fkw>i&{YQ*^(tz@mK-ueZWT1NJ$NXxx1z|9-KNf$V8qzt0Ua~mtUUu8IMjqk6eynUmQB$@B0C7jn7Ci;gPV?4jch$7E!9Cb*7 zqseGPeyY*r{IbDrll5L(Gl}zhBMrH(aSG=RMmF-EH48aMjRNGRMkB<(uW1w^f4OEC zKVMpmF!BKKD@Hl;e&AP)D&)>ak>6(2Aa_B%R-+#IQ}El3X5`Pozh<-|e+&L~qeC*^ zPb>NO+KevrzkzQvdXYy#|8E!r$VqF&`tC4d$PD;R!%-~PV;J)7MiTO0z;780*|~O4 zA%CAV{K!WDcNpo&p0ykKcy<{%$VaVxo%6d!5IJS-2b}+Flpr4u_1`zjkjJj==f2B` zB2QX7$oWH~ANi8CV*DQ)j@#vUr>+&(m)%AZ@)c{v_3IOZA*Zbg^8Np*;YXeTyvImK zzH03+y#8lKHgJ6Zes1Ifi~T#5-w!@Fg35RB{q=`pPBc>Ax66kyT* zeD1$8(lr0I5l~)y9{aVC1#GbUr{*8Qzt3cp1N$5&-ZY1||Hi0Bo_Lchhkt*`s6)Qu zrUl%8YqTI=bJHWd{a&LDdHyAmJCI``$z8x6$Lh69c>BGESt7>oajajvjPrmILVgwa zJ0ptx*4j6@-)AJ=CG(#E|6oM#mi#^NkdbtccOtI@ z_PB?Tw?aM3ox4Eh-+}hY?!Nmae-3=CyY>OeKSBHB-QCEeUKaIFa?=N;_r5IVcZxe7 zdCbdVe&gJO4@sX1e7d{gVaZcp7W13n?nJ&0IKw@Jd^hl9H(Mz44+Ed$&P09|_&j$Q zxe++q-Hf~q_+ob-@_%1m#rwO&o%D#T_c{1W-C4-{!B24)At$U8U+az`U%&1E z_t&}Uqq6=z>qZ^MpP$?r$d&6RaV~NxHjycUDV2Z@rk$Bkm#O z;QGT4PjEcyPJB}Oo7ao}tK4bGb0PnvI}iEs^(XTD)9y;-I^bvBO~{*|{ZjV`@=j=9 z=T3P_*53p974CfGAAnc6Bgl?s(f=BE53;BEBHrJ6cMN$<^A(&oxRalj^(Hsp#(9f7 z3;FWqd7N9^MaVZm`|a*3Io& zJ@TiJ|J~h#JP7sva?@vJJ;z4Te}X57Y;F|uImACn!Jp!(L;eSNtfvjxy-Czd^YkH~xJk4>)#H3#_BRQ9y2p>4 z3x2#O2e}Y@z*B^LH}C{cCGtYZpXq5vejfZJPZ#n!;IlkK$UA^1d+1Wx|88iX=?Nh3 z1Ane3i2OJBEKe1(J1XXLfu{-iq^Ourwr2qOEbte55^H7sDd2NFS;*IeztmHRd@pdW zryO}vR9p`(^E4qZ13%T%iM$c~G|w>dPViTF*bB11J>akOWF!9w{whxh`Jm0Beu1YN z*|+%~KA%EQ3-T$O@8^7-rw{oY;E>0$OxB+U?Qiy^Bi{&oo2L-@zReNd{!ULB^5dJu zdd>FKA}`-8*6S`$7xHHC_jrbo-vNKGC;3I$-{+fKdHef3g~;D+ev9*5Pc!l_n?K+@ z&(n!~*cQR_Jp;%`1K;m)*2#L~w|vX}1D-VG3&Ah+Hv|9bp(|y7?U4V|6F}~1IsC{3$6uaeyV?+f2!Gz+yVJh%wgnSsCSx~-XQA@LI04NQLvkjAPo;6JCI9SD|!37%mL(zR&jm1 z+f02~_E*!oh5LKVT;!%!alI=wOOV?jKi_Od?uPvRW;gNxUAoUz?>@$09VvR>wMw@=_)Yeta^w_n0}nc0UN-Y(W-g_+VU z^Of7h@qNk6My}m1=DW(QKyKc?oVQd0{Tj0yxd+;>H4`_;dV}ECnW@N**F^pG zW)L|3{=U%+0mnZN*k~35`y7wmw}bb$(F_AGbS$|~e4lHRS&sgN``+PxlUap+Gx#lL z4f@ya+s*wJvjKe<_-$qsS^odbZDucU{QqZeGh@;x=1=>Le?G9yOy4NxvoLY=T*;Zp z*Pt&)4k33SkDL2Fv`^e5+fSG~HjjTl!puXSJXd_*tktYVzIB>AiGN?hY>@0YZ|-p< zfpZi&JZ&uJ*UcW}8)u2}w3&5LQQwzXGwmAg+stO<<;ZQwQ|5}#E85IX;GGW7W#a#P zzG0?r7VURB*5-=um+mmjw@Q9sS~4Hc4%5*B^&Pj){hHU`VYVaBnY)N4INmmsUX}gt zns%{~;P}8CLGA(m$Q;@x{a)aY&4E_Q2Y^2@`?t&b{{Vk#4!kCL)O1nrGjs5Dncp=n z%=vROu}yLh@c&Fd@?PLC%`D^tz+amMk{$m5e`A&+kD4y(?KLBq-!*Lk=kLsBOys@b5B3%y9{@hoTPB&; z7x}}ywaBBU3qHczihS5~@%h)0-te1pzDEMPyn%Mf9$?}fLbiaZxA`sUM*|z);+>L@ z1$KK=-v&-xGgs92czYx}#(+1ykq((p1NM4@??@gG?DLwtB%cXvdApD&12b>cyV7R? z+uoc`$rl12<#qm7@+H8dy=}c&XXCwL)&2?Ie!RC{Yk#JD+0a{Lp$gUTP^exi2-y&QjrH)*$+|3Zfxe}*?1S&l!$n+7cE z|H0d5cr($<_LIE1s=XNhByWLgFUCK~TZ}BnKgnB$EXO~|TLm1yzfJN+fPIeV=eazh zeJ$qe=85~;S>6Wpjq{G;{w!}4eKYv8y=~}Uoi~R2v%OvD-vEEUw-;I7-_G|sKN0hf z-`~#nCIiR+KlJ(Df*#@H{~!7SZ!xm`|IinB{d-{j`2BF=k^KAS-a_Qjb0rreUxU6G zIfOidJZ|nrzTYnNW_~8?$@}3&-U?)SKfK7>h3pGXN)0=J-~Uow*z^8 z*#XWoytM<;SC&=y5*)L%AkRWq$9pFL?V^-ma85pLlG7qrqE$qT~bM*LbT=iL>xc-taidyTGsWW(VRde6!b_ zB)JFtMsMuwI13;3cApQ-$0z#V;_bOO&ce5Ndvhg^nlAjS-oB}E7QWTne}&}TWk;tZ zI9~I%UnTjAvQs#};jJ$O=Ic9=bGx?P$OnLb^g3>cua9Uyau%?|*Nc21aDuP-4(TreKFC*jr{wE_NBIg$Bu@c$ z`qF1h4gw$SbKWJn0QeAJ5AqGcTE2dV`s(kNel~ETuP`k6R^Y>YY4=FJ7Wi=A5c2p! zaeg1+OPVMB_hl=2y(4{n$ag}2#1}1-{$^n6tDG-63~czCk>>-ueLct#=+EODL0$=L z`Z5;C_Rj%(eL2W2L2*2Mz9!^#z?RQ>zsxU$>k;#1Di-JaQNFNZalR+}nvfSk{up1s zVv$erC6~*3i>8bG@xCDP+~C)I{(fIA^1|t2eNXf?AwLBEBwtLm7k-S-`GBlf1>;Ti zWdbjBoDvlGtCM|o4+{S+e?L6)IQ~58V-;~0?~AASGJ(bO%qu)U)|U$`o+riqI?WeU zel~BP<_n`YXNmjsIA0kuxk7RUvV0yJ=c`ifTY39&zE-V$z}K$Yf6RTr*Qwfz=dpmV z8(BV&1$@28@_8)a>jxIkd*0(kK89Y7e}d2Xu$Zs#$=pxynZV-rU&VOO^!btH_|NnO zkmdN#^ku8|C-C-X`hr^fiN26(FUCL77gp`X_$T@*kmdL%`Xb13{1bik!13qFiM}Ra zpJVj=(|LareNoIGH(xwYX879BpECa(?lXLy=*NSf?CU{4dH$u`PxcL;gF^o5X5njyxMM0lU$#`&j%4@CnY#;_7yxYdCmN+F$s=hUrwFmE%SG#COGc(1y)IZ zV?H}2!BOr@X_EZj{D;RTI2QRr8zk?U|7{xod62JRi{yd%p40gApD)rXIW|9Q9DjcE zmG1!N&nIKj`R9Ya?6)QN07rdhr{ulBTYO0$NDc%=zQyO<9rqhKzv}DR6X(As_nqWX(*^JFCGL;6&mPa8$9#@hoELH4=^GxFd|;aJ9X{vZ zaTb1;kB&N294|f};X8e1Vw{D4&&Q6G+ylPLm+X$S@E`ipEnq%A(Z1W4pB!i5cl*kZ zlRRp=@IAhUlj1D=9$(j3VBY_f)A{q5ZxFc$_zPcRn)G{t`+R=n1HfPTvLy5VMf-kV z0rIHng1_|@V}94Pe9i;DO5`5keZG3+y}*OMHsk}qKl*wl^ZKIwkZ%xq)O5i=`$jOo zYufdkW4`25<#>C5fAwV|?*$(A6(An~{=-)$nb#NXM|`!&qoxb~+t-BoUDJv=JFHIR z9^iwlLFB!_PAlm&+5Z9HL##B(yuN6kXk{XgnlAWoD;N2&>Eh?LNmj}@Xzw@@_(*FQ z*#qpdy3(b$fQi*KUh-&QYE_&r`B-4XDmVj}KTnGKZYwPy{TT2b%Q-=E8n9{gA&&?4 zTCHbFeplEX8e;p>@VnOTzO&v=pZah4zX+MwX$tsdlu zW{C6u1gq^rnST`cM62Nv$-B!Mcz%r4ez|1Ff-RiKT75yuM=lt327f-WI%i6@7l{7H zTMe@$*TDErx5}@QTnFPh!^$j>d?(B&V3}7-z8QFeHHaJrKGQO+SUK0l>xtuYsg;lX5cpiH0eR7M z;V-jVfaA}rQ>@4hqP=)tUBT;3v660#vv^*;+)4))&r6Nm=UG|6;(1j(4@|Xklpo-J zs#S#EoF(r6L8}CrTp_s>Sw8Ott#Z{q5a8eEvzoQ`Gp!cY{xa@oT5YPmc;1_7bs)>< zy_r@QvV7i~Y4re$=g}vi{Q!D7{#n+r@=Lg%WhLGu<}aRC#dxo>7_uDyRaPpp9RF2T z2C%4K%iCXNNNDGxyh8z36+v7g_`8e}wjhRt){`;IFqF zH_QEX=wqV&^;RPALWl1$QU3psxjgt5t@6E%;)q68(1Y#a0A;C-^(8I`m(Fzr$)m z{~h=es|EdU;7hD_^oLZ5`QK%Ap=VWMes@{D=*NH$TLb7Pfe%|T^cR7@*K!oe^}Pc8 zy;c(NLdVVEOD%?e9{5trkG=~0Tq_-YU6nXKbFB>Yjo{~5+2}WepJ(NwZv$Uu<)eQO ze3?~<{uA)?tzz_FgP(7O(GP-OV3ngE2EV|nM4#}uSfBf?2>K%*7vsC%szvVuUv4#^ zKOTI!)r@{D_y??3^b^59V6~$^5B!5x7y2pSAGCVV=YxO9>PLSg_=l`P^ml@ zfv>O}x5)EJ15-Sb8 zvG^n2{}L+$eKPoGt!(tCEdHGPXRTcH0q`|eKKk<(f6IN16+)j2eyLT0e%4~K{!6V= z^da!IRt5Um;A^ca^b5ehVAY_1VzF4C7pyw;%fK(Qn$T}p{1f-ftQPcdfL~#?qwiiU zj?W6K3;mbi>#bh&KSBL^s~`PA)na{CT0`i4)uSdPa2`Q_JowdC;%##M$5)H-t+pue zLdSXF8?0pX!D=!82Fs5=1isNqM?a@pjIYtkL|*}Zt(Aj50`=EgdFWSyZ?X!|zXHC= z3ZdTx{$;BK{TDF)m#s4N`@pZaD$)NA?bln?=ns2R%)i;HMW6hn7=N=>k3J3j2CEtU zxlatY@M)UTsTVeEt;NP&y(U*XK!>U660Qfhp8uUxRziHK@Uj_ax zs~P>PPmSUA-?CcKzYYFvs{{Qf;NP~o(GP%s$Ld2r0{$Iq5dD!)i}}544WmEqX|cZV zTF%?$_5F14|FtNv&v6m>|60lDuLA$Rm5Tmu@b6mz^p)U0u(HtCJuTMv11lGO6Zns; zeDvGEe`JNwzYG3js|5WQ;6Jv?(EkYj6RQ$^LPYGpPpk;~BO_vdpIUY3lfi##HK9)f z|C!Z-{#@{%S?%aA2miU%h5q`8Sf9_WUi5c@|DQF0{(kWPvtsD0!GCEv?vVSl9{iV9 z67WLDX7FEI4E;Oczqb77d%%BVrK8^m{u?V3{a@hsS~=)FOT_s0T0!(DEfMqo&MHKo zxkRl0cUCd_9Pr;;rRc8&|Gia#{$}t$Sk>s~g8#v)MZXCAeyaif3rocM@3*4p8^Ql% zwV`hT|C7~;z61OLs|WpO;15{+=)VX5i#3G)Z|MIQYXp7LGh%+fS&4Vb^*#C-F~8p| z6L_Ix9Qfa@6!h8Pf49=mUjhD4D+B#)&xrB=X=S6o5By(N9{NS#|FR0u*Mk4YDnh>j z{6AJ0{hQzuSULKhXTdASP1P`(XYl=N zGUsf0e71r2G79W-yjLTh&%7)d{pa8rOGUpQJYxa$e}f;*ve47##QkkF%SC_eb7K9D zX8GvHgFl*u&}V}`mX)BN1^!r8hW>W&$FWNE4?QQYU&pZs`lrF4!0OPidQKdl6IcWK zSHb&P6#WO_{j3%JH{efX9q31%6VJCNvTpQ=&x`SoVg2Z>=g;Qz8^easj{$!QbKE7b zFK0b3`agvw0xxt-0Y8>8^fx|#32#4^`O)78{!|t~U;TWL`%_sK`c>f5Sswb=p?*5c zNB=4K@vI2_ug_n{+mB~q^mM5h{~4?T{i#dE^Z6O93jO)u1FRPPtfgZ90oH*2Ch%vn z7WDT(`!iV^`U>z9Sr__emWugLWIgDYgU?_C=+}eKU_47EKu>E$`%IRF{^(jU|8rO#`crGg{Lf+e=+6OvE-OMm z4g9&R1pN)*vsgL$IZ!`~RiUo{e?F^49|3d1)s|T=&u4l zg=M3^1N;=0hkgP0JXVPQ$rr@=m&c0HuK+)dm7(7Pej2Mp|1S6-t3m%Y_#mrCKMei~ z7DZ2&iTPc@+Rz`jOw2Ezb)laCKA-iXzXbd&Hi-Uu@Uz%3`Z?eWSmHf$eHMc+U?%WF zM=khkm>+!;_-j}?`t9HgSr+;az!$Py^k0F$o)w_~75w$A2>rn?it&e7DSGQgF~1P2 zKz|DOn^**W7WkW39s23ui&!)ITV52$w}`c(zX$xStP_0&_*+>I`Uv=9Hh_LL_+l1A zzZLu)%z3X|pIt9L#OvR|DDXnZZtx{61^qYROIRBEU%=nRGSMg2iS~D~9Q3SC%s_)=Dnz6$D>vS#!( z;ODY7^sAx%T-JepEBJY=2mLOnKacgH-vhpk4Wa)5=2yl>(Ekp80ZW=A*DrCo7~cYB z0xxv19=%*|f>r>8h(9Z(@Aj?O83-||F2>pHFD_9tP z75EBPj=mQBLRO7_{c>@97P4CO+rU?{CiJ_&SF#rLd%!PZ9q4}mzle3C{|kH->qk#l zi1AmkA@s+r5c7Y6IZEaFj067!O9JMfe}J!M$>^^DU(Hg{7lD6@WuTwGLX7_@mW}=~ z@DUb7Ukg6M3em3v{|qZZ|0einSQ+|{!Pl@V^!rwb<5R;T=wslYWA*40UK0K})`b3u zm&E*@XRYWN_~%(WdO!H3tQ-9q;Fq#q^k;*wWrOH10bk2v=!4*2V9xvG`dtV91(pQ7 z&~Y31Wh@zeDfnf~kN!dMFR}po#o%9LndqMfU&nIMH-N8WLG+uzFJ~e2Z-8IUiqUt1 zU%|@I?*YGpRiOU{{7Wo?{s8!wSS|X$!Pm1U^hxz%ed}2iy;U#PcO`2_eteg*h7EF1kg@M~ER{dVwcSpoY0f^TBQ==q5U^rC9$>tOxy5;G=8+ zedEg2ynU3#&~FF7l{x3h_3K`_k^8NT0xxvz1HX->pdYnL)ZfNZ(I34^jK7s-pg(I> z8*ksrve5^@zs`c_XRi|PC$FO` zINoQ2Cnw_1$HmXXyBIx1u=x4w`P_fNQh~+Ki^cEve8kd`B@ zL6PrfdCH4=-K+?`thbw$Aj^8YS*gm4db?RAdRgxiR;~F@Se@p3ScCGSzaG|xUiP<# zbs)?B_OLE3zlRNI`Cc}p<$Kw%mhWYBtXQx3`h39{vaJ6FO976r=NBwP%lEM?E#Jp- zw0s{c)bd}kA}#+FE79^_u}Ur9&#JY2KdaI5{j6Ebf6H35{I{%4%YVyywEO_;)A9ps zK+6v>N7}#FXCF&Mmg}>RQQ-Lc>|?1~evqYW`9YSU^dk$S zm-}fyE7SabR;~FVR-^eL)};BLSXA>ru@24u%(^uHGwav<0XC@l1I%%%TrWAk7)t~e z>m$Y=W67HTh50rA3(L^_uPjURzp|j_e`5uj|BaPsewdYNewbBh{&yD9{O_zm^M9~r z&HusLHUB5;)cl{UPxB*eK=UJPMDu?!=V|fll~|v@7y}mH-x1fJzgddr|7HQr|HCph z{}0R4yu;4dyu&Wme1aWT{R{5}$~>yTwV zVmBbm{~tx{X4PICZ(_Hjm&cphotme1pXLpFKzT7=!yZvytcTlnrpNb_F`a)O(oO@8 zU*COp09jtYe0C=CY`8!A>}=#)=8661vvYyP`ilMGvqR|R`Z2p0S?&*JhgDvTkJ**z zvmuz<{FV-{J9#CG4|7d$ic`^Q@ z?ZokN|H%H1wJEY3|FJd$j_;>q?KJeVzZ5&5`4l@x^T*kF%8U6OXBVND{heT!Aj|ok zV3(@AnBNI@6?)m9-;O9R=I6H?lo#_m(QZ~g@e2O=vfY7RJ}->1yO8Dl#@Ib7FY1l4 z2hq#@mukn97vo8_6Hov5`F65Rf#dt(WIGkToZnbG9a;7_*3QuKW9>XGf2y6Y zRbH&$sdlNBA7_`VyqNzuyHd-Kv+K0{c)LN%kGGq({CK-V%b#I)Y56nk9+h|G^Ut^K zA(a=`g9-Mq%8T=Fg6%jXe*TI41e*cJzppsaPC=IIGto}f@)PYWEkDW5(ejh*Je7Zw z*Pmn;sl4cavR$I`VtkYBQY}B(uGaEr+cjGLY`ad&pKZ5j`E%_yEq|`vq4MJVI@j*g z^5@wDDlf)&o;{@H&$AN)|2`ituqm=!p9^dT9N%vj*y&pSLOVmtUub8kyx2b%+WA`k zV!Ke~#s0b2F4FQB+vQsRKX#>-|Bqd*<^N+hX!%R+W-WiI-Jk5J6+|)@tSJqsJ!TZ zx}B%xr`!2je!5+vx7ZXozCO3usVXn}zs*ipdC~qhJ44IgX6I@7+wFWU zf4g0%{iW}+3lJyvwJi@-|o}=d^@K31@?&M7ua-? z+;4Jy?zb6meEsgX(==ah2Q*)9=V<-`J5Tcu*dfh7Xcue#LAzY@580KPf5@)Ye1%=F z`3k#5^AFo?nt#~t*8D=dSMv+)AJm7b45|lPbGNYhPtoYV8->)mr<-c8%74v0bOyi|3!k zc8k{jNxMz87w5y1c88XK((cppPul}p{%Lzi%Rg-=PL5x%#PiM)n@3Z{Z09Jy^%nl~6gz}oo`37@ zVr2RIO6%>g%8T)=w=2=h`8C_s%8Po~D*m0xZ@`_IKxX2(=sJWsUQBU--A zX6OEUeRkL>$nt#JVW$F%^%3=V*x6dX-OknW?RHS*#r3M)E>U^0|90A?DlfTQ%kQ*n zwS0$NujM=JCN1A#cWC)tc9)jlW%sDOIKI2=n97U&&}omTykuvVSdaLA=(JOS{2cNpzuDoiq~We{kfQ%Pr%P5nL3=lz_|?uRiOC|bY9 z>&1QE&*%MqKL5{o&b{~CGo$DI))8A^>7R`)HhSLA&&HNo`e$QJmVQgD+0t)`wOINs zv1cs(Ut?P={a<4{jQ-wv^!HCWVEh zJddv{)+{{6_m5bM_!!?mVr`cGAF(Z#es^q#rQaRfW$AavA|?L*;r8E*<%^H{-;8pQDnNK1VIH^bxh((nnN-(ewU_s21U|-v_HUiyy3>vG{}3 z7K=Yfby<9#>bCeiHRSa4<7tSBYM8k zk1wY3weQbQOpUU5rN&siQY9Aes)WV6YL>-&YOck5DrxZrs@CEQ)G~`dTrIcw!&S4z zAE8<-{s^_n;)kne4A1YUhpSG*^ZV%$s>|^FerALUP4wr7ufL8|L$uHHQ+WkFe?t`- z{xb4Ms<`1F*8WuCaeh2n%@QB)PmWe|#mD>cqt!g|@qOIUYQFaU^*CD936K3aO4S?w zjAXzWrPd0M_gBZLb>gGFW7G!m@qY3cwaLWaNb$$0ZWGVvgJV^&6yrzyu__`y`g^R( z7r*if=soTG{XJHV5gz>=qsAKkqgMu;F{)g6^!JmhLVUFMNmVWWW%~IKpHwv_o)nMZJ{p$(p0Ta*bdxB~c9`9E_rP>Y8pJ#kZ?GPU8ccR)QKHjgM zsCFAYpHEIyku&}M!u>f(Jrk5et$=jUncx{98cqS}SW^~HGAAwKfWc-3k2 zZ;*bx>J}c?7pJPoSv)^n-`m8Wsyyxc-&apiaq&^#1XXPGSqtdz?WlzCsINqo8$LpO ziK@2v(^S&%2NQpqsuLdlKV7B7M|-EMCZkuRKV7w0`ZH9!r9VS;82t#+pP@P}{Y2Gm z=_jg4!XN)A(oa;L_Wkjfs<`;*PpK+4`eR97suGs|OjT~_&s5b$e*)>xR7p#Jma4P# zXQ`CYf131XsU}OGP%V}|q1uhUg!Bp3Vd>9SotFM=)ot`=k^XEIIUC0Z=Kmb!iI4G~ zqvG1<{c%3&&r!ve{#=!?^yjK_qn}3lb5*sapQMtOev+y)`dOr(q*B6TKb@zV41Wpn z=cyKpKVP*Q{)@z)uR1J#vg$PaSBRgix-Gs;Mb7cpKS_L<^0e>Y|1(9!4Zn!^DXQ4w zFHi}?Uq}1}s@&o)RMm#Rf%pqm(&DG8I>Rp`eyU1Y{4~{M_`8Uordlk1x@tH4J;YB} z9TtC)>NNcKiN8p7TYR~Soa>LjnfP+$Y2P3JXI0$r4-@}cRc!GyRKoB-Cw_)1xA>W= z+VC5RpQ(}-KTFjaeiQMtRLbIKt0u$$p7`0S#o|Aw+716K@t;#27C%RI8vZ%r=csPs z@%dzhicG@(NB*c#p7wdacapwB#f69dVpVMEFIEYoe~t7Pt8(Fyzdo<34gV(bpI1qX zzeLp;KCqCUcc@YpKUXywK1BRn)nf6Ls@?E;#8;{g;nCkOs7~>bzrUcmjs8&5e?djg z!}xJMP^CQW^Y{yhuTpX0k#DP2vG}O3S|!BC^+&ZTH}QoOU#+Tz$MJlrN*ewc;xAQo z7XL++GW;iq|DtL#Jm=>xsTRYZNc@*nyYM)F%~KuXNNB_R8 z>WqF0>A$Q}!lS+#)nxc`;%iik;radIS5&*<=MeuD)ge6E`>N^`AN~KT>Nff>kp8PG zGTC2$9`Dzbr+r@k%ZUG)id+1ARc!eA#Lrg=;nCjZs$6`G?{Zab^jDGoa+MSwv&*Qs7H5vX}#9yIWgvWX(RlE2YUs81#eLd-us#AFEzbjR@;qM^+N);(f zAOAO$r+ps(-Nb)G#f8WCu2RL~qrIzC!sr`Gf0Zh?^b1tArC*?uM*jfm7pOW*zfh%& zp2xpXH5vVbq+h67Ed4iCyQTl8>M;68NdHaMY3UcKZcD#NMW*=s|1r`pQl9qx&x>nS zTzrhTRuvn4JLzjx!qQ)@$}RoXs@mwEBK_4WY3Z*~b(a1bl`{H2lKvXiWc0j0uT?EZ z&)3`6s&=E_O8RS6hoxVvIxYQT)ot`UNWWM`F2MR@eU~Ute0)B)M8&nw`{5PRFHyyo z{yLQ~dhXwKs@&-RLHg@dwWYsaB`y8+s?O-&BK`F$W$EiwlcldyEk+;wCjA~ywOjgc zsScy({qrr=Y4o|I|CZ{u^xsyI3o(8iuisXl_IbR+NdIjW7asHT9aU`UzoQaHA0z#D zRJqY}`%6`|(ewN)RY{{CPWq*)&eGqYQkMP()nxQXll}(PV(D*G?Uw#V)nW7>C;g48 z)9AVVn^d=@zez==`uqQQ(%+;!?fd8ddKDKR`@dcl8+|e9>s7+i->k|l{mrV{=qHf= zW|g$`x2QTxe~U^P{h6e{MKxLaTUCptzg4vx{duInRdrbUWvbKCFH_w{Kb7>$RAgHE z{=ZFm;$uJDrsCS?{V9OXsXC4R3ew-Hx-I>8Rb;xq|GEC}Do^`7-fxor zyDBa`_Wxa~*yy=`cd3NYFCqP1s@&2qSJjq&xk?)SQqnJ1b(VgGN?H09s>$eYCH)H3 zV)Wep-KyQ_x&L>o4x|4r>F-vZmVTw`w)87iZUf9+fowPl>-r)mi+#DrNXq;_p>W7T=&+48MW+2Gwry zjjF@&zahR+bz1y=s@w2S6MvtIlwsmPy0OnLx}&8id%fMDmJ`Fe6vbe{Et<+;YSkxV^wYOKT%1; zf0X#2s5*;(P^Aoi9PtmTCd2dR!E05E;l~ocR<#R{_a_gj4)O8+szKrxOs>#y-Oto10pQ(1EzliidQyoUn?LVSAE&U^^+vq<>`bSh`X8QU+ zsyyxU_$rBiRK+cRohml`JmS}>gzz{&wyJXRF@LS9+UUPV`c{>+^gma1mj34|B|hG- z{aiJf_-|1B&sB@?I9}JQcEevy{Cd?PJU+i}Q=Q@?pS7uOqpu@G3AMm z{y(PT;^Y3R$5gTQd46u9_{UU2c=YENs@(9m6aNcUEj;@3xJrtT^XcQN&gfT={&AHO z9`DCDs3yZV5WhjS2#@*RsM^Ixe>bWQqrac@8&#+9sPC7m+weaj{+B8;JAM71P@eXA zd_N=p2^F{ac2#WnHsae=LU7P;wOaGKAH~QB}|CFk>^qW=E(r;FEM&C{P%_?Q-f2W!({qIzZ z(P!2MoZqQ-OaHX$u=G!>PNUBu{nM)3(*IsX=3x9dK7Ow}?elntlK%H9ECP|EO9l{hw63rT>%a zF#3;?{!gmY(s!tCOW&a)6+C_(ZxQJ`l&5|F{qLVuTzu?@KdWM+KbiD@RtZc0tSYzk z&#G#pKb7>)s-&g=i>kBqe^Du;FD3n7RFkFOqFOBd7S(R_lSscsby)hXs?*YMRozB^ zA?dfO$i?aV|F6muALIS2iffM(k~K7L+x8vWNv|Get9^nX*4&!_MIzbQ}q zJl=(*|C@>nkNv+x6&Wq|twe^gC6ZrGG)CEd2|r z$>?t({R^ta(!Z$ME&YqC!|3lM{fny8=(+t))ot|LzfKjo#NYp`NZ+YE?epjVtba+x z4ZoWBmsGLgIsRppF#HdRe_53akNJ84P)(Np4b@`w ze<%GLs@>>$es-%4qv!S8tvZc}m$>{S*->q6K{adQt z(!ZrTjNT>vTdLFOx&60Qx6yO|-d2$>`0IZp>EBkK_Wk$2@2I%=*iY}MVxu2T`gc^q z(mQUsrFYzFqaQ;s?12!_OvukXvr?A-CG_bBPbR zNsAA=b%y^E@nJV*@i}gj;lE0Jj@x4Kxo*4RuOvR#?XdWW+iCb(;v;Ui#SeBP)&BUe zCw{Q&Y2P3JL2lgeHxhr4TWs-pZo=@l5ufLlTl^5W+VIPXAL1r0eyCe#_ZUAy znA>Fd9}qvxZL#=+-FCzOnD~R;4vWusI}P7Le7@Ulcz!>9h#R@oAOCvd4{<&1^Z5Dt z>rgjt_+Ju#s9S7!zQ5`)H(~fEi9gIO7ar%ws9P;Q-k(I>r1*G09d+x($MG_( z|2#wWMcpRhalFLb7Q_FA_?X)+JlPIjJ57AXH39Owg~$3H;YPmXuYZ{MBV14W z{(KB~TtK%=!cMgxSJ3j;~n9a8~!ljN4V97=lyh~n>764#2@L_S^P*hW%!Q} zKhkY7Jdd}~Z83bD_(Hec;y>bc82*#Qf5h#y_@mrz!=FU_QEp@&)*t;p+V!;0_lJ!O z)AJeJLhYZP@ye9Rud+YJ;zzq|u`cF}K3vKkimr z{KwsS7JsZe-{OyTlZL;Y#y7@oG5kr_(*1L8=*v7_9^a|tk98+%pU21iXWSiM@p&Hq zICq!!ndknEbGt2myc_%~>wSK_J4E~b{GIAXE&f!u(Bdb!af_eejbKP~~A2plz z>$z^b_+w{3Me*mlyS2~bJ9ZNDq09a8KTG^1H>!Pq{O7yF4L_la{(hz#H~b5vFLM)y z?;`&~ca`BUTuk@-xZ4dMT|)QAxRa9H9@jsd{Mqhu?eqLIU+ETo!{`5x{4cmQ+V}a( z+^GwE{*>$J{secK_L=APzuevaO`m^<_^-Q#i`e)1g>Ku`KF{;_O}Ab9%wKgqec$YE zw)k4N!{Te*?G}HH+iCIFxZM`N*bQFex6k!2cJsB*(yPGZkX1BxQZ+3TB z{4MS-i@(L~w)k7!;I;nz@c3_ahiKp5f6Lsc#V>OUE&et)Zt=IdV=ex6cbvuF?j|h$ z4!6wW?{H^Xe9E0`@hP{);_q~m7JsL^*y6wIF17gYx+#ml%UxyhcexK({Bn1##V>c; zEPjRCZt*MJXDt41cZ&N4jL|08#v;ko{1x8Cr4eE!%?8J_F^vAf*xT>nqp2Mo{kKj^j@p6g%h zZZW;GbpSxoWzl!*uyTum2-Yv2C_3k8#Z*!+w ze4ATg@sGLHhUfG5V{VPbKkgwm>vZg{SLm)mT3uK(|Do8h_sSKS?k=lWlB zcNw1Rf6eVOJlEgl2AA@9d3;>|>uyy0oIkk!f4HLz&-K6ICbWO3lQV4{oiBE~P2%sK z`W*Rhy3rfBzC)dH)7bBJmx_P(w8?e!`Jh{IBly#GyyK0z3I332uMnT%Rf~V(w486z z=V@NE_|vDIN`A=m>Y<-9?Q`Vkcy;36dGXXY>Gzl34)Jfgcmer&-lUtMf2)H1VcuHt zGqwH@FaH+s$29zc_^3Bm{ILyhldrrs@k<&``WHQq(HnIu>v?{1sK3L#vD)YPTSNUB z;Wb(OkzR|%kMzbYOOG$~#%bS=|A^OY@ke=W7Jsxi_O|r+QQk!D`|+c_7Q^%Uf7EL; z{2!=)AN6(^p8Fs7b{n4i|1q!n_VoHc?j^PF*MF?H%kW(P7;m@Xx&ASpcZVN8bBN=7 z!Yk4~$N!1uugI&m_~X4=i~p3@V)0|W%@%)>7fEsbhdN~qKcf0i_B`>+8_xbV{e2s6 zo%pjGio5CeWZow6FKsx3{BhnE@h@+O0*l)BeFu{v%7?q37{=MNcCB7Y#R(Khc}0{ezt&A9*5^e(&VXoj}t@{r_vj zW7PhcUaj~qYd_&F)4qTGc8<4P`#gU~o#8m=cn=t!pNDg#_Gf!Z@lS3%m*VGmi^VT*;J?>i z;njH^w$bX;w60b@8jw$TV_121?Xe_7tD!q!+G2fFLtI5CAnm3&{k_85E&h+RpY(#IsPAFzU+E1If4#2%8=fcrhDQGT>Q{NA#BbOB z0s7!Hz1SGOh3+r+s)c_;^H+QG#m~Ht z+rP%E6+dzxukW?qQt_kOU+ksCKT_+Lcn#torTy!?X7S_qy%eLrAMC9Y|9I`!dF|qV zM*H9LI<(LGIgv&8Q+r+7=lysYeg3}Gi=4^x$NZOrbbqr~sD0)i{5;*S?3Eav_j|pU zF#O>(-gKqR$7sr1*)(Q;1*Y#m~a}O>X=r z_2&+6EPUEeuaTef#tDCQ;~k_=d0WK4tnohbzw331e`DjrwPKm@AH<6zeD@0y(aNr(SDP+R{Zux z)_>n?6MvJg?+4x{@&BOt`@IhF|E&23ydB~{ulY4z7kt`Jv0Lf>NUvM?H#Gl4FLXA> zm#N$Tk(V!iwn^n75^>mKj@W+A6(s3K=(6xlf=)}{!hJf z@ef{o6!oXYs}WzV{v`Q7^A?CdeD!JMKkB8#KT_A<>NSXe%<8Gc|J>^k|HRd^$Zzu^ z=U_Z%uIBzf?u`=vyw!Yu+29q4f5B=#e{J-}i66gjD((L#yoC72Yrox_D*i>QE2;ip zdDYtY^TBVt8twD`o%^W!&r6SdFrcN4$aE3^3D zdF6)Z&tre*&DH+U=vC)UrT25c_ZqZ+uye*EJ1GA5Ud?%2zt8{4tDcPcxZ)9K8QnkR z%@hBcM(z*V{UcHGw|eu%|IQ;HBY(SBEB-ByOeFtr-ctCXJ0H28+JC`YCjOd7 zuGRi>(LeUc|B?O$udod5AG7)!=Vr}O7t zZ27_0uXyf)G(LFUqr+~a>wCYx;3uZsd{#Ptl=wBeKZiPBd^AX(|7R6+n*Lr&@u7m^ z3wb=;|95CUatjjL|An*ge2@G{!BXwFhS%!;Mha5m?-aj5e6^1I8!2cOzf}D4sa$_+ z;EHwJ|46|C@qe<8`+rbDO8l4BasTrRTEsu175*0O`|FoqutWR2e*Atczo66b=iW}= z9~X2R{vz@ZEf_M5+voV7QG16K4A(x#UrKzmpv3T;-(m#`!(UE(tYE74d45i&>l;(4O(BPeSiLsDX7;z&tLZ)^n8$l9OM-e}!AoyACkKg`r1rhE0?H^YVwfIjI z3^)9zDE<=#qb$CtV2t6p|3wAGhChS!#}_0FKbia!3T7F8I{BX}m}mH}l0UYfUi-X1 z`1`mM3mUY4jkBut81hdlSZ8?NUndo`YyZ&D+SXer{-lD?3?AR1q1IN;4<{AGweRPH zlM0H#J5RU%R_m*^&+~B)`JXPR(>~7!?}u>(&7$AhdeB6A-g?0X@&7J4ChUH&2%yn^jD{y!StHt#OO8KIfh;bITPrWey^cl)!D4?!E~PmmC)TsbOdEM zF?!8(K2ERyPXETatoh1${0e-^`HXwNUZu-#(XUr(eVf4<&eH>!=Hx)n1O1v>&-{n~ zy0?*HKWv!H`=_s0?4sU#iAS`zItR-CcaN+OcenSo8{h9TXe(>dc8_~eE>;LX`=HB+h zdp$Zn_+6deVqYUl*SsINKi97Bbtd~7%Ro6+@V{jq-jDspd+EK`)7OmkzvjMb*w^xX zX|eY;YVT{v-X%TPqIBn!xkeqhF75x!_g~r9>eD>}X`h_}^Gc<^oA`IQXYJD0k-n`= zt0(=6_qeHiq)gVY)AZ{M{R+*yv;EN=xEipB(FfoP-ShsJr^f>K%wDE5H*FrO(r}N4 z?kVb{#ojgd)vJLO@BgmrYYzKg-g{koR`Y{ear73iJ+1dXT5-(2->+{>20AE zzMjc+?jSbk{D5AwoHbe*nayqO*{;8`s2_Vi{fda^!QWQ{I}r1ez8l|t7Y*#d_h$#b z`;`nn{|w4E&Ny;;rTQ+%b#J=}E1^;rG%{-E9e zmh!#tvH!Gvl73vLY_x$YN*?#YP%s-kw-2H>SjrU)`>91Ul&jT}^`{=G!e2Td5 zB|*BwIl~!5ubEB`z0!T5^qS=iq1XP^i5fU6Q=;B`o%~%Pz4O&|a^HfwZ+?GJ&MgN2 zi(A}tmgv&}8d3UM9LN&vtNyf@zUz30_&q$flII`C2!9&6xALAn+}CHx4vrYzjAL!8FnVmLsmbILBFm2Ia27U&j;v;IFL2>cTN47`S)ibU%7vCi2m$f zZ2Io%5B_glum6@l^EoF&->IHy{VssZGxb^2KHm3Lk8>kl_uRvK`?jtxO<&~)uI9d4 z?5n(Iq zpxnRn-oDO%|3`Y@YVLm@_EoumbBI>k1@7;?J!fX$%a>lx^{=GY45yJ^GoAbQS`u{Hs65O0rDpNT3|98iKHCfIA!r9I>^g76?qt}pg6TOC= z+vqjNxr<)?8RnTE!2Yq*GoSD8ocQ|+yYa(+-P?HiZmtaHue3M(_Z`@Q`?te!7fSl; z{?*g-8*Tsh+V6hs;0VGesCa$n3LaNhlJ`08Lc#HcSF8o&3}LYc-u;MsFDxH%@8xLy zUyFTzkHo$0e5^RH%ZJ?-@?CmQdY7cL19;E1`_DPk`a7-ndv=_2_U+ZLZO`%UYkA-E z^WM+Z=`{djpO~WbH_j~c(3P1|EPaI>*@P^%dLEnY~Q29H3r^gr|+V^ z%6l~LZ~y!5VNZ+w(d?~P>A7kDvQl~tz;|EAE7 zuhI3@hjjg(^X7lL(mS>%3L1RgvcId7UVl%`eXnL;`t;ZV%%6|hEApQ_C+TbYLE@e{ z@pt>XmGo~u)BE33TY9YD7L@y{=^d5cVqa`}E9v_5@&UYmM@?Vzxv%B_3G<)c=MNY6 z%!Zw1(5pS!-p7}pmHMmqGfq#DMs5>+D^!XFtufN;ht)zcv zkM#cc)RrFWx7GVt=+XDB=^d5cVqa`e&Hl03TbZsI!2Lgh(&s;Y-uAUTJ@&)G>3#li zanB6kSn#t9dbKCp`}o>dy?tA3=GV`zzht`z=4>7*YD-;I{!(p z0jDpVe&6_>zj*TRN#py?vh@9C+4_F7L2{2-@89n6Q$&JVnWgVZ%hva#+4|ls_Aa@_ z+_96Xf8U4SYGvtffwT29VFu}E!i216!tk$|0?xq=JZir0F5uwXUjC*7&l$^bSd-}- zLK=LVoT2sjP66LO?C+@g9=t3)-fTTTgLKbBx<&d+V!eLn*q^!T`L1ezd&PGNzWZ8a zI8i+tybAvg<6AAhtm-X;IO{`BXT`@izW-s_3&k0!m(@2>av z4A;LexMy@|Yj3gXnsfEJ^nATnF{1vIK#5mA3UD^glrt?#_$9Hv1 z9{SH4>5294P3=q1tL)!<4-NKJI=+W`mFYCE z*gy86>{+#pz5L}M%rlhfM*+_jo{HdKdq9)kL+G(0J=w=UCvdrcMb!K1rT-;+{tBb7 z->2;DSL$d5HSFte(D?Z3yG~~N`Yn%N&Mo@CG-W z0*pC%_utRH7nZLI{u_Ub`eF6?f9b4(_xQX+{89HVNoNOe`WfuQKd+{r&;4_3@AvHc z(@(#)J;%GR<>@`Nar(VL`*shf{{*V^8i4n&p5DJPN&oh$_p_~fu0jW%)zJG%Tp!kX z`+u!n|BO9wPJXZFsC_-B{U__~bL{?{`QNV^`kp0RV+=g2q34$c>Az^`JG%`$tD!%? zyy%(L^xuH={o9RneP7oPz1!`HN?*IZwb-My`*0x2)9W0-{r|<*f5Ke#-eVt3Nzd5* z-x$7IiM_*nly-S~&-bqJ+k$dmHNB(KTkMNXZzWxyUOs^L@2Kf(KKHf!KVkmU`~2bJ zp4qUo40^REn|=)LpWe?O zR(flCO6;?1dJTJO{9ncPl=~~*y9D(di1PG02k`!#fj_KyOW$1|B<>lnzuVufqMw~mrq=pG6D_S3(spTETzcveGD|DC4y_qiGW?#TeWBEAOSaN+xU zd=m=XpYp!e`aqNqJgcFv)j1He-B+ExSD~-xEue<|WAO`a)UdA@zmLZ6no&dVl7C;P z|J&*w<^GlUzcJ^Yyn7A)`IB4R7u++tfoC=NPlUkzML3W3+|A|xI*&{I=L`%yt08?h z_QV6vY6v*#PeQ!^q=H_yEVY#wP&8+?`Jh!@CavizVgg;_}he_JW&eg zvGeFDLz&J3(gYmF8T!drb_uhY@?5O+C_E`EJqjh)n7^s#|NTnLPx`1aUYw2h?bW|Z z;V2*D$|U`Ym;Vl?-#V_k@s}}ypVQA6x#LkDSCfA7$=*u>&gyks4>TQg9?o#i(9cWZ zza$lO&ZgHa{dc3Xucoj1;9J$6p- zzfslKU$f$8mjxWO)t~;P&m^My>Oa;Od*DwricIHOJ)+(vSDl|pe`%Ed<|@rk4*efY ze{pmO{k_qlPK5q%qyH~Dzo7qvo!6XS(*MEEznovw|G`dK=1`|R^MpWo=3u8H^Q1rp z+3L(w0@Y-Hm33p_HfQ4LAJ1}}6=Y8*+bDL8*oVZnirpyoNwI$ryH)H?vJYfC&fmrV zr`SLM^@qg{CHn^HMvxsBcAU{{-`3X12ab`<9rGYmRwH7tg~`v8-;_D=^moXvkn$GtPdS@6O$LS0{IIWQEXc=d@ z)U!Q+db+3|Jnt1!-cA0ghtqtDUn90!+KFUApOo?&0)wXCOZr;zlcFmWT|6sQ`fP}K zv{#swKb_aBFbnHkCvo*+>qJ+SHGKMak8qr#tOuv9B3n%L@jfcexN!R8&zPTMIn-XuFaWBQCkj&z*zER3@v>kH@WeJS9zUATU&qaysqKj~zd&|l zM)}OmWSglyK0iH~@wJ(+k>4Wqwn@9=okcTG{;1=$n{upcn~Zn7(=hWK;%^8v&%BWA zc<14n^T=+ceYlY9W|^laGoGD!C;1&x&vqH#c4?+dt$h<`HU^_fqR?G#;?=(?o6 zF41qyICR#wV^}|O)>~w|MZYF++$=ZlI6J9*KCe8K@r_wuBELn}zs=tVQg4&g7tF?f zk7U=+dXn_*qT4JsKl`CsCw$Ct{+aRAtZ`($?2cKyo;6uJW+lk4$$E9x6tb0pH)egF zY=^}0ar!gzw~ODLA;*Wb*D2+3@_CpR-7CH*6xq~k{7>dAhlh>i=ftH|s=%3mJ)q) zCe}46jdkples>Xn&}p=;qHD>- zI<{nD9a}Q7j=_+eSH$L%<#FVPa%K5*EvfVJ5ZJf$q zqVq|d%BPZFBz}?jH4>i`TP*byOFhL>Pl=S5NO_5r*GgQ1_*>4PeIk59_%L0s^819= zz{fxTUAk_rpzDZJCeran{bw7`I%{IS-uG`!%+|+~R~jcZv>l0tn{IzoY-!*ZD z_HWg`7yQJOo6q8UX6fT5p7n6)$Em$|)+jkX%f&7bd;i4Cbo^rz8?=3(G^F(nrLXAr z6Q$RZEe!tPYh%yhdM=lGe>HI(>B~dN-|?*9Yrim9GXEQ-TNAi=`ZviI2G5$mRL9ko zK1B6Y82v4!zb3z$#?5(VXy)$A|9LLufskAm1dseW<^|WSWg+-C1g3xej!CqyWgpaw zzBTaqujkS;I8x%T65AyEqFMYFzg+hDh|G7+|1EtMF(NZ_GHiHqqLlr?VhA9{xJNe;6(M=Qyz^lI8j1 z_p`UsQ*y_XzlLm^%xk-hw=9JBpUI$a@&2+bB=0w6zLT=gyx>uKA8igHKW`2pKeq;+ zxT2n()7lz%;fklodcoJPc#dpG2zkF$`n6r!@058i&HPC6vJ2_DH1oJwY~xucO&mn~ z=Z3(vEtR;PXj-zj#BSI(Y$=cgZ+{lK;D9{exlbmx$PWv0hlt z_u^MbTwKbFq`a7X{eDXPg!pCRm;3Ql-cFxNRf}IEcC(BxDSoZkIoTn7HymdM14^ z2l_}3-XG?R&+Ft}!pH5&Q$8*BX0o&nSMqi54S}1kcuo6%nejGRF9-8qC^k;@@c4?v zFBV%OHX(eO_~l~DWPK`xua@!}@_Bud;@65_Cw{%y6qWP(tP;OTbj{+oh~FlDJNewt z&Ej{6-7fWXir*!+TjGPcvfsq!=b~Lt{6g}%zj5)4#4i@VL~KIh%ET`hTOs;t@oU5; zMPDm^o!ELQPl>-uY?G8XiyzM#qp!>2S!H5FrF?yLUf?6&;PXlg>3RRO`SnO1YZBWo z^=%fuHSqSm{P{++@EyeS`MNfQ>-_DxxW4bm#rb@P?c z7h6P@_ert%C1g2&Cn7j*%ET|1dMe20daA`wieD?XPHer{l;~E8-y}97{cDcAG$rvb zy55!Jqeb{ODQ_3MS!{>ce2L#odLB=Q*zLl1irp^donk$S>x!J)z@K||Mb2;dCAA+M z3_my+enk9;`1yk|FNK3K-|@kCA0Ho#_wn(;e*S1|_)<5`?_lJWV$l_gu4FLI|0RQQ zeOE&D@_ZIc{N;gz&wk<^_7T5^^22Y*UqkPo`F-j`8Pk$)lmAdgb@Dj+9KBG+6Bk<~ zwpeU}>i=>u;FL+fZwO48QAd8c_-g{UHoivwG|6kT$rfh?oDx4?Y{lShW&C+?#bA1$ zKzx~$S4%xL)XoMfFPC*(6S)7r!t4O``YfA%d&C3SeA|J#SX*cda*1U*NbJ@xLz#F#`R)zCaxFDvT?mwmW}Jh zvTR&0mSy95u`C!o%r=)Q&g_6PsDE$U9p z;&+MdmiXWh%vVHg{t&r75xX1Z6iJB)ppT$OZn!Z$dj9?Uz{g{l2D=K z;`_~7iqEF&-=x@XYM<9BI1JX4ev}4&`N%mgVXqPkwU{yJpE;@Lp>e-=On|P zE1Pv&z=;pL<57-}4{K_Ky<7bI#QyM6=q8?iDd~%-UwqsYll>X_g_-z#uVfhZXM)Ok zJZfm~e#(3m zNqOw*RL@d-fdxr&h+fhCVO4nfyB8>!rLz+D{mZa)Y z25r+eHKq39lc4_FZ z+SZ5urtPv&r?#ok-?d#H`iHiwLjTgXA>=I6;|XPH`#>m1+vZT7wrfNA+O~vZ+O7*7 zu5DXrq_!JEqqJ=geN5X;p-*VLIrJ%Qp9vLf+YuVC?UvB#+HMb>rR|Q;ByBrGQ?%U` znyzhEXr{KiLlxR~hbpyo!e7)j82+-hq40cdBjGEx9TNVgw)x>}wT*`BwDrO_XgfT7 zi?)T~JG31YUaoCC{5@^QgzwX~D15)RW5dnb7Kb0wc3k)oZA-%IwVfE=plu@jD{Uu* zf2(a-`1jgQ4R>f;9^R_$tnl;NR)k;Fc5Zl=w$rtP}$3~k%ObF|$Mo~vzp_)={*h5t|6&EcmJf@a@`mh40dKcX*Yy-Qh-Uotz(N8_fBUwxOK0+D3AI zrtOfNpKF_+^SHLroOW%!oF}y%p7XS}g*kuHc2v$5ZR0u5X*(w81#OFRUeR`JPM5aD zIseplT+Z9tmgHpK&g(KUC!}p6XRx-Da)xPJmUEc4Q*%6R%X3C(J1gfXZ7Xt)(ROam z7;UR_j@Ncx&Pm$V{T&?W`IoE01obw%R*XGn~+mdsew(D}ft8H7( zN^LjfG-%tN^L=eM<@`|F%{dQh`%F%YwjDXG+HT4Dg|^#sp3rtj&L(X;bAG4ouADz= z+m-VdZFlEv*S0%nr?yV+%i0EWU(+^}yIb2x?pxXp$<4Tf*Cju9kham>h_+ttP;H0j z9;$6&uB+{++~L~Bb3dZ(nB0$QTa?hRx$CrT z%6&}R2XcR@ZFBB#v|XFKS=*M}KWMuy_gQV*a<^%_A$Nzi?YS>$yD9foZ8zt>q3tud z-P(5K22#8(TXM6t-JYAP?T*|b+IHq1qV29+rEOR45!&v~E!4IJmmKzgWa;?Su41D+KVDz504^W7e)lc0>+UG>wG%_W4#tqLLowv* zNDTRUNDTQpKZblAjUiuqG34vvG34vQ81nU~81i*IhI~CHhJ0NVL%tpxL%uGKAzzP+ zAzzookgq4kkgpRl%}qT>$({7_0kyfb$tx^dRYwlIu%2{ULHffUKK;WZipdY zH^q>zABZ7eH^-2#*T#^qTVlx9>te{)Z87BQ4Kd{F_89W@rWo?|<{0wzGcn}rju`Uw zmKgH&_89W@ju`TFXAJpzR}A^OD~5c%JBEDS9Yel$6!LXYAzz0S@^wTZUk_2p*ZB(h zI;xPbJ%xNdTp?cv0PCxe4SFr*UJ_1^(uvY-Jp=Kn-uc(0}A=NSs`DqRmj&Z3i*1S zLcVTO$k!Vb@^!mHzTTveuQw~?>t_`5b%#Q}-lCANw=3l99SZrnQz2jPQpnd`3i*1s zLcZ=+$k&dGd>wR=uR|{Kb;L!!9^xWj=ex+)Q5X5zbCIuyyU5ptF7ov#7x_BwB43Yj zk*|wf*zeB8(1p&JyH0w+R~QGzdDzc~;OTo$Z27 zHo6JUr|Gu@T+3NTH`$G%HlguUANo9j(De@IeMUDq zlL(a(x`W=8(LJQ8>EXQut zY%`&)hTUe^otkYWHW2W8pGgRP4im!Mk1*^=LI-CA=`$Nf(2dqQ9@}`Mn_$>d&GOjh zn6gC%tt5o{7@@xP25mEFYlh!HMz87FWwbt%=Q)t+vy8wp0z1O6jKDGiJKnI2z%l|m z+pvtlG6K8Mu#CVm0=vSnjKDGi+iF-wU>SkkYFI{K8G#K1&3Flc*w2il4MNg}VMiF25!jK0P|HH2V}x25LAS!NjKDIIz7Rq! zBWRzaFN~mL1l>4OHs0tMLB|NXS*C1(L5m2Xjpe3n1tGM?NP0yGwX8E`twzTPI!4fK zH7p~rjKBs4`E4))%LwcU!!iQP2<&*nG6Ks8>}O0#mlo=omrA2)gB_Y=zM= zf{qb%d>0|gT8)lTPZ@MuOxaeWV+0)|=;$q&lm!UM{^^_r^(XfobG6LIb zA?c~nZ6t&;Mu=sE*sT_l-W%OcLMUT|SVo8)PiLwg1Ra+_H`}m`z%l~6h!FPadV{tS zl3o##z7Rr0fIi;`%LptZuwg=T@|M$kU`AjWfgP>c7l~yAmJ!%e&2|&Z2rMJ8m6{z~ zMp@0UjKD4;gmEmF-SVmxXYL;h>5m-iG!*svqoIIX2 zMqn9%9j#fOHAY|=fh{#@^@OmNjIfqF3E?hWpmn@+mKYr) z=vEkAqt@{rVubn_LDy<@8?}yi6C>ytLATZDc4{5(D@M>Uf-XS6%|idegyeih2s$o< zZiLZ|);fLWGCD4UZoJV=AcPexC4{4q5o%_Hh}neDgE@rcNG2plGNCzn`dmi{v6X}n zyO5B~uGZ;uozX2Zx)ny(sCD|RXLMYK`dW={qt@y3pV4s{bX$#Xr`G8+q0w;}bOHLN zTxOS$oD&Jj>=J@*gwc&QEF-XtP|J9ON{x;Ybc~>zZBV7rF@lZ}bPEkyVswn4V+7p_ zgIW#RYEWRPucIHg%TY1Hl#MiH<4xIYgBBXJ!k|`z))SKR0U_*&t%eN@^V=O^&}c%~ z#f&h|j4-0{MpvqJI;R*Nmq9n%=;jcT6hg8S2_a%3AOLW7nV9V6%%LAS!7 zMx$c{9V6&k4ccgQjG$u#-ByEk8XY6(7(o}HUl0O?3CXMxf{x3;jxcDn(J_LK5p?4X zDm6Mr&@qB;wn3Ff#|Sz`&@D7*iP15FjuCV#3~DqwM$j>WuGOH8M#l&`M$m0FXs6LJ zf{qb%fkS;1CM5Gm2s$o{cr4L5Srt=ysY|Mm=SS2-9aZh+qVk5!lg& zWdxQH*iyqX0?P<&rC}L?WdwGKVHtsC1h&zzjKDGiyPgovtQ(Dv5p;~8+eQfIVn&GA zNeJU*ga}562uFRE5m-iGM;n$ASVmw=4a*2DBe0c*WdxQH*d>N#1eOulM#C}!%Lwd7 z!!iQP2<%S7G6Ks8Y&d4dO9(8NfgNpFMqn9%Ej277u#CV~8kP}QMqrm1mJwJ+U>gm~ z2rMJ88x6|{EF-X6EhNW+(d{H8t8bMdHlX}k7(vGfZG=r3qnSiOVbEx!V+0)|=*AmVYIKaCV+7r7gDQ=V5p;~8TWHV{qhkaeBj{Eb)M#{!pkoAG zt3ex$juCW>pxbKDPNQQ49V6%ho{z$WWc~<2$7RrsFle;VF@lZ}bmI-0KuE4s38Cgv zLWp35h}j0sA#_%r{%ncRWP>istDH>NZ&Y@ZQ%k6l5b9%u`WT_Ug$6A#I!4ejf^LOD zD+yKQt)-e7p|wUrXoC@A86mdSp!I~R@*wZVi_TJ zCn3Z#LM$W12I!eUKw(1AF@lZ}*bxSeHabSoF@kQqL8V5=2s%d4%{FKbp@a4JWsGEH z2+7J2La!jG$X#&`Ls8c{LTp5R#Q4gf%K+|Az2whXrqx3Vi_T})u8o+s`7qGv5aJ82qAVOA;dC5>{f%e5vs~Nc0R2P zAz2whh}}sDv5XKKpx;3Ng$Y5&2s%b!M;J8P=omrA2)gkGl^Pu*=ompa+n_mwWIYJU zdJsZiDhVN$5n>k_w8ZEbLB|NX6$Y&&RF!v5iWow&9)!?FBO$~xLTsx+>j_omT}!cy zWIYHWb|WFgGD7TDgSHW>%4?%oMzS7+5WABQVi_SeFx*F(gsSomx|5#$NC>fELWpIA zSVo8)VbDlIRe9wU%LuWf2_cpdVi_TJyg?HPRpmWQv5XK~LTF?L=blnRsD%+~VT4*{ z8#ISdRow&A(jzh86mdSp!J04=(&qDgb=%t5Mmi2mJwpN8nlg2Ro=HLmJwoi5<)B^#4_USU5vt0&cm=I5A;c~rgjhz1 zWrWxj2CXDimG|Qn#1KMkBO$~xLM$W1wi>jaP*vVrD@a2Ku^R~?mJwnZA$F@l+Xz+V zopCpz>z-6Bvh669g1ay*f1f)GD0jP#Evj%B%!Lj-``E^O9-)} z2_cpdVi_TJyg?HPRplMAlGc|HVoM1jmJwnZA$GPwa|l)CT|%*p5L-zIv5XMQ2(b$d zT12QS?|zD9gxDp75X%U$j1arRpp}HG@^(`!Bg8fmLM$W1GD2*tLF)-s<&9rO8bXNO zNC>fv5X%U$TMgPqh%z?CGD7T5LWpIASVo8qjPy|^p{l&6D3%do!-Npa2(gS1JHnum zgsSqq@6q}aLhNWlh-HLWMu?q2h>jkLV1$TLLWp352u6sQL#Qh62Nb~w5tW1x!3YtI z5V43*Ro*`+f)OH?5JChaL@+|c3JXEUWzel8RF(Icdq_P+zNspyM*= z))T7ATSE0QLVX(vLB|L>MyPMAg`ndy=(Z86%KI(V#|ZW9Bm^BJ=oq2C%tDU%)V;Lk zgb)!Xga}56V1$T~gsSqEQ3NAIj3$H#Mu=d9hzW$M@;WJk5h6+nA%YPi7$IT~p{l&& z8)&5oA)=BHA{Zfp5h4~5s>)kP5sVPAgb*SaA%YPiRuZbp`wc}fLPR4WL@+`GBSfqx zRFzlMNDLuFY$SvTMu=d9h;4+b^1eY4j1aMt5F!{Mf)OGzKf)2OQUoJJgb5*n5h55N zVkDueyyE+4JqRIUG$BMVLIfj3OdwR1cQr*YLPRMcL@+`GBSg$0RF(H6MKD4{B_TvG zLIfj3EFx5uH)l1i2O&f(A%qAm4vGD)>8x{L^KjY1S3Q+Ld1GPRe5<$#1KNn zMnZ^Sga}56*hZ)-@9Px72oXC8A%YPi7$G9_D2{lHA{ZeeOb8K-5Wxr$BMDXI<$s^n zgAgJ{6G8+dL@+|c1VZ%wmm(M;qLdIK7$JfYBIXdP%3DVfj1W;t2oa1B!3YtH2vy|` z`2np5Aw(=8ga}56V1$U3gsSo`qX(c@5h6AcLIfj3FhayO zLRERW_tSb1Lc~r&h+u>WMu^Bfnj^kK5sVNKCWHt^h+u?>k%VZjD1s3pMiW8=BSbJl z!~{aLuO6WFAcTlgLWp352u6sQL#Qh6OBBHf5tW1x!3YtI5V435UEfm#BSb7Aga}56 z_UYGew3)FBs0)pd<(YZ;XV~DcYh@zw1qy!CFWfK(TrU!)}*g-%AxoIL8 zE~C<-f&<>98ZZQ9YrqZqCdC%)bR&X|aFcAn03C;ysIM8fd7gMO&+-2E?(gUK`DRAN z>AG2&c_LJeCy2ijzncGzYV1%ARYTQyiZ;XFprLB)Q4Li?)wo5Q;pb?m8V6KE)lfAa z{ze;rltup=ziaj}YI7qoHanQ4Li?)p(3H!>{>To)1)Gg=(l8s>X;m!)MV@ zHP)zxs-bFJqRntaL)F-#8mfk>@dRy#cYQVg8`apM8mfk>@f2-_Cp1)zJ*uHATW*YjMW_N`FoROeLtM#NXNG*pc>s-bGA8kcA@{0t3MV~c928mh(D$0 z8~ER-#tzj`HB^nKXfu2%4OL^0YN#5j#x2?mzwjUPY@r$lR72HJHBNrh|E$hA>)b=c ze_`3D+P6TRQ=L=odxZEd4h>afiE5}Cs>Wlq8Gijg;n_kpR;Y%mp=ykX|L4(AHP)zx zs-bFJqRsHrG*pc(s-bGA8c)z>_yhlx|BY(wPz_Z>)wq6{I_Io&PZ7^0`&9e(sB@}w zs(rVJ=klNNT%sBWR72HJH6Ff=jXz04)mWe!s)nlZ2yKRMrlD#qQ4Li?)p(3H!(07x zo-I^kg=(l8s>X;m!=I<2YOGNWRYTRdM4RCy8mh(?)lfB5jVFk|C%=*ZjcV*r4OK(c zc#1Z|t7xbidsIW!P&IDRX7~l)#Pfk_98e8aL)Ccrn{9kJ4OL@-YN#5j#v{acY-p$& zOH@PEP&FQ-&G6r8s2VF&L)B0W&YOGNWRYTRdM4RDrX{Z`oR72HJHJ+f& z@Om1m#tzj`HB^nKXfwR^izKMV9@S7aRE=A-89s)Fs&POyR1H<*;cv0=^)ytC1*)NH zs2Y#ZX7KhgRbz>2s2ZxqW5nMZG*pchs-bGA8Y9{af0Kr)u|_pi4OQb3ZH6DCp=xYV z4OK(cc!D;=Z~SKdH>$BiHB=2%<0;wWlq8NPsqsfR1H;QM4RCaG*pc>s-bGA z8kcA@{GM;&`9L+csD`ScYCJ)F*N=v(u|qXf4OQbQ;`@`|N`h+aQ4Li?)wo4`Ux0?H zaX>Xx4OQde+u8WnG*pcRs-bGA8jsLsc=p?PK2VJ%s-bGA8jlfQpVCk@R;Y%mp=ykX z?^e)IHP)zxs-bFJqRsGb-_G-aYHU#rRYTQyf;PjBhN`hcHB=2%<0;wYV1)B zRYTRdMVsN{X{Z_pR72HJH6FgbjUT0`@I>L)ExNe4mDfs&POyR1H<*;XBy)78pYsNWh_byeM`Xfyl}4OL^0#^DwGgjdy2HEz*nc*Xbfe4rW!)Nhxo8mh*_-)iG; z(oi)PsJnVp4OQb2+6@1ZhN`hdmHDhyTXoP&HJI5%JwT z8mh(`jl+BJb7ECP)wo3bUGn`rAE?F_jl<{DP&HJICy4Jv(@-^bh~G@7p=ziaPZ9r* zqM>T+(K!4(4OK(cxJ7(T{R2E7sKx<}!yA7QzfF&7s2UGnVdKkas2U424)0Gx)lfAa zq0R8iUd!`=YAn$>d^inNL)CbU_^OYFszpRr(NZhHqq_YTp8l!{aNSEmT9*c!V~?FaBYkEmUKP#^D2K zs2ZxqW3(Cm5Dishg~s7kG*k^$;~e!lt5Q`uqRsFP>{IPqqjC7R>{B&VjZ4J8qJMQRE;NSGyFjss>TkD!=Iy}YN#4d5nt2LP&M{w9KMZ)s-bG!qRsGM zX{Z_pG!DPw3C|^}p=vyQCmZkauXwgljRhKq52B%Js2ZoJKS@=pN*|%k@a61N?OUR8 z_#*bH8mh))v>ATU>v=9wjTIV)pQfQ|s2U^U_Y`QT8f!ETZ~rQuEmT9*xI~-b+i9p8 zTf~1aX{Z{i#uLO>hd;_=MKyM49KM-`s-bE;MVsN0hN`hgwf-NxC!=D9>Q7HAy4kcO(EYCJ;xD~5)uu|(tWlQdKf zRpT+@-?~4>vxRD`&^Wy9m-1|(8mh*K_}(iGRb!3D;nQfS8mh)6;wujts>T+L!!-?6 zL)CbK_|3B)=g$+>*dhMxzl>)K)lfB_qRsGOG*pc}8i)UthN_`z+@j6!_i3ma2Q&_! zLPOP1H6H#B8~=fZs02E@h(5X^MPtC z&^UZO4OK(cc!c4OK(cc#QbHAR4O13h|W(4OK(c7|~|HP&bx z-sT_he4rYt#wFtW<1|!_EgFYUrlD%68c)z>_$nHz#tx0ci!@XXRpTkz4F83OsU9T!-vsOHB^mT#BU(} zG|vaBaX{nnY8tABs`2o5*?0pDRbzq1;o(2z`9L*PjYnuReB{63`9L+6XdK>;hN_`z zJVyLijfSeRLgO&fP&HJI5%CNjID=}e(Kvi14OK(cxJ3M3E)7*p0jVEX` z`~(eEV~57!ef|;82dbfJJVl$~cm53j8`apOad?h~s-bG!B7XWnL)AE-arkl?s)nlZ z@c*#!Q#4eK1saF{kA|wDYCJ-G@8M^8K2VJ%8i&Wl)_q1rJ8Y?sof0%}< zp=yk1GkhBjRb!2KK4_>Ks>b%1{&!MUs!FfWFa72Ip1JDlp&c5B_xdXS>`@I>;~Lda zHTGy6{um8aL)ExJHB^lQ;$Pb|R1H<*Z(#zdO+jwc3;Dv_>`*BlizdSRdrSA0*%A7bXBP;Jw<(7RjNvth<`ED zRi&!*4AoVos&s|M;mhc%QdN46>Z(#zx<=#hpXsVnReFKys!~`zn15BN>%9< zs;la%(j6Ly52mY1Rp~XVt4dYr9*x7At}0cfH>j>ERiy{S|3B!eQdN5LF85tks!A7V z9KN5fDpjS+WBSaic?PFcm9CEIJCLfns&su!FGy9XD!o8=&%%^CE8U`T_*}ZGt}4Ak zchACPxN_*KQdN42`nal8l`hdZd<9)qs!GpLT~(?|S7;o*k*+FLrRS)wDpjRx z#Q#&ip67Q;Rp|w)tLm!KEgFYkLsylm(koO~m8#Mm8i$Xht4dYrHL9yhRp}n_y$8Cg zRF&SKx~f!_9?&>^2VGUFN*8CQKSHWXRq67WzV$co98IYzT^-ZkMyl$n(sR^jrAk%l z8jZte(N(3Y^a9mYrK)s`#^Lkms!~;Yh3cwORk}mt@CLf7RFz(%x~f!_?$J2>N4lz1 zmENGbs#KL8&^Vm^W1fX6Ri!8Idf!!bRp|op6*65_s!C5$A6J#C(j^*)FQ%(XRp}Y3 zt4dYr3XQ|p(p9CZ^c>YyrK)s|_;Z(#zdO+jwt#nnXDm{68-&Limbb-dH3&{7O5&#rQ2ird8DdTmF|w|8%R~DD%~H`|46Dz zRq5fF{@#DapT?A`(#7xf@qQqws;f$u$MgkKRjNu?$Mma7RjDdnAJYf_oX0z*s&soy z--J}vRi(RQ`W&e$Ri*o5`U#|}RFxi%={J$8QdPQmHy`i!k*ZQvx;&=Od?Sx{N>%CV zn7#w4s;f%Z$MnyWs!~%CZnEvW-=J8IcD%~H`b5d1Tl^%}imy@beRl4~7KHi@vRi&zQc}#!L zQy%Y>s?yal-IA)hs&su!Uq`A+Rq6Ja{`zm>@lL5K-5t|UCslP->He7hRZ>-|N)N~M zi%3SCwv$>Bo?&QdPP; zrvHpom8#PHG5u~*RjNu4$Mn~I8;^HNRq5gn_;}xrRMl0b%VT;$s!CPq>X?2msVY^a z>tlLDs!CPq_L#ooxASF1EDx~g=4O#cq4DpjS2V|q)fN>%CNJ&xBisVY^a z%VYY+-@)UZQdPP-rXNPC>Z;Q9G5s1+RjNw2$Mh+wDpjSsWBTj%Jl-i)rTb(0cBHDV zDm@(2XGvA5DqXy%kM{*qRjNvt$MpXtRi&zQbxeQBck+0rRF$re>4sF*Ri)cw`WjMI zs!Dgq^!rIwsVdzc)3^LC9`BT@(!()bld8I^bn#w3-mfK9rK)s!OdotVk9SH{>FSui z38|{9O4rBqBS=-LD%~E_Zy;5rs&scuzk^hjs?z;2{Z-$?%Cdn0_m%DpjScWBMlF%j2C=Rk}W=Z$+x=s?zN-{X|k#s!Dgq^paGSs?z;2 zeI2PPRi%ex`UX-}s!A8{%CVn0`K~DpjTHWBLzBRjDf7 z9@GCps!CPq?wJ0{@8|JOsVdzc(+?w6byex%n0`E|DpjS6_x16|79nIGWsPN^zgAJcarRdrSA_L%+!QdO!-cgOT^k*ZQvx<95rL#j$u>EW3E7gANK zN*907$NL_ybbm}gkyMqc(!(*mBvqxVbn$*Z-q(?;QdPP2Dxabyey9nEokJRjNu4 z$MmyFRjDdne1MPl^`xp)mHJ9}e6>lcN>%CVnEtMR$>W_;Rk}W=?@6las?zN-{kx>9 zRF&?I=~s}dQdPP?rvI5#m8#OiF@5(R=J8IcDqVb_kLdGARb5rOJf>ets!CPq>X`l< zsVY^a>tp)tkMMY>RF!Uz>0cvNbyex^n7%-&N>%CpnEouODpjS2WBNP)6_0mHRq5h` ze7svyRaccRkLeeXs!~Z;QH zG5r!!RjNu4$Mow-RjDdn{2?Fj$&d1QQK>3j9@94^Ri&zQbxhAmRjDdnAJb1HRi&zQ zdrYrMRjDf79n;s6s!~_6KgQ#oQdPP;rte3p>Z;QHF?~X+N>%CMn7*1+m8#Ok zhxmBk_{Vv?s8p3MkLi1ps!~_!Myl$n(%murW>QtEO83X~m)-Jsr&N_5j_C)Is=BIl@ke~T ze~(m^s?ta3?wyd1=YEEB%julz-0GOV;~RM7Q>seW$MiEvRUbo@Zjb5rlB!Zwx;v)7 z_9uDdQ>se$$MjQ4Rb5qjIHoU=s!~2Myi=-5SI6|tNL5`` zx;~~KOR7p$>Gqgjld4ixx;v(?B~_)Wbbm~5NmZ#TJsi__`Dq^Sl&aFjA3a{#q^hne zT^`eOQdO!-SI6`dNmZ#TT_4lek*ZQvx;>`9`QPw(r&N{hj_L0vRdrSA{+PZusVY^a zhhzFxq^eYvF8-L0_nK6ds?y~#eJ!afRi&$A`fCq7-YHe3>tp)Sq^hneeSVs4kLNyv zbEUeI$In_SZx%DyqI#N}tO1H=K1-@cdrK)sy zOue5@m8#PHG5uM(s#KL8j;ZgTqDoci;yM2eyeCeTs?t-`PXJY^DqW)Pj#H(o^bFNi zrK)s=x=&7(s?u{*SCy*LHR_HzRjNuaP+e83O1G$c=TxaGy+U%AKs;f#>=^k~bo+?$PH>j>ERiy{iJ$tHDm7e_Z`>rZgr3=*Ed#Y5Go}xak zDpjRR)O~!aRF$5gx~f!_u26UMsZv#Xj_RsXRk}vq+owuZ=>@8*N>%9=b(fziRi#&` zt}0cfJJkJts#KL;qq?e8mF`h@{;5(`dV}h!QdN3D-Q}lBRq4ri-&Limbb-3xPnD|D zQ`E;*rK)s^y7Nz!s?sx5SCy*L73wZORjNwQQC(H4O4q3S{Zy$cy+CzUsVd!~?)+1w zs`LugRi&zQhq?z)m8#NfR9BU%(mm>KKvk+rZ%|!Ts!9*2`vO&|Dn0q|`>rZgr3=(O zfT~oLo}xakDpjRR)ZKupRF$5gx~f!_u2A;{s!~;Yj_RsXRk}vqA*f1K=>@8*N>%9= zb+4c*Ri#&`t}0cfJJel+s#KL;qq?e8mF`h@2&z(5dV}h!QdN3D-7Ba{Rq4r}xbLb` zRk}dkHK%9@s;f#>=?Zlxp(<6S=cukKRi$gxJ%y@Nm0qB_ zs#KM3QFj-rQdN3|>Z(#zxg$WUZc9IRFytOckeig?%qKSbywpa)lfBV zQ2SJ=Dm|d?Z&anK^yDM%yQ)-`E>L$ms!~;Yiu$;!RFy7K_dKdnReFZ%s!~%AOs;f#>=^Aw(q$*XV7pSf(Ri#_h9g(V3m0qE`s#KNkQ1?cvQdN45>Z(#zx<}n5 zsY+Gp4XUe3Rp|kBzoaTvr6(VG-&Limbb-2aQkAOGQ`E;*rK)s^x`$Ggs?sx5SCy*L z73ywERjNwQQC(H4N=J0}-mR$rf2>jWTB;hV#szAhDpjRh)LoaVRFz(#x~f!_?ojt% zs!~<@;xxNPZBd<5o!g`C$yBAP^rdNbgW94xr#g2)-KVKaRq2EE{pf9ss7T(dPzUwU>zwyaYJzGm=-R-IBs=CikvoqAkP@PkqTcPd% zRi&!*xoLKe+M+tAI=4pM6{<>A>GRX<0<}eTPIYdJx>Hn@s?sY|SCy*LC+hfTrTVi{ z{aNi$ca*BSs_r#vvno}kd(^$9s#KNUpt`D5l^#%cnW|D%dh${CT~(?|7pVJ9RjDdH zMSWaVs!ErrJ5N=qDm_DWRjDdnq3%IdrKU9s)nj@gW9J`Rp~9-3@i4j_8n07$f_Eu#>wV>pDIu<6cc?peRjDeyMs-!GDt(GJ!|y)j z%0YKm4(e{+J*uH<+@SWUQdN43xa*vK>h8)x-QjycHB^n0kG|ihN>%AYv>9GvpSrtp zPSN98`M5ks!DGWuc^a6b$8{U?j1g$8mh+0$K3BzrK-SvX*t{2qZ%Ue`K)wn|KQ>ChOhq`-Nm8#NfR9BU%(x+%Myyx%ddO>&B z3+j&MJ*uH<+@SWUQdN43czq=Hsk`e1b(ix2)lfA~KK6c}DpjQq5wA4QK6Q7!pzeHL zpc<;iDeCi6rKV5L zpDI)T)N6afRBaN>%9-v>ASu zeX4ys)ZNvphN^Lm+NVlY=~Kk(xBmgIKh(ZG>W*twL)ExJ?Ngiu(LisVaShcoj?bsrD_=ICvkp zs-bF}q4ud#Rr(n5j!y5v^@rNGLfsp#YN#6LsC}wbm5zv4O=O>H-x_tlxT>LQT%h); zQdN41Hp5?GpK9M0bq~3!p=w;A_Nh`;`UGu;?_!^7-wt(OxvHURT%-1>QdRmCZH8a+ zo?L&ZeS6fs=BkFOaf8~YN>%AC;xz%;r`mTw-G8oXs2V39f4@(as?vvuSDR*^YTp8N zPr9n1YMi1zKUJzqA0b}jl6|UuOVoYps)nj@hT5k}Rq1228U79XRQpz_d)HMBRpT7B zPnD|D5%GHU@5S|p+P6mC&#r2y8W*U2s#KL;B3}KLeX4z1)IIL1hN^Le+NVlY=@YaW z{wn)a`*x`N-c=1%;~KS3m8#OGh}T|ZpK9M8buYZCp=#Wq_Nh`;dW(47GWMzV9Z>hj zs~W1t$tT?JQ>Ci(A>y6A-ka+WwQqsO!8__z4OQb5_4%n%Rr(0=I?U`-?OUR8@E&|s zL)AD#?NgV5LpDIT&+pDI%Ao z#CsyKPqlB4#=%z~P&HJI8`M5ks!DGWuSU#1)xHDj^$JuCRpaCn@As)vRr(O|s*~(f z?OP!3zvS~%HB^mL)aR#4Rp}$d*K6;~^@rNGMC0IVBB&aw#u;j#DpjSA(PsEm_Nn%* z&^Y)i3aW;xagN%jN>%BIHp4$QbasVcohybA{VRQtAw?{czF z)lfCAQ2SJ=Dt&@B!*BV6Tz{y2J2VcTz&=$&)wo9OQ>Ci(DcTGl#Xi-(J>utx>{B&V zjhE10exomZ%Lfl`P@7ffROfEdX84C}R&73@UP(gLP&FQW(*5QW)MnK=)wzd=*9l~^ zYV!i|Z`g0-nnX2JjZ@SzYcvkNHioL9YFwc9sZv#XiFnOc_Nn%55#KFi zpQ@p1T%q=G=i2DItf2e&+G!DLwh^nD#oT2uqQdRmG@xGhvQ|((Jes}9NTz{yBs&S6m zr%F}nh&IFLvrn~ejriUT`&128;{vr$m8#N9v>ASoeX4z1G!DMHiK?M$T%q=s?uA; zzron2+IK*`=8CGJYMlJ3`+cfZl|Dq9;XB!<+P6UC@bCHjR1H<*6!rP3QdRm0ZH71f zAg({uz9r&o!fUQSR72G`L+w+gs`N49Yb5rm_N~x3_)0LUhN^Ln+NVlY>4go_f>aGv;~KS3m8#OGhkqYWiTJ(YZ{_+!HB^l=)IL?JN*^QMV}yOGeJjL& zKiH>gs2b;}eX3NIj)?E+vrn~ejrbio_Nf}G#szAhDpjSIXfr%zpK9M0jf1boq-v-d zSEzleRFytKo8jb-aQ&h7?a(-UH~Ul#RpT19PnD|Dr)V?$F7~PR?Gg8Xd>hvvs-bG! zp!TU!ReFmy!=GlKYTp6%8d0i-s&VpZ_xn_-Dt(A}_Z;@A_AL-!5Ape_8mh)A>hn{j zs`L@!--zr}?OP&#zQsOOL)AD#?NgQdRmCZHBk|qg;QeeS0(xz5W`xb~h(!PW157kgLPEntqDpjSA&}R5a_Nn$Q z5x?ulK2<~2I797IrKV5LpDIU^HpDIypnyYeG4=WzW$o3p=z9>K0j5eN*^JO9z9r%})4!7|5!FyN z&QSYQsVaSp_?O{xT#2ZCD>M$i#+$04YCMO!a?VkkRp(UaM#O*P*{s^UM*N-!n^g@} z<9T#N4VzUBRpSP=PnD|DTf}!c&$&)f`wpmA z!BaI{0a7{_AL- z`w5R+f2e&6#7`Od{8SB9;}rGzsZv$?2yKQBXP;`{5^?=~FV`Qcp=z9=_Nh`;`WSIN zvrn~eg~q|xN>nvejpwGBYIctL7^;RU9TER+{~su2a;<*do63#K%xIRE;atK2@qppPCi( zDcTHwn|-Q%d&Ey8*{5o#8aJqYs#KNUBEFN#KGnVh>eVDw4OQdhGw%1PQdRm8ZH71b z6I`dLeG4=WzW$`Dp=z9>K0j5eN*|%k@ZRiG?OP&V?}2@)hN^Lf+NVlY>0`uue6dfp zZ-sab2==KOs>V5LpDIYM&}qrBBdicwhFZ_U#Z~nX^yTP&KYm`&6kaeTsNbF7~PR?GbkzvQO1e zHEvM*RH-VxMf`u7eX4y2#8*M=Q#DkLlRtOAPnD|Dhlrone+1VbYTp9!wGaDL4OQbA z)K@5{sLxb&PIc}P;%7>1R&8D)erEUsT#2ZLs_`sp^BHQh>YVD_W3(B*g3YSUE5uI^ z*{o`)8t15es#KMZXfymj>{IPqBVJj7eX544ae>;WN>%A4+6>QrB-bQr-xl$^;_Op3 zRE;atK2@qppPU^HpDI%AC+6+I>KGnVh>J@QS z4OQdh`TKpURFytNd^c*t^@rNGKzz->=cj6@8mFkwPnD|DM`$yAEc;aZmWZzzevs=A z)lfCgQ2SJ=Dt(OjZXWwo`&Njr8Q7<4s2b;}eX3NIj%YLdTlT5;tr5TNz&=$&)wn?I zQ>Ci(5^aWe{%Ed0)V?j^r}gYpHB^l&)IL?JN}r(3@JZ}b?c1So@YRD=4OQbBwNI6* z(x-^u2xXsY-yV&FuQ#k}s2Vq@eX3NI-lEO$@7br?cR;;Dv8thJoLt=RQ>Ci(A>#c= zKZffMwQqsO!PhiaHB^mL)aR#4Rp}$N89sr1s(ni|4!#Pqs-bF}q4ud#Rr(lhhF7ys zwQq%Z#TfRf8mh)QYM&}qr6c0se(Y22TODt&}D!^g2twQq^W!B?eLHB^l=)IL?JN*^QMYnpwkeJeB$@5w$@L)AD(?NgTIspDIg`3YQqsC^4G4qwXWr)sDgr>M_Qm8#N5Xfu2S`&9du zh~JiDpQ@p1oT2uqQdRmGZH6oMsrIc9KO^`Nu0K>m)i_7(Q>ChOM7-xX`&9eZXdHYc za#cgsxIpbwrK%AC;%6A_Q|&vTUQu1uP&H0I>wcdq zRizKnX87fw#Px^Tw?O0IYp|;ts>Uhm^HZg&^bz7G7wl8*TOwY~ihZhvs&R(er%F}n zW3(Bz>{IPqA-*1BpQ@p1oTK)sQdK%4emjAEs(ow3*ORa3`a?BTjSJL1RjNua5x<@A z$y|S^eOtsUyRlEzP&KYl`&6kaeS$W_yRc8SZ-@A8KK7{^s>X}x?x!fI&DYa8)w!pL z|FW}LwRw+tJtH=&Hme#psC}wbmEIzLPl0`^eFxNQ-K!d^#>ro}-=|7d=|jX%dDy4g zw?O0Yra#J+h-#=Br>M_Qm8#N5h~HEAQ(TFteM`je&9P6_P&Lj_`&6kaeT?|Zl6|Uu zE5yGH*{5o#8t15es#KMZi2pLNPqlB2_?I>NR1H<*0<}+-s?tle8U7vnRQtAQ9A3*l zRYTQy0d?hEp*E||sm?t?{JiW_xF%7XcW4}ZhX7SW)p!xzU6ZKI*V8%Gxu=Nxh1jgx zyhpsoAe&X2RgITWn{QB?Rp(UaZV`75v01hGfO=;FRYTQy@Y(m9Pf(jx=Tzq&BJLq# zvug7K@%uD<&Z>s0af;ffN>%A2#82TrmFpC>Z;AMQ5ca7Ws>T^=pDIChOM4RDr*r(dJM%+XBV_c`GhN^La+NVlY=_T3>uVJ5R-xhHX zCHqtjRpSb^PnD|DCulSLXZES~?a(;*eh#XJs&S3lr%F}nQ?wc0{?oW7QTz6YpU$yQ z)lfBVQ2SJ=D!oN~Maw?bz60t#BUBAlM_Qm8#N5XfwQ?eX4y+G!DKmg{q-yoT2uqQdRmGanJIf=K4eJTOnTmfPJcls&S6m zr%F}nh&ID}u}`&cjd)GFm$?2=4OQa;wNI6*(o4kei?UC(Z;N=HJNBs>s>Tb`Of|bg zeGFAYl|Dh6;hXpvs*kZlybb{$L)B0K1g)H{5r8mh+0U%cO^N>%AY#JykaQ|((IzOv-=Q#DkL zQ`G0DN>%A2v>9H-KGnV@;yab>Q#DkLGt@p+s!AWD&F~ZKQ|((JUOV+CxK2?GRpT7B zPnD|D5p9NN{w&uiYTp|1daCSGHB^lY)IL?JN-xo7_%!yZ_H7ZbgUdcuL)ExK?Ngw`6pDIz@3e158is&R_?{8XtbeT2AP*r(dJ zM0{ua4P1YyhN^Lf+NVlY>0`7RUhx@Rf2e&cG!DM|i>je&oTK)sQdK%4e)7XU)xI?v z2j4G7)lfAqQ2SJ=D!oMfw=Q#O7CUzbR_7>YVD_ zE!qs9!DiLw1L|FIR1H<*!C$)He1h7nI;T4K5N(EUVY6!U0*%8j_$jVaR72Hx2L0tX zdaHMQ@Zc1+S#?fz?h)e7q0i)sMQvUp?p$NDs-bE;i`smK+N?UKI`xe;*{vstxyjrdm)n^g@}<9XEP3)E)SIn}vK#CM|EtlGRq z{QHQ_s)nlZ!Zf==ZC0IAo!cS4T4#$YRi!VYKEG?!7S%b`xjh;O-;qd_s?wKGTW(NW zROeLZ4v7C^vqhDv(g%O}e#;4Ji|U-}+ye3MWVWbMRr(C-b2&wAQJqtrTO$5-%obIu zN}ok-IYVtxol~7#A%42a7FDWBpF{os_Z+oFbxw6|jmE)uR#K&^^m){l3)B|XIn}u> z8VBEjNtLS77f@TSP+L^zROfbxuh!Y3N>%BLs4ds1Evj>>b9=;3_1U6IRq0FU?s`FO zxtY$X&K(f{-(rhuizQKiqJww$B3sLrX*tr73c!WLDkN}oqc|-9U2GU%SyFHmA;7Xt{2pn>*<{8+#d1W54Nbb zsM42EkLU)qMRiVf?tpq9ELEyXANf93XyY_5RrKI0sL)F-#8duXf)j8F<-E{7HI;T3PI=7$B-Aw0H=Tzqo(@f2?KGT!`^Zs*IbyepU z(@f2?x~I%$)pgdn<!;Uy`EB4 zs!DIBRF$gIlfQQVS*cQ0dOD@5RF$4hsVY^a=ToXmRp}b>)35jEZ>}j-r5C6_D^*vO zZV^A}qN_?(=@qK0N>%9&jl+MXt4dYrHL9yhRp}n_E?ytN-%V4hN^ekIRaccB&^R35 zvu;YAm7e_d`>v|1N*Czv9qp#nS?MY2Z(#zx&>5UZJ|GRF&>f*M=%prPrvgDpjR>)U}~X zRp||?t4dYr0d;MtQdN5LH}1QtRFy7J*M=%prKhNmt4dYr5_N5;QdN3}>Z(#zx%A@nyGnK%B_l&Vry zdNrl0RFz&&sVY^aH&d!gRq4qq?;nvWRi&p>s!CPq*_5hMRk}j`&7ewE={f38QkAOG zHR^8$RjNuaP+e83O1G%L8C0n%y+U8s?sIuZw6JWO3zSTRjNu?sJ|IhsVY53 zbycY@8*>Z;N$y8DV^N}ZKnp}MNBD&3*GuPCO}S?M*ZtLm!KJ-Yjf zVoIHr-k`dwt|~pCyRRsw)LH4t=iPTzT~)e3cVAIVsk72k)W=nIRp}DleMK>)&PvZv zT~$|=uF&0A6jSP~^c>Yybyeva-F-zdrOrw(P+e75m2Rh*nrAhxn9Zu|taH1mtL9ma z>#3{is?P1FnVM&HZ#TE!sjKE$jg!B1-&J*0=T4_om8#OSDOIJa^f|=8)Zg;K zgY)T}>YVD_^V7MD>744E>f8&Rd&PqXSJOGwIn}urr*qfSIn_DUxtEUT{J!$dbWU|n zb?(96zW*2Q3A+1JL!EQhxo4(xr_(vrIn}vmr*mi1In_DUx#yDa6rd)Rt@17S$Hjxjnl33VBMM zmA-`9a)a8U+M+slKzCm&PpPxg2Y=^&%L%%B-cVbdb#8&~zG|LQXQj`ezTb3;+M?Q` zI=4i3Uq4T&v(jf#Th35hR9jT%R_N|4=_z$q`W$M@Icke)i|X7O-F;0xrOry9M{T)4 zZBcDeo!g?judb)mS?LSt?s`FOxth+Y&h1cFo$6z#(ihR)^@7@RJ)KjX+oP^J)fQFy z61uxyP+M-MbEfb=9f1sM6=r-SvXnaxtA#o!g?W zI@K0c`U2_^U7@z9&Z*ArP*DQc$LqG~LsnVM%co@LgSGt^AAMb%hMGd0g@ zoHLtM*IDP*Q&-Ki8W&Sn)m5F_PBS&n>RvIMRo7YPc2if)vl`b^SJhRW+fOq!&+6VV zn^o6Y=MGa>&9fROfA_wt>Z;ByrkR>&bx)bis_U$C%c-m8S&g%)tLm!Gt)`ipXLZk+ z&8q9HbL*+A=2?x4sjKR$&TXfenrC&dn9Zu|taH1mtL9ma>#3{is?P1FnVM&HZ#TE!sjKE$jg$ZDzN_l0&Ml^ynrC%Sna!%}taHn$tL9mav#G1#TF@sjKE$jf<(P>Z;Cdr>N@M(a_XviR^x2ys=BIkt7)d@S>1DHv+6qQ z+Z-b`bK7aA=2_h)dYYs(Du9dg`jWs&o5krsi4Q8)mcWI_unF z>Z*BGfCCYsd-lSoY}0p&N{cA zx@w-)xR|=CuIk)&nyGnK_lnu9y3RVco4RVA)wrIzs;=tXewwLyR`-V4th&xRcbK|r zp4B+{d-q*cS9NYN&D1=rd&+E9U1yzJPF*$6YMf17RabRxHORvIMRo7YPc2if)vl`b^SJhRW+fOq!&+6VVn^o6Y=MGa>&9fROUwq$H zbyepU(@f2?x~I%$)pgdn<tcWuBxj# zx0q&Xp4B~NHmk0)&Ml{|nrAi6rmm{1I=7l;YM#|SXEv*@v(Bxju9{~xE~c)kt2(!x zW@?_*y<#@2uCvbVrmmW2HC~+3Yt&4&Mb+3(Gd0g@yfmdZsF`Yus&SZRYM#}2@T&X9 z32LU=qG~LrnVM%co|)29)J(NS)mTn5HP33CF`HG_S?5+$SIx5;&rRt$YNpzvYOJT3 znrAhhpVAA|OtnST*iJJw&uUyTn^o6Y=XO(9&9fTUQ&-hho!d_{HP7n4G^IDFnQDuw zahPUmp4E8pCHIXJ)J(NS)mTh3HP33CGMiP`S?88hSIx5;XH!?zRh?T+Gd0iZo->IbGd0iZo_y*3$5nMz=N8jU&9l1COzA0VrrM%vET@^8XEmOk(lgXdwMErf zO*1vmYMe8hRo7YP)>Bu_vl7^S?3N@SIx5;Ctr5oRdrS87Sl}4v%06uX4Q4px#iSV^Q^|RQ+kG)skW#Z zt7)d@S&egMv+6qQ+Z-b`bK7aA=2_h)dYYs(Du9dg`jWs&o5k zrsi4Qm!|XvHB)U-H4f8E&9fR0{{DUA1T|A_Q8gCROwF?zr_5&6b=JA%)K&AW#@W zskW#Z`)Q`;S&f&b^aeFkZBaE2(@f2?8YjE^uBxj#x0q&Xp4B~NHmk0)&Ml{|nrAi6 zrmm{1I`!<9%lXUH7H6GXqh@NJ)qQ?SFHkd8L)F+$Gd0g@yfCF# zsF`YusYM#}- zVm7O;v(D|Nu9{~xuBWc5t2(!zW@?_*Jxr-8Ri%qBzu%`yRq1j{RjDdnO{pqXrRynG zrK)s0rK(hw?xs|gs?znl z=Tzs`(@f2?x);o5)pgdn?bKECtj2CiRjDf7PpK+ZrH3h1rK)uCkM19bDpjS+DOIJa zbTy@_RF$r$RF$gI?UbrgRl1u}RjNw&Q>sc;>0wG$sVZH3<@9(_sk74Ml&Vryx|&i| zs!G>Ws!CPq^HaKgnL6jJb1zKk6V!kAchgMOP&M{bs!CPqOH+DynL6jJa}U01`g3`i zI=5ifxo4(y`7(9RS?5+$s!CPqb5pv0nL6jJbK5CZrKb z=MGb%BDub%#dUZ&11n04-%DP6uyopaW?XQy=aGIh>b=hjoIN>%CeQ@VYbI_Io& zyD3$rs`SMv-M>tobJn@Tl&Vry`rvD(KcSbYa|>pjTTZDeRi)2P>FQK;B zsdLUcx1CZ|s!Cs&(yM8v`ukbc*iADv&)Ra$Y*t-oo!d`cHP33iG^IDFnQDuwahPUm zp4B+{+WW4mt2(!sW@?_*eP&8eQ8U#RRbx5L)I6(k#%xwyXPsM3T{X{YJU6B1sF`Yu zs>f3HEyP^s;fG8 zm}Y98)qU{l`^MsB>YTIAJu{`tm#K5kI(POm^|?6f+-mBoc~@{=N>%B4N>!;Uy+mD!sw;7e`s`H= zRpaVqy8F|e&h1b$Rae!$ewjMwtaE$ROwF^phbdL1s&w%U-Z$avV5qjJ&YhypsZv$C zMC0%ZeoI!Bs?sx5SCy*L$LcNof3o_nw|M-{iw#fE1XnHn~ z&j#|@xI}s9tbDgBau>OKo7yi)i)@kY?3>vAhiQ>5vRzH>&!O2hsX_Ni)>#OdCDQ$&3`bbAm@;Cr|7wF#-B3ed0!T}dyeuB zIQcF+)8Vdx>`Q-<1vI26E#Xxq;lcMS0h}Y#=v~8+ZTo*#>fB7Ug~MvVq({ zZY(1o1G%w^a^K`^AUBX3FN)sk4c_q0^KY8SU->55&3`T%$PMJierjKo?@mLu$o4R` zADR}~BHL5sRUunsdyev+SJ_3j$o4UE7uh1)OO*H9$u6=*w%5pAWQ%NX(Qf`;`F<>9 zi)`=y?`ONn7TM0C-Tbq%i)@kYGV*beEwWujc@L=UB3op8AGwQck?khh&EGuVPlRld zZClwk@)YD8a&8~xT_$o0vPHICWe<_3Am@;CFN>c3yhXeDm*%`f%^~Mbk*6R}LAGBO zJ^jgxcJrUiDd(C)&JC44MxKW}4>|Xm=;_~+QQi$8-)VEHIpo|}*){S!vS?f^3m(^Ucq)yU0_JbI7?_w3|OSU)x8v z$aYcLGV&DU9CB_I?dI>0Q;;pPy^q{Qw#ar9?dE?WyT}&Vwv}xoPeINh=l0QV{`olt z*&^GA$X#TMY!6Z1H!Zu!7TNZdogz;`&LQW{(Qf`O`8qkWMYfNTyT}&VUZT7^aCVU` zvK=eCMxKJ4L(biz-TYNK1=%9o*{f*Z$QIcyDqBr+Z=X5j9CB`5*=Cyi#LOY* zkaOF}D@C@*b|2;acCw3Xk!@GmL*yyQIpo|S%EwnZ1=%9oQ{*nPMYiWCA5~=+*&^Ga zvd73%kaNhnOO*Ft$k$PkEwa5v?jl=cdyDd33)w}s$hLX)v+OSN6yzLoZWit4Lry`q z$aWdIi)@kYD%#EG`Kl9MYe}%H-F#kB3op8irhuE$o3rV=BMl;TV(qfxr=O(?IqgHzc#zb7TI1Scabf! zy+ynEuVxq7BHO#+*)Fn0wzDXAOU~DHku9=aP3=dgMYhOxGqqoz7TF@({nS1uU*kl! z$o4R`FHVbWk?nbEcWIF=vb{|0E7BrcWII-No92EkbI3X5-0YEG`3L1|lE@a>E-G71 zb8Y63bI7^P)P7}JWQ%Ou%J$RTf6E+l4mo$2+RZESY*dSE`^wJK+(%{(c?xpwGPSQr zi)@kYZEAltEwV+n%|CyZA+uSun}1-w_J-U*wu|W4eDMe6d70+^MCOol$hmc8$ZQks z=3ku+obG|l++(5R?Yo2AuY!>b2ugeB<1KF;oc1(+Gk?m$` zpP#QvAzNg-pIW}EhisAUVQT+YT4alC&r|yk(jr@Adzso_N{eif?QLq`IA1qGw#at& z|M2Vmh_uKS*{-H`pBC97+s)LzIxVtAw)?4leOhFTY!6e*S7eYavOQ1j3(_K6WP6#~ zhqTBR+1{r1Z=^-G$aeNE{CfXQT4alCS5y0QX^}0m-AwHt%IC6?EwbHD?MI|Vw#fD{ zwO^GM*&^HX)P8eXWQ%MsQ~SpG%rCM4IMYhOxHMO6X7TF@( z&D4HdT4alC_fz{rX^}0mJxuMpFQi4b$aXWe_xU^|vPHK0seN%;WQ%MMQ~USQB3op8p4zWVi)@kY zWon<3&#fU_WP6+1w@!;}k?ri;`1StDw8$3OuBP_SrA4;Lb~Cl#k`~z_+x^u3Kw4yr zY!6fW9{EfZvPHJ%seSLX$QIdNruK8vB3op8o7yi*i)@kY>@xlSrbV{Mb~UxXkQUh@ z+s)Me!F)CZ*&^Hh)P7i6WQ%MMQ`@ISw#fE8wXaNzY?19{YMcBW9@!$>+tfZUEwV+n zvv23u+onaf$aXcgpPUxiBHPW>zA7!UMYj8?eO+2)i);^5%jXG@EwVjN?F-T(TV#8g z+Lxw9w#fE2wJ%SLY?1BkJNWhTH)CXrY*$nJvuTknvfWJW`{wUj$QIe|r}jhAB3op8 znA$H-i)@kYd20VdT4alCFH`$o`FJ1MBHP>4KBPsq$aeOf{CdAVEwV+ntEqjfe8h}w zk?m$`KPoMvK=ZzW|wF;e_1w= z8_0I744K`c-Tb?Vdwu=y0j@0yR9kQ>Oh`R->KGMh!a`DbJUxq)mKl_9fLw449cY#=v~ z?Yc5#wu$oj`)nXLkZoHTGTTS_x=S{Y8_2e+44ECGd?h#=$PHxMSBA{aQNGrZkGGH; z$abg{*LuRum_f*UVas$~eDnn+gXgB}P zY#=v~?Yc5#wu$n!*?i=M+(5Q%WyowF?dH$V266-0c9kKsLzMUQ$p&%*+4hwovvZVp zD$WLS1KAFhA+t-gn_shm+(5Qt{yH;`># z88SOZyZJ|F1G#~0hsu!ICCX>ovVq({wqs?tY3?FeJ{WA*QZ6c$aXcgZ=a7fkS(&^Ozl1`vPHK0sr|aN$QIcirnbp{qmeDL zJx}fP(jr@AdzspgO^a-i?QLrRaav@HY-iuculL*1B3op;n%cL{f2oiyvfWJW$D~EJ z$aX)qU!NA)BHP2%eoITEwVjK?d#Jb zTV#8lTK+wPY?19{YG05R*&^H9)P8PSWQ%NPKftf|Z>2@H$aXcgKb02QBHPW>{&HGm zi){B(`vLirgKUxQVQN1rEwV+n=c)agw8$3OUZ(ajEwV+nx2b)byn>M}vYq`)e!cIO z7TF@()zrQuEwV+no2h+ST4alC_fz|QX^}0mJxuM7r$x5N_B^#O%&QRDBHPQP_BHQ!S{%l%gi)=4byUwox z*&^H9)P7-FWQ%NPKg_SUPm64k?P_X&IxVtAwwtN_Jvj^6BHR7c9?~LPWP6y}zmpc( zBHQ!S{zO`2i)=4b`-^FjEwa5$?fd1Q$QIeoeuQ7|hv)wzTV%VM+OJ59Y?19|YQHfp zvPHK0slCfTku9=4Ozm6dpU4*3o~L%3ezJoT}8Y3JLaFr7TMlM?jl=cyNU8$aQP>)MYh|>U1W=F_fh_in13Q$ zWJ~TYvPHIsD1TebKanl6Jw@&!TV#8V@^`TO6WJo$$H-k|i)=4ZK2wx`B3op8jod}H z$o3ZP=J)?Pzk}5x+q>lMB6pGPEZWUqoPQ!)WV?*qMYhOx747CYwY?19Lau?Ym+jF#= ze{pt^EwX)#+(ov?_7df*jM+uD$o3k!i)@kYEz0*Ejrskp7TMnAOm~sH$aWUxdyle< zY?19Uau?Ym+f}rie{*(`Ewa6j+(ov?b`$O9zwVmf-)fQVHgXrai){B%-qAg~$QIc? zMD8M6WP6Bq^S_f_WQ%N1k-Nwi*`A|(r7*k57TG>V?jl=cdx`R0qW>npzttk!Yve9+ z7unvTe3xi;ku9>l%k%FpvPHJDDBqWxU1W=Fmyx^37TK<%-TX~|EWf|iBHR1OUF0sZ z-9)?jhh-PpBHL}`F0w_o`)D`+yV*sy$o3&}7uh1)L$sU!RCbXqvOPuaB3op8j&}1G z{&;?Wt3|etk-NxUWP6Er^UuyMvPHJn$X#TMY;VzS{@vL{w#fD_uQzv*EwY_Od58F) z$nS5p$aYcLGV&DUDag51w3~lwPC>TFc3s(hvPHICWytIy@;u}QvOPq*`5XM(yf&&uwtZ#D>=bz(@;qdFj`Dp=IS<() z+o3XK_855{as%03qTT$@&qHn?+f|g0hjJdWMYik8klB6YdB_c9yNP!5Kk$=z{Z)%> z+scsHHu5~=dB}Dj<-apI57{Eyt}?>dknK6z z&0mu9kS($uDnn+Ek>?>dknJVP*Zp!HvPHIIWytIrc^+~D+1{ev{5}6&UVqgh+a~{x zb_1E+MV^Ojk?kzn&3}K+L$=6vQ5iB@MxKY8(wudNxesdnOMYerq$m|q( z9&!WOo}>J?=a$!Bwa9j;44FMfo`*aS*quOAm@;CmuNTthMa@oI}nXB7Yhm*&^G% zvQy+K$T{TPIr1m(ku90lUoI3*`TV%V9+(ov? zb|3BL+&2K(BHM?^U1W=F4^e&^A-l*H*`6YIku9=4N4q(98bG$l_Azo7*&^FZly`Rh zyZQaC7TI1Scagiu_7-_>0%VJ9@A7e%yT}&V&LZzpfNYWNGIAH$BHLBu{R)sRvb~So zMYhOx6M5$XWQ%OKk-Nwi+3q9nSAcAh?L*`)vPHIs$omx_TV#8R+(ov?_8fWV0%VJ9 zA0u~>Ewa5t-opUdBHL@^F0w_ox5&F0AX{X6myf&LMYhOx7I|L-WQ%NUF0sZ-AB7QcSk_B$o3&}7uh1)L*(5NkS((9 zBfr=56nP4A4mo#@yiWqMMYfNTyT}&VULx<4fNYWNHF6i(BHLT!eG-r@vc1bki0&d= zWIKzzPXe+lMBeoP z*&^F(K(@$s8@Y>Yk?lV6z6Qt^**-+>B3op8h`gHtvPHJ1$X#TMY|oK*GeEY;_Azo7 z*&^FZGkyT}&V zo+IyifNYWNW8^NfMYfm7yB;80WP6R=MYhQH7J07&WQ%O?{=>6fWQ%NPk@q@4w#arF z`MAgy*{&k*aDZ%)?S14fvPHI=$U7V$TV%V9+(ov?b{~0%17wSAA0l^=EwVjC-r)e* zBHL5sF0w_o=g2!8AX{Yn7`cmVk?ke&4hP5<*lMc&~6*&^G!|M+Yd*&^Fn zlma+x7TMlM?jl=cyNP!5=lrAm_qSSPyN%pM?jqZL zl<%_0F0w_o50Sgb7TF%6-F%l_WQ%N1k-Nwi*`A}_oVzk0TV(qfxr=O(?IqgHxl;qO zMYh+-U1W=FZ;|(LK(@&C?q{CuB3ooTi}Lf0U!C9IYLV?S@^O*7$aWRwC$zGQY?1AK zt-`{GH?J05>xr=Pik@vSiw#fD|au?Ym+e_q~E|4v{$o3Sui)@kYIoi#+PY1F^ zwvUm!$QIdNqTQUkcpzJ3dyU*hw#fDtd5;fdi)`=y^Rr!Ki)?4nZq6M*kS(%ZMm{dG zMYgLbe+ILQY?1AKTx5%EmywT)Y?19M+ReEi3bIAE_mR8E7TIp1ye6}YY?19Yau?Ym z+kKSpy3a1MMYa!-yT}&V9-@4gV|I}(vOPuaB3op8j`C;l8}s{HEwX)#+(qsp+e@^Y zbC(umi)^ovyT}&V-Xibef^3oP-OoSUMYhOx7UlD1d0b?RY?qObi)@kYD#}mWWf$2Z z+xy5}WQ%M!(QeM&VUR7d-A3*rTV%VB^54*ZoZsJSk?lj|E^-&y9-`fxJIf$jWP6I- zMYhQH9PQ@ZcLv!a+sDXVWQ%Ms(QeLNX^<_ly+-aLTV#8Syk`xvMYeap@N5^^BHLNC zn{!7SWQ%N>^uayN%pMw#arL?dIGo z2iYRqhsa%Ii);_kZqA)_kS(%3MeZV7WP6VCce;O)-`{GH?PKIFau?ZNqTQUk@E}`c zdyU*hw#fDtd5<1si)`WII-d%&w8=AvciiEy|z$oQG_YZSzad zGGulac^+~D+0LT;`yl5bTV%Va44Ew>&qHn?+f}ribI&AXi)`1GA+!6)^N<_Jb`#}0 z$#WjEMYe5a$ZQ*V9&!WO?xTFCPR>KN$hNBtnLR|FhulE6hiEtFPEN=c+4hwovs2`G z$PHwBj&^hI{e*0h?NAvqdyG5}xq)mi(Qf{{oQG_Y?N}KyyGEXe+(5Rs$ooqnTV&h( zmuDF=yNf&zxq)nF(Qf|9xjtlzY!{Uwvt{IY$PHw>it=@XoQG_Y?Yc5#b{}~jas%0J zqWoPq=OJ5U+g66mwvp!{H<0Z<%HK7it@SoSLO9rEwWu#hRp6G z&qJPvY&TK9!z$+?TV&f-hRn8+=OH(c?LNwPUgSJvi)_2fkl91zdB_c9dx&;(?sSH1 zk!@cYGCM_{hulE6=P2Ko@#?((sztVsk-NxUWP6G7_v!2+TVy*{hRm*!=OH(c?Je?N zYsePaHvjF}cfj67o`Rf1&ds8Hc5uimtXgEds0^7cBhN#ghiq3-?gy3gkS(%ZM}7zF zedH;~Ipo|X+ReWrryyHo+g66mwvp!{H<0Z<+Rc9^=OJ5U+eLl{>_g-!$T{TPA*(0LB3E@Ec?xn4Ik$JY>{mj9h-lat9pn$1v!VD zJ4D_E57{EyzA|KXiaZawfo#u__sB!G$aaX1&4t%h7Wxmo0$_K+>IT~vn5mXYTnH<0Zr@;-dX7TK<& zWAkIYt|CuC&LQVEk@x09w#c@v44G{s&qHn?+kNDn`;aZN?V@AzpLktGo`Rf1&K)A} z=7(&NZC@EOJ4K#{+(5SH$b0=ETVy*#$L3dfT}7UPoI}oCBJcl)Y?19)88W*@o`>8( zwztT;10q{w+x!Yw^(LQ|*Hz>x$T{TPEb@+l$QIcyDnn+=$n%gJ$aWQZKS5-RY}e7T zdD~poedH;~Ipo|X@*ac87TLCyA+v4ddB_c9yN~iQ$hYRdgViG2E;=^vlB;@%JOz0Q za_$g$S3+cqZ2QWP*(vfoG+EwWul$L0fgT}7UPoI}oSqWpI-SA}emZCe>K+eV&;+(5Sb$oniJTV&fs$L1q= zT}7UPoI}nXBJaJ3Y>{nW88SOXo`>8(w&%z@Ga_4LJ4DCkPw~2nJOw$2oV!H3IrnWu zw#as@44GXc&qHn?+gs%Q9g!`vZGMfbdI_(q$WxGW$hldRe=}V2x~dl0E-FK2%gFPP z=ONowl&?VNJY0Y+hH9ry%E$bDJoizsf1d7TLCyA+v4ddB_c9yN`Br?nH@f zk!=?po4>;AD)JQM9CGdu{Bj<$MYcn9Y`%oo zRpcqiIpo|W%GZ-~3bIAEV`a$f8hIXa1KHjp@1BWlk!@a2xvIa<>ni{A6yzLoZWiS` zOur+qt7?($qB3N*j64r{98z3UUrPw~6v~lAMBUk!@QU zGTTO;hulE6`zW8s{LZ|tsztV4bZiD*SCOY6PeINdqI~u;ryyHo+gFCnPLby!H<0Z) z+ReF_D6&PiLv(Dui`P};DabkG+$Gx0x#uXdMYdyQ$m|+<9&!WO-XiZ(ifoZ>bH`Qv zD_&QTry%E$bF(O4ar&;juBt`0i^`DMGV(m+dB}DZ<>&Kq9*(10B(JN;Q;>7W zxlNSssmv+J7TLCyA+v4ddB_c9yN~iUs+@;xk!=?po1f=(6?qDB4mo#-^1Ax&ysoN6 zwtZ#D>=bz(@;qdFj`CB^IS<()+aWqOcb}fuRpcqiIpo|W${ihY3bIAEV`a$f8hIXa z1KHjp?*@x(k!|w^T-BTBs_r6BLCzuPW>NmGo2x>$$aYZ~GFwKThulE6t0-T=%6Z5Z z*{-8w^Y*!_`^Zy}bI7?(l#fMUm)BLb$hNHvnQbG_L!O6h_t9?79c+;;vhAW{^B%dX zhsaZqbI7?vl%N02DaaPt_LU*CQ{;Kb4P<+c@-x9X57{EyAv!kqysjcoLCzuPE>XT$ zH>V(5WII-d%&w8=AvciiE%L6r$QIc)&*7^62(PQiQ;>7WxmlEtMPHxSRkg@=Q5iB@ zMxKW}581Aw{Ip5VL$=6v9UYsG;dK>x3UUrPw~6vGLry`q$hNHvnQbG_LvA43eUy(G zavripwq0~=KAG25nidTzwnDEwWul$L6PaT}7UPoI}oS zqWsr6ryyHo+g66mwvp!{H<0Z<%72}69AzNfSM91bg{H46EB2PiiA?Gepz80NRkS($uD??`2$n%gJ z$o3X_w{B#MY@1)lRlRer>MrsW?>dknKL&&AG!kvPHICbZj=cs)xu^ zkaNhnLzMgW

C!Z2QWP*(vfo|oQG_Y?GPQC59f6ic?xn4Id_Tj@2elk z>#AC0J649wu94><&qKDiDF437dB_&oHou;$+VQ%IJOw$2oSQ|vId@M-w#ar-88TZ& zo`>8(wyS72=YH$R7TK<&WAjP8t|CuC&LQVEQGOOVryyHo+g66mwvp!{H<0Z<%GZT* z9(pvs#;__R));3k>?@LL$I_0X6EwWuyhRl|c=OH(c?JCNh8gd@8MYikc z*!;#^)qUhC$T{TPCfd#Kek8A}YLRVQ88X{Oo`*aS+3us={4H}HvPHICbZp)=SM?Bi z3UUrPcZl*mML7l8BHO+)WOj-?54nMC&r$x)l=F}+vK^v)g*R9A7q8s=LTjkaNhnS>*dyAX{X+s0^7cBhN!_ zAlp^sds-k{WV?>?72aIcedH;~Ipo|X%J(1qXkJ& z&qHn?+g0RyX&_rx$T{TPA@V&pkS((9D??_d$n%gJ$o3rhJ{-sv*$&aM`C49Ak*6T%kaL&F zcjQ2}$abs@nO!5#LvA43TjaZRAX{YHyct*ZYF<~7ry%E$bF;|z>p-^1c2OBJTSlIT z+(5Rg$oKF-w#arJ9h>jubrpFEat=ASiF`K?WQ%Ou%8=PM@;u}QvfW3%!w0fOwq2C( zL*{iAc?xn4Id_QiS+LwKAK4XjGeva2wK+eV&;+(5Sb$afY&w#c@N zj?J6psvaUwLCzuP4pBZYnma=yTV&f;hRjZp=OH(c?K$#&N02SD9in6Nn{ri;k*6T% zkaL&FcOXHw$abs@nO!5#LvA43TjaZvAX{YH%(<#}&sE(;o`Rf1&dnmnidTCAX{YHyaiYF$9P>uo`Rf1&dnmx$T{TPCi2}zkS(%pD??`6$n%gJ$aWw3ZX?JR z*>=&f`4nDPk*6T%kaLH~_ZUI8$hNNxnVllfLvA43bL4xBAX{WRM91c(ysjcoLCzuP zE|Kpnf^3oPSQ#?AMxKY6W4P-k+$L7U6&ozgfL(Ywr zA+u}b$;b_4+q?}Ye>Bf?N$9UYrL>Gy$T{R(TNyIjMxKn^ zK(<|UY(9u>hnz#sjg=v@Yvjqu4P@K=CQklDp6AFp z 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 C931&eEVZ{>>wsu z`M8_?u{w5~$WBC#W`FDnY#4}rqS>E#TJj#<-lM7`5y+krdk@&7CVCP( z33T^p_MW4Wq1?mF?+w^{Rj!7!;mFbKy%+_G5gLkp8n8cAVk6iHpGZpMeHWG9{)9lYY!G0dJKUcw?%uWWe&o%pVbzGy=p(pS7Pr|IT_7HgYG`f-sj257XkYV73>%`2E@M5>@Pey`FFtnw-Ou6#)8;uZgcs3ry4rulP@SrkB!-@R6|}#i)Tsu5P4TM=`ztkC*0Xx#X!cj0d>$;e4}x3m za0--&;$V$^P>q(Suv0+ypk^P$(Guj6UEpio{#s>#LPNV>m)Kvc3`}Gbk)zpPV+NY( z9tzlpC^Xd?QTI@}eTX_KbiGMz5^^;AkSE^50sF8=_i(v=Sm{n?lR@{eW*=6%i6QQr zeES>vIjRZ-?S4~gf1^gTDQpUIH2WJh0w;984cgzTkuZ^~Z!7I@#YN3JHkC~U-ETGf zTb1X8?sq}^JCE*nmG*Z^_f&Q&=zgc!-znWh{eGWsf3JEU0iw^}ceB4&KA*-;Lyl&D zuY6AE{t&c(P;Dcj`$L8OgR*-%I~{a?(Ci;PcK;K!|Krj9Plf#-rF#ZD19bnR+5hqA z9tqkG~vw!ro z$)AetpFFxh)!08N-RW#P=>DYHKY4V2*6p7??fK^t`)3G%#@iWe2I&5***|;Q^DhDW z7f+k~rQH5SwaK&CS)luiX8)qvWTK9K4cNbWbbl?ke^t6?v$H|>SIz!a=|YHNJ^q_+ z|E7FS-vjpV%5FmU_i|g_B(IL0!_EQS-!=PpkKO+U z?EiXn|66YVSNVJ{I~R2StJ(imx`}xI$hZGc?Kxrhk8buK>S%HvI}ddK(Cj}_+cVDy z@{H7W#WN~+hH6*mv-8c_JVWCdsqKpUg52lP^;K}6(!GFP0J=Vn`#ies3V1uU%v3(} zc4fSsT4r9zE(G0n8gHkTnJQkMS;RBTQ`$4ntm2uyWV@QhW`S;|#xo02#z~%4#IroQ zSyens>0ZPx0^KZ)XL)qn>%6^c8&v5qZt(UcyghhE?YV(9AV=fvRoh7TtOdBH>NlaQ zm2*wi@5St5(A6}qrPeR+5a1m=x*f`S2c>%ny99JQXuN~cRc(@Y)H&Q;v3cL;9ZPse z<@2TNQqb+F@s7&pgl?w*@1*QfAQ*3_a^6YVy^LLk9F2GK*zFwPojtmp%Xw#|JDbf0 z-Od{CtaKB(I;smlN*z-YxjL$pAEn0U%h~0idz8kH%1y1`>_VQcjtdFh>`I=k#@H*^ z6`-4~@$4?Cx;ceB$D^B5$#azM95x4Zb2Of#bQ8Hcx(h#A`JBkr(WU%o<@1&7O3*!8 z<3}r>6T1FF?pJmby8cS;S9brz{sg*yjr%=za|?N{M>n^U=PKQ+*j1pLtMOda^{GPu zOc8lrF3(e|iL2Sw$kBM7T1}8AD5mFfU5Wjf{TVqL*F9qSI?tz;29u3z*fk)Qukn0r zRLzWb$>m)X+O_Oj5bL7xE*`XkTwb8Wu4C7MSb@e1JYs=d9#CS}v+F@Dpz(l5ESSrK zO6&%91BeAR9`uM6=J7(cth+H-lKQ#)~~-C3zffPbtK1VYh%-iN;GjV%_pM+;mci z-O6qSv2Ggg<`FB+<8UiUAvTxI1+h|%mwLp?ayi@}Qi%PP{T0N@G+yS(TX`NYS7^7f z+d!;bvdUg<%r(s`9aGnoluRT{67 zXmHWR=c5jWEx0wCKKd&j^HEPU)HcMv&cuhI4ftqgz zpT%hcSm^SaT3(|%SeS*8qwyL%P&EUrE#S2tz}j+N>jA8-FW}u3AYcd&yO(o$55_tcVG+>nuJP_3-5y1}2LMqZ3Edvmya)Z%8|+3|6m)xN zyoWmSCG7Sr;^MB1YWTn-LC z2xdg~`j&8cXQMjC83*0I8t;qEDATRmFTne$C=$B;%6UJClTuoVfY>(r)$)FDw&ZK2U1H@(V@=+`|yE-q|Z&P2{{@cScpL=F|3Yb%K0(M?w#yT2y(fHuh zr3D|N^C6z998$uE(6JD7?_u|V?huU+QR7R(#IXhZSV}2~-OKI;v12uUEcO@lgd9ds zhURg2oB(p`*nR9i_BRkaPUFX^V>}tfdaTRmb!vV>nU@lEzQ+crrYn5BGR7yp#`D zo;<`J0^Q*nAFdW8i6}+{`3N$h>|&xuRPqsOg8ndj7&#gr;jue1$i;((-MS+y`ADVv zPxepH9jWn=9^I3J{A7>alPmejO7{`=29yo?gF*|bjNCZtkR{ffsJ`wkdITk#Kd^VRq%02 z_c8Vuax^|ppmY=Q)(3gLr+(`zdA+LNC)g99Td(nY<#R&!lwy7gI6*!W6XQLlmY<^P zcM)5J9F3piu{*JtPxRGei)iXsowTPbzI?eNZYBfJq)$g;Cg^ln@}QM!&TVM{>wbd8_x>4Rqk_!+7% zK-&}tyE7{I87khTY$@oTq46_RKT7y~W`LjR(LJ+*pQ&`8XU~J~nHoP+>5>WTgVS_A zO&tLV5ZmOm5C<;n9|-S}C`=jCiU=$@tVvph%bvjhBW$`u@ESFjZz zcDBaPMiV|5NhmZtYR?Stnd;!alC4CJ#%FpwIY;N`csx0$8$U;RvWl$&-E%a4j>nU8 z1N>a&$xG}d5Ia}n=XyLjFTl@Jp1jOn2C?%rexC9qQ5Way{CrP6o?pVxSDw7WUIE?n zHGaPGBoXWd0e*op@hW>2#4gbI1as5UGIi>coWY)ZSsA}fjp}RJTI6W_ zGS4(}b|If#E=S0O?(8Z)TaC=?*gDXit?}9FR8hk2<%RrmkM8AF{Botco~;Mn%Qb$v z(oN**iZ1*L&ynbgQhtT<`EB+#=w6}mE0oU(-8qGPj^}7Hr;^W6b~msMpgTw7b3Ash zEaX>ubg!)BS1R3i*gK$mrN*yRr?)6xZ1#W3<$qEW_;=a6$kF(p)X9s4*j2gwDkZj& zZ3MBaG=7yw>}s7~O}zugpG|BNh+VDmt5ugwp#3?Q|5>4JW}89m&l>-;2kn|%evJ}) zkG%(C*J%72kJz=jT;Aopj%{IEKotD8TG1pzxFL_?07nRpYmM@-{b*!_&s_NK?mlv0WfGSL1U%Xn)oDUsVg)&31#> zUp4+$PYby%kKd-yK4u?-*lilW&4U)wc}Sss!af19kj6tEG$X(bHMZ|zdqB+4xPfDi z4?J#m7R(HAllnh|v6t-yQB&il6iu#sSy#@WEl{+dvQI&bX`IP(E`&()aqMB?VjfoK zw?AW_AxGnIyHc@%gc=l1RT=}lQ4R3mm6#$mR`5m|q~YjIOgsJ+lL&DM-ea!+#|aP7%S)EXT2&A9L{6Cc})I_HW^)PAdgWXQk|lU z4dt=n((NzU7pSXocorR1ps<3`#mjkI9b5j*{*4@s!+l-FDW61iRyns+Ac^R#T5hRR zKIAq=XZ7Kh%Ibc$A2}Mg6ksAcTj#c#6eIxcZroN!5@I5tUBzv6G&sNxAV=f2YOskm z!vmbFIm?&qOAzB4=bnS4Q_LL|2<*3J;Sp;p=1r?*}{Z z2Rr%3Lf7zJ2rhN?u_Nk6s>2X+mSFyv0ry_bgu4b0_hq!tf;$4!8we!+v7f=d%Y(I@ zGcv}*xA;O2UV;~H+aC$9j9!gF_Dcp1I}iE!LjgtM2fcVf0Uq5D1|fihKOMge@`s>0 z*{{H9fScnMvfoJg5kG$fm5FBJ50FvarQ9FCEaZ8-69}%gi!XLNGmic*hvw z4+SEmuuglUPJk~ALK%%MEaD5hLfNRo50!i&3?*UsOz{?np?w4YSwF`|bqESSomSW& zCJ>+P%JBgm;Y_Jm5{3sNfWp#_d})rNptXR~3vc1}QnFiEBgticz6`TM6oOlY!7Z!g z%c_&XL4aBCBOZ5PLIUqjhk-5Y!j~05IUCDC4$rI12zQW%O2Zw=&}$v}Ykv5iD5k$q zdWErIMqbO~uj!!JNh+3wJCouYe*Ok}NECjRUg>Lx>g`0Dp&bjmZxrx10ut(t-uw+X zK@mPmLY0TJ32MEcukQj-L;(si+6vnG0AH`FYW*O-9>(-=jzp^nA5CbR{CpFl5ksNt?sv3nSvJpu}!`T1wqqKUSo_*obJ8QjJrTp|^Fgu9XAK0n`w z7Kx&wFC{tqiugXXSSl5JhT*v&ps?T1_oGFkEm_>(h3`j;CNlYyBWAQg`Z= zDR%HX9Z-=dD7wAHkqw6nr$f-`P$WCE)1lVs08`d5JlBSh28V|bQfI%@8IFw((bkYU z7doBssDlHK)499T8IL;0N~9s-p@fvw3C!(qe84LG@SkacovoLrbThU+BW(C`U_m+yD-;SlH$r4hSj zto&jpzXT$KcH!jLIQfWmqQp8bJdCgcekTB3(;w^PzbMpZJzDLEEUM@ZBY!XpW`%`nN;0 zCB2?qot|`FP3VmX(*r`BUVf(+)+15rw=${x?p5ma!g|DZ)T@Wni&l691C#CX8R2@E zL_7UEIQ={MV6OfDb`l*vrTHZK<4zeF6CjWH!U^;%@WKi7WjKlM-Z)ZBqMd<$XCU@< zq8Nyn2m_%RsHzKWQCJrPgU&#l8DQHVSmX@E5diCNV2Lvj$4_{4iSJ^VW}hsk+0J0U zGZ^8CLc{P(vk`P~p)(k!+2Ki2c~p2ZRnAbqGZZU_D7Gr)4K_zq9NN_xii7VIsW>`3 zl@#mzP93&mqM5kfao=M|wG3Kuf%d6VdrbH=(jMk_hM_jmHne>>pbiT56>XQaeikUDiUp_XN@ax#;Kk)uFM&SJ?kuqGhq(F)cc)!gdvLdGgBO| zFL3J7{@GHm{tD8Yo-)?b1`4_E*>fUXRZ7f8t|Vp-%|*wMKVn|~!S6I+Du_bLU&fR-^mZEhHcPq4e3tQYN**ZjLR=-j zp^MXit2j)2L%?akN`R${(@^9zs3D_afYSiKMGMc8-kch~h%$Ap-@#{$Iz%yy)LwsW zp>r(`7Y$PJG_ksKZty!dU>HPk5rwNexGS7&uvlB@!wm(_4cO>0BRBMRZot*u#S-dt zu^w}7^*guX)PpEODKs~rT#q@o2Ao@IJ$4Cd40Ud$_1LBOVVrX-jKAT_B>Wk)T5>{u zCxlI$C?clzsZh`f;b1UZ>YW+BoKnO54*sUxA=;86D|8s92KpeizG-36iz9v~f{H|2 zQj8Qj5mdZVDoz(?I-I!QiDOQQqGD=g#0#7_cH=)u#TntN$W`ulI5s1qsOX*`Vd{Ao zhvNk4YN>dZSY|nQ_?aKolZxkx zWtQ`Izw>v@D$$lK{=LBYJ7)EIsd%1PW;qXcbRNboPE;r+$AcTB@cCky<;?Rt^I*{< zXiHY+l{oWoth!MuULclP&H}%)0OKOslH!6QX931_lT^G=EVG=){m$cPktiyrwwA|B zoX64PU!>wJvCMK7`<=yjq$k>v;^MB(Vm#8{EEO-3^YA5pX9?CF(Ux3Y(#2VVb$5$Y zYzW^yFQt@Ir(_HR%mSb{=qGDD`Gh1HdEXU;hRVrR0 zrFAmxga6PgnV!RXEio+LGR?QfC!if~7tWbIS=C;SkO( zU+v($dXx`N2*I;A=v-{*MRkHU8;>B#e_^BfeBs1#9lUVjcpbca*^QTl zO>%9u-&u{r3eooMj90KKR(Eq&muBEG$=5E+cqPkt)tn;Y%QYv*iqGjo(>=(nR6t_8Nk$>E^5{&49D| zcs}wqmxHhQd~hxvFySC~E`FzGYQD}1HDz&4fwKmCX;@mkJlsfW+3a^VV>ciQ7FVOi z%~j5387#oAHVrz6XFz3|%`6;adiRjA`32bYDLi=E9lfx)B5=2B-f zE;B-R2&lySh2M zlE&VG2d*e%Z-KG5$ked2dM!GVV;7+Wjvz9@UmT31wS z!O&W&xwWoZ6kM#uwHeT;*216kK_V#!KI!J*?E%8K%U1K}@EzpAryZS7agZj8ZNHuC zL_aowPXo@UI7l~1#cRTMqT=n}cf9?3=<|YtqFWc+Ei3|V|Gwb%?{OXoIJbXacKi3` zfOD6`xi)+^;xs+cvFQoG5wvBTrY8!To{%_APn0!1fjIXF92kr1GeYmeSlskXho)za z_Q7N@{aAc&^RZZin_8U$HHt4Bhd+TAj>B;MCBv87cwJ}o57~%aK3sUfL;pC z_4?2z@@cuhX*s5kDEPF#%Tb^)RgJsrUDnrwH|xo#^)62ZSNgP`JX_zgJIlK?EyooH zy0bjcv>aQ--=sS?gm#cStNcx?FhxYcowu92^R~;Kx51sa$(^@d?g*}Q=WTN5?UvnH zRnW9bWoK2eX%%MYe(BDQpZepffiS1$Q7~_-om%SAtEi;OQI8(kn$xui!l80qNFFp`GN`8h_Io7^<6yf?Mx2ck3OOTkn8d z?~q&XxZDz4>DD{4A-w~VE&H@4(6k1ZPw3N{!lpHN41ZAi^q0{4#mm-TnSr+3MxcU_(eE}cA}YI|3_H}?of30Sc>m zY3SmX!lo^FW&;zrrEAj`oG1T7x_C=y54pI_-?R-ANEBS$)ZE2Qu7k!Va1pvMzPn}w zn`lO`2@WRE#x}u%7=_y5P_e1GhiZJ-R?xIf^?+@`rft{*9+F<&8v2;L+U;-JjpGAR z@M?4OYTfLzznScBCciejyxk0bZWdl`Ca*Tb=axO%-KA-_8X|TFns(z5@v!u0t}%i< z+T(B9Qv@Cng&FO8i9FG?;XT*1?Y%7HJ#y+jn9puW$kB{)i>q?CfQK+d0sBU zgE->Mmq8ifM=7Yo{-(pl5EM}e>O+{SHXW{LI$VX5aB}!VSO5NyqWX|r{?OIGKZFoI zgjjdtIB~dp)8U?pIs8snWII7@rx*r4gc3ycAx4FTolusMC0$6OsqyM?x2D6TKG6sd z_h~u|+t|VjWK3rGF^cIof75TUifSSXF@4m$0zPuZ^AW}K5ykV7E1r+Q(T^aWT?tjH z<6W*;c7ez)5z9wVf)GA}*Dj1_7nIwqrQeF1e#7pAUFo-OO}}A8*z|rYYx)f*rVC|6 zEc`e|bf?dMrw_(EK_Q~u3Ad<*cDp>^4Q}nGcy_zu+)Z)rhKN2+s8U29yCV7+R6iCG z?S>LWvm0I?18FOmJAGa6^vQAVPG8BL@C-T%=1yPfojx4ro)E#nEISis$D#jZgco)1 z(!JP+XDwX+!i#A_4L^f|r;!(ZpOG;UzMKXxoJn_wt3WuDKBoiBrj08a!zP?N4KEsS z)PQ{P4u_>r5|L3-K5?BcfLrv#54&I;1Mz&~^NVnNQXZE##{){20dNMY9XNX#%#9mO zIL8`ZH1Mc_J;gg1*drCPz$w`Cmu2ip0Rq0#kC2Q??JP5>=m$QG|ly zj~ZVh-dhvA-6%o92}ezUmWl5mDB}!MHDg69)H{q23X8|)Dw^pVfZ)E+Q_vPBQHy{! zAM)Ws5;(}9h9Yq$LH#tfiUZqFQ*n;LHs&+^KDewyMFohSk!uKfr!lu>*U&aTp|&~f zTpz-=^BK1h3XEC_e3()Shvk)A3?41qC7c#ddkQZSG}G5F8T^E_!NW?u@$Ob}RPZjG z^uZ(KJtBCoYt4dB!2TbDM+^4~r^PL;!;1vX^o>XcKRa#kvjOM6R&iADE}ZniBjn#i z@Lt!N1)qTZKL(E$?l<5fNO;ldIj0{j-ZOpuG4TE{Jog=n*TYM+Y{&ap!#fhCl#0lN1KZxaBt;4bISqbrwN!{?KoSVQnzDwgBT20k+QuARG zE=+_M&CQ+*#_^pr;h|bC%~a!a^X8)QB@*JF#$OO36wV2S!Mvc-fm#<#v%13WjR}9m zG)S4}gm@5?iJ~$zqy8`*aaT4DJZg;a6`*ioh{J%}2a7c!UMt2Wgq>$lPD4&k$U#`5 zGPITD83KGk(-QdhHdGFT7Q#Y8#q_us ze?m|CLr->vuZhYu`kG_6dIZDjc;W&Ia*02*1Z$P3gvn|KbAdVz!YnK?J}7S%nT%jo z6opol0Sr-mjt~qlwZ2-+8nizmRD`z?&=A9-$x_IO3MO!>5L!_lT2TRqvM`pbLMw0` z*ofusp%p!$9Kmw$(2BkpzGJc2KeS>%GBu0MC^@sbD73l)z9yQP(OEdr4jlrQs5hjz zRK7m>K>uh&>|_K)qO&%`$0K|G6O=Z zhd?=w<)NX~Cqmi6@=2l9qoHhLd2DF)DNyEEo)lVr8k8L@pAlMpRx$-o8V04{oBYr> zFy{*qRldt!CbLd?hkC@ke-jLSQz#t%raB~Vfl7nQQ-(=^zvhR2ML?qI0e=mKewBc~ zR)>DANqYFSK`qA6bVGx_A!u4aLkk+305r5}LvsN>V?b*HpuBt|4?Gk!Jz!qY$diD1 z)kdBR@L8jg084bE1U)309IU_=V-F2fo^fiNMdcf|5Mt2yJ zp%oe3YmDx$A$f_YWn)mjF$hB@DgbNMFz>BpV^Gi-BtsrlZ47dSyj0Y(F*x5CjDSSb z0}c)vgC*eLYGbeq@OfFwLv&*Z=8$N5z#&0nhy)x`Z47Y%z94J)*nHzy^pI$Jz+;2P zu@dmuYU5ZJ;4)duLv>>)dPp=q;Lw0ERMzs)Dr2atmS2>$e4K6^hqX*JJ>YSL#&NQi zkE=0`bJg;4S<7|#2CgFwq6i3e+(s?e1&ulxa$S{C=kjoctmPB(jS~=%XnMdCg2o9F z@PsPk1Q*~+S<5Ht#)+6iqUixo3>qg&z!R&C6J3C-WGxTNH*n!=5KRv_ENIYXQ`D$3 zhPeP=lC^x2Zk&W35={?yQouM#*78Y}#!2wYOLf3|S=RD!-58FwOf)^<@Iqs_tmWa= z#&B0Vd_~ss$b4fYhD;Oz`@@>C)e+km88l#DEDa7LtBsK^z*l80pPX-;jDSSb1D+f- zPL_ZtR~sk00AG`}JW4l4VGfC=2OJeNMoGX?)y60n;A&aRqw|f?=poVcfTM%PXbCvF z+8FHud|lS^7~L3y9uiFtI3{3>k+nRg${6EnHgCvU9;+K;v6hLZ2OL{yjFq)Kw#FFi z>dR|nEsxJP#$(7t5fJLQjanWbG{(!2$Cn%9E0XQ-Oj}U4Uz4EuWHaoPr(_O%HfV&^Sc`o>Fd{;sRVJ zYk8t>OhgZfrU#rDFyIDN)Keyw857HsIb1Jmd6I5S!dfPp9&l2jF-g|)qzYqFWfJgh zgC?NH6y2DD9ulR=Z)id4j29-oF!M5|1dJ(g!A%V>8w}VX1ng)AT?ii-_YlHT-B^kUMB7GK8Z?%=5Ox^%62eN|Sc&a{Xxj)Y1I9{M zgZl6U0$8mZtI-9bZ3C@;8>5NNK`jdj?!iMEZfuFzQLI)(C)@i#))q#K*y zDu+R|ZG=r-jZLnz2fK{>31Pc#Y)2o6wvDj8(Ae(sVfPpU*sUA8F%3l92G|`m@E6Bw zi2HaH0er3-pJNO}+Xnc&tMR!jhEIkQz?Zu5C7b{;h_(&zWwG(4+@gr5KK6_xfUk7p zD+D0gHo#ZK##b(Yy~7CLpl%#21^}XM0~{HoNDT-QgUx zpz>nR0CFBL_8^D?fADqw?G_CgYQv2WH?6)~I#~g~biKf-Y zQ-f%Gzc>SK4$m=%!+Bsq(`ql1+6Tm0aC3CFIT}4DO4d9zxbe=gHPe;Ef zfxZ;y!p(^}=0tRZsB}Y|4{s@f%cb^L;(WMyYPNYQxe2va>cn{8fLV_qmH^ay)MoE0}`<(RV&mZ%J_Wk~1&h%>9uoF#`-#5p{JLTkt| z8{kB;NmPc`G7R{rLi=Vq>0X{=UXIQZ{aYzc=YvWX{bo=fVO(P{a`zlYRYMek5xKu#75{E->fH zAsO@dgZTgjWaXF^f)V|n!K?xk?jV)$>_2#d8bElC$uYA;5e$Dan+F3Ay#u2~4KYQ{~vzy zAK3bc3VokAdyl&K*Xr4ObmJ%UA%b~4$9x>y%*c#l%yL+UAQJWRs|j29KpcLE`7(x06mQz&RuigtWu`ZZ z6q+x)y4!E!+K&0EZoUfFb_4}|%DT9|1BsFU00RE7TfSOmzFMC2<9CU&UN_ex3eiko zuU7m(g!N_SdKbcf%||Gb4Z67jWB=+llu6Q1%&Y1&a^?nsVqkqq-u0zOn^9;yIIqOk4b)5Nw9 zNK7x-Ueq4jY_BZiQ^+Cq4s6SosF%Jzi4;_=JhltOFHVP6y6`4Pwn?%9Q&s=W8 z?h>D`*5&GF=wm;0wI4c)+aJ)?e(7BOsnYyOx%yL$`IB<>r=I3d%GICxnmO(A5N0`NIok1Js2w^a-X|=##im=1QNsP{!I-uy&OqZ>(K4gNIL1 z-dMXHtQ}rrg1oVIeONoV#B?kc2e5YZd`qf~NTvz<-GH54#Imaug}i<4${SU0XK({* zwH-8VsN~PZF*Bv2U3HGlA^BfP)3r0?Ckt&fjLtOIW!W_>8-jvk6U*+wvhm^{v=Nrw zn`OhrKfHv-viq~_fl!7^Xe@gW%RUaua0!iN!?VX>iGY{TSoTPkJr2rn35{h>VA+$Q z442SY_EeUACY0e48q1!}vd>92sx0$yN=|(dtHQ>|g1GaN;Iz>kWrFH!SiMY8eGgWz5>(%t)vE;6_h=TV!;5Qt%%F47@NHM z>n-ACR^-ZWTF*oaoj|4_R?T8HqK(A5Gq{(fXd|&+EY=6g*hXUgSZn~4v5mxzVKF%D zP#cLI&tkX<9NS221dEM@GPaS}cou`15w(%n6c#%J%GgF?(^za~vW;lwB1*xEBDMlk zKor`@K35w_bRb9pCZ#sZ*eB{20(Xy;)PZp22VB*GBo+!{As{>?KRg6xeu9eng`mWIQXMT}2IPZ7H5~ZELxN#>VKh9X zI*b=a!z;y+HPT632?&qO590+SLDM6S42ImIk^J}isF?>xRgL3$RR2uWPoT$FbS8(%1lqsWV&B# z)OFY0{pnBf=I6aCg6q8=dx*k%EDH*{s|#LuE1v(Vdhbm-(;?Z<=lA=gnd+&j`c}Pq z_0DrGA>kG7OF+W#|7e$z^#}Pp=DX2Wr#>rA|Aig%W^`?V1fcU z99mW$S_Tu8&>sZi&;SknA%9lLkBCGiqF6cf;iEq%1h-u$M1Oh6kBCnQ#Pq-&bUuMy*G5d zsO#&?Lf2zmKO+z`1>!Ag=oUmIiip&|pSLpufH&a%)>MEs*b94^}R^I4(i z5s~P?K0faaJueWSFAF`7h|deeY=O8ZE3^j@i4N@J9&c!mK-^On+JlHM2t<$QDc;Ho zy@iNG2lnwTZ|E(7_*PlyEkt}#AbJJjk*v@WL?k+}k4L5^d(I($H7fX8t4)b2*}(sOpJ;$mxJS>WLmbkt6DfrFtSF{#hXA z@m8q2RoxA(kkbKu)ZIC{o3}#UU9P*a75+sa<_pApRnJF6q67PwpQGms#QbtS9})j5 z5DS9PX8_VjRUZipOiua0dYmO@5{)$a$UJ={>{`H9l|FK$J`#pT=zjH)6ZMgJQ=*pz z{D>elci>M|^{IuDO87npG66reNT2HC@KeX>Q^#}osVC}FPXhSe0=|&vzCJrk$FIvd zT|Mm{JNaefdS`ub@6q%KBr8dV*~W@ zUQRz-)$!|cP6q}&+pCMO%k{I%^s{Y%#k@<>&&ks9>vB#920X{Bi?7S|bISB{Y=9*q z@8_yIeqF8;9T;$~M;Bk0>vK!>x#CL!jA5xr(ppu=ugi6!0|VCP=;G^gy|!EzPk^FI zDHF9kKTDsFMJ9@XP{;k$@_es8pZ6a6{8D|s&BJn0%XL|L9Rd;^7_iQ(*9pM7QoYUw zSRrb8fvPXS7!n;AaDi7}AOIJX>I-auBSkGQ%+eR4heQVkT`a&DvC{fGx zs$P#C5*-+@-lNxx-mShwuNMcLu$D)QT3)2;i?Ei74h*;`M_(kmqD5u;B3mAg5w*NH zOJ9sdCW?R)VI%dpGYoyPS6?iOytqtXYy%uCYI#YPz61e@4h*=&t1l6NOUm>mHo$SB zmY1sfQj8(dfdQ9#^`!!EX_>y%1~^{S^0F*_8G1-`V8CTweVG7UR;Dkr0al7yK2O!p zLl21#40xVLKTp*1d8PV!wzQcbYI(V;FUMLYIxyh!9DTW{<>lr2au{%A2Rl*J@&#G? z1z2RF2ncoDPc2{I)h`f5zQCtnP}~DJN!0R%S^9+tNOWMp3%&Y<0`NkgexVKU1X0T? zRDA`;km$gGE4=y&0l31audo457PY)GOJ9i|5*-+DrB`1m09X3-l{UaBqLv#}y#YNW zIxt{^M{f|d+)$)9_bfNkG|WMP&4R& zlm5D@zm6^t?H}NEuP*O1hJ~2P4>;)uRQ&+9ZKC}n9LUiR*iv#9Kj5VQQ`PZs5U2ek z{4-CNhl9|E+5CW${(-80fIblIAK`->{R5j1a{_l!!}?s+KZkG0bfSpR$Ih4N<37*T zKgSzbydqW`X9s8pRR2!Zzk@?9oc0g#UB3Pud;=YNRY05*pdIFLiW*J`XVEou7=YgBRK6JBHa^Chl~jA6%e&SSm}dmwi?bxFNop*0%Q8|NA+-a zZa6!S29R)eML2sTAmU9?uzuzRVON79 zm7kn=%%4GcW7Y6j$l5SbEMy-uOI};yvEJ}lTf?cFP5>vU;S(U`!bJNAI3X{5LeICb z;RWzr3MihUhEIXY=Cpr+Q}V;7^c*(`FRUhjX=->H0ub#VU|N27nhl^na4#X8s)kR+ zAP_}_wx;nQtCoEx~05USO1HC8Oq{t>DR z!_{!V3R#nj0}m3ybTvF35s3C5hv|jk={AHVfd>d-wi=!dM-swB`$w2v5S}d#=3#m+ zokIZg)bKoPGDHW?_j#W1JU#;p&npejv(2-YalH9z7!QPpiE_Mtc2~pmJz+Q$juWu( z{L-*}g?k>yt5d^uh({Fh`rTU%*LlKq09J9?^lzyU-I}DDW1RhV9GS3pifA8phRanCQUet@nh*>NZ?o8Ws;j zrtas$!2eKz7pvjLnCC<>LtMw3z=jv+hZked{F>;&R`4oVsfJggOGNw6^Oc_PO4~TQ zGH?(1uu2WDLLZ3s@58G6@GA7-b>Tw;56e0=ybgUJ+P@F$JmGaV9~$91Ur=mQ!)@5< z5k-LG_nK{a;Wk^Rw<@rW5IWPto!I3N1q3|Algwl3lHb4d`qePDvL=2oGi;@YEjS#> zskjjZ9|Pu)GQPx=LvKLg=YY1KAIuE@GCllDI9JH&fZA^g?bZBXX86YR@QrAj=z!XP z7usw1!OZaO>EYYq>>H;8YVQ-;Yx%*<@b;nM?dUmC(ykN-GkLk=4`zn9XNI@qiAcO} z5{96eAIuCtlpcNv-5@I5;0H7N3gCXBeGxyH8Qw88yaU}JO4{;Z=5gHEks02BZX6Im z7xROe;V06=Phe+7l)J%CNKhj5;R<&7SdJEcI5YfWdKizybBX}arB%Y=OnWk5Ht}Qt zZOr-?bHZ>q9(St4FII$Kgjt4!UB?e+hF?k#zl5+vMFIPUgsB1Iyp$7uNlXRNz1F3a z<9|*M{~2dLM0xR!;~BUpeP~-ky04~(Uqxq${-?U@;frL@c_Tgi28NZW(B+3S`w8hK zmyzy)^zZ?=%R-pwf2!MlIqANe9)1^fiTk@WBp%t)fB3pI%+^!Q99-fsvN zhW&^dK9ZH-+PW35v%^O`Jz?zJsuAv|>ETZimnivkJWNrQpQ_~xkzvqw(Acp2$gomwY*=|@7(M)zx6aK$n6-n1H$CEo4K7Z3&}=6Q<4xGwz?P|` zpQlFhV2p?m#Q{RJL39ga4uAM6Th66H7-~U0UybBLv*Q#WGa{cfQqc>5gWyjOV4)Dn z&yD2cJrm*VXCyyAl8-ligEkb&FO1}inIcx?Wq}XKMxh!hL>ojQS9!U59Y6+g@eiQD zN9Zvlg}ISJzQBnTj*S$;qcWuPmj_{t28k(ZWD1<~;}pLbgJR?1&f`Nv)nEap6i23% z&`KvVWlUrWoGirS&XFn8B2%h+%v=$K(Gb`*YNQ74yTNIXnTi3;)c7Jb#oSEI=t#{N zVW#HfNX?l&W_}TbVH4oz|#|t7+itch310QEi3&9AGYHv-j)Mcyq^E0G#%VRe$NFoa5(aT zQv})cVu>=CCv8i4qy-9yO}k}Oqy;)o%9)n2krwz)nR2FOLZn3;e~h$Dj*!${zY1VKjs$M zJ~Fah9CM3o9~0R=P6TOtWn{ZJ<`&t0LS#Gi*c7Dgr$n}kV{Vb{Rgvv8MUb}7j% zk_ZL10Q!#yiMU*dON%3bB9lkTp2kmgLL?W z$YB|z!>2?J%OD-DiX4_fIy^gaSO)3v{K#P$q{E9NhiyR$1>eFTbyehcRX~&D6oT}T zElAW|VROR+k0Oi4BnLj?Sp*9<>|^09F_)kv94_PdVM*fhx0po}Wec-k^wZJt0CiQA zcUADF)>Sd8t3ouju8Of;6{4wiRZQrr5KXPCVscl7Xlh**)4D1|Q|qdz?y3+?t*c^A zSA}S5T@`g*6{4wiRV?YMur)P3_%;QoDYvT$14I-8^szHQ;yCpfnL!_8fG{p1KoApo zDPkp$+KRVanlcF0dM*YIP*ZtVlL%1LsIDd%pr)~1@T4&6i@KU7biqTt=%{U1)8wuu z8K9Gw0By_d+J*rl3IY1W79bvx z1U#S}pGBX@EULsT!a%@({1W2@m$EMsZ;ziv19jM4+seDPi6Cto)wN9qY1`PYZ8AvP zCUk9+LE1LCYnu$xwrO44WRSL1cWskF+BT%8C}j zT%S{(9*`4!9WMuCoUg-t7tSR|i@Z^I@F@<%(W3Hb5uQMUK8@D)QT_#fbZl01EFuye z7;&sO3cK@!IJP`G77?KnAVh8bUPrx#Z~d ztSH{vhSPx&r{_ec!|Dl3J-s429lzgz6eC0?e4MXFamP1Glp{il95;^hy-{(dDLTJA zIv;&}M<7}Pak&~@j)+7Nk$Sh|A};qvmy1#_FN-dR!z7`11>#lwq;qslR&)&_5*@hI zYjUD%M5)(QMAu-c|0xi!<|h}T?P?Uiljn3`#CA^vsKECJZ+5OS;lav6i&H^eQgbivC0_k zHHPy_F@~2L!)<^!@me;rvy5y6Bswr)w%5oOfZ63nwhi#VdFNnwRKo+6!s)<(9@$q|XBj0P}iz4Tj z8u_-wzD?9}L6%W~fJ6rdEbtly0<7MXFJR9ugfGu*hQ+iCQiyF^a_LU@Y=o zqLzKC;lo-cIxwIw$MA_-_LUhvTiV<$YPlrKD8V8VMZiipIeOf2*(mWEC8EeBJ>fTdoeQ~;Ki8>KeD{}HuZrW$1!L!tu%mU)db0a#XUl-U695w%>N zWt5|bLGLHN6Db z9T;$&*BB=}9OpB}*#LhpYI(eBj7JZN4h%TnV~iKIJif>n@9T--!=jceRihGXndrcP zl{rSGXv>wwMx{6%jGeqqz>){n+Sk1xY{z|CG`6Z^;b>0o1qYT(U8 zIqe@|hR1*#iN+9i^3%b_T-Cr|-f-GK!d#C5zq*Mb?Bb_`je6C}99jE;x_`QZ-oGHV~e1e}2Hd<7p z1rdn$kI>>ZT5JeU^3%aahiY^n0@3~vI=n`Q4dE$%I@q{WH7-R2qWvRW>NPI4Aw11b z2OGL-=!ihHe+1oY=r)9B_~~GSsRly?qWvQ6zAK^N$0qe|I zIy}cu2OGatjo)HE5bYn~w;toSwuJg4oenl`QH@*B1)}`}+~PIh7rikTp6927jk{Fi zE^OOG`$xDd$GFRuk}vSn!N&cnaX*||;KW_K)ynf$=09F%11n>>T_lu!A68P>mPh{Fgx#A^O-J z65Zqr`Nj(c0P&uH_;cVfg4nGZyRjTZ5kefZkR2`V)Cq{)ImT`%N9cV4@fUtN*w~{Q zdoUx2_7AbgW9)&92>n|?{57zXyx6B2`_K!bIDpW0sI$-Kdxplo90Q)=jGHvZz6xU> zOcO$f1>(zrU4(c41uHY?N^fHe>OCig9d`aqI+c?ASEp*r{Ob17Yly;8Aqn z9Hg3q;8(Gn_89APs>6+$gM8+oVlrk98fOlI-Ci_i4w`HZnnK3RLDS4ZXzW8_?A73B zWUN3n3*fk{NmRz_xHD(7pwKKR;)n&~%!2WN_>n-|6a0b@$E)UeL?qg8Vw&R%&GEKl z6?+4Z6T*qAc_KvHB#H=q_`~zkJTcEa5n5>IW8uW#0&t55P_0(YYRF4Y`^`(U+GAE@ zUVb7VUYkJ(b5(OLbX6wN{+*cXHRsy8s@JCzK)q_#V=0LC4^W?H*4z4-H()0o6wg!5 z^Pq)u+CRW~`Q~}h!sYJbo3MQkipy1VIeI{}e}LtA=5m_{f3GHh6{@)cJs{dYz>0ix zh0TL~{7kvIQZ-j%6p13jal06ErPqXCw#CZu4}PZHY*fug^nqyq2#xt>qs@o?{7kvI zS~XW=LK5vCVRfOo+Ln+9_?dEZt!l1C1fu=NVQrzg)`svFKT~e5Q_XeI;d9zQ!ny); zoj6mDgU;J?s46;CvjY>FC~v2IwhP`%njIdqgU{Q|jxw{uwmLh=@j6wr6Y+?0ygqv~ zf!FCVI|W{6nb~Q>JH+uesOAR5BZ_$aZe*JqJmv<0x1rSBVB2(fhYly38&z{7;t?IV zyc<2{MuE4n%-m@6kKf$Z+@zYD5Rd4<<=x~lHwnB=W#%Ru-aom2n^ki&;t?IVyqi7d zW`Vc4)ZA<<@4xt&a`Q6PybSZ4C}s#hQw}K*zw9wD%Qr8>@f?N=`ZD1?UIii5453Rz z`_J=`#|+tKXYcbf8P zq60C}wE%yo9Qbrza$;_xFCmnSRR;5ez?I2?Px&?UZ1QfyHY*=;E6xWOf~VYXI#~K2 z`i#vNd#qSQ~o^5K`s&?Y7Xe-8c(@0I!Rl<9;N zsRclFL+b=kqH85giBS{4>O6JDs0or)0<5mAZY*b!B-+qmno?I;ce0QqRwA%Yt*ho{ zwInSG-Ya!zmj2C!Cm_QkcOg=ELHGKG!6vv#F!4e%;mO@X($3s0nQ$Q`gO^G5%kZEr z-Kab#{0mz z@jh^Fybtu4DTfc78}9?>#{0mz@jh^Fybqik?*p#GopIpYcpo@7-UrT&_knZcec)V~ z`vJJXhBqP5CG!R@I43GOaKSl-?B?m4z=Q_!O3(ona`6`#IwM99t`%D|mBlyr7I`@GAO| z2zCAVLMSeLXoMJ?VEDAn4CVtH|N0!r=O+Yign^t-M_oAHqgU`c1}<@c4weiJmhj2% zL@ilMMvf9J!9flOY1o3IK{{BP9xSEDpGzi;tie)mu(Z%NV&Xs@EG-U}!d@5*)f2T8 zEd@DBuyhbGaIlU6mZb;F1RxE<^Z|mFd4pvo0<;RvBWPK9u#A440w3T&A&2Z>*@R%( zDK-~07_@_Brv=N-5-up3f*d7ShAzNA7sdWY7mh{Zhn_tws1G<^3r{JJv97=&6As_P z(-iRGb+E<_7e8(urbjaAN|W8*rwW8-OIu4Fq#D2TcgT zh46Bsm>YmP4cBBz&JBP`a|2SBa|2+~+yIz3H@HP&!iB&b6ATC@pBqp?>2VTbZUAmc zWAKcLr9v2}bZUuU0hO#;!2&8+NqnwyV}f)C`mW#&(((;Fl=8Pe!QaRae$)Gdt-QCq zF=1;+R!Z-miUt2mYQhCKjR>v@kTEdDxRFmWC`8G@8>K8<2se|1H%TU3Naj?*6LX)5 z!T***a6yiU*$;%9Wfn03En0FZXAZkA-6hT6#iybmiE{tf_Yx1@E$!S*#r(!r%vgl+2Rm3x$$@XUuTV>l2*Zp4xiZ4y zEf!JySf}>|M0mS2y`4;d>oiS>;&#~IqG?JGZdw?y)iatVE{0V~Q*=?S=fVZ|W)r66 z1e_{GO!}aw5)*LF)ugPLfFpN8K(?m9t)i`=(SU3sf!lhxl>wQ>fjfG*6U9Ustm$?x zpPT_#OxBO*0~AS2%RyFnM$r+|a^Q-k0S0BFgUe-|aX{I4E|=xga=?v62W8{ATvnGc ziJO2hNT6fo?VF@PTvVec;@9A2>JO z2hNT6fpg=1pc^4NeBj)8A2>JO2hNT6fpg=1;9S1QfgGkq4rT~n{yp-Ll=l z1=r$>9FUOXO3WqB^vnVn&{v`PZr0czKt*CZcGqMIns6TKr)U;x`F?Zp1=iq z;)+?2-rpl7;DRJ#I6`8U5CFO(HD;9grh#e#I+qR`ohuDaCEc)9Hb3GjuMW_m1GRiNDmtV zkk*DVP$MU7(Dz&5ZH8rU1s_?E`1qC4B;erM16Z_@r0Jt=C5e0?Dp!&=7JgHri>2i4Vkt>> zD#cRrcCnP?OtF*%$xT>6g1MPHAeNFs{W8JiOG#kDoqNPKGhkj3QW z3w{wPjBO1ib76q(B{DJiHz9%-+(*8|n=1HXfms=RO$xq-zV*6cNZOZeT6^E< zBlx=1d>!;)q6Ldcc!}MuBlw2={0;l(6|trFoAUEFX{~t7Hn)$hp5SMqP%>=!$$?`~ z4vY*Dx`Y>8FaBKu{hffmvjK@!YY)hGs4Z3|fQEe*f=mqVlOX%}qEo6I_ns2Le@Kmg z(AwmCo7tHEec$xqdt7;-^ z`2%+W&MVjhN-p5~2)NP(@fKYWtF+!1;KBjv!U1yO$G%-4RND;;enc1OzyxsMZI+eIM zMoVcCd$Cvq70RBsrTMqX{LfDFw77>Qvdre65fH5k^TMXh6S+(lj&W%+k7_*^kh}+_ z`GaUam|!#CD;2R6A_vAK2NPtOAhx!sQwu@YdU61rgSY&YVqX!c3?7m$93mIwy+`1v z9;ngKjo+3D7#W2i--E)~a~Fgmn>YXY55)s=Jdi7P3|ysHJ-}cPq)rTZz?J>7To-fh zt)dWe#eO_laMOW+l`>JR?yyGfCLjj_x$?x8 zS?S<%S!Z-mHlE96`HCGpi^U9OJO2hNT6q0$9E0CM=ix$!=5ZoChi z8}9?>#{0mz@jlQ`kQ_d6ZoChi8}9?>#{0mz@jh^FM7B-1p#DLu%OOi?T@I~BtjmED zl`^m##~HC$m!k|{mjj2^<;Y=D1}+HsWWfN+EnOug;DU3mmK?a?oNmd13(mPla^Qk< z__`cy)4CjO^L06JXkCsRzAgt2t;>p`jvej&MV!F_#PT7(PaR0jSaIdDO~&JYZsBr#pQ z2TJexzQFAXv@ZY%v&82>>GNvw9w@yR`veeq+9$yH+%H7%0%axy?vot2;G72~2QE0y z1Cj$5#Nn&++Y`h-0r=vobnu|3jN?(?$=B_-%Y6dUb?`tkj>r35zE1!pqJ4r&xlaI| zNbm2FzQP6i>Wbk=3BE4?7_=|ImpCx-Sb!~A>fl)Kyx#mW~|7yf+iXdYQN{)8vmqkh*B%zI^jOX=0cLH^?>bQ_TAuChpHR z@0TXr8r%}myk9ZzM-#m~c_7<-K#FB(aQ{y80mXd4;mL!U=7WyHKA3MlC_Ty4;C`g$ zgNpeedeW;D4`rJVkqLV#9x5^);>X^qG*yEi8k!F&=0gsIM? zF&}a0KALGh>hSr|eDhK1vq!_jw~s33qYj^UWScu2c6St+JEYHE4SvUC?oiAf4!e(K zn~ynkA1g8+le#$?+(^@WOfesG=NDPfD~x ztq{bXRLmzGXivG#r=(bs1~>LJpHj@H9AZzq&8MZ9PxFD;(~9}DL+ly1`HU1R)`~&w z8O40YA@;1>d{&B;XeA)_tYSXv5PL4ee2yP@snSX{xT&A{oMJvVG(I4I%rO5b#mY3e z-T1u0gcRe;zFiur;=?8OZ8MJYB?8wp}B zD&~t0v6nK;m!#MzZ4`*Tq?j)`#Qv0F{z;0B)<%QapA_>?4zWMG%|FYyjnT${*q;^i z&yKkLCByuSL>sHYeQC|VDCS=rXn)N#|0)w{oCbGAHvg)ae|03%%Ngd&5^cOT9>iW& z%$FT#yEDz*60K6J1hL(Uxm$J!bY=)n{+h3N%~xatAtpA=SBlM7WCNL?O+b!fz9Jh} zO!w7%^Hu6|pi#$kUoAIZ<#)ra(k5yXLHAX~eAO$Ggv4-!+LK}8FA1T^RcVv7Nyt&m zJ+c%rvAtR5Ug|eM>;&xu5ZkMmd$EharWzCbTekT(>Y6}ovNjpS{-&6J!(OPD*lStl zYZ7gWHU-39Q_R<7heK!>lh-p%{!kk*0s3?n+I&6Ve4PRXCQj5&L@~vDUDgimoMXA( z$S~iKVLwSb2|0@S29^sCg~^?F^UX~2P5Mo#-Nc&(=9~1pBgurVeDlo`^G*KKl`3tj zHWfLF`KGi>{UO@@dxrUU8PAiolaZsCf0yx$iS5fW_sIyHqMZU_`xJAZBcA{8nE&9v zU#ilkY12ULABy=86-og=i|Co6?Dv@a<#F>^&%EDf?x$01QW8tCe~h_*lCA&8L*wTD zDdv9q-T*>+s&*=J6mvgXfpH>s-pza~%X~|Y9aKk{qHm2b-;!g;Y1(PXQOvg-1$ocThdkyX8LKn3 zGePW-VjjX$pja&O?|962q*#?!1!C_g<~xqUzMEyf>nQBIBg}VYVXL)j(0x}i-*puB zpI-Byvan}qXMxy174x5RT#Gf9e|gP+NwMkLbP)TOV*bk!llN5fJx5I5D=^=aF{#mN zK=(bxe9sY+_dVwOvamC>86ft)V!rQ)$-h13zopnrZ6=8QTQUDFV?v?B_IOw|4@*yC z32?Z;JS;t#rOiSy#XKxMiG}@$$2=lU%+_Xu*b&7%B0Y)4l6w6!Qb= z35lU6A9~FXDReSFF%>^7Hb0cT<=NWV$WhD>9r64q-~7nYTYgk-ek6O#bF_0n_anvp z2z$$3P2gkI{8&aHmY*LNm>t&adPR$q)TzmPsJ)D|K~F~5*L$8^8+nqSJ?i0OV=Y9G5i*Zj(%`&F^|mDF9NEdt%I6!R;G?$=)PYpENH)z`)5*D@#1)y@Uo zuNCuahweA|<~NR<{HEOeM&{&VZ87M6qnO_~a`M}J^IM1Rx8>%yQg?~A1a!Yu%x@jK z$5iu}BcG2In8##3FV&WU?lHwY=E&#oJmz=M;`~E_`GfR%xwag1e^AUHq|Y(kA3f%e z(r!%mN1rKfl2@gjubmINKPu*r4!b{j%%2>(Kl#j`q|X;<7l7_hiuse&jg|N3Ec0iX z&oR3{k1&6hqsfKZg`oShV*VVT&n&^q65{iUB^0v+nO7^c6`{LXg2EEw^NP8=%;nH^ z6*HIAU8$`EU6;aK4&B6TmME8*(r1=f#1iE)vq5VB-9&{Y%4Mc3FH6d0Nj@>ni0LMk zvLraP594u_)~GdtZj!>1vg7(mmYmCy9lFV-ELrNV(pG_Pvci%bx+yA4k+~uJXO>dH zQe zrYbB|>dKsCX)1%eE8Hdk8|1J%*uw@pbO-y`V5!@zHG}S8g$hbnC7@Oa(y9G33TO)p{TQny8G0o`&B$RH z4&96rmLYZ9v^LPqP*?`)+UK+^GlONy)x>&jJ&0v0EK{x~$P-v}Fg1gzQtT4#667dM zb%M?8eqHD4q{mf%fh7UWpsE38!pj0v=!eRl*&1AV! zY_ql*#Bvpu>k!M!WO-6-i?#*C@)VZm5X;YGa3f0$Q)Z+3M+Jo6=g8EK_nOZ zh4u>&D^ggIBW}J-=96ewYFC1oPhma>TCvKCWrl3kwt`r(!ipUkQj*Ewo{!vUKns9a ziNZ=8Xr(GEm1sdN2x6rQD-~$)r3)PE!BstGaG8gdQKt_fhJVOWSQ+*^Nzg6IIVCI4 zX63Taf}Eut0aor~<_Ifo_Miwc}(0vu}U*F6U4?TY#fR~ zX=7UqY`n_G%ds$4zvBy-xU*4}#xw@H;}td@(+I0FR*FgwtCXdP=~nt!rL0OyHq4F6 z3RVesTcY-CX%=!6R_Q3(ggiEZsskc_m39?~O;Feb=`)$Y=uOOH6Qx};0c#aD(Z?pr z=v}Q{jU0tdMBQFKPby%Oq=mbGO!w9EDBF!9qweY)2>f z*a_0^HQF`EQP>FuAck>{`8?UjCQG}qES+4zCd;r~t6dAalNB}@bobTSC-GCg0O_Mu5F^5m}vQuTbexv;c#7%jqF3#l;bmt?vH#Nk3&hS)*clE_ z&dg$GIy^bEkew+#xly|jbk9`SnQ}oAD@B!;Rgnpq6&R?h5>_QA=r?IMAxB|V4!hM} z#ve3n*R3vL)l&Drwf_d)YK2uhbkFj#vmAEMDq&|y-J7+WLH8_$o#oJ-p3kPsgpXD3 z^a?f|-cbJBqTK?z(-k&dW^$~&H7cu-i?>(L3ftIX31E^bZ6(Y*(DejC`e3qb~&3ZHx%yB?f~7{3Y#rs71N!Q z&*nIE=ajQKQuj{nPSBmBusKpUR^GF{>}*HY zwXz-kkM=*HTdS~IM?0G5W%C^6omax<$@1Q#-2=Mw6gJOM-uYfO-=RCdgw2<__iFco z?tF#8t!d(XuFGb1a=@YhV*9Q0u{xO>_i6VbM`3l2DawLewxC$#Mof1>8CxLh_kQhu z&|RRg1#+4}VmMGP%w-E5x(mzLLaFK$!xk%ujkZ6VeM7ZtNbvb+yz4}tC?g)NfpDCYCI9(Jxn_uOK3uGIa#_IuDhS7GN$ zT{3~?U97Ujas-UUYHQTsd(JC9-o zB%l_7wDd^ zu=5?BT;O3BNKYQu9tW`t6n25blM6lULg~pLv_F8@g$lb+dJ?OP6)IcdsK*rrY=!jX z3GE5cU7@fQ(vw(WS9;h=Y2r!kNf2A9u$9si3OmN6!NVG)!%t~XAxB{i(vw*2G^(u8 z5tGIdtWkRMwDvUUHY%)9W>idfm4~fzWb&$Fwn}EjGukttyGmiJ9Cn*LtjVF!H4fc1KDI{cKCe9wx@#1+M(W05wRSjLE4Mz$8SEj~7O}OmSARi!0XYg= z>zGD1=dfm4$;zBZ-R4r(EPLh`wHJ}2ux7bc6tjC#4!g*qdr>L7Nb0_%y#%@!DeNMt z8;jM&!`a1-k?7(=cCqyNPuibA_hN-zEPamYw&buD$7s@0!dj%=KWl#m-4=zlIP9*= zVe1^a>q^)#9hv-v_0A$5bID_heND0gLO)@z1m(7>r_~$Lu^AP+dz#4itsn>Zy>fo zVH@O%CRT)vnQWsJdrf-{#5O8yqeE;{Cfg*%Ue{g+u}uow)|H?%iEY_q~P zJH)nRvMo~VP3=t(+oG^74zWu!*`-qK@7mu%>{5kY>JYmulU*jo_G$Y->@tO2<`BC) zgIzA;_7CkJAa=RJE_cN3icAJi8{;#*{n~yIyFy`CIM9BfvR}vyIiMW?v0o_c7mf_M zGLu~?(caSD0hy@fDz&;0t#ooJM zK@SU3`-kd3q#Xj$pu&Pel+VSn*=Tu8qlpxVy`#N@9EE9O&xH_aK8~WHd=`@X+wW@c zB1d6xyHb9Dgc1s;D!Pa1vV#Y&_`aH6%yjCcp(i6I?nCG!nNBTRbZ>Zogz4j%K1GE8 zpV~i>qcC0i9ZTDA9t+dr0Q~-!_Ad|%D=aKGMaTp?6Uk!{*>lI7iTGGVPSUC0LT4fs zEFyO--qYSgj=~}cm<;a4O4sFM{AazgAlM~$jb&XRL93it>AEJdE-Hvnr_yyzWnE{A z(!H;}kGcwjXVLL_O{{cLAB)Pd<=@)BK`g2;xUVbU@`;ts@G(OcBvv}3f*EqlhXAp3 z#yDoks2uUVWl{0%F|?>vkBuW;nY>9!@)|9R;y# z6m|^`hP`~dHiKO&yPQw8PeJTjg+;s@DP_|x|u7B+2QP3mFM53;N9Cv-hO z$VP4YK{kkrA7tBERW8U}ao1OIX#NW{3>%ZSAJZ=c7XI~lXntXW_EiG-{o7Rb+d(ck zTc7A^0H5+)+Sl?%s;47lBWHe-0QX)^a-HEi)0L2t>^g(LfI#eD=u5C~^WcTS2?_P^ zDgL1c$?%8A_H$E#F(!Oe`z`^yog3ZkMvtWMgI@eXfu0eJ#epshpKHTz^s*bFIzwLp z=OVZ{?x)%hqk$ z*>;x^@%}u959kOT6N+Dk;8&Kwe<+PTlrAY~-9`n4mk`tfh4ibCLXwZT*&`SgqENUb zEZid{?2)pb!a)I(gE8Y&FfM^9jBY$KoIR2a*F*8z%iwvH38C+Wp|3+}Waz0h_LLhw zCyL?E5nf@XV?>_HWKXG}2vtoUeiMQxXaoOQH+vR6BnrPupWsSF^+Zv7=mXk)Hk&=` z5m3*LWzWI}Md(KX^=)VuYsDwt7;x}&g4VH^& zUy9%4vTv|l&_>B(YG^Dee&=T2p+%yoXz%^7$M~**;b}HKT_~o7;K47z|Iy8U%#pM& z#UJz7kI-%E(2mLCpwI+Vv=ZD_0z{J2K3ugDvaJM+q+2Ks4#C63K_SU)B|&0y+LvOI z*Gj^~&Jc=2LX$}`)orDsB2iGZdy73Ab{AHv*GkP5joC`Auu@^ls%HwMp`jBAX|UTG z3}d53^ms^vbF9HQ>R`uX4IXI?hEWIR{5%TjA-EL?@YCH^I{HKuMm4-2WPI$cbgz|; z1BXl}pdEAx&oZDku?11!Jv(aiUZOCt3w30cwsw%?ec$Y?0f-r;}Pl?fE0RajVE{!BgfF zbm&USo#CPBq*&s%N-*1r;;%PlnNV>uevoaIV7BK8#q7`wQY?2{<)}!M*9qQ=hUOTU zw5VI2ZIz4R*eWlw%6)(XT{1b~3DNU;tWj=j6!Z+7qUXuI`&esKt~CmJ1~H68yrJ1- zf3({g4ei?^+LzwwJZm)Vt8sfdA$mZFHO6g?!FnVr{FWxA-(w1`F<6h7M`K1=V`zm( zFfiG!PY9h2lW1!~sx@Jd3+CGY+ex%u(0da7)}VxhMG!~)!wIwke>j1z!b$YVNG_j5 zTa(<@By8(Mu^@aREN7syE-<68E+%=cNjNjW+@F+dO~M`k>u*wlH3|Dq81Y;e!w{Co zr`gsNw>1Ufi9%vHrr8KOCC8cq(`?v+;L7=-c~m)5-PTmB9HR95Wm~19;?z8ADt5jw zT$0s-P#q~wb6e9ekBP#Rf~E=`_ik;wrWwYLgICU|_dEOC(w)CCB9`SnN9v!SJv+7`r zOoyon`CrBtOx9AjwG>ASqH*`I5_KmV`qDgWX}&PCw7|k|-}F%et~_)h6>GWMT8@Hx2M#UJzS9jJ%x3v+AK~%2p;I44C+Cm>TW?LIE=`kW3$66aF3@ zdd#}qZC#F252Cj97~FKA2T-iXtjj&t<+L7KjT%#}%V|Bf2H(uGE}sMNFeN1TakN^p zwz{pYnBqhcF}_W0^;%o8Gngp!#)mGV&}eQ8e^YJ|?MqS1u`~<~OeM)+Wr(-pu-giw zBGJAS!#P$M72$b`q&R`^bXZZh6~&kmMaB5ah-O<+Y{oDLCB=!MHgc7@Erw}C6cz0g zBn&+pZZVu7!9x{EaS~rgZtDiLNVG4DH{@D3 zpv9Ag;)#5jW&O@={SKo_v@eUl%eH=pQH6;xSv-j^v#guatedcj6Xl9M{lPRLJe4oA ztXtgHEwJd}v@a{S6j--lUj@@+vT`zCW?8qnt=q6%MEg>_E!VmY%XOMiJcTc_tUKM- zooJCLD#mBaodwpNXb~pSWN{i_W?9?a)^;4}iT0(qJJ_ zFIOKNZas)~ccxH0Ep$2M=fiI6VQk?<`%-+^V?7KftMw|Oc)FNr?r>W>FgQd}QBM10 z_p~F|+JV8T7K&$xspd|%wG+!ov@gY-dDc!b)x;^(nV~Dm(_L4LJu1%iKv7W{*3|1sAFc_&8GpOg>)^jLL z6h^l+1bJ?R^;}^B?CRrwWSY&vG<=L1a1&sVy8u6vGd0)Xn3}ZsT(;buadwl69Kq$Kril$##~}xo zg|FmWuiyj*N0Caj4tghwf6S7 zG#Ku1O7#S_HkkZ@ZFug_VBpw%;d(gxL0|UfTYJ$LvcI>`+6%d;&lL7+LQ%5+y4!jk zoh1tPhoJq}3#`{i@cM_+4}sgnqJ6B9A@~Q@;T8V3ndT~30oasY_gef80lcs?LIxRo z(`~(pQ#YbuY$zIg(`UU2Q%FoU03QmspOwaj;(IbS6fSJWxQaCPX1?_%|0;(fJ2PaG zv3+i9AGQIaU@RSt?Hgh36Kw#%)8THm(pWmaCu8YwVKc^6q_KTD7Cf4nmaCY{vqFrF z?RQ)I(HK!MHVlpJA7Sn9F*XbyxFU@W17pL;*f6-T8RII_*!~=Azs=a}kVVGcc3W>_ z$3qm1xy212MXPb!O63MaxRC{~wp!#|tVL*2@B;q}9|V$g;O!9>-X1`QwLHakPUvd# z;GHz<9qgouV(ur}Hu^CE-tk!PU?)9WD4rd<1{JURBJHX#pv`j%igsPhTUZ2K^+ono zU*J3taIX5I=&CP#fCGzra^RfMb%@h_S6cU7fWv9uINf(;ci$y&y6-CLz6){A<~Yz7 zpPR7tuh18F-%u)D!L=!mF*eI5z=jyYKe2XMYR7eLoRy4G&pO+M{#ckjUP5e1(zhYtabI@#}L+N@`SH@FW8uQpFPSNN1k zo@Ms!&W_>TJ8;E;?(Fb%@4&3674FR2`X;%v%iX;TLqrtZQG2_i+T2mW5!}p#SDQPW zE8J1Z9kp+Fc4c?(lF`}a?cRmaflUpH&it+W$(<+M-A_Pc?j{QEWc9AGESupha0ItU z;nn6O=L&bSu*RUNW%2*}cIydm_Y=5%gHd`SxBCg4r_2{_)otBJZawGjeh#|oZld7U z@ZN3>x4AVO9Ku~zc(u93xx%gCB9VrJOy52|=jnb9mrv-^b2;75;TR6vI25V{TmMEr zz2NSC0c(yZ_>|qd=CWI>*QdL&D$J&&%MeauX5mh-yR(p-hDuJ5eGco2e6BP z9Xg8Bxq&M3=%Bm%U@mw>6lS!!u{hDRA=fr-%S{gEl2eed!MvCp%_#G1m7511;nNlOAgD$fyj z_Yq8HqEMa@v9zJ`jIfnwL~?Khl?PUx!NQzg!%v~DJcUpa+vQl9q*Tr9vHbcOT7%LJ@^R6~k1u`)G0Z(Ndg*lf%Wf_FYV+ zDkhhUZSA`lickz?#jlsTkB;mOh350e}Gj~H&G~4Y3~XswUwuo%7dHo$-z=v zc}np;l&37FN_AXjD@z%Ol<~5Z!W9&u6#mMvJY{g*Z!P_h-~9tNA8blLjOhLWON6QS zLs9n+I59m>lxTVAPAt(iF84Jq=V}P zL>0CYRe%zFi;6=>Ib0!uzX~Az73LaO-Zd`K&t2mxxW*;=xocd7*SN5sTh0rU0C#y8 z|LNz$Bsn4Br@PYN2_c7H`rBO%sT*1^ zZf)DtI;3s=iW!^Nw=}P6?i^IxysEveqiuDk!VM&&-PF}wIjOm|)3rH4>F8{4Ze0^| zCcS=3N2h;XWj!!k{3&$}?H&FYk3@@w#H^OK#)g*WOUdI(?nr&-mKJ}9M@Y<>+19?U zp|h^NZDVtjzg^+%^j?ZX?TYR=jUm%Fv~+H0_s?lv-RA4ltW99}8h_`CIjtKT+M63% zJH-bnRN53M>q%4ab@B=LI_acAt>E@XKU}ADG;ZniD;r3J$mA1({rnclw)r$gT829sn@ZqpxP1Pt^K2Ut7Bmidva^R>P`` z{jE*P^tRU3&1>A^Eq}LiQo49QyP>tI#jmtdnq|xpTv?-oXZbq?YsU0x=bzi*Z-;WU zw4GnmwrayVe=C$~R&(d<4UOm5H?LXOP#J3pRHmMH+$t0!sjcy%p*%l0FAFO*&gvlX ze&wX>#myZXVmSyJo$U=Boj%k7FR+R9DUdm{d9%N%t_|WaV|_<+OIvG!O~vtHT1(rS zNfQ@0v?QO~+1%om?}UXxBC;zdrPeHlc(=6=fvC)G=vX_wt;s)RdRt2i)&ex@%sDeI zL2o;^OmADazM%xdWPRb7yt?8hht3D%Nx>ZB<@5x1n{-21v3xsQPBi-;R8A ze3rk}-`>0`9=%Mo7@G@~4i^;C>PT*EYimiXnO9TY-rle!by0i6D*ycTsWrTHrl6HN zg?DUIu`sBtx>G_79I)IhI|3SBp*w6ADd(L}GS;C0oCro_he ziH)6!jm_y&v1}D25Y+~>-@(vvty)V3nIcNzgSOyn=f&_<*Z5X7w6?Z&`r0?N`r2B3 zoooHRj)rx9UkgaIRANV5-P8oN)Ydu-uIo26LUK|f;77I4u{E!6*@D+K%^RCLKrE@Q zZBt5hXG7}=t}RJ(+t#GO-=v92(2SFyH%^+~){(TRp)~_E&TVaI-!jj?hPvM5`b*k7 zlR;uF#I|E?GRUk=uI^}VO|D+m){%^WN!5)VAhD)31(LR{J$1Ujxdr-#l!a{@TAPv= z`sbdTiVd`_xhbt4hKstE4IOlWDucj_`VH&Qi`s_GNwv+bgL_)YAd$(7+6H4ip0#21 zYJdBXIW-NP4dNOGyq1=>O;qbOe*b#BAlbS8)-|1LDHG&8r%C<_sfVOG6`nn^?10okzWV zk2@zA6P1c%G|u2zgc8*0iC;KloDMO>g%%bo%H2-}Leg*dDQi zcQvKXUrnY`>S26`am#;+$oj=AY8Jz>_O_&&#WUe=AvFbH)_NfN>-|kVy4(wezSNApRY60Ts}ZIv)}fFop<9HrCnR)w)_TdOoYA#xuBw;qJNY z^%1&yG0749V%J63I%?WFWsAVK)$7*Fw?p}-*hZTCsnDV@S%w0I2F1HuW$vVTFwaPv zdjgXBOB8;Q1WBt@uU`*i+>nKS7;D%27q!*YCfE8KTGOC`!z5vqe@H#Fjwa}#YWy2x z*Ugvu2O$&=EdDe|`Z=vl{>^ES`E-$rO$4}uEZl<*he?S+gdjIhtX^OmUZj=&?T=D(T4Wc z-n@ATgkI{{;<`8$W?tC8C)M~n(`ssYb4YFD8JpV4o33l)Am{|SWu=YclhmEH|#qG!QS3Q49qM{9Ks%ut$JJDOL`+|bG= z1w+qmZEV{tM)3Oon?9r0%rK>)ea#6I)0$*G``4}S+>+YdF#~CGGt51bSGW6HQu!3G zV^F>S5?*=9t6(lw`+wsR^i|l04Vg0o%)pGe5tbIKVDRZoX>VwTr15WV&4eis%^7EG zUgf7QUxwcC!O$7)?QQM6m+vT;)4F~G^d23ZXZh!~wf;Zyz5`B*B5l8Cb{B@61j!;I zhyn^C=73@rL_o~q$}T}kvVd8qXV#o^&S&=YOlP_P=A5$^45z23o}S(r@AUsXZ&i0! zS69zY6Yl$d-`_CXQ}NC3TW{4=E3deuQPtMKe745_^+&>gAY7LSWcH%Qh24WeCoG;b zC!Ddb=Ag3@gv2;Ca~kK>afDI%xg+y)N9C7{%r6<0pE5E(WmGHF!KbxWe@5!RqaeTw zj;v{DTvRi+{)htp7c){bclNvj{+BPcb0ILT>j594yLL^HQ7WkA3@lYpNb58&uue5i zi|5ucu4u$sP@x<~VUZGuvb+kHV(YXm%)a#6=ckm@OoO^DH& z5SJjPYHByP{?JAp_v9Ak7RYxU!nLA&)z4|G{?Mtn2Ea2B?zgUQID}Dk2URsimA2P0 z6Gm@b)J}hyxVULn_`Gobg2K3|+GZTA7ABpQ8;yL|4lAPeddUDG?6I?~MY#Bg#y)6d z8)|}hD&g+zR^;()uyiDe-D=J#{wb(GlMkzvLVm#C)Qgj8y@f%MwI6lU@@vR9uxL4PJzeDtD zX-fUfnT-p@drxRQVo@#YYL0+uJ!0C(nx=UT(s)#B7LOV-r2T^WML-X-2i3_pjB2II z(RfswMT-~AX>5Q7)J>~jICG?QoYz4#ZoFFJHg)1E8w+1F8ixVrN%wg}>SiviZy1t4 zqCR(2Eg#z+Qa^qE!SJ(7hO`MErO}dBtY0#ueNa4Q$&exWg(LF|N3}DG!U3i%>1aYc zZG-sNkt!iFW^^F?s5PT0Qqv!HTSo zbrnEH3LvT&Gdfn$HQ6I73fo3S8;;UgMnz*r>!R+)Sh{FZ3hx&bFhXVzcom zSqVpkX4nQ17nU?hYG_AT@22VXa~db&e~5pV$&HJ~HO{Dq#nb5ah<^>T90+YN()!PIv3nYHBj(BN83a6BKy?igRAFS&)E3LoaYxRppUcP( zhJBR&(iRKBpj=j_K{=L&!6R0o!6Vk9!6W>Der(6JYWR#LYw*mKYw(Qb;WO8fpoyrhN9;l}d|AM-Z7YML{K@;*l z^B3f%w&HSp@!XXs4`L|VKoFTds-Lr3q&N+@CHNb5UMmDCYpgBbi!>B`s*xNe%35TtQ%~g zM;|Yvj-NKZoiRiq7^<~?5MMQ_jsCV|NX^WdBk}*Jpy84ZM(-s<@-vs@XDu;-TGDn- z{en65(*-`P9H&if8?17sjc*gyMILEL{*XgLuQnxo8qyByD7C;&R;d?C$;i#7k=@3<5om+#V0_#}SC8}Z{RJYbu1+32wo{tPk+i2UM6;yE{*7q|S zTO+7g2v^=F+(_seHVcb7GJ7+7PUD{Q7yvfZvUkmlhEc8gfCvMNh8Z*XTxgn2OE=@l zR*gq2z=D~)V>tqVrZz#N39T9t6-=I7i#7|}VdV|j#QfHYLan5%_hHc<2^JJG<OPsthaE={N3gs-ng)CzhTHkb&!?(sBtQKow#z=OS04$ z1vfssH|VUh`1J#tkUw77H~>j6ti(qI_DBF|vt#2Tl~QXnWfqpn4b1ONsc$;8sVnwy zkb`TSv)lan3si)^hDJDSIYL^F2wK)4^6wO^g=C$2(8!@J^od3(i zdru=z_zBLV) zi5g^N30gL9nZYZc;qb(u z2_84t9A#tW>vqy+9N^etM=97{3MR_u9`ZR!%IC{-@jCfZyjA`AB?cQ?ypvycDE?ag z`Hhr4BF+6aK+^BckN&wjz~~R~1(hBA^*E)Ep9rvYBwLIMT8vhO8?$gTHO{{3&mn+& z1CH;{Qw7cP{2Nubn_1)Es0X=IeH*9#2wMJ)f|q~eBvn|vPW|=U=)W?Vf1`hh z{?1883JEvmlm9S2{YQ9{5LF->7ErZ`4x&W8Fnff|gHnsP6^N@AG~$tG`!}d{4kw zspi2SU9Cq!fec$(7yU@q(t4#~=#THCYijsyeO*c!LuqMru7<7Tn;xySt{RPhOQV5g zX*b0oCDNtc`E7^N#C&b{(w?QMrM=i>e}FZ%w1l7ji5P8c>FCliJLmE>wRNo^DQ(-e z@6fSR=Pq5l_2}8FU;i}*tT}Mdu;Ckw9JSGwTWvFT+wI2fyvwfRC+t3Pk4clK?6vQH z`yX)Nw1es!8fVR(GjHLdBaS-y=buk1cpu<@^Pf9$ikSc4rAItgenO?{*165Q)k^E& zqmBN$14qf{4{41v$i_eXi3tC>4nG_5XW&#f&U$!WUB0F+=hfo>@W`*%O4@ljh%Z{< zj0w=kac3OAuk~=|#q&Dw1IM(e)p`6_QO>gGJsvJE+;`OeQ+thm7r!V_;P5nbmztWC zTHIKbQq#>#>w_x_Q~GoUSOmEy-yVPYGjal2SG*CwnC=AYm#fPWT>O&*d7a?)2Dp7v zr^dlB3XOS!5uHa`%tVX zkGY}v=sJwt6nSig=Bs%g3+i$;!$+JvYv{?d*7KU#0C#lN*5qn&jI1Lr0IJ1>LS1X~ zb-7w&NETsIN(}BclNsxbYR;I)M{V684k$BXgzg*Wa@}&AdiC5!-k3Zjtkv+1$MhW2 zJD3<}tGnlOINIC_V6{%EYmHIzYLrbq{6rAI02lR{^E&0aQhd7u9LjATw|M2c!49d1 zx?I74v!=G7iWMqbkQmg&T#bWVtLHZL@GC#gLmKf@X5()$@I?)=RX9X#$`JV3UgaUS z35Te&hQJg!m$)q`n$PvkwE~m6st3-U8<*RjcM;&E_3HQ@6!97-6m^9n!WskQRy*ON zMYrQi*Ea|WY1d?iG%nfmcHsJ~e{wSpItF5OU-{rNoU_>p(^1NMP6n0BB3gcPh z?gtohIKfPa0d4@cMq~nS`07!E*}DTjo%yF!fA+lM)~*3yKS_fCmD~gkbN4{ECMl^Bs*~jSZ&I#4L<91n z7;!NC2h1kgb%UM7kf4YBkw<*=&h@FwZ4MOcIug%5gJ>kgC3KojLyB%uQRfC0VUVb( zOCyS+A)|_}GgRB&QBfNZOs@YNI1^9!ci=31GAP3kg>JJwuQjO}=|#SyP?^07tKp_H z6PCQRC7OKWfV67`i?2XtF&t>2yBc$*H72H)F?$>uN10>J6w-C~3afKM15>F)QO-kU z&pCMN5TPcO5~ZQC*W7qdz|~oih`r^aP*4EBuIS~Vs*6cKMxmNNQqSf&+}oA&@S~GL zZ-ve*3ms5V(COoVc$Pri+bi^SKs-yr;@(2PSzcWn&OQK6!jO58h`L-Ggdr#QJo)4x z8mMiP&tcV!kg*TL)0j43pss>2e}@9*#Rh6?57br$YMXAL zwvh3*sz;sz3rQEHx1?RMARL(w>ffNXm^PM057Z9-)>_YN+YcY6IP^a({(TLq3#OI% zBf%KZpo(RxsCdnVEDkj>suLFoNq~=5?Vs z>s7D=m}A(Hab8AtU_GxeoB%lO04hfug-WL#K;`;LJ1{`t6do!#@d!Bk0nXu?LeTs5 zX%_~X0ur|i>r3+-%s|e=#mt2bD%b^}H`0NDvI`q{g;5R+lwH_B08)0L0^B3x>fO#( z?{=cz?NaQ-;E*7&6=YmQkpA(3+uH-Tmx0?Gb_2J`^zjNC9u4tkG!i+IT5xIfG59dT z=)y)7gaQ&hCe=A?=#LTu(0ws44(!X1@cI>brgz8P?D!=QCcj(0*6jvSY4 z;&0^-mL_#S^BiD+9yYPJ=LwibvMv#JzBqX4UW z{Hie|9lOXs#yO65QIR>WM6|*ro-s*ankCVnO8@ zTiKLs>)^dIC1bt9b`IVvQ-aEI$C6=@N+v{MJCOm!Rzwu3qQG|aDC6)q5D0wL1tLx& z7Ys^TG+x_+Kt_<$!L~6S#Kv@3VdK@&9=M|n+|e*z+kw&BFE69FZ-LR<#~2+TO>WfX zIsrB-!PJQedmWF%K8yG&i0g*RreYlAaJ<3}ZX>&+ZDe<>%67Cx*6$27Ecepc=1^zhQ0ElZuU)m@>S7PvMF#F-uznY?e%HztdAC%HysK9j z@6bwRkx@Cpp_R%aqjL93T8TuE$4eympZrPD%Ag&!lD9j=v{DKptt?EeTEuBI$4AzB zB1L>)x{Jdd4rrc3c8gHA9J@GVpsUR)Wbm-YLE^@_#;INgy4eGFlYzU%Wk8!ErIo9p zi=~yT8CvNT_Nbs)aN(02GNCkU53exUArnfo_OQJ)nag_=su2RVOYzcGspO=A(o4aNty!4ggGGc#=+`+(j@QWWiK#!*p;eO!W~=;lQad9R!#TcEJ>ieFW2V3#JAe zrp8p58X}m&fm30c4wxDpFlp@oK%v&nAV`Lm%_K;M78Yi;Pf@xVAw(@J9W&iXs|n*| zc1!6@h-O<59b!XtXc|PbLx`%-Ib59W9pVB>tA+{E91EnmHb{7lB8GBUra2KvEvwu- zfHcPDR#lBcEM?O z!RdCv8Fs;$cEMS8!P$1fId;LhcENde!TEN<1$M!OcELqbiR)k+H}ADGw{^WE zsTFEciO-6c+c;bi;vlD6ji&wb{ua-9nC;$M3+Hg{?Cs(`%Jy?bX zl?s2ysl9wTk-`hb@ZUJKmme>Zz5IBQ?B&OcWG^2@J%U~Oah~kuODnyXKhBfAd=!Oy z`QyCewWNqN2>FP<$9W9atswEB*>g0Gzz)o6iji&Uy9874P(lcOhYu>odG~ck#R) z#q)aV!(N1~7F$y|0Nn>U!oJRW8LYN1$IBy^(G5qJxbcGRYDJ-Y2r5v=NixE9Oz~cP z76ye!3|0bQ{hWaH6Ttfgh^~Wk7WYZ6v;Xko{r)R!`>zbqc#=QBv_G5Xyki6dK&&x< z-a{OOPx>szINE|5ocRD!a$@V);sZdcZxX2-PO6h0Xd2MtL3Gtjk3{n!h!Iv|m}RI) z3qGUD--4yNHHyDeXAF7bFxMA`r%nd0U4zPnV^{J=9`Vr|pyju&%MB?0KGq8ys5_2q z=n=tsyqxjqTRR{sDi#~KeTH$3GGCwaK&e$zl4Bm2HEPW?;Bibv^eZkUz2D47RzerK%Q#{;LM_TJU|8-(x4gH)Zz(xj-~b- z07=bpBKP+UB(doWfB`M$H~}M^L>LnFDAV;P&%twi>lgijwyr;giB6+Gpez;@Wu?tY z0g14ES3Ct`2a zWhqkFWv!Gh0d5adc?X%wo6oIFGZ~IBh$G+-AsI69nSqdkTM0cruc98KZ=ra8 z1w}rOV-F}kDvn9vSGzWqxp)=`(zkYPQIqp2=oeJfW|`^23hI0ThPcS32}_kGu>N9~ zCM;Fz%=$~H2?j9<=h-5Fy#&sS6gH2c$SYnV>U@r!E>l=MF8X{$T&V`zN;O!NYA|n@S86-aD?Y*C zr@;S$cnJitzK4yUq>js}TI#rdppIXmb(}^5gFaQcUG~H4LsAZ}Gc;=X@H*daLKrCm z=ZXl34FZFRS!n;(vFWvr&}$vj2we`Dq5;rGXzet6kQ?eS24T0MDcu4?^t3t!D!~X& zf%ae;ic0~S9K`=LImkh8Sxe(`B|c-uIP+8jHOob8f{$ku!eEDHpRGH zNnuM160WOkT&{#L|Du9%xsGEqH%=y91#J5=JjL@bsA<<%wkI6?h6?uNdeqO}VAaSc8fm0ZO>6dZsSl8B$bwxYiAD!Dy z#cK^kyD~o1diGH3$x!Q=igp`_O|e&s#aUvMgIn^qX$Op{<6B<@Zz(P$H#V0?XpB zsG%CD;fCJb*`Ue=2&4QiefU%ZXVl!SPoE}h?$O6jbq&!n`rWI~pR(3i2^4>=51`uR z_vsU;RykJ=#oH+}X;$I>%2wfa$m9bRtit`+-NqDmRGQ+!%2V8dDIVh9y1C>tmM0IY zvBTxbaIrwYiWo%A6#=57dw}3PL~Z>|Ws}5df6Fr<2HDLO%WqKsJA##{M;Yc|{qK{z z{^5#+^-HPEMt_>5I|Xp^39DEFjt2sMI|2V)Ku4OOrDCM+79%C?RS&Hhs)h8y$8XvD z_e6VHWg|tjA9kUojnp#KKjK1bnKDwWe>5vv4=c3PqUO=Ktr=n48oXi_XA(xN;G*Wy za8Yw#NN@xdHo@#~4hbj=j{f zEqmD|EZUa6gdtvW3Cl8N%UJ(vrSp19Bwndnc-T_>;j4Iv9oj2O31cDr&okD=*D_F4 zxcIVZL|+3%jg`>`w%yu5?A8V=XhdIIE+ab924fdr%aV>#wRAI&6&OoI% ziLnmGl(&65z*(gbH?(=Pq3~wI6%>@WLqYj<25&ps24=JXGujlCwMajJE5Hl>;GKQPP|3B|EU@~5w;XN@#ln{kP_2QyqkgjVkiD+`kZ$~ zNh(?UcM19*`SAyZ1dx3%!<8`)gmNVvSw3X0r&%O!GSY+%L+F!%*cc!Uyf z(F+hzc4A}nvFyaghMfSt-mh#W81#JLl0R)F-bejkT=KU}`Kk94L5)b!U#gZjwoDCb zKFrGO4@^h&VL&ToUpBGnyNS?ulNDt4hat1?&0t?PwSn1GfZ5bycA@xD1`>#l#Ypf` zoCKTMvu-A{ZnlCX_$VYnmIck`HZYqDFq@ks_zO+!Uo(&(sq%k~lVA&b)-7b#Emn{O ze+@~H#mj7I1GA+7v!zJ_=#ySy^N=(i!|V?qq$-w&GO|-f=&ri4b(Dz;`pd@GR#rO7 znry3}acl=#(sUYx>L&{_)z2~SwzZje3%AT-h;ALs9osy^+`&E?0w(oHP~@79G(@r4 zR%%_B+ot$@lzWSI+u9aCu8n6!il5l|x4#+rw{489*ryFq{>|7qDt@N(ZyHvk$LBi# zmaO@^&c7K*8U4OU$-jM>l7IV0h5XycfkQ_0pV;#IO1lpC)_w6~sOHxd@^4?M0P>Sc zQ~a~?6rW&cEZl-@6>=Qk5iO{SP#3hOjUP_i5-vdc{&g9~1EJ6uxTT@dp?-ulPCIhnm11 z`U}$}Kd3%<`j$`M6YU=>#{)$B-!8OtJn$px|KmbynTiKk|5H}9{;kkb8<9W7?e$pO zM2-~`Id&CnME<00I78e@8UhO}ghCR}8;X#85+~qxHUYO2 z0&ZvenEyZw!MLA`FTjZ56oz#}laI4fu|sABKUZ0MU>p2=dWzA{p}xkoI91vs^|h|W zsnQ7el{>`XQqYD2jIZbwcRR(zOdMa-MYbq0ydS3+?h-RVE9x%Ws`- zRQy(`FSxW%lZEwdT-v9}(#np;0Tn<4t(e^b5Ai4Ecb!qov}oLKn~|VCZt9|WRs?M; z1pPY*8uQjPSw;cevfnmN*aE+{4oTdudMMzc&@~1{JAtBt(e&G?KEa%A$kz7N&*>1Q z_AQE1d(KH23`B|Q=yzz*RQnxW!lF#I-vL8(atX^aG1XGvxl-ytiA1NWg@-MvmVReE z#8Ql^M1)YK82v8QQ&e$L?vff%6d&Pt0Y!}z<2c*IjS~|$Zsq$3%&ZQi5tj-+LbuEA zBeqZR5x7^b+QTYBooqg02b+L92myC6e1zYLiqN%swmB4`Ym17|)mDUn(JI}sBjB{s z9XpcA>h=O0uF3VHd;D2BF^nbG7x>-M{Mu>>zosq`;~7@YsPD_>!-o*R7_zjj=fceh!wyRc&SRUpf2S1HS?U3OWXm?Fy)GsrTj;}yTiVDk5{ z3Al$4a1TqC3;y8h*`~~1jBSJCY@1}yI!R`ovZ(v$D|Iyx3-CZXo3Lc5EJ4 z6YjkdCk%E=UQ{>VVrPScBeSh;zU59w?1VpP5ghhMrbRvKMrymrwE+~~eCw}+JeGMb z)E{c?fcWc1J0Rxo1pM_Hq8$+9th+xfy#7|efC}n$l|NkXfM|G)nh|;j!~ox@UEjR} z;&0&I0r5ws?|}I0(37T|K=w!Jpu)Wag1!ZR!}J{xf0V5D{GpYm7+raap_pPL#x3q0 z5T7q63V!)ECDQmZsNnj^%BXA+_Z|D#rVqc5 zhw0lVN<+GFo4WAAI4)h)pY;I>uqC6)F!u5_sdll-j{QT8^K z<%bF}wnEx}8`N*>N}p)?Vf}Wl^of?AZK_bHaT(-mTZ)LNr@Euv=P$lJe^>?i8pkfu zZ!Dj-qkL^&nJUz(9V%$m_Nd>nf>yD9rwUrNJ*d*gylfXx0koZ}S(}6{Q`aUtXQk(k zhQ97B^c(?t#$1s~`iI7yN&lVWbls6(cL*uGO9mjsXqZ6kB0y9!8oc+=kEYy-Ox-oZ zlnFW7wM9AFHI6U%KvmqWWlJUZf2LTf-7tjX3eeC}vA*Ihph|KkR4qAdDM=!^`BUH6 z49q}IDT$Iq)tbohpq!D~-_JH<`-vIbZ)KRs{q3>$m$COZP2>cMg5w&~R6Cy#1-Z(! zqDh%(i$XvGl_og=U|MMsyu-x4ve(~Af?y`eRMLBoG^;)-Vbv#BmO5JXDK4w6{o`cR z@9DDI+CNTi(P~#A9K6U7raC4Z2igogP#Ab%ns988!GBJ($DSr*PcwyMPYTD>mW}^j z6^#E>46%0w1jM#KZ7zi*kd=y*bNqss(@Ui*n+ =%aUZ%l(cOBg@H9(#t2J;Q|jKyP{V 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

bM?QLUH?Et+_!b&8B;c@!+>hEukK)vN^XPCD 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 F{{y1BFbn_y diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpBackendHandle.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpBackendHandle.cs index d91d8eb8..4a9e14ab 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpBackendHandle.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpBackendHandle.cs @@ -53,9 +53,7 @@ internal DiffSharpBackendHandle(IBlasBackend blasBackend, ILapackBackend lapackB public abstract FSharpOption> Solve_M_V(ShapedDataBufferView a, ISigmaDiffDataBuffer b); public abstract FSharpOption> SolveSymmetric_M_V(ShapedDataBufferView a, ISigmaDiffDataBuffer b); public abstract ISigmaDiffDataBuffer Diagonal_M(ShapedDataBufferView a); - public abstract ISigmaDiffDataBuffer Map_F_V(FSharpFunc a, ISigmaDiffDataBuffer b); - public abstract ISigmaDiffDataBuffer Map2_F_V_V(FSharpFunc> a, ISigmaDiffDataBuffer b, ISigmaDiffDataBuffer obj2); - public abstract ISigmaDiffDataBuffer ReshapeCopy_MRows_V(ShapedDataBufferView value); + public abstract ISigmaDiffDataBuffer ReshapeCopy_MRows_V(ShapedDataBufferView value); public abstract ShapedDataBufferView Mul_Out_V_V(ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b); public abstract ShapedDataBufferView Add_M_M(ShapedDataBufferView a, ShapedDataBufferView b); public abstract ShapedDataBufferView Add_S_M(T a, ShapedDataBufferView b); @@ -70,10 +68,14 @@ internal DiffSharpBackendHandle(IBlasBackend blasBackend, ILapackBackend lapackB public abstract FSharpOption> Inverse_M(ShapedDataBufferView a); public abstract FSharpOption Det_M(ShapedDataBufferView a); public abstract ShapedDataBufferView Transpose_M(ShapedDataBufferView a); - public abstract ShapedDataBufferView Map_F_M(FSharpFunc a, ShapedDataBufferView b); - public abstract ShapedDataBufferView Map2_F_M_M(FSharpFunc> a, ShapedDataBufferView b, ShapedDataBufferView obj2); public abstract ShapedDataBufferView ReshapeCopy_V_MRows(int rows, ISigmaDiffDataBuffer value); public abstract ShapedDataBufferView RepeatReshapeCopy_V_MRows(int rows, ISigmaDiffDataBuffer value); public abstract ShapedDataBufferView RepeatReshapeCopy_V_MCols(int cols, ISigmaDiffDataBuffer value); + public abstract ISigmaDiffDataBuffer Map_F_V(MapOp mapOp, FSharpFunc function, ISigmaDiffDataBuffer value); + public abstract ISigmaDiffDataBuffer Map_F_S_V(T other, MapOp mapOp, FSharpFunc function, ISigmaDiffDataBuffer value); + public abstract ISigmaDiffDataBuffer Map2_F_V_V(MapOp mapOp, FSharpFunc> function, ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b); + public abstract ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc function, ShapedDataBufferView value); + public abstract ShapedDataBufferView Map_F_S_M(T other, MapOp mapOp, FSharpFunc function, ShapedDataBufferView value); + public abstract ShapedDataBufferView Map2_F_M_M(MapOp mapOp, FSharpFunc> function, ShapedDataBufferView a, ShapedDataBufferView b); } } diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs index 43d023af..2e6800e0 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs @@ -7,9 +7,8 @@ For full license see LICENSE in the root directory of this project. */ using System; -using System.Linq; +using DiffSharp.Backend; using Microsoft.FSharp.Core; -using Sigma.Core.Utils; using static DiffSharp.Util; namespace Sigma.Core.Handlers.Backends.SigmaDiff @@ -22,18 +21,20 @@ public unsafe class DiffSharpFloat32BackendHandle : DiffSharpBackendHandle /// Create a DiffSharpFloat32BackendHandle with a certain BLAS and LAPACK backend and an associated handle tag. /// - /// - /// - /// + /// The BLAS backend to use (must use 32-bit floats). + /// The LAPACK backend to use (must use 32-bit floats). + /// The backend tag to use. public DiffSharpFloat32BackendHandle(IBlasBackend blasBackend, ILapackBackend lapackBackend, long backendTag) : base(blasBackend, lapackBackend, backendTag) { } + /// public override ISigmaDiffDataBuffer CreateDataBuffer(float[] values) { return new SigmaDiffDataBuffer(values, backendTag: BackendTag); } + /// public override float L1Norm_V(ISigmaDiffDataBuffer value) { if (value.Length == 0) @@ -50,6 +51,7 @@ public override float L1Norm_V(ISigmaDiffDataBuffer value) } } + /// public override float L2Norm_V(ISigmaDiffDataBuffer value) { if (value.Length == 0) @@ -66,6 +68,7 @@ public override float L2Norm_V(ISigmaDiffDataBuffer value) } } + /// public override float SupNorm_V(ISigmaDiffDataBuffer value) { if (value.Length == 0) @@ -84,6 +87,7 @@ public override float SupNorm_V(ISigmaDiffDataBuffer value) } } + /// public override float Sum_V(ISigmaDiffDataBuffer value) { if (value.Length == 0) @@ -102,11 +106,13 @@ public override float Sum_V(ISigmaDiffDataBuffer value) return sum; } + /// public override float Sum_M(ISigmaDiffDataBuffer value) { return Sum_V(value); } + /// public override ISigmaDiffDataBuffer Add_V_V(ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b) { if (a.Length == 0) @@ -132,6 +138,7 @@ public override ISigmaDiffDataBuffer Add_V_V(ISigmaDiffDataBuffer return b; } + /// public override ISigmaDiffDataBuffer Add_S_V(float a, ISigmaDiffDataBuffer b) { if (b.Length == 0) @@ -152,6 +159,7 @@ public override ISigmaDiffDataBuffer Add_S_V(float a, ISigmaDiffDataBuffe return b; } + /// public override ISigmaDiffDataBuffer Sub_V_V(ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b) { if (a.Length == 0) @@ -177,6 +185,7 @@ public override ISigmaDiffDataBuffer Sub_V_V(ISigmaDiffDataBuffer return b; } + /// public override ISigmaDiffDataBuffer Sub_S_V(float a, ISigmaDiffDataBuffer b) { if (b.Length == 0) @@ -197,6 +206,7 @@ public override ISigmaDiffDataBuffer Sub_S_V(float a, ISigmaDiffDataBuffe return b; } + /// public override ISigmaDiffDataBuffer Sub_V_S(ISigmaDiffDataBuffer a, float b) { if (a.Length == 0) @@ -217,6 +227,7 @@ public override ISigmaDiffDataBuffer Sub_V_S(ISigmaDiffDataBuffer return a; } + /// public override ISigmaDiffDataBuffer Mul_S_V(float a, ISigmaDiffDataBuffer b) { if (b.Length == 0) @@ -236,6 +247,7 @@ public override ISigmaDiffDataBuffer Mul_S_V(float a, ISigmaDiffDataBuffe return b; } + /// public override ISigmaDiffDataBuffer Mul_M_V(ShapedDataBufferView a, ISigmaDiffDataBuffer b) { if (a.Length * b.Length == 0) @@ -260,16 +272,19 @@ public override ISigmaDiffDataBuffer Mul_M_V(ShapedDataBufferView return z; } + /// public override ISigmaDiffDataBuffer Mul_M_V_Add_V(ShapedDataBufferView a, ISigmaDiffDataBuffer b, ISigmaDiffDataBuffer obj2) { throw new NotImplementedException(); } + /// public override float Mul_Dot_V_V(ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer n) { throw new NotImplementedException(); } + /// public override ISigmaDiffDataBuffer Mul_V_M(ISigmaDiffDataBuffer a, ShapedDataBufferView b) { if (a.Length * b.Length == 0) @@ -294,22 +309,26 @@ public override ISigmaDiffDataBuffer Mul_V_M(ISigmaDiffDataBuffer return z; } + /// public override FSharpOption> Solve_M_V(ShapedDataBufferView a, ISigmaDiffDataBuffer b) { throw new NotImplementedException(); } + /// public override FSharpOption> SolveSymmetric_M_V(ShapedDataBufferView a, ISigmaDiffDataBuffer b) { throw new NotImplementedException(); } + /// public override ISigmaDiffDataBuffer Diagonal_M(ShapedDataBufferView a) { throw new NotImplementedException(); } - public override ISigmaDiffDataBuffer Map_F_V(FSharpFunc a, ISigmaDiffDataBuffer b) + /// + public override ISigmaDiffDataBuffer Map_F_V(MapOp mapOp, FSharpFunc a, ISigmaDiffDataBuffer b) { if (b.Length == 0) { @@ -327,27 +346,35 @@ public override ISigmaDiffDataBuffer Map_F_V(FSharpFunc a, return b; } - public override ISigmaDiffDataBuffer Map2_F_V_V(FSharpFunc> f, ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b) + /// + public override ISigmaDiffDataBuffer Map_F_S_V(float other, MapOp mapOp, FSharpFunc function, ISigmaDiffDataBuffer value) + { + return Map_F_V(mapOp, function, value); + } + + /// + public override ISigmaDiffDataBuffer Map2_F_V_V(MapOp mapOp, FSharpFunc> function, ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b) { if (a.Length == 0) { - return Map2_F_V_V(f, CreateDataBuffer(new float[b.Length]), b); + return Map2_F_V_V(mapOp, function, CreateDataBuffer(new float[b.Length]), b); } if (b.Length == 0) { - return Map2_F_V_V(f, a, CreateDataBuffer(new float[a.Length])); + return Map2_F_V_V(mapOp, function, a, CreateDataBuffer(new float[a.Length])); } b = b.DeepCopy(); for (int i = 0; i < a.Length; i++) { - b.Data[i] = f.Invoke(a.Data[i + a.Offset]).Invoke(b.Data[i + b.Offset]); + b.Data[i] = function.Invoke(a.Data[i + a.Offset]).Invoke(b.Data[i + b.Offset]); } return b; } + /// public override ShapedDataBufferView Mul_Out_V_V(ISigmaDiffDataBuffer a, ISigmaDiffDataBuffer b) { if (a.Length * b.Length == 0) @@ -372,6 +399,7 @@ public override ShapedDataBufferView Mul_Out_V_V(ISigmaDiffDataBuffer(z, m, n); } + /// public override ShapedDataBufferView Add_M_M(ShapedDataBufferView a, ShapedDataBufferView b) { if (a.Length == 0) @@ -397,6 +425,7 @@ public override ShapedDataBufferView Add_M_M(ShapedDataBufferView return b; } + /// public override ShapedDataBufferView Add_S_M(float a, ShapedDataBufferView b) { if (b.Length == 0) @@ -417,11 +446,13 @@ public override ShapedDataBufferView Add_S_M(float a, ShapedDataBufferVie return b; } + /// public override ShapedDataBufferView Add_V_MCols(ISigmaDiffDataBuffer a, ShapedDataBufferView b) { throw new NotImplementedException(); } + /// public override ShapedDataBufferView Sub_M_M(ShapedDataBufferView a, ShapedDataBufferView b) { if (a.Length == 0) @@ -447,6 +478,7 @@ public override ShapedDataBufferView Sub_M_M(ShapedDataBufferView return a; } + /// public override ShapedDataBufferView Sub_M_S(ShapedDataBufferView a, float b) { if (a.Length == 0) @@ -467,6 +499,7 @@ public override ShapedDataBufferView Sub_M_S(ShapedDataBufferView return a; } + /// public override ShapedDataBufferView Sub_S_M(float a, ShapedDataBufferView b) { if (b.Length == 0) @@ -499,6 +532,7 @@ public override ShapedDataBufferView Sub_S_M(float a, ShapedDataBufferVie return b; } + /// public override ShapedDataBufferView Mul_M_M(ShapedDataBufferView a, ShapedDataBufferView b) { if (a.Length * b.Length == 0) @@ -522,6 +556,7 @@ public override ShapedDataBufferView Mul_M_M(ShapedDataBufferView return new ShapedDataBufferView(z, a.Rows, b.Cols); } + /// public override ShapedDataBufferView Mul_S_M(float a, ShapedDataBufferView b) { if (b.Length == 0) @@ -541,11 +576,13 @@ public override ShapedDataBufferView Mul_S_M(float a, ShapedDataBufferVie return b; } + /// public override ShapedDataBufferView Mul_M_M_Add_V_MCols(ShapedDataBufferView a, ShapedDataBufferView b, ISigmaDiffDataBuffer c) { throw new NotImplementedException(); } + /// public override ShapedDataBufferView Mul_Had_M_M(ShapedDataBufferView a, ShapedDataBufferView b) { if (a.Length == 0) @@ -571,11 +608,13 @@ public override ShapedDataBufferView Mul_Had_M_M(ShapedDataBufferView public override FSharpOption> Inverse_M(ShapedDataBufferView a) { throw new NotImplementedException(); } + /// public override FSharpOption Det_M(ShapedDataBufferView a) { if (a.Length == 0) @@ -611,6 +650,7 @@ public override FSharpOption Det_M(ShapedDataBufferView a) return FSharpOption.Some(det); } + /// public override ShapedDataBufferView Transpose_M(ShapedDataBufferView a) { if (a.Length == 0) @@ -628,7 +668,8 @@ public override ShapedDataBufferView Transpose_M(ShapedDataBufferView Map_F_M(FSharpFunc f, ShapedDataBufferView a) + /// + public override ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc f, ShapedDataBufferView a) { if (a.Length == 0) { @@ -646,7 +687,14 @@ public override ShapedDataBufferView Map_F_M(FSharpFunc f, return a; } - public override ShapedDataBufferView Map2_F_M_M(FSharpFunc> f, ShapedDataBufferView a, ShapedDataBufferView b) + /// + public override ShapedDataBufferView Map_F_S_M(float other, MapOp mapOp, FSharpFunc function, ShapedDataBufferView value) + { + return Map_F_M(mapOp, function, value); + } + + /// + public override ShapedDataBufferView Map2_F_M_M(MapOp mapOp, FSharpFunc> f, ShapedDataBufferView a, ShapedDataBufferView b) { if (a.Length == 0) { @@ -663,6 +711,7 @@ public override ShapedDataBufferView Map2_F_M_M(FSharpFunc public override ISigmaDiffDataBuffer ReshapeCopy_MRows_V(ShapedDataBufferView value) { if (value.Length == 0) @@ -673,6 +722,7 @@ public override ISigmaDiffDataBuffer ReshapeCopy_MRows_V(ShapedDataBuffer return value.DataBuffer.DeepCopy(); } + /// public override ShapedDataBufferView ReshapeCopy_V_MRows(int rows, ISigmaDiffDataBuffer value) { if (value.Length == 0) @@ -685,11 +735,13 @@ public override ShapedDataBufferView ReshapeCopy_V_MRows(int rows, ISigma return new ShapedDataBufferView(value.DeepCopy(), rows, n); } + /// public override ShapedDataBufferView RepeatReshapeCopy_V_MRows(int rows, ISigmaDiffDataBuffer value) { throw new NotImplementedException(); } + /// public override ShapedDataBufferView RepeatReshapeCopy_V_MCols(int cols, ISigmaDiffDataBuffer value) { throw new NotImplementedException(); diff --git a/Sigma.Core/MathAbstract/Backends/SigmaDiff/ADNDArray.cs b/Sigma.Core/MathAbstract/Backends/SigmaDiff/ADNDArray.cs index bea8e5cc..ddb17646 100644 --- a/Sigma.Core/MathAbstract/Backends/SigmaDiff/ADNDArray.cs +++ b/Sigma.Core/MathAbstract/Backends/SigmaDiff/ADNDArray.cs @@ -117,7 +117,8 @@ public ADNDArray(params long[] shape) Data = new DataBuffer(Length); } - public virtual object DeepCopy() + /// + public virtual object DeepCopy() { return new ADNDArray((IDataBuffer) Data.DeepCopy(), (long[]) Shape.Clone()).SetAssociatedHandler(AssociatedHandler); } From 5a4187fa7275d7149377b786a43143e8793e0376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Wed, 5 Apr 2017 19:59:38 +0200 Subject: [PATCH 05/40] Add partial map optimiser, fix debug handler, fix running time reporter time scale Add partial map optimiser, fix debug handler, fix running time reporter time scale --- .../Backends/Debugging/DebugHandler.cs | 12 ++-- .../DiffSharpFloat32BackendHandle.cs | 56 ++++++++++++++++++- .../Hooks/Reporters/RunningTimeReporter.cs | 2 +- Sigma.Tests.Internals.Backend/Program.cs | 13 +++-- 4 files changed, 70 insertions(+), 13 deletions(-) diff --git a/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs b/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs index 8453f69c..0d887008 100644 --- a/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs +++ b/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs @@ -76,8 +76,8 @@ public DebugHandler(IComputationHandler underlyingHandler, bool throwExceptionOn // kind of ugly but saves me from writing more solid property handling ThrowExceptionOnReport = throwExceptionOnReport; Enabled = enabled; - CheckNaN = false; - CheckInfinite = false; + CheckNaN = enabled; + CheckInfinite = enabled; } private void Report(string message, params object[] values) @@ -108,12 +108,12 @@ private INDArray CheckNice(INDArray array, string paramName = "unspecified") Report($"ndarray {paramName} has inconsistent rank ({array.Rank}) / shape (length {array.Length}).", array); } - if (CheckNaN && !UnderlyingHandler.IsNaN(array)) + if (CheckNaN && UnderlyingHandler.IsNaN(array)) { Report($"ndarray {paramName} contains NaN values.", array); } - if (CheckInfinite && !UnderlyingHandler.IsNotFinite(array)) + if (CheckInfinite && UnderlyingHandler.IsNotFinite(array)) { Report($"ndarray {paramName} contains infinite values.", array); } @@ -135,12 +135,12 @@ private INumber CheckNice(INumber number, string paramName = "unspecified") } else { - if (CheckNaN && !UnderlyingHandler.IsNaN(number)) + if (CheckNaN && UnderlyingHandler.IsNaN(number)) { Report($"number {paramName} is a NaN value.", number); } - if (CheckInfinite && !UnderlyingHandler.IsNotFinite(number)) + if (CheckInfinite && UnderlyingHandler.IsNotFinite(number)) { Report($"number {paramName} is an infinite value.", number); } diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs index 2e6800e0..79dda03a 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs @@ -668,6 +668,51 @@ public override ShapedDataBufferView Transpose_M(ShapedDataBufferView a) + { + if (mapOp.IsExp) + { + a = a.DeepCopy(); + int upper = a.DataBuffer.Offset + a.DataBuffer.Length; + for (int i = a.DataBuffer.Offset; i < upper; i++) + { + a.DataBuffer.Data[i] = a.DataBuffer.Data[i] * a.DataBuffer.Data[i]; + } + + return true; + } + else if (mapOp.IsSqrt) + { + a = a.DeepCopy(); + int upper = a.DataBuffer.Offset + a.DataBuffer.Length; + for (int i = a.DataBuffer.Offset; i < upper; i++) + { + a.DataBuffer.Data[i] = (float) Math.Sqrt(a.DataBuffer.Data[i]); + } + + return true; + } + + return false; + } + + private bool _InternalOptimisedMapOp_F_S_M(float other, MapOp mapOp, ref ShapedDataBufferView a) + { + if (mapOp.IsDiv) + { + a = a.DeepCopy(); + int upper = a.DataBuffer.Offset + a.DataBuffer.Length; + for (int i = a.DataBuffer.Offset; i < upper; i++) + { + a.DataBuffer.Data[i] = other / a.DataBuffer.Data[i]; + } + + return true; + } + + return false; + } + /// public override ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc f, ShapedDataBufferView a) { @@ -676,6 +721,11 @@ public override ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc(CreateDataBuffer(new float[0]), 0L, 0L); } + if (_InternalOptimisedMapOp_F_M(mapOp, ref a)) + { + return a; + } + a = a.DeepCopy(); int upper = a.DataBuffer.Offset + a.DataBuffer.Length; @@ -690,6 +740,11 @@ public override ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc public override ShapedDataBufferView Map_F_S_M(float other, MapOp mapOp, FSharpFunc function, ShapedDataBufferView value) { + if (_InternalOptimisedMapOp_F_S_M(other, mapOp, ref value)) + { + return value; + } + return Map_F_M(mapOp, function, value); } @@ -702,7 +757,6 @@ public override ShapedDataBufferView Map2_F_M_M(MapOp mapOp, FSharpFunc /// The time step. /// The interval span to average over. - public RunningTimeReporter(TimeStep timeStep, int averageSpan = 4) : base(Utils.TimeStep.Every(1, timeStep.TimeScale)) + public RunningTimeReporter(TimeStep timeStep, int averageSpan = 4) : base(timeStep) { DefaultTargetMode = TargetMode.Global; diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index ac83ab90..89ce6705 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -139,14 +139,17 @@ private static void SampleTrainerOperatorWorkerMnist() + FullyConnectedLayer.Construct(28 * 28) + FullyConnectedLayer.Construct(10) + OutputLayer.Construct(10) - + SoftMaxCrossEntropyCostLayer.Construct(); - trainer.TrainingDataIterator = new MinibatchIterator(20, dataset); - trainer.Optimiser = new AdagradOptimiser(baseLearningRate: 0.02); - trainer.Operator = new CpuSinglethreadedOperator(); + + SquaredDifferenceCostLayer.Construct(); + trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); + trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler(), enabled: false)); - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.25f)); + trainer.AddInitialiser("*.weights", new XavierInitialiser(scale: 5)); trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); + trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddHook(new RunningTimeReporter(TimeStep.Every(5, TimeScale.Iteration))); trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(5, TimeScale.Iteration))); trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(5, TimeScale.Iteration))); From 6ac7bb4fc93ad87f1006f1f07499fab042b5962a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Thu, 6 Apr 2017 20:59:30 +0200 Subject: [PATCH 06/40] Fix SigmaDiff backend optimised exponent, fix dataset record block deregister, fix criteria serialisation Fix SigmaDiff backend optimised exponent, fix dataset record block deregister, fix criteria serialisation --- Sigma.Core/Data/Datasets/Dataset.cs | 2021 +++++++++-------- Sigma.Core/Dependencies/DiffSharp.dll | Bin 2148352 -> 2149888 bytes .../Backends/Debugging/DebugHandler.cs | 8 +- .../DiffSharpFloat32BackendHandle.cs | 20 +- .../Training/Hooks/HookInvokeCriteria.cs | 1 + Sigma.Tests.Internals.Backend/Program.cs | 602 ++--- 6 files changed, 1332 insertions(+), 1320 deletions(-) diff --git a/Sigma.Core/Data/Datasets/Dataset.cs b/Sigma.Core/Data/Datasets/Dataset.cs index d84396f4..f26923a0 100644 --- a/Sigma.Core/Data/Datasets/Dataset.cs +++ b/Sigma.Core/Data/Datasets/Dataset.cs @@ -21,1028 +21,1037 @@ For full license see LICENSE in the root directory of this project. namespace Sigma.Core.Data.Datasets { - ///

- /// A default implementation of the IDataset interface. - /// Provides caching of entire blocks and reader data, partial extraction, unordered extraction, automatic block sizing, smart block loading. - /// - [Serializable] - public class Dataset : IDataset, ISerialisationNotifier - { - [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - /// - /// Automatically size blocks according to estimated data metrics (e.g. physical memory available, record size). - /// - public const int BlockSizeAuto = -1; - - /// - /// Assign all available data to the first block (one block fits it all - literally). - /// - public const int BlockSizeAll = -2; - - /// - public string Name { get; } - - /// - /// Indicate if this dataset is an online dataset (meaning new data might be added during runtime). - /// By default, this is assumed to be false, indicating a static dataset. - /// Note: Data iterators and may perform certain optimisations for static datasets, so set this to false if possible. - /// - public bool Online { get; set; } = false; - - /// - public int MaxConcurrentActiveBlocks { get; } = 24; //24 seems like a good number, right? - - /// - public long MaxTotalActiveBlockSizeBytes { get; } = SystemInformationUtils.GetAvailablePhysicalMemoryBytes() / 2; //default to half the available physical memory - - /// - public IReadOnlyCollection ActiveBlockIndices => _activeBlocks.Keys.ToList(); - - /// - public int ActiveBlockRegionCount => _activeBlocks.Count; - - /// - public int ActiveIndividualBlockCount { get { return _activeBlocks.Values.Sum(set => set.Count); } } - - /// - public int TargetBlockSizeRecords { get; private set; } - - /// - public string[] SectionNames { get; private set; } - - /// - public long TotalActiveBlockSizeBytes { get; private set; } - - public long TotalActiveRecords { get; private set; } - - /// - public int MaxBlocksInCache { get; set; } = int.MaxValue; - - /// - public long MaxBytesInCache { get; set; } = long.MaxValue; - - /// - /// Indicate whether this dataset should cache the raw reader data. - /// If disabled, only extracted data will be cached and once processed, it might be impossible to retrieve preceding record blocks (reader streams are assumed to be non-seekable). - /// - public bool AllowRawReadDataCaching { get; set; } = true; - - private readonly Dictionary> _activeBlocks; - private readonly Dictionary> _cachedBlocks; - private readonly ICacheProvider _cacheProvider; - - private int _lastReadRawDataBlockIndex = -1; - private long _totalCachedBlockSizeBytes; - private int _lastAvailableBlockIndex = int.MaxValue; - private readonly ISet _recordExtractors; - - private readonly bool _autoSetBlockSize; - private bool _autoSetExternalChangeBlockSize; - - // TODO fix available blocks semaphore logic - // the waitones/releases are inconsistent, because blocks aren't always actually allocated, such as null returns are not considered - [NonSerialized] - private Semaphore _availableBlocksSemaphore; - private int _availableBlocksSemaphoreState; - - /// - /// Create a dataset with a certain unique name and the record extractors to use. - /// - /// The unique dataset name. - /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, params IRecordExtractor[] recordExtractors) : this(name, BlockSizeAuto, recordExtractors) - { - } - - /// - /// Create a dataset with a certain unique name, target block size in records and the record extractors to use. - /// - /// The unique dataset name. - /// The target block size for records. May also be or . - /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, int blockSizeRecords, params IRecordExtractor[] recordExtractors) - : this(name, blockSizeRecords, new DiskCacheProvider(SigmaEnvironment.Globals.Get("cache_path") + name), true, recordExtractors) - { - } - - /// - /// Create a dataset with a certain unique name, target block size in records, specific cache provider and the record extractors to use. - /// - /// The unique dataset name. - /// The target block size for records. May also be or . - /// The cache provider to use for caching record blocks and raw reader data. - /// Indicate whether the cache provider should be flushed (cleared) before use. Only disable if block size and extractors used do not change (otherwise undefined behaviour). - /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, int blockSizeRecords, ICacheProvider cacheProvider, bool flushCache = true, params IRecordExtractor[] recordExtractors) - { - if (name == null) - { - throw new ArgumentNullException(nameof(name)); - } - - if (recordExtractors == null) - { - throw new ArgumentNullException(nameof(recordExtractors)); - } - - if (recordExtractors.Length == 0) - { - throw new ArgumentException("Datasets require at least one record extractor, but none were given."); - } - - if (cacheProvider == null) - { - throw new ArgumentNullException(nameof(cacheProvider)); - } - - switch (blockSizeRecords) { - case BlockSizeAll: - //just set to maximum amount of records, extracting returns the maximum available anyway and we can't know the actual availability yet - TargetBlockSizeRecords = int.MaxValue; - break; - case BlockSizeAuto: - //somewhat temporary guesstimate, should probably expose the individual parameters - const long estimatedRecordSizeBytes = 1024; - const double memoryToConsume = 0.2f; - const long optimalNumberBlocks = 8; - const int maxBlockSizeRecords = 4096; - long availableSystemMemory = SystemInformationUtils.GetAvailablePhysicalMemoryBytes(); - - TargetBlockSizeRecords = Math.Min(maxBlockSizeRecords, (int) (availableSystemMemory * memoryToConsume / estimatedRecordSizeBytes / optimalNumberBlocks)); - - _autoSetBlockSize = true; - break; - default: - if (blockSizeRecords == 0 || blockSizeRecords < -2) - { - throw new ArgumentException($"Block size in records must be either BLOCK_SIZE_ALL, BLOCK_SIZE_AUTO or > 0, but given block size was {blockSizeRecords}."); - } - else - { - TargetBlockSizeRecords = blockSizeRecords; - } - break; - } - - Name = name; - AnalyseExtractors(recordExtractors); - - _cacheProvider = cacheProvider; - _recordExtractors = new HashSet(recordExtractors); - - _availableBlocksSemaphore = new Semaphore(MaxConcurrentActiveBlocks, MaxConcurrentActiveBlocks); - _availableBlocksSemaphoreState = MaxConcurrentActiveBlocks; - - _activeBlocks = new Dictionary>(); - _cachedBlocks = new Dictionary>(); - - if (flushCache) - { - _logger.Debug($"Flushing all caches for dataset \"{Name}\" as flushCache flag was set..."); - - InvalidateAndClearCaches(); - - _logger.Debug($"Done flushing all caches for dataset \"{Name}.\""); - } - } - - /// - /// Called before this object is serialised. - /// - public void OnSerialising() - { - } - - /// - /// Called after this object was serialised. - /// - public void OnSerialised() - { - } - - /// - /// Called after this object was de-serialised. - /// - public void OnDeserialised() - { - InvalidateAndClearCaches(); - _availableBlocksSemaphore = new Semaphore(MaxConcurrentActiveBlocks - ActiveIndividualBlockCount, MaxConcurrentActiveBlocks); - } - - public IDataset[] SplitBlockwise(params int[] parts) - { - return SplitBlockwise(this, parts); - } - - public IDataset[] SplitRecordwise(params double[] parts) - { - return SplitRecordwise(this, parts); - } - - public bool TrySetBlockSize(int blockSizeRecords) - { - if (blockSizeRecords == TargetBlockSizeRecords) - { - //nothing to do here - return true; - } - - if (!_autoSetBlockSize) - { - _logger.Debug($"Cannot change block size as block size was not set automatically (attempted to change block size to {blockSizeRecords}."); - - return false; - } - - if (_activeBlocks.Count > 0 || _cachedBlocks.Count > 0) - { - _logger.Debug($"Cannot change block size as {_activeBlocks.Count + _cachedBlocks.Count} blocks were already fetched and are active or cached."); - - return false; - } - - if (_autoSetExternalChangeBlockSize && blockSizeRecords != TargetBlockSizeRecords) - { - _logger.Debug($"Cannot change block size to {blockSizeRecords}, block size is incompatible with another external block size change request (other request: {TargetBlockSizeRecords})"); - - return false; - } - - _autoSetExternalChangeBlockSize = true; - TargetBlockSizeRecords = blockSizeRecords; - - return true; - } - - private void AnalyseExtractors(IEnumerable extractors) - { - ISet sectionNames = new HashSet(); - - int index = 0; - foreach (IRecordExtractor extractor in extractors) - { - if (extractor == null) - { - throw new ArgumentNullException($"Extractor at index {index} was null."); - } - - if (extractor.SectionNames == null) - { - throw new ArgumentNullException($"Section names field in extractor {extractor} was null (field has to be set by extractor)."); - } - - string[] extractorSectionNames = extractor.SectionNames; - - foreach (string sectionName in extractorSectionNames) - { - if (sectionNames.Contains(sectionName)) - { - throw new ArgumentException($"Section name collision: duplicate section name {sectionName} detected for extractor {extractor}."); - } - else - { - sectionNames.Add(sectionName); - } - } - - index++; - } - - SectionNames = sectionNames.ToArray(); - } - - public int GetNumberOfLoadedInactiveCachedBlocks() - { - return _cachedBlocks.Values.SelectMany(blockSet => blockSet).Count(block => block.Loaded); - } - - public bool CanFetchBlocksAfter(int blockIndex) - { - return blockIndex <= _lastAvailableBlockIndex; - } - - public async Task> FetchBlockAsync(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) - { - //TODO check if block even could be fetched to not waste thread resources if shouldWaitUntilAvailable is false anyway - - return await Task.Run(() => FetchBlock(blockIndex, handler, shouldWaitUntilAvailable)); - } - - public IDictionary FetchBlock(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) - { - Dictionary block = FetchBlockConstrained(blockIndex, handler); - - //block could be fetched directly without violating any constraints, return successfully - if (block != null) - { - if (block.Count == 0) - { - throw new InvalidOperationException("Fetched block did not contain any named elements (was empty; is the extractor output correct?)."); - } - - RegisterActiveBlock(block, blockIndex, handler); - - return block; - } - else - { - if (blockIndex >= _lastAvailableBlockIndex) - { - return null; - } - - if (shouldWaitUntilAvailable) - { - _logger.Debug($"Could not directly load block with index {blockIndex} for handler {handler} and shouldWaitUntilAvailable flag is set to true, waiting for available space..."); - - return FetchBlockWhenAvailable(blockIndex, handler); - } - else - { - return null; - } - } - } - - private void RegisterActiveBlock(Dictionary block, int blockIndex, IComputationHandler handler) - { - INDArray firstNamedBlock = block[block.First().Key]; - - if (IsBlockActive(blockIndex, handler)) - { - //block already registered as active, nothing to do here - return; - } - - RecordBlock recordBlock = new RecordBlock(block, blockIndex, firstNamedBlock.Shape[0], - handler.GetSizeBytes(block.Values.ToArray()), handler) - { Loaded = true, Active = true }; - - lock (this) - { - TotalActiveBlockSizeBytes += recordBlock.EstimatedSizeBytes; - TotalActiveRecords += recordBlock.NumberRecords; - - if (!_activeBlocks.ContainsKey(blockIndex)) - { - _activeBlocks.Add(blockIndex, new HashSet()); - } - - _activeBlocks[blockIndex].Add(recordBlock); - } - } - - private void DeregisterActiveBlock(RecordBlock recordBlock) - { - if (!IsBlockActive(recordBlock.BlockIndex, recordBlock.Handler)) - { - //block that should be de-registered is not even registered - return; - } - - lock (this) - { - TotalActiveBlockSizeBytes -= recordBlock.EstimatedSizeBytes; - TotalActiveRecords -= recordBlock.NumberRecords; - - _activeBlocks[recordBlock.BlockIndex].Remove(recordBlock); - - if (_activeBlocks[recordBlock.BlockIndex].Count == 0) - { - _activeBlocks.Remove(recordBlock.BlockIndex); - } - } - } - - private void RegisterCachedBlock(Dictionary block, int blockIndex, IComputationHandler handler, bool keepReference) - { - if (IsBlockCached(blockIndex, handler)) - { - //block's already cached, nothing to do here - return; - } - - if (!_cachedBlocks.ContainsKey(blockIndex)) - { - _cachedBlocks.Add(blockIndex, new HashSet()); - } - - WeakRecordBlock recordBlock = new WeakRecordBlock(keepReference ? block : null, blockIndex, block.First().Value.Shape[0], handler.GetSizeBytes(block.Values.ToArray()), handler); - - recordBlock.Loaded = false; - - _cachedBlocks[blockIndex].Add(recordBlock); - } - - /// - /// Invalidate and clear all caches associated with this dataset. - /// WARNING: Removing cache entries may cause certain datasets to load much more slowly or even incorrectly. - /// Legitimate use cases include removing cache entries for old datasets or changing extractors. - /// - public void InvalidateAndClearCaches() - { - _logger.Debug("Invalidating and clearing all caches..."); - - _cacheProvider.RemoveAll(); - _cachedBlocks.Clear(); - _totalCachedBlockSizeBytes = 0L; - - _logger.Debug("Done invalidating and clearing all caches."); - } - - private Dictionary FetchBlockWhenAvailable(int blockIndex, IComputationHandler handler) - { - while (true) - { - _logger.Debug($"Attempting to extract block region for request for block index {blockIndex} for handler {handler}, checking if it fits all constraints..."); - - Dictionary block = FetchBlockConstrained(blockIndex, handler); - - //if block != null we could fetch the block successfully without violating any constraints - if (block != null) - { - RegisterActiveBlock(block, blockIndex, handler); - - return block; - } - else - { - //we cannot retrieve any more blocks and shouldn't keep trying - if (blockIndex >= _lastAvailableBlockIndex) - { - return null; - } - - _logger.Debug($"Request for block with index {blockIndex} for handler {handler} was returned to the queue, seems to be violating constraints..."); - } - } - } - - private Dictionary FetchBlockConstrained(int blockIndex, IComputationHandler handler) - { - if (ActiveIndividualBlockCount >= MaxConcurrentActiveBlocks) - { - _logger.Debug($"Unable to fetch block due to MaxConcurrentActiveBlocks constraint of {MaxConcurrentActiveBlocks}."); - - return null; - } - - Dictionary block = LoadAndExtractBlockWhenAvailable(blockIndex, handler); - - //there was nothing to load and extract, most likely end of stream - if (block == null) - { - return null; - } - - long blockSizeBytes = handler.GetSizeBytes(block.Values.ToArray()); - - if (TotalActiveBlockSizeBytes + blockSizeBytes > MaxTotalActiveBlockSizeBytes) - { - _logger.Debug($"Unable to keep requested block {blockIndex} for handler {handler} in memory due to MaxTotalActiveBlockSizeBytes constraint of {MaxTotalActiveBlockSizeBytes} bytes (block of size {blockSizeBytes} would exceed constraint by {TotalActiveBlockSizeBytes + blockSizeBytes - MaxTotalActiveBlockSizeBytes} bytes.)."); - - CacheBlockConstrained(block, blockIndex, handler); - - return null; - } - - return block; - } - - private Dictionary LoadAndExtractBlockWhenAvailable(int blockIndex, IComputationHandler handler) - { - //this method takes care of - // - checking whether the index is already loaded and active and then converts it - // - or checking whether the index is already cached in the right format and loads - // - or if none of that, loads and extracts from the original extractors - - //check whether a block with the same index and format is already active - if (_activeBlocks.ContainsKey(blockIndex)) - { - Dictionary block = GetBestMatchedBlockWhenAvailable(_activeBlocks[blockIndex], handler); - - if (block != null) - { - return block; - } - } - - //check whether a block with the same index and format is already loaded and cached but not active - if (_cachedBlocks.ContainsKey(blockIndex)) - { - Dictionary block = GetBestMatchedBlockWhenAvailable(_cachedBlocks[blockIndex], handler); - - if (block != null) - { - return block; - } - } - - lock (_cacheProvider) - { - string blockIdentifierInCache = $"extracted.{blockIndex}.{handler.DataType.Identifier}"; - - //check whether a block of the same index and format is cached in the cache provider - if (_cacheProvider.IsCached(blockIdentifierInCache)) - { - Dictionary block = _cacheProvider.Load>(blockIdentifierInCache); - - //if its != null we could read it correctly in the right format - if (block != null) - { - //register this cache entry as a properly loaded block in case the cache wasn't flushed and the cache map is outdated - RegisterCachedBlock(block, blockIndex, handler, keepReference: false); - - return block; - } - } - } - - //_availableBlocksSemaphore.WaitOne(); - //_availableBlocksSemaphoreState--; - - return LoadAndExtractRaw(blockIndex, handler); - } - - private Dictionary GetBestMatchedBlockWhenAvailable(IEnumerable blocks, IComputationHandler handler) - { - RecordBlockBase bestMatchedBlock = null; - - foreach (RecordBlockBase otherBlock in blocks) - { - if (otherBlock.Loaded && handler.CanConvert(otherBlock.FirstNamedBlock, otherBlock.Handler)) - { - if (handler.IsInterchangeable(otherBlock.Handler)) - { - //no need to look any further, we already found the perfect match and can return without conversion - return otherBlock.NamedBlockSections; - } - - bestMatchedBlock = otherBlock; - } - } - - if (bestMatchedBlock == null) - { - return null; - } - - //_availableBlocksSemaphore.WaitOne(); - //_availableBlocksSemaphoreState--; - - return ConvertNamedBlocks(bestMatchedBlock.NamedBlockSections, handler); - } - - private static Dictionary ConvertNamedBlocks(Dictionary namedBlockSections, IComputationHandler handler) - { - Dictionary convertedNamedBlocks = new Dictionary(); - - foreach (string name in namedBlockSections.Keys) - { - convertedNamedBlocks.Add(name, handler.Convert(namedBlockSections[name], handler)); - } - - return convertedNamedBlocks; - } - - private Dictionary LoadAndExtractRaw(int blockIndex, IComputationHandler handler) - { - // this cannot run concurrently as cache entries can only be read and written once without wasting resources and / or corrupting cache state - lock (this) - { - if (blockIndex >= _lastReadRawDataBlockIndex) - { - object[] lastRawData = null; - - for (int tempBlockIndex = _lastReadRawDataBlockIndex + 1; tempBlockIndex <= blockIndex; tempBlockIndex++) - { - lastRawData = LoadDirect(tempBlockIndex, handler); - - //looks like we couldn't read any more blocks, maybe reached the end of the underlying source streams - if (lastRawData == null) - { - return null; - } - - if (AllowRawReadDataCaching) - { - _cacheProvider.Store($"raw.{tempBlockIndex}", lastRawData); - } - } - - return ExtractDirectFrom(lastRawData, blockIndex, handler); - } - else - { - if (AllowRawReadDataCaching) - { - string cacheIdentifier = $"raw.{blockIndex}"; - - if (!_cacheProvider.IsCached(cacheIdentifier)) - { - throw new InvalidOperationException($"Unable to load cached entry for block {blockIndex} for handler {handler}, cache entry does not exist in provider {_cacheProvider}."); - } - - return ExtractDirectFrom(_cacheProvider.Load(cacheIdentifier), blockIndex, handler); - } - else - { - throw new InvalidOperationException($"Cannot load and extract raw block with index {blockIndex} because AllowRawReadDataCaching is set to false and last read position is at {_lastReadRawDataBlockIndex}."); - } - } - } - } - - private object[] LoadDirect(int blockIndex, IComputationHandler handler) - { - IList rawDataPerExtractor = new List(); - - PrepareExtractors(); - - foreach (IRecordExtractor extractor in _recordExtractors) - { - object data; - - lock (extractor.Reader) - { - data = extractor.Reader.Read(TargetBlockSizeRecords); - } - - //check if block reader could read anything, if not, return null - if (data == null) - { - _lastAvailableBlockIndex = blockIndex - 1; - - _logger.Debug($"Cannot load block {blockIndex} for handler {handler}, the underlying stream for extractor {extractor} is unable to retrieve any more records. End of stream most likely reached."); - - return null; - } - - rawDataPerExtractor.Add(data); - } - - if (blockIndex > _lastReadRawDataBlockIndex) - { - _lastReadRawDataBlockIndex = blockIndex; - } - - return rawDataPerExtractor.ToArray(); - } - - private Dictionary ExtractDirectFrom(object[] data, int blockIndex, IComputationHandler handler) - { - Dictionary namedBlocks = new Dictionary(); - - ITaskObserver prepareTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Prepare, "preparing extractors for dataset \"" + Name + "\"", indeterminate: true); - - PrepareExtractors(); - - SigmaEnvironment.TaskManager.EndTask(prepareTask); - - ITaskObserver extractTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Extract, $"extracting block {blockIndex} for dataset \"{Name}\"", indeterminate: true); - - int extractorIndex = 0; - foreach (IRecordExtractor extractor in _recordExtractors) - { - _logger.Debug($"Extracting hierarchically from extractor {extractor} at index {extractorIndex}..."); - - Dictionary subNamedBlock = extractor.ExtractHierarchicalFrom(data[extractorIndex++], TargetBlockSizeRecords, handler); + /// + /// A default implementation of the IDataset interface. + /// Provides caching of entire blocks and reader data, partial extraction, unordered extraction, automatic block sizing, smart block loading. + /// + [Serializable] + public class Dataset : IDataset, ISerialisationNotifier + { + [NonSerialized] + private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + /// + /// Automatically size blocks according to estimated data metrics (e.g. physical memory available, record size). + /// + public const int BlockSizeAuto = -1; + + /// + /// Assign all available data to the first block (one block fits it all - literally). + /// + public const int BlockSizeAll = -2; + + /// + public string Name { get; } + + /// + /// Indicate if this dataset is an online dataset (meaning new data might be added during runtime). + /// By default, this is assumed to be false, indicating a static dataset. + /// Note: Data iterators and may perform certain optimisations for static datasets, so set this to false if possible. + /// + public bool Online { get; set; } = false; + + /// + public int MaxConcurrentActiveBlocks { get; } = 24; //24 seems like a good number, right? + + /// + public long MaxTotalActiveBlockSizeBytes { get; } = SystemInformationUtils.GetAvailablePhysicalMemoryBytes() / 2; //default to half the available physical memory + + /// + public IReadOnlyCollection ActiveBlockIndices => _activeBlocks.Keys.ToList(); + + /// + public int ActiveBlockRegionCount => _activeBlocks.Count; + + /// + public int ActiveIndividualBlockCount { get { return _activeBlocks.Values.Sum(set => set.Count); } } + + /// + public int TargetBlockSizeRecords { get; private set; } + + /// + public string[] SectionNames { get; private set; } + + /// + public long TotalActiveBlockSizeBytes { get; private set; } + + public long TotalActiveRecords { get; private set; } + + /// + public int MaxBlocksInCache { get; set; } = int.MaxValue; + + /// + public long MaxBytesInCache { get; set; } = long.MaxValue; + + /// + /// Indicate whether this dataset should cache the raw reader data. + /// If disabled, only extracted data will be cached and once processed, it might be impossible to retrieve preceding record blocks (reader streams are assumed to be non-seekable). + /// + public bool AllowRawReadDataCaching { get; set; } = true; + + private readonly Dictionary> _activeBlocks; + private readonly Dictionary> _cachedBlocks; + private readonly ICacheProvider _cacheProvider; + + private int _lastReadRawDataBlockIndex = -1; + private long _totalCachedBlockSizeBytes; + private int _lastAvailableBlockIndex = int.MaxValue; + private readonly ISet _recordExtractors; + + private readonly bool _autoSetBlockSize; + private bool _autoSetExternalChangeBlockSize; + + // TODO fix available blocks semaphore logic + // the waitones/releases are inconsistent, because blocks aren't always actually allocated, such as null returns are not considered + [NonSerialized] + private Semaphore _availableBlocksSemaphore; + private int _availableBlocksSemaphoreState; + + /// + /// Create a dataset with a certain unique name and the record extractors to use. + /// + /// The unique dataset name. + /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. + public Dataset(string name, params IRecordExtractor[] recordExtractors) : this(name, BlockSizeAuto, recordExtractors) + { + } + + /// + /// Create a dataset with a certain unique name, target block size in records and the record extractors to use. + /// + /// The unique dataset name. + /// The target block size for records. May also be or . + /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. + public Dataset(string name, int blockSizeRecords, params IRecordExtractor[] recordExtractors) + : this(name, blockSizeRecords, new DiskCacheProvider(SigmaEnvironment.Globals.Get("cache_path") + name), true, recordExtractors) + { + } + + /// + /// Create a dataset with a certain unique name, target block size in records, specific cache provider and the record extractors to use. + /// + /// The unique dataset name. + /// The target block size for records. May also be or . + /// The cache provider to use for caching record blocks and raw reader data. + /// Indicate whether the cache provider should be flushed (cleared) before use. Only disable if block size and extractors used do not change (otherwise undefined behaviour). + /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. + public Dataset(string name, int blockSizeRecords, ICacheProvider cacheProvider, bool flushCache = true, params IRecordExtractor[] recordExtractors) + { + if (name == null) + { + throw new ArgumentNullException(nameof(name)); + } + + if (recordExtractors == null) + { + throw new ArgumentNullException(nameof(recordExtractors)); + } + + if (recordExtractors.Length == 0) + { + throw new ArgumentException("Datasets require at least one record extractor, but none were given."); + } + + if (cacheProvider == null) + { + throw new ArgumentNullException(nameof(cacheProvider)); + } + + switch (blockSizeRecords) + { + case BlockSizeAll: + //just set to maximum amount of records, extracting returns the maximum available anyway and we can't know the actual availability yet + TargetBlockSizeRecords = int.MaxValue; + break; + case BlockSizeAuto: + //somewhat temporary guesstimate, should probably expose the individual parameters + const long estimatedRecordSizeBytes = 1024; + const double memoryToConsume = 0.2f; + const long optimalNumberBlocks = 8; + const int maxBlockSizeRecords = 4096; + long availableSystemMemory = SystemInformationUtils.GetAvailablePhysicalMemoryBytes(); + + TargetBlockSizeRecords = Math.Min(maxBlockSizeRecords, (int)(availableSystemMemory * memoryToConsume / estimatedRecordSizeBytes / optimalNumberBlocks)); + + _autoSetBlockSize = true; + break; + default: + if (blockSizeRecords == 0 || blockSizeRecords < -2) + { + throw new ArgumentException($"Block size in records must be either BLOCK_SIZE_ALL, BLOCK_SIZE_AUTO or > 0, but given block size was {blockSizeRecords}."); + } + else + { + TargetBlockSizeRecords = blockSizeRecords; + } + break; + } + + Name = name; + AnalyseExtractors(recordExtractors); + + _cacheProvider = cacheProvider; + _recordExtractors = new HashSet(recordExtractors); + + _availableBlocksSemaphore = new Semaphore(MaxConcurrentActiveBlocks, MaxConcurrentActiveBlocks); + _availableBlocksSemaphoreState = MaxConcurrentActiveBlocks; + + _activeBlocks = new Dictionary>(); + _cachedBlocks = new Dictionary>(); + + if (flushCache) + { + _logger.Debug($"Flushing all caches for dataset \"{Name}\" as flushCache flag was set..."); + + InvalidateAndClearCaches(); + + _logger.Debug($"Done flushing all caches for dataset \"{Name}.\""); + } + } + + /// + /// Called before this object is serialised. + /// + public void OnSerialising() + { + } + + /// + /// Called after this object was serialised. + /// + public void OnSerialised() + { + } + + /// + /// Called after this object was de-serialised. + /// + public void OnDeserialised() + { + InvalidateAndClearCaches(); + _availableBlocksSemaphore = new Semaphore(MaxConcurrentActiveBlocks - ActiveIndividualBlockCount, MaxConcurrentActiveBlocks); + } + + public IDataset[] SplitBlockwise(params int[] parts) + { + return SplitBlockwise(this, parts); + } + + public IDataset[] SplitRecordwise(params double[] parts) + { + return SplitRecordwise(this, parts); + } + + public bool TrySetBlockSize(int blockSizeRecords) + { + if (blockSizeRecords == TargetBlockSizeRecords) + { + //nothing to do here + return true; + } + + if (!_autoSetBlockSize) + { + _logger.Debug($"Cannot change block size as block size was not set automatically (attempted to change block size to {blockSizeRecords}."); + + return false; + } + + if (_activeBlocks.Count > 0 || _cachedBlocks.Count > 0) + { + _logger.Debug($"Cannot change block size as {_activeBlocks.Count + _cachedBlocks.Count} blocks were already fetched and are active or cached."); + + return false; + } + + if (_autoSetExternalChangeBlockSize && blockSizeRecords != TargetBlockSizeRecords) + { + _logger.Debug($"Cannot change block size to {blockSizeRecords}, block size is incompatible with another external block size change request (other request: {TargetBlockSizeRecords})"); + + return false; + } + + _autoSetExternalChangeBlockSize = true; + TargetBlockSizeRecords = blockSizeRecords; + + return true; + } + + private void AnalyseExtractors(IEnumerable extractors) + { + ISet sectionNames = new HashSet(); + + int index = 0; + foreach (IRecordExtractor extractor in extractors) + { + if (extractor == null) + { + throw new ArgumentNullException($"Extractor at index {index} was null."); + } + + if (extractor.SectionNames == null) + { + throw new ArgumentNullException($"Section names field in extractor {extractor} was null (field has to be set by extractor)."); + } + + string[] extractorSectionNames = extractor.SectionNames; + + foreach (string sectionName in extractorSectionNames) + { + if (sectionNames.Contains(sectionName)) + { + throw new ArgumentException($"Section name collision: duplicate section name {sectionName} detected for extractor {extractor}."); + } + else + { + sectionNames.Add(sectionName); + } + } + + index++; + } + + SectionNames = sectionNames.ToArray(); + } + + public int GetNumberOfLoadedInactiveCachedBlocks() + { + return _cachedBlocks.Values.SelectMany(blockSet => blockSet).Count(block => block.Loaded); + } + + public bool CanFetchBlocksAfter(int blockIndex) + { + return blockIndex <= _lastAvailableBlockIndex; + } + + public async Task> FetchBlockAsync(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) + { + //TODO check if block even could be fetched to not waste thread resources if shouldWaitUntilAvailable is false anyway + + return await Task.Run(() => FetchBlock(blockIndex, handler, shouldWaitUntilAvailable)); + } + + public IDictionary FetchBlock(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) + { + Dictionary block = FetchBlockConstrained(blockIndex, handler); + + //block could be fetched directly without violating any constraints, return successfully + if (block != null) + { + if (block.Count == 0) + { + throw new InvalidOperationException("Fetched block did not contain any named elements (was empty; is the extractor output correct?)."); + } + + RegisterActiveBlock(block, blockIndex, handler); + + return block; + } + else + { + if (blockIndex >= _lastAvailableBlockIndex) + { + return null; + } + + if (shouldWaitUntilAvailable) + { + _logger.Debug($"Could not directly load block with index {blockIndex} for handler {handler} and shouldWaitUntilAvailable flag is set to true, waiting for available space..."); + + return FetchBlockWhenAvailable(blockIndex, handler); + } + else + { + return null; + } + } + } + + private void RegisterActiveBlock(Dictionary block, int blockIndex, IComputationHandler handler) + { + INDArray firstNamedBlock = block[block.First().Key]; + + if (IsBlockActive(blockIndex, handler)) + { + //block already registered as active, nothing to do here + return; + } + + RecordBlock recordBlock = new RecordBlock(block, blockIndex, firstNamedBlock.Shape[0], + handler.GetSizeBytes(block.Values.ToArray()), handler) + { Loaded = true, Active = true }; + + lock (this) + { + TotalActiveBlockSizeBytes += recordBlock.EstimatedSizeBytes; + TotalActiveRecords += recordBlock.NumberRecords; + + if (!_activeBlocks.ContainsKey(blockIndex)) + { + _activeBlocks.Add(blockIndex, new HashSet()); + } + + _activeBlocks[blockIndex].Add(recordBlock); + } + } + + private void DeregisterActiveBlock(RecordBlock recordBlock) + { + if (!IsBlockActive(recordBlock.BlockIndex, recordBlock.Handler)) + { + //block that should be de-registered is not even registered + return; + } + + lock (this) + { + TotalActiveBlockSizeBytes -= recordBlock.EstimatedSizeBytes; + TotalActiveRecords -= recordBlock.NumberRecords; + + _activeBlocks[recordBlock.BlockIndex].Remove(recordBlock); + + if (_activeBlocks[recordBlock.BlockIndex].Count == 0) + { + _activeBlocks.Remove(recordBlock.BlockIndex); + } + } + } + + private void RegisterCachedBlock(Dictionary block, int blockIndex, IComputationHandler handler, bool keepReference) + { + if (IsBlockCached(blockIndex, handler)) + { + //block's already cached, nothing to do here + return; + } + + if (!_cachedBlocks.ContainsKey(blockIndex)) + { + _cachedBlocks.Add(blockIndex, new HashSet()); + } + + WeakRecordBlock recordBlock = new WeakRecordBlock(keepReference ? block : null, blockIndex, block.First().Value.Shape[0], handler.GetSizeBytes(block.Values.ToArray()), handler); + + recordBlock.Loaded = false; + + _cachedBlocks[blockIndex].Add(recordBlock); + } + + /// + /// Invalidate and clear all caches associated with this dataset. + /// WARNING: Removing cache entries may cause certain datasets to load much more slowly or even incorrectly. + /// Legitimate use cases include removing cache entries for old datasets or changing extractors. + /// + public void InvalidateAndClearCaches() + { + _logger.Debug("Invalidating and clearing all caches..."); + + _cacheProvider.RemoveAll(); + _cachedBlocks.Clear(); + _totalCachedBlockSizeBytes = 0L; + + _logger.Debug("Done invalidating and clearing all caches."); + } + + private Dictionary FetchBlockWhenAvailable(int blockIndex, IComputationHandler handler) + { + while (true) + { + _logger.Debug($"Attempting to extract block region for request for block index {blockIndex} for handler {handler}, checking if it fits all constraints..."); + + Dictionary block = FetchBlockConstrained(blockIndex, handler); + + //if block != null we could fetch the block successfully without violating any constraints + if (block != null) + { + RegisterActiveBlock(block, blockIndex, handler); + + return block; + } + else + { + //we cannot retrieve any more blocks and shouldn't keep trying + if (blockIndex >= _lastAvailableBlockIndex) + { + return null; + } + + _logger.Debug($"Request for block with index {blockIndex} for handler {handler} was returned to the queue, seems to be violating constraints..."); + } + } + } + + private Dictionary FetchBlockConstrained(int blockIndex, IComputationHandler handler) + { + if (ActiveIndividualBlockCount >= MaxConcurrentActiveBlocks) + { + _logger.Debug($"Unable to fetch block due to MaxConcurrentActiveBlocks constraint of {MaxConcurrentActiveBlocks}."); + + return null; + } + + Dictionary block = LoadAndExtractBlockWhenAvailable(blockIndex, handler); + + //there was nothing to load and extract, most likely end of stream + if (block == null) + { + return null; + } + + long blockSizeBytes = handler.GetSizeBytes(block.Values.ToArray()); + + if (TotalActiveBlockSizeBytes + blockSizeBytes > MaxTotalActiveBlockSizeBytes) + { + _logger.Debug($"Unable to keep requested block {blockIndex} for handler {handler} in memory due to MaxTotalActiveBlockSizeBytes constraint of {MaxTotalActiveBlockSizeBytes} bytes (block of size {blockSizeBytes} would exceed constraint by {TotalActiveBlockSizeBytes + blockSizeBytes - MaxTotalActiveBlockSizeBytes} bytes.)."); + + CacheBlockConstrained(block, blockIndex, handler); + + return null; + } + + return block; + } + + private Dictionary LoadAndExtractBlockWhenAvailable(int blockIndex, IComputationHandler handler) + { + //this method takes care of + // - checking whether the index is already loaded and active and then converts it + // - or checking whether the index is already cached in the right format and loads + // - or if none of that, loads and extracts from the original extractors + + //check whether a block with the same index and format is already active + if (_activeBlocks.ContainsKey(blockIndex)) + { + Dictionary block = GetBestMatchedBlockWhenAvailable(_activeBlocks[blockIndex], handler); + + if (block != null) + { + return block; + } + } + + //check whether a block with the same index and format is already loaded and cached but not active + if (_cachedBlocks.ContainsKey(blockIndex)) + { + Dictionary block = GetBestMatchedBlockWhenAvailable(_cachedBlocks[blockIndex], handler); + + if (block != null) + { + return block; + } + } + + lock (_cacheProvider) + { + string blockIdentifierInCache = $"extracted.{blockIndex}.{handler.DataType.Identifier}"; + + //check whether a block of the same index and format is cached in the cache provider + if (_cacheProvider.IsCached(blockIdentifierInCache)) + { + Dictionary block = _cacheProvider.Load>(blockIdentifierInCache); + + //if its != null we could read it correctly in the right format + if (block != null) + { + //register this cache entry as a properly loaded block in case the cache wasn't flushed and the cache map is outdated + RegisterCachedBlock(block, blockIndex, handler, keepReference: false); + + return block; + } + } + } + + //_availableBlocksSemaphore.WaitOne(); + //_availableBlocksSemaphoreState--; + + return LoadAndExtractRaw(blockIndex, handler); + } + + private Dictionary GetBestMatchedBlockWhenAvailable(IEnumerable blocks, IComputationHandler handler) + { + RecordBlockBase bestMatchedBlock = null; + + foreach (RecordBlockBase otherBlock in blocks) + { + if (otherBlock.Loaded && handler.CanConvert(otherBlock.FirstNamedBlock, otherBlock.Handler)) + { + if (handler.IsInterchangeable(otherBlock.Handler)) + { + //no need to look any further, we already found the perfect match and can return without conversion + return otherBlock.NamedBlockSections; + } + + bestMatchedBlock = otherBlock; + } + } + + if (bestMatchedBlock == null) + { + return null; + } + + //_availableBlocksSemaphore.WaitOne(); + //_availableBlocksSemaphoreState--; + + return ConvertNamedBlocks(bestMatchedBlock.NamedBlockSections, handler); + } + + private static Dictionary ConvertNamedBlocks(Dictionary namedBlockSections, IComputationHandler handler) + { + Dictionary convertedNamedBlocks = new Dictionary(); + + foreach (string name in namedBlockSections.Keys) + { + convertedNamedBlocks.Add(name, handler.Convert(namedBlockSections[name], handler)); + } + + return convertedNamedBlocks; + } + + private Dictionary LoadAndExtractRaw(int blockIndex, IComputationHandler handler) + { + // this cannot run concurrently as cache entries can only be read and written once without wasting resources and / or corrupting cache state + lock (this) + { + if (blockIndex > _lastReadRawDataBlockIndex) + { + object[] lastRawData = null; + + for (int tempBlockIndex = _lastReadRawDataBlockIndex + 1; tempBlockIndex <= blockIndex; tempBlockIndex++) + { + lastRawData = LoadDirect(tempBlockIndex, handler); + + //looks like we couldn't read any more blocks, maybe reached the end of the underlying source streams + if (lastRawData == null) + { + return null; + } + + if (AllowRawReadDataCaching) + { + _cacheProvider.Store($"raw.{tempBlockIndex}", lastRawData); + } + } + + return ExtractDirectFrom(lastRawData, blockIndex, handler); + } + else + { + if (AllowRawReadDataCaching) + { + string cacheIdentifier = $"raw.{blockIndex}"; + + if (!_cacheProvider.IsCached(cacheIdentifier)) + { + throw new InvalidOperationException($"Unable to load cached entry for block {blockIndex} for handler {handler}, cache entry does not exist in provider {_cacheProvider}."); + } + + return ExtractDirectFrom(_cacheProvider.Load(cacheIdentifier), blockIndex, handler); + } + else + { + throw new InvalidOperationException($"Cannot load and extract raw block with index {blockIndex} because AllowRawReadDataCaching is set to false and last read position is at {_lastReadRawDataBlockIndex}."); + } + } + } + } + + private object[] LoadDirect(int blockIndex, IComputationHandler handler) + { + IList rawDataPerExtractor = new List(); + + PrepareExtractors(); + + foreach (IRecordExtractor extractor in _recordExtractors) + { + object data; + + lock (extractor.Reader) + { + data = extractor.Reader.Read(TargetBlockSizeRecords); + } + + //check if block reader could read anything, if not, return null + if (data == null) + { + _lastAvailableBlockIndex = blockIndex - 1; + + _logger.Debug($"Cannot load block {blockIndex} for handler {handler}, the underlying stream for extractor {extractor} is unable to retrieve any more records. End of stream most likely reached."); - //check if block size is 0, indicating we reached the end of the stream - if (subNamedBlock == null) - { - _lastAvailableBlockIndex = blockIndex - 1; + return null; + } - _logger.Debug($"Cannot extract block {blockIndex} for handler {handler}, the underlying stream for extractor {extractor} is unable to retrieve any more records. End of stream most likely reached."); + rawDataPerExtractor.Add(data); + } - SigmaEnvironment.TaskManager.CancelTask(extractTask); + if (blockIndex > _lastReadRawDataBlockIndex) + { + _lastReadRawDataBlockIndex = blockIndex; + } + + return rawDataPerExtractor.ToArray(); + } + + private Dictionary ExtractDirectFrom(object[] data, int blockIndex, IComputationHandler handler) + { + Dictionary namedBlocks = new Dictionary(); + + ITaskObserver prepareTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Prepare, "preparing extractors for dataset \"" + Name + "\"", indeterminate: true); + + PrepareExtractors(); + + SigmaEnvironment.TaskManager.EndTask(prepareTask); + + ITaskObserver extractTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Extract, $"extracting block {blockIndex} for dataset \"{Name}\"", indeterminate: true); + + int extractorIndex = 0; + foreach (IRecordExtractor extractor in _recordExtractors) + { + _logger.Debug($"Extracting hierarchically from extractor {extractor} at index {extractorIndex}..."); + + Dictionary subNamedBlock = extractor.ExtractHierarchicalFrom(data[extractorIndex++], TargetBlockSizeRecords, handler); + + //check if block size is 0, indicating we reached the end of the stream + if (subNamedBlock == null) + { + _lastAvailableBlockIndex = blockIndex - 1; - return null; - } + _logger.Debug($"Cannot extract block {blockIndex} for handler {handler}, the underlying stream for extractor {extractor} is unable to retrieve any more records. End of stream most likely reached."); - foreach (string name in subNamedBlock.Keys) - { - if (namedBlocks.ContainsKey(name)) - { - SigmaEnvironment.TaskManager.CancelTask(extractTask); + SigmaEnvironment.TaskManager.CancelTask(extractTask); - throw new ArgumentException($"Section name collision: {name} is already used by another extractor, current extractor {extractor} cannot use it again."); - } - else - { - namedBlocks.Add(name, subNamedBlock[name]); - } - } - } + return null; + } - SigmaEnvironment.TaskManager.EndTask(extractTask); + foreach (string name in subNamedBlock.Keys) + { + if (namedBlocks.ContainsKey(name)) + { + SigmaEnvironment.TaskManager.CancelTask(extractTask); - return namedBlocks; - } + throw new ArgumentException($"Section name collision: {name} is already used by another extractor, current extractor {extractor} cannot use it again."); + } + else + { + namedBlocks.Add(name, subNamedBlock[name]); + } + } + } - public void FreeBlock(int blockIndex, IComputationHandler handler) - { - if (!_activeBlocks.ContainsKey(blockIndex)) - { - _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); + SigmaEnvironment.TaskManager.EndTask(extractTask); - return; - } + return namedBlocks; + } - foreach (RecordBlock block in _activeBlocks[blockIndex]) - { - if (ReferenceEquals(block.Handler, handler)) - { - _logger.Debug($"Freeing block with index {blockIndex} for handler {handler}..."); + public void FreeBlock(int blockIndex, IComputationHandler handler) + { + if (!_activeBlocks.ContainsKey(blockIndex)) + { + _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); - CacheBlockConstrained(block.NamedBlockSections, blockIndex, handler); + return; + } - DeregisterActiveBlock(block); + RecordBlock toRemove = null; - //_availableBlocksSemaphore.Release(); - //_availableBlocksSemaphoreState++; + lock (this) + { + foreach (RecordBlock block in _activeBlocks[blockIndex]) + { + if (ReferenceEquals(block.Handler, handler)) + { + _logger.Debug($"Freeing block with index {blockIndex} for handler {handler}..."); - _logger.Debug($"Done freeing block with index {blockIndex} for handler {handler}."); + CacheBlockConstrained(block.NamedBlockSections, blockIndex, handler); - return; - } - } + //_availableBlocksSemaphore.Release(); + //_availableBlocksSemaphoreState++; - _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); - } + toRemove = block; - private void CacheBlockConstrained(Dictionary block, int blockIndex, IComputationHandler handler) - { - if (_cachedBlocks.ContainsKey(blockIndex)) - { - foreach (WeakRecordBlock cachedBlock in _cachedBlocks[blockIndex]) - { - //check if block of the same type and size is already cached, if so, return, because there is no need to cache again - if (cachedBlock.BlockIndex == blockIndex && cachedBlock.Handler.IsInterchangeable(handler) && block.First().Value.Shape[0] == cachedBlock.NumberRecords) - { - _logger.Debug($"Skipping cache request of block {blockIndex} for handler {handler} because interchangeable block of same index, format and size is already cached."); - - return; - } - } - } - - long blockSizeBytes = handler.GetSizeBytes(block.Values.ToArray()); - - if (_cachedBlocks.Count >= MaxBlocksInCache) - { - _logger.Debug($"Unable to cache block {blockIndex} for handler {handler} due to MaxBlocksInCache constraint of {MaxBlocksInCache}."); - - return; - } - - if (blockSizeBytes + _totalCachedBlockSizeBytes >= MaxBytesInCache) - { - _logger.Debug($"Unable to cache block {blockIndex} for handler {handler} due to MaxBytesInCache constraint of {MaxBytesInCache} bytes (block of size {blockSizeBytes} would exceed constraint by {_totalCachedBlockSizeBytes + blockSizeBytes - MaxBytesInCache} bytes)."); - - return; - } - - string cacheIdentifier = $"extracted.{blockIndex}.{handler.DataType.Identifier}"; - - _cacheProvider.Store(cacheIdentifier, block); - - bool keepReference = TotalActiveBlockSizeBytes + blockSizeBytes < MaxTotalActiveBlockSizeBytes; - - RegisterCachedBlock(block, blockIndex, handler, keepReference); - - _totalCachedBlockSizeBytes += blockSizeBytes; - } - - private void PrepareExtractors() - { - foreach (IRecordExtractor extractor in _recordExtractors) - { - lock (extractor) - { - extractor.Prepare(); - } - } - } - - public long GetBlockSizeBytes(int blockIndex, IComputationHandler handler) - { - if (!_activeBlocks.ContainsKey(blockIndex)) - { - return -1L; - } - - foreach (RecordBlock block in _activeBlocks[blockIndex]) - { - if (ReferenceEquals(block.Handler, handler)) - { - return block.EstimatedSizeBytes; - } - } - - return -1L; - } - - public bool IsBlockActive(int blockIndex) - { - return _activeBlocks.ContainsKey(blockIndex); - } - - public bool IsBlockActive(int blockIndex, IComputationHandler handler) - { - if (!_activeBlocks.ContainsKey(blockIndex)) - { - return false; - } - - foreach (RecordBlock block in _activeBlocks[blockIndex]) - { - if (ReferenceEquals(block.Handler, handler)) - { - return true; - } - } - - return false; - } - - private bool IsBlockCached(int blockIndex, IComputationHandler handler) - { - if (!_cachedBlocks.ContainsKey(blockIndex)) - { - return false; - } - - foreach (WeakRecordBlock block in _cachedBlocks[blockIndex]) - { - if (ReferenceEquals(block.Handler, handler)) - { - return true; - } - } - - return false; - } - - public void Dispose() - { - foreach (IRecordExtractor extractor in _recordExtractors) - { - extractor.Dispose(); - extractor.Reader?.Dispose(); - } - - _cacheProvider.Dispose(); - } - - public static IDataset[] SplitBlockwise(IDataset dataset, params int[] parts) - { - if (parts.Length == 0) - { - throw new ArgumentException("Parts cannot be an empty collection."); - } - - int splitInterval = parts.Sum(); - int lastEnd = 0; - IDataset[] slices = new IDataset[parts.Length]; - - for (int i = 0; i < parts.Length; i++) - { - slices[i] = new DatasetBlockwiseSlice(dataset, lastEnd, lastEnd + parts[i] - 1, splitInterval); - lastEnd += parts[i]; - } - - return slices; - } - - public static IDataset[] SplitRecordwise(IDataset dataset, params double[] parts) - { - if (parts.Length == 0) - { - throw new ArgumentException("Percentages cannot be an empty collection."); - } - - if (parts.Sum() > 1.0) - { - throw new ArgumentException($"Percentages sum cannot be > 1.0, but parts sum was {parts.Sum()}."); - } - - IDataset[] slices = new IDataset[parts.Length]; - - double lastOffset = 0.0; - - for (int i = 0; i < slices.Length; i++) - { - slices[i] = new DatasetRecordwiseSlice(dataset, lastOffset, parts[i]); - - lastOffset += parts[i]; - } - - return slices; - } - - internal abstract class RecordBlockBase - { - internal abstract Dictionary NamedBlockSections { get; set; } - internal abstract INDArray FirstNamedBlock { get; set; } - internal abstract bool Loaded { get; set; } - - internal IComputationHandler Handler; - internal bool Active; - internal int BlockIndex; - internal long NumberRecords; - internal long EstimatedSizeBytes; - } - - internal class RecordBlock : RecordBlockBase - { - internal sealed override Dictionary NamedBlockSections { get; set; } - internal sealed override INDArray FirstNamedBlock { get; set; } - internal override bool Loaded { get; set; } - - public RecordBlock(Dictionary namedBlockSections, int blockIndex, long numberRecords, long estimatedSizeBytes, IComputationHandler handler) - { - NamedBlockSections = namedBlockSections; - BlockIndex = blockIndex; - NumberRecords = numberRecords; - EstimatedSizeBytes = estimatedSizeBytes; - Handler = handler; - - //record blocks internal block can be null - if (namedBlockSections != null) - { - FirstNamedBlock = namedBlockSections[namedBlockSections.First().Key]; - } - } - } - - internal class WeakRecordBlock : RecordBlockBase - { - internal override Dictionary NamedBlockSections - { - get - { - Dictionary target; - - return _namedBlockSections.TryGetTarget(out target) ? target : null; - } - set - { - _namedBlockSections.SetTarget(value); - } - } - - internal override INDArray FirstNamedBlock - { - get - { - INDArray target; - - return _firstNamedBlock.TryGetTarget(out target) ? target : null; - } - set - { - _firstNamedBlock.SetTarget(value); - } - } - - internal override bool Loaded - { - get - { - Dictionary target; - - return _namedBlockSections.TryGetTarget(out target); - } - set - { - } - } - - private readonly WeakReference> _namedBlockSections; - private readonly WeakReference _firstNamedBlock; - - public WeakRecordBlock(Dictionary namedBlockSections, int blockIndex, long numberRecords, long estimatedSizeBytes, IComputationHandler handler) - { - _namedBlockSections = new WeakReference>(namedBlockSections); - BlockIndex = blockIndex; - NumberRecords = numberRecords; - EstimatedSizeBytes = estimatedSizeBytes; - Handler = handler; - - //record blocks internal block can be null - if (namedBlockSections != null) - { - _firstNamedBlock = new WeakReference(namedBlockSections[namedBlockSections.First().Key]); - } - } - } - - public override string ToString() - { - return $"dataset \"{Name}\""; - } - } + goto FoundBlock; + } + } + } + + _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); + + FoundBlock: + + DeregisterActiveBlock(toRemove); + _logger.Debug($"Done freeing block with index {blockIndex} for handler {handler}."); + } + + private void CacheBlockConstrained(Dictionary block, int blockIndex, IComputationHandler handler) + { + if (_cachedBlocks.ContainsKey(blockIndex)) + { + foreach (WeakRecordBlock cachedBlock in _cachedBlocks[blockIndex]) + { + //check if block of the same type and size is already cached, if so, return, because there is no need to cache again + if (cachedBlock.BlockIndex == blockIndex && cachedBlock.Handler.IsInterchangeable(handler) && block.First().Value.Shape[0] == cachedBlock.NumberRecords) + { + _logger.Debug($"Skipping cache request of block {blockIndex} for handler {handler} because interchangeable block of same index, format and size is already cached."); + + return; + } + } + } + + long blockSizeBytes = handler.GetSizeBytes(block.Values.ToArray()); + + if (_cachedBlocks.Count >= MaxBlocksInCache) + { + _logger.Debug($"Unable to cache block {blockIndex} for handler {handler} due to MaxBlocksInCache constraint of {MaxBlocksInCache}."); + + return; + } + + if (blockSizeBytes + _totalCachedBlockSizeBytes >= MaxBytesInCache) + { + _logger.Debug($"Unable to cache block {blockIndex} for handler {handler} due to MaxBytesInCache constraint of {MaxBytesInCache} bytes (block of size {blockSizeBytes} would exceed constraint by {_totalCachedBlockSizeBytes + blockSizeBytes - MaxBytesInCache} bytes)."); + + return; + } + + string cacheIdentifier = $"extracted.{blockIndex}.{handler.DataType.Identifier}"; + + _cacheProvider.Store(cacheIdentifier, block); + + bool keepReference = TotalActiveBlockSizeBytes + blockSizeBytes < MaxTotalActiveBlockSizeBytes; + + RegisterCachedBlock(block, blockIndex, handler, keepReference); + + _totalCachedBlockSizeBytes += blockSizeBytes; + } + + private void PrepareExtractors() + { + foreach (IRecordExtractor extractor in _recordExtractors) + { + lock (extractor) + { + extractor.Prepare(); + } + } + } + + public long GetBlockSizeBytes(int blockIndex, IComputationHandler handler) + { + if (!_activeBlocks.ContainsKey(blockIndex)) + { + return -1L; + } + + foreach (RecordBlock block in _activeBlocks[blockIndex]) + { + if (ReferenceEquals(block.Handler, handler)) + { + return block.EstimatedSizeBytes; + } + } + + return -1L; + } + + public bool IsBlockActive(int blockIndex) + { + return _activeBlocks.ContainsKey(blockIndex); + } + + public bool IsBlockActive(int blockIndex, IComputationHandler handler) + { + if (!_activeBlocks.ContainsKey(blockIndex)) + { + return false; + } + + foreach (RecordBlock block in _activeBlocks[blockIndex]) + { + if (ReferenceEquals(block.Handler, handler)) + { + return true; + } + } + + return false; + } + + private bool IsBlockCached(int blockIndex, IComputationHandler handler) + { + if (!_cachedBlocks.ContainsKey(blockIndex)) + { + return false; + } + + foreach (WeakRecordBlock block in _cachedBlocks[blockIndex]) + { + if (ReferenceEquals(block.Handler, handler)) + { + return true; + } + } + + return false; + } + + public void Dispose() + { + foreach (IRecordExtractor extractor in _recordExtractors) + { + extractor.Dispose(); + extractor.Reader?.Dispose(); + } + + _cacheProvider.Dispose(); + } + + public static IDataset[] SplitBlockwise(IDataset dataset, params int[] parts) + { + if (parts.Length == 0) + { + throw new ArgumentException("Parts cannot be an empty collection."); + } + + int splitInterval = parts.Sum(); + int lastEnd = 0; + IDataset[] slices = new IDataset[parts.Length]; + + for (int i = 0; i < parts.Length; i++) + { + slices[i] = new DatasetBlockwiseSlice(dataset, lastEnd, lastEnd + parts[i] - 1, splitInterval); + lastEnd += parts[i]; + } + + return slices; + } + + public static IDataset[] SplitRecordwise(IDataset dataset, params double[] parts) + { + if (parts.Length == 0) + { + throw new ArgumentException("Percentages cannot be an empty collection."); + } + + if (parts.Sum() > 1.0) + { + throw new ArgumentException($"Percentages sum cannot be > 1.0, but parts sum was {parts.Sum()}."); + } + + IDataset[] slices = new IDataset[parts.Length]; + + double lastOffset = 0.0; + + for (int i = 0; i < slices.Length; i++) + { + slices[i] = new DatasetRecordwiseSlice(dataset, lastOffset, parts[i]); + + lastOffset += parts[i]; + } + + return slices; + } + + internal abstract class RecordBlockBase + { + internal abstract Dictionary NamedBlockSections { get; set; } + internal abstract INDArray FirstNamedBlock { get; set; } + internal abstract bool Loaded { get; set; } + + internal IComputationHandler Handler; + internal bool Active; + internal int BlockIndex; + internal long NumberRecords; + internal long EstimatedSizeBytes; + } + + internal class RecordBlock : RecordBlockBase + { + internal sealed override Dictionary NamedBlockSections { get; set; } + internal sealed override INDArray FirstNamedBlock { get; set; } + internal override bool Loaded { get; set; } + + public RecordBlock(Dictionary namedBlockSections, int blockIndex, long numberRecords, long estimatedSizeBytes, IComputationHandler handler) + { + NamedBlockSections = namedBlockSections; + BlockIndex = blockIndex; + NumberRecords = numberRecords; + EstimatedSizeBytes = estimatedSizeBytes; + Handler = handler; + + //record blocks internal block can be null + if (namedBlockSections != null) + { + FirstNamedBlock = namedBlockSections[namedBlockSections.First().Key]; + } + } + } + + internal class WeakRecordBlock : RecordBlockBase + { + internal override Dictionary NamedBlockSections + { + get + { + Dictionary target; + + return _namedBlockSections.TryGetTarget(out target) ? target : null; + } + set + { + _namedBlockSections.SetTarget(value); + } + } + + internal override INDArray FirstNamedBlock + { + get + { + INDArray target; + + return _firstNamedBlock.TryGetTarget(out target) ? target : null; + } + set + { + _firstNamedBlock.SetTarget(value); + } + } + + internal override bool Loaded + { + get + { + Dictionary target; + + return _namedBlockSections.TryGetTarget(out target); + } + set + { + } + } + + private readonly WeakReference> _namedBlockSections; + private readonly WeakReference _firstNamedBlock; + + public WeakRecordBlock(Dictionary namedBlockSections, int blockIndex, long numberRecords, long estimatedSizeBytes, IComputationHandler handler) + { + _namedBlockSections = new WeakReference>(namedBlockSections); + BlockIndex = blockIndex; + NumberRecords = numberRecords; + EstimatedSizeBytes = estimatedSizeBytes; + Handler = handler; + + //record blocks internal block can be null + if (namedBlockSections != null) + { + _firstNamedBlock = new WeakReference(namedBlockSections[namedBlockSections.First().Key]); + } + } + } + + public override string ToString() + { + return $"dataset \"{Name}\""; + } + } } diff --git a/Sigma.Core/Dependencies/DiffSharp.dll b/Sigma.Core/Dependencies/DiffSharp.dll index dfba877ac661e86a14586085d77761ba997da755..2490c6dc4dbe04145cd7644725e7b803ce2e05a6 100644 GIT binary patch delta 475091 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 diff --git a/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs b/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs index 0d887008..ac52b11b 100644 --- a/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs +++ b/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs @@ -99,23 +99,23 @@ private INDArray CheckNice(INDArray array, string paramName = "unspecified") if (array == null) { - Report($"ndarray {paramName} is null."); + Report($"ndarray \"{paramName}\" is null."); } else { if (array.Rank != array.Shape.Length) { - Report($"ndarray {paramName} has inconsistent rank ({array.Rank}) / shape (length {array.Length}).", array); + Report($"ndarray \"{paramName}\" has inconsistent rank ({array.Rank}) / shape (length {array.Length}).", array); } if (CheckNaN && UnderlyingHandler.IsNaN(array)) { - Report($"ndarray {paramName} contains NaN values.", array); + Report($"ndarray \"{paramName}\" contains NaN values.", array); } if (CheckInfinite && UnderlyingHandler.IsNotFinite(array)) { - Report($"ndarray {paramName} contains infinite values.", array); + Report($"ndarray \"{paramName}\" contains infinite values.", array); } } diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs index 79dda03a..952a7102 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32BackendHandle.cs @@ -676,7 +676,7 @@ private bool _InternalOptimisedMapOp_F_M(MapOp mapOp, ref ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc(CreateDataBuffer(new float[0]), 0L, 0L); } - if (_InternalOptimisedMapOp_F_M(mapOp, ref a)) - { - return a; - } + if (_InternalOptimisedMapOp_F_M(mapOp, ref a)) + { + return a; + } a = a.DeepCopy(); @@ -740,10 +740,10 @@ public override ShapedDataBufferView Map_F_M(MapOp mapOp, FSharpFunc public override ShapedDataBufferView Map_F_S_M(float other, MapOp mapOp, FSharpFunc function, ShapedDataBufferView value) { - if (_InternalOptimisedMapOp_F_S_M(other, mapOp, ref value)) - { - return value; - } + if (_InternalOptimisedMapOp_F_S_M(other, mapOp, ref value)) + { + return value; + } return Map_F_M(mapOp, function, value); } diff --git a/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs b/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs index 7f4a5f39..493d3328 100644 --- a/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs +++ b/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs @@ -306,6 +306,7 @@ public override string ToString() /// /// A threshold criteria that fires when a certain threshold is reached (once or continuously as specified). /// + [Serializable] public class ThresholdCriteria : HookInvokeCriteria { /// diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 89ce6705..5b36f84e 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -17,6 +17,7 @@ using Sigma.Core.MathAbstract; using Sigma.Core.MathAbstract.Backends.SigmaDiff; using Sigma.Core.Monitors.Synchronisation; +using Sigma.Core.Persistence; using Sigma.Core.Training; using Sigma.Core.Training.Hooks; using Sigma.Core.Training.Hooks.Reporters; @@ -34,371 +35,372 @@ namespace Sigma.Tests.Internals.Backend { - public static class Program - { - public static MinibatchIterator TrainingIterator; - - private static void Main(string[] args) - { - SigmaEnvironment.EnableLogging(xml: true); - SigmaEnvironment.Globals["web_proxy"] = WebUtils.GetProxyFromFileOrDefault(".customproxy"); - - SampleTrainerOperatorWorkerMnist(); - - Console.WriteLine("Program ended, waiting for termination, press any key..."); - Console.ReadKey(); - } - - private static void SampleTrainerOperatorWorkerIris() - { - SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); - - sigma.Prepare(); - - var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); - IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica") - .Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)) - .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)); - - IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); - - ITrainer trainer = sigma.CreateGhostTrainer("test"); - - trainer.Network = new Network(); - trainer.Network.Architecture = InputLayer.Construct(4) - + FullyConnectedLayer.Construct(12) - + FullyConnectedLayer.Construct(10) - + FullyConnectedLayer.Construct(3) - + OutputLayer.Construct(3) - + SoftMaxCrossEntropyCostLayer.Construct(); - trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); - trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); - trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler())); - - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.2)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1, mean: 0.0)); - - trainer.AddGlobalHook(new StopTrainingHook(atEpoch: 100)); - //trainer.AddLocalHook(new EarlyStopperHook("optimiser.cost_total", 20, target: ExtremaTarget.Min)); - trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); - trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); - - //trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); - - //Serialisation.WriteBinaryFile(trainer, "trainer.sgtrainer"); - //trainer = Serialisation.ReadBinaryFile("trainer.sgtrainer"); - - sigma.AddTrainer(trainer); - - //trainer.Operator.InvokeCommand(new TestCommand(() => { throw new NotImplementedException(); }, "optimiser.learning_rate")); - trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02d, () => {/* finished */})); - - sigma.Run(); - } - - [Serializable] - private class TestCommand : BaseCommand - { - private readonly ILog _log = LogManager.GetLogger(typeof(TestCommand)); - public TestCommand(Action onFinish = null, params string[] requiredRegistryEntries) : base(onFinish, requiredRegistryEntries) - { - _log.Info("Test command created"); - } + public static class Program + { + public static MinibatchIterator TrainingIterator; + + private static void Main(string[] args) + { + SigmaEnvironment.EnableLogging(xml: true); + SigmaEnvironment.Globals["web_proxy"] = WebUtils.GetProxyFromFileOrDefault(".customproxy"); + + SampleTrainerOperatorWorkerIris(); + + Console.WriteLine("Program ended, waiting for termination, press any key..."); + Console.ReadKey(); + } + + private static void SampleTrainerOperatorWorkerIris() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); + + sigma.Prepare(); + + var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); + IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica") + .Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)) + .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)); + + IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); + + ITrainer trainer = sigma.CreateGhostTrainer("test"); + + trainer.Network = new Network(); + trainer.Network.Architecture = InputLayer.Construct(4) + + FullyConnectedLayer.Construct(12) + + FullyConnectedLayer.Construct(10) + + FullyConnectedLayer.Construct(3) + + OutputLayer.Construct(3) + + SoftMaxCrossEntropyCostLayer.Construct(); + trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); + trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler())); + + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.2)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1, mean: 0.0)); + + trainer.AddGlobalHook(new StopTrainingHook(atEpoch: 100)); + //trainer.AddLocalHook(new EarlyStopperHook("optimiser.cost_total", 20, target: ExtremaTarget.Min)); + trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); + trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + + //trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); + + Serialisation.WriteBinaryFile(trainer, "trainer.sgtrainer"); + trainer = Serialisation.ReadBinaryFile("trainer.sgtrainer"); + + sigma.AddTrainer(trainer); + + //trainer.Operator.InvokeCommand(new TestCommand(() => { throw new NotImplementedException(); }, "optimiser.learning_rate")); + trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02d, () => {/* finished */})); + + sigma.Run(); + } + + [Serializable] + private class TestCommand : BaseCommand + { + private readonly ILog _log = LogManager.GetLogger(typeof(TestCommand)); + public TestCommand(Action onFinish = null, params string[] requiredRegistryEntries) : base(onFinish, requiredRegistryEntries) + { + _log.Info("Test command created"); + } + + /// + /// Invoke this hook with a certain parameter registry if optional conditional criteria are satisfied. + /// + /// The registry containing the required values for this hook's execution. + /// A helper resolver for complex registry entries (automatically cached). + public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) + { + _log.Info("Test command invoked"); + //resolver.ResolveSet("optimiser.learning_rate", 10); + } + } - /// - /// Invoke this hook with a certain parameter registry if optional conditional criteria are satisfied. - /// - /// The registry containing the required values for this hook's execution. - /// A helper resolver for complex registry entries (automatically cached). - public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) - { - _log.Info("Test command invoked"); - //resolver.ResolveSet("optimiser.learning_rate", 10); - } - } + private static void SampleTrainerOperatorWorkerMnist() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); - private static void SampleTrainerOperatorWorkerMnist() - { - SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); + sigma.Prepare(); - sigma.Prepare(); + ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")))); + IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); - ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")))); - IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); + ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); + IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); - IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); + IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); + ITrainer trainer = sigma.CreateTrainer("test"); - IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); - ITrainer trainer = sigma.CreateTrainer("test"); + trainer.Network = new Network(); + trainer.Network.Architecture = InputLayer.Construct(28, 28) + + FullyConnectedLayer.Construct(28 * 28) + + FullyConnectedLayer.Construct(10) + + OutputLayer.Construct(10) + + SquaredDifferenceCostLayer.Construct(); + trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); + trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler(), enabled: false)); - trainer.Network = new Network(); - trainer.Network.Architecture = InputLayer.Construct(28, 28) - + FullyConnectedLayer.Construct(28 * 28) - + FullyConnectedLayer.Construct(10) - + OutputLayer.Construct(10) - + SquaredDifferenceCostLayer.Construct(); - trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); - trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); - trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler(), enabled: false)); + trainer.AddInitialiser("*.weights", new XavierInitialiser(scale: 5)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); + trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddInitialiser("*.weights", new XavierInitialiser(scale: 5)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); - trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddHook(new RunningTimeReporter(TimeStep.Every(5, TimeScale.Iteration))); + trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(5, TimeScale.Iteration))); + trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(5, TimeScale.Iteration))); + trainer.AddGlobalHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: new[] { 1 })); + + sigma.Run(); + } + + private static void SampleCachedFastIteration() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("test"); + + IDataSource dataSource = new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz"))); + + ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: dataSource); + IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); + + IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor); + IDataset[] slices = dataset.SplitRecordwise(0.8, 0.2); + IDataset trainingData = slices[0]; + + Stopwatch stopwatch = Stopwatch.StartNew(); + + IDataIterator iterator = new MinibatchIterator(10, trainingData); + foreach (var block in iterator.Yield(new CpuFloat32Handler(), sigma)) + { + //PrintFormattedBlock(block, PrintUtils.AsciiGreyscalePalette); + } - trainer.AddHook(new RunningTimeReporter(TimeStep.Every(5, TimeScale.Iteration))); - trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(5, TimeScale.Iteration))); - trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(5, TimeScale.Iteration))); + Console.Write("\nFirst iteration took " + stopwatch.Elapsed + "\n+=+ Iterating over dataset again +=+ Dramatic pause..."); - sigma.Run(); - } - - private static void SampleCachedFastIteration() - { - SigmaEnvironment sigma = SigmaEnvironment.Create("test"); - - IDataSource dataSource = new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz"))); - - ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: dataSource); - IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); - - IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor); - IDataset[] slices = dataset.SplitRecordwise(0.8, 0.2); - IDataset trainingData = slices[0]; - - Stopwatch stopwatch = Stopwatch.StartNew(); - - IDataIterator iterator = new MinibatchIterator(10, trainingData); - foreach (var block in iterator.Yield(new CpuFloat32Handler(), sigma)) - { - //PrintFormattedBlock(block, PrintUtils.AsciiGreyscalePalette); - } + ArrayUtils.Range(1, 10).ToList().ForEach(i => + { + Thread.Sleep(500); + Console.Write("."); + }); - Console.Write("\nFirst iteration took " + stopwatch.Elapsed + "\n+=+ Iterating over dataset again +=+ Dramatic pause..."); + stopwatch.Restart(); - ArrayUtils.Range(1, 10).ToList().ForEach(i => - { - Thread.Sleep(500); - Console.Write("."); - }); + foreach (var block in iterator.Yield(new CpuFloat32Handler(), sigma)) + { + //PrintFormattedBlock(block, PrintUtils.AsciiGreyscalePalette); + } - stopwatch.Restart(); + Console.WriteLine("Second iteration took " + stopwatch.Elapsed); + } + + private static void SampleDotProduct() + { + IComputationHandler handler = new CpuFloat32Handler(); + + INDArray a = handler.NDArray(ArrayUtils.Range(1, 6), 3, 2); + INDArray b = handler.NDArray(ArrayUtils.Range(1, 6), 2, 3); + + Console.WriteLine("a = " + ArrayUtils.ToString(a, (ADNDArray.ToStringElement)null, 0, true)); + Console.WriteLine("b = " + ArrayUtils.ToString(b, (ADNDArray.ToStringElement)null, 0, true)); - foreach (var block in iterator.Yield(new CpuFloat32Handler(), sigma)) - { - //PrintFormattedBlock(block, PrintUtils.AsciiGreyscalePalette); - } + INDArray c = handler.Dot(a, b); - Console.WriteLine("Second iteration took " + stopwatch.Elapsed); - } + Console.WriteLine("c = " + ArrayUtils.ToString(c, (ADNDArray.ToStringElement)null, 0, true)); + } - private static void SampleDotProduct() - { - IComputationHandler handler = new CpuFloat32Handler(); - - INDArray a = handler.NDArray(ArrayUtils.Range(1, 6), 3, 2); - INDArray b = handler.NDArray(ArrayUtils.Range(1, 6), 2, 3); - - Console.WriteLine("a = " + ArrayUtils.ToString(a, (ADNDArray.ToStringElement) null, 0, true)); - Console.WriteLine("b = " + ArrayUtils.ToString(b, (ADNDArray.ToStringElement) null, 0, true)); + private static void SampleNetworkMerging() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("merge_test"); - INDArray c = handler.Dot(a, b); + ITrainer[] trainers = new ITrainer[3]; + int[] constantValues = { 2, 10, 70 }; - Console.WriteLine("c = " + ArrayUtils.ToString(c, (ADNDArray.ToStringElement) null, 0, true)); - } + //INetworkMerger merger = new WeightedNetworkMerger(10d, 10d, 1d); + INetworkMerger merger = new AverageNetworkMerger(); + IComputationHandler handler = new CpuFloat32Handler(); - private static void SampleNetworkMerging() - { - SigmaEnvironment sigma = SigmaEnvironment.Create("merge_test"); + for (int i = 0; i < trainers.Length; i++) + { + trainers[i] = sigma.CreateTrainer($"MergeTrainer{i}"); + trainers[i].Network = new Network($"{i}"); + trainers[i].Network.Architecture = InputLayer.Construct(2, 2) + ElementwiseLayer.Construct(2 * 2) + OutputLayer.Construct(2); - ITrainer[] trainers = new ITrainer[3]; - int[] constantValues = { 2, 10, 70 }; + trainers[i].AddInitialiser("*.weights", new ConstantValueInitialiser(constantValues[i])); - //INetworkMerger merger = new WeightedNetworkMerger(10d, 10d, 1d); - INetworkMerger merger = new AverageNetworkMerger(); - IComputationHandler handler = new CpuFloat32Handler(); + trainers[i].Operator = new CpuMultithreadedOperator(5); + trainers[i].Initialise(handler); + } - for (int i = 0; i < trainers.Length; i++) - { - trainers[i] = sigma.CreateTrainer($"MergeTrainer{i}"); - trainers[i].Network = new Network($"{i}"); - trainers[i].Network.Architecture = InputLayer.Construct(2, 2) + ElementwiseLayer.Construct(2 * 2) + OutputLayer.Construct(2); + foreach (ITrainer trainer in trainers) + { + Console.WriteLine(trainer.Network.Registry); + } - trainers[i].AddInitialiser("*.weights", new ConstantValueInitialiser(constantValues[i])); + merger.AddMergeEntry("layers.*.weights"); + merger.Merge(trainers[1].Network, trainers[2].Network, handler); - trainers[i].Operator = new CpuMultithreadedOperator(5); - trainers[i].Initialise(handler); - } + Console.WriteLine("*******************"); + foreach (ITrainer trainer in trainers) + { + Console.WriteLine(trainer.Network.Registry); + } + } - foreach (ITrainer trainer in trainers) - { - Console.WriteLine(trainer.Network.Registry); - } + private static void SampleNetworkArchitecture() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("test"); - merger.AddMergeEntry("layers.*.weights"); - merger.Merge(trainers[1].Network, trainers[2].Network, handler); + IComputationHandler handler = new CpuFloat32Handler(); + ITrainer trainer = sigma.CreateTrainer("test_trainer"); + trainer.Network = new Network(); + trainer.Network.Architecture = InputLayer.Construct(2, 2) + + ElementwiseLayer.Construct(2 * 2) + + FullyConnectedLayer.Construct(2) + + 2 * (FullyConnectedLayer.Construct(4) + FullyConnectedLayer.Construct(2)) + + OutputLayer.Construct(2); + trainer.Network = (INetwork)trainer.Network.DeepCopy(); - Console.WriteLine("*******************"); - foreach (ITrainer trainer in trainers) - { - Console.WriteLine(trainer.Network.Registry); - } - } + trainer.Operator = new CpuMultithreadedOperator(10); - private static void SampleNetworkArchitecture() - { - SigmaEnvironment sigma = SigmaEnvironment.Create("test"); + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.1f)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); + trainer.Initialise(handler); - IComputationHandler handler = new CpuFloat32Handler(); - ITrainer trainer = sigma.CreateTrainer("test_trainer"); - trainer.Network = new Network(); - trainer.Network.Architecture = InputLayer.Construct(2, 2) + - ElementwiseLayer.Construct(2 * 2) + - FullyConnectedLayer.Construct(2) + - 2 * (FullyConnectedLayer.Construct(4) + FullyConnectedLayer.Construct(2)) + - OutputLayer.Construct(2); - trainer.Network = (INetwork) trainer.Network.DeepCopy(); + trainer.Network = (INetwork)trainer.Network.DeepCopy(); - trainer.Operator = new CpuMultithreadedOperator(10); + Console.WriteLine(trainer.Network.Registry); - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.1f)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); - trainer.Initialise(handler); + IRegistryResolver resolver = new RegistryResolver(trainer.Network.Registry); - trainer.Network = (INetwork) trainer.Network.DeepCopy(); + Console.WriteLine("==============="); + object[] weights = resolver.ResolveGet("layers.*.weights"); + Console.WriteLine(string.Join("\n", weights)); + Console.WriteLine("==============="); - Console.WriteLine(trainer.Network.Registry); - IRegistryResolver resolver = new RegistryResolver(trainer.Network.Registry); - Console.WriteLine("==============="); - object[] weights = resolver.ResolveGet("layers.*.weights"); - Console.WriteLine(string.Join("\n", weights)); - Console.WriteLine("==============="); + //foreach (ILayerBuffer buffer in trainer.Network.YieldLayerBuffersOrdered()) + //{ + // Console.WriteLine(buffer.Layer.Name + ": "); + // Console.WriteLine("inputs:"); + // foreach (string input in buffer.Inputs.Keys) + // { + // Console.WriteLine($"\t{input}: {buffer.Inputs[input].GetHashCode()}"); + // } + // Console.WriteLine("outputs:"); + // foreach (string output in buffer.Outputs.Keys) + // { + // Console.WriteLine($"\t{output}: {buffer.Outputs[output].GetHashCode()}"); + // } + //} + } - //foreach (ILayerBuffer buffer in trainer.Network.YieldLayerBuffersOrdered()) - //{ - // Console.WriteLine(buffer.Layer.Name + ": "); + private static void SampleAutomaticDifferentiation() + { + IComputationHandler handler = new CpuFloat32Handler(); - // Console.WriteLine("inputs:"); - // foreach (string input in buffer.Inputs.Keys) - // { - // Console.WriteLine($"\t{input}: {buffer.Inputs[input].GetHashCode()}"); - // } + uint traceTag = handler.BeginTrace(); - // Console.WriteLine("outputs:"); - // foreach (string output in buffer.Outputs.Keys) - // { - // Console.WriteLine($"\t{output}: {buffer.Outputs[output].GetHashCode()}"); - // } - //} - } + INDArray array = handler.NDArray(ArrayUtils.Range(1, 6), 2, 3); + INumber a = handler.Number(-1.0f), b = handler.Number(3.0f); - private static void SampleAutomaticDifferentiation() - { - IComputationHandler handler = new CpuFloat32Handler(); + INumber c = handler.Trace(handler.Add(a, b), traceTag); + INumber d = handler.Multiply(c, 2); + INumber e = handler.Add(d, handler.Add(c, 3)); + INumber f = handler.SquareRoot(e); - uint traceTag = handler.BeginTrace(); + array = handler.Multiply(array, f); - INDArray array = handler.NDArray(ArrayUtils.Range(1, 6), 2, 3); - INumber a = handler.Number(-1.0f), b = handler.Number(3.0f); + INumber cost = handler.Divide(handler.Sum(array), array.Length); - INumber c = handler.Trace(handler.Add(a, b), traceTag); - INumber d = handler.Multiply(c, 2); - INumber e = handler.Add(d, handler.Add(c, 3)); - INumber f = handler.SquareRoot(e); + Console.WriteLine("cost: " + cost); - array = handler.Multiply(array, f); + handler.ComputeDerivativesTo(cost); - INumber cost = handler.Divide(handler.Sum(array), array.Length); + Console.WriteLine(array); + Console.WriteLine("f: " + handler.GetDerivative(f)); + Console.WriteLine("e: " + handler.GetDerivative(e)); + Console.WriteLine("d: " + handler.GetDerivative(d)); + Console.WriteLine("c: " + handler.GetDerivative(c)); + Console.WriteLine("a: " + handler.GetDerivative(array)); - Console.WriteLine("cost: " + cost); + handler.ComputeDerivativesTo(f); - handler.ComputeDerivativesTo(cost); + Console.WriteLine("f: " + handler.GetDerivative(f)); + Console.WriteLine("e: " + handler.GetDerivative(e)); + Console.WriteLine("d: " + handler.GetDerivative(d)); + Console.WriteLine("c: " + handler.GetDerivative(c)); + Console.WriteLine("a: " + handler.GetDerivative(array)); + } - Console.WriteLine(array); - Console.WriteLine("f: " + handler.GetDerivative(f)); - Console.WriteLine("e: " + handler.GetDerivative(e)); - Console.WriteLine("d: " + handler.GetDerivative(d)); - Console.WriteLine("c: " + handler.GetDerivative(c)); - Console.WriteLine("a: " + handler.GetDerivative(array)); + private static void SampleLoadExtractIterate() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("test"); - handler.ComputeDerivativesTo(f); + sigma.Prepare(); - Console.WriteLine("f: " + handler.GetDerivative(f)); - Console.WriteLine("e: " + handler.GetDerivative(e)); - Console.WriteLine("d: " + handler.GetDerivative(d)); - Console.WriteLine("c: " + handler.GetDerivative(c)); - Console.WriteLine("a: " + handler.GetDerivative(array)); - } + //var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); + //IRecordExtractor irisExtractor = irisReader.Extractor("inputs2", new[] { 0, 3 }, "targets2", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica"); + //irisExtractor = irisExtractor.Preprocess(new OneHotPreprocessor(sectionName: "targets2", minValue: 0, maxValue: 2), new NormalisingPreprocessor(sectionNames: "inputs2", minInputValue: 0, maxInputValue: 6)); - private static void SampleLoadExtractIterate() - { - SigmaEnvironment sigma = SigmaEnvironment.Create("test"); + ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")))); + IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); - sigma.Prepare(); + ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); + IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - //var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); - //IRecordExtractor irisExtractor = irisReader.Extractor("inputs2", new[] { 0, 3 }, "targets2", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica"); - //irisExtractor = irisExtractor.Preprocess(new OneHotPreprocessor(sectionName: "targets2", minValue: 0, maxValue: 2), new NormalisingPreprocessor(sectionNames: "inputs2", minInputValue: 0, maxInputValue: 6)); + IComputationHandler handler = new CpuFloat32Handler(); - ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")))); - IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); + Dataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); + IDataset[] slices = dataset.SplitRecordwise(0.8, 0.2); + IDataset trainingData = slices[0]; + IDataset validationData = slices[1]; - ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); - IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); + MinibatchIterator trainingIterator = new MinibatchIterator(1, trainingData); + MinibatchIterator validationIterator = new MinibatchIterator(1, validationData); - IComputationHandler handler = new CpuFloat32Handler(); + while (true) + { + foreach (var block in trainingIterator.Yield(handler, sigma)) + { + Thread.Sleep(100); - Dataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); - IDataset[] slices = dataset.SplitRecordwise(0.8, 0.2); - IDataset trainingData = slices[0]; - IDataset validationData = slices[1]; + PrintFormattedBlock(block, PrintUtils.AsciiGreyscalePalette); - MinibatchIterator trainingIterator = new MinibatchIterator(1, trainingData); - MinibatchIterator validationIterator = new MinibatchIterator(1, validationData); + Thread.Sleep(1000); + } + } - while (true) - { - foreach (var block in trainingIterator.Yield(handler, sigma)) - { - Thread.Sleep(100); + //Random random = new Random(); + //INDArray array = new ADNDArray(3, 1, 2, 2); - PrintFormattedBlock(block, PrintUtils.AsciiGreyscalePalette); + //new GaussianInitialiser(0.05, 0.05).Initialise(array, Handler, random); - Thread.Sleep(1000); - } - } + //Console.WriteLine(array); - //Random random = new Random(); - //INDArray array = new ADNDArray(3, 1, 2, 2); + //new ConstantValueInitialiser(1).Initialise(array, Handler, random); - //new GaussianInitialiser(0.05, 0.05).Initialise(array, Handler, random); + //Console.WriteLine(array); - //Console.WriteLine(array); + //dataset.InvalidateAndClearCaches(); + } - //new ConstantValueInitialiser(1).Initialise(array, Handler, random); + private static void PrintFormattedBlock(IDictionary block, char[] palette) + { + foreach (string name in block.Keys) + { + string blockString = name == "inputs" + ? ArrayUtils.ToString(block[name], e => palette[(int)(e * (palette.Length - 1))].ToString(), maxDimensionNewLine: 0, printSeperator: false) + : block[name].ToString(); - //Console.WriteLine(array); - - //dataset.InvalidateAndClearCaches(); - } - - private static void PrintFormattedBlock(IDictionary block, char[] palette) - { - foreach (string name in block.Keys) - { - string blockString = name == "inputs" - ? ArrayUtils.ToString(block[name], e => palette[(int) (e * (palette.Length - 1))].ToString(), maxDimensionNewLine: 0, printSeperator: false) - : block[name].ToString(); - - Console.WriteLine($"[{name}]=\n" + blockString); - } - } - } + Console.WriteLine($"[{name}]=\n" + blockString); + } + } + } } \ No newline at end of file From eec95041f7ce1c596c33e9720752ee81bd9b7f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Thu, 6 Apr 2017 21:04:36 +0200 Subject: [PATCH 07/40] Update SigmaDiff depdenency Update SigmaDiff depdenency (commited wrong version) --- Sigma.Core/Dependencies/DiffSharp.dll | Bin 2149888 -> 2148352 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Sigma.Core/Dependencies/DiffSharp.dll b/Sigma.Core/Dependencies/DiffSharp.dll index 2490c6dc4dbe04145cd7644725e7b803ce2e05a6..0e868b5c0dc585aced1b81c43a1d9eb077cc4836 100644 GIT binary patch delta 473318 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≥f%bII?9dWd%*ZwU<(??nC} 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 delta 475088 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 Date: Thu, 6 Apr 2017 21:15:01 +0200 Subject: [PATCH 08/40] Fix Dataset.FreeBlock race condition --- Sigma.Core/Data/Datasets/Dataset.cs | 30 ++++++++++++------------ Sigma.Tests.Internals.Backend/Program.cs | 4 ++-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Sigma.Core/Data/Datasets/Dataset.cs b/Sigma.Core/Data/Datasets/Dataset.cs index f26923a0..936da151 100644 --- a/Sigma.Core/Data/Datasets/Dataset.cs +++ b/Sigma.Core/Data/Datasets/Dataset.cs @@ -377,11 +377,10 @@ private void RegisterActiveBlock(Dictionary block, int blockIn return; } - RecordBlock recordBlock = new RecordBlock(block, blockIndex, firstNamedBlock.Shape[0], - handler.GetSizeBytes(block.Values.ToArray()), handler) + RecordBlock recordBlock = new RecordBlock(block, blockIndex, firstNamedBlock.Shape[0], handler.GetSizeBytes(block.Values.ToArray()), handler) { Loaded = true, Active = true }; - lock (this) + lock (_activeBlocks) { TotalActiveBlockSizeBytes += recordBlock.EstimatedSizeBytes; TotalActiveRecords += recordBlock.NumberRecords; @@ -745,17 +744,17 @@ private Dictionary ExtractDirectFrom(object[] data, int blockI public void FreeBlock(int blockIndex, IComputationHandler handler) { - if (!_activeBlocks.ContainsKey(blockIndex)) + lock (_activeBlocks) { - _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); + if (!_activeBlocks.ContainsKey(blockIndex)) + { + _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); - return; - } + return; + } - RecordBlock toRemove = null; + RecordBlock toRemove = null; - lock (this) - { foreach (RecordBlock block in _activeBlocks[blockIndex]) { if (ReferenceEquals(block.Handler, handler)) @@ -772,14 +771,15 @@ public void FreeBlock(int blockIndex, IComputationHandler handler) goto FoundBlock; } } - } - _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); + _logger.Debug($"Unable to free block with index {blockIndex} for handler {handler} because no block with that information is currently active."); + + FoundBlock: - FoundBlock: + DeregisterActiveBlock(toRemove); + _logger.Debug($"Done freeing block with index {blockIndex} for handler {handler}."); - DeregisterActiveBlock(toRemove); - _logger.Debug($"Done freeing block with index {blockIndex} for handler {handler}."); + } } private void CacheBlockConstrained(Dictionary block, int blockIndex, IComputationHandler handler) diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 5b36f84e..a4acfac2 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -71,11 +71,11 @@ private static void SampleTrainerOperatorWorkerIris() + FullyConnectedLayer.Construct(10) + FullyConnectedLayer.Construct(3) + OutputLayer.Construct(3) - + SoftMaxCrossEntropyCostLayer.Construct(); + + SquaredDifferenceCostLayer.Construct(); trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); - trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler())); + trainer.Operator = new CpuMultithreadedOperator(workerCount: 2); trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.2)); trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1, mean: 0.0)); From 6c86822fa9f4acdb95b3a49c964ecd3208379d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Fri, 7 Apr 2017 21:36:30 +0200 Subject: [PATCH 09/40] Add auto-use of available processing power in CpuMultithreadedOp Add auto-use of available processing power in CpuMultithreadedOp --- .../NativeCpu/CpuMultithreadedOperator.cs | 15 ++++++++++++++- Sigma.Tests.Internals.Backend/Program.cs | 4 ++-- Sigma.Tests.Internals.WPF/Program.cs | 3 ++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Sigma.Core/Training/Operators/Backends/NativeCpu/CpuMultithreadedOperator.cs b/Sigma.Core/Training/Operators/Backends/NativeCpu/CpuMultithreadedOperator.cs index 737ee21a..da5af8e2 100644 --- a/Sigma.Core/Training/Operators/Backends/NativeCpu/CpuMultithreadedOperator.cs +++ b/Sigma.Core/Training/Operators/Backends/NativeCpu/CpuMultithreadedOperator.cs @@ -81,7 +81,20 @@ public class CpuMultithreadedOperator : BaseOperator /// public ThreadPriority WorkerPriority { get; } - /// + /// + /// Create a new using the default (). + /// The will receive its default value (). + /// + public CpuMultithreadedOperator(double useAvailablePower = 0.5) : this(_InternalGetOptimalCpuWorkerCount(useAvailablePower)) + { + } + + private static int _InternalGetOptimalCpuWorkerCount(double useAvailablePower) + { + return (int) (Environment.ProcessorCount * useAvailablePower); + } + + /// /// Create a new using the default (). /// The will receive its default value (). /// diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index a4acfac2..224205b1 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -44,7 +44,7 @@ private static void Main(string[] args) SigmaEnvironment.EnableLogging(xml: true); SigmaEnvironment.Globals["web_proxy"] = WebUtils.GetProxyFromFileOrDefault(".customproxy"); - SampleTrainerOperatorWorkerIris(); + SampleTrainerOperatorWorkerMnist(); Console.WriteLine("Program ended, waiting for termination, press any key..."); Console.ReadKey(); @@ -144,7 +144,7 @@ private static void SampleTrainerOperatorWorkerMnist() trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); - trainer.Operator = new CpuSinglethreadedOperator(new DebugHandler(new CpuFloat32Handler(), enabled: false)); + trainer.Operator = new CpuMultithreadedOperator(workerCount: 2); trainer.AddInitialiser("*.weights", new XavierInitialiser(scale: 5)); trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index ae3679f8..e99822d2 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -1,4 +1,5 @@ -using LiveCharts.Wpf; +using System; +using LiveCharts.Wpf; using Sigma.Core; using Sigma.Core.Architecture; using Sigma.Core.Data.Datasets; From 53560b2c7be82c1d6683a504757804c698c78fb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Sat, 8 Apr 2017 14:32:07 +0200 Subject: [PATCH 10/40] Fix BaseOperator multi-worker global hooks with iteration timescale Fix BaseOperator multi-worker global hooks with iteration timescale --- .../Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs | 4 ++-- Sigma.Core/Training/Operators/BaseOperator.cs | 2 +- Sigma.sln.DotSettings | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs index 5f168dc0..808b8b57 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs @@ -35,8 +35,8 @@ public abstract class DiffSharpFloat32Handler : IComputationHandler, ISerialisat internal DiffSharpBackendHandle DiffsharpBackendHandle { - get { return _diffsharpBackendHandle; } - private set { _diffsharpBackendHandle = value; } + get => _diffsharpBackendHandle; + private set => _diffsharpBackendHandle = value; } [NonSerialized] diff --git a/Sigma.Core/Training/Operators/BaseOperator.cs b/Sigma.Core/Training/Operators/BaseOperator.cs index 5d954a9f..de19712c 100644 --- a/Sigma.Core/Training/Operators/BaseOperator.cs +++ b/Sigma.Core/Training/Operators/BaseOperator.cs @@ -297,7 +297,7 @@ public void PushProgress(IWorker worker) localIterationNumbers[WorkerIndicesByWorkers[worker]] = worker.LocalIterationNumber; - if (localIterationNumbers.Any(i => i != worker.LocalIterationNumber)) + if (localIterationNumbers.Any(i => i < worker.LocalIterationNumber)) { allWorkersAtIteration = false; } diff --git a/Sigma.sln.DotSettings b/Sigma.sln.DotSettings index 8b5efca9..58b7cff8 100644 --- a/Sigma.sln.DotSettings +++ b/Sigma.sln.DotSettings @@ -58,4 +58,5 @@ True True True - True \ No newline at end of file + True + True \ No newline at end of file From 1e87e11968af59e98c679d4005e7cb8d4a53c9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Sun, 9 Apr 2017 22:04:31 +0200 Subject: [PATCH 11/40] Add disk savior hook, fix serialisability of some base layer types Add disk savior hook, fix serialisability of some base layer types --- Sigma.Core/Architecture/Network.cs | 2 + Sigma.Core/Layers/BaseLayer.cs | 1 + Sigma.Core/Layers/Cost/BaseCostLayer.cs | 2 + Sigma.Core/Sigma.Core.csproj | 2 +- Sigma.Core/Training/Hooks/BaseHook.cs | 11 +++ .../Training/Hooks/Saviors/DiskSaviorHook.cs | 77 +++++++++++++++++++ Sigma.Core/Utils/Registry.cs | 7 +- Sigma.Tests.Internals.Backend/Program.cs | 8 +- 8 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs diff --git a/Sigma.Core/Architecture/Network.cs b/Sigma.Core/Architecture/Network.cs index 1e2b233a..095a99b8 100644 --- a/Sigma.Core/Architecture/Network.cs +++ b/Sigma.Core/Architecture/Network.cs @@ -41,6 +41,8 @@ public class Network : INetwork private readonly List _externalInputsLayerBuffers; private readonly List _externalOutputsLayerBuffers; private List _orderedLayers; + + [NonSerialized] private IComputationHandler _initialisationHandler; private bool _initialised; diff --git a/Sigma.Core/Layers/BaseLayer.cs b/Sigma.Core/Layers/BaseLayer.cs index 22f0bcd0..58171b1b 100644 --- a/Sigma.Core/Layers/BaseLayer.cs +++ b/Sigma.Core/Layers/BaseLayer.cs @@ -15,6 +15,7 @@ namespace Sigma.Core.Layers /// /// A basic base layer to simplify custom layer implementations of the ILayer interface. /// + [Serializable] public abstract class BaseLayer : ILayer { public string Name { get; } diff --git a/Sigma.Core/Layers/Cost/BaseCostLayer.cs b/Sigma.Core/Layers/Cost/BaseCostLayer.cs index 96506071..c1ed7ab3 100644 --- a/Sigma.Core/Layers/Cost/BaseCostLayer.cs +++ b/Sigma.Core/Layers/Cost/BaseCostLayer.cs @@ -6,6 +6,7 @@ MIT License For full license see LICENSE in the root directory of this project. */ +using System; using Sigma.Core.Architecture; using Sigma.Core.Handlers; using Sigma.Core.MathAbstract; @@ -16,6 +17,7 @@ namespace Sigma.Core.Layers.Cost /// /// A base cost layer that takes of getting the predictions and targets sorted out to calculate the cost more easily. /// + [Serializable] public abstract class BaseCostLayer : BaseLayer { /// diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index 086f90b4..b964c061 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -243,6 +243,7 @@ + @@ -314,7 +315,6 @@ - diff --git a/Sigma.Core/Training/Hooks/BaseHook.cs b/Sigma.Core/Training/Hooks/BaseHook.cs index 70958af3..31ae67d9 100644 --- a/Sigma.Core/Training/Hooks/BaseHook.cs +++ b/Sigma.Core/Training/Hooks/BaseHook.cs @@ -114,6 +114,17 @@ protected BaseHook(ITimeStep timestep, ISet requiredRegistryEntries) ParameterRegistry = new Registry(); } + /// + /// Set this hook to be invoked in a background thread. + /// + /// + public BaseHook SetInvokeInBackground() + { + InvokeInBackground = true; + + return this; + } + /// /// Invoke this hook only when a certain hook invoke criteria is satisfied. /// diff --git a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs new file mode 100644 index 00000000..a12fcdc1 --- /dev/null +++ b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs @@ -0,0 +1,77 @@ +/* +MIT License + +Copyright (c) 2016-2017 Florian Cäsar, Michael Plainer + +For full license see LICENSE in the root directory of this project. +*/ + +using System; +using System.IO; +using log4net; +using log4net.Core; +using Sigma.Core.Persistence; +using Sigma.Core.Utils; + +namespace Sigma.Core.Training.Hooks.Saviors +{ + [Serializable] + public class DiskSaviorHook : BaseHook + { + [NonSerialized] + private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + /// + /// Create a savior hook that will automatically serialise a certain registry entry. + /// + /// The time step. + /// + /// The file name to store to disk as. + /// The select function to apply. + /// Indicate whether or not to report when the specified object was serialised. + public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, bool verbose = true) : this(timestep, registryEntryToSave, fileName, o => o, verbose) + { + } + + /// + /// Create a savior hook that will automatically serialise a certain registry entry. + /// + /// The time step. + /// + /// The file name to store to disk as. + /// The select function to apply. + /// Indicate whether or not to report when the specified object was serialised. + public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, Func selectFunction, bool verbose = true) : base(timestep, registryEntryToSave) + { + ParameterRegistry["registry_entry_to_save"] = registryEntryToSave ?? throw new ArgumentNullException(nameof(registryEntryToSave)); + ParameterRegistry["file_name"] = fileName ?? throw new ArgumentNullException(nameof(fileName)); + ParameterRegistry["select_function"] = selectFunction ?? throw new ArgumentNullException(nameof(selectFunction)); + ParameterRegistry["verbose"] = verbose; + + DefaultTargetMode = TargetMode.Global; + } + + /// + /// Invoke this hook with a certain parameter registry if optional conditional criteria are satisfied. + /// + /// The registry containing the required values for this hook's execution. + /// A helper resolver for complex registry entries (automatically cached). + public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) + { + string registryEntryToSave = ParameterRegistry.Get("registry_entry_to_save"); + string fileName = ParameterRegistry.Get("file_name"); + object toSerialise = resolver.ResolveGetSingle(registryEntryToSave); + bool verbose = ParameterRegistry.Get("verbose"); + Func selectFunction = ParameterRegistry.Get>("select_function"); + + toSerialise = selectFunction.Invoke((T) toSerialise); + + Serialisation.WriteBinaryFile(toSerialise, fileName, verbose: false); + + if (verbose) + { + _logger.Info($"Saved \"{registryEntryToSave}\" to \"{SigmaEnvironment.Globals.Get("storage_path")}/{fileName}\"."); + } + } + } +} diff --git a/Sigma.Core/Utils/Registry.cs b/Sigma.Core/Utils/Registry.cs index 6ffa285f..3ec3a6bd 100644 --- a/Sigma.Core/Utils/Registry.cs +++ b/Sigma.Core/Utils/Registry.cs @@ -372,7 +372,12 @@ public IEnumerator GetValueIterator() return MappedValues.Values.GetEnumerator(); } - public override string ToString() + public override string ToString() + { + return $"registry tagged as {(Tags.Count == 0 ? "" : string.Join("", Tags))} with {MappedValues.Count} entries"; + } + + public string FancyToString() { StringBuilder str = new StringBuilder(); diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 224205b1..58bc0e15 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -32,6 +32,7 @@ using System.Diagnostics; using System.Linq; using System.Threading; +using Sigma.Core.Training.Hooks.Saviors; namespace Sigma.Tests.Internals.Backend { @@ -44,7 +45,7 @@ private static void Main(string[] args) SigmaEnvironment.EnableLogging(xml: true); SigmaEnvironment.Globals["web_proxy"] = WebUtils.GetProxyFromFileOrDefault(".customproxy"); - SampleTrainerOperatorWorkerMnist(); + SampleTrainerOperatorWorkerIris(); Console.WriteLine("Program ended, waiting for termination, press any key..."); Console.ReadKey(); @@ -85,6 +86,7 @@ private static void SampleTrainerOperatorWorkerIris() trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddHook(new DiskSaviorHook(TimeStep.Every(1, TimeScale.Epoch), "network.self", "iris.sgnet")); //trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); @@ -94,7 +96,7 @@ private static void SampleTrainerOperatorWorkerIris() sigma.AddTrainer(trainer); //trainer.Operator.InvokeCommand(new TestCommand(() => { throw new NotImplementedException(); }, "optimiser.learning_rate")); - trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02d, () => {/* finished */})); + trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02, () => {/* finished */})); sigma.Run(); } @@ -137,7 +139,7 @@ private static void SampleTrainerOperatorWorkerMnist() trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(28, 28) - + FullyConnectedLayer.Construct(28 * 28) + + 2 * FullyConnectedLayer.Construct(28 * 28) + FullyConnectedLayer.Construct(10) + OutputLayer.Construct(10) + SquaredDifferenceCostLayer.Construct(); From 916642253ddf36bd4777d21f79aab4a96aefc294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Mon, 10 Apr 2017 15:39:29 +0200 Subject: [PATCH 12/40] Fix compatibility with previous C# version (unit tests) Fix compatibility with previous C# version (unit tests) --- .../Backends/SigmaDiff/DiffSharpFloat32Handler.cs | 6 +++--- Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs index 808b8b57..61c9609f 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs @@ -35,9 +35,9 @@ public abstract class DiffSharpFloat32Handler : IComputationHandler, ISerialisat internal DiffSharpBackendHandle DiffsharpBackendHandle { - get => _diffsharpBackendHandle; - private set => _diffsharpBackendHandle = value; - } + get { return _diffsharpBackendHandle; } + private set { _diffsharpBackendHandle = value; } + } [NonSerialized] private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); diff --git a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs index a12fcdc1..484e3773 100644 --- a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs +++ b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs @@ -43,9 +43,13 @@ public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fil /// Indicate whether or not to report when the specified object was serialised. public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, Func selectFunction, bool verbose = true) : base(timestep, registryEntryToSave) { - ParameterRegistry["registry_entry_to_save"] = registryEntryToSave ?? throw new ArgumentNullException(nameof(registryEntryToSave)); - ParameterRegistry["file_name"] = fileName ?? throw new ArgumentNullException(nameof(fileName)); - ParameterRegistry["select_function"] = selectFunction ?? throw new ArgumentNullException(nameof(selectFunction)); + if (registryEntryToSave == null) throw new ArgumentNullException(nameof(registryEntryToSave)); + if (fileName == null) throw new ArgumentNullException(nameof(fileName)); + if (selectFunction == null) throw new ArgumentNullException(nameof(selectFunction)); + + ParameterRegistry["registry_entry_to_save"] = registryEntryToSave; + ParameterRegistry["file_name"] = fileName; + ParameterRegistry["select_function"] = selectFunction; ParameterRegistry["verbose"] = verbose; DefaultTargetMode = TargetMode.Global; From d3bf406a0b6af12af7dc986b643e096b8d3b4ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Mon, 10 Apr 2017 20:45:07 +0200 Subject: [PATCH 13/40] Fix registry serialisation issues with hierarchy change listeners, optimised serialisation object traversal Fix registry serialisation issues with hierarchy change listeners, optimised serialisation object traversal --- .../ParameterisationManager.cs | 1 + Sigma.Core/Persistence/Serialisation.cs | 18 ++++--- Sigma.Core/Utils/LoggingUtils.cs | 17 ++++--- Sigma.Core/Utils/Registry.cs | 49 +++++++++++++++---- 4 files changed, 62 insertions(+), 23 deletions(-) diff --git a/Sigma.Core/Parameterisation/ParameterisationManager.cs b/Sigma.Core/Parameterisation/ParameterisationManager.cs index 9f267cad..ef7c16e6 100644 --- a/Sigma.Core/Parameterisation/ParameterisationManager.cs +++ b/Sigma.Core/Parameterisation/ParameterisationManager.cs @@ -16,6 +16,7 @@ namespace Sigma.Core.Parameterisation /// /// A parameterisation /// + [Serializable] public class ParameterisationManager : IParameterisationManager { private readonly IDictionary _identifierMappings; diff --git a/Sigma.Core/Persistence/Serialisation.cs b/Sigma.Core/Persistence/Serialisation.cs index bf8ebe59..2e0a7b77 100644 --- a/Sigma.Core/Persistence/Serialisation.cs +++ b/Sigma.Core/Persistence/Serialisation.cs @@ -14,6 +14,7 @@ For full license see LICENSE in the root directory of this project. using System.Runtime.Serialization; using log4net; using log4net.Core; +using Sigma.Core.Parameterisation; using Sigma.Core.Utils; namespace Sigma.Core.Persistence @@ -36,7 +37,7 @@ public static class Serialisation /// Optionally indicate where the log messages should written to (verbose = Info, otherwise Debug). public static void WriteBinaryFile(object obj, string filename, bool verbose = true) { - Write(obj, Target.FileByName(filename), Serialisers.BinarySerialiser, verbose); + Write(obj, Target.FileByName(filename), Serialisers.BinarySerialiser, verbose: verbose); } /// @@ -63,7 +64,8 @@ public static T ReadBinaryFile(string filename, bool verbose = true) /// The serialiser. /// Optionally indicate if the stream should be automatically closed. /// Optionally indicate where the log messages should written to (verbose = Info, otherwise Debug). - public static void Write(object obj, Stream target, ISerialiser serialiser, bool autoClose = true, bool verbose = true) + /// The number of bytes written (if exposed by the used target stream). + public static long Write(object obj, Stream target, ISerialiser serialiser, bool autoClose = true, bool verbose = true) { if (obj == null) throw new ArgumentNullException(nameof(obj)); if (target == null) throw new ArgumentNullException(nameof(target)); @@ -75,7 +77,7 @@ public static void Write(object obj, Stream target, ISerialiser serialiser, bool long beforePosition = target.Position; TraverseObjectGraph(obj, new HashSet(), (p, f, o) => (o as ISerialisationNotifier)?.OnSerialising()); - serialiser.Write(obj, target); + serialiser.Write(obj, target); TraverseObjectGraph(obj, new HashSet(), (p, f, o) => (o as ISerialisationNotifier)?.OnSerialised()); target.Flush(); @@ -86,6 +88,8 @@ public static void Write(object obj, Stream target, ISerialiser serialiser, bool LoggingUtils.Log(verbose ? Level.Info : Level.Debug, $"Done writing {obj.GetType().Name} {obj} to target stream {target} using serialiser {serialiser}, " + $"wrote {(bytesWritten / 1024.0):#.#}kB, took {stopwatch.ElapsedMilliseconds}ms.", ClazzLogger); + + return bytesWritten; } /// @@ -145,7 +149,7 @@ internal static void TraverseObjectGraph(object root, ISet traversedObje do { FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); - + // hierarchy change listeners.. // for every type check all fields for relevance foreach (FieldInfo field in fields) { @@ -158,11 +162,11 @@ internal static void TraverseObjectGraph(object root, ISet traversedObje if (value != null) { - // TODO smarter optimisation than checking for system namespace, maybe build cache with type information? + // Note: I am completely aware how awful this "optimisation" is, but it works and there currently is no time to implement a better system. string ns = value.GetType().Namespace; - bool boringSystemType = ns.StartsWith("System") && !ns.StartsWith("System.Collections"); + bool boringType = ns.StartsWith("System") && !ns.StartsWith("System.Collections") || ns.StartsWith("log4net"); - if (!boringSystemType && !traversedObjects.Contains(value)) + if (!boringType && !traversedObjects.Contains(value) && !Attribute.IsDefined(field, typeof(NonSerializedAttribute))) { TraverseObjectGraph(value, traversedObjects, action); diff --git a/Sigma.Core/Utils/LoggingUtils.cs b/Sigma.Core/Utils/LoggingUtils.cs index 5156b49d..2039964e 100644 --- a/Sigma.Core/Utils/LoggingUtils.cs +++ b/Sigma.Core/Utils/LoggingUtils.cs @@ -6,6 +6,7 @@ MIT License For full license see LICENSE in the root directory of this project. */ +using System; using log4net; using log4net.Core; @@ -24,26 +25,30 @@ public static class LoggingUtils /// The logger to use. public static void Log(Level level, string message, ILog logger) { - if (level == Level.Fatal) + if (level.Value == Level.Fatal.Value) { logger.Fatal(message); } - else if (level == Level.Error) + else if (level.Value == Level.Error.Value) { logger.Error(message); } - else if (level == Level.Warn) + else if (level.Value == Level.Warn.Value) { logger.Warn(message); } - else if (level == Level.Info) + else if (level.Value == Level.Info.Value) { logger.Info(message); } - else if (level == Level.Debug) + else if (level.Value == Level.Debug.Value) { logger.Debug(message); } - } + else + { + throw new ArgumentException($"Level {level} is not a supported logging level (supported levels are fatal, error, warn, info, debug)."); + } + } } } diff --git a/Sigma.Core/Utils/Registry.cs b/Sigma.Core/Utils/Registry.cs index 3ec3a6bd..fe0e4e48 100644 --- a/Sigma.Core/Utils/Registry.cs +++ b/Sigma.Core/Utils/Registry.cs @@ -13,6 +13,7 @@ For full license see LICENSE in the root directory of this project. using System.Linq; using System.Text; using System.Text.RegularExpressions; +using Sigma.Core.Persistence; namespace Sigma.Core.Utils { @@ -22,12 +23,15 @@ namespace Sigma.Core.Utils /// Registries can be chained and represent a hierarchy, which can then be referred to using dot notation. /// [Serializable] - public class Registry : IRegistry + public class Registry : IRegistry, ISerialisationNotifier { internal Dictionary MappedValues; internal Dictionary AssociatedTypes; - public bool CheckTypes + [NonSerialized] + private ISet _hierarchyChangeListeners; + + public bool CheckTypes { get; set; } = true; @@ -51,14 +55,17 @@ public bool ExceptionOnCopyNonDeepCopyable public ISet Tags { get; } - public ISet HierarchyChangeListeners { get; } + public ISet HierarchyChangeListeners + { + get { return _hierarchyChangeListeners; } + } - /// - /// Create a registry with a certain (optional) parent and an (optional) list of tags. - /// - /// The optional parent to this registry. - /// The optional tags to this registry. - public Registry(IRegistry parent = null, params string[] tags) + /// + /// Create a registry with a certain (optional) parent and an (optional) list of tags. + /// + /// The optional parent to this registry. + /// The optional tags to this registry. + public Registry(IRegistry parent = null, params string[] tags) { Parent = parent; Root = Parent?.Root ?? Parent; @@ -72,7 +79,7 @@ public Registry(IRegistry parent = null, params string[] tags) } Tags = new HashSet(tags); - HierarchyChangeListeners = new HashSet(); + _hierarchyChangeListeners = new HashSet(); } public object DeepCopy() @@ -408,6 +415,28 @@ public bool RegistryContentEquals(IRegistry other) { return other != null && MappedValues.Count == other.Count && MappedValues.Keys.All(k => other.ContainsKey(k) && Equals(MappedValues[k], other[k])); } + + /// + /// Called before this object is serialised. + /// + public void OnSerialising() + { + } + + /// + /// Called after this object was serialised. + /// + public void OnSerialised() + { + } + + /// + /// Called after this object was de-serialised. + /// + public void OnDeserialised() + { + _hierarchyChangeListeners = new HashSet(); + } } /// From 6be2c973ebeb29c47cab5a750bf57b4e33065ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Wed, 12 Apr 2017 21:20:50 +0200 Subject: [PATCH 14/40] Add read and validation for existing objects from binary files in serialisation Add read and validation for existing objects from binary files in serialisation --- Sigma.Core/Persistence/Serialisation.cs | 40 +++++++++++++++++++++--- Sigma.Tests.Internals.Backend/Program.cs | 2 ++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/Sigma.Core/Persistence/Serialisation.cs b/Sigma.Core/Persistence/Serialisation.cs index 2e0a7b77..54c07db3 100644 --- a/Sigma.Core/Persistence/Serialisation.cs +++ b/Sigma.Core/Persistence/Serialisation.cs @@ -77,7 +77,7 @@ public static long Write(object obj, Stream target, ISerialiser serialiser, bool long beforePosition = target.Position; TraverseObjectGraph(obj, new HashSet(), (p, f, o) => (o as ISerialisationNotifier)?.OnSerialising()); - serialiser.Write(obj, target); + serialiser.Write(obj, target); TraverseObjectGraph(obj, new HashSet(), (p, f, o) => (o as ISerialisationNotifier)?.OnSerialised()); target.Flush(); @@ -89,7 +89,7 @@ public static long Write(object obj, Stream target, ISerialiser serialiser, bool LoggingUtils.Log(verbose ? Level.Info : Level.Debug, $"Done writing {obj.GetType().Name} {obj} to target stream {target} using serialiser {serialiser}, " + $"wrote {(bytesWritten / 1024.0):#.#}kB, took {stopwatch.ElapsedMilliseconds}ms.", ClazzLogger); - return bytesWritten; + return bytesWritten; } /// @@ -134,6 +134,38 @@ public static T Read(Stream target, ISerialiser serialiser, bool verbose = tr return (T) read; } + /// + /// Attempt to read and validate certain object from a binary file, return the original value if unsuccessful. + /// + /// The object type. + /// The file name. + /// The original value. + /// Optionally indicate where the log messages should written to (verbose = Info, otherwise Debug). + /// The optional validation function to validate the read object with (if false, the original value is returned). + /// The read (i.e. existing) if successfully read and validated, otherwise the original value. + public static T ReadFromBinaryFileIfExists(string fileName, T originalValue, bool verbose = true, Func validationFunction = null) + { + try + { + T existing = ReadBinaryFile(fileName, verbose); + + if (validationFunction == null || validationFunction.Invoke(existing)) + { + LoggingUtils.Log(verbose ? Level.Info : Level.Debug, $"Read and validation of type {typeof(T)} successful, returning existing value.", ClazzLogger); + + return existing; + } + + LoggingUtils.Log(verbose ? Level.Info : Level.Debug, $"Read of type {typeof(T)} successful, validation failed, returning default value.", ClazzLogger); + } + catch (Exception e) + { + LoggingUtils.Log(verbose ? Level.Info : Level.Debug, $"Read of type {typeof(T)} failed with {e}, returning default value.", ClazzLogger); + } + + return originalValue; + } + /// /// Traverse the object graph of a given object (i.e. all related and referenced objects, recursively). /// @@ -149,7 +181,7 @@ internal static void TraverseObjectGraph(object root, ISet traversedObje do { FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); - // hierarchy change listeners.. + // hierarchy change listeners.. // for every type check all fields for relevance foreach (FieldInfo field in fields) { @@ -162,7 +194,7 @@ internal static void TraverseObjectGraph(object root, ISet traversedObje if (value != null) { - // Note: I am completely aware how awful this "optimisation" is, but it works and there currently is no time to implement a better system. + // Note: I am completely aware how awful this "optimisation" is, but it works and there currently is no time to implement a better system. string ns = value.GetType().Namespace; bool boringType = ns.StartsWith("System") && !ns.StartsWith("System.Collections") || ns.StartsWith("log4net"); diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 58bc0e15..b004fc21 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -73,6 +73,8 @@ private static void SampleTrainerOperatorWorkerIris() + FullyConnectedLayer.Construct(3) + OutputLayer.Construct(3) + SquaredDifferenceCostLayer.Construct(); + trainer.Network = Serialisation.ReadFromBinaryFileIfExists("iris.sgnet", trainer.Network); + trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); From fada53ae3318acd48d65a9f5a60faef5ab3a6398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Thu, 13 Apr 2017 23:12:35 +0200 Subject: [PATCH 15/40] Add network recovery when resuming training, fix serialisation issue with criteria Add network recovery when resuming training, fix serialisation issue with criteria --- Sigma.Core/Architecture/INetwork.cs | 10 + Sigma.Core/Architecture/Network.cs | 484 +++++----- .../Training/Hooks/HookInvokeCriteria.cs | 1 + .../Training/Hooks/Saviors/DiskSaviorHook.cs | 37 +- Sigma.Core/Training/ITrainer.cs | 8 +- Sigma.Core/Training/Trainer.cs | 826 ++++++++++-------- Sigma.Tests.Internals.Backend/Program.cs | 2 +- 7 files changed, 745 insertions(+), 623 deletions(-) diff --git a/Sigma.Core/Architecture/INetwork.cs b/Sigma.Core/Architecture/INetwork.cs index 5666ab18..b99ace47 100644 --- a/Sigma.Core/Architecture/INetwork.cs +++ b/Sigma.Core/Architecture/INetwork.cs @@ -34,6 +34,16 @@ public interface INetwork : IDeepCopyable /// IRegistry Registry { get; } + /// + /// The computation handler associated with this network, which is used for initialisation and copy operations. + /// + IComputationHandler AssociatedHandler { get; set; } + + /// + /// Indicate if this network was already initialised. + /// + bool Initialised { get; } + /// /// Validate this network (e.g. ensure all connections are correctly assigned and compatible). /// diff --git a/Sigma.Core/Architecture/Network.cs b/Sigma.Core/Architecture/Network.cs index 095a99b8..0c04e528 100644 --- a/Sigma.Core/Architecture/Network.cs +++ b/Sigma.Core/Architecture/Network.cs @@ -19,268 +19,284 @@ For full license see LICENSE in the root directory of this project. namespace Sigma.Core.Architecture { - /// - /// A default implementation of the interface. - /// Represents a neural network consisting of interconnected neural layers and a network architecture. - /// - [Serializable] - public class Network : INetwork - { - /// - public INetworkArchitecture Architecture { get; set; } - - /// - public string Name { get; } - - /// - public IRegistry Registry { get; } - - [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private readonly List _orderedLayerBuffers; - private readonly List _externalInputsLayerBuffers; - private readonly List _externalOutputsLayerBuffers; - private List _orderedLayers; + /// + /// A default implementation of the interface. + /// Represents a neural network consisting of interconnected neural layers and a network architecture. + /// + [Serializable] + public class Network : INetwork + { + /// + public INetworkArchitecture Architecture { get; set; } + + /// + public string Name { get; } + + /// + public IRegistry Registry { get; } + + /// + /// The computation handler associated with this network, which is used for initialisation and copy operations. + /// Note: Set this + /// + public IComputationHandler AssociatedHandler + { + get { return _associatedHandler; } + set { _associatedHandler = value; } + } + + /// + public bool Initialised { get { return _initialised; } } [NonSerialized] - private IComputationHandler _initialisationHandler; - private bool _initialised; - - /// - /// Create a network with a certain unique name. - /// - /// The name. - public Network(string name = "unnamed") - { - if (name == null) throw new ArgumentNullException(nameof(name)); - - Name = name; - Registry = new Registry(tags: "network"); - _orderedLayerBuffers = new List(); - _externalInputsLayerBuffers = new List(); - _externalOutputsLayerBuffers = new List(); - } - - /// - public virtual object DeepCopy() - { - Network copy = new Network(Name); - copy.Architecture = (INetworkArchitecture) Architecture.DeepCopy(); - - if (_initialised) - { - copy.Initialise(_initialisationHandler); - - for (int i = 0; i < _orderedLayerBuffers.Count; i++) - { - InternalLayerBuffer originalBuffer = _orderedLayerBuffers[i]; - InternalLayerBuffer copyBuffer = copy._orderedLayerBuffers[i]; - - foreach (string parameterIdentifier in originalBuffer.Parameters.Keys.ToArray()) - { - object value = originalBuffer.Parameters[parameterIdentifier]; - IDeepCopyable deepCopyableValue = value as IDeepCopyable; - object copiedValue; + private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private readonly List _orderedLayerBuffers; + private readonly List _externalInputsLayerBuffers; + private readonly List _externalOutputsLayerBuffers; + private List _orderedLayers; - // copy and copy efficiently by any means possible - if (deepCopyableValue == null) - { - ICloneable cloneableValue = value as ICloneable; - copiedValue = cloneableValue?.Clone() ?? value; - } - else - { - INDArray asNDArray = value as INDArray; - - if (asNDArray != null) - { - _initialisationHandler.Fill(asNDArray, copyBuffer.Parameters.Get(parameterIdentifier)); - } - - copiedValue = deepCopyableValue.DeepCopy(); - } - - copyBuffer.Parameters[parameterIdentifier] = copiedValue; - } - } - } - - return copy; - } - - /// - public void Validate() - { - if (Architecture == null) - { - throw new InvalidOperationException("Cannot validate network before assigning a network architecture."); - } - - Architecture.Validate(); - } - - /// - public void Initialise(IComputationHandler handler) - { - if (handler == null) throw new ArgumentNullException(nameof(handler)); - - if (Architecture == null) - { - throw new InvalidOperationException("Cannot initialise network before assigning a network architecture."); - } - - _logger.Debug($"Initialising network \"{Name}\" for handler {handler} containing {Architecture.LayerCount} layers..."); - - _initialisationHandler = handler; - - ITaskObserver prepareTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Prepare); - - Architecture.ResolveAllNames(); - - _orderedLayerBuffers.Clear(); - _externalInputsLayerBuffers.Clear(); - _externalOutputsLayerBuffers.Clear(); - - Dictionary, IRegistry> mappedRegistriesByInOutputs = new Dictionary, IRegistry>(); - - foreach (LayerConstruct layerConstruct in Architecture.YieldLayerConstructsOrdered()) - { - ILayer layer = layerConstruct.InstantiateLayer(handler); - - Dictionary inputs = new Dictionary(); - - foreach (string externalInputAlias in layerConstruct.ExternalInputs) - { - inputs[externalInputAlias] = new Registry(tags: "external_input"); - } - - foreach (string inputAlias in layerConstruct.Inputs.Keys) - { - inputs[inputAlias] = mappedRegistriesByInOutputs[new Tuple(layerConstruct.Inputs[inputAlias], layerConstruct)]; - } - - Dictionary outputs = new Dictionary(); - - foreach (string externalOutputAlias in layerConstruct.ExternalOutputs) - { - outputs[externalOutputAlias] = new Registry(tags: "external_output"); - } - - foreach (string outputAlias in layerConstruct.Outputs.Keys) - { - LayerConstruct outputConstruct = layerConstruct.Outputs[outputAlias]; - - Tuple inOuTuple = new Tuple(layerConstruct, outputConstruct); + [NonSerialized] + private IComputationHandler _associatedHandler; + private bool _initialised; + + /// + /// Create a network with a certain unique name. + /// + /// The name. + public Network(string name = "unnamed") + { + if (name == null) throw new ArgumentNullException(nameof(name)); + + Name = name; + Registry = new Registry(tags: "network"); + _orderedLayerBuffers = new List(); + _externalInputsLayerBuffers = new List(); + _externalOutputsLayerBuffers = new List(); + } + + /// + public virtual object DeepCopy() + { + Network copy = new Network(Name); + copy.Architecture = (INetworkArchitecture) Architecture.DeepCopy(); + + if (_initialised) + { + copy.Initialise(_associatedHandler); + + for (int i = 0; i < _orderedLayerBuffers.Count; i++) + { + InternalLayerBuffer originalBuffer = _orderedLayerBuffers[i]; + InternalLayerBuffer copyBuffer = copy._orderedLayerBuffers[i]; + + foreach (string parameterIdentifier in originalBuffer.Parameters.Keys.ToArray()) + { + object value = originalBuffer.Parameters[parameterIdentifier]; + IDeepCopyable deepCopyableValue = value as IDeepCopyable; + object copiedValue; + + // copy and copy efficiently by any means possible + if (deepCopyableValue == null) + { + ICloneable cloneableValue = value as ICloneable; + copiedValue = cloneableValue?.Clone() ?? value; + } + else + { + INDArray asNDArray = value as INDArray; + + if (asNDArray != null) + { + _associatedHandler.Fill(asNDArray, copyBuffer.Parameters.Get(parameterIdentifier)); + copiedValue = copyBuffer.Parameters.Get(parameterIdentifier); + } + else + { + copiedValue = deepCopyableValue.DeepCopy(); + } + } + + copyBuffer.Parameters[parameterIdentifier] = copiedValue; + } + } + } + + return copy; + } + + /// + public void Validate() + { + if (Architecture == null) + { + throw new InvalidOperationException("Cannot validate network before assigning a network architecture."); + } + + Architecture.Validate(); + } + + /// + public void Initialise(IComputationHandler handler) + { + if (handler == null) throw new ArgumentNullException(nameof(handler)); + + if (Architecture == null) + { + throw new InvalidOperationException("Cannot initialise network before assigning a network architecture."); + } + + _logger.Debug($"Initialising network \"{Name}\" for handler {handler} containing {Architecture.LayerCount} layers..."); + + _associatedHandler = handler; + + ITaskObserver prepareTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Prepare); + + Architecture.ResolveAllNames(); + + _orderedLayerBuffers.Clear(); + _externalInputsLayerBuffers.Clear(); + _externalOutputsLayerBuffers.Clear(); + + Dictionary, IRegistry> mappedRegistriesByInOutputs = new Dictionary, IRegistry>(); + + foreach (LayerConstruct layerConstruct in Architecture.YieldLayerConstructsOrdered()) + { + ILayer layer = layerConstruct.InstantiateLayer(handler); + + Dictionary inputs = new Dictionary(); + + foreach (string externalInputAlias in layerConstruct.ExternalInputs) + { + inputs[externalInputAlias] = new Registry(tags: "external_input"); + } - Registry outRegistry = new Registry(tags: "internal"); + foreach (string inputAlias in layerConstruct.Inputs.Keys) + { + inputs[inputAlias] = mappedRegistriesByInOutputs[new Tuple(layerConstruct.Inputs[inputAlias], layerConstruct)]; + } - mappedRegistriesByInOutputs.Add(inOuTuple, outRegistry); + Dictionary outputs = new Dictionary(); - outputs[outputAlias] = outRegistry; - } + foreach (string externalOutputAlias in layerConstruct.ExternalOutputs) + { + outputs[externalOutputAlias] = new Registry(tags: "external_output"); + } - InternalLayerBuffer layerBuffer = new InternalLayerBuffer(layer, layerConstruct.Parameters, inputs, outputs, - layerConstruct.ExternalInputs, layerConstruct.ExternalOutputs); + foreach (string outputAlias in layerConstruct.Outputs.Keys) + { + LayerConstruct outputConstruct = layerConstruct.Outputs[outputAlias]; + + Tuple inOuTuple = new Tuple(layerConstruct, outputConstruct); - _orderedLayerBuffers.Add(layerBuffer); + Registry outRegistry = new Registry(tags: "internal"); + + mappedRegistriesByInOutputs.Add(inOuTuple, outRegistry); + + outputs[outputAlias] = outRegistry; + } - if (layerConstruct.ExternalInputs.Length > 0) - { - _externalInputsLayerBuffers.Add(layerBuffer); - } + InternalLayerBuffer layerBuffer = new InternalLayerBuffer(layer, layerConstruct.Parameters, inputs, outputs, + layerConstruct.ExternalInputs, layerConstruct.ExternalOutputs); + + _orderedLayerBuffers.Add(layerBuffer); + + if (layerConstruct.ExternalInputs.Length > 0) + { + _externalInputsLayerBuffers.Add(layerBuffer); + } - if (layerConstruct.ExternalOutputs.Length > 0) - { - _externalOutputsLayerBuffers.Add(layerBuffer); - } - } + if (layerConstruct.ExternalOutputs.Length > 0) + { + _externalOutputsLayerBuffers.Add(layerBuffer); + } + } - _orderedLayers = _orderedLayerBuffers.ConvertAll(buffer => buffer.Layer); + _orderedLayers = _orderedLayerBuffers.ConvertAll(buffer => buffer.Layer); - UpdateRegistry(); + UpdateRegistry(); - SigmaEnvironment.TaskManager.EndTask(prepareTask); + SigmaEnvironment.TaskManager.EndTask(prepareTask); - _initialised = true; + _initialised = true; - _logger.Debug($"Done initialising network \"{Name}\" for handler {handler} containing {Architecture.LayerCount} layers."); - } + _logger.Debug($"Done initialising network \"{Name}\" for handler {handler} containing {Architecture.LayerCount} layers."); + } - protected virtual void UpdateRegistry() - { - Registry.Clear(); + protected virtual void UpdateRegistry() + { + Registry.Clear(); - Registry["initialised"] = _initialised; - Registry["self"] = this; - Registry["name"] = Name; - Registry["architecture"] = Architecture?.Registry; + Registry["initialised"] = _initialised; + Registry["self"] = this; + Registry["name"] = Name; + Registry["architecture"] = Architecture?.Registry; - Registry layersRegistry = new Registry(Registry); - Registry["layers"] = layersRegistry; + Registry layersRegistry = new Registry(Registry); + Registry["layers"] = layersRegistry; - foreach (InternalLayerBuffer layerBuffer in _orderedLayerBuffers) - { - layersRegistry[layerBuffer.Layer.Name] = layerBuffer.Layer.Parameters; - } - } + foreach (InternalLayerBuffer layerBuffer in _orderedLayerBuffers) + { + layersRegistry[layerBuffer.Layer.Name] = layerBuffer.Layer.Parameters; + } + } - /// - public void Run(IComputationHandler handler, bool trainingPass) - { - if (handler == null) throw new ArgumentNullException(nameof(handler)); + /// + public void Run(IComputationHandler handler, bool trainingPass) + { + if (handler == null) throw new ArgumentNullException(nameof(handler)); - foreach (InternalLayerBuffer layerBuffer in _orderedLayerBuffers) - { - layerBuffer.Layer.Run(layerBuffer, handler, trainingPass); - } - } + foreach (InternalLayerBuffer layerBuffer in _orderedLayerBuffers) + { + layerBuffer.Layer.Run(layerBuffer, handler, trainingPass); + } + } - /// - public void Reset() - { - _logger.Debug($"Resetting network \"{Name}\" to un-initialised state..."); + /// + public void Reset() + { + _logger.Debug($"Resetting network \"{Name}\" to un-initialised state..."); - _orderedLayerBuffers.Clear(); - _orderedLayers.Clear(); - _externalInputsLayerBuffers.Clear(); - _externalOutputsLayerBuffers.Clear(); + _orderedLayerBuffers.Clear(); + _orderedLayers.Clear(); + _externalInputsLayerBuffers.Clear(); + _externalOutputsLayerBuffers.Clear(); - _initialised = false; - _initialisationHandler = null; + _initialised = false; + _associatedHandler = null; - UpdateRegistry(); + UpdateRegistry(); - _logger.Debug($"Done resetting network \"{Name}\". All layer buffer information was discarded."); - } + _logger.Debug($"Done resetting network \"{Name}\". All layer buffer information was discarded."); + } - /// - public IEnumerable YieldLayersOrdered() - { - return _orderedLayers; - } + /// + public IEnumerable YieldLayersOrdered() + { + return _orderedLayers; + } - /// - public IEnumerable YieldLayerBuffersOrdered() - { - return _orderedLayerBuffers; - } + /// + public IEnumerable YieldLayerBuffersOrdered() + { + return _orderedLayerBuffers; + } - /// - public IEnumerable YieldExternalInputsLayerBuffers() - { - return _externalInputsLayerBuffers; - } + /// + public IEnumerable YieldExternalInputsLayerBuffers() + { + return _externalInputsLayerBuffers; + } - /// - public IEnumerable YieldExternalOutputsLayerBuffers() - { - return _externalOutputsLayerBuffers; - } - - /// - public INetworkSelector Select() - { - return new DefaultNetworkSelector(this); - } - } + /// + public IEnumerable YieldExternalOutputsLayerBuffers() + { + return _externalOutputsLayerBuffers; + } + + /// + public INetworkSelector Select() + { + return new DefaultNetworkSelector(this); + } + } } diff --git a/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs b/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs index 493d3328..2914febd 100644 --- a/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs +++ b/Sigma.Core/Training/Hooks/HookInvokeCriteria.cs @@ -370,6 +370,7 @@ public override string ToString() /// /// An extrema criteria that fires when a value has reached a new extrema (min / max). /// + [Serializable] public class ExtremaCriteria : HookInvokeCriteria { /// diff --git a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs index 484e3773..654c945a 100644 --- a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs +++ b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs @@ -7,14 +7,16 @@ For full license see LICENSE in the root directory of this project. */ using System; -using System.IO; using log4net; -using log4net.Core; using Sigma.Core.Persistence; using Sigma.Core.Utils; namespace Sigma.Core.Training.Hooks.Saviors { + /// + /// A disk savior hook for selectively storing certain objects on disk on certain conditions / at certain intervals. + /// + /// The type of object to store. [Serializable] public class DiskSaviorHook : BaseHook { @@ -27,12 +29,34 @@ public class DiskSaviorHook : BaseHook /// The time step. /// /// The file name to store to disk as. - /// The select function to apply. + /// Indicate whether or not to report when the specified object was serialised. + public DiskSaviorHook(string registryEntryToSave, string fileName, bool verbose = true) : this(Utils.TimeStep.Every(1, TimeScale.Iteration), registryEntryToSave, fileName, verbose) + { + } + + /// + /// Create a savior hook that will automatically serialise a certain registry entry. + /// + /// The time step. + /// + /// The file name to store to disk as. /// Indicate whether or not to report when the specified object was serialised. public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, bool verbose = true) : this(timestep, registryEntryToSave, fileName, o => o, verbose) { } + /// + /// Create a savior hook that will automatically serialise a certain registry entry. + /// + /// The time step. + /// + /// The file name to store to disk as. + /// The select function to apply. + /// Indicate whether or not to report when the specified object was serialised. + public DiskSaviorHook(string registryEntryToSave, string fileName, Func selectFunction, bool verbose = true) : this(Utils.TimeStep.Every(1, TimeScale.Iteration), registryEntryToSave, fileName, selectFunction, verbose) + { + } + /// /// Create a savior hook that will automatically serialise a certain registry entry. /// @@ -70,11 +94,14 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) toSerialise = selectFunction.Invoke((T) toSerialise); - Serialisation.WriteBinaryFile(toSerialise, fileName, verbose: false); + lock (fileName) + { + Serialisation.WriteBinaryFile(toSerialise, fileName, verbose: false); + } if (verbose) { - _logger.Info($"Saved \"{registryEntryToSave}\" to \"{SigmaEnvironment.Globals.Get("storage_path")}/{fileName}\"."); + _logger.Info($"Saved \"{registryEntryToSave}\" to \"{SigmaEnvironment.Globals.Get("storage_path")}{fileName}\"."); } } } diff --git a/Sigma.Core/Training/ITrainer.cs b/Sigma.Core/Training/ITrainer.cs index 418ba746..b0dfdcd6 100644 --- a/Sigma.Core/Training/ITrainer.cs +++ b/Sigma.Core/Training/ITrainer.cs @@ -98,6 +98,11 @@ public interface ITrainer /// IRegistry Registry { get; } + /// + /// Force (re-) initialisation of this trainer's , ignoring whether it has already been initialised or not. + /// + bool ForceInitialisation { get; set; } + /// /// Add an initialiser by registry resolve string (e.g. FC*.weights, *.weights, Layer1.biases, Layer2.*). /// Registry resolve notation may be used as the initialiser will be executed on all ndarrays which resolve to a match in a certain layer and match identifier. @@ -143,7 +148,8 @@ public interface ITrainer void AddLocalHook(IHook hook); /// - /// Initialise this trainer and the network to be trained using the set initialisers. Set up all handlers and constructs used to run the trainer. + /// Initialise this trainer and the network to be trained using the set initialisers (if the network is not already initialised or force initialisation is set). + /// Set up all handlers and constructs used to run the trainer. /// /// The computation handler to initialise for (must be the interchangeable with the one used for running the network). void Initialise(IComputationHandler handler); diff --git a/Sigma.Core/Training/Trainer.cs b/Sigma.Core/Training/Trainer.cs index f7b6db59..353184ae 100644 --- a/Sigma.Core/Training/Trainer.cs +++ b/Sigma.Core/Training/Trainer.cs @@ -27,386 +27,448 @@ For full license see LICENSE in the root directory of this project. namespace Sigma.Core.Training { - /// - /// The default implementation. - /// A trainer that defines how a network should be trained, denoting initialisers, optimiser, operator, custom hooks and data to apply and use. - /// - [Serializable] - public class Trainer : ITrainer - { - [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private readonly IList _localHooks; - private readonly IList _globalHooks; - private readonly Dictionary _additionalNameDataIterators; - private readonly IList _allHooks; - private readonly IDictionary _initialisers; - private readonly IDictionary> _valueModifiers; - private bool _initialised; - - public string Name { get; } - public SigmaEnvironment Sigma { get; set; } - public INetwork Network { get; set; } - public IOptimiser Optimiser { get; set; } - public IOperator Operator { get; set; } = new CpuSinglethreadedOperator(); - public IDataProvider DataProvider { get; set; } = new DefaultDataProvider(); - - public IReadOnlyDictionary Initialisers { get; } - public IDataIterator TrainingDataIterator { get; set; } - public IReadOnlyDictionary AdditionalNameDataIterators { get; } - public IReadOnlyCollection Hooks { get; } - public IReadOnlyCollection GlobalHooks { get; } - public IReadOnlyCollection LocalHooks { get; } - public IReadOnlyDictionary> ValueModifiers { get; } - public IRegistry Registry { get; } - - public Trainer(string name) - { - if (name == null) throw new ArgumentNullException(nameof(name)); - - Name = name; - - _allHooks = new List(); - _localHooks = new List(); - _globalHooks = new List(); - _additionalNameDataIterators = new Dictionary(); - _initialisers = new Dictionary(); - _valueModifiers = new Dictionary>(); - - Hooks = new ReadOnlyCollection(_allHooks); - GlobalHooks = new ReadOnlyCollection(_globalHooks); - LocalHooks = new ReadOnlyCollection(_localHooks); - AdditionalNameDataIterators = new ReadOnlyDictionary(_additionalNameDataIterators); - ValueModifiers = new ReadOnlyDictionary>(_valueModifiers); - Initialisers = new ReadOnlyDictionary(_initialisers); - Registry = new Registry(tags: "trainer"); - Registry["self"] = this; - } - - public void AddNamedDataIterator(string name, IDataIterator iterator) - { - if (_additionalNameDataIterators.ContainsKey(name)) - { - throw new ArgumentException($"Named data iterator with name {name} already registered in this trainer ({Name})."); - } - - _additionalNameDataIterators.Add(name, iterator); - } - - public void AddInitialiser(string identifier, IInitialiser initialiser) - { - if (identifier == null) { throw new ArgumentNullException(nameof(identifier)); } - if (initialiser == null) { throw new ArgumentNullException(nameof(initialiser)); } - - if (_initialisers.ContainsKey(identifier)) - { - throw new InvalidOperationException($"Cannot add duplicate identifier {identifier} for initialiser {initialiser}," + - $" identifier is already bound to initialiser {_initialisers[identifier]}"); - } - - _initialisers.Add(identifier, initialiser); - } - - public void AddValueModifier(string identifier, IValueModifier modifier) - { - _valueModifiers.TryGetValue(identifier, () => new HashSet()).Add(modifier); - } - - public void AddHook(IHook hook) - { - if (hook.DefaultTargetMode == TargetMode.Local) - { - AddLocalHook(hook); - } - else if (hook.DefaultTargetMode == TargetMode.Global) - { - AddGlobalHook(hook); - } - else - { - throw new InvalidOperationException($"Ambiguous add hook call for hook {hook} with target mode {hook.DefaultTargetMode}. " + - $"Target mode must be explicitly {nameof(TargetMode.Local)} or {nameof(TargetMode.Global)} for implicit hook add to work" + - $" (i.e. unable to determine where to add this hook, specify it explicitly in the caller)."); - } - } - - public void AddLocalHook(IHook hook) - { - if (Hooks.Contains(hook)) - { - throw new ArgumentException($"Duplicate hook {hook}, hook already registered in this trainer ({Name})."); - } - - _allHooks.Add(hook); - _localHooks.Add(hook); - } - - public void AddGlobalHook(IHook hook) - { - if (Hooks.Contains(hook)) - { - throw new ArgumentException($"Duplicate hook {hook}, hook already registered in this trainer ({Name})."); - } - - _allHooks.Add(hook); - _globalHooks.Add(hook); - } - - public void Initialise(IComputationHandler handler) - { - ValidateAssignedComponents(); - - _logger.Info($"Initialising trainer \"{Name}\" with handler {handler}..."); - - ITaskObserver prepareTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Prepare, $"Preparing trainer {Name}"); - - Network.Initialise(handler); - - RegistryResolver networkResolver = new RegistryResolver(Network.Registry.Get("layers")); - int initialisedNDArrayCount = 0, initialisedNumberCount = 0; - List orderedInitialiserIdentifiers = _initialisers.Keys.ToList(); - orderedInitialiserIdentifiers.Sort(RegistryUtils.CompareIdentifierSpecificityAscending); - - foreach (string identifier in orderedInitialiserIdentifiers) - { - object[] values = networkResolver.ResolveGet(identifier, new object[0]); - IInitialiser initialiser = _initialisers[identifier]; - - foreach (object value in values) - { - INDArray array = value as INDArray; - - if (array != null) - { - initialiser.Initialise(array, handler, Sigma.Random); - initialisedNDArrayCount++; - } - else - { - INumber number = value as INumber; - - if (number != null) - { - initialiser.Initialise(number, handler, Sigma.Random); - initialisedNumberCount++; - } - } - } - } - - Operator.Sigma = Sigma; - Operator.Handler = Operator.Handler ?? handler; - Operator.Network = Network; - Operator.Trainer = this; - - // attach all given hooks - foreach (IHook hook in _globalHooks) - { - if (!Operator.AttachGlobalHook(hook)) - { - _logger.Debug($"Skipped attaching global hook {hook} in trainer \"{Name}\", operator refused to attach it."); - } - } - - foreach (IHook hook in _localHooks) - { - if (!Operator.AttachLocalHook(hook)) - { - _logger.Debug($"Skipped attaching local hook {hook} in trainer \"{Name}\", operator refused to attach it."); - } - } - - UpdateRegistry(); - - _initialised = true; - - SigmaEnvironment.TaskManager.EndTask(prepareTask); - - _logger.Info($"Done initialising trainer \"{Name}\" for handler {handler}, initialised {initialisedNDArrayCount} ndarrays and {initialisedNumberCount} numbers."); - } - - protected virtual void UpdateRegistry() - { - Registry["initialised"] = _initialised; - Registry["name"] = Name; - Registry["network"] = Network?.Registry; - Registry["optimiser"] = Optimiser?.Registry; - - Registry initialiserRegistry = new Registry(Registry, tags: "initialisers"); - Registry["initialisers"] = initialiserRegistry; - - foreach (string initialiserMatchIdentifier in Initialisers.Keys) - { - initialiserRegistry[initialiserMatchIdentifier] = Initialisers[initialiserMatchIdentifier]; - } - } - - private void ValidateAssignedComponents() - { - if (Network == null) - { - throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning a network."); - } - - if (Sigma == null) - { - throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning a sigma environment."); - } - - if (Operator == null) - { - throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning an operator."); - } - - if (DataProvider == null) - { - throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning a data provider."); - } - - Network.Validate(); - } - - private void CheckInitialised() - { - if (!_initialised) - { - throw new InvalidOperationException($"Trainer {Name} has not been initialised yet. Call {nameof(Initialise)}!"); - } - } - - public void Start() - { - _logger.Info($"Validating trainer state of trainer {Name} before start..."); - - ValidateAssignedComponents(); - CheckInitialised(); - - _logger.Info($"Starting operator {Operator} with trainer {Name}..."); - - Operator.Network = Network; - Operator.Trainer = this; - - Operator.Start(); - } - - public void RunTrainingIteration(INetwork localNetwork, IOptimiser localOptimiser, IRegistry localRegistry, IComputationHandler handler) - { - if (localNetwork == null) throw new ArgumentNullException(nameof(localNetwork)); - if (localOptimiser == null) throw new ArgumentNullException(nameof(localOptimiser)); - if (localRegistry == null) throw new ArgumentNullException(nameof(localRegistry)); - if (handler == null) throw new ArgumentNullException(nameof(handler)); - - CheckInitialised(); - - localOptimiser.PrepareRun(localNetwork, handler); - localNetwork.Run(handler, trainingPass: true); - localOptimiser.Run(localNetwork, handler); - ApplyValueModifiers(localRegistry, handler); - } - - private void ApplyValueModifiers(IRegistry localRegistry, IComputationHandler handler) - { - if (_valueModifiers.Count == 0) - { - return; - } - - RegistryResolver resolver = new RegistryResolver(localRegistry); - - foreach (string identifier in _valueModifiers.Keys) - { - string[] fullyResolvedIdentifiers; - object[] values = resolver.ResolveGet(identifier, out fullyResolvedIdentifiers); - - for (int i = 0; i < values.Length; i++) - { - object value = values[i]; - INDArray asNDArray = value as INDArray; - INumber asNumber = value as INumber; - - if (asNDArray != null) - { - foreach (IValueModifier modifier in _valueModifiers[identifier]) - { - asNDArray = modifier.Modify(fullyResolvedIdentifiers[i], asNDArray, handler); - } - values[i] = asNDArray; - } - else if (asNumber != null) - { - foreach (IValueModifier modifier in _valueModifiers[identifier]) - { - asNumber = modifier.Modify(fullyResolvedIdentifiers[i], asNumber, handler); - } - values[i] = asNumber; - } - else - { - double? asDouble = value as double?; - - if (asDouble != null) - { - foreach (IValueModifier modifier in _valueModifiers[identifier]) - { - asDouble = modifier.Modify(fullyResolvedIdentifiers[i], asDouble.Value, handler); - } - values[i] = asDouble.Value; - } - } - - resolver.ResolveSet(fullyResolvedIdentifiers[i], values[i]); - } - } - } - - /// - /// Provide the external data to a network given the current record block (typically as given by the training data iterator). - /// - /// The network to provide the data with. - /// The current record block. - public void ProvideExternalInputData(INetwork localNetwork, IDictionary currentBlock) - { - CheckInitialised(); - - DataProviderUtils.ProvideExternalInputData(DataProvider, localNetwork, currentBlock); - } - - /// - /// Provide the external output data from network to the data provider. - /// - /// The network to get the data from. - /// The current record block. - public void ProvideExternalOutputData(INetwork localNetwork, IDictionary currentBlock) - { - DataProviderUtils.ProvideExternalOutputData(DataProvider, localNetwork, currentBlock); - } - - /// - /// Reset this trainer to an un-initialised state, discard all progress information. If necessary, stop the operator (and wait for that). - /// - public void Reset() - { - _logger.Info($"Resetting trainer \"{Name}\" to un-initialised state, discarding all progress data..."); - - if (Operator?.State != ExecutionState.None) - { - _logger.Info($"Signalling operator to stop and reset, waiting for state change signal to continue trainer reset..."); - - Operator.SignalReset(); - Operator.WaitForStateChanged(); - } - - Network?.Reset(); - _initialised = false; - - UpdateRegistry(); - - _logger.Info($"Done resetting trainer \"{Name}\" to un-initialised state, discarded all progress data and stopped operator."); - } - - public override string ToString() - { - return $"trainer \"{Name}\""; - } - } + /// + /// The default implementation. + /// A trainer that defines how a network should be trained, denoting initialisers, optimiser, operator, custom hooks and data to apply and use. + /// + [Serializable] + public class Trainer : ITrainer + { + [NonSerialized] + private readonly ILog _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private readonly IList _localHooks; + private readonly IList _globalHooks; + private readonly Dictionary _additionalNameDataIterators; + private readonly IList _allHooks; + private readonly IDictionary _initialisers; + private readonly IDictionary> _valueModifiers; + private bool _initialised; + + /// + public string Name { get; } + + /// + public SigmaEnvironment Sigma { get; set; } + + /// + public bool ForceInitialisation { get; set; } + + /// + public INetwork Network { get; set; } + + /// + public IOptimiser Optimiser { get; set; } + + /// + public IOperator Operator { get; set; } = new CpuSinglethreadedOperator(); + + /// + public IDataProvider DataProvider { get; set; } = new DefaultDataProvider(); + + /// + public IReadOnlyDictionary Initialisers { get; } + + /// + public IDataIterator TrainingDataIterator { get; set; } + + /// + public IReadOnlyDictionary AdditionalNameDataIterators { get; } + + /// + public IReadOnlyCollection Hooks { get; } + + /// + public IReadOnlyCollection GlobalHooks { get; } + + /// + public IReadOnlyCollection LocalHooks { get; } + + /// + public IReadOnlyDictionary> ValueModifiers { get; } + + /// + public IRegistry Registry { get; } + + /// + /// Create a trainer with a certain name. + /// + /// The name. + public Trainer(string name) + { + if (name == null) throw new ArgumentNullException(nameof(name)); + + Name = name; + + _allHooks = new List(); + _localHooks = new List(); + _globalHooks = new List(); + _additionalNameDataIterators = new Dictionary(); + _initialisers = new Dictionary(); + _valueModifiers = new Dictionary>(); + + Hooks = new ReadOnlyCollection(_allHooks); + GlobalHooks = new ReadOnlyCollection(_globalHooks); + LocalHooks = new ReadOnlyCollection(_localHooks); + AdditionalNameDataIterators = new ReadOnlyDictionary(_additionalNameDataIterators); + ValueModifiers = new ReadOnlyDictionary>(_valueModifiers); + Initialisers = new ReadOnlyDictionary(_initialisers); + Registry = new Registry(tags: "trainer"); + Registry["self"] = this; + } + + /// + public void AddNamedDataIterator(string name, IDataIterator iterator) + { + if (_additionalNameDataIterators.ContainsKey(name)) + { + throw new ArgumentException($"Named data iterator with name {name} already registered in this trainer ({Name})."); + } + + _additionalNameDataIterators.Add(name, iterator); + } + + /// + public void AddInitialiser(string identifier, IInitialiser initialiser) + { + if (identifier == null) { throw new ArgumentNullException(nameof(identifier)); } + if (initialiser == null) { throw new ArgumentNullException(nameof(initialiser)); } + + if (_initialisers.ContainsKey(identifier)) + { + throw new InvalidOperationException($"Cannot add duplicate identifier {identifier} for initialiser {initialiser}," + + $" identifier is already bound to initialiser {_initialisers[identifier]}"); + } + + _initialisers.Add(identifier, initialiser); + } + + /// + public void AddValueModifier(string identifier, IValueModifier modifier) + { + _valueModifiers.TryGetValue(identifier, () => new HashSet()).Add(modifier); + } + + /// + public void AddHook(IHook hook) + { + if (hook.DefaultTargetMode == TargetMode.Local) + { + AddLocalHook(hook); + } + else if (hook.DefaultTargetMode == TargetMode.Global) + { + AddGlobalHook(hook); + } + else + { + throw new InvalidOperationException($"Ambiguous add hook call for hook {hook} with target mode {hook.DefaultTargetMode}. " + + $"Target mode must be explicitly {nameof(TargetMode.Local)} or {nameof(TargetMode.Global)} for implicit hook add to work" + + $" (i.e. unable to determine where to add this hook, specify it explicitly in the caller)."); + } + } + + /// + public void AddLocalHook(IHook hook) + { + if (Hooks.Contains(hook)) + { + throw new ArgumentException($"Duplicate hook {hook}, hook already registered in this trainer ({Name})."); + } + + _allHooks.Add(hook); + _localHooks.Add(hook); + } + + /// + public void AddGlobalHook(IHook hook) + { + if (Hooks.Contains(hook)) + { + throw new ArgumentException($"Duplicate hook {hook}, hook already registered in this trainer ({Name})."); + } + + _allHooks.Add(hook); + _globalHooks.Add(hook); + } + + /// + public void Initialise(IComputationHandler handler) + { + ValidateAssignedComponents(); + + _logger.Info($"Initialising trainer \"{Name}\" with handler {handler}..."); + + ITaskObserver prepareTask = SigmaEnvironment.TaskManager.BeginTask(TaskType.Prepare, $"Preparing trainer {Name}"); + + int initialisedNDArrayCount; + int initialisedNumberCount; + + Network.AssociatedHandler = Operator.Handler; + + if (Network.Initialised && !ForceInitialisation) + { + initialisedNumberCount = 0; + initialisedNDArrayCount = 0; + + _logger.Info($"Skipping network initialisation because network was already initialised and force initialisation flag is set to false..."); + } + else + { + InitialiseNetwork(handler, out initialisedNumberCount, out initialisedNDArrayCount); + } + + Operator.Sigma = Sigma; + Operator.Handler = Operator.Handler ?? handler; + Operator.Network = Network; + Operator.Trainer = this; + + // attach all given hooks + foreach (IHook hook in _globalHooks) + { + if (!Operator.AttachGlobalHook(hook)) + { + _logger.Debug($"Skipped attaching global hook {hook} in trainer \"{Name}\", operator refused to attach it."); + } + } + + foreach (IHook hook in _localHooks) + { + if (!Operator.AttachLocalHook(hook)) + { + _logger.Debug($"Skipped attaching local hook {hook} in trainer \"{Name}\", operator refused to attach it."); + } + } + + UpdateRegistry(); + + _initialised = true; + + SigmaEnvironment.TaskManager.EndTask(prepareTask); + + _logger.Info($"Done initialising trainer \"{Name}\" for handler {handler}, initialised {initialisedNDArrayCount} ndarrays and {initialisedNumberCount} numbers."); + } + + private void InitialiseNetwork(IComputationHandler handler, out int initialisedNumberCount, out int initialisedNDArrayCount) + { + Network.Initialise(handler); + + initialisedNDArrayCount = 0; + initialisedNumberCount = 0; + + RegistryResolver networkResolver = new RegistryResolver(Network.Registry.Get("layers")); + List orderedInitialiserIdentifiers = _initialisers.Keys.ToList(); + orderedInitialiserIdentifiers.Sort(RegistryUtils.CompareIdentifierSpecificityAscending); + + foreach (string identifier in orderedInitialiserIdentifiers) + { + object[] values = networkResolver.ResolveGet(identifier, new object[0]); + IInitialiser initialiser = _initialisers[identifier]; + + foreach (object value in values) + { + INDArray array = value as INDArray; + + if (array != null) + { + initialiser.Initialise(array, handler, Sigma.Random); + initialisedNDArrayCount++; + } + else + { + INumber number = value as INumber; + + if (number != null) + { + initialiser.Initialise(number, handler, Sigma.Random); + initialisedNumberCount++; + } + } + } + } + } + + protected virtual void UpdateRegistry() + { + Registry["initialised"] = _initialised; + Registry["name"] = Name; + Registry["network"] = Network?.Registry; + Registry["optimiser"] = Optimiser?.Registry; + + Registry initialiserRegistry = new Registry(Registry, tags: "initialisers"); + Registry["initialisers"] = initialiserRegistry; + + foreach (string initialiserMatchIdentifier in Initialisers.Keys) + { + initialiserRegistry[initialiserMatchIdentifier] = Initialisers[initialiserMatchIdentifier]; + } + } + + private void ValidateAssignedComponents() + { + if (Network == null) + { + throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning a network."); + } + + if (Sigma == null) + { + throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning a sigma environment."); + } + + if (Operator == null) + { + throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning an operator."); + } + + if (DataProvider == null) + { + throw new InvalidOperationException($"Cannot initialise trainer {Name} before assigning a data provider."); + } + + Network.Validate(); + } + + private void CheckInitialised() + { + if (!_initialised) + { + throw new InvalidOperationException($"Trainer {Name} has not been initialised yet. Call {nameof(Initialise)}!"); + } + } + + public void Start() + { + _logger.Info($"Validating trainer state of trainer {Name} before start..."); + + ValidateAssignedComponents(); + CheckInitialised(); + + _logger.Info($"Starting operator {Operator} with trainer {Name}..."); + + Operator.Network = Network; + Operator.Trainer = this; + + Operator.Start(); + } + + public void RunTrainingIteration(INetwork localNetwork, IOptimiser localOptimiser, IRegistry localRegistry, IComputationHandler handler) + { + if (localNetwork == null) throw new ArgumentNullException(nameof(localNetwork)); + if (localOptimiser == null) throw new ArgumentNullException(nameof(localOptimiser)); + if (localRegistry == null) throw new ArgumentNullException(nameof(localRegistry)); + if (handler == null) throw new ArgumentNullException(nameof(handler)); + + CheckInitialised(); + + localOptimiser.PrepareRun(localNetwork, handler); + localNetwork.Run(handler, trainingPass: true); + localOptimiser.Run(localNetwork, handler); + ApplyValueModifiers(localRegistry, handler); + } + + private void ApplyValueModifiers(IRegistry localRegistry, IComputationHandler handler) + { + if (_valueModifiers.Count == 0) + { + return; + } + + RegistryResolver resolver = new RegistryResolver(localRegistry); + + foreach (string identifier in _valueModifiers.Keys) + { + string[] fullyResolvedIdentifiers; + object[] values = resolver.ResolveGet(identifier, out fullyResolvedIdentifiers); + + for (int i = 0; i < values.Length; i++) + { + object value = values[i]; + INDArray asNDArray = value as INDArray; + INumber asNumber = value as INumber; + + if (asNDArray != null) + { + foreach (IValueModifier modifier in _valueModifiers[identifier]) + { + asNDArray = modifier.Modify(fullyResolvedIdentifiers[i], asNDArray, handler); + } + values[i] = asNDArray; + } + else if (asNumber != null) + { + foreach (IValueModifier modifier in _valueModifiers[identifier]) + { + asNumber = modifier.Modify(fullyResolvedIdentifiers[i], asNumber, handler); + } + values[i] = asNumber; + } + else + { + double? asDouble = value as double?; + + if (asDouble != null) + { + foreach (IValueModifier modifier in _valueModifiers[identifier]) + { + asDouble = modifier.Modify(fullyResolvedIdentifiers[i], asDouble.Value, handler); + } + values[i] = asDouble.Value; + } + } + + resolver.ResolveSet(fullyResolvedIdentifiers[i], values[i]); + } + } + } + + /// + /// Provide the external data to a network given the current record block (typically as given by the training data iterator). + /// + /// The network to provide the data with. + /// The current record block. + public void ProvideExternalInputData(INetwork localNetwork, IDictionary currentBlock) + { + CheckInitialised(); + + DataProviderUtils.ProvideExternalInputData(DataProvider, localNetwork, currentBlock); + } + + /// + /// Provide the external output data from network to the data provider. + /// + /// The network to get the data from. + /// The current record block. + public void ProvideExternalOutputData(INetwork localNetwork, IDictionary currentBlock) + { + DataProviderUtils.ProvideExternalOutputData(DataProvider, localNetwork, currentBlock); + } + + /// + /// Reset this trainer to an un-initialised state, discard all progress information. If necessary, stop the operator (and wait for that). + /// + public void Reset() + { + _logger.Info($"Resetting trainer \"{Name}\" to un-initialised state, discarding all progress data..."); + + if (Operator?.State != ExecutionState.None) + { + _logger.Info($"Signalling operator to stop and reset, waiting for state change signal to continue trainer reset..."); + + Operator.SignalReset(); + Operator.WaitForStateChanged(); + } + + Network?.Reset(); + _initialised = false; + + UpdateRegistry(); + + _logger.Info($"Done resetting trainer \"{Name}\" to un-initialised state, discarded all progress data and stopped operator."); + } + + public override string ToString() + { + return $"trainer \"{Name}\""; + } + } } \ No newline at end of file diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index b004fc21..b99d6756 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -88,7 +88,7 @@ private static void SampleTrainerOperatorWorkerIris() trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddHook(new DiskSaviorHook(TimeStep.Every(1, TimeScale.Epoch), "network.self", "iris.sgnet")); + trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet").On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); //trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); From 48129bf50d61b65e3f98567831e22051e79e899e Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Thu, 13 Apr 2017 23:02:50 +0200 Subject: [PATCH 16/40] Add automatic parameter update --- .../Panels/Parameterisation/ParameterPanel.cs | 2 + .../Sigma.Core.Monitors.WPF.csproj | 2 + .../Defaults/SigmaTextBlock.xaml.cs | 14 ++--- .../Defaults/SigmaTimeBlock.cs | 53 ++++++++++++++++++ .../Parameterisation/ParameterView.xaml.cs | 54 +++++++++++++++---- .../UserControlParameterVisualiser.cs | 27 ++++++++++ .../Parameterisation/IParameterVisualiser.cs | 2 + .../IParameterVisualiserManager.cs | 1 - .../ParameterVisualiserManager.cs | 4 +- .../Parameterisation/PollParameterHook.cs | 38 +++++++++++++ .../ISynchronisationHandler.cs | 10 ++++ .../Synchronisation/SynchronisationHandler.cs | 20 +++++++ Sigma.Core/Training/Hooks/BaseHook.cs | 20 +++---- Sigma.Core/Training/Hooks/LambdaHook.cs | 2 +- .../Hooks/Reporters/RunningTimeReporter.cs | 6 +-- Sigma.Tests.Internals.WPF/Program.cs | 17 +++++- 16 files changed, 239 insertions(+), 33 deletions(-) create mode 100644 Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs create mode 100644 Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/PollParameterHook.cs diff --git a/Sigma.Core.Monitors.WPF/Panels/Parameterisation/ParameterPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Parameterisation/ParameterPanel.cs index edf1a8ef..ea956598 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Parameterisation/ParameterPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Parameterisation/ParameterPanel.cs @@ -9,6 +9,7 @@ For full license see LICENSE in the root directory of this project. using System; using Sigma.Core.Monitors.Synchronisation; using Sigma.Core.Monitors.WPF.View.Parameterisation; +using Sigma.Core.Monitors.WPF.View.Windows; using Sigma.Core.Monitors.WPF.ViewModel.Parameterisation; using Sigma.Core.Utils; @@ -27,6 +28,7 @@ public ParameterPanel(string title, IParameterVisualiserManager visualiserManage { Content = new ParameterView(visualiserManager, synchronisationHandler); } + public ParameterPanel(string title, SigmaEnvironment environment, SigmaWindow window, object headerContent = null) : this(title, window.ParameterVisualiser, environment.SynchronisationHandler, headerContent) { } public void Add(string name, Type type, IRegistry registry, string key) { diff --git a/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj b/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj index 13638d38..849159bd 100644 --- a/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj +++ b/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj @@ -168,6 +168,7 @@ + @@ -233,6 +234,7 @@ + ParameterView.xaml diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs index fffd80fd..ad2e62bc 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs @@ -18,17 +18,20 @@ namespace Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults [ParameterVisualiser(typeof(object), Priority = VisualiserPriority.Lower)] public partial class SigmaTextBlock { - private object _object; + /// + /// The object that is currently being displayed (without updating the displayed information) + /// + protected object _Object; /// /// The object that is being displayed (toString is called). /// - public object Object + public virtual object Object { - get { return _object; } + get { return _Object; } set { - _object = value; + _Object = value; TextBlock.Text = value?.ToString() ?? "null"; } } @@ -38,7 +41,6 @@ public object Object /// public string Text => TextBlock.Text; - /// /// The fully resolved key to access the synchandler. /// @@ -86,7 +88,7 @@ public SigmaTextBlock() /// public override void Read() { - Object = SynchronisationHandler.SynchroniseGet(Registry, Key); + SynchronisationHandler.SynchroniseUpdate(Registry, Key, Object, newObj => Dispatcher.Invoke(() => Object = newObj)); } /// diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs new file mode 100644 index 00000000..4391f8f4 --- /dev/null +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs @@ -0,0 +1,53 @@ +using System; +using Sigma.Core.Monitors.WPF.ViewModel.Parameterisation; + +namespace Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults +{ + /// + /// A TimeBlock that allows to display the current time. + /// + [ParameterVisualiser(typeof(DateTime), Priority = VisualiserPriority.Lower)] + public class SigmaTimeBlock : SigmaTextBlock + { + /// + public override object Object + { + get { return _Object; } + set + { + if (_Object is DateTime) + { + _Object = value; + TextBlock.Text = ((DateTime) Object).ToString(FormatString); + } + else + { + base.Object = value; + } + } + } + + /// + /// The string that is used to format the time. + /// null, if default formatting should be applied. + /// + public string FormatString { get; set; } + + /// + /// Create a label that is capable of displaying a time. + /// + public SigmaTimeBlock() + { + base.IsReadOnly = true; + } + + /// + /// Determines whether the parameter is editable or not. + /// + public sealed override bool IsReadOnly + { + get { return base.IsReadOnly; } + set { throw new NotImplementedException(); } + } + } +} \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs index a04a13df..916478fd 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs @@ -8,10 +8,11 @@ For full license see LICENSE in the root directory of this project. using System; using System.Windows; -using System.Windows.Annotations; using System.Windows.Controls; using log4net; using Sigma.Core.Monitors.Synchronisation; +using Sigma.Core.Monitors.WPF.Annotations; +using Sigma.Core.Monitors.WPF.View.Windows; using Sigma.Core.Monitors.WPF.ViewModel.Parameterisation; using Sigma.Core.Utils; @@ -24,11 +25,26 @@ public partial class ParameterView { private readonly ILog _log = LogManager.GetLogger(typeof(ParameterView)); + /// + /// The manager that keeps track of all visualisers. + /// protected readonly IParameterVisualiserManager Manager; + + /// + /// The handler that is used for transactions with the monitor. + /// protected readonly ISynchronisationHandler SynchronisationHandler; + /// + /// The current rowpost to which elements will be added. + /// protected int RowPos; + /// + /// Generate a new parameter view with a given manager and synchronisation handler. + /// + /// A manager of all active visualisers. + /// A handler for parameter syncing. public ParameterView(IParameterVisualiserManager manager, ISynchronisationHandler synchronisationHandler) { Manager = manager; @@ -36,9 +52,25 @@ public ParameterView(IParameterVisualiserManager manager, ISynchronisationHandle InitializeComponent(); } + /// + /// Generate a new parameter view with the manager and synchronisation handler assigned in the environment / window. + /// The currently active environment. + /// The currently active window (i.e. root window). + /// + public ParameterView(SigmaEnvironment environment, SigmaWindow window) : this(window.ParameterVisualiser, environment.SynchronisationHandler) + { + } + + /// + /// Display a given type stored in given registry (with the given key) next to a label with a given text. + /// + /// The text the label will contain. + /// The type that will be displayed. + /// The registry which contains the value that should be displayed. + /// The key to access the exact value required. public void Add(string name, Type type, IRegistry registry, string key) { - Add(new Label { Content = name }, type, registry, key); + Add(new Label {Content = name}, type, registry, key); } public void Add(UIElement name, Type visualiserType, IRegistry registry, string key) @@ -56,7 +88,7 @@ public void Add(UIElement name, Type visualiserType, IRegistry registry, string public void Add(string name, object visualiserAndDisplayer, IRegistry registry, string key) { - Add(new Label { Content = name }, visualiserAndDisplayer, registry, key); + Add(new Label {Content = name}, visualiserAndDisplayer, registry, key); } public void Add(UIElement name, object visualiserAndDisplayer, IRegistry registry, string key) @@ -74,16 +106,16 @@ public void Add(UIElement name, object visualiserAndDisplayer, IRegistry registr } /// - /// + /// Add a that contains information (e.g. the name of the object), and display it with a given object (e.g. the object to interact with). /// - /// + /// The element taht displays information about the elment being displayed (e.g. descriptive name). /// The element that displays the object in the cell (normally the same as ). /// The object that is responsible for the link with a variable (normally the same as ). - /// - /// - public void Add(UIElement name, UIElement displayer, IParameterVisualiser visualiser, IRegistry registry, string key) + /// The registry which contains the value that should be displayed. May or may not be null (depending on the visualiser). + /// The key to access the exact value required. May or may not be null (depending on the visualiser). + public void Add([CanBeNull] UIElement name, [CanBeNull] UIElement displayer, [CanBeNull] IParameterVisualiser visualiser, IRegistry registry, string key) { - Content.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); + Content.RowDefinitions.Add(new RowDefinition {Height = GridLength.Auto}); if (visualiser != null) { @@ -93,6 +125,7 @@ public void Add(UIElement name, UIElement displayer, IParameterVisualiser visual visualiser.Read(); } + // add the name to the left if (name != null) { Grid.SetColumn(name, 0); @@ -109,5 +142,8 @@ public void Add(UIElement name, UIElement displayer, IParameterVisualiser visual RowPos++; } + + + } } diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs index fef2ae29..c74951da 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs @@ -6,9 +6,12 @@ MIT License For full license see LICENSE in the root directory of this project. */ +using System; using System.Windows.Controls; using Sigma.Core.Monitors.Synchronisation; using Sigma.Core.Monitors.WPF.ViewModel.Parameterisation; +using Sigma.Core.Training; +using Sigma.Core.Training.Hooks; using Sigma.Core.Utils; namespace Sigma.Core.Monitors.WPF.View.Parameterisation @@ -62,5 +65,29 @@ public abstract class UserControlParameterVisualiser : UserControl, IParameterVi /// Force the visualiser to store its value (i.e. write the value that is displayed to the registry). /// public abstract void Write(); + + /// + /// The currently active poll hook that is responsible for updating values. + /// + protected PollParameterHook ActiveHook; + + /// + /// Enables the automatic polling of values (call Read on every TimeStep). + /// null if no automatic polling should be enabled. + /// + /// The trainer on which the poll will be performed. + /// The TimeStep on when the parameter should update. + public virtual void AutoPollValues(ITrainer trainer, ITimeStep step) + { + if (ActiveHook != null) + { + trainer.Operator.DetachGlobalHook(ActiveHook); + + } + + ActiveHook = new PollParameterHook(step, this); + + trainer.AddGlobalHook(ActiveHook); + } } } diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiser.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiser.cs index c1b230bd..1f80063f 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiser.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiser.cs @@ -48,11 +48,13 @@ public interface IParameterVisualiser /// /// Force the visualiser to update its value (i.e. display the value that is stored). + /// This function may be called from an arbitrary thread. /// void Read(); /// /// Force the visualiser to store its value (i.e. write the value that is displayed to the registry). + /// This function may be called from an arbitrary thread. /// void Write(); } diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs index 9dd86e73..e7b1dcde 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs @@ -8,7 +8,6 @@ For full license see LICENSE in the root directory of this project. using System; using Sigma.Core.Monitors.WPF.Annotations; -using Sigma.Core.Monitors.WPF.View.Parameterisation; using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; namespace Sigma.Core.Monitors.WPF.ViewModel.Parameterisation diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs index 5cfe5117..1a9a9145 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs @@ -44,7 +44,7 @@ public class ParameterVisualiserManager : IParameterVisualiserManager /// /// The default constructor. /// - /// If true it will automatically add all classes marked with the attribute . + /// If true, it will automatically add all classes marked with the attribute . public ParameterVisualiserManager(bool autoAssign = true) { TypeMapping = new Dictionary(); @@ -116,7 +116,7 @@ public virtual bool Add(Type visualiserClass, IParameterVisualiserInfo parameter return false; } - _log.Info($"{parameterInfo.Type} was visualised by {storedClass.Name}; {visualiserClass.Name} has a higher priority and is therefore the new visualiser ({parameterInfo.Priority} > {storedAttribte.Priority})."); + _log.Debug($"{parameterInfo.Type} was visualised by {storedClass.Name}; {visualiserClass.Name} has a higher priority and is therefore the new visualiser ({parameterInfo.Priority} > {storedAttribte.Priority})."); } TypeMapping[parameterInfo.Type] = visualiserClass; diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/PollParameterHook.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/PollParameterHook.cs new file mode 100644 index 00000000..d347c7a1 --- /dev/null +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/PollParameterHook.cs @@ -0,0 +1,38 @@ +using System; +using Sigma.Core.Training.Hooks; +using Sigma.Core.Utils; + +namespace Sigma.Core.Monitors.WPF.ViewModel.Parameterisation +{ + /// + /// A hook that updates a given IParameterVisualiser on a given TimeStep. + /// + [Serializable] + public class PollParameterHook : BaseHook + { + /// + /// The identifier for the currently active visualiser. + /// + protected const string VisualiserIdentifier = "visualiser"; + + /// + /// Create a hook with a certain time step + /// + /// The time step. + /// The visualisers that will be updated. + public PollParameterHook(ITimeStep timestep, IParameterVisualiser visualiser) : base(timestep) + { + ParameterRegistry[VisualiserIdentifier] = visualiser; + } + + /// + /// Invoke this hook with a certain parameter registry if optional conditional criteria are satisfied. + /// + /// The registry containing the required values for this hook's execution. + /// A helper resolver for complex registry entries (automatically cached). + public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) + { + ((IParameterVisualiser) ParameterRegistry[VisualiserIdentifier]).Read(); + } + } +} \ No newline at end of file diff --git a/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs index 76b37fed..e96eedc7 100644 --- a/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs @@ -41,5 +41,15 @@ public interface ISynchronisationHandler /// The type of the value that will be gathered. /// The fully resolved identifier for the parameter that will be received. T SynchroniseGet(IRegistry registry, string key); + + /// + /// Update a value with a given action if it has changed (not ). + /// + /// The type of the value that will be gathered. + /// The registry in which the entry will be set. + /// The fully resolved identifier for the parameter that will be received. + /// The current value of the object. + /// The method that will be called if the parameter has to be updated. + void SynchroniseUpdate(IRegistry registry, string key, T currentVal,Action update); } } \ No newline at end of file diff --git a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs index 7da376a8..614b5e65 100644 --- a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs @@ -77,5 +77,25 @@ public virtual T SynchroniseGet(IRegistry registry, string key) IRegistryResolver resolver = RegistryResolvers.TryGetValue(registry, () => new RegistryResolver(registry)); return resolver.ResolveGetSingleWithDefault(key, default(T)); } + + + /// + /// Update a value with a given action if it has changed (). + /// + /// The type of the value that will be gathered. + /// The registry in which the entry will be set. + /// The fully resolved identifier for the parameter that will be received. + /// The current value of the object. + /// The method that will be called if the parameter has to be updated. + public void SynchroniseUpdate(IRegistry registry, string key, T currentVal, Action update) + { + if (update == null) throw new ArgumentNullException(nameof(update)); + + T newObj = SynchroniseGet(registry, key); + if (newObj != null && currentVal == null || newObj != null && !newObj.Equals(currentVal)) + { + update(newObj); + } + } } } \ No newline at end of file diff --git a/Sigma.Core/Training/Hooks/BaseHook.cs b/Sigma.Core/Training/Hooks/BaseHook.cs index 31ae67d9..253e4aeb 100644 --- a/Sigma.Core/Training/Hooks/BaseHook.cs +++ b/Sigma.Core/Training/Hooks/BaseHook.cs @@ -57,7 +57,7 @@ public abstract class BaseHook : IHook /// Set this to true if performance intensive operations (e.g. storing to disk, processing large arrays) are used in this hook. /// Note: When invoked in background, hooks received a complete copy of all required registry entries and can therefore not directly modify the parameters of a worker/operator. /// - public bool InvokeInBackground { get; protected set; } = false; + public bool InvokeInBackground { get; protected set; } /// /// The operator that owns this hook and dispatched it for execution. @@ -114,16 +114,16 @@ protected BaseHook(ITimeStep timestep, ISet requiredRegistryEntries) ParameterRegistry = new Registry(); } - /// - /// Set this hook to be invoked in a background thread. - /// - /// - public BaseHook SetInvokeInBackground() - { - InvokeInBackground = true; + /// + /// Set this hook to be invoked in a background thread. + /// + /// + public BaseHook SetInvokeInBackground() + { + InvokeInBackground = true; - return this; - } + return this; + } /// /// Invoke this hook only when a certain hook invoke criteria is satisfied. diff --git a/Sigma.Core/Training/Hooks/LambdaHook.cs b/Sigma.Core/Training/Hooks/LambdaHook.cs index 13ab9d78..55991209 100644 --- a/Sigma.Core/Training/Hooks/LambdaHook.cs +++ b/Sigma.Core/Training/Hooks/LambdaHook.cs @@ -35,7 +35,7 @@ public LambdaHook(ITimeStep timestep, Action invok /// A helper resolver for complex registry entries (automatically cached). public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) { - var action = ParameterRegistry.Get>("invoke_action"); + Action action = ParameterRegistry.Get>("invoke_action"); action.Invoke(registry, resolver); } } diff --git a/Sigma.Core/Training/Hooks/Reporters/RunningTimeReporter.cs b/Sigma.Core/Training/Hooks/Reporters/RunningTimeReporter.cs index 54a255cf..a77ec491 100644 --- a/Sigma.Core/Training/Hooks/Reporters/RunningTimeReporter.cs +++ b/Sigma.Core/Training/Hooks/Reporters/RunningTimeReporter.cs @@ -27,7 +27,7 @@ public class RunningTimeReporter : BaseHook /// /// The time step. /// The interval span to average over. - public RunningTimeReporter(TimeStep timeStep, int averageSpan = 4) : base(timeStep) + public RunningTimeReporter(ITimeStep timeStep, int averageSpan = 4) : base(timeStep) { DefaultTargetMode = TargetMode.Global; @@ -46,8 +46,8 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) { string baseResultKey = ParameterRegistry.Get("base_result_key"); - long lastTime = resolver.ResolveGetSingleWithDefault(baseResultKey + "_last", -1L); - long averageTime = resolver.ResolveGetSingleWithDefault(baseResultKey + "_average", -1L); + long lastTime = resolver.ResolveGetSingleWithDefault(baseResultKey + "_last", -1L); + long averageTime = resolver.ResolveGetSingleWithDefault(baseResultKey + "_average", -1L); Report(TimeStep.TimeScale, lastTime, averageTime); } diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index e99822d2..cca492ba 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -1,4 +1,5 @@ using System; +using System.Windows.Controls; using LiveCharts.Wpf; using Sigma.Core; using Sigma.Core.Architecture; @@ -17,9 +18,12 @@ using Sigma.Core.Monitors.WPF.Panels.Charts; using Sigma.Core.Monitors.WPF.Panels.Controls; using Sigma.Core.Monitors.WPF.Panels.Logging; +using Sigma.Core.Monitors.WPF.Panels.Parameterisation; using Sigma.Core.Monitors.WPF.Utils; using Sigma.Core.Monitors.WPF.View.CustomControls.StatusBar; +using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; using Sigma.Core.Training; +using Sigma.Core.Training.Hooks; using Sigma.Core.Training.Hooks.Reporters; using Sigma.Core.Training.Initialisers; using Sigma.Core.Training.Operators.Backends.NativeCpu; @@ -76,7 +80,18 @@ private static void Main() //accuracy.Fast(); // add the newly created panel - window.TabControl["Overview"].AddCumulativePanel(cost, 1, 2, iris); + window.TabControl["Overview"].AddCumulativePanel(cost, 1, 1, iris); + + IRegistry regTest = new Registry(); + regTest.Add("test", DateTime.Now); + + var parameter = new ParameterPanel("Parameters", sigma, window); + parameter.Add("Time", typeof(DateTime), regTest, "test"); + var costBlock = new SigmaTimeBlock(); + costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + parameter.Content.Add(new Label { Content = "Time" }, costBlock, trainer.Operator.Registry, "optimiser.learning_rate"); + + window.TabControl["Overview"].AddCumulativePanel(parameter); //window.TabControl["Overview"].AddCumulativePanel(accuracy); From 4e83074c06180bd2337445f76ff66ba2639c1feb Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Thu, 13 Apr 2017 23:38:31 +0200 Subject: [PATCH 17/40] Add SynchronisationSources --- .../UserControlParameterVisualiser.cs | 3 +- .../ISynchronisationHandler.cs | 13 ++++ .../Synchronisation/ISynchronisationSource.cs | 28 +++++++ .../Synchronisation/SetValueCommand.cs | 1 + .../Synchronisation/SynchronisationHandler.cs | 57 +++++++++++++- Sigma.Core/Sigma.Core.csproj | 1 + Sigma.Core/Utils/Registry.cs | 76 +++++++++---------- Sigma.Tests.Internals.WPF/Program.cs | 6 +- 8 files changed, 140 insertions(+), 45 deletions(-) create mode 100644 Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs index c74951da..4b5f2627 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/UserControlParameterVisualiser.cs @@ -81,8 +81,7 @@ public virtual void AutoPollValues(ITrainer trainer, ITimeStep step) { if (ActiveHook != null) { - trainer.Operator.DetachGlobalHook(ActiveHook); - + trainer.Operator.DetachGlobalHook(ActiveHook); } ActiveHook = new PollParameterHook(step, this); diff --git a/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs index e96eedc7..de410f45 100644 --- a/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs @@ -21,6 +21,19 @@ public interface ISynchronisationHandler /// SigmaEnvironment Sigma { get; } + /// + /// Add an additional source that will be used if the values cannot be found. + /// + /// The source that will be added. + void AddSynchronisationSource(ISynchronisationSource source); + + /// + /// Remove an additional source. + /// + /// The source that will be removed. + /// True if teh source could be removed, false otherwise. + bool RemoveSynchronisationSource(ISynchronisationSource source); + /// /// Indicate that a value has changed and synchronise it with the given . /// diff --git a/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs b/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs new file mode 100644 index 00000000..0552a024 --- /dev/null +++ b/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; + +namespace Sigma.Core.Monitors.Synchronisation +{ + /// + /// A synchronisation source provides additional data for a synchronisation handler if a value cannot be found in the default registry. + /// + public interface ISynchronisationSource + { + /// + /// Try to retrieve a value from this source (if existent). + /// + /// The type of the value that will be retrieved. + /// The key of the value. + /// The value itself that will be assigned if it could be retrieved, null otherwise. + /// True if the source could retrieve given key, false otherwise. + bool TryGet(string key, out T val); + + /// + /// Try to set a value from this source (if existent). + /// + /// The type of the value that will be set. + /// The key of the value. + /// The value itself that will be assigned if it applicable. + /// True if the source could set given key, false otherwise. + bool TrySet(string key, T val); + } +} \ No newline at end of file diff --git a/Sigma.Core/Monitors/Synchronisation/SetValueCommand.cs b/Sigma.Core/Monitors/Synchronisation/SetValueCommand.cs index 5e59f5dc..cbad4a4d 100644 --- a/Sigma.Core/Monitors/Synchronisation/SetValueCommand.cs +++ b/Sigma.Core/Monitors/Synchronisation/SetValueCommand.cs @@ -110,6 +110,7 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) for (int i = 0; i < keys.Length; i++) { + //TODO: validate if successfully set and call error otherwise (for each key?) resolver.ResolveSet(keys[i], values[i], AddItentifierIfNotExists, typeof(T)); } } diff --git a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs index 614b5e65..9caa0f7a 100644 --- a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs @@ -17,7 +17,7 @@ namespace Sigma.Core.Monitors.Synchronisation /// The default synchronisation handler for Sigma. It is responsible for syncing values between monitors /// and the environment itself. /// - public class SynchronisationHandler : ISynchronisationHandler + public class SynchronisationHandler : ISynchronisationHandler, ISynchronisationSource { /// /// The environment this handler is associated with. @@ -29,6 +29,11 @@ public class SynchronisationHandler : ISynchronisationHandler /// protected Dictionary RegistryResolvers { get; } + /// + /// The assigned synchronisation sources. + /// + protected List Sources; + /// /// Default constructor for . /// @@ -39,10 +44,25 @@ public SynchronisationHandler(SigmaEnvironment sigma) if (sigma == null) throw new ArgumentNullException(nameof(sigma)); RegistryResolvers = new Dictionary(); + Sources = new List(); Sigma = sigma; } + /// + public void AddSynchronisationSource(ISynchronisationSource source) + { + if (source == null) throw new ArgumentNullException(nameof(source)); + Sources.Add(source); + } + + /// + public bool RemoveSynchronisationSource(ISynchronisationSource source) + { + if (source == null) throw new ArgumentNullException(nameof(source)); + return Sources.Remove(source); + } + /// public virtual void SynchroniseSet(IRegistry registry, string key, T val, Action onSuccess = null, Action onError = null) { @@ -52,6 +72,7 @@ public virtual void SynchroniseSet(IRegistry registry, string key, T val, Act if (ReferenceEquals(op.Registry, registry)) { //TODO: test if callback is called + //TODO: on error check sources for other to set the value op.InvokeCommand(new SetValueCommand(key, val, () => onSuccess?.Invoke(val))); return; @@ -75,9 +96,27 @@ public virtual void SynchroniseSet(IRegistry registry, string key, T val, Act public virtual T SynchroniseGet(IRegistry registry, string key) { IRegistryResolver resolver = RegistryResolvers.TryGetValue(registry, () => new RegistryResolver(registry)); - return resolver.ResolveGetSingleWithDefault(key, default(T)); - } + //return resolver.ResolveGetSingle<>() + string[] emptyArrayThrowaway; + + T[] result = resolver.ResolveGet(key, out emptyArrayThrowaway); + + if (result.Length != 0) + { + return result[0]; + } + + foreach (ISynchronisationSource source in Sources) + { + T res; + if (source.TryGet(key, out res)) + { + return res; + } + } + return default(T); + } /// /// Update a value with a given action if it has changed (). @@ -97,5 +136,17 @@ public void SynchroniseUpdate(IRegistry registry, string key, T currentVal, A update(newObj); } } + + /// + bool ISynchronisationSource.TryGet(string key, out T val) + { + throw new NotImplementedException("Get currently not implemented as no registry is passed"); + } + + /// + bool ISynchronisationSource.TrySet(string key, T val) + { + throw new NotImplementedException("Set currently not implemented as there is no error"); + } } } \ No newline at end of file diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index b964c061..8af6bc17 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -208,6 +208,7 @@ + diff --git a/Sigma.Core/Utils/Registry.cs b/Sigma.Core/Utils/Registry.cs index fe0e4e48..94649cc6 100644 --- a/Sigma.Core/Utils/Registry.cs +++ b/Sigma.Core/Utils/Registry.cs @@ -28,10 +28,10 @@ public class Registry : IRegistry, ISerialisationNotifier internal Dictionary MappedValues; internal Dictionary AssociatedTypes; - [NonSerialized] - private ISet _hierarchyChangeListeners; + [NonSerialized] + private ISet _hierarchyChangeListeners; - public bool CheckTypes + public bool CheckTypes { get; set; } = true; @@ -55,17 +55,17 @@ public bool ExceptionOnCopyNonDeepCopyable public ISet Tags { get; } - public ISet HierarchyChangeListeners - { - get { return _hierarchyChangeListeners; } - } + public ISet HierarchyChangeListeners + { + get { return _hierarchyChangeListeners; } + } - /// - /// Create a registry with a certain (optional) parent and an (optional) list of tags. - /// - /// The optional parent to this registry. - /// The optional tags to this registry. - public Registry(IRegistry parent = null, params string[] tags) + /// + /// Create a registry with a certain (optional) parent and an (optional) list of tags. + /// + /// The optional parent to this registry. + /// The optional tags to this registry. + public Registry(IRegistry parent = null, params string[] tags) { Parent = parent; Root = Parent?.Root ?? Parent; @@ -379,10 +379,10 @@ public IEnumerator GetValueIterator() return MappedValues.Values.GetEnumerator(); } - public override string ToString() - { - return $"registry tagged as {(Tags.Count == 0 ? "" : string.Join("", Tags))} with {MappedValues.Count} entries"; - } + public override string ToString() + { + return $"registry tagged as {(Tags.Count == 0 ? "" : string.Join("", Tags))} with {MappedValues.Count} entries"; + } public string FancyToString() { @@ -416,27 +416,27 @@ public bool RegistryContentEquals(IRegistry other) return other != null && MappedValues.Count == other.Count && MappedValues.Keys.All(k => other.ContainsKey(k) && Equals(MappedValues[k], other[k])); } - /// - /// Called before this object is serialised. - /// - public void OnSerialising() - { - } - - /// - /// Called after this object was serialised. - /// - public void OnSerialised() - { - } - - /// - /// Called after this object was de-serialised. - /// - public void OnDeserialised() - { - _hierarchyChangeListeners = new HashSet(); - } + /// + /// Called before this object is serialised. + /// + public void OnSerialising() + { + } + + /// + /// Called after this object was serialised. + /// + public void OnSerialised() + { + } + + /// + /// Called after this object was de-serialised. + /// + public void OnDeserialised() + { + _hierarchyChangeListeners = new HashSet(); + } } /// diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index cca492ba..ce27b455 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -20,10 +20,8 @@ using Sigma.Core.Monitors.WPF.Panels.Logging; using Sigma.Core.Monitors.WPF.Panels.Parameterisation; using Sigma.Core.Monitors.WPF.Utils; -using Sigma.Core.Monitors.WPF.View.CustomControls.StatusBar; using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; using Sigma.Core.Training; -using Sigma.Core.Training.Hooks; using Sigma.Core.Training.Hooks.Reporters; using Sigma.Core.Training.Initialisers; using Sigma.Core.Training.Operators.Backends.NativeCpu; @@ -91,6 +89,10 @@ private static void Main() costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); parameter.Content.Add(new Label { Content = "Time" }, costBlock, trainer.Operator.Registry, "optimiser.learning_rate"); + var heeBlock = new SigmaTimeBlock(); + heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, trainer.Operator.Registry, "optimiser.cost_total"); + window.TabControl["Overview"].AddCumulativePanel(parameter); //window.TabControl["Overview"].AddCumulativePanel(accuracy); From 34946707a21c76574fb69290a912813b105f650a Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Fri, 14 Apr 2017 13:56:07 +0200 Subject: [PATCH 18/40] Add ValueSourceReporterHook --- .../Synchronisation/SynchronisationHandler.cs | 17 +- Sigma.Core/Sigma.Core.csproj | 1 + .../Reporters/ValueSourceReporterHook.cs | 145 ++++++++++++++++++ Sigma.Tests.Internals.WPF/Program.cs | 16 +- 4 files changed, 166 insertions(+), 13 deletions(-) create mode 100644 Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs diff --git a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs index 9caa0f7a..5d39db3e 100644 --- a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs @@ -95,15 +95,18 @@ public virtual void SynchroniseSet(IRegistry registry, string key, T val, Act /// public virtual T SynchroniseGet(IRegistry registry, string key) { - IRegistryResolver resolver = RegistryResolvers.TryGetValue(registry, () => new RegistryResolver(registry)); - //return resolver.ResolveGetSingle<>() - string[] emptyArrayThrowaway; + if (registry != null) + { + IRegistryResolver resolver = RegistryResolvers.TryGetValue(registry, () => new RegistryResolver(registry)); + //return resolver.ResolveGetSingle<>() + string[] emptyArrayThrowaway; - T[] result = resolver.ResolveGet(key, out emptyArrayThrowaway); + T[] result = resolver.ResolveGet(key, out emptyArrayThrowaway); - if (result.Length != 0) - { - return result[0]; + if (result.Length != 0) + { + return result[0]; + } } foreach (ISynchronisationSource source in Sources) diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index 8af6bc17..6ca61e41 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -244,6 +244,7 @@ + diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs new file mode 100644 index 00000000..39ac56dc --- /dev/null +++ b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs @@ -0,0 +1,145 @@ +using System.Collections.Generic; +using Sigma.Core.Utils; +using Sigma.Core.Monitors.Synchronisation; + +namespace Sigma.Core.Training.Hooks.Reporters +{ + /// + /// A hook that stores given values and can provide them to a as a source. + /// + public class ValueSourceReporterHook : ValueReporterHook, ISynchronisationSource + { + private const string ValueIdentifier = "values"; + //private readonly IDictionary _values = new Dictionary(); + + /// + /// Create a hook that fetches a given value (i.e. registry identifier) at a given . + /// + /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" + /// The the hook will executed on. + public ValueSourceReporterHook(string valueIdentifier, ITimeStep timestep) : base(valueIdentifier, timestep) + { + Initialise(valueIdentifier); + } + + /// + /// Create a hook that conditionally (extrema criteria) fetches a given value (i.e. registry identifier) at a given . + /// + /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" + /// The the hook will executed on. + /// The extrema criteria target. + public ValueSourceReporterHook(string valueIdentifier, ITimeStep timestep, ExtremaTarget target) : base(valueIdentifier, timestep, target) + { + Initialise(valueIdentifier); + } + + /// + /// Create a hook that conditionally (threshold criteria) fetches a given value (i.e. registry identifier) at a given . + /// + /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" + /// The the hook will executed on. + /// The threshold to compare against. + /// The threshold criteria comparison target. + /// If the value should be reported every time step the criteria is satisfied (or just once). + public ValueSourceReporterHook(string valueIdentifier, ITimeStep timestep, double threshold, ComparisonTarget target, bool fireContinously = true) : base(valueIdentifier, timestep, threshold, target, fireContinously) + { + Initialise(valueIdentifier); + } + + /// + /// Create a hook that fetches a given amount of values (i.e. registry identifiers) at a given . + /// + /// The values that will be fetched (i.e. registry identifiers). E.g. "optimiser.cost_total", ... + /// The the hook will executed on. + public ValueSourceReporterHook(string[] valueIdentifiers, ITimeStep timestep) : base(valueIdentifiers, timestep) + { + Initialise(valueIdentifiers); + } + + private void Initialise() + { + ParameterRegistry.Add(ValueIdentifier, new Dictionary()); + } + + /// + /// Initialise the dictionary containing the values with given . + /// + /// The value that will be fetched. + protected void Initialise(string valueIdentifier) + { + Initialise(); + IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + values.Add(valueIdentifier, null); + } + + /// + /// Initialise the dictionary containing the values with given . + /// + /// The values that will be fetched. + protected void Initialise(string[] valueIdentifiers) + { + Initialise(); + IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + + foreach (string identifier in valueIdentifiers) + { + values.Add(identifier, null); + } + } + + /// + /// Report the values for a certain epoch / iteration. + /// Note: By default, this method writes to the logger. If you want to report to anywhere else, overwrite this method. + /// + /// The values by their identifier. + protected override void ReportValues(IDictionary valuesByIdentifier) + { + IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + + //TODO: validate lock requirement, probably it is required + lock (values) + { + foreach (KeyValuePair valuePair in valuesByIdentifier) + { + values[valuePair.Key] = valuePair.Value; + } + } + } + + /// + /// Try to retrieve a value from this source (if existent). + /// + /// The type of the value that will be retrieved. + /// The key of the value. + /// The value itself that will be assigned if it could be retrieved, null otherwise. + /// True if the source could retrieve given key, false otherwise. + public bool TryGet(string key, out T val) + { + IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + + //TODO: validate lock requirement, probably it is required + lock (values) + { + object oVal; + + bool ret = values.TryGetValue(key, out oVal); + val = (T) oVal; + + return ret; + } + } + + /// + /// No set supported in this observative hook. + /// + /// The type of the value that will be set. + /// The key of the value. + /// The value itself that will be assigned if it applicable. + /// True if the source could set given key, false otherwise. + public bool TrySet(string key, T val) + { + // a set is not supported + return false; + } + } +} \ No newline at end of file diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index ce27b455..4bfcb9b8 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -17,7 +17,6 @@ using Sigma.Core.Monitors.WPF.Model.UI.StatusBar; using Sigma.Core.Monitors.WPF.Panels.Charts; using Sigma.Core.Monitors.WPF.Panels.Controls; -using Sigma.Core.Monitors.WPF.Panels.Logging; using Sigma.Core.Monitors.WPF.Panels.Parameterisation; using Sigma.Core.Monitors.WPF.Utils; using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; @@ -85,19 +84,24 @@ private static void Main() var parameter = new ParameterPanel("Parameters", sigma, window); parameter.Add("Time", typeof(DateTime), regTest, "test"); + + ValueSourceReporterHook valueHook = new ValueSourceReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch)); + trainer.AddLocalHook(valueHook); + sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); + var costBlock = new SigmaTimeBlock(); costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - parameter.Content.Add(new Label { Content = "Time" }, costBlock, trainer.Operator.Registry, "optimiser.learning_rate"); + parameter.Content.Add(new Label { Content = "Cost" }, costBlock, trainer.Operator.Registry, "optimiser.cost_total"); - var heeBlock = new SigmaTimeBlock(); - heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, trainer.Operator.Registry, "optimiser.cost_total"); + //var heeBlock = new SigmaTimeBlock(); + //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); window.TabControl["Overview"].AddCumulativePanel(parameter); //window.TabControl["Overview"].AddCumulativePanel(accuracy); - window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); + //window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); // finish initialisation window.IsInitializing = false; From 93bf5e8922fff1b5102656d51be7dcef83d69301 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Fri, 14 Apr 2017 14:53:54 +0200 Subject: [PATCH 19/40] Add generic visualisers --- .../Sigma.Core.Monitors.WPF.csproj | 2 + .../Defaults/SigmaDynamicGenericBox.cs | 59 ++++++++++ .../Defaults/SigmaGenericBox.cs | 68 +++++++++++ .../Defaults/SigmaSlider.xaml | 2 +- .../Defaults/SigmaTextBox.xaml.cs | 108 +----------------- .../Parameterisation/ParameterView.xaml.cs | 11 +- .../ParameterVisualiserAttribute.cs | 25 +++- .../ParameterVisualiserInfo.cs | 18 +-- .../IParameterVisualiserInfo.cs | 7 ++ .../IParameterVisualiserManager.cs | 6 + .../ParameterVisualiserManager.cs | 42 +++++-- .../Reporters/ValueSourceReporterHook.cs | 18 ++- Sigma.Tests.Internals.WPF/Program.cs | 11 +- 13 files changed, 240 insertions(+), 137 deletions(-) create mode 100644 Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaDynamicGenericBox.cs create mode 100644 Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs diff --git a/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj b/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj index 849159bd..8010611e 100644 --- a/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj +++ b/Sigma.Core.Monitors.WPF/Sigma.Core.Monitors.WPF.csproj @@ -223,6 +223,8 @@ SigmaComboBox.xaml + + SigmaSlider.xaml diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaDynamicGenericBox.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaDynamicGenericBox.cs new file mode 100644 index 00000000..7e11bf59 --- /dev/null +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaDynamicGenericBox.cs @@ -0,0 +1,59 @@ +using System; +using System.ComponentModel; + +namespace Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults +{ + /// + /// This is a generic text box that automatically uses the type of the registry in order to correctly display and parse to / from the value. + /// + /// It is necessary for XAML or other cases where generics are not possible. + /// + public class SigmaDynamicGenericBox : SigmaTextBox + { + /// + /// The converter that converts the given type for the registry + /// + public TypeConverter Converter { get; protected set; } + + /// + /// The current value that is displayed + /// + public object CurrentValue { get; protected set; } + + /// + /// Force the visualiser to update its value (i.e. display the value that is stored). + /// + public override void Read() + { + object obj = SynchronisationHandler.SynchroniseGet(Registry, Key); + + if (Converter == null && obj != null) + { + Converter = TypeDescriptor.GetConverter(obj.GetType()); + } + + if (obj != null) + { + CurrentValue = obj; + Text = obj.ToString(); + } + } + + /// + /// Force the visualiser to store its value (i.e. write the value that is displayed to the registry). + /// + public override void Write() + { + try + { + object convertedVal = Converter.ConvertFromString(Text); + Pending = true; + SynchronisationHandler.SynchroniseSet(Registry, Key, convertedVal, val => Pending = false, e => Errored = true); + } + catch (Exception) + { + Errored = true; + } + } + } +} \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs new file mode 100644 index 00000000..b977c90d --- /dev/null +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs @@ -0,0 +1,68 @@ +using System; +using System.ComponentModel; +using Sigma.Core.Monitors.WPF.ViewModel.Parameterisation; + +namespace Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults +{ + /// + /// A textbox that can convert from and to an arbitrary object with a type converter. + /// + /// The type that is currently being represented. + [GenericParameterVisualiser(typeof(double), Priority = VisualiserPriority.Lower)] + [GenericParameterVisualiser(typeof(float), Priority = VisualiserPriority.Lower)] + [GenericParameterVisualiser(typeof(short), Priority = VisualiserPriority.Lower)] + [GenericParameterVisualiser(typeof(int), Priority = VisualiserPriority.Lower)] + [GenericParameterVisualiser(typeof(long), Priority = VisualiserPriority.Lower)] + public class SigmaGenericBox : SigmaTextBox + { + /// + /// The converter that converts the given type for the registry + /// + public TypeConverter Converter { get; protected set; } + + /// + /// The current active value. + /// + protected T CurrentValue; + + /// + /// Create a generic box and initialise the converter. + /// + public SigmaGenericBox() + { + Converter = TypeDescriptor.GetConverter(typeof(T)); + } + + /// + /// Force the visualiser to update its value (i.e. display the value that is stored). + /// + public override void Read() + { + CurrentValue = SynchronisationHandler.SynchroniseGet(Registry, Key); + Text = CurrentValue.ToString(); + } + + /// + /// Force the visualiser to store its value (i.e. write the value that is displayed to the registry). + /// + public override void Write() + { + try + { + T convertedValue = (T) Converter.ConvertFromString(Text); + Pending = true; + SynchronisationHandler.SynchroniseSet(Registry, Key, convertedValue, val => + { + Pending = false; + Errored = false; + }, e => Errored = true); + + } + catch (Exception) + { + Errored = true; + throw; + } + } + } +} \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaSlider.xaml b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaSlider.xaml index e2dbc879..15d9a139 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaSlider.xaml +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaSlider.xaml @@ -26,7 +26,7 @@ IsEnabled="{Binding IsReadOnly, Converter={StaticResource InverseBooleanConverter}}" VerticalAlignment="Center"/> - diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBox.xaml.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBox.xaml.cs index a1cc1bc2..9dc7c7a4 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBox.xaml.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBox.xaml.cs @@ -15,110 +15,6 @@ For full license see LICENSE in the root directory of this project. namespace Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults { - //[ParameterVisualiser(typeof(float), Priority = VisualiserPriority.Lower)] - //internal class SigmaFloatBox : DynamicConverterBox - //{ } - - //[ParameterVisualiser(typeof(double), Priority = VisualiserPriority.Lower)] - //internal class SigmaDoubleBox : DynamicConverterBox - //{ } - - ///// - ///// Sigmas way of converting a string to given value (e.g. double) - ///// - //public class SigmaConverterBox : SigmaTextBox - //{ - // /// - // /// The converter that converts the given type for the registry - // /// - // protected readonly TypeConverter Converter; - - // public SigmaConverterBox() - // { - // Converter = TypeDescriptor.GetConverter(typeof(T)); - // } - - // /// - // /// Force the visualiser to update its value (i.e. display the value that is stored). - // /// - // public override void Read() - // { - // Text = SynchronisationHandler.SynchroniseGet(Registry, Key).ToString(); - // } - - // /// - // /// Force the visualiser to store its value (i.e. write the value that is displayed to the registry). - // /// - // public override void Write() - // { - // try - // { - // T num = (T) Converter.ConvertFromString(Text); - // Pending = true; - // SynchronisationHandler.SynchroniseSet(Registry, Key, num, val => Pending = false, e => Errored = true); - // } - // catch (Exception) - // { - // Errored = true; - // } - // } - //} - [ParameterVisualiser(typeof(float), Priority = VisualiserPriority.Lower)] - [ParameterVisualiser(typeof(double), Priority = VisualiserPriority.Lower)] - [ParameterVisualiser(typeof(long), Priority = VisualiserPriority.Lower)] - [ParameterVisualiser(typeof(int), Priority = VisualiserPriority.Lower)] - [ParameterVisualiser(typeof(short), Priority = VisualiserPriority.Lower)] - public class DynamicConverterBox : SigmaTextBox - { - /// - /// The converter that converts the given type for the registry - /// - public TypeConverter Converter { get; protected set; } - - public object CurrentValue { get; protected set; } - - /// - /// Force the visualiser to update its value (i.e. display the value that is stored). - /// - public override void Read() - { - object obj = SynchronisationHandler.SynchroniseGet(Registry, Key); - - if (Converter == null && obj != null) - { - Converter = TypeDescriptor.GetConverter(obj.GetType()); - } - - if (obj != null) - { - CurrentValue = obj; - Text = obj.ToString(); - } - } - - /// - /// Force the visualiser to store its value (i.e. write the value that is displayed to the registry). - /// - public override void Write() - { - try - { - object convertedVal = Converter.ConvertFromString(Text); - Pending = true; - SynchronisationHandler.SynchroniseSet(Registry, Key, convertedVal, val => Pending = false, e => Errored = true); - } - catch (Exception) - { - Errored = true; - -#if DEBUG - //TODO: such an ugly hack only for testing - Read(); -#endif - } - } - } - /// /// Sigmas way of displaying strings. /// @@ -151,7 +47,7 @@ public partial class SigmaTextBox public string Text { get { return TextBox.Text; } - set { TextBox.Text = value; } + set { Dispatcher.Invoke(() => TextBox.Text = value); } } /// @@ -181,7 +77,7 @@ public SigmaTextBox() /// public override void Read() { - Text = SynchronisationHandler.SynchroniseGet(Registry, Key); + SynchronisationHandler.SynchroniseUpdate(Registry, Key, Text, newVal => Text = newVal); } /// diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs index 916478fd..d00adbcf 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterView.xaml.cs @@ -68,14 +68,15 @@ public ParameterView(SigmaEnvironment environment, SigmaWindow window) : this(wi /// The type that will be displayed. /// The registry which contains the value that should be displayed. /// The key to access the exact value required. - public void Add(string name, Type type, IRegistry registry, string key) + public IParameterVisualiser Add(string name, Type type, IRegistry registry, string key) { - Add(new Label {Content = name}, type, registry, key); + return Add(new Label {Content = name}, type, registry, key); } - public void Add(UIElement name, Type visualiserType, IRegistry registry, string key) + public IParameterVisualiser Add(UIElement name, Type visualiserType, IRegistry registry, string key) { - UIElement displayer = (UIElement) Activator.CreateInstance(Manager.VisualiserType(visualiserType)); + //UIElement displayer = (UIElement) Activator.CreateInstance(Manager.VisualiserType(visualiserType)); + UIElement displayer = (UIElement) Manager.InstantiateVisualiser(visualiserType); IParameterVisualiser visualiser = displayer as IParameterVisualiser; if (visualiser == null) @@ -84,6 +85,8 @@ public void Add(UIElement name, Type visualiserType, IRegistry registry, string } Add(name, displayer, visualiser, registry, key); + + return visualiser; } public void Add(string name, object visualiserAndDisplayer, IRegistry registry, string key) diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserAttribute.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserAttribute.cs index 5ab287e4..447caf94 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserAttribute.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserAttribute.cs @@ -33,10 +33,33 @@ public class ParameterVisualiserAttribute : Attribute, IParameterVisualiserInfo /// /// Define that the class visualises given type. /// - /// + /// The type that is being represented. public ParameterVisualiserAttribute(Type type) { Type = type; } + + /// + /// Determinse whether the given visualiser is generic or not. + /// + public bool IsGeneric { get; protected set; } + } + + /// + /// This marks an . It contains information which type this visualiser implements + /// and reduces the amount of work required to define a new type. Differently from , the class implementing this + /// attribute has to be a generic class with a single attribute, which will be the given type. + /// Multiple attributes can be specified (to display strings and objects for example). + /// + public class GenericParameterVisualiserAttribute : ParameterVisualiserAttribute + { + /// + /// Define that the class visualises given type. + /// + /// The type that is being represented. + public GenericParameterVisualiserAttribute(Type type) : base(type) + { + IsGeneric = true; + } } } \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserInfo.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserInfo.cs index bcbccffc..fdfbb7e5 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserInfo.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/ParameterVisualiserInfo.cs @@ -18,25 +18,24 @@ namespace Sigma.Core.Monitors.WPF.View.Parameterisation /// public class ParameterVisualiserInfo : IParameterVisualiserInfo { - /// - /// The type this visualiser visualises. - /// + /// public Type Type { get; } - /// - /// The priority of the . If another priority with a lower priority has already been added, the - /// higher priority will override the settings. - /// + /// public VisualiserPriority Priority { get; set; } + /// + public bool IsGeneric { get; } + /// /// Initializes a new instance of the class. /// /// The type the is responsible for. /// The priority of the info. (higher prioriuty overrides lower ones). + /// Determinse whether the given visualiser is generic or not. /// If bad enum is passed. /// If is null. - public ParameterVisualiserInfo([NotNull] Type type, VisualiserPriority priority = VisualiserPriority.Normal) + public ParameterVisualiserInfo([NotNull] Type type, VisualiserPriority priority = VisualiserPriority.Normal, bool isGeneric = false) { if (type == null) throw new ArgumentNullException(nameof(type)); if (!Enum.IsDefined(typeof(VisualiserPriority), priority)) @@ -46,6 +45,9 @@ public ParameterVisualiserInfo([NotNull] Type type, VisualiserPriority priority Type = type; Priority = priority; + IsGeneric = isGeneric; } + + } } \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserInfo.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserInfo.cs index 9e82d5e6..5772bd64 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserInfo.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserInfo.cs @@ -49,6 +49,13 @@ public interface IParameterVisualiserInfo /// Type Type { get; } + /// + /// Determinse whether the given visualiser is generic or not. + /// + /// More specifically, if the given visualiser should be passed the visualisation type as generic type or not. + /// + bool IsGeneric { get; } + /// /// The priority of the . If another priority with a lower priority has already been added, the /// higher priority will override the settings. diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs index e7b1dcde..9ed90060 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/IParameterVisualiserManager.cs @@ -49,5 +49,11 @@ public interface IParameterVisualiserManager /// The closest type for visualisation. null if not found. Type VisualiserTypeByReference([NotNull] object obj); + /// + /// Instantiate a visualiser that can represent given type. + /// + /// The type that will be visualies + /// An instance of a visualiser. + IParameterVisualiser InstantiateVisualiser(Type type); } } \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs index 1a9a9145..c3936f22 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs @@ -40,11 +40,10 @@ public class ParameterVisualiserManager : IParameterVisualiserManager /// protected readonly Dictionary AttributeMapping; - /// /// The default constructor. /// - /// If true, it will automatically add all classes marked with the attribute . + /// If true, it will automatically add all classes marked with the attribute or . public ParameterVisualiserManager(bool autoAssign = true) { TypeMapping = new Dictionary(); @@ -53,25 +52,29 @@ public ParameterVisualiserManager(bool autoAssign = true) if (autoAssign) { // ReSharper disable once VirtualMemberCallInConstructor - AssignMarkedClasses(); + AssignMarkedClasses(typeof(ParameterVisualiserAttribute), typeof(GenericParameterVisualiserAttribute)); } } /// - /// Assign all classes that are marked with . + /// Assign all classes that are marked with the given attributes (marker attributes). + /// These attributes have to be an . /// - protected virtual void AssignMarkedClasses() + protected virtual void AssignMarkedClasses(params Type[] markerTypes) { - // get all classes that have the custom attribute - IEnumerable classes = AttributeUtils.GetTypesWithAttribute(typeof(ParameterVisualiserAttribute)); - - foreach (Type @class in classes) + foreach (Type type in markerTypes) { - ParameterVisualiserAttribute[] visualisers = (ParameterVisualiserAttribute[])Attribute.GetCustomAttributes(@class, typeof(ParameterVisualiserAttribute)); + // get all classes that have the custom attribute + IEnumerable classes = AttributeUtils.GetTypesWithAttribute(type); - foreach (ParameterVisualiserAttribute visualiser in visualisers) + foreach (Type @class in classes) { - Add(@class, visualiser); + IParameterVisualiserInfo[] visualisers = (IParameterVisualiserInfo[]) Attribute.GetCustomAttributes(@class, type); + + foreach (IParameterVisualiserInfo visualiser in visualisers) + { + Add(@class, visualiser); + } } } } @@ -190,5 +193,20 @@ public Type VisualiserTypeByReference(object obj) return VisualiserType(obj.GetType()); } + + + /// + public IParameterVisualiser InstantiateVisualiser(Type type) + { + Type visualiserType = VisualiserType(type); + IParameterVisualiserInfo info = AttributeMapping[type]; + + if (info.IsGeneric) + { + return (IParameterVisualiser) Activator.CreateInstance(visualiserType.MakeGenericType(type)); + } + + return (IParameterVisualiser) Activator.CreateInstance(visualiserType); + } } } \ No newline at end of file diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs index 39ac56dc..e2d77c3f 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs @@ -122,10 +122,22 @@ public bool TryGet(string key, out T val) { object oVal; - bool ret = values.TryGetValue(key, out oVal); - val = (T) oVal; + if (values.TryGetValue(key, out oVal)) + { + if (oVal == null) + { + val = default(T); + } + else + { + val = (T) oVal; + } + + return true; + } - return ret; + val = default(T); + return false; } } diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 4bfcb9b8..e315ed76 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -19,6 +19,7 @@ using Sigma.Core.Monitors.WPF.Panels.Controls; using Sigma.Core.Monitors.WPF.Panels.Parameterisation; using Sigma.Core.Monitors.WPF.Utils; +using Sigma.Core.Monitors.WPF.View.Parameterisation; using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; using Sigma.Core.Training; using Sigma.Core.Training.Hooks.Reporters; @@ -30,6 +31,7 @@ namespace Sigma.Tests.Internals.WPF { + internal class Program { private const bool UI = true; @@ -89,9 +91,14 @@ private static void Main() trainer.AddLocalHook(valueHook); sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); - var costBlock = new SigmaTimeBlock(); + var costBlock = (UserControlParameterVisualiser) parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - parameter.Content.Add(new Label { Content = "Cost" }, costBlock, trainer.Operator.Registry, "optimiser.cost_total"); + + var learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("learning", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); + learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + + learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("learning", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); + learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); //var heeBlock = new SigmaTimeBlock(); //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); From 840874db81a89ba8ed44c8947173a4c87dae62e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Fri, 14 Apr 2017 15:56:47 +0200 Subject: [PATCH 20/40] Fix logger naming (also during recovery in serialisation) Fix logger naming (also during recovery in serialisation) --- Sigma.Core/Persistence/Serialisation.cs | 2 +- Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Sigma.Core/Persistence/Serialisation.cs b/Sigma.Core/Persistence/Serialisation.cs index 54c07db3..edf8c1d4 100644 --- a/Sigma.Core/Persistence/Serialisation.cs +++ b/Sigma.Core/Persistence/Serialisation.cs @@ -122,7 +122,7 @@ public static T Read(Stream target, ISerialiser serialiser, bool verbose = tr // automatically restore all logger instances if (field.FieldType == typeof(ILog)) { - field.SetValue(parent, LogManager.GetLogger(parent.GetType())); + field.SetValue(parent, LogManager.GetLogger(Assembly.GetCallingAssembly(), parent.GetType().Namespace + "." + parent.GetType().Name)); } (obj as ISerialisationNotifier)?.OnDeserialised(); diff --git a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs index 654c945a..4a6d6b8a 100644 --- a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs +++ b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs @@ -7,6 +7,7 @@ For full license see LICENSE in the root directory of this project. */ using System; +using System.Reflection; using log4net; using Sigma.Core.Persistence; using Sigma.Core.Utils; @@ -21,7 +22,7 @@ namespace Sigma.Core.Training.Hooks.Saviors public class DiskSaviorHook : BaseHook { [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private readonly ILog _logger = LogManager.GetLogger(Assembly.GetCallingAssembly(), typeof(DiskSaviorHook).Namespace + typeof(DiskSaviorHook).Name); /// /// Create a savior hook that will automatically serialise a certain registry entry. From 7aeba780a0a1162fc1fd6b87f517015542d88398 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Fri, 14 Apr 2017 15:54:17 +0200 Subject: [PATCH 21/40] Fix logging error in ParameterVisualiserManager --- .../ParameterVisualiserManager.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs index c3936f22..13c55e57 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Parameterisation/ParameterVisualiserManager.cs @@ -111,15 +111,19 @@ public virtual bool Add(Type visualiserClass, IParameterVisualiserInfo parameter // if the mapping has already been added if (TypeMapping.TryGetValue(parameterInfo.Type, out storedClass) && AttributeMapping.TryGetValue(parameterInfo.Type, out storedAttribte)) { - // if the new values have a lower priority, we return false - if (parameterInfo.Priority <= storedAttribte.Priority) + // if the a differnt type is being represented (necessarry for generics) + if (!ReferenceEquals(visualiserClass, storedClass)) { - _log.Warn($"{parameterInfo.Type} is currently visualised by {storedClass.Name}; {visualiserClass.Name} tried to be the visualiser but has a lower priority ({parameterInfo.Priority} <= {storedAttribte.Priority})."); + // if the new values have a lower priority, we return false + if (parameterInfo.Priority <= storedAttribte.Priority) + { + _log.Warn($"{parameterInfo.Type} is currently visualised by {storedClass.Name}; {visualiserClass.Name} tried to be the visualiser but has a lower priority ({parameterInfo.Priority} <= {storedAttribte.Priority})."); - return false; - } + return false; + } - _log.Debug($"{parameterInfo.Type} was visualised by {storedClass.Name}; {visualiserClass.Name} has a higher priority and is therefore the new visualiser ({parameterInfo.Priority} > {storedAttribte.Priority})."); + _log.Debug($"{parameterInfo.Type} was visualised by {storedClass.Name}; {visualiserClass.Name} has a higher priority and is therefore the new visualiser ({parameterInfo.Priority} > {storedAttribte.Priority})."); + } } TypeMapping[parameterInfo.Type] = visualiserClass; From 875b671038464e71b0b443aa01bf51489ec2efc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Sat, 15 Apr 2017 19:32:35 +0200 Subject: [PATCH 22/40] Add current time flag to value reporter hook Add current time flag to value reporter hook --- .../Panels/Charts/TrainerChartPanel.cs | 5 +++- .../Hooks/Reporters/ValueReporterHook.cs | 28 +++++++++++------- .../Reporters/ValueSourceReporterHook.cs | 5 +++- Sigma.Tests.Internals.Backend/Program.cs | 29 ++++++++++--------- 4 files changed, 41 insertions(+), 26 deletions(-) diff --git a/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs index 333be572..5e8285a5 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs @@ -127,7 +127,10 @@ public VisualValueReporterHook(ChartPanel /// Report the values for a certain epoch / iteration to a passed ChartPanel. /// /// The values by their identifier. - protected override void ReportValues(IDictionary valuesByIdentifier) + /// A boolean indicating whether or not to report the current epoch / iteration. + /// The current epoch. + /// The current iteration. + protected override void ReportValues(IDictionary valuesByIdentifier, bool reportEpochIteration, int epoch, int iteration) { ChartPanel chartPanel = (ChartPanel) ParameterRegistry[ChartPanelIdentifier]; chartPanel.Add((TData) valuesByIdentifier.Values.First()); diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs index a532c516..829611ad 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs @@ -29,7 +29,8 @@ public class ValueReporterHook : BaseHook /// /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" /// The the hook will executed on. - public ValueReporterHook(string valueIdentifier, ITimeStep timestep) : this(new[] { valueIdentifier }, timestep) { } + /// Indicate whether or not to report the current epoch and iteration in addition to the values. + public ValueReporterHook(string valueIdentifier, ITimeStep timestep, bool reportEpochIteration = false) : this(new[] { valueIdentifier }, timestep, reportEpochIteration) { } /// /// Create a hook that conditionally (extrema criteria) fetches a given value (i.e. registry identifier) at a given . @@ -55,12 +56,13 @@ public ValueReporterHook(string valueIdentifier, ITimeStep timestep, double thre On(new ThresholdCriteria(GetAccumulatedIdentifier(valueIdentifier), target, threshold, fireContinously)); } - /// - /// Create a hook that fetches a given amount of values (i.e. registry identifiers) at a given . - /// - /// The values that will be fetched (i.e. registry identifiers). E.g. "optimiser.cost_total", ... - /// The the hook will executed on. - public ValueReporterHook(string[] valueIdentifiers, ITimeStep timestep) : base(timestep, valueIdentifiers) + /// + /// Create a hook that fetches a given amount of values (i.e. registry identifiers) at a given . + /// + /// The values that will be fetched (i.e. registry identifiers). E.g. "optimiser.cost_total", ... + /// The the hook will executed on. + /// Indicate whether or not to report the current epoch and iteration in addition to the values. + public ValueReporterHook(string[] valueIdentifiers, ITimeStep timestep, bool reportEpochIteration = false) : base(timestep, valueIdentifiers) { if (valueIdentifiers.Length == 0) throw new ArgumentException("Value identifiers cannot be empty (it's the whole point of this hook)."); @@ -98,6 +100,7 @@ public ValueReporterHook(string[] valueIdentifiers, ITimeStep timestep) : base(t ParameterRegistry["value_identifiers"] = valueIdentifiers; ParameterRegistry["accumulated_identifiers"] = accumulatedIdentifiers; ParameterRegistry["value_buffer"] = valueBuffer; + ParameterRegistry["report_epoch_iteration"] = reportEpochIteration; } private static string GetAccumulatedIdentifier(string value) @@ -125,7 +128,7 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) valuesByIdentifier[valueIdentifiers[i]] = value; } - ReportValues(valuesByIdentifier); + ReportValues(valuesByIdentifier, ParameterRegistry.Get("report_epoch_iteration"), registry.Get("epoch"), registry.Get("iteration")); } /// @@ -133,9 +136,14 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) /// Note: By default, this method writes to the logger. If you want to report to anywhere else, overwrite this method. /// /// The values by their identifier. - protected virtual void ReportValues(IDictionary valuesByIdentifier) + /// A boolean indicating whether or not to report the current epoch / iteration. + /// The current epoch. + /// The current iteration. + protected virtual void ReportValues(IDictionary valuesByIdentifier, bool reportEpochIteration, int epoch, int iteration) { - _logger.Info(string.Join(", ", valuesByIdentifier.Select(pair => $"{pair.Key} = {pair.Value}"))); + string formattedValues = string.Join(", ", valuesByIdentifier.Select(pair => $"{pair.Key} = {pair.Value}")); + + _logger.Info((reportEpochIteration ? $"epoch {epoch} / iteration {iteration}: " : "") + formattedValues); } } } diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs index e2d77c3f..eb54038e 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs @@ -92,7 +92,10 @@ protected void Initialise(string[] valueIdentifiers) /// Note: By default, this method writes to the logger. If you want to report to anywhere else, overwrite this method. /// /// The values by their identifier. - protected override void ReportValues(IDictionary valuesByIdentifier) + /// A boolean indicating whether or not to report the current epoch / iteration. + /// The current epoch. + /// The current iteration. + protected override void ReportValues(IDictionary valuesByIdentifier, bool reportEpochIteration, int epoch, int iteration) { IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index b99d6756..726852f3 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -68,37 +68,38 @@ private static void SampleTrainerOperatorWorkerIris() trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(4) + + FullyConnectedLayer.Construct(24) + FullyConnectedLayer.Construct(12) - + FullyConnectedLayer.Construct(10) + FullyConnectedLayer.Construct(3) + OutputLayer.Construct(3) + SquaredDifferenceCostLayer.Construct(); - trainer.Network = Serialisation.ReadFromBinaryFileIfExists("iris.sgnet", trainer.Network); + trainer.Network = Serialisation.ReadFromBinaryFileIfExists("iris.sgnet", trainer.Network); trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); - trainer.Operator = new CpuMultithreadedOperator(workerCount: 2); + trainer.Optimiser = new AdagradOptimiser(0.01); + trainer.Operator = new CpuSinglethreadedOperator(); - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.2)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1, mean: 0.0)); + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.3)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1)); - trainer.AddGlobalHook(new StopTrainingHook(atEpoch: 100)); + //trainer.AddGlobalHook(new StopTrainingHook(atEpoch: 100)); //trainer.AddLocalHook(new EarlyStopperHook("optimiser.cost_total", 20, target: ExtremaTarget.Min)); - trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); - trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet").On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); - //trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true) + .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet", verbose: false) + .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + + trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); + trainer.AddHook(new StopTrainingHook(new ThresholdCriteria("shared.validation_accuracy_top1", ComparisonTarget.GreaterThanEquals, 0.95))); Serialisation.WriteBinaryFile(trainer, "trainer.sgtrainer"); trainer = Serialisation.ReadBinaryFile("trainer.sgtrainer"); sigma.AddTrainer(trainer); - //trainer.Operator.InvokeCommand(new TestCommand(() => { throw new NotImplementedException(); }, "optimiser.learning_rate")); - trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02, () => {/* finished */})); + //trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02, () => {/* finished */})); sigma.Run(); } From 7d6f6dfa648f06ce45eaacaf2c6dd276cdeb7824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Sun, 16 Apr 2017 23:22:38 +0200 Subject: [PATCH 23/40] Add shuffle preprocessor, fix (partial) adadelta optimiser, improve documentation and sample Add shuffle preprocessor, fix (partial) adadelta optimiser, improve documentation and sample --- .../Adaptive/BaseAdaptivePreprocessor.cs | 12 ++- .../Data/Preprocessors/ShufflePreprocessor.cs | 75 +++++++++++++++++++ Sigma.Core/Persistence/Serialisation.cs | 2 +- Sigma.Core/Sigma.Core.csproj | 1 + Sigma.Core/Training/ITrainer.cs | 2 +- .../Gradient/Memory/AdadeltaOptimiser.cs | 8 +- Sigma.Tests.Internals.Backend/Program.cs | 60 ++++++++------- 7 files changed, 127 insertions(+), 33 deletions(-) create mode 100644 Sigma.Core/Data/Preprocessors/ShufflePreprocessor.cs diff --git a/Sigma.Core/Data/Preprocessors/Adaptive/BaseAdaptivePreprocessor.cs b/Sigma.Core/Data/Preprocessors/Adaptive/BaseAdaptivePreprocessor.cs index f6b57adb..de71a009 100644 --- a/Sigma.Core/Data/Preprocessors/Adaptive/BaseAdaptivePreprocessor.cs +++ b/Sigma.Core/Data/Preprocessors/Adaptive/BaseAdaptivePreprocessor.cs @@ -28,12 +28,22 @@ public abstract class BaseAdaptivePreprocessor : BasePreprocessor private readonly TPreprocessor _underlyingPreprocessor; private bool _initialAdaptionComplete; + /// + /// Create a base adaptive preprocessor with a certain underlying preprocessor (that will be adapted). + /// + /// The underlying preprocessor. + /// The section names to process in this preprocessor (all if null or empty). + protected BaseAdaptivePreprocessor(TPreprocessor underlyingPreprocessor, params string[] sectionNames) : this(underlyingPreprocessor, AdaptionRate.Initial, sectionNames) + { + } + /// /// Create a base adaptive preprocessor with a certain underlying preprocessor (that will be adapted). /// /// The underlying preprocessor. /// The adaption rate. - protected BaseAdaptivePreprocessor(TPreprocessor underlyingPreprocessor, AdaptionRate adaptionRate = AdaptionRate.Every) + /// The section names to process in this preprocessor (all if null or empty). + protected BaseAdaptivePreprocessor(TPreprocessor underlyingPreprocessor, AdaptionRate adaptionRate, params string[] sectionNames) : base(sectionNames) { if (underlyingPreprocessor == null) throw new ArgumentNullException(nameof(underlyingPreprocessor)); if (!Enum.IsDefined(typeof(AdaptionRate), adaptionRate)) throw new InvalidEnumArgumentException(nameof(adaptionRate), (int) adaptionRate, typeof(AdaptionRate)); diff --git a/Sigma.Core/Data/Preprocessors/ShufflePreprocessor.cs b/Sigma.Core/Data/Preprocessors/ShufflePreprocessor.cs new file mode 100644 index 00000000..b2f84fbf --- /dev/null +++ b/Sigma.Core/Data/Preprocessors/ShufflePreprocessor.cs @@ -0,0 +1,75 @@ +using System; +using ManagedCuda.VectorTypes; +using Sigma.Core.Handlers; +using Sigma.Core.MathAbstract; + +namespace Sigma.Core.Data.Preprocessors +{ + [Serializable] + public class ShufflePreprocessor : BasePreprocessor + { + /// + /// The dimension along which should be shuffled. + /// Note: Must be >= 0. + /// + public int AlongDimension + { + get { return _alongDimension; } + set + { + if (value < 0) throw new ArgumentException($"Along dimension must be >= 0 but given value was {value}."); + + _alongDimension = value; + } + } + + /// + public override bool AffectsDataShape => false; + + private Random _random; + private int _alongDimension; + + /// + /// Create a shuffle preprocessor and optionally specify the dominant dimension (along which should be shuffled, batch dimension (0) by default). + /// + /// + public ShufflePreprocessor(int alongDimension = 0) + { + AlongDimension = alongDimension; + } + + /// + /// Process a certain ndarray with a certain computation handler. + /// + /// The ndarray to process. + /// The computation handler to do the processing with. + /// An ndarray with the processed contents of the given array (can be the same or a new one). + internal override INDArray ProcessDirect(INDArray array, IComputationHandler handler) + { + int recordLength = (int) (array.Length / array.Shape[0]); + long[] firstBufferIndices = new long[array.Shape.Length]; + long[] secondBufferIndices = new long[array.Shape.Length]; + + _random = new Random(31415926); // fixed rng for reproducability + + for (int i = 0; i < array.Shape[0]; i++) + { + int swapIndex = _random.Next((int) array.Shape[0]); + + for (int y = 0; y < recordLength; y++) + { + NDArrayUtils.GetIndices(recordLength * i + y, array.Shape, array.Strides, firstBufferIndices); + NDArrayUtils.GetIndices(recordLength * swapIndex + y, array.Shape, array.Strides, secondBufferIndices); + + double firstValue = array.GetValue(firstBufferIndices); + double secondValue = array.GetValue(secondBufferIndices); + + array.SetValue(secondValue, firstBufferIndices); + array.SetValue(firstValue, secondBufferIndices); + } + } + + return array; + } + } +} diff --git a/Sigma.Core/Persistence/Serialisation.cs b/Sigma.Core/Persistence/Serialisation.cs index edf8c1d4..2740073a 100644 --- a/Sigma.Core/Persistence/Serialisation.cs +++ b/Sigma.Core/Persistence/Serialisation.cs @@ -143,7 +143,7 @@ public static T Read(Stream target, ISerialiser serialiser, bool verbose = tr /// Optionally indicate where the log messages should written to (verbose = Info, otherwise Debug). /// The optional validation function to validate the read object with (if false, the original value is returned). /// The read (i.e. existing) if successfully read and validated, otherwise the original value. - public static T ReadFromBinaryFileIfExists(string fileName, T originalValue, bool verbose = true, Func validationFunction = null) + public static T ReadBinaryFileIfExists(string fileName, T originalValue, bool verbose = true, Func validationFunction = null) { try { diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index 6ca61e41..1b9bd438 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -160,6 +160,7 @@ + diff --git a/Sigma.Core/Training/ITrainer.cs b/Sigma.Core/Training/ITrainer.cs index b0dfdcd6..1c762373 100644 --- a/Sigma.Core/Training/ITrainer.cs +++ b/Sigma.Core/Training/ITrainer.cs @@ -104,7 +104,7 @@ public interface ITrainer bool ForceInitialisation { get; set; } /// - /// Add an initialiser by registry resolve string (e.g. FC*.weights, *.weights, Layer1.biases, Layer2.*). + /// Add an initialiser by registry resolve string (e.g. fc*.weights, *.weights, layer1.biases, layer2.*). /// Registry resolve notation may be used as the initialiser will be executed on all ndarrays which resolve to a match in a certain layer and match identifier. /// /// The identifier (registry resolve string). diff --git a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs index 9783a10e..57b1c75f 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs @@ -46,8 +46,8 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, INDArray currentAccumulatedGradient = handler.Add(handler.Multiply(previousAccumulatedGradient, decayRate), currentGradientDecayed); // compute previous accumulated gradient root mean squared (rms) and previous accumulated update rms - INDArray previousUpdateRms = SquareRootSmoothed(previousAccumulatedUpdate, smoothing, handler); - INDArray gradientRms = SquareRootSmoothed(currentAccumulatedGradient, smoothing, handler); + INDArray previousUpdateRms = RootMeanSquaredSmoothed(previousAccumulatedUpdate, smoothing, handler); + INDArray gradientRms = RootMeanSquaredSmoothed(gradient, smoothing, handler); // compute parameter update using previous accumulated gradient / update rms INDArray update = handler.Multiply(handler.Multiply(handler.Divide(previousUpdateRms, gradientRms), gradient), -1.0); @@ -64,9 +64,9 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, return handler.Add(parameter, update); } - private INDArray SquareRootSmoothed(INDArray array, double smoothing, IComputationHandler handler) + private INDArray RootMeanSquaredSmoothed(INDArray array, double smoothing, IComputationHandler handler) { - return handler.SquareRoot(handler.Add(array, smoothing)); + return handler.SquareRoot(handler.Add(handler.Multiply(array, array), smoothing)); } /// diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 726852f3..f915f865 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -33,6 +33,7 @@ using System.Linq; using System.Threading; using Sigma.Core.Training.Hooks.Saviors; +using Sigma.Core.Training.Optimisers.Gradient; namespace Sigma.Tests.Internals.Backend { @@ -45,22 +46,24 @@ private static void Main(string[] args) SigmaEnvironment.EnableLogging(xml: true); SigmaEnvironment.Globals["web_proxy"] = WebUtils.GetProxyFromFileOrDefault(".customproxy"); - SampleTrainerOperatorWorkerIris(); + SampleIris(); Console.WriteLine("Program ended, waiting for termination, press any key..."); Console.ReadKey(); } - private static void SampleTrainerOperatorWorkerIris() + private static void SampleIris() { SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); + sigma.SetRandomSeed(1337); sigma.Prepare(); var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica") - .Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)) - .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)); + .Preprocess(new OneHotPreprocessor("targets", minValue: 0, maxValue: 2)) + .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)) + .Preprocess(new ShufflePreprocessor()); IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); @@ -69,15 +72,15 @@ private static void SampleTrainerOperatorWorkerIris() trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(4) + FullyConnectedLayer.Construct(24) - + FullyConnectedLayer.Construct(12) + + FullyConnectedLayer.Construct(24) + FullyConnectedLayer.Construct(3) + OutputLayer.Construct(3) - + SquaredDifferenceCostLayer.Construct(); - trainer.Network = Serialisation.ReadFromBinaryFileIfExists("iris.sgnet", trainer.Network); + + SoftMaxCrossEntropyCostLayer.Construct(); + //trainer.Network = Serialisation.ReadBinaryFileIfExists("iris.sgnet", trainer.Network); - trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); + trainer.TrainingDataIterator = new MinibatchIterator(25, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdagradOptimiser(0.01); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.92); trainer.Operator = new CpuSinglethreadedOperator(); trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.3)); @@ -86,10 +89,10 @@ private static void SampleTrainerOperatorWorkerIris() //trainer.AddGlobalHook(new StopTrainingHook(atEpoch: 100)); //trainer.AddLocalHook(new EarlyStopperHook("optimiser.cost_total", 20, target: ExtremaTarget.Min)); - trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true) - .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); - trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet", verbose: false) - .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true)); + //.On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + //trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet", verbose: true) + // .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); trainer.AddHook(new StopTrainingHook(new ThresholdCriteria("shared.validation_accuracy_top1", ComparisonTarget.GreaterThanEquals, 0.95))); @@ -125,7 +128,7 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) } } - private static void SampleTrainerOperatorWorkerMnist() + private static void SampleMnist() { SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); @@ -142,23 +145,28 @@ private static void SampleTrainerOperatorWorkerMnist() trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(28, 28) - + 2 * FullyConnectedLayer.Construct(28 * 28) + + FullyConnectedLayer.Construct(28 * 28) + + FullyConnectedLayer.Construct(100) + FullyConnectedLayer.Construct(10) + OutputLayer.Construct(10) - + SquaredDifferenceCostLayer.Construct(); - trainer.TrainingDataIterator = new MinibatchIterator(4, dataset); + + SoftMaxCrossEntropyCostLayer.Construct(); + trainer.Network = Serialisation.ReadBinaryFileIfExists("mnist.sgnet", trainer.Network); + trainer.TrainingDataIterator = new MinibatchIterator(8, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); - trainer.Operator = new CpuMultithreadedOperator(workerCount: 2); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.92); + trainer.Operator = new CpuSinglethreadedOperator(); - trainer.AddInitialiser("*.weights", new XavierInitialiser(scale: 5)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); - trainer.AddHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.02)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01)); + + trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Iteration), reportEpochIteration: true) + .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + trainer.AddLocalHook(new DiskSaviorHook("network.self", "mnist.sgnet", verbose: false) + .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); - trainer.AddHook(new RunningTimeReporter(TimeStep.Every(5, TimeScale.Iteration))); - trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(5, TimeScale.Iteration))); - trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(5, TimeScale.Iteration))); - trainer.AddGlobalHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: new[] { 1 })); + var validationTimeStep = TimeStep.Every(1, TimeScale.Epoch); + trainer.AddHook(new ValidationAccuracyReporter("validation", validationTimeStep, tops: 1)); + trainer.AddHook(new StopTrainingHook(new ThresholdCriteria("shared.validation_accuracy_top1", ComparisonTarget.GreaterThanEquals, 0.5), validationTimeStep)); sigma.Run(); } From 6e5303234b8e270592e02d0511e4eb1a90beae34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Mon, 17 Apr 2017 23:11:16 +0200 Subject: [PATCH 24/40] Fix base gradient optimiser not clearing input / output traces, revert adadelta fix (was wrong) Fix base gradient optimiser not clearing input / output traces, revert adadelta fix (was wrong) --- Sigma.Core/Data/Datasets/Dataset.cs | 12 ++++ Sigma.Core/Persistence/Serialisation.cs | 1 + Sigma.Core/Training/Operators/BaseOperator.cs | 1 + .../Gradient/BaseGradientOptimiser.cs | 29 +++++++-- .../Gradient/Memory/AdadeltaOptimiser.cs | 8 +-- .../Gradient/Memory/AdagradOptimiser.cs | 4 +- Sigma.Tests.Internals.Backend/Program.cs | 61 ++++++------------- 7 files changed, 66 insertions(+), 50 deletions(-) diff --git a/Sigma.Core/Data/Datasets/Dataset.cs b/Sigma.Core/Data/Datasets/Dataset.cs index 936da151..ccd2a538 100644 --- a/Sigma.Core/Data/Datasets/Dataset.cs +++ b/Sigma.Core/Data/Datasets/Dataset.cs @@ -123,6 +123,18 @@ public Dataset(string name, params IRecordExtractor[] recordExtractors) : this(n /// The target block size for records. May also be or . /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. public Dataset(string name, int blockSizeRecords, params IRecordExtractor[] recordExtractors) + : this(name, blockSizeRecords, true, recordExtractors) + { + } + + /// + /// Create a dataset with a certain unique name, target block size in records and the record extractors to use. + /// + /// The unique dataset name. + /// The target block size for records. May also be or . + /// Indicate whether the cache provider should be flushed (cleared) before use. Only disable if block size and extractors used do not change (otherwise undefined behaviour). + /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. + public Dataset(string name, int blockSizeRecords, bool flushCache, params IRecordExtractor[] recordExtractors) : this(name, blockSizeRecords, new DiskCacheProvider(SigmaEnvironment.Globals.Get("cache_path") + name), true, recordExtractors) { } diff --git a/Sigma.Core/Persistence/Serialisation.cs b/Sigma.Core/Persistence/Serialisation.cs index 2740073a..432c9430 100644 --- a/Sigma.Core/Persistence/Serialisation.cs +++ b/Sigma.Core/Persistence/Serialisation.cs @@ -175,6 +175,7 @@ public static T ReadBinaryFileIfExists(string fileName, T originalValue, bool internal static void TraverseObjectGraph(object root, ISet traversedObjects, Action action) { Type type = root.GetType(); + traversedObjects.Add(root); // traverse all types up to object base type for all relevant fields in the graph diff --git a/Sigma.Core/Training/Operators/BaseOperator.cs b/Sigma.Core/Training/Operators/BaseOperator.cs index de19712c..515f09ae 100644 --- a/Sigma.Core/Training/Operators/BaseOperator.cs +++ b/Sigma.Core/Training/Operators/BaseOperator.cs @@ -1155,6 +1155,7 @@ protected void PopulateRegistry(IRegistry registry, INetwork localNetwork, IOpti registry["trainer"] = Trainer.Registry; registry["epoch"] = localEpochNumber; registry["iteration"] = localIterationNumber; + registry["runtime_millis"] = RunningTimeMilliseconds; if (!registry.ContainsKey("shared") || !(registry["shared"] is IRegistry)) { diff --git a/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs index 2158a004..ebd3abe9 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs @@ -7,7 +7,8 @@ For full license see LICENSE in the root directory of this project. */ using System; -using log4net; +using System.Collections.Generic; +using System.Linq; using Sigma.Core.Architecture; using Sigma.Core.Handlers; using Sigma.Core.Layers; @@ -33,8 +34,6 @@ public abstract class BaseGradientOptimiser : IOptimiser /// protected readonly string ExternalCostAlias; - [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); private bool _prepared; private uint _traceTag; @@ -133,10 +132,32 @@ public void Run(INetwork network, IComputationHandler handler) layerBuffer.Parameters[trainableParameter] = handler.ClearTrace(layerBuffer.Parameters.Get(trainableParameter)); } + + // outputs might have a trace as well, clear everything + _InternalClearAllTraces(layerBuffer.Inputs, handler); + _InternalClearAllTraces(layerBuffer.Outputs, handler); } } - /// + private static void _InternalClearAllTraces(IReadOnlyDictionary layerExternalBuffer, IComputationHandler handler) + { + foreach (string output in layerExternalBuffer.Keys.ToArray()) + { + IRegistry registry = layerExternalBuffer[output]; + + foreach (string parameter in registry.Keys.ToArray()) + { + ITraceable traceable = registry[parameter] as ITraceable; + + if (traceable != null) + { + registry[parameter] = handler.ClearTrace(traceable); + } + } + } + } + + /// /// Get the total cost from a certain network using a certain computation handler and put the relevant information in the cost registry (total, partial, importances). /// /// The network to get the costs from. diff --git a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs index 57b1c75f..9783a10e 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs @@ -46,8 +46,8 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, INDArray currentAccumulatedGradient = handler.Add(handler.Multiply(previousAccumulatedGradient, decayRate), currentGradientDecayed); // compute previous accumulated gradient root mean squared (rms) and previous accumulated update rms - INDArray previousUpdateRms = RootMeanSquaredSmoothed(previousAccumulatedUpdate, smoothing, handler); - INDArray gradientRms = RootMeanSquaredSmoothed(gradient, smoothing, handler); + INDArray previousUpdateRms = SquareRootSmoothed(previousAccumulatedUpdate, smoothing, handler); + INDArray gradientRms = SquareRootSmoothed(currentAccumulatedGradient, smoothing, handler); // compute parameter update using previous accumulated gradient / update rms INDArray update = handler.Multiply(handler.Multiply(handler.Divide(previousUpdateRms, gradientRms), gradient), -1.0); @@ -64,9 +64,9 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, return handler.Add(parameter, update); } - private INDArray RootMeanSquaredSmoothed(INDArray array, double smoothing, IComputationHandler handler) + private INDArray SquareRootSmoothed(INDArray array, double smoothing, IComputationHandler handler) { - return handler.SquareRoot(handler.Add(handler.Multiply(array, array), smoothing)); + return handler.SquareRoot(handler.Add(array, smoothing)); } /// diff --git a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs index 28c8bd4b..15fa9169 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs @@ -48,7 +48,9 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, INDArray adaptedLearningRate = handler.Divide(learningRate, handler.SquareRoot(handler.Add(squaredGradientSum, smoothing))); - return handler.Add(parameter, handler.Multiply(gradient, handler.Multiply(adaptedLearningRate, -1.0))); + INDArray update = handler.Multiply(gradient, handler.Multiply(adaptedLearningRate, -1.0)); + + return handler.Add(parameter, update); } /// diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index f915f865..cc68afd2 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -55,7 +55,7 @@ private static void Main(string[] args) private static void SampleIris() { SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); - sigma.SetRandomSeed(1337); + sigma.SetRandomSeed(137); sigma.Prepare(); @@ -65,22 +65,22 @@ private static void SampleIris() .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)) .Preprocess(new ShufflePreprocessor()); - IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); + IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, false, irisExtractor); ITrainer trainer = sigma.CreateGhostTrainer("test"); trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(4) - + FullyConnectedLayer.Construct(24) - + FullyConnectedLayer.Construct(24) + + FullyConnectedLayer.Construct(4) + + 2 * FullyConnectedLayer.Construct(24) + FullyConnectedLayer.Construct(3) + OutputLayer.Construct(3) + SoftMaxCrossEntropyCostLayer.Construct(); //trainer.Network = Serialisation.ReadBinaryFileIfExists("iris.sgnet", trainer.Network); - trainer.TrainingDataIterator = new MinibatchIterator(25, dataset); + trainer.TrainingDataIterator = new MinibatchIterator(10, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.92); + trainer.Optimiser = new AdagradOptimiser(baseLearningRate: 0.01); trainer.Operator = new CpuSinglethreadedOperator(); trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.3)); @@ -90,9 +90,9 @@ private static void SampleIris() //trainer.AddLocalHook(new EarlyStopperHook("optimiser.cost_total", 20, target: ExtremaTarget.Min)); trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true)); - //.On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); - //trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet", verbose: true) - // .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + //.On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet", verbose: true) + .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); trainer.AddHook(new StopTrainingHook(new ThresholdCriteria("shared.validation_accuracy_top1", ComparisonTarget.GreaterThanEquals, 0.95))); @@ -102,32 +102,9 @@ private static void SampleIris() sigma.AddTrainer(trainer); - //trainer.Operator.InvokeCommand(new SetValueCommand("optimiser.learning_rate", 0.02, () => {/* finished */})); - sigma.Run(); } - [Serializable] - private class TestCommand : BaseCommand - { - private readonly ILog _log = LogManager.GetLogger(typeof(TestCommand)); - public TestCommand(Action onFinish = null, params string[] requiredRegistryEntries) : base(onFinish, requiredRegistryEntries) - { - _log.Info("Test command created"); - } - - /// - /// Invoke this hook with a certain parameter registry if optional conditional criteria are satisfied. - /// - /// The registry containing the required values for this hook's execution. - /// A helper resolver for complex registry entries (automatically cached). - public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) - { - _log.Info("Test command invoked"); - //resolver.ResolveSet("optimiser.learning_rate", 10); - } - } - private static void SampleMnist() { SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); @@ -140,33 +117,35 @@ private static void SampleMnist() ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); + IDataset dataset = new Dataset("mnist", Dataset.BlockSizeAuto, false, mnistImageExtractor, mnistTargetExtractor); ITrainer trainer = sigma.CreateTrainer("test"); trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(28, 28) + FullyConnectedLayer.Construct(28 * 28) - + FullyConnectedLayer.Construct(100) + FullyConnectedLayer.Construct(10) + OutputLayer.Construct(10) + SoftMaxCrossEntropyCostLayer.Construct(); trainer.Network = Serialisation.ReadBinaryFileIfExists("mnist.sgnet", trainer.Network); - trainer.TrainingDataIterator = new MinibatchIterator(8, dataset); + trainer.TrainingDataIterator = new MinibatchIterator(100, dataset); trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); - trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.92); + trainer.Optimiser = new AdagradOptimiser(baseLearningRate: 0.01); trainer.Operator = new CpuSinglethreadedOperator(); - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.02)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01)); + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.1)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.05)); - trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Iteration), reportEpochIteration: true) - .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); - trainer.AddLocalHook(new DiskSaviorHook("network.self", "mnist.sgnet", verbose: false) + trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true)); + //trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Iteration), reportEpochIteration: true) + // .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); + trainer.AddLocalHook(new DiskSaviorHook("network.self", "mnist.sgnet", verbose: true) .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); var validationTimeStep = TimeStep.Every(1, TimeScale.Epoch); + trainer.AddHook(new ValidationAccuracyReporter("validation", validationTimeStep, tops: 1)); trainer.AddHook(new StopTrainingHook(new ThresholdCriteria("shared.validation_accuracy_top1", ComparisonTarget.GreaterThanEquals, 0.5), validationTimeStep)); + trainer.AddHook(new StopTrainingHook(atEpoch: 500)); sigma.Run(); } From 4e15adc4dab5b3f46d243e278ffe92c70cbbc38d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Mon, 17 Apr 2017 23:45:32 +0200 Subject: [PATCH 25/40] Add namers for static and dynamic naming --- Sigma.Core/Sigma.Core.csproj | 1 + .../Training/Hooks/Saviors/DiskSaviorHook.cs | 41 +++-- Sigma.Core/Utils/Namers.cs | 160 ++++++++++++++++++ Sigma.Tests.Internals.Backend/Program.cs | 2 +- 4 files changed, 187 insertions(+), 17 deletions(-) create mode 100644 Sigma.Core/Utils/Namers.cs diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index 1b9bd438..4ca0f50d 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -294,6 +294,7 @@ + diff --git a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs index 4a6d6b8a..2fafd58c 100644 --- a/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs +++ b/Sigma.Core/Training/Hooks/Saviors/DiskSaviorHook.cs @@ -22,14 +22,14 @@ namespace Sigma.Core.Training.Hooks.Saviors public class DiskSaviorHook : BaseHook { [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(Assembly.GetCallingAssembly(), typeof(DiskSaviorHook).Namespace + typeof(DiskSaviorHook).Name); + private readonly ILog _logger = LogManager.GetLogger(Assembly.GetCallingAssembly(), typeof(DiskSaviorHook).Namespace + "." + typeof(DiskSaviorHook).Name); + /// /// Create a savior hook that will automatically serialise a certain registry entry. /// - /// The time step. /// - /// The file name to store to disk as. + /// The file namer to store to disk as. /// Indicate whether or not to report when the specified object was serialised. public DiskSaviorHook(string registryEntryToSave, string fileName, bool verbose = true) : this(Utils.TimeStep.Every(1, TimeScale.Iteration), registryEntryToSave, fileName, verbose) { @@ -40,9 +40,19 @@ public DiskSaviorHook(string registryEntryToSave, string fileName, bool verbose /// /// The time step. /// - /// The file name to store to disk as. + /// The file namer to store to disk as. /// Indicate whether or not to report when the specified object was serialised. - public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, bool verbose = true) : this(timestep, registryEntryToSave, fileName, o => o, verbose) + public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, bool verbose = true) : this(timestep, registryEntryToSave, Namers.Static(fileName), verbose) + { + } + + /// + /// Create a savior hook that will automatically serialise a certain registry entry. + /// + /// + /// The file namer to store to disk as. + /// Indicate whether or not to report when the specified object was serialised. + public DiskSaviorHook(string registryEntryToSave, INamer fileNamer, bool verbose = true) : this(Utils.TimeStep.Every(1, TimeScale.Iteration), registryEntryToSave, fileNamer, verbose) { } @@ -51,10 +61,9 @@ public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fil /// /// The time step. /// - /// The file name to store to disk as. - /// The select function to apply. + /// The file namer to store to disk as. /// Indicate whether or not to report when the specified object was serialised. - public DiskSaviorHook(string registryEntryToSave, string fileName, Func selectFunction, bool verbose = true) : this(Utils.TimeStep.Every(1, TimeScale.Iteration), registryEntryToSave, fileName, selectFunction, verbose) + public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, INamer fileNamer, bool verbose = true) : this(timestep, registryEntryToSave, fileNamer, o => o, verbose) { } @@ -63,17 +72,17 @@ public DiskSaviorHook(string registryEntryToSave, string fileName, Func se /// /// The time step. /// - /// The file name to store to disk as. + /// The file namer to store to disk as. /// The select function to apply. /// Indicate whether or not to report when the specified object was serialised. - public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fileName, Func selectFunction, bool verbose = true) : base(timestep, registryEntryToSave) + public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, INamer fileNamer, Func selectFunction, bool verbose = true) : base(timestep, registryEntryToSave) { if (registryEntryToSave == null) throw new ArgumentNullException(nameof(registryEntryToSave)); - if (fileName == null) throw new ArgumentNullException(nameof(fileName)); + if (fileNamer == null) throw new ArgumentNullException(nameof(fileNamer)); if (selectFunction == null) throw new ArgumentNullException(nameof(selectFunction)); ParameterRegistry["registry_entry_to_save"] = registryEntryToSave; - ParameterRegistry["file_name"] = fileName; + ParameterRegistry["file_namer"] = fileNamer; ParameterRegistry["select_function"] = selectFunction; ParameterRegistry["verbose"] = verbose; @@ -88,21 +97,21 @@ public DiskSaviorHook(ITimeStep timestep, string registryEntryToSave, string fil public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) { string registryEntryToSave = ParameterRegistry.Get("registry_entry_to_save"); - string fileName = ParameterRegistry.Get("file_name"); + INamer fileNamer = ParameterRegistry.Get("file_namer"); object toSerialise = resolver.ResolveGetSingle(registryEntryToSave); bool verbose = ParameterRegistry.Get("verbose"); Func selectFunction = ParameterRegistry.Get>("select_function"); toSerialise = selectFunction.Invoke((T) toSerialise); - lock (fileName) + lock (fileNamer) { - Serialisation.WriteBinaryFile(toSerialise, fileName, verbose: false); + Serialisation.WriteBinaryFile(toSerialise, fileNamer.GetName(registry, resolver, this), verbose: false); } if (verbose) { - _logger.Info($"Saved \"{registryEntryToSave}\" to \"{SigmaEnvironment.Globals.Get("storage_path")}{fileName}\"."); + _logger.Info($"Saved \"{registryEntryToSave}\" to \"{SigmaEnvironment.Globals.Get("storage_path")}{fileNamer}\"."); } } } diff --git a/Sigma.Core/Utils/Namers.cs b/Sigma.Core/Utils/Namers.cs new file mode 100644 index 00000000..f69e6ff7 --- /dev/null +++ b/Sigma.Core/Utils/Namers.cs @@ -0,0 +1,160 @@ +/* +MIT License + +Copyright (c) 2016-2017 Florian Cäsar, Michael Plainer + +For full license see LICENSE in the root directory of this project. +*/ + +using System; + +namespace Sigma.Core.Utils +{ + /// + /// A common namer interface for static and dynamic naming of things. Any things. + /// + public interface INamer + { + /// + /// Get the name using a certain registry (and the corresponding resolver) for a certain sender. + /// Note: The sender may be used to get extra + /// + /// The parameter registry. + /// The resolver to the parameter registry. + /// The sender of this naming request. + /// The name using the givne information. + string GetName(IRegistry registry, IRegistryResolver resolver, object sender); + } + + /// + /// A static namer using a ... static name. + /// + [Serializable] + public class StaticNamer : INamer + { + private readonly string _name; + + /// + /// Create a static namer for a certain name. + /// + /// The name. + public StaticNamer(string name) + { + if (name == null) throw new ArgumentNullException(nameof(name)); + + _name = name; + } + + /// + public string GetName(IRegistry registry, IRegistryResolver resolver, object sender) + { + return _name; + } + } + + /// + /// Create a dynamic namer using a certain lambda function for . + /// + [Serializable] + public class DynamicLambdaNamer : INamer + { + private readonly Func _nameFunction; + + /// + /// Create a dynamic namer using the lambda function + /// + /// The name function + public DynamicLambdaNamer(Func nameFunction) + { + if (nameFunction == null) throw new ArgumentNullException(nameof(nameFunction)); + + _nameFunction = nameFunction; + } + + /// + public string GetName(IRegistry registry, IRegistryResolver resolver, object sender) + { + return _nameFunction.Invoke(registry, resolver, sender); + } + } + + /// + /// An dynamic namer using individual parameters as items in a format string. + /// + [Serializable] + public class DynamicItemisedNamer : INamer + { + private readonly string _formatString; + private readonly string[] _parameterIdentifiers; + private readonly object[] _bufferParameters; + + /// + /// Create a dynamic itemised namer using a format string and parameter identifiers (which will be resolved to the given values). + /// Note: Parameter order is preserved. + /// + /// The format string. + /// The parameter identifiers. + public DynamicItemisedNamer(string formatString, params string[] parameterIdentifiers) + { + if (formatString == null) throw new ArgumentNullException(nameof(formatString)); + if (parameterIdentifiers == null) throw new ArgumentNullException(nameof(parameterIdentifiers)); + + _formatString = formatString; + _parameterIdentifiers = parameterIdentifiers; // not sure, maybe copy? + _bufferParameters = new object[parameterIdentifiers.Length]; + } + + /// + public string GetName(IRegistry registry, IRegistryResolver resolver, object sender) + { + for (int i = 0; i < _parameterIdentifiers.Length; i++) + { + _bufferParameters[i] = resolver.ResolveGetSingle(_parameterIdentifiers[i]); + } + + string name = string.Format(_formatString, _bufferParameters); + + for (var i = 0; i < _bufferParameters.Length; i++) + { + _bufferParameters[i] = null; + } + + return name; + } + } + + /// + /// A utility collection for various static and dynamic namers. + /// + public static class Namers + { + /// + /// A static namer using a ... static name. + /// + public static INamer Static(string name) + { + return new StaticNamer(name); + } + + /// + /// Create a dynamic namer using the lambda function + /// + /// The name function + public static INamer Dynamic(Func nameFunction) + { + return new DynamicLambdaNamer(nameFunction); + } + + /// + /// Create a dynamic itemised namer using a format string and parameter identifiers (which will be resolved to the given values). + /// Note: Parameter order is preserved. + /// + /// The format string. + /// The parameter identifiers. + // TODO fix this attr, for some reason can't be found [StringFormatMethod("formatString")] + public static INamer Dynamic(string formatString, params string[] parameterIdentifiers) + { + return new DynamicItemisedNamer(formatString, parameterIdentifiers); + } + } +} diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index cc68afd2..50f2e221 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -91,7 +91,7 @@ private static void SampleIris() trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true)); //.On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); - trainer.AddLocalHook(new DiskSaviorHook("network.self", "iris.sgnet", verbose: true) + trainer.AddLocalHook(new DiskSaviorHook("network.self", Namers.Dynamic("iris_epoch{0}.sgnet", "epoch"), verbose: true) .On(new ExtremaCriteria("optimiser.cost_total", ExtremaTarget.Min))); trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); From 95385724775e12323c6688fd483b3f9f261b57cb Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Tue, 18 Apr 2017 19:06:20 +0200 Subject: [PATCH 26/40] Add RunningTimeDisplayer --- .../Defaults/SigmaGenericBox.cs | 7 +- .../Defaults/SigmaTextBlock.xaml.cs | 29 +++++++- .../Defaults/SigmaTimeBlock.cs | 7 ++ .../ISynchronisationHandler.cs | 7 ++ .../Synchronisation/SynchronisationHandler.cs | 11 +++ .../Reporters/ValueSourceReporterHook.cs | 69 ++++++------------- Sigma.Tests.Internals.WPF/Program.cs | 9 ++- 7 files changed, 87 insertions(+), 52 deletions(-) diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs index b977c90d..652d696b 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaGenericBox.cs @@ -38,8 +38,11 @@ public SigmaGenericBox() /// public override void Read() { - CurrentValue = SynchronisationHandler.SynchroniseGet(Registry, Key); - Text = CurrentValue.ToString(); + SynchronisationHandler.SynchroniseUpdate(Registry, Key, CurrentValue, val => + { + CurrentValue = val; + Text = CurrentValue.ToString(); + }); } /// diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs index ad2e62bc..a650317a 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTextBlock.xaml.cs @@ -6,6 +6,8 @@ MIT License For full license see LICENSE in the root directory of this project. */ +using System.Windows; +using System.Windows.Controls; using Sigma.Core.Monitors.Synchronisation; using Sigma.Core.Monitors.WPF.ViewModel.Parameterisation; using Sigma.Core.Utils; @@ -32,7 +34,8 @@ public virtual object Object set { _Object = value; - TextBlock.Text = value?.ToString() ?? "null"; + string text = value?.ToString() ?? "null"; + TextBlock.Text = Prefix + text + Postfix; } } @@ -41,6 +44,30 @@ public virtual object Object /// public string Text => TextBlock.Text; + /// + /// This string will be added before the displayed string. + /// + public string Prefix + { + get { return (string) GetValue(PrefixProperty); } + set { SetValue(PrefixProperty, value); } + } + + public static readonly DependencyProperty PrefixProperty = + DependencyProperty.Register("Prefix", typeof(string), typeof(SigmaTextBox), new PropertyMetadata("")); + + /// + /// This string will be added after the displayed string. + /// + public string Postfix + { + get { return (string) GetValue(PostfixProperty); } + set { SetValue(PostfixProperty, value); } + } + + public static readonly DependencyProperty PostfixProperty = + DependencyProperty.Register("Postfix", typeof(string), typeof(SigmaTextBox), new PropertyMetadata("")); + /// /// The fully resolved key to access the synchandler. /// diff --git a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs index 4391f8f4..b2ea855b 100644 --- a/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs +++ b/Sigma.Core.Monitors.WPF/View/Parameterisation/Defaults/SigmaTimeBlock.cs @@ -3,6 +3,13 @@ namespace Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults { + //TODO: editable time box (timepicker) + //[ParameterVisualiser(typeof(DateTime), Priority = VisualiserPriority.Lower)] + //public class SigmaTimeBox : SigmaTextBox + //{ + + //} + /// /// A TimeBlock that allows to display the current time. /// diff --git a/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs index de410f45..92e6ba1c 100644 --- a/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/ISynchronisationHandler.cs @@ -34,6 +34,13 @@ public interface ISynchronisationHandler /// True if teh source could be removed, false otherwise. bool RemoveSynchronisationSource(ISynchronisationSource source); + /// + /// Check if a source is contained. + /// + /// The source that will be checked. + /// True, if the handler contains the source - false otherwise + bool ContainsSynchronisationSoruce(ISynchronisationSource source); + /// /// Indicate that a value has changed and synchronise it with the given . /// diff --git a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs index 5d39db3e..e407e57a 100644 --- a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs @@ -63,6 +63,17 @@ public bool RemoveSynchronisationSource(ISynchronisationSource source) return Sources.Remove(source); } + + /// + /// Check if a source is contained. + /// + /// The source that will be checked. + /// True, if the handler contains the source - false otherwise + public bool ContainsSynchronisationSoruce(ISynchronisationSource source) + { + return Sources.Contains(source); + } + /// public virtual void SynchroniseSet(IRegistry registry, string key, T val, Action onSuccess = null, Action onError = null) { diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs index eb54038e..e004484a 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs @@ -7,7 +7,7 @@ namespace Sigma.Core.Training.Hooks.Reporters /// /// A hook that stores given values and can provide them to a as a source. /// - public class ValueSourceReporterHook : ValueReporterHook, ISynchronisationSource + public class ValueSourceReporterHook : BaseHook, ISynchronisationSource { private const string ValueIdentifier = "values"; //private readonly IDictionary _values = new Dictionary(); @@ -17,41 +17,18 @@ public class ValueSourceReporterHook : ValueReporterHook, ISynchronisationSource /// /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" /// The the hook will executed on. - public ValueSourceReporterHook(string valueIdentifier, ITimeStep timestep) : base(valueIdentifier, timestep) + public ValueSourceReporterHook(TimeStep timestep, string valueIdentifier) : base(timestep, valueIdentifier) { Initialise(valueIdentifier); } - /// - /// Create a hook that conditionally (extrema criteria) fetches a given value (i.e. registry identifier) at a given . - /// - /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" - /// The the hook will executed on. - /// The extrema criteria target. - public ValueSourceReporterHook(string valueIdentifier, ITimeStep timestep, ExtremaTarget target) : base(valueIdentifier, timestep, target) - { - Initialise(valueIdentifier); - } - - /// - /// Create a hook that conditionally (threshold criteria) fetches a given value (i.e. registry identifier) at a given . - /// - /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" - /// The the hook will executed on. - /// The threshold to compare against. - /// The threshold criteria comparison target. - /// If the value should be reported every time step the criteria is satisfied (or just once). - public ValueSourceReporterHook(string valueIdentifier, ITimeStep timestep, double threshold, ComparisonTarget target, bool fireContinously = true) : base(valueIdentifier, timestep, threshold, target, fireContinously) - { - Initialise(valueIdentifier); - } /// /// Create a hook that fetches a given amount of values (i.e. registry identifiers) at a given . /// /// The values that will be fetched (i.e. registry identifiers). E.g. "optimiser.cost_total", ... /// The the hook will executed on. - public ValueSourceReporterHook(string[] valueIdentifiers, ITimeStep timestep) : base(valueIdentifiers, timestep) + public ValueSourceReporterHook(ITimeStep timestep, params string[] valueIdentifiers) : base(timestep, valueIdentifiers) { Initialise(valueIdentifiers); } @@ -87,27 +64,6 @@ protected void Initialise(string[] valueIdentifiers) } } - /// - /// Report the values for a certain epoch / iteration. - /// Note: By default, this method writes to the logger. If you want to report to anywhere else, overwrite this method. - /// - /// The values by their identifier. - /// A boolean indicating whether or not to report the current epoch / iteration. - /// The current epoch. - /// The current iteration. - protected override void ReportValues(IDictionary valuesByIdentifier, bool reportEpochIteration, int epoch, int iteration) - { - IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; - - //TODO: validate lock requirement, probably it is required - lock (values) - { - foreach (KeyValuePair valuePair in valuesByIdentifier) - { - values[valuePair.Key] = valuePair.Value; - } - } - } /// /// Try to retrieve a value from this source (if existent). @@ -156,5 +112,24 @@ public bool TrySet(string key, T val) // a set is not supported return false; } + + /// + /// Invoke this hook with a certain parameter registry if optional conditional criteria are satisfied. + /// + /// The registry containing the required values for this hook's execution. + /// A helper resolver for complex registry entries (automatically cached). + public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) + { + IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + + //TODO: validate lock requirement, probably it is required + lock (values) + { + foreach (KeyValuePair valuePair in registry) + { + values[valuePair.Key] = valuePair.Value; + } + } + } } } \ No newline at end of file diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index e315ed76..5f686ba9 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -1,5 +1,4 @@ using System; -using System.Windows.Controls; using LiveCharts.Wpf; using Sigma.Core; using Sigma.Core.Architecture; @@ -87,7 +86,7 @@ private static void Main() var parameter = new ParameterPanel("Parameters", sigma, window); parameter.Add("Time", typeof(DateTime), regTest, "test"); - ValueSourceReporterHook valueHook = new ValueSourceReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch)); + ValueSourceReporterHook valueHook = new ValueSourceReporterHook( TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total", "runtime_millis"); trainer.AddLocalHook(valueHook); sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); @@ -100,6 +99,12 @@ private static void Main() learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("learning", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + var timeBox = (SigmaTextBlock) parameter.Content.Add("Running time", typeof(object), trainer.Operator.Registry, "runtime_millis"); + timeBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + timeBox.Postfix = " ms"; + + //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + //var heeBlock = new SigmaTimeBlock(); //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); From 75c6166fd334c0aac9183d2e2146034a37689227 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Tue, 18 Apr 2017 20:50:01 +0200 Subject: [PATCH 27/40] Add current epoch and iteration --- Sigma.Tests.Internals.WPF/Program.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 5f686ba9..235dfd37 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -86,7 +86,11 @@ private static void Main() var parameter = new ParameterPanel("Parameters", sigma, window); parameter.Add("Time", typeof(DateTime), regTest, "test"); - ValueSourceReporterHook valueHook = new ValueSourceReporterHook( TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total", "runtime_millis"); + ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total", "runtime_millis"); + trainer.AddGlobalHook(valueHook); + sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); + + valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Iteration), "iteration"); trainer.AddLocalHook(valueHook); sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); @@ -103,6 +107,12 @@ private static void Main() timeBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); timeBox.Postfix = " ms"; + var epochBox = (UserControlParameterVisualiser) parameter.Content.Add("Current epoch", typeof(object), trainer.Operator.Registry, "epoch"); + epochBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + + var iterationBox = (UserControlParameterVisualiser) parameter.Content.Add("Current iteration", typeof(object), trainer.Operator.Registry, "iteration"); + iterationBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Iteration)); + //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); //var heeBlock = new SigmaTimeBlock(); From 66f043a421f54b807ca3ae4ef2c018edf60d1036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Tue, 18 Apr 2017 21:21:54 +0200 Subject: [PATCH 28/40] Add metric processor hook, add exposed parameter updates in gradient optimisers Add metric processor hook, add exposed parameter updates in gradient optimisers --- Sigma.Core/Sigma.Core.csproj | 1 + .../Hooks/Processors/MetricProcessorHook.cs | 85 +++++++++++++++++++ .../Gradient/BaseGradientOptimiser.cs | 56 +++++++----- .../Gradient/GradientDescentOptimiser.cs | 6 +- .../Gradient/Memory/AdadeltaOptimiser.cs | 2 + .../Gradient/Memory/AdagradOptimiser.cs | 6 +- .../Memory/MomentumGradientOptimiser.cs | 6 +- Sigma.Tests.Internals.Backend/Program.cs | 1 + 8 files changed, 138 insertions(+), 25 deletions(-) create mode 100644 Sigma.Core/Training/Hooks/Processors/MetricProcessorHook.cs diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index 4ca0f50d..a14fab03 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -234,6 +234,7 @@ + diff --git a/Sigma.Core/Training/Hooks/Processors/MetricProcessorHook.cs b/Sigma.Core/Training/Hooks/Processors/MetricProcessorHook.cs new file mode 100644 index 00000000..c24f3f91 --- /dev/null +++ b/Sigma.Core/Training/Hooks/Processors/MetricProcessorHook.cs @@ -0,0 +1,85 @@ +/* +MIT License + +Copyright (c) 2016-2017 Florian Cäsar, Michael Plainer + +For full license see LICENSE in the root directory of this project. +*/ + +using System; +using System.Collections.Generic; +using Sigma.Core.Handlers; +using Sigma.Core.MathAbstract; +using Sigma.Core.Utils; + +namespace Sigma.Core.Training.Hooks.Processors +{ + [Serializable] + public class MetricProcessorHook : BaseHook where T : class + { + public MetricProcessorHook(string registryEntryToProcess, Func metricFunction, string metricSharedResultEntry) : this(Utils.TimeStep.Every(1, TimeScale.Iteration), registryEntryToProcess, metricFunction, metricSharedResultEntry) + { + } + + public MetricProcessorHook(ITimeStep timestep, string registryEntryToProcess, Func metricFunction, string metricSharedResultIdentifier) : base(timestep, registryEntryToProcess) + { + if (registryEntryToProcess == null) throw new ArgumentNullException(nameof(registryEntryToProcess)); + if (metricFunction == null) throw new ArgumentNullException(nameof(metricFunction)); + if (metricSharedResultIdentifier == null) throw new ArgumentNullException(nameof(metricSharedResultIdentifier)); + + InvokePriority = -1000; + ParameterRegistry["registry_entry_to_process"] = registryEntryToProcess; + ParameterRegistry["metric_function"] = metricFunction; + ParameterRegistry["metric_shared_result_identifier"] = metricSharedResultIdentifier; + } + + /// + public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) + { + IComputationHandler handler = Operator.Handler; + + string registryEntryToProcess = ParameterRegistry.Get("registry_entry_to_process"); + Func metricFunction = ParameterRegistry.Get>("metric_function"); + string metricSharedResultIdentifier = ParameterRegistry.Get("metric_shared_result_identifier"); + + object[] entries = resolver.ResolveGet(registryEntryToProcess); + + double totalMetric = 0.0; + int count = 0; + + foreach (object entry in entries) + { + T entryAsT = entry as T; + IEnumerable entryAsEnumerable = entry as IEnumerable; + IDictionary entryAsDictionary = entry as IDictionary; + + if (entryAsDictionary != null) + { + entryAsEnumerable = entryAsDictionary.Values; + } + + if (entryAsT != null) + { + totalMetric += metricFunction.Invoke(entryAsT, handler).GetValueAs(); + count++; + } + else if (entryAsEnumerable != null) + { + foreach (T value in entryAsEnumerable) + { + totalMetric += metricFunction.Invoke(value, handler).GetValueAs(); + count++; + } + } + else + { + throw new InvalidOperationException($"Cannot process metric for entry of type {entry.GetType()} with identifier \"{registryEntryToProcess}\", must be {typeof(T)} or enumerable thereof."); + } + } + + double resultMetric = totalMetric / count; + + resolver.ResolveSet(metricSharedResultIdentifier, resultMetric, addIdentifierIfNotExists: true); + } + } +} diff --git a/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs index ebd3abe9..9dc0a2cb 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/BaseGradientOptimiser.cs @@ -47,6 +47,7 @@ protected BaseGradientOptimiser(string externalCostAlias = "external_cost") ExternalCostAlias = externalCostAlias; Registry = new Registry(tags: "optimiser"); + Registry["updates"] = new Dictionary(); } /// @@ -134,30 +135,43 @@ public void Run(INetwork network, IComputationHandler handler) } // outputs might have a trace as well, clear everything - _InternalClearAllTraces(layerBuffer.Inputs, handler); - _InternalClearAllTraces(layerBuffer.Outputs, handler); + _InternalClearAllTraces(layerBuffer.Inputs, handler); + _InternalClearAllTraces(layerBuffer.Outputs, handler); } } - private static void _InternalClearAllTraces(IReadOnlyDictionary layerExternalBuffer, IComputationHandler handler) - { - foreach (string output in layerExternalBuffer.Keys.ToArray()) - { - IRegistry registry = layerExternalBuffer[output]; - - foreach (string parameter in registry.Keys.ToArray()) - { - ITraceable traceable = registry[parameter] as ITraceable; - - if (traceable != null) - { - registry[parameter] = handler.ClearTrace(traceable); - } - } - } - } - - /// + private static void _InternalClearAllTraces(IReadOnlyDictionary layerExternalBuffer, IComputationHandler handler) + { + foreach (string output in layerExternalBuffer.Keys.ToArray()) + { + IRegistry registry = layerExternalBuffer[output]; + + foreach (string parameter in registry.Keys.ToArray()) + { + ITraceable traceable = registry[parameter] as ITraceable; + + if (traceable != null) + { + registry[parameter] = handler.ClearTrace(traceable); + } + } + } + } + + /// + /// Expose a parameter update to the outside through the gradient optimiser utilities. + /// + /// The parameter identifier. + /// The update. + protected void ExposeParameterUpdate(string parameterIdentifier, INDArray update) + { + if (parameterIdentifier == null) throw new ArgumentNullException(nameof(parameterIdentifier)); + if (update == null) throw new ArgumentNullException(nameof(update)); + + Registry.Get>("updates")[parameterIdentifier] = update; + } + + /// /// Get the total cost from a certain network using a certain computation handler and put the relevant information in the cost registry (total, partial, importances). /// /// The network to get the costs from. diff --git a/Sigma.Core/Training/Optimisers/Gradient/GradientDescentOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/GradientDescentOptimiser.cs index b6573533..376f6a62 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/GradientDescentOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/GradientDescentOptimiser.cs @@ -32,7 +32,11 @@ public GradientDescentOptimiser(double learningRate, string externalCostAlias = protected override INDArray Optimise(string paramIdentifier, INDArray parameter, INDArray gradient, IComputationHandler handler) { - return handler.Add(parameter, handler.Multiply(gradient, -Registry.Get("learning_rate"))); + INDArray update = handler.Multiply(gradient, -Registry.Get("learning_rate")); + + ExposeParameterUpdate(paramIdentifier, update); + + return handler.Add(parameter, update); } /// diff --git a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs index 9783a10e..0c82fc98 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdadeltaOptimiser.cs @@ -60,6 +60,8 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, SetMemory(memoryIdentifierGradient, currentAccumulatedGradient); SetMemory(memoryIdentifierUpdate, currentAccumulatedUpdate); + ExposeParameterUpdate(paramIdentifier, update); + // compute optimised parameter using computed update return handler.Add(parameter, update); } diff --git a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs index 15fa9169..fc304637 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/Memory/AdagradOptimiser.cs @@ -48,9 +48,11 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, INDArray adaptedLearningRate = handler.Divide(learningRate, handler.SquareRoot(handler.Add(squaredGradientSum, smoothing))); - INDArray update = handler.Multiply(gradient, handler.Multiply(adaptedLearningRate, -1.0)); + INDArray update = handler.Multiply(gradient, handler.Multiply(adaptedLearningRate, -1.0)); - return handler.Add(parameter, update); + ExposeParameterUpdate(paramIdentifier, update); + + return handler.Add(parameter, update); } /// diff --git a/Sigma.Core/Training/Optimisers/Gradient/Memory/MomentumGradientOptimiser.cs b/Sigma.Core/Training/Optimisers/Gradient/Memory/MomentumGradientOptimiser.cs index 4bdf364e..07e33390 100644 --- a/Sigma.Core/Training/Optimisers/Gradient/Memory/MomentumGradientOptimiser.cs +++ b/Sigma.Core/Training/Optimisers/Gradient/Memory/MomentumGradientOptimiser.cs @@ -44,7 +44,11 @@ protected override INDArray Optimise(string paramIdentifier, INDArray parameter, SetMemory(paramIdentifier, velocity); - return handler.Subtract(velocity, parameter); + INDArray update = handler.Multiply(velocity, -1.0); + + ExposeParameterUpdate(paramIdentifier, update); + + return handler.Add(parameter, update); } /// diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 50f2e221..872c13b3 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -32,6 +32,7 @@ using System.Diagnostics; using System.Linq; using System.Threading; +using Sigma.Core.Training.Hooks.Processors; using Sigma.Core.Training.Hooks.Saviors; using Sigma.Core.Training.Optimisers.Gradient; From 9a777a2b12a73b4efe003ad518415fd032da734a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Tue, 18 Apr 2017 21:33:59 +0200 Subject: [PATCH 29/40] Add metric graphs to internal wpf demo Add metric graphs to internal wpf demo --- Sigma.Tests.Internals.WPF/Program.cs | 29 ++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 235dfd37..eebb7f87 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -11,6 +11,7 @@ using Sigma.Core.Layers.Cost; using Sigma.Core.Layers.External; using Sigma.Core.Layers.Feedforward; +using Sigma.Core.MathAbstract; using Sigma.Core.Monitors.WPF; using Sigma.Core.Monitors.WPF.Model.UI.Resources; using Sigma.Core.Monitors.WPF.Model.UI.StatusBar; @@ -21,6 +22,7 @@ using Sigma.Core.Monitors.WPF.View.Parameterisation; using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; using Sigma.Core.Training; +using Sigma.Core.Training.Hooks.Processors; using Sigma.Core.Training.Hooks.Reporters; using Sigma.Core.Training.Initialisers; using Sigma.Core.Training.Operators.Backends.NativeCpu; @@ -43,6 +45,10 @@ private static void Main() // create a new mnist trainer ITrainer trainer = CreateIrisTrainer(sigma); + trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.network_weights_average")); + trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.StandardDeviation(a), "shared.network_weights_stddev")); + trainer.AddLocalHook(new MetricProcessorHook("optimiser.updates", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.optimiser_updates_average")); + // for the UI we have to activate more features if (UI) { @@ -70,16 +76,22 @@ private static void Main() window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); // create an accuracy cost that updates every iteration - var cost = new TrainerChartPanel, double>("Cost", trainer, "optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch)); + var cost = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch)); // improve the chart performance cost.Fast(); + var weightAverage = new TrainerChartPanel, double>("Average of weights / Epoch", trainer, "shared.network_weights_average", TimeStep.Every(10, TimeScale.Epoch)); + weightAverage.Fast(); + + var weightStddev = new TrainerChartPanel, double>("Standard deviation of weights / Epoch", trainer, "shared.network_weights_stddev", TimeStep.Every(10, TimeScale.Epoch)); + weightStddev.Fast(); + + var updateAverage = new TrainerChartPanel, double>("Average of parameter updates / Epoch", trainer, "shared.optimiser_updates_average", TimeStep.Every(10, TimeScale.Epoch)); + updateAverage.Fast(); + //var accuracy = new AccuracyPanel("Accuracy", trainer, null, 1, 2, 3); //accuracy.Fast(); - // add the newly created panel - window.TabControl["Overview"].AddCumulativePanel(cost, 1, 1, iris); - IRegistry regTest = new Registry(); regTest.Add("test", DateTime.Now); @@ -97,11 +109,9 @@ private static void Main() var costBlock = (UserControlParameterVisualiser) parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - var learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("learning", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); + var learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("Learning rate", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("learning", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); - learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); var timeBox = (SigmaTextBlock) parameter.Content.Add("Running time", typeof(object), trainer.Operator.Registry, "runtime_millis"); timeBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); @@ -119,8 +129,11 @@ private static void Main() //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); + window.TabControl["Overview"].AddCumulativePanel(cost, 1, 1, iris); + window.TabControl["Overview"].AddCumulativePanel(updateAverage, 1, 1, iris); window.TabControl["Overview"].AddCumulativePanel(parameter); - + window.TabControl["Overview"].AddCumulativePanel(weightStddev, 1, 1, iris); + window.TabControl["Overview"].AddCumulativePanel(weightAverage, 1, 1, iris); //window.TabControl["Overview"].AddCumulativePanel(accuracy); //window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); From 67fe41c18ab5a8d0664ad38b7093d0e4c8f273c2 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Tue, 18 Apr 2017 21:45:26 +0200 Subject: [PATCH 30/40] Improve controlpanel with more information Add running time Add epoch Add iteration Add operator --- .../Panels/Controls/ControlPanel.cs | 75 ++++++++++++++++++- Sigma.Core.Monitors.WPF/Panels/SigmaPanel.cs | 55 ++++++++++++-- .../View/Windows/SigmaWindow.cs | 6 +- .../ViewModel/Tabs/TabUI.cs | 18 ++++- .../Synchronisation/ISynchronisationSource.cs | 14 ++++ .../Synchronisation/SynchronisationHandler.cs | 32 ++++++++ Sigma.Core/Sigma.cs | 3 +- .../Reporters/ValueSourceReporterHook.cs | 23 +++++- Sigma.Tests.Internals.WPF/Program.cs | 12 +-- 9 files changed, 209 insertions(+), 29 deletions(-) diff --git a/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs index ca4f677d..df9e3655 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs @@ -6,10 +6,17 @@ MIT License For full license see LICENSE in the root directory of this project. */ -using System.Windows; -using System.Windows.Controls; using Sigma.Core.Monitors.WPF.View.CustomControls.Panels.Control; +using Sigma.Core.Monitors.WPF.View.Parameterisation; +using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; +using Sigma.Core.Monitors.WPF.View.Windows; using Sigma.Core.Training; +using Sigma.Core.Training.Hooks.Reporters; +using Sigma.Core.Utils; +using System; +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; namespace Sigma.Core.Monitors.WPF.Panels.Controls { @@ -19,7 +26,8 @@ namespace Sigma.Core.Monitors.WPF.Panels.Controls /// public class ControlPanel : GenericPanel { - private readonly SigmaPlaybackControl _playbackControl; + private SigmaPlaybackControl _playbackControl; + private ParameterView _parameterView; private ITrainer _trainer; @@ -36,6 +44,18 @@ public ITrainer Trainer } } + /// + /// This list stores all trainers that have been initialised. + /// Required to only add one hook per trainer. + /// + private static readonly IList Trainers; + + static ControlPanel() + { + Trainers = new List(); + } + + public ControlPanel(string title, object content = null) : this(title, null, content) { } public ControlPanel(string title, ITrainer trainer, object content = null) : base(title, content) @@ -49,10 +69,57 @@ public ControlPanel(string title, ITrainer trainer, object content = null) : bas HorizontalAlignment = HorizontalAlignment.Center, Margin = new Thickness(0, 20, 0, 0) }; + } - _playbackControl = new SigmaPlaybackControl { Trainer = Trainer }; + /// + /// This method will be called once the window is initialising (after it has been added). + /// Do not store a reference of the window unless you properly dispose it (remove reference once not required). + /// + /// The wpf window this panel will be added to. + protected override void OnInitialise(WPFWindow window) + { + throw new InvalidOperationException($"{nameof(ControlPanel)} is only compatible with {nameof(SigmaWindow)}s."); + } + + /// + /// This method will be called after the panel has been added (window, monitor set...) + /// + protected override void OnInitialise(SigmaWindow window) + { + if (!Trainers.Contains(Trainer)) + { + ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "runtime_millis"); + _trainer.AddGlobalHook(valueHook); + Monitor.Sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); + Trainers.Add(Trainer); + } + + //TODO: style? + _playbackControl = new SigmaPlaybackControl { Trainer = Trainer, Margin = new Thickness(0, 0, 0, 20) }; Content.Children.Add(_playbackControl); + + _parameterView = new ParameterView(Monitor.Sigma, window); + + //TODO: language support + + SigmaTextBlock timeBox = (SigmaTextBlock) _parameterView.Add("Running time", typeof(object), _trainer.Operator.Registry, "runtime_millis"); + timeBox.AutoPollValues(_trainer, TimeStep.Every(1, TimeScale.Epoch)); + timeBox.Postfix = " ms"; + + UserControlParameterVisualiser epochBox = (UserControlParameterVisualiser) _parameterView.Add("Current epoch", typeof(object), _trainer.Operator.Registry, "epoch"); + epochBox.AutoPollValues(_trainer, TimeStep.Every(1, TimeScale.Epoch)); + + UserControlParameterVisualiser iterationBox = (UserControlParameterVisualiser) _parameterView.Add("Current iteration", typeof(object), _trainer.Operator.Registry, "iteration"); + iterationBox.AutoPollValues(_trainer, TimeStep.Every(1, TimeScale.Iteration)); + + IRegistry registry = new Registry + { + { "op", Trainer.Operator.GetType().Name } + }; + _parameterView.Add("Current operator", typeof(object), registry, "op"); + + Content.Children.Add(_parameterView); } } } diff --git a/Sigma.Core.Monitors.WPF/Panels/SigmaPanel.cs b/Sigma.Core.Monitors.WPF/Panels/SigmaPanel.cs index 73028d60..5fe123e4 100644 --- a/Sigma.Core.Monitors.WPF/Panels/SigmaPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/SigmaPanel.cs @@ -9,6 +9,7 @@ For full license see LICENSE in the root directory of this project. using System.Windows; using System.Windows.Controls; using MaterialDesignThemes.Wpf; +using Sigma.Core.Monitors.WPF.View.Windows; // ReSharper disable VirtualMemberCallInConstructor @@ -38,6 +39,11 @@ public abstract class SigmaPanel : Card /// private UIElement _content; + /// + /// Currently responsible monitor - it will be automatically set when adding a new panel. (null until ) + /// + public WPFMonitor Monitor { get; set; } + /// /// Create a SigmaPanel with a given title. /// If a title is not sufficient modify . @@ -99,7 +105,7 @@ protected SigmaPanel(string title, object content = null) } else { - _content = value as UIElement ?? new Label { Content = value.ToString() }; + _content = value as UIElement ?? new Label {Content = value.ToString()}; ContentGrid.Children.Add(_content); } } @@ -143,10 +149,10 @@ protected virtual Grid CreateHeader(object content) { Grid header = new Grid(); - header.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Auto) }); - header.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }); + header.RowDefinitions.Add(new RowDefinition {Height = new GridLength(1, GridUnitType.Auto)}); + header.ColumnDefinitions.Add(new ColumnDefinition {Width = new GridLength(1, GridUnitType.Auto)}); - Label headerContent = new Label { Content = content }; + Label headerContent = new Label {Content = content}; header.Children.Add(headerContent); header.SetResourceReference(BackgroundProperty, "SigmaPanelHeaderBackground"); @@ -174,19 +180,54 @@ protected virtual Grid CreateContentGrid() { Grid grid = new Grid(); - grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); - grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); + grid.RowDefinitions.Add(new RowDefinition {Height = new GridLength(1, GridUnitType.Star)}); + grid.ColumnDefinitions.Add(new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)}); return grid; } + /// + /// This method invokes the initialisation of the panel (after it has been addded). + /// + public void Initialise(WPFWindow window) + { + if (window is SigmaWindow) + { + OnInitialise((SigmaWindow)window); + } + else + { + OnInitialise(window); + } + } + + /// + /// This method will be called once the window is initialising (after it has been added). + /// Do not store a reference of the window unless you properly dispose it (remove reference once not required). + /// + /// The wpf window this panel will be added to. + protected virtual void OnInitialise(WPFWindow window) + { + + } + + /// + /// This method will be called once the window is initialising (after it has been added). + /// Do not store a reference of the window unless you properly dispose it (remove reference once not required). + /// + /// The wpf window this panel will be added to. + protected virtual void OnInitialise(SigmaWindow window) + { + + } + /// /// Create the default panel in which every other element is contained. /// /// The newly create . protected virtual DockPanel CreateDockPanel() { - return new DockPanel { LastChildFill = true, Margin = new Thickness(-1, 0, 0, 0) }; + return new DockPanel {LastChildFill = true, Margin = new Thickness(-1, 0, 0, 0)}; } } } \ No newline at end of file diff --git a/Sigma.Core.Monitors.WPF/View/Windows/SigmaWindow.cs b/Sigma.Core.Monitors.WPF/View/Windows/SigmaWindow.cs index 1e615dee..2428a1ba 100644 --- a/Sigma.Core.Monitors.WPF/View/Windows/SigmaWindow.cs +++ b/Sigma.Core.Monitors.WPF/View/Windows/SigmaWindow.cs @@ -171,7 +171,7 @@ public class SigmaWindow : WPFWindow, IDisposable /// The that is responsible for creation and detection of /// visualisation elements. /// - public IParameterVisualiserManager ParameterVisualiser { get; } + public IParameterVisualiserManager ParameterVisualiser { get; } /// /// The prefix-identifier for . @@ -663,7 +663,7 @@ protected virtual void AddTabs(TabControlUI tabControl, List { foreach (string name in names) { - tabControl.AddTab(name, new TabUI(name, DefaultGridSize)); + tabControl.AddTab(name, new TabUI(Monitor, name, DefaultGridSize)); } } @@ -675,7 +675,7 @@ public virtual void AddTabs(params string[] tabs) { foreach (string tab in tabs) { - TabControl.AddTab(tab, new TabUI(tab, DefaultGridSize)); + TabControl.AddTab(tab, new TabUI(Monitor, tab, DefaultGridSize)); } } diff --git a/Sigma.Core.Monitors.WPF/ViewModel/Tabs/TabUI.cs b/Sigma.Core.Monitors.WPF/ViewModel/Tabs/TabUI.cs index 9fe107bc..b737ce86 100644 --- a/Sigma.Core.Monitors.WPF/ViewModel/Tabs/TabUI.cs +++ b/Sigma.Core.Monitors.WPF/ViewModel/Tabs/TabUI.cs @@ -17,6 +17,7 @@ For full license see LICENSE in the root directory of this project. using Sigma.Core.Monitors.WPF.Model.UI.Windows; using Sigma.Core.Monitors.WPF.Panels; using Sigma.Core.Monitors.WPF.View; +using Sigma.Core.Monitors.WPF.View.Windows; using Sigma.Core.Monitors.WPF.ViewModel.CustomControls; using WPFGrid = System.Windows.Controls.Grid; @@ -39,17 +40,24 @@ public class TabUI : UIWrapper /// private GridSize _gridSize; + /// + /// The monitor this tab is assigned to. + /// + protected WPFMonitor Monitor; + /// /// Create a new - this basically is a /// with additional control. /// + /// The monitor this tab is assigned to. /// The header of the tab (name in the ) /// - /// The . Use - /// . + /// The . Use + /// . /// - public TabUI(string header, GridSize gridsize) + public TabUI(WPFMonitor monitor, string header, GridSize gridsize) { + Monitor = monitor; Content.Header = header; GridSize = gridsize; } @@ -205,8 +213,10 @@ protected virtual void ApplyLegend(SigmaPanel panel, StatusBarLegendInfo legend) public void AddCumulativePanel(SigmaPanel panel, int rowSpan = 1, int columnSpan = 1, StatusBarLegendInfo legend = null) { + panel.Monitor = Monitor; AddCumulativeElement(panel, rowSpan, columnSpan); ApplyLegend(panel, legend); + panel.Initialise(Monitor.Window); } /// @@ -266,8 +276,10 @@ public void AddCumulativeElement(UIElement element, int rowSpan = 1, int columnS public void AddPanel(SigmaPanel panel, int row, int column, int rowSpan = 1, int columnSpan = 1, StatusBarLegendInfo legend = null) { + panel.Monitor = Monitor; AddElement(panel, row, column, rowSpan, columnSpan); ApplyLegend(panel, legend); + panel.Initialise(Monitor.Window); } /// diff --git a/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs b/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs index 0552a024..f6f17e9b 100644 --- a/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs +++ b/Sigma.Core/Monitors/Synchronisation/ISynchronisationSource.cs @@ -24,5 +24,19 @@ public interface ISynchronisationSource /// The value itself that will be assigned if it applicable. /// True if the source could set given key, false otherwise. bool TrySet(string key, T val); + + /// + /// Determine whether a given key is contained / manged by this source. + /// + /// The key that will be checked. + /// True if given key can be accessed with get / set, false otherwise. + bool Contains(string key); + + /// + /// This is a list of keys this source provides. It is completely optional, although it is recommended to implement it. + /// + /// Once a new source is added, the keys of the sources are checked against to determine double entries which makes debugging for users easier (as log entries are produced autoamtically). + /// + string[] Keys { get; } } } \ No newline at end of file diff --git a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs index e407e57a..86c44038 100644 --- a/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs +++ b/Sigma.Core/Monitors/Synchronisation/SynchronisationHandler.cs @@ -8,6 +8,8 @@ For full license see LICENSE in the root directory of this project. using System; using System.Collections.Generic; +using System.Linq; +using log4net; using Sigma.Core.Training.Operators; using Sigma.Core.Utils; @@ -24,6 +26,8 @@ public class SynchronisationHandler : ISynchronisationHandler, ISynchronisationS /// public SigmaEnvironment Sigma { get; } + private readonly ILog _logger = LogManager.GetLogger(typeof(SigmaEnvironment)); + /// /// Map every registry to a resolver for that registry. /// @@ -53,6 +57,24 @@ public SynchronisationHandler(SigmaEnvironment sigma) public void AddSynchronisationSource(ISynchronisationSource source) { if (source == null) throw new ArgumentNullException(nameof(source)); + + if (source.Keys != null) + { + foreach (string key in source.Keys) + { + foreach (ISynchronisationSource savedSource in Sources) + { + if (savedSource.Keys != null) + { + if (savedSource.Keys.Contains(key)) + { + _logger.Warn($"The key {key} is added to a synchronisation handler by {source.GetType()} but is already provided by {savedSource.GetType()}. It is uncertain which key will be taken (possible performance decrease)."); + } + } + } + } + } + Sources.Add(source); } @@ -151,16 +173,26 @@ public void SynchroniseUpdate(IRegistry registry, string key, T currentVal, A } } + public string[] Keys { get; } + /// bool ISynchronisationSource.TryGet(string key, out T val) { throw new NotImplementedException("Get currently not implemented as no registry is passed"); } + + /// + bool ISynchronisationSource.Contains(string key) + { + throw new NotImplementedException("Get currently not implemented as no registry is passed"); + } + /// bool ISynchronisationSource.TrySet(string key, T val) { throw new NotImplementedException("Set currently not implemented as there is no error"); } + } } \ No newline at end of file diff --git a/Sigma.Core/Sigma.cs b/Sigma.Core/Sigma.cs index 211c771a..35ee5b86 100644 --- a/Sigma.Core/Sigma.cs +++ b/Sigma.Core/Sigma.cs @@ -59,7 +59,7 @@ public class SigmaEnvironment : ISerialisationNotifier private ManualResetEvent _processQueueEvent; [NonSerialized] - private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private readonly ILog _logger = LogManager.GetLogger(typeof(SigmaEnvironment)); /// /// The unique name of this environment. @@ -86,6 +86,7 @@ public class SigmaEnvironment : ISerialisationNotifier /// public IParameterisationManager ParameterisationManager { get; } + //TODO: put into trainer /// /// The handler that is responsible for syncing the monitor with operators / workers. /// diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs index e004484a..4080024f 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs @@ -28,7 +28,7 @@ public ValueSourceReporterHook(TimeStep timestep, string valueIdentifier) : base /// /// The values that will be fetched (i.e. registry identifiers). E.g. "optimiser.cost_total", ... /// The the hook will executed on. - public ValueSourceReporterHook(ITimeStep timestep, params string[] valueIdentifiers) : base(timestep, valueIdentifiers) + public ValueSourceReporterHook(ITimeStep timestep, params string[] valueIdentifiers) : base(timestep, valueIdentifiers) { Initialise(valueIdentifiers); } @@ -47,6 +47,7 @@ protected void Initialise(string valueIdentifier) Initialise(); IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; values.Add(valueIdentifier, null); + Keys = new[] {valueIdentifier}; } /// @@ -62,6 +63,7 @@ protected void Initialise(string[] valueIdentifiers) { values.Add(identifier, null); } + Keys = valueIdentifiers; } @@ -131,5 +133,24 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) } } } + + /// + /// Determine whether a given key is contained / manged by this source. + /// + /// The key that will be checked. + /// True if given key can be accessed with get / set, false otherwise. + public bool Contains(string key) + { + IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + + return values.ContainsKey(key); + } + + /// + /// This is a list of keys this source provides. It is completely optional, although it is recommended to implement it. + /// + /// Once a new source is added, the keys of the sources are checked against to determine double entries which makes debugging for users easier (as log entries are produced autoamtically). + /// + public string[] Keys { get; private set; } } } \ No newline at end of file diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index eebb7f87..ad760752 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -98,7 +98,7 @@ private static void Main() var parameter = new ParameterPanel("Parameters", sigma, window); parameter.Add("Time", typeof(DateTime), regTest, "test"); - ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total", "runtime_millis"); + ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total"); trainer.AddGlobalHook(valueHook); sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); @@ -113,15 +113,7 @@ private static void Main() learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - var timeBox = (SigmaTextBlock) parameter.Content.Add("Running time", typeof(object), trainer.Operator.Registry, "runtime_millis"); - timeBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - timeBox.Postfix = " ms"; - - var epochBox = (UserControlParameterVisualiser) parameter.Content.Add("Current epoch", typeof(object), trainer.Operator.Registry, "epoch"); - epochBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - - var iterationBox = (UserControlParameterVisualiser) parameter.Content.Add("Current iteration", typeof(object), trainer.Operator.Registry, "iteration"); - iterationBox.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Iteration)); + //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); From aaf9999232d8abd4997c0ae10e51639237b648f2 Mon Sep 17 00:00:00 2001 From: Florian Date: Wed, 19 Apr 2017 09:44:55 +0200 Subject: [PATCH 31/40] Update metric wpf demo --- Sigma.Tests.Internals.WPF/Program.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index ad760752..0027f37b 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -1,5 +1,4 @@ -using System; -using LiveCharts.Wpf; +using LiveCharts.Wpf; using Sigma.Core; using Sigma.Core.Architecture; using Sigma.Core.Data.Datasets; @@ -20,7 +19,6 @@ using Sigma.Core.Monitors.WPF.Panels.Parameterisation; using Sigma.Core.Monitors.WPF.Utils; using Sigma.Core.Monitors.WPF.View.Parameterisation; -using Sigma.Core.Monitors.WPF.View.Parameterisation.Defaults; using Sigma.Core.Training; using Sigma.Core.Training.Hooks.Processors; using Sigma.Core.Training.Hooks.Reporters; @@ -29,6 +27,7 @@ using Sigma.Core.Training.Optimisers.Gradient; using Sigma.Core.Training.Optimisers.Gradient.Memory; using Sigma.Core.Utils; +using System; namespace Sigma.Tests.Internals.WPF { @@ -76,7 +75,7 @@ private static void Main() window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); // create an accuracy cost that updates every iteration - var cost = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch)); + var cost = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", TimeStep.Every(10, TimeScale.Epoch)); // improve the chart performance cost.Fast(); From 3ea4826cc32c3149990939e99632b56e43ea1320 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Wed, 19 Apr 2017 20:54:23 +0200 Subject: [PATCH 32/40] Fix cost parameter --- .../Panels/Controls/ControlPanel.cs | 6 +++- .../Reporters/ValueSourceReporterHook.cs | 28 +++++++++---------- Sigma.Tests.Internals.WPF/Program.cs | 9 +----- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs index df9e3655..f5790190 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Controls/ControlPanel.cs @@ -92,10 +92,14 @@ protected override void OnInitialise(SigmaWindow window) _trainer.AddGlobalHook(valueHook); Monitor.Sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); Trainers.Add(Trainer); + + valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Iteration), "iteration"); + _trainer.AddLocalHook(valueHook); + Monitor.Sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); } //TODO: style? - _playbackControl = new SigmaPlaybackControl { Trainer = Trainer, Margin = new Thickness(0, 0, 0, 20) }; + _playbackControl = new SigmaPlaybackControl { Trainer = Trainer, Margin = new Thickness(0, 0, 0, 20), HorizontalAlignment = HorizontalAlignment.Center}; Content.Children.Add(_playbackControl); diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs index 4080024f..aef22a04 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueSourceReporterHook.cs @@ -10,6 +10,8 @@ namespace Sigma.Core.Training.Hooks.Reporters public class ValueSourceReporterHook : BaseHook, ISynchronisationSource { private const string ValueIdentifier = "values"; + private const string RegistryResolver = "resolver"; + //private readonly IDictionary _values = new Dictionary(); /// @@ -35,7 +37,10 @@ public ValueSourceReporterHook(ITimeStep timestep, params string[] valueIdentifi private void Initialise() { - ParameterRegistry.Add(ValueIdentifier, new Dictionary()); + IRegistry reg = new Registry(); + reg.Add(RegistryResolver, new RegistryResolver(reg)); + + ParameterRegistry.Add(ValueIdentifier, reg); } /// @@ -45,7 +50,7 @@ private void Initialise() protected void Initialise(string valueIdentifier) { Initialise(); - IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + IRegistry values = (IRegistry) ParameterRegistry[ValueIdentifier]; values.Add(valueIdentifier, null); Keys = new[] {valueIdentifier}; } @@ -57,7 +62,7 @@ protected void Initialise(string valueIdentifier) protected void Initialise(string[] valueIdentifiers) { Initialise(); - IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + IRegistry values = (IRegistry) ParameterRegistry[ValueIdentifier]; foreach (string identifier in valueIdentifiers) { @@ -76,24 +81,17 @@ protected void Initialise(string[] valueIdentifiers) /// True if the source could retrieve given key, false otherwise. public bool TryGet(string key, out T val) { - IDictionary values = (IDictionary) ParameterRegistry[ValueIdentifier]; + IRegistry values = (IRegistry) ParameterRegistry[ValueIdentifier]; + IRegistryResolver resolver = values.Get(RegistryResolver); //TODO: validate lock requirement, probably it is required lock (values) { - object oVal; + T[] vals = resolver.ResolveGet(key); - if (values.TryGetValue(key, out oVal)) + if (vals.Length > 0) { - if (oVal == null) - { - val = default(T); - } - else - { - val = (T) oVal; - } - + val = vals[0]; return true; } diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 0027f37b..a07fcbf0 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -98,22 +98,15 @@ private static void Main() parameter.Add("Time", typeof(DateTime), regTest, "test"); ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total"); - trainer.AddGlobalHook(valueHook); - sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); - - valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Iteration), "iteration"); trainer.AddLocalHook(valueHook); sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); - var costBlock = (UserControlParameterVisualiser) parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); + var costBlock = (UserControlParameterVisualiser) parameter.Content.Add("Cost", typeof(object), trainer.Operator.Registry, "optimiser.cost_total"); costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); var learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("Learning rate", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - - - //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); //var heeBlock = new SigmaTimeBlock(); From 3c73a001533437f1ee26877ef940cdaa7229859f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Thu, 20 Apr 2017 19:19:03 +0200 Subject: [PATCH 33/40] Add average mode to number accumulator and corresponding components Add average mode to number accumulator and corresponding components --- .../Panels/Charts/AccuracyPanel.cs | 20 +- .../Panels/Charts/TrainerChartPanel.cs | 10 +- .../Hooks/Processors/NumberAccumulatorHook.cs | 26 +- .../Hooks/Reporters/ValueReporterHook.cs | 4 +- Sigma.Core/Utils/RegistryResolver.cs | 2 +- Sigma.Tests.Internals.WPF/Program.cs | 315 ++++++++++-------- 6 files changed, 216 insertions(+), 161 deletions(-) diff --git a/Sigma.Core.Monitors.WPF/Panels/Charts/AccuracyPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Charts/AccuracyPanel.cs index d480525e..a96a0db9 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Charts/AccuracyPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Charts/AccuracyPanel.cs @@ -6,6 +6,7 @@ MIT License For full license see LICENSE in the root directory of this project. */ +using System; using System.Collections.Generic; using LiveCharts; using LiveCharts.Wpf; @@ -42,15 +43,30 @@ public AccuracyPanel(string title, ITrainer trainer, object headerContent = null /// The content for the header. If null is passed, /// the title will be used. /// - public AccuracyPanel(string title, ITrainer trainer, object headerContent = null, params int[] tops) : base(title, headerContent) + public AccuracyPanel(string title, ITrainer trainer, object headerContent = null, params int[] tops) : this(title, trainer, TimeStep.Every(1, TimeScale.Epoch), headerContent, tops) { + } + + /// + /// Create an AccuracyPanel with a given title. It displays given accuracies per epoch. + /// If a title is not sufficient modify . + /// + /// The given tile. + /// + /// The content for the header. If null is passed, + /// the title will be used. + /// + public AccuracyPanel(string title, ITrainer trainer, ITimeStep timeStep, object headerContent = null, params int[] tops) : base(title, headerContent) + { + if (timeStep == null) throw new ArgumentNullException(nameof(timeStep)); + // skip the first since its automatically generated for (int i = 1; i < tops.Length; i++) { AddSeries(new LineSeries()); } - trainer.AddHook(new ChartValidationAccuracyReport(this, "validation", TimeStep.Every(1, TimeScale.Epoch), tops)); + trainer.AddHook(new ChartValidationAccuracyReport(this, "validation", timeStep, tops)); AxisY.MinValue = 0; AxisY.MaxValue = 100; diff --git a/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs b/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs index 5e8285a5..7ac2486d 100644 --- a/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs +++ b/Sigma.Core.Monitors.WPF/Panels/Charts/TrainerChartPanel.cs @@ -48,9 +48,9 @@ namespace Sigma.Core.Monitors.WPF.Panels.Charts /// The for the hook. /// The content for the header. If null is passed, /// the title will be used. - public TrainerChartPanel(string title, ITrainer trainer, string hookedValue, ITimeStep timestep, object headerContent = null) : base(title, headerContent) + public TrainerChartPanel(string title, ITrainer trainer, string hookedValue, ITimeStep timestep, bool averageMode = false, object headerContent = null) : base(title, headerContent) { - VisualValueReporterHook hook = new VisualValueReporterHook(this, new[] { hookedValue }, timestep); + VisualValueReporterHook hook = new VisualValueReporterHook(this, new[] { hookedValue }, timestep, averageMode); Init(trainer, hook); } @@ -65,9 +65,9 @@ public TrainerChartPanel(string title, ITrainer trainer, string hookedValue, ITi /// The for the hook. /// The content for the header. If null is passed, /// the title will be used. - public TrainerChartPanel(string title, ITrainer trainer, ITimeStep timestep, object headerContent = null, params string[] hookedValues) : base(title, headerContent) + public TrainerChartPanel(string title, ITrainer trainer, ITimeStep timestep, bool averageMode = false, object headerContent = null, params string[] hookedValues) : base(title, headerContent) { - VisualValueReporterHook hook = new VisualValueReporterHook(this, hookedValues, timestep); + VisualValueReporterHook hook = new VisualValueReporterHook(this, hookedValues, timestep, averageMode); Init(trainer, hook); } @@ -118,7 +118,7 @@ protected class VisualValueReporterHook : ValueReporterHook /// The chartpanel to which points will get added. /// The identifiers for the ; these values will get plotted. /// The for the hook (i.e. execution definition). - public VisualValueReporterHook(ChartPanel chartPanel, string[] valueIdentifiers, ITimeStep timestep) : base(valueIdentifiers, timestep) + public VisualValueReporterHook(ChartPanel chartPanel, string[] valueIdentifiers, ITimeStep timestep, bool averageMode = false) : base(valueIdentifiers, timestep, averageMode, false) { ParameterRegistry[ChartPanelIdentifier] = chartPanel; } diff --git a/Sigma.Core/Training/Hooks/Processors/NumberAccumulatorHook.cs b/Sigma.Core/Training/Hooks/Processors/NumberAccumulatorHook.cs index dbe445c9..a33eafc1 100644 --- a/Sigma.Core/Training/Hooks/Processors/NumberAccumulatorHook.cs +++ b/Sigma.Core/Training/Hooks/Processors/NumberAccumulatorHook.cs @@ -17,16 +17,19 @@ namespace Sigma.Core.Training.Hooks.Accumulators [Serializable] public class NumberAccumulatorHook : BaseHook { - public NumberAccumulatorHook(string registryEntry, TimeStep timeStep, int resetEvery = -1, int resetInterval = 0) : this(registryEntry, registryEntry.Replace('.', '_') + "_accumulated", timeStep, resetEvery, resetInterval) + public NumberAccumulatorHook(string registryEntry, TimeStep timeStep, bool averageMode = false, int resetEvery = -1, int resetInterval = 0) : this(registryEntry, registryEntry.Replace('.', '_') + "_accumulated", timeStep, averageMode, resetEvery, resetInterval) { } - public NumberAccumulatorHook(string registryEntry, string resultEntry, TimeStep timeStep, int resetEvery = -1, int resetInterval = 0) : base(timeStep, registryEntry) + public NumberAccumulatorHook(string registryEntry, string resultEntry, TimeStep timeStep, bool averageMode = false, int resetEvery = -1, int resetInterval = 0) : base(timeStep, registryEntry) { ParameterRegistry["registry_entry"] = registryEntry; ParameterRegistry["shared_result_entry"] = resultEntry; + ParameterRegistry["accumulated_value"] = 0.0; ParameterRegistry["reset_interval"] = resetInterval; ParameterRegistry["reset_every"] = resetEvery; + ParameterRegistry["average_mode"] = averageMode; + ParameterRegistry["count_since_reset"] = 0; } /// @@ -40,18 +43,31 @@ public override void SubInvoke(IRegistry registry, IRegistryResolver resolver) string resultEntry = ParameterRegistry.Get("shared_result_entry"); double value = resolver.ResolveGetSingle(registryEntry); - double accumulatedValue = resolver.ResolveGetSingleWithDefault(resultEntry, 0.0); + double previousAccumulatedValue = ParameterRegistry.Get("accumulated_value"); int currentInterval = HookUtils.GetCurrentInterval(registry, TimeStep.TimeScale); int resetInterval = ParameterRegistry.Get("reset_interval"); int resetEvery = ParameterRegistry.Get("reset_every"); + int countSinceReset = ParameterRegistry.Get("count_since_reset"); if (currentInterval == resetInterval || resetEvery > 0 && currentInterval % resetEvery == 0) { - accumulatedValue = 0.0; + previousAccumulatedValue = 0.0; + countSinceReset = 0; } - resolver.ResolveSet(resultEntry, value + accumulatedValue, addIdentifierIfNotExists: true); + countSinceReset++; + + double result = value + previousAccumulatedValue; + + if (ParameterRegistry.Get("average_mode")) + { + result /= countSinceReset; + } + + ParameterRegistry["count_since_reset"] = countSinceReset; + ParameterRegistry["accumulated_value"] = value + previousAccumulatedValue; + resolver.ResolveSet(resultEntry, result, addIdentifierIfNotExists: true); } } } diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs index 829611ad..f79466e8 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs @@ -62,7 +62,7 @@ public ValueReporterHook(string valueIdentifier, ITimeStep timestep, double thre /// The values that will be fetched (i.e. registry identifiers). E.g. "optimiser.cost_total", ... /// The the hook will executed on. /// Indicate whether or not to report the current epoch and iteration in addition to the values. - public ValueReporterHook(string[] valueIdentifiers, ITimeStep timestep, bool reportEpochIteration = false) : base(timestep, valueIdentifiers) + public ValueReporterHook(string[] valueIdentifiers, ITimeStep timestep, bool averageValues = false, bool reportEpochIteration = false) : base(timestep, valueIdentifiers) { if (valueIdentifiers.Length == 0) throw new ArgumentException("Value identifiers cannot be empty (it's the whole point of this hook)."); @@ -92,7 +92,7 @@ public ValueReporterHook(string[] valueIdentifiers, ITimeStep timestep, bool rep resetInterval = 0; } - RequireHook(new NumberAccumulatorHook(value, accumulatedIdentifiers[i], Utils.TimeStep.Every(1, TimeScale.Iteration), resetEvery, resetInterval)); + RequireHook(new NumberAccumulatorHook(value, accumulatedIdentifiers[i], Utils.TimeStep.Every(1, TimeScale.Iteration), averageValues, resetEvery, resetInterval)); valueBuffer.Add(value, null); } diff --git a/Sigma.Core/Utils/RegistryResolver.cs b/Sigma.Core/Utils/RegistryResolver.cs index 70158acf..f5b2f750 100644 --- a/Sigma.Core/Utils/RegistryResolver.cs +++ b/Sigma.Core/Utils/RegistryResolver.cs @@ -344,7 +344,7 @@ private void AddMatchingIdentifiersFromRegistryTree(int hierarchyLevel, int last bool noneMatched = true; - foreach (string identifier in currentRootAtLevel.Keys) + foreach (string identifier in currentRootAtLevel.Keys.ToArray()) // TODO ugly hack, toarray is inefficient and is just to prevent "random" concurrent modification exception { if (regex.IsMatch(identifier)) { diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 0027f37b..a0b49466 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -28,191 +28,214 @@ using Sigma.Core.Training.Optimisers.Gradient.Memory; using Sigma.Core.Utils; using System; +using Sigma.Core.Monitors.WPF.Model.UI.Windows; +using Sigma.Core.Training.Modifiers; namespace Sigma.Tests.Internals.WPF { - internal class Program - { - private const bool UI = true; + internal class Program + { + private const bool UI = true; - private static void Main() - { - SigmaEnvironment.EnableLogging(); - SigmaEnvironment sigma = SigmaEnvironment.Create("Sigma-MNIST"); + private static void Main() + { + SigmaEnvironment.EnableLogging(); + SigmaEnvironment sigma = SigmaEnvironment.Create("Sigma-MNIST"); - // create a new mnist trainer - ITrainer trainer = CreateIrisTrainer(sigma); + // create a new mnist trainer + ITrainer trainer = CreateIrisTrainer(sigma); - trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.network_weights_average")); - trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.StandardDeviation(a), "shared.network_weights_stddev")); - trainer.AddLocalHook(new MetricProcessorHook("optimiser.updates", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.optimiser_updates_average")); + trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.network_weights_average")); + trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.StandardDeviation(a), "shared.network_weights_stddev")); + trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.biases", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.network_biases_average")); + trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.biases", (a, h) => h.StandardDeviation(a), "shared.network_biases_stddev")); + trainer.AddLocalHook(new MetricProcessorHook("optimiser.updates", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.optimiser_updates_average")); + trainer.AddLocalHook(new MetricProcessorHook("optimiser.updates", (a, h) => h.StandardDeviation(a), "shared.optimiser_updates_stddev")); - // for the UI we have to activate more features - if (UI) - { - // create and attach a new UI framework - WPFMonitor gui = sigma.AddMonitor(new WPFMonitor("MNIST")); + // for the UI we have to activate more features + if (UI) + { + // create and attach a new UI framework + WPFMonitor gui = sigma.AddMonitor(new WPFMonitor("MNIST")); - StatusBarLegendInfo iris = new StatusBarLegendInfo("IRIS", MaterialColour.Blue); - StatusBarLegendInfo general = new StatusBarLegendInfo("General", MaterialColour.Yellow); - gui.AddLegend(iris); - gui.AddLegend(general); + StatusBarLegendInfo iris = new StatusBarLegendInfo("IRIS", MaterialColour.Blue); + StatusBarLegendInfo general = new StatusBarLegendInfo("General", MaterialColour.Yellow); + gui.AddLegend(iris); + gui.AddLegend(general); - // create a tab - gui.AddTabs("Overview"); + // create a tab + gui.AddTabs("Overview", "Metrics", "Validation"); - // access the window inside the ui thread - gui.WindowDispatcher(window => - { - // enable initialisation - window.IsInitializing = true; + // access the window inside the ui thread + gui.WindowDispatcher(window => + { + // enable initialisation + window.IsInitializing = true; - window.TabControl["Overview"].GridSize.Rows -= 1; - window.TabControl["Overview"].GridSize.Columns -= 1; + window.TabControl["Metrics"].GridSize = new GridSize(2, 4); + window.TabControl["Validation"].GridSize = new GridSize(1, 2); - // add a panel that controls the learning process - window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); + window.TabControl["Overview"].GridSize.Rows -= 1; + window.TabControl["Overview"].GridSize.Columns -= 1; - // create an accuracy cost that updates every iteration - var cost = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", TimeStep.Every(10, TimeScale.Epoch)); - // improve the chart performance - cost.Fast(); + // add a panel that controls the learning process + window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); - var weightAverage = new TrainerChartPanel, double>("Average of weights / Epoch", trainer, "shared.network_weights_average", TimeStep.Every(10, TimeScale.Epoch)); - weightAverage.Fast(); + ITimeStep reportTimeStep = TimeStep.Every(10, TimeScale.Epoch); - var weightStddev = new TrainerChartPanel, double>("Standard deviation of weights / Epoch", trainer, "shared.network_weights_stddev", TimeStep.Every(10, TimeScale.Epoch)); - weightStddev.Fast(); + var cost = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", reportTimeStep); + cost.Fast(); - var updateAverage = new TrainerChartPanel, double>("Average of parameter updates / Epoch", trainer, "shared.optimiser_updates_average", TimeStep.Every(10, TimeScale.Epoch)); - updateAverage.Fast(); + var weightAverage = new TrainerChartPanel, double>("Mean of Weights / Epoch", trainer, "shared.network_weights_average", reportTimeStep, averageMode: true); + weightAverage.Fast(); - //var accuracy = new AccuracyPanel("Accuracy", trainer, null, 1, 2, 3); - //accuracy.Fast(); + var weightStddev = new TrainerChartPanel, double>("Standard Deviation of Weights / Epoch", trainer, "shared.network_weights_stddev", reportTimeStep, averageMode: true); + weightStddev.Fast(); - IRegistry regTest = new Registry(); - regTest.Add("test", DateTime.Now); + var biasesAverage = new TrainerChartPanel, double>("Mean of Biases / Epoch", trainer, "shared.network_biases_average", reportTimeStep, averageMode: true); + biasesAverage.Fast(); - var parameter = new ParameterPanel("Parameters", sigma, window); - parameter.Add("Time", typeof(DateTime), regTest, "test"); + var biasesStddev = new TrainerChartPanel, double>("Standard Deviation of Biases / Epoch", trainer, "shared.network_biases_stddev", reportTimeStep, averageMode: true); + biasesStddev.Fast(); - ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total"); - trainer.AddGlobalHook(valueHook); - sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); + var updateAverage = new TrainerChartPanel, double>("Mean of Parameter Updates / Epoch", trainer, "shared.optimiser_updates_average", reportTimeStep, averageMode: true); + updateAverage.Fast(); - valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Iteration), "iteration"); - trainer.AddLocalHook(valueHook); - sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); + var updateStddev = new TrainerChartPanel, double>("Standard Deviation of Parameter Updates / Epoch", trainer, "shared.optimiser_updates_stddev", reportTimeStep, averageMode: true); + updateStddev.Fast(); - var costBlock = (UserControlParameterVisualiser) parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); - costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + var accuracy = new AccuracyPanel("Validation Accuracy", trainer, reportTimeStep, null, 1, 2); + accuracy.Fast(); - var learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("Learning rate", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); - learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + IRegistry regTest = new Registry(); + regTest.Add("test", DateTime.Now); + var parameter = new ParameterPanel("Parameters", sigma, window); + parameter.Add("Time", typeof(DateTime), regTest, "test"); - + ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total"); + trainer.AddGlobalHook(valueHook); + sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); - //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Iteration), "iteration"); + trainer.AddLocalHook(valueHook); + sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); - //var heeBlock = new SigmaTimeBlock(); - //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); + var costBlock = (UserControlParameterVisualiser)parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); + costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + + var learningBlock = (UserControlParameterVisualiser)parameter.Content.Add("Learning rate", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); + learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - window.TabControl["Overview"].AddCumulativePanel(cost, 1, 1, iris); - window.TabControl["Overview"].AddCumulativePanel(updateAverage, 1, 1, iris); - window.TabControl["Overview"].AddCumulativePanel(parameter); - window.TabControl["Overview"].AddCumulativePanel(weightStddev, 1, 1, iris); - window.TabControl["Overview"].AddCumulativePanel(weightAverage, 1, 1, iris); - //window.TabControl["Overview"].AddCumulativePanel(accuracy); + //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); - //window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); + //var heeBlock = new SigmaTimeBlock(); + //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); - // finish initialisation - window.IsInitializing = false; - }); + //window.TabControl["Overview"].AddCumulativePanel(cost, 1, 2, legend: iris); + window.TabControl["Overview"].AddCumulativePanel(parameter); + //window.TabControl["Overview"].AddCumulativePanel(accuracy, 1, 2, legend: iris); - // the operators should not run instantly but when the user clicks play - sigma.StartOperatorsOnRun = false; - } + window.TabControl["Metrics"].AddCumulativePanel(cost, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(weightAverage, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(biasesAverage, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(updateAverage, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(accuracy, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(weightStddev, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(biasesStddev, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(updateStddev, legend: iris); + + //window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); - sigma.Prepare(); + // finish initialisation + window.IsInitializing = false; + }); - sigma.Run(); - } + // the operators should not run instantly but when the user clicks play + sigma.StartOperatorsOnRun = false; + } - private static ITrainer CreateIrisTrainer(SigmaEnvironment sigma) - { - var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); - IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica"); - irisExtractor = irisExtractor.Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)); - irisExtractor = irisExtractor.Preprocess(new PerIndexNormalisingPreprocessor(0, 1, "inputs", 0, 4.3, 7.9, 1, 2.0, 4.4, 2, 1.0, 6.9, 3, 0.1, 2.5)); + sigma.Prepare(); - IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); - IDataset trainingDataset = dataset; - IDataset validationDataset = dataset; + sigma.Run(); + } - ITrainer trainer = sigma.CreateTrainer("test"); + private static ITrainer CreateIrisTrainer(SigmaEnvironment sigma) + { + var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); + IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica"); + irisExtractor = irisExtractor.Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)); + irisExtractor = irisExtractor.Preprocess(new PerIndexNormalisingPreprocessor(0, 1, "inputs", 0, 4.3, 7.9, 1, 2.0, 4.4, 2, 1.0, 6.9, 3, 0.1, 2.5)); - trainer.Network = new Network(); - trainer.Network.Architecture = InputLayer.Construct(4) - + FullyConnectedLayer.Construct(10) - + FullyConnectedLayer.Construct(20) - + FullyConnectedLayer.Construct(10) - + FullyConnectedLayer.Construct(3) - + OutputLayer.Construct(3) - + SquaredDifferenceCostLayer.Construct(); - trainer.TrainingDataIterator = new MinibatchIterator(4, trainingDataset); - trainer.AddNamedDataIterator("validation", new UndividedIterator(validationDataset)); - trainer.Optimiser = new GradientDescentOptimiser(learningRate: 0.002); - trainer.Operator = new CpuSinglethreadedOperator(); + IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); + IDataset trainingDataset = dataset; + IDataset validationDataset = dataset; - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.4)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01, mean: 0.05)); + ITrainer trainer = sigma.CreateTrainer("test"); - trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); - trainer.AddLocalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.Network = new Network(); + trainer.Network.Architecture = InputLayer.Construct(4) + + FullyConnectedLayer.Construct(10) + + FullyConnectedLayer.Construct(20) + + FullyConnectedLayer.Construct(10) + + FullyConnectedLayer.Construct(3) + + OutputLayer.Construct(3) + + SquaredDifferenceCostLayer.Construct(); + trainer.TrainingDataIterator = new MinibatchIterator(4, trainingDataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(validationDataset)); + trainer.Optimiser = new GradientDescentOptimiser(learningRate: 0.002); + trainer.Operator = new CpuSinglethreadedOperator(); - return trainer; - } - - /// - /// Create a MNIST trainer (writing recognition) will be added to an environemnt. - /// - /// The sigma environemnt this trainer will be assigned to. - /// The newly created trainer. - private static ITrainer CreateMnistTrainer(SigmaEnvironment sigma) - { - ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")))); - IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); - - ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); - IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - - IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); - ITrainer trainer = sigma.CreateTrainer("test"); - - trainer.Network = new Network - { - Architecture = InputLayer.Construct(28, 28) - + 2 * FullyConnectedLayer.Construct(28 * 28) - + FullyConnectedLayer.Construct(10) - + OutputLayer.Construct(10) - + SoftMaxCrossEntropyCostLayer.Construct() - }; - - trainer.TrainingDataIterator = new MinibatchIterator(8, dataset); - trainer.Optimiser = new AdagradOptimiser(baseLearningRate: 0.02); - trainer.Operator = new CpuSinglethreadedOperator(); - - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.05f)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); - - trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Iteration))); - - return trainer; - } - } + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.4)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01, mean: 0.05)); + + trainer.AddValueModifier("network.layers.*.weights", new ClipValueModifier()); + trainer.AddValueModifier("network.layers.*.bias*", new ClipValueModifier()); + + trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); + trainer.AddLocalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); + + return trainer; + } + + /// + /// Create a MNIST trainer (writing recognition) will be added to an environemnt. + /// + /// The sigma environemnt this trainer will be assigned to. + /// The newly created trainer. + private static ITrainer CreateMnistTrainer(SigmaEnvironment sigma) + { + ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: new CompressedSource(new MultiSource(new FileSource("train-images-idx3-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz")))); + IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); + + ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); + IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); + + IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); + ITrainer trainer = sigma.CreateTrainer("test"); + + trainer.Network = new Network + { + Architecture = InputLayer.Construct(28, 28) + + 2 * FullyConnectedLayer.Construct(28 * 28) + + FullyConnectedLayer.Construct(10) + + OutputLayer.Construct(10) + + SoftMaxCrossEntropyCostLayer.Construct() + }; + + trainer.TrainingDataIterator = new MinibatchIterator(8, dataset); + trainer.Optimiser = new AdagradOptimiser(baseLearningRate: 0.02); + trainer.Operator = new CpuSinglethreadedOperator(); + + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.05f)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); + + trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Iteration))); + + return trainer; + } + } } From 890cc68b59bfefa5cd8756a294dbe90616e89a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Thu, 20 Apr 2017 21:38:27 +0200 Subject: [PATCH 34/40] Update internal mnist and iris demos --- Sigma.Tests.Internals.WPF/Program.cs | 213 ++++++++++++++------------- 1 file changed, 107 insertions(+), 106 deletions(-) diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 0364ff3f..2cc34edd 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -28,7 +28,12 @@ using Sigma.Core.Training.Optimisers.Gradient.Memory; using Sigma.Core.Utils; using System; +using System.Threading; +using Sigma.Core.Data.Preprocessors.Adaptive; using Sigma.Core.Monitors.WPF.Model.UI.Windows; +using Sigma.Core.Training.Hooks; +using Sigma.Core.Training.Hooks.Saviors; +using Sigma.Core.Training.Hooks.Stoppers; using Sigma.Core.Training.Modifiers; namespace Sigma.Tests.Internals.WPF @@ -36,15 +41,16 @@ namespace Sigma.Tests.Internals.WPF internal class Program { - private const bool UI = true; + private const bool SampleMnist = true; private static void Main() { SigmaEnvironment.EnableLogging(); - SigmaEnvironment sigma = SigmaEnvironment.Create("Sigma-MNIST"); + SigmaEnvironment sigma = SigmaEnvironment.Create("sigma_demo"); // create a new mnist trainer - ITrainer trainer = CreateIrisTrainer(sigma); + string name = SampleMnist ? "MNIST" : "IRIS"; + ITrainer trainer = SampleMnist ? CreateMnistTrainer(sigma) : CreateIrisTrainer(sigma); trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.network_weights_average")); trainer.AddLocalHook(new MetricProcessorHook("network.layers.*.weights", (a, h) => h.StandardDeviation(a), "shared.network_weights_stddev")); @@ -53,105 +59,109 @@ private static void Main() trainer.AddLocalHook(new MetricProcessorHook("optimiser.updates", (a, h) => h.Divide(h.Sum(a), a.Length), "shared.optimiser_updates_average")); trainer.AddLocalHook(new MetricProcessorHook("optimiser.updates", (a, h) => h.StandardDeviation(a), "shared.optimiser_updates_stddev")); - // for the UI we have to activate more features - if (UI) - { - // create and attach a new UI framework - WPFMonitor gui = sigma.AddMonitor(new WPFMonitor("MNIST")); + // create and attach a new UI framework + WPFMonitor gui = sigma.AddMonitor(new WPFMonitor(name, SampleMnist ? "de-DE" : "en-EN")); + gui.ColourManager.Dark = !SampleMnist; - StatusBarLegendInfo iris = new StatusBarLegendInfo("IRIS", MaterialColour.Blue); - StatusBarLegendInfo general = new StatusBarLegendInfo("General", MaterialColour.Yellow); - gui.AddLegend(iris); - gui.AddLegend(general); + StatusBarLegendInfo iris = new StatusBarLegendInfo(name, MaterialColour.Blue); + StatusBarLegendInfo general = new StatusBarLegendInfo("General", MaterialColour.Grey); + gui.AddLegend(iris); + gui.AddLegend(general); - // create a tab - gui.AddTabs("Overview", "Metrics", "Validation"); + // create a tab + gui.AddTabs("Overview", "Metrics", "Validation"); - // access the window inside the ui thread - gui.WindowDispatcher(window => - { - // enable initialisation - window.IsInitializing = true; + // access the window inside the ui thread + gui.WindowDispatcher(window => + { + // enable initialisation + window.IsInitializing = true; - window.TabControl["Metrics"].GridSize = new GridSize(2, 4); - window.TabControl["Validation"].GridSize = new GridSize(1, 2); + window.TabControl["Metrics"].GridSize = new GridSize(2, 4); + window.TabControl["Validation"].GridSize = new GridSize(1, 2); - window.TabControl["Overview"].GridSize.Rows -= 1; - window.TabControl["Overview"].GridSize.Columns -= 1; + window.TabControl["Overview"].GridSize.Rows -= 1; + window.TabControl["Overview"].GridSize.Columns -= 1; - // add a panel that controls the learning process - window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); + // add a panel that controls the learning process + window.TabControl["Overview"].AddCumulativePanel(new ControlPanel("Control", trainer), legend: iris); - ITimeStep reportTimeStep = TimeStep.Every(10, TimeScale.Epoch); + ITimeStep reportTimeStep = SampleMnist ? TimeStep.Every(1, TimeScale.Iteration) : TimeStep.Every(10, TimeScale.Epoch); - var cost = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", reportTimeStep); - cost.Fast(); + var cost1 = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", reportTimeStep); + cost1.Fast(); + //var cost2 = new TrainerChartPanel, double>("Cost / Epoch", trainer, "optimiser.cost_total", reportTimeStep); + //cost2.Fast(); - var weightAverage = new TrainerChartPanel, double>("Mean of Weights / Epoch", trainer, "shared.network_weights_average", reportTimeStep, averageMode: true); - weightAverage.Fast(); + var weightAverage = new TrainerChartPanel, double>("Mean of Weights / Epoch", trainer, "shared.network_weights_average", reportTimeStep, averageMode: true); + weightAverage.Fast(); - var weightStddev = new TrainerChartPanel, double>("Standard Deviation of Weights / Epoch", trainer, "shared.network_weights_stddev", reportTimeStep, averageMode: true); - weightStddev.Fast(); + var weightStddev = new TrainerChartPanel, double>("Standard Deviation of Weights / Epoch", trainer, "shared.network_weights_stddev", reportTimeStep, averageMode: true); + weightStddev.Fast(); - var biasesAverage = new TrainerChartPanel, double>("Mean of Biases / Epoch", trainer, "shared.network_biases_average", reportTimeStep, averageMode: true); - biasesAverage.Fast(); + var biasesAverage = new TrainerChartPanel, double>("Mean of Biases / Epoch", trainer, "shared.network_biases_average", reportTimeStep, averageMode: true); + biasesAverage.Fast(); - var biasesStddev = new TrainerChartPanel, double>("Standard Deviation of Biases / Epoch", trainer, "shared.network_biases_stddev", reportTimeStep, averageMode: true); - biasesStddev.Fast(); + var biasesStddev = new TrainerChartPanel, double>("Standard Deviation of Biases / Epoch", trainer, "shared.network_biases_stddev", reportTimeStep, averageMode: true); + biasesStddev.Fast(); - var updateAverage = new TrainerChartPanel, double>("Mean of Parameter Updates / Epoch", trainer, "shared.optimiser_updates_average", reportTimeStep, averageMode: true); - updateAverage.Fast(); + var updateAverage = new TrainerChartPanel, double>("Mean of Parameter Updates / Epoch", trainer, "shared.optimiser_updates_average", reportTimeStep, averageMode: true); + updateAverage.Fast(); - var updateStddev = new TrainerChartPanel, double>("Standard Deviation of Parameter Updates / Epoch", trainer, "shared.optimiser_updates_stddev", reportTimeStep, averageMode: true); - updateStddev.Fast(); + var updateStddev = new TrainerChartPanel, double>("Standard Deviation of Parameter Updates / Epoch", trainer, "shared.optimiser_updates_stddev", reportTimeStep, averageMode: true); + updateStddev.Fast(); - var accuracy = new AccuracyPanel("Validation Accuracy", trainer, reportTimeStep, null, 1, 2); - accuracy.Fast(); + var accuracy1 = new AccuracyPanel("Validation Accuracy", trainer, SampleMnist ? TimeStep.Every(1, TimeScale.Epoch) : reportTimeStep, null, 1, 2); + accuracy1.Fast(); + var accuracy2 = new AccuracyPanel("Validation Accuracy", trainer, SampleMnist ? TimeStep.Every(1, TimeScale.Epoch) : reportTimeStep, null, 1, 2); + accuracy2.Fast(); - IRegistry regTest = new Registry(); - regTest.Add("test", DateTime.Now); - - var parameter = new ParameterPanel("Parameters", sigma, window); - parameter.Add("Time", typeof(DateTime), regTest, "test"); + IRegistry regTest = new Registry(); + regTest.Add("test", DateTime.Now); - ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total"); - trainer.AddGlobalHook(valueHook); - sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); + var parameter = new ParameterPanel("Parameters", sigma, window); + parameter.Add("Time", typeof(DateTime), regTest, "test"); - var costBlock = (UserControlParameterVisualiser)parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); - costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + ValueSourceReporterHook valueHook = new ValueSourceReporterHook(TimeStep.Every(1, TimeScale.Epoch), "optimiser.cost_total"); + trainer.AddGlobalHook(valueHook); + sigma.SynchronisationHandler.AddSynchronisationSource(valueHook); - var learningBlock = (UserControlParameterVisualiser)parameter.Content.Add("Learning rate", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); - learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + var costBlock = (UserControlParameterVisualiser) parameter.Content.Add("Cost", typeof(double), trainer.Operator.Registry, "optimiser.cost_total"); + costBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); + var learningBlock = (UserControlParameterVisualiser) parameter.Content.Add("Learning rate", typeof(double), trainer.Operator.Registry, "optimiser.learning_rate"); + learningBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - //var heeBlock = new SigmaTimeBlock(); - //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); - //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); + //trainer.AddGlobalHook(new RunningTimeReporter(TimeStep.Every(1, TimeScale.Epoch))); - //window.TabControl["Overview"].AddCumulativePanel(cost, 1, 2, legend: iris); - window.TabControl["Overview"].AddCumulativePanel(parameter); - //window.TabControl["Overview"].AddCumulativePanel(accuracy, 1, 2, legend: iris); + //var heeBlock = new SigmaTimeBlock(); + //heeBlock.AutoPollValues(trainer, TimeStep.Every(1, TimeScale.Epoch)); + //parameter.Content.Add(new Label { Content = "Cost" }, heeBlock, null, "optimiser.cost_total"); - window.TabControl["Metrics"].AddCumulativePanel(cost, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(weightAverage, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(biasesAverage, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(updateAverage, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(accuracy, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(weightStddev, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(biasesStddev, legend: iris); - window.TabControl["Metrics"].AddCumulativePanel(updateStddev, legend: iris); + window.TabControl["Overview"].AddCumulativePanel(cost1, 1, 2, legend: iris); + window.TabControl["Overview"].AddCumulativePanel(parameter); + window.TabControl["Overview"].AddCumulativePanel(accuracy1, 1, 2, legend: iris); - //window.TabControl["Overview"].AddCumulativePanel(new LogDataGridPanel("Log"), 1, 3, general); + //window.TabControl["Metrics"].AddCumulativePanel(cost2, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(weightAverage, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(biasesAverage, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(updateAverage, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(accuracy2, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(weightStddev, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(biasesStddev, legend: iris); + window.TabControl["Metrics"].AddCumulativePanel(updateStddev, legend: iris); + + if (SampleMnist) + { + // TODO validation panel + } - // finish initialisation - window.IsInitializing = false; - }); + // finish initialisation + window.IsInitializing = false; + }); - // the operators should not run instantly but when the user clicks play - sigma.StartOperatorsOnRun = false; - } + // the operators should not run instantly but when the user clicks play + sigma.StartOperatorsOnRun = false; sigma.Prepare(); @@ -161,38 +171,30 @@ private static void Main() private static ITrainer CreateIrisTrainer(SigmaEnvironment sigma) { var irisReader = new CsvRecordReader(new MultiSource(new FileSource("iris.data"), new UrlSource("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"))); - IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica"); - irisExtractor = irisExtractor.Preprocess(new OneHotPreprocessor(sectionName: "targets", minValue: 0, maxValue: 2)); - irisExtractor = irisExtractor.Preprocess(new PerIndexNormalisingPreprocessor(0, 1, "inputs", 0, 4.3, 7.9, 1, 2.0, 4.4, 2, 1.0, 6.9, 3, 0.1, 2.5)); + IRecordExtractor irisExtractor = irisReader.Extractor("inputs", new[] { 0, 3 }, "targets", 4).AddValueMapping(4, "Iris-setosa", "Iris-versicolor", "Iris-virginica") + .Preprocess(new OneHotPreprocessor("targets", minValue: 0, maxValue: 2)) + .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)) + .Preprocess(new ShufflePreprocessor()); - IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, irisExtractor); - IDataset trainingDataset = dataset; - IDataset validationDataset = dataset; + IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, false, irisExtractor); ITrainer trainer = sigma.CreateTrainer("test"); trainer.Network = new Network(); trainer.Network.Architecture = InputLayer.Construct(4) - + FullyConnectedLayer.Construct(10) - + FullyConnectedLayer.Construct(20) - + FullyConnectedLayer.Construct(10) + + FullyConnectedLayer.Construct(4) + + FullyConnectedLayer.Construct(24) + FullyConnectedLayer.Construct(3) + OutputLayer.Construct(3) - + SquaredDifferenceCostLayer.Construct(); - trainer.TrainingDataIterator = new MinibatchIterator(4, trainingDataset); - trainer.AddNamedDataIterator("validation", new UndividedIterator(validationDataset)); - trainer.Optimiser = new GradientDescentOptimiser(learningRate: 0.002); - trainer.Operator = new CpuSinglethreadedOperator(); - - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.4)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01, mean: 0.05)); + + SoftMaxCrossEntropyCostLayer.Construct(); - trainer.AddValueModifier("network.layers.*.weights", new ClipValueModifier()); - trainer.AddValueModifier("network.layers.*.bias*", new ClipValueModifier()); + trainer.TrainingDataIterator = new MinibatchIterator(10, dataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); + trainer.Operator = new CpuSinglethreadedOperator(); - trainer.AddHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch))); - trainer.AddHook(new ValidationAccuracyReporter("validation", TimeStep.Every(1, TimeScale.Epoch), tops: 1)); - trainer.AddLocalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Epoch))); + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.3)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1)); return trainer; } @@ -210,26 +212,25 @@ private static ITrainer CreateMnistTrainer(SigmaEnvironment sigma) ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); + IDataset dataset = new Dataset("mnist", Dataset.BlockSizeAuto, false, mnistImageExtractor, mnistTargetExtractor); ITrainer trainer = sigma.CreateTrainer("test"); trainer.Network = new Network { Architecture = InputLayer.Construct(28, 28) - + 2 * FullyConnectedLayer.Construct(28 * 28) + + FullyConnectedLayer.Construct(28 * 28) + FullyConnectedLayer.Construct(10) + OutputLayer.Construct(10) + SoftMaxCrossEntropyCostLayer.Construct() }; - trainer.TrainingDataIterator = new MinibatchIterator(8, dataset); - trainer.Optimiser = new AdagradOptimiser(baseLearningRate: 0.02); + trainer.TrainingDataIterator = new MinibatchIterator(100, dataset); + trainer.AddNamedDataIterator("validation", new UndividedIterator(dataset)); + trainer.Optimiser = new AdadeltaOptimiser(decayRate: 0.9); trainer.Operator = new CpuSinglethreadedOperator(); - trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.05f)); - trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.01f, mean: 0.03f)); - - trainer.AddGlobalHook(new CurrentEpochIterationReporter(TimeStep.Every(1, TimeScale.Iteration))); + trainer.AddInitialiser("*.weights", new GaussianInitialiser(standardDeviation: 0.1f)); + trainer.AddInitialiser("*.bias*", new GaussianInitialiser(standardDeviation: 0.1f, mean: 0.03f)); return trainer; } From fd33bc9821c0e6ac8adb91bb0eab5ec6fc466aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Sun, 23 Apr 2017 21:02:06 +0200 Subject: [PATCH 35/40] Add partial RawDataset, refactor original Dataset to ExtractedDataset --- .../Data/Datasets/DatasetBlockwiseSlice.cs | 4 +- .../Data/Datasets/DatasetRecordwiseSlice.cs | 4 +- .../{Dataset.cs => ExtractedDataset.cs} | 10 +- Sigma.Core/Data/Datasets/RawDataset.cs | 230 ++++++++++++++++++ Sigma.Core/Sigma.Core.csproj | 3 +- Sigma.Core/Utils/ArrayUtils.cs | 19 ++ Sigma.Tests.Internals.Backend/Program.cs | 8 +- Sigma.Tests.Internals.WPF/Program.cs | 4 +- .../Datasets/TestDatasetBlockwiseSlice.cs | 4 +- .../Datasets/TestDatasetRecordwiseSlice.cs | 4 +- ...TestDataset.cs => TestExtractedDataset.cs} | 30 +-- .../Data/Iterators/TestMinibatchIterator.cs | 4 +- .../Data/Iterators/TestUndividedIterator.cs | 4 +- .../Data/Iterators/TestUnifiedIterator.cs | 2 +- Sigma.Tests/Sigma.Tests.csproj | 2 +- Sigma.Tests/Training/MockTrainer.cs | 2 +- 16 files changed, 292 insertions(+), 42 deletions(-) rename Sigma.Core/Data/Datasets/{Dataset.cs => ExtractedDataset.cs} (98%) create mode 100644 Sigma.Core/Data/Datasets/RawDataset.cs rename Sigma.Tests/Data/Datasets/{TestDataset.cs => TestExtractedDataset.cs} (80%) diff --git a/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs b/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs index 22797aa7..f2643b5c 100644 --- a/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs +++ b/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs @@ -112,12 +112,12 @@ protected int MapToUnderlyingIndex(int blockIndex) public IDataset[] SplitBlockwise(params int[] parts) { - return Dataset.SplitBlockwise(this, parts); + return ExtractedDataset.SplitBlockwise(this, parts); } public IDataset[] SplitRecordwise(params double[] parts) { - return Dataset.SplitRecordwise(this, parts); + return ExtractedDataset.SplitRecordwise(this, parts); } public bool TrySetBlockSize(int blockSizeRecords) diff --git a/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs b/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs index baf2fe84..d4659f71 100644 --- a/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs +++ b/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs @@ -89,12 +89,12 @@ public DatasetRecordwiseSlice(IDataset underlyingDataset, double shareOffset, do public IDataset[] SplitBlockwise(params int[] parts) { - return Dataset.SplitBlockwise(this, parts); + return ExtractedDataset.SplitBlockwise(this, parts); } public IDataset[] SplitRecordwise(params double[] parts) { - return Dataset.SplitRecordwise(this, parts); + return ExtractedDataset.SplitRecordwise(this, parts); } public bool TrySetBlockSize(int blockSizeRecords) diff --git a/Sigma.Core/Data/Datasets/Dataset.cs b/Sigma.Core/Data/Datasets/ExtractedDataset.cs similarity index 98% rename from Sigma.Core/Data/Datasets/Dataset.cs rename to Sigma.Core/Data/Datasets/ExtractedDataset.cs index ccd2a538..138846b0 100644 --- a/Sigma.Core/Data/Datasets/Dataset.cs +++ b/Sigma.Core/Data/Datasets/ExtractedDataset.cs @@ -26,7 +26,7 @@ namespace Sigma.Core.Data.Datasets /// Provides caching of entire blocks and reader data, partial extraction, unordered extraction, automatic block sizing, smart block loading. /// [Serializable] - public class Dataset : IDataset, ISerialisationNotifier + public class ExtractedDataset : IDataset, ISerialisationNotifier { [NonSerialized] private readonly ILog _logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); @@ -112,7 +112,7 @@ public class Dataset : IDataset, ISerialisationNotifier /// /// The unique dataset name. /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, params IRecordExtractor[] recordExtractors) : this(name, BlockSizeAuto, recordExtractors) + public ExtractedDataset(string name, params IRecordExtractor[] recordExtractors) : this(name, BlockSizeAuto, recordExtractors) { } @@ -122,7 +122,7 @@ public Dataset(string name, params IRecordExtractor[] recordExtractors) : this(n /// The unique dataset name. /// The target block size for records. May also be or . /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, int blockSizeRecords, params IRecordExtractor[] recordExtractors) + public ExtractedDataset(string name, int blockSizeRecords, params IRecordExtractor[] recordExtractors) : this(name, blockSizeRecords, true, recordExtractors) { } @@ -134,7 +134,7 @@ public Dataset(string name, int blockSizeRecords, params IRecordExtractor[] reco /// The target block size for records. May also be or . /// Indicate whether the cache provider should be flushed (cleared) before use. Only disable if block size and extractors used do not change (otherwise undefined behaviour). /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, int blockSizeRecords, bool flushCache, params IRecordExtractor[] recordExtractors) + public ExtractedDataset(string name, int blockSizeRecords, bool flushCache, params IRecordExtractor[] recordExtractors) : this(name, blockSizeRecords, new DiskCacheProvider(SigmaEnvironment.Globals.Get("cache_path") + name), true, recordExtractors) { } @@ -147,7 +147,7 @@ public Dataset(string name, int blockSizeRecords, bool flushCache, params IRecor /// The cache provider to use for caching record blocks and raw reader data. /// Indicate whether the cache provider should be flushed (cleared) before use. Only disable if block size and extractors used do not change (otherwise undefined behaviour). /// The record extractors to fetch the data from, which provide the dataset with ready to use record blocks. - public Dataset(string name, int blockSizeRecords, ICacheProvider cacheProvider, bool flushCache = true, params IRecordExtractor[] recordExtractors) + public ExtractedDataset(string name, int blockSizeRecords, ICacheProvider cacheProvider, bool flushCache = true, params IRecordExtractor[] recordExtractors) { if (name == null) { diff --git a/Sigma.Core/Data/Datasets/RawDataset.cs b/Sigma.Core/Data/Datasets/RawDataset.cs new file mode 100644 index 00000000..c281ada4 --- /dev/null +++ b/Sigma.Core/Data/Datasets/RawDataset.cs @@ -0,0 +1,230 @@ +/* +MIT License + +Copyright(c) 2016-2017 Florian Cäsar, Michael Plainer + +For full license see LICENSE in the root directory of this project. +*/ + + +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Threading.Tasks; +using Sigma.Core.Handlers; +using Sigma.Core.MathAbstract; +using Sigma.Core.Utils; + +namespace Sigma.Core.Data.Datasets +{ + /// + /// A raw in-system-memory dataset which can be manually + /// + public class RawDataset : IDataset + { + private readonly IComputationHandler _internalHandler; + + /// + /// The name and identifier of this dataset. + /// Dataset names should be globally unique and easily identifiable. + /// + public string Name { get; } + + /// + /// Indicate if this dataset is an online dataset (meaning new data might be added during runtime). + /// By default, this is assumed to be false, indicating a static dataset. + /// Note: Data iterators and may perform certain optimisations for static datasets, so set this to false if possible. + /// + public bool Online { get; set; } + + /// + /// The preferred per block size in records. + /// Note: Not every block must obey this request (e.g. the last black might very well be a different size). + /// + public int TargetBlockSizeRecords { get; } + + /// + /// The maximum number of concurrently active blocks. + /// + public int MaxConcurrentActiveBlocks { get; } + + /// + /// The maximum total concurrently active block size in bytes. + /// + public long MaxTotalActiveBlockSizeBytes { get; } + + /// + /// The total size of all currently active record blocks in system memory in bytes. + /// + public long TotalActiveBlockSizeBytes { get; } + + /// + /// The maxmimum number of blocks to keep in the cache (inactive blocks are written to a cache, typically on disk, to be reloaded later). + /// + public int MaxBlocksInCache { get { throw new NotSupportedException(); } set { throw new NotSupportedException(); } } + + /// + /// The maxmimum number of bytes to keep in the cache (inactive blocks are written to a cache, typically on disk, to be reloaded later). + /// + public long MaxBytesInCache { get { throw new NotSupportedException(); } set { throw new NotSupportedException(); } } + + /// + /// The names for all sections present in this dataset (e.g. "inputs", "targets"). + /// + public string[] SectionNames { get; } + + /// + /// A set of currently active and loaded record block indices. + /// + public IReadOnlyCollection ActiveBlockIndices { get; } + + /// + /// The number of currently active and loaded record blocks, with different block formats counting as different blocks. + /// + public int ActiveIndividualBlockCount { get; } + + /// + /// The number of currently active and loaded record blocks, with different block formats of the same region counting as one active block index. + /// + public int ActiveBlockRegionCount { get; } + + /// + /// The current working data that can be edited and is "flushed" to the public raw data with the next call. + /// + private readonly IDictionary _internalWorkingData; + + /// + /// The raw data of this dataset that is returned via the functions. + /// + private readonly IDictionary> _rawData; + + + /// + /// Create a raw dataset with a certain name and computation handler. + /// + /// The globally unique name of this dataset. + /// The internal handler to use for data management. + public RawDataset(string name, IComputationHandler internalHandler) + { + if (name == null) throw new ArgumentNullException(nameof(name)); + if (internalHandler == null) throw new ArgumentNullException(nameof(internalHandler)); + + Name = name; + _internalHandler = internalHandler; + + _internalWorkingData = new Dictionary(); + _rawData = new ConcurrentDictionary>(); + } + + public void AddRecord(string block, params T[] record) + { + AddRecords(block, new long[] { record.Length }, new[] { record }); + } + + public void AddRecord(string block, long[] featureShape, params T[][] records) + { + AddRecords(block, featureShape, records); + } + + public void AddRecords(string block, T[][] records) + { + AddRecords(block, new long[] { records[0].Length }, records); + } + + public void AddRecords(string block, long[] featureShape, T[][] records) + { + if (records.Length == 0) + { + return; + } + + lock (_internalWorkingData) + { + long[] shape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment + + if (_internalWorkingData.ContainsKey(block)) + { + shape[0] += _internalWorkingData[block].Shape[0]; // append to record end + } + + INDArray newBlock = _internalHandler.NDArray(shape); + + // TODO finish this + throw new NotImplementedException("to be completed another time"); + } + } + + /// + public IDictionary FetchBlock(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) + { + throw new NotImplementedException(); + } + + /// + public Task> FetchBlockAsync(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) + { + throw new NotImplementedException(); + } + + /// + public void FreeBlock(int blockIndex, IComputationHandler handler) + { + throw new NotImplementedException(); + } + + /// + public bool IsBlockActive(int blockIndex) + { + return blockIndex == 0; + } + + /// + public bool IsBlockActive(int blockIndex, IComputationHandler handler) + { + return blockIndex == 0 && _rawData.ContainsKey(handler); + } + + /// + public long GetBlockSizeBytes(int blockIndex, IComputationHandler handler) + { + if (!IsBlockActive(blockIndex, handler)) + { + return -1L; + } + + // TODO + throw new NotImplementedException(); + } + + /// + public bool CanFetchBlocksAfter(int blockIndex) + { + return blockIndex == -1; + } + + /// + public bool TrySetBlockSize(int blockSizeRecords) + { + throw new NotSupportedException(); + } + + /// + public IDataset[] SplitBlockwise(params int[] parts) + { + return ExtractedDataset.SplitBlockwise(this, parts); + } + + /// + public IDataset[] SplitRecordwise(params double[] percentages) + { + return ExtractedDataset.SplitRecordwise(this, percentages); + } + + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + public void Dispose() + { + + } + } +} diff --git a/Sigma.Core/Sigma.Core.csproj b/Sigma.Core/Sigma.Core.csproj index a14fab03..ecd5b8d2 100644 --- a/Sigma.Core/Sigma.Core.csproj +++ b/Sigma.Core/Sigma.Core.csproj @@ -138,10 +138,11 @@ - + + diff --git a/Sigma.Core/Utils/ArrayUtils.cs b/Sigma.Core/Utils/ArrayUtils.cs index ee50396e..622679bf 100644 --- a/Sigma.Core/Utils/ArrayUtils.cs +++ b/Sigma.Core/Utils/ArrayUtils.cs @@ -18,6 +18,25 @@ namespace Sigma.Core.Utils /// public static class ArrayUtils { + /// + /// Concatenate two given arrays into one result array (b is appended after a). + /// + /// The array element type. + /// The first array. + /// The second array. + /// A concatenated array of a and b. + public static T[] Concatenate(T[] a, T[] b) + { + if (a == null) throw new ArgumentNullException(nameof(a)); + if (b == null) throw new ArgumentNullException(nameof(b)); + + T[] result = new T[a.Length + b.Length]; + a.CopyTo(result, 0); + b.CopyTo(result, a.Length); + + return result; + } + /// /// The product of an integer array (i.e. all values multiplied with each other). /// diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 872c13b3..1fb50117 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -66,7 +66,7 @@ private static void SampleIris() .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)) .Preprocess(new ShufflePreprocessor()); - IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, false, irisExtractor); + IDataset dataset = new ExtractedDataset("iris", ExtractedDataset.BlockSizeAuto, false, irisExtractor); ITrainer trainer = sigma.CreateGhostTrainer("test"); @@ -118,7 +118,7 @@ private static void SampleMnist() ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - IDataset dataset = new Dataset("mnist", Dataset.BlockSizeAuto, false, mnistImageExtractor, mnistTargetExtractor); + IDataset dataset = new ExtractedDataset("mnist", ExtractedDataset.BlockSizeAuto, false, mnistImageExtractor, mnistTargetExtractor); ITrainer trainer = sigma.CreateTrainer("test"); trainer.Network = new Network(); @@ -160,7 +160,7 @@ private static void SampleCachedFastIteration() ByteRecordReader mnistImageReader = new ByteRecordReader(headerLengthBytes: 16, recordSizeBytes: 28 * 28, source: dataSource); IRecordExtractor mnistImageExtractor = mnistImageReader.Extractor("inputs", new[] { 0L, 0L }, new[] { 28L, 28L }).Preprocess(new NormalisingPreprocessor(0, 255)); - IDataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor); + IDataset dataset = new ExtractedDataset("mnist-training", ExtractedDataset.BlockSizeAuto, mnistImageExtractor); IDataset[] slices = dataset.SplitRecordwise(0.8, 0.2); IDataset trainingData = slices[0]; @@ -350,7 +350,7 @@ private static void SampleLoadExtractIterate() IComputationHandler handler = new CpuFloat32Handler(); - Dataset dataset = new Dataset("mnist-training", Dataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); + ExtractedDataset dataset = new ExtractedDataset("mnist-training", ExtractedDataset.BlockSizeAuto, mnistImageExtractor, mnistTargetExtractor); IDataset[] slices = dataset.SplitRecordwise(0.8, 0.2); IDataset trainingData = slices[0]; IDataset validationData = slices[1]; diff --git a/Sigma.Tests.Internals.WPF/Program.cs b/Sigma.Tests.Internals.WPF/Program.cs index 2cc34edd..7ea19b00 100644 --- a/Sigma.Tests.Internals.WPF/Program.cs +++ b/Sigma.Tests.Internals.WPF/Program.cs @@ -176,7 +176,7 @@ private static ITrainer CreateIrisTrainer(SigmaEnvironment sigma) .Preprocess(new AdaptiveNormalisingPreprocessor(minOutputValue: 0.0, maxOutputValue: 1.0)) .Preprocess(new ShufflePreprocessor()); - IDataset dataset = new Dataset("iris", Dataset.BlockSizeAuto, false, irisExtractor); + IDataset dataset = new ExtractedDataset("iris", ExtractedDataset.BlockSizeAuto, false, irisExtractor); ITrainer trainer = sigma.CreateTrainer("test"); @@ -212,7 +212,7 @@ private static ITrainer CreateMnistTrainer(SigmaEnvironment sigma) ByteRecordReader mnistTargetReader = new ByteRecordReader(headerLengthBytes: 8, recordSizeBytes: 1, source: new CompressedSource(new MultiSource(new FileSource("train-labels-idx1-ubyte.gz"), new UrlSource("http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz")))); IRecordExtractor mnistTargetExtractor = mnistTargetReader.Extractor("targets", new[] { 0L }, new[] { 1L }).Preprocess(new OneHotPreprocessor(minValue: 0, maxValue: 9)); - IDataset dataset = new Dataset("mnist", Dataset.BlockSizeAuto, false, mnistImageExtractor, mnistTargetExtractor); + IDataset dataset = new ExtractedDataset("mnist", ExtractedDataset.BlockSizeAuto, false, mnistImageExtractor, mnistTargetExtractor); ITrainer trainer = sigma.CreateTrainer("test"); trainer.Network = new Network diff --git a/Sigma.Tests/Data/Datasets/TestDatasetBlockwiseSlice.cs b/Sigma.Tests/Data/Datasets/TestDatasetBlockwiseSlice.cs index 5f2cbec4..922e748b 100644 --- a/Sigma.Tests/Data/Datasets/TestDatasetBlockwiseSlice.cs +++ b/Sigma.Tests/Data/Datasets/TestDatasetBlockwiseSlice.cs @@ -48,7 +48,7 @@ public void TestDatasetBlockwiseSliceCreate() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename)).Extractor("inputs", 1, 2, "targets", 3); - Dataset dataset = new Dataset("name", Dataset.BlockSizeAuto, extractor); + ExtractedDataset dataset = new ExtractedDataset("name", ExtractedDataset.BlockSizeAuto, extractor); Assert.Throws(() => new DatasetBlockwiseSlice(null, 0, 0, 1)); Assert.Throws(() => new DatasetBlockwiseSlice(dataset, 0, 0, 0)); @@ -82,7 +82,7 @@ public void TestDatasetBlockwiseSliceFetch() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename)).Extractor("inputs", 0, "targets", 3); - Dataset dataset = new Dataset("name", 1, extractor); + ExtractedDataset dataset = new ExtractedDataset("name", 1, extractor); DatasetBlockwiseSlice slice = new DatasetBlockwiseSlice(dataset, 1, 2, 3); Assert.AreEqual(new float[] { 4.9f }, slice.FetchBlock(0, new CpuFloat32Handler())["inputs"].GetDataAs().GetValuesArrayAs(0, 1)); diff --git a/Sigma.Tests/Data/Datasets/TestDatasetRecordwiseSlice.cs b/Sigma.Tests/Data/Datasets/TestDatasetRecordwiseSlice.cs index 929f3a32..dce8c9fe 100644 --- a/Sigma.Tests/Data/Datasets/TestDatasetRecordwiseSlice.cs +++ b/Sigma.Tests/Data/Datasets/TestDatasetRecordwiseSlice.cs @@ -48,7 +48,7 @@ public void TestDatasetRecordwiseSliceCreate() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename)).Extractor("inputs", 1, 2, "targets", 3); - Dataset dataset = new Dataset("name", Dataset.BlockSizeAuto, extractor); + ExtractedDataset dataset = new ExtractedDataset("name", ExtractedDataset.BlockSizeAuto, extractor); Assert.Throws(() => new DatasetRecordwiseSlice(null, 0.0, 1.0)); Assert.Throws(() => new DatasetRecordwiseSlice(dataset, -0.2, 1.0)); @@ -74,7 +74,7 @@ public void TestDatsetRecordwiseSliceFetch() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename)).Extractor("inputs", 0, "targets", 3); - Dataset dataset = new Dataset("name", 3, extractor); + ExtractedDataset dataset = new ExtractedDataset("name", 3, extractor); DatasetRecordwiseSlice slice = new DatasetRecordwiseSlice(dataset, 0.1, 0.6); Assert.AreEqual(new float[] { 5.1f, 4.9f }, slice.FetchBlock(0, new CpuFloat32Handler())["inputs"].GetDataAs().GetValuesArrayAs(0, 2)); diff --git a/Sigma.Tests/Data/Datasets/TestDataset.cs b/Sigma.Tests/Data/Datasets/TestExtractedDataset.cs similarity index 80% rename from Sigma.Tests/Data/Datasets/TestDataset.cs rename to Sigma.Tests/Data/Datasets/TestExtractedDataset.cs index dfe5e065..c63e3d44 100644 --- a/Sigma.Tests/Data/Datasets/TestDataset.cs +++ b/Sigma.Tests/Data/Datasets/TestExtractedDataset.cs @@ -21,7 +21,7 @@ For full license see LICENSE in the root directory of this project. namespace Sigma.Tests.Data.Datasets { - public class TestDataset : BaseLocaleTest + public class TestExtractedDataset : BaseLocaleTest { private static void RedirectGlobalsToTempPath() { @@ -53,20 +53,20 @@ public void TestDatasetCreate() CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename)).Extractor("inputs", 1, 2, "targets", 3); CsvRecordExtractor clashingExtractor = new CsvRecordReader(new FileSource(filename)).Extractor("inputs", 1, 2); - Assert.Throws(() => new Dataset(null, null)); - Assert.Throws(() => new Dataset("name", null)); - Assert.Throws(() => new Dataset("name", 10, null)); - Assert.Throws(() => new Dataset("name", 10, null, extractor)); + Assert.Throws(() => new ExtractedDataset(null, null)); + Assert.Throws(() => new ExtractedDataset("name", null)); + Assert.Throws(() => new ExtractedDataset("name", 10, null)); + Assert.Throws(() => new ExtractedDataset("name", 10, null, extractor)); - Assert.Throws(() => new Dataset("name", 10)); - Assert.Throws(() => new Dataset("name", -3, extractor)); - Assert.Throws(() => new Dataset("name")); - Assert.Throws(() => new Dataset("name", extractor, clashingExtractor)); + Assert.Throws(() => new ExtractedDataset("name", 10)); + Assert.Throws(() => new ExtractedDataset("name", -3, extractor)); + Assert.Throws(() => new ExtractedDataset("name")); + Assert.Throws(() => new ExtractedDataset("name", extractor, clashingExtractor)); - Assert.AreEqual("name", new Dataset("name", extractor).Name); + Assert.AreEqual("name", new ExtractedDataset("name", extractor).Name); - Assert.Greater(new Dataset("name", extractor).TargetBlockSizeRecords, 0); - Assert.Greater(new Dataset("name", Dataset.BlockSizeAuto, extractor).TargetBlockSizeRecords, 0); + Assert.Greater(new ExtractedDataset("name", extractor).TargetBlockSizeRecords, 0); + Assert.Greater(new ExtractedDataset("name", ExtractedDataset.BlockSizeAuto, extractor).TargetBlockSizeRecords, 0); DeleteTempFile(filename); } @@ -81,7 +81,7 @@ public void TestDatasetFetchBlockSequential() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename, Path.GetTempPath())).Extractor("inputs", 1, 2, "targets", 3); - Dataset dataset = new Dataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor); + ExtractedDataset dataset = new ExtractedDataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor); CpuFloat32Handler handler = new CpuFloat32Handler(); IDictionary namedArrays = dataset.FetchBlock(0, handler, false); @@ -122,7 +122,7 @@ public async Task TestDatasetFetchAsync() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename, Path.GetTempPath())).Extractor("inputs", 1, 2, "targets", 3); - Dataset dataset = new Dataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor); + ExtractedDataset dataset = new ExtractedDataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor); CpuFloat32Handler handler = new CpuFloat32Handler(); var block0 = dataset.FetchBlockAsync(0, handler); @@ -160,7 +160,7 @@ public void TestDatasetFreeBlockSequential() CreateCsvTempFile(filename); CsvRecordExtractor extractor = new CsvRecordReader(new FileSource(filename, Path.GetTempPath())).Extractor("inputs", 1, 2, "targets", 3); - Dataset dataset = new Dataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor); + ExtractedDataset dataset = new ExtractedDataset(name: "name", blockSizeRecords: 1, recordExtractors: extractor); CpuFloat32Handler handler = new CpuFloat32Handler(); dataset.FetchBlock(0, handler, false); diff --git a/Sigma.Tests/Data/Iterators/TestMinibatchIterator.cs b/Sigma.Tests/Data/Iterators/TestMinibatchIterator.cs index 57a39c2c..383bf1a5 100644 --- a/Sigma.Tests/Data/Iterators/TestMinibatchIterator.cs +++ b/Sigma.Tests/Data/Iterators/TestMinibatchIterator.cs @@ -45,7 +45,7 @@ public void TestMinibatchIteratorCreate() FileSource source = new FileSource(filename, Path.GetTempPath()); CsvRecordExtractor extractor = (CsvRecordExtractor) new CsvRecordReader(source).Extractor(new CsvRecordExtractor(new Dictionary { ["inputs"] = new[] { new[] { 0 } } })); - Dataset dataset = new Dataset("test", 1, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestMinibatchIteratorYield)), true, extractor); + ExtractedDataset dataset = new ExtractedDataset("test", 1, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestMinibatchIteratorYield)), true, extractor); Assert.Throws(() => new MinibatchIterator(-3, dataset)); Assert.Throws(() => new MinibatchIterator(1, null)); @@ -76,7 +76,7 @@ public void TestMinibatchIteratorYield(int minibatchSize) FileSource source = new FileSource(filename, Path.GetTempPath()); CsvRecordExtractor extractor = (CsvRecordExtractor) new CsvRecordReader(source).Extractor(new CsvRecordExtractor(new Dictionary { ["inputs"] = new[] { new[] { 0 } } })); - Dataset dataset = new Dataset("test", 1, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestMinibatchIteratorYield)), true, extractor); + ExtractedDataset dataset = new ExtractedDataset("test", 1, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestMinibatchIteratorYield)), true, extractor); MinibatchIterator iterator = new MinibatchIterator(minibatchSize, dataset); IComputationHandler handler = new CpuFloat32Handler(); SigmaEnvironment sigma = SigmaEnvironment.Create("test"); diff --git a/Sigma.Tests/Data/Iterators/TestUndividedIterator.cs b/Sigma.Tests/Data/Iterators/TestUndividedIterator.cs index cdc1fb62..199c1a35 100644 --- a/Sigma.Tests/Data/Iterators/TestUndividedIterator.cs +++ b/Sigma.Tests/Data/Iterators/TestUndividedIterator.cs @@ -44,7 +44,7 @@ public void TestUndividedIteratorCreate() FileSource source = new FileSource(filename, Path.GetTempPath()); CsvRecordExtractor extractor = (CsvRecordExtractor) new CsvRecordReader(source).Extractor(new CsvRecordExtractor(new Dictionary { ["inputs"] = new[] { new[] { 0 } } })); - Dataset dataset = new Dataset("test", 1, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUndividedIteratorCreate)), true, extractor); + ExtractedDataset dataset = new ExtractedDataset("test", 1, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUndividedIteratorCreate)), true, extractor); Assert.Throws(() => new UndividedIterator(null)); @@ -64,7 +64,7 @@ public void TestUndividedIteratorYield() FileSource source = new FileSource(filename, Path.GetTempPath()); CsvRecordExtractor extractor = (CsvRecordExtractor) new CsvRecordReader(source).Extractor(new CsvRecordExtractor(new Dictionary { ["inputs"] = new[] { new[] { 0 } } })); - Dataset dataset = new Dataset("test", 2, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUndividedIteratorCreate)), true, extractor); + ExtractedDataset dataset = new ExtractedDataset("test", 2, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUndividedIteratorCreate)), true, extractor); UndividedIterator iterator = new UndividedIterator(dataset); SigmaEnvironment sigma = SigmaEnvironment.Create("test"); IComputationHandler handler = new CpuFloat32Handler(); diff --git a/Sigma.Tests/Data/Iterators/TestUnifiedIterator.cs b/Sigma.Tests/Data/Iterators/TestUnifiedIterator.cs index bd77f73f..5cbb5934 100644 --- a/Sigma.Tests/Data/Iterators/TestUnifiedIterator.cs +++ b/Sigma.Tests/Data/Iterators/TestUnifiedIterator.cs @@ -52,7 +52,7 @@ public void TestUnifiedIteratorYield() FileSource source = new FileSource(filename, Path.GetTempPath()); CsvRecordExtractor extractor = (CsvRecordExtractor) new CsvRecordReader(source).Extractor(new CsvRecordExtractor(new Dictionary { ["inputs"] = new[] { new[] { 0 } } })); - Dataset dataset = new Dataset("test", 2, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUnifiedIteratorYield)), true, extractor); + ExtractedDataset dataset = new ExtractedDataset("test", 2, new DiskCacheProvider(Path.GetTempPath() + "/" + nameof(TestUnifiedIteratorYield)), true, extractor); UnifiedIterator iterator = new UnifiedIterator(dataset); SigmaEnvironment sigma = SigmaEnvironment.Create("test"); IComputationHandler handler = new CpuFloat32Handler(); diff --git a/Sigma.Tests/Sigma.Tests.csproj b/Sigma.Tests/Sigma.Tests.csproj index 936769f7..9e5b2e94 100644 --- a/Sigma.Tests/Sigma.Tests.csproj +++ b/Sigma.Tests/Sigma.Tests.csproj @@ -123,7 +123,7 @@ - + diff --git a/Sigma.Tests/Training/MockTrainer.cs b/Sigma.Tests/Training/MockTrainer.cs index a9986d48..5adea2c0 100644 --- a/Sigma.Tests/Training/MockTrainer.cs +++ b/Sigma.Tests/Training/MockTrainer.cs @@ -40,7 +40,7 @@ protected MockTrainer(string name) : base(name) extractor.SectionNames = new[] {"targets", "inputs"}; extractor.Reader = new MockRecordReader(); Sigma = SigmaEnvironment.GetOrCreate("testificate-mocktrainer"); - TrainingDataIterator = new UndividedIterator(new Dataset("testificate", extractor)); + TrainingDataIterator = new UndividedIterator(new ExtractedDataset("testificate", extractor)); } internal class MockRecordReader : IRecordReader From 8d97f65d8a732b9c0f2022dc02d2b528fbea1739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Mon, 24 Apr 2017 21:09:27 +0200 Subject: [PATCH 36/40] Add AddRecords functions to RawDataset, add PrepareAndRun to SigmaEnv --- Sigma.Core/Data/Datasets/RawDataset.cs | 71 +++++++++++++++---- .../Backends/Debugging/DebugHandler.cs | 16 ++++- .../SigmaDiff/DiffSharpFloat32Handler.cs | 25 +++++-- .../SigmaDiff/NativeCpu/CPUFloat32Handler.cs | 57 +++++++++++++-- Sigma.Core/Handlers/IComputationHandler.cs | 22 ++++++ Sigma.Core/Sigma.cs | 10 +++ 6 files changed, 178 insertions(+), 23 deletions(-) diff --git a/Sigma.Core/Data/Datasets/RawDataset.cs b/Sigma.Core/Data/Datasets/RawDataset.cs index c281ada4..3e8707b2 100644 --- a/Sigma.Core/Data/Datasets/RawDataset.cs +++ b/Sigma.Core/Data/Datasets/RawDataset.cs @@ -11,8 +11,10 @@ For full license see LICENSE in the root directory of this project. using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Sigma.Core.Handlers; +using Sigma.Core.Handlers.Backends.SigmaDiff.NativeCpu; using Sigma.Core.MathAbstract; using Sigma.Core.Utils; @@ -100,6 +102,15 @@ public class RawDataset : IDataset private readonly IDictionary> _rawData; + /// + /// Create a raw dataset with a certain name and an internal cpu handler with 32-bit float precision. + /// + /// The globally unique name of this dataset. + /// The internal handler to use for data management. + public RawDataset(string name) : this(name, new CpuFloat32Handler()) + { + } + /// /// Create a raw dataset with a certain name and computation handler. /// @@ -117,22 +128,22 @@ public RawDataset(string name, IComputationHandler internalHandler) _rawData = new ConcurrentDictionary>(); } - public void AddRecord(string block, params T[] record) + public void AddRecord(string blockName, params T[] record) { - AddRecords(block, new long[] { record.Length }, new[] { record }); + AddShapedRecords(blockName, new long[] { record.Length }, new[] { record }); } - public void AddRecord(string block, long[] featureShape, params T[][] records) + public void AddRecord(string blockName, long[] featureShape, params T[][] records) { - AddRecords(block, featureShape, records); + AddShapedRecords(blockName, featureShape, records); } - public void AddRecords(string block, T[][] records) + public void AddRecords(string blockName, params T[][] records) { - AddRecords(block, new long[] { records[0].Length }, records); + AddShapedRecords(blockName, new long[] { records[0].Length }, records); } - public void AddRecords(string block, long[] featureShape, T[][] records) + public void AddShapedRecords(string blockName, long[] featureShape, params T[][] records) { if (records.Length == 0) { @@ -141,17 +152,51 @@ public void AddRecords(string block, long[] featureShape, T[][] records) lock (_internalWorkingData) { - long[] shape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment + long featureLength = ArrayUtils.Product(featureShape); + long[] insertedShape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment + long[] newShape = (long[])insertedShape.Clone(); + bool previousBlockExists = _internalWorkingData.ContainsKey(blockName); + + if (previousBlockExists) + { + insertedShape[0] += _internalWorkingData[blockName].Shape[0]; // append new record to end + } + + INDArray newBlock = _internalHandler.NDArray(newShape); - if (_internalWorkingData.ContainsKey(block)) + long[] destinationBegin = new long[newBlock.Rank]; + + if (previousBlockExists) { - shape[0] += _internalWorkingData[block].Shape[0]; // append to record end + INDArray oldBlock = _internalWorkingData[blockName]; + + long[] previousSourceBegin = new long[oldBlock.Shape.Rank]; + long[] previousSourceEnd = oldBlock.Shape.Select(i => i - 1).ToArray(); + + _internalHandler.Fill(oldBlock, newBlock, previousSourceBegin, previousSourceEnd, previousSourceBegin, previousSourceEnd); + + destinationBegin[0] = oldBlock.Shape[0]; } - INDArray newBlock = _internalHandler.NDArray(shape); + long[] destinationEnd = newShape.Select(i => i - 1).ToArray(); + destinationEnd[0] = destinationBegin[0]; + + for (int i = 0; i < records.Length; i++) + { + _internalHandler.Fill(records[i], newBlock, destinationBegin, destinationEnd); - // TODO finish this - throw new NotImplementedException("to be completed another time"); + destinationBegin[0]++; + destinationEnd[0]++; + } // values aren't set correctly, shifted around and just wrong - TODO fix + + if (previousBlockExists) + { + _internalWorkingData[blockName] = newBlock; + } + else + { + _internalWorkingData.Add(blockName, newBlock); + } } } diff --git a/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs b/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs index ac52b11b..b2dc1ed3 100644 --- a/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs +++ b/Sigma.Core/Handlers/Backends/Debugging/DebugHandler.cs @@ -278,11 +278,25 @@ public void Fill(INDArray filler, INDArray arrayToFill) public void Fill(TOther value, INDArray arrayToFill) { - UnderlyingHandler.Fill(value, CheckNice(arrayToFill)); + UnderlyingHandler.Fill(value, arrayToFill); CheckNice(arrayToFill); } + public void Fill(INDArray filler, INDArray arrayToFill, long[] sourceBeginIndices, long[] sourceEndIndices, long[] destinationBeginIndices, long[] destinationEndIndices) + { + UnderlyingHandler.Fill(CheckNice(filler), CheckNice(arrayToFill), sourceBeginIndices, sourceEndIndices, destinationBeginIndices, destinationEndIndices); + + CheckNice(arrayToFill); + } + + public void Fill(T[] filler, INDArray arrayToFill, long[] destinationBeginIndices, long[] destinationEndIndices) + { + UnderlyingHandler.Fill(filler, CheckNice(arrayToFill), destinationBeginIndices, destinationEndIndices); + + CheckNice(arrayToFill); + } + public INDArray FlattenTime(INDArray array) { if (Enabled && array.Rank < 2) // two or three? technically 2 is enough ([BT]F) but 3 makes more sense diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs index 61c9609f..90263f63 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/DiffSharpFloat32Handler.cs @@ -117,22 +117,39 @@ protected ADNDFloat32Array AssignTag(ADNDFloat32Array array) return array; } - // IComputationHandler stuff that is probably different for each diffsharp handler implementation + // IComputationHandler stuff that is probably different for each diffsharp handler implementation + /// public abstract void InitAfterDeserialisation(INDArray array); + /// public abstract long GetSizeBytes(params INDArray[] array); + /// public abstract bool IsInterchangeable(IComputationHandler otherHandler); + /// public abstract INDArray NDArray(params long[] shape); + /// public abstract INDArray NDArray(TOther[] values, params long[] shape); + /// public abstract INumber Number(object value); + /// public abstract IDataBuffer DataBuffer(T[] values); + /// public abstract INDArray AsNDArray(INumber number); + /// public abstract INumber AsNumber(INDArray array, params long[] indices); + /// public abstract bool CanConvert(INDArray array, IComputationHandler otherHandler); + /// public abstract INDArray Convert(INDArray array, IComputationHandler otherHandler); + /// public abstract void Fill(INDArray filler, INDArray arrayToFill); - public abstract void Fill(TOther value, INDArray arrayToFill); - - protected ADNDFloat32Array ConvertInternal(INDArray array) + /// + public abstract void Fill(TOther value, INDArray arrayToFill); + /// + public abstract void Fill(INDArray filler, INDArray arrayToFill, long[] sourceBeginIndices, long[] sourceEndIndices, long[] destinationBeginIndices, long[] destinationEndIndices); + /// + public abstract void Fill(T[] filler, INDArray arrayToFill, long[] destinationBeginIndices, long[] destinationEndIndices); + + protected ADNDFloat32Array ConvertInternal(INDArray array) { return new ADNDFloat32Array(_backendTag, array.GetDataAs(), array.Shape); } diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs index d73c6f7e..9936e80c 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs @@ -12,6 +12,7 @@ For full license see LICENSE in the root directory of this project. using System; using Sigma.Core.MathAbstract.Backends.SigmaDiff; using Sigma.Core.MathAbstract.Backends.SigmaDiff.NativeCpu; +using Sigma.Core.Utils; namespace Sigma.Core.Handlers.Backends.SigmaDiff.NativeCpu { @@ -21,22 +22,27 @@ namespace Sigma.Core.Handlers.Backends.SigmaDiff.NativeCpu [Serializable] public class CpuFloat32Handler : DiffSharpFloat32Handler { + /// public CpuFloat32Handler() : base(new OpenBlasBlasBackend(), new OpenBlasLapackBackend()) { } + /// public override IDataType DataType => DataTypes.Float32; + /// public override IDataBuffer DataBuffer(T[] values) { return new SigmaDiffDataBuffer(values, backendTag: DiffsharpBackendHandle.BackendTag); } + /// public override INDArray NDArray(params long[] shape) { return AssignTag(new ADNDFloat32Array(DiffsharpBackendHandle.BackendTag, shape)).SetAssociatedHandler(this); } + /// public override INDArray NDArray(TOther[] values, params long[] shape) { float[] convertedValues = new float[values.Length]; @@ -50,11 +56,13 @@ public override INDArray NDArray(TOther[] values, params long[] shape) return AssignTag(new ADNDFloat32Array(DiffsharpBackendHandle.BackendTag, convertedValues, shape)).SetAssociatedHandler(this); } + /// public override INumber Number(object value) { return new ADFloat32Number((float) System.Convert.ChangeType(value, typeof(float))).SetAssociatedHandler(this); } + /// public override INDArray AsNDArray(INumber number) { ADFloat32Number internalNumber = InternaliseNumber(number); @@ -62,6 +70,7 @@ public override INDArray AsNDArray(INumber number) return AssignTag(new ADNDFloat32Array(DNDArray.OfDNumber(internalNumber._adNumberHandle, DiffsharpBackendHandle))); } + /// public override INumber AsNumber(INDArray array, params long[] indices) { ADNDFloat32Array internalArray = InternaliseArray(array); @@ -70,12 +79,14 @@ public override INumber AsNumber(INDArray array, params long[] indices) return new ADFloat32Number(DNDArray.ToDNumber(internalArray._adArrayHandle, (int) flatIndex)); } + /// public override void InitAfterDeserialisation(INDArray array) { // nothing to do here for this handler, all relevant components are serialised automatically, // diffsharp does not need to be de-serialised, components only need to be removed from trace } + /// public override long GetSizeBytes(params INDArray[] arrays) { long totalSizeBytes = 0L; @@ -93,34 +104,39 @@ public override long GetSizeBytes(params INDArray[] arrays) return totalSizeBytes; } + /// public override bool IsInterchangeable(IComputationHandler otherHandler) { //there are no interchangeable implementations so it will have to be the same type return otherHandler.GetType() == GetType(); } + /// public override bool CanConvert(INDArray array, IComputationHandler otherHandler) { //if it's the same base unit and at least the same precision we can convert return otherHandler.DataType.BaseUnderlyingType == DataType.BaseUnderlyingType && otherHandler.DataType.SizeBytes >= DataType.SizeBytes; } + /// public override INDArray Convert(INDArray array, IComputationHandler otherHandler) { return ConvertInternal(array); } + /// public override void Fill(INDArray filler, INDArray arrayToFill) { - IDataBuffer arrayToFillData = ((ADNDArray) arrayToFill).Data; - IDataBuffer fillerData = ((ADNDArray) filler).Data; + IDataBuffer arrayToFillData = InternaliseArray(arrayToFill).Data; + IDataBuffer fillerData = InternaliseArray(filler).Data; arrayToFillData.SetValues(fillerData.Data, fillerData.Offset, arrayToFillData.Offset, Math.Min(arrayToFill.Length, filler.Length)); } - public override void Fill(TOther value, INDArray arrayToFill) + /// + public override void Fill(TOther value, INDArray arrayToFill) { - IDataBuffer arrayToFillData = ((ADNDArray) arrayToFill).Data; + IDataBuffer arrayToFillData = InternaliseArray(arrayToFill).Data; float floatValue = (float) System.Convert.ChangeType(value, typeof(float)); @@ -129,5 +145,36 @@ public override void Fill(TOther value, INDArray arrayToFill) arrayToFillData.Data.SetValue(floatValue, i); } } - } + + /// + public override void Fill(INDArray filler, INDArray arrayToFill, long[] sourceBeginIndices, long[] sourceEndIndices, long[] destinationBeginIndices, long[] destinationEndIndices) + { + IDataBuffer fillerData = InternaliseArray(filler).Data; + IDataBuffer arrayToFillData = InternaliseArray(arrayToFill).Data; + + int sourceOffset = (int) NDArrayUtils.GetFlatIndex(filler.Shape, filler.Strides, sourceBeginIndices); + int destinationOffset = (int) NDArrayUtils.GetFlatIndex(filler.Shape, filler.Strides, sourceEndIndices); + int sourceLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationBeginIndices); + int destinationLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationEndIndices); + + if (sourceLength < 0) throw new ArgumentOutOfRangeException($"Source begin indices must be smaller than source end indices, but source length was {sourceLength}."); + if (destinationLength < 0) throw new ArgumentOutOfRangeException($"Destination begin indices must be smaller than destination end indices, but destination length was {destinationLength}."); + if (sourceLength != destinationLength) throw new ArgumentException($"Source and destination indices length must batch, but source length was {sourceLength} and destination legnth was {destinationLength}."); + + Array.Copy(fillerData.Data, sourceOffset, arrayToFillData.Data, destinationOffset, sourceLength); + } + + /// + public override void Fill(T[] filler, INDArray arrayToFill, long[] destinationBeginIndices, long[] destinationEndIndices) + { + IDataBuffer arrayToFillData = InternaliseArray(arrayToFill).Data; + + int destinationOffset = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationBeginIndices); + int destinationLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationEndIndices) - destinationOffset; + + if (destinationLength < 0) throw new ArgumentOutOfRangeException($"Destination begin indices must be smaller than destination end indices, but destination length was {destinationLength}."); + + Array.Copy(filler, 0, arrayToFillData.Data, destinationOffset, destinationLength); + } + } } diff --git a/Sigma.Core/Handlers/IComputationHandler.cs b/Sigma.Core/Handlers/IComputationHandler.cs index 5c752a21..bcea2dca 100644 --- a/Sigma.Core/Handlers/IComputationHandler.cs +++ b/Sigma.Core/Handlers/IComputationHandler.cs @@ -133,6 +133,28 @@ public interface IComputationHandler /// The ndarray to fill. void Fill(INDArray filler, INDArray arrayToFill); + /// + /// Fill an ndarray with the contents of another ndarray within a specific range. + /// Note: The index ranges must be of the same size (in source and destination). + /// + /// The filler ndarray (from which the values will be copied in the specified range). + /// The array to fill within the specified range. + /// The begin indices in the filler array. + /// The end indices in the filler array. + /// The begin indices in the array to fill. + /// The end indices in the array to fill. + void Fill(INDArray filler, INDArray arrayToFill, long[] sourceBeginIndices, long[] sourceEndIndices, long[] destinationBeginIndices, long[] destinationEndIndices); + + /// + /// Fill an ndarray with the contents of another ndarray within a specific range. + /// Note: The index ranges must be of the same size (in source and destination). + /// + /// The filler ndarray (from which the values will be copied in the specified range). + /// The array to fill within the specified range. + /// The begin indices in the array to fill. + /// The end indices in the array to fill. + void Fill(T[] filler, INDArray arrayToFill, long[] destinationBeginIndices, long[] destinationEndIndices); + /// /// Fill an ndarray with a single value. /// This is not a traceable operation. diff --git a/Sigma.Core/Sigma.cs b/Sigma.Core/Sigma.cs index 35ee5b86..9a39c0a4 100644 --- a/Sigma.Core/Sigma.cs +++ b/Sigma.Core/Sigma.cs @@ -330,6 +330,16 @@ public async Task RunAsync() await Task.Run(() => Run()); } + /// + /// Prepare and run this sigma environment. + /// Note: This should only be used with smaller projects, as an early call gives monitors more time to setup and more instant user feedback. + /// + public void PrepareAndRun() + { + Prepare(); + Run(); + } + private void InitialiseTrainers() { foreach (ITrainer trainer in _trainersByName.Values) From 1142812122c2b1a19a8300c36b507c5ecd36c094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Tue, 25 Apr 2017 21:29:05 +0200 Subject: [PATCH 37/40] Fix RawDataset AddRecords, fix CPUFloat32Handler ranged Fill, fix TestConstantValueInitialiser test --- Sigma.Core/Data/Datasets/RawDataset.cs | 20 +++++++++++++------ .../SigmaDiff/NativeCpu/CPUFloat32Handler.cs | 8 ++++---- Sigma.Tests.Internals.Backend/Program.cs | 13 +++++++++++- .../TestConstantValueInitialiser.cs | 6 ++++-- 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/Sigma.Core/Data/Datasets/RawDataset.cs b/Sigma.Core/Data/Datasets/RawDataset.cs index 3e8707b2..eb2978e5 100644 --- a/Sigma.Core/Data/Datasets/RawDataset.cs +++ b/Sigma.Core/Data/Datasets/RawDataset.cs @@ -153,13 +153,13 @@ public void AddShapedRecords(string blockName, long[] featureShape, params T[ lock (_internalWorkingData) { long featureLength = ArrayUtils.Product(featureShape); - long[] insertedShape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment - long[] newShape = (long[])insertedShape.Clone(); + long[] newShape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment + long[] insertedShape = (long[]) newShape.Clone(); bool previousBlockExists = _internalWorkingData.ContainsKey(blockName); if (previousBlockExists) { - insertedShape[0] += _internalWorkingData[blockName].Shape[0]; // append new record to end + newShape[0] += _internalWorkingData[blockName].Shape[0]; // append new record to end } INDArray newBlock = _internalHandler.NDArray(newShape); @@ -170,7 +170,15 @@ public void AddShapedRecords(string blockName, long[] featureShape, params T[ { INDArray oldBlock = _internalWorkingData[blockName]; - long[] previousSourceBegin = new long[oldBlock.Shape.Rank]; + for (int i = 1; i < oldBlock.Shape.Length; i++) + { + if (newShape[i] != oldBlock.Shape[i]) + { + throw new InvalidOperationException($"Shape mismatch: already existing block for \"{blockName}\" has shape {ArrayUtils.ToString(oldBlock.Shape)} but new block has shape {ArrayUtils.ToString(newShape)}"); + } + } + + long[] previousSourceBegin = new long[oldBlock.Rank]; long[] previousSourceEnd = oldBlock.Shape.Select(i => i - 1).ToArray(); _internalHandler.Fill(oldBlock, newBlock, previousSourceBegin, previousSourceEnd, previousSourceBegin, previousSourceEnd); @@ -178,7 +186,7 @@ public void AddShapedRecords(string blockName, long[] featureShape, params T[ destinationBegin[0] = oldBlock.Shape[0]; } - long[] destinationEnd = newShape.Select(i => i - 1).ToArray(); + long[] destinationEnd = insertedShape.Select(i => i - 1).ToArray(); destinationEnd[0] = destinationBegin[0]; for (int i = 0; i < records.Length; i++) @@ -187,7 +195,7 @@ public void AddShapedRecords(string blockName, long[] featureShape, params T[ destinationBegin[0]++; destinationEnd[0]++; - } // values aren't set correctly, shifted around and just wrong - TODO fix + } if (previousBlockExists) { diff --git a/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs b/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs index 9936e80c..fc5871ca 100644 --- a/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs +++ b/Sigma.Core/Handlers/Backends/SigmaDiff/NativeCpu/CPUFloat32Handler.cs @@ -153,9 +153,9 @@ public override void Fill(INDArray filler, INDArray arrayToFill, long[] sourceBe IDataBuffer arrayToFillData = InternaliseArray(arrayToFill).Data; int sourceOffset = (int) NDArrayUtils.GetFlatIndex(filler.Shape, filler.Strides, sourceBeginIndices); - int destinationOffset = (int) NDArrayUtils.GetFlatIndex(filler.Shape, filler.Strides, sourceEndIndices); - int sourceLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationBeginIndices); - int destinationLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationEndIndices); + int sourceLength = (int) NDArrayUtils.GetFlatIndex(filler.Shape, filler.Strides, sourceEndIndices) - sourceOffset + 1; // +1 because end is inclusive + int destinationOffset = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationBeginIndices); + int destinationLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationEndIndices) - destinationOffset + 1; // same here if (sourceLength < 0) throw new ArgumentOutOfRangeException($"Source begin indices must be smaller than source end indices, but source length was {sourceLength}."); if (destinationLength < 0) throw new ArgumentOutOfRangeException($"Destination begin indices must be smaller than destination end indices, but destination length was {destinationLength}."); @@ -170,7 +170,7 @@ public override void Fill(T[] filler, INDArray arrayToFill, long[] destinatio IDataBuffer arrayToFillData = InternaliseArray(arrayToFill).Data; int destinationOffset = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationBeginIndices); - int destinationLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationEndIndices) - destinationOffset; + int destinationLength = (int) NDArrayUtils.GetFlatIndex(arrayToFill.Shape, arrayToFill.Strides, destinationEndIndices) - destinationOffset + 1; // +1 because end is inclusive if (destinationLength < 0) throw new ArgumentOutOfRangeException($"Destination begin indices must be smaller than destination end indices, but destination length was {destinationLength}."); diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 1fb50117..723b2328 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -47,12 +47,23 @@ private static void Main(string[] args) SigmaEnvironment.EnableLogging(xml: true); SigmaEnvironment.Globals["web_proxy"] = WebUtils.GetProxyFromFileOrDefault(".customproxy"); - SampleIris(); + SampleXOR(); Console.WriteLine("Program ended, waiting for termination, press any key..."); Console.ReadKey(); } + private static void SampleXOR() + { + SigmaEnvironment sigma = SigmaEnvironment.Create("xor"); + RawDataset dataset = new RawDataset("xor"); + + dataset.AddRecords("inputs", new[] { 0, 1 }, new[] { 2, 3 }, new[] { 4, 5 }, new[] { 6, 7 }); + dataset.AddRecords("targets", new[] { 0 }, new[] { 1 }, new[] { 1 }, new[] { 0 }); + dataset.AddRecords("inputs", new[] { 8, 9 }); + dataset.AddRecords("targets", new[] { 1 }); + } + private static void SampleIris() { SigmaEnvironment sigma = SigmaEnvironment.Create("trainer_test"); diff --git a/Sigma.Tests/Training/Initialisers/TestConstantValueInitialiser.cs b/Sigma.Tests/Training/Initialisers/TestConstantValueInitialiser.cs index 9edbc610..20acf8ea 100644 --- a/Sigma.Tests/Training/Initialisers/TestConstantValueInitialiser.cs +++ b/Sigma.Tests/Training/Initialisers/TestConstantValueInitialiser.cs @@ -13,6 +13,7 @@ For full license see LICENSE in the root directory of this project. using System; using Sigma.Core.Handlers.Backends.SigmaDiff.NativeCpu; using Sigma.Core.MathAbstract.Backends.SigmaDiff; +using Sigma.Core.MathAbstract.Backends.SigmaDiff.NativeCpu; namespace Sigma.Tests.Training.Initialisers { @@ -23,9 +24,10 @@ public void TestConstantValueInitialiserInitialise() { ConstantValueInitialiser initialiser = new ConstantValueInitialiser(2.0); - INDArray array = new ADNDArray(2, 1, 2, 2); IComputationHandler handler = new CpuFloat32Handler(); - Random random = new Random(); + INDArray array = handler.NDArray(2L, 1L, 2L, 2L); + + Random random = new Random(); Assert.Throws(() => initialiser.Initialise((INDArray) null, handler, random)); Assert.Throws(() => initialiser.Initialise((INumber) null, handler, random)); From ee75cc5a55be633fcc3bdf7c73cf21e141fe3f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Wed, 26 Apr 2017 21:05:55 +0200 Subject: [PATCH 38/40] Add RawDataset block fetching, refactor IDataset metric field --- .../Data/Datasets/DatasetBlockwiseSlice.cs | 2 +- .../Data/Datasets/DatasetRecordwiseSlice.cs | 2 +- Sigma.Core/Data/Datasets/ExtractedDataset.cs | 6 +- Sigma.Core/Data/Datasets/IDataset.cs | 2 +- Sigma.Core/Data/Datasets/RawDataset.cs | 153 ++++++++++++------ 5 files changed, 107 insertions(+), 58 deletions(-) diff --git a/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs b/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs index f2643b5c..31509525 100644 --- a/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs +++ b/Sigma.Core/Data/Datasets/DatasetBlockwiseSlice.cs @@ -50,7 +50,7 @@ public long MaxBytesInCache } public string[] SectionNames => UnderlyingDataset.SectionNames; public IReadOnlyCollection ActiveBlockIndices => UnderlyingDataset.ActiveBlockIndices; - public int ActiveIndividualBlockCount => UnderlyingDataset.ActiveIndividualBlockCount; + public int ActiveIndividualBlockRegionCount => UnderlyingDataset.ActiveIndividualBlockRegionCount; public int ActiveBlockRegionCount => UnderlyingDataset.ActiveBlockRegionCount; /// diff --git a/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs b/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs index d4659f71..f8714d6b 100644 --- a/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs +++ b/Sigma.Core/Data/Datasets/DatasetRecordwiseSlice.cs @@ -48,7 +48,7 @@ public long MaxBytesInCache } public string[] SectionNames => UnderlyingDataset.SectionNames; public IReadOnlyCollection ActiveBlockIndices => UnderlyingDataset.ActiveBlockIndices; - public int ActiveIndividualBlockCount => UnderlyingDataset.ActiveIndividualBlockCount; + public int ActiveIndividualBlockRegionCount => UnderlyingDataset.ActiveIndividualBlockRegionCount; public int ActiveBlockRegionCount => UnderlyingDataset.ActiveBlockRegionCount; /// diff --git a/Sigma.Core/Data/Datasets/ExtractedDataset.cs b/Sigma.Core/Data/Datasets/ExtractedDataset.cs index 138846b0..9ca598a9 100644 --- a/Sigma.Core/Data/Datasets/ExtractedDataset.cs +++ b/Sigma.Core/Data/Datasets/ExtractedDataset.cs @@ -64,7 +64,7 @@ public class ExtractedDataset : IDataset, ISerialisationNotifier public int ActiveBlockRegionCount => _activeBlocks.Count; /// - public int ActiveIndividualBlockCount { get { return _activeBlocks.Values.Sum(set => set.Count); } } + public int ActiveIndividualBlockRegionCount { get { return _activeBlocks.Values.Sum(set => set.Count); } } /// public int TargetBlockSizeRecords { get; private set; } @@ -241,7 +241,7 @@ public void OnSerialised() public void OnDeserialised() { InvalidateAndClearCaches(); - _availableBlocksSemaphore = new Semaphore(MaxConcurrentActiveBlocks - ActiveIndividualBlockCount, MaxConcurrentActiveBlocks); + _availableBlocksSemaphore = new Semaphore(MaxConcurrentActiveBlocks - ActiveIndividualBlockRegionCount, MaxConcurrentActiveBlocks); } public IDataset[] SplitBlockwise(params int[] parts) @@ -494,7 +494,7 @@ private Dictionary FetchBlockWhenAvailable(int blockIndex, ICo private Dictionary FetchBlockConstrained(int blockIndex, IComputationHandler handler) { - if (ActiveIndividualBlockCount >= MaxConcurrentActiveBlocks) + if (ActiveIndividualBlockRegionCount >= MaxConcurrentActiveBlocks) { _logger.Debug($"Unable to fetch block due to MaxConcurrentActiveBlocks constraint of {MaxConcurrentActiveBlocks}."); diff --git a/Sigma.Core/Data/Datasets/IDataset.cs b/Sigma.Core/Data/Datasets/IDataset.cs index a4ffc1c2..558b9fbc 100644 --- a/Sigma.Core/Data/Datasets/IDataset.cs +++ b/Sigma.Core/Data/Datasets/IDataset.cs @@ -76,7 +76,7 @@ public interface IDataset : IDisposable /// /// The number of currently active and loaded record blocks, with different block formats counting as different blocks. /// - int ActiveIndividualBlockCount { get; } + int ActiveIndividualBlockRegionCount { get; } /// /// The number of currently active and loaded record blocks, with different block formats of the same region counting as one active block index. diff --git a/Sigma.Core/Data/Datasets/RawDataset.cs b/Sigma.Core/Data/Datasets/RawDataset.cs index eb2978e5..c9be7ad6 100644 --- a/Sigma.Core/Data/Datasets/RawDataset.cs +++ b/Sigma.Core/Data/Datasets/RawDataset.cs @@ -84,12 +84,12 @@ public class RawDataset : IDataset /// /// The number of currently active and loaded record blocks, with different block formats counting as different blocks. /// - public int ActiveIndividualBlockCount { get; } + public int ActiveIndividualBlockRegionCount => _rawData.Count; /// /// The number of currently active and loaded record blocks, with different block formats of the same region counting as one active block index. /// - public int ActiveBlockRegionCount { get; } + public int ActiveBlockRegionCount => _rawData.Count & 0b1; // can only be 1 active block /// /// The current working data that can be edited and is "flushed" to the public raw data with the next call. @@ -101,12 +101,10 @@ public class RawDataset : IDataset /// private readonly IDictionary> _rawData; - /// /// Create a raw dataset with a certain name and an internal cpu handler with 32-bit float precision. /// /// The globally unique name of this dataset. - /// The internal handler to use for data management. public RawDataset(string name) : this(name, new CpuFloat32Handler()) { } @@ -124,25 +122,55 @@ public RawDataset(string name, IComputationHandler internalHandler) Name = name; _internalHandler = internalHandler; - _internalWorkingData = new Dictionary(); + _internalWorkingData = new ConcurrentDictionary(); _rawData = new ConcurrentDictionary>(); } + /// + /// Add a record to a certain block. + /// Note: Feature shape is length of record, no time dimension, auto batch dimension. + /// + /// The record data type (must be primitive data type). + /// The block name (e.g. "inputs"). + /// The record. public void AddRecord(string blockName, params T[] record) { AddShapedRecords(blockName, new long[] { record.Length }, new[] { record }); } - public void AddRecord(string blockName, long[] featureShape, params T[][] records) + /// + /// Add a record with a certain feature shape to a certain block. + /// Note: Feature shape is as specified, no time dimension, auto batch dimension. + /// + /// The record data type (must be primitive data type). + /// The block name (e.g. "inputs"). + /// The feature shape. + /// The record. + public void AddRecord(string blockName, long[] featureShape, params T[] record) { - AddShapedRecords(blockName, featureShape, records); + AddShapedRecords(blockName, featureShape, record); } + /// + /// Add records to a certain block. + /// Note: Feature shape is length of record, no time dimension, auto batch dimension. + /// + /// The record data type (must be primitive data type). + /// The block name (e.g. "inputs"). + /// The records. public void AddRecords(string blockName, params T[][] records) { AddShapedRecords(blockName, new long[] { records[0].Length }, records); } + /// + /// Add records with a certain feature shape to a certain block. + /// Note: Feature shape is as specified, no time dimension, auto batch dimension. + /// + /// The record data type (must be primitive data type). + /// The block name (e.g. "inputs"). + /// The feature shape. + /// The records. public void AddShapedRecords(string blockName, long[] featureShape, params T[][] records) { if (records.Length == 0) @@ -150,80 +178,102 @@ public void AddShapedRecords(string blockName, long[] featureShape, params T[ return; } - lock (_internalWorkingData) + long featureLength = ArrayUtils.Product(featureShape); + long[] newShape = ArrayUtils.Concatenate(new long[] {records.Length, 1}, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment + long[] insertedShape = (long[]) newShape.Clone(); + bool previousBlockExists = _internalWorkingData.ContainsKey(blockName); + + if (previousBlockExists) { - long featureLength = ArrayUtils.Product(featureShape); - long[] newShape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment - long[] insertedShape = (long[]) newShape.Clone(); - bool previousBlockExists = _internalWorkingData.ContainsKey(blockName); + newShape[0] += _internalWorkingData[blockName].Shape[0]; // append new record to end + } - if (previousBlockExists) - { - newShape[0] += _internalWorkingData[blockName].Shape[0]; // append new record to end - } + INDArray newBlock = _internalHandler.NDArray(newShape); - INDArray newBlock = _internalHandler.NDArray(newShape); + long[] destinationBegin = new long[newBlock.Rank]; - long[] destinationBegin = new long[newBlock.Rank]; + if (previousBlockExists) + { + INDArray oldBlock = _internalWorkingData[blockName]; - if (previousBlockExists) + for (int i = 1; i < oldBlock.Shape.Length; i++) { - INDArray oldBlock = _internalWorkingData[blockName]; - - for (int i = 1; i < oldBlock.Shape.Length; i++) + if (newShape[i] != oldBlock.Shape[i]) { - if (newShape[i] != oldBlock.Shape[i]) - { - throw new InvalidOperationException($"Shape mismatch: already existing block for \"{blockName}\" has shape {ArrayUtils.ToString(oldBlock.Shape)} but new block has shape {ArrayUtils.ToString(newShape)}"); - } + throw new InvalidOperationException($"Shape mismatch: already existing block for \"{blockName}\" has shape {ArrayUtils.ToString(oldBlock.Shape)} but new block has shape {ArrayUtils.ToString(newShape)}"); } + } - long[] previousSourceBegin = new long[oldBlock.Rank]; - long[] previousSourceEnd = oldBlock.Shape.Select(i => i - 1).ToArray(); + long[] previousSourceBegin = new long[oldBlock.Rank]; + long[] previousSourceEnd = oldBlock.Shape.Select(i => i - 1).ToArray(); - _internalHandler.Fill(oldBlock, newBlock, previousSourceBegin, previousSourceEnd, previousSourceBegin, previousSourceEnd); + _internalHandler.Fill(oldBlock, newBlock, previousSourceBegin, previousSourceEnd, previousSourceBegin, previousSourceEnd); - destinationBegin[0] = oldBlock.Shape[0]; - } + destinationBegin[0] = oldBlock.Shape[0]; + } - long[] destinationEnd = insertedShape.Select(i => i - 1).ToArray(); - destinationEnd[0] = destinationBegin[0]; + long[] destinationEnd = insertedShape.Select(i => i - 1).ToArray(); + destinationEnd[0] = destinationBegin[0]; - for (int i = 0; i < records.Length; i++) - { - _internalHandler.Fill(records[i], newBlock, destinationBegin, destinationEnd); + for (int i = 0; i < records.Length; i++) + { + _internalHandler.Fill(records[i], newBlock, destinationBegin, destinationEnd); - destinationBegin[0]++; - destinationEnd[0]++; - } + destinationBegin[0]++; + destinationEnd[0]++; + } - if (previousBlockExists) - { - _internalWorkingData[blockName] = newBlock; - } - else - { - _internalWorkingData.Add(blockName, newBlock); - } + if (previousBlockExists) + { + _internalWorkingData[blockName] = newBlock; + } + else + { + _internalWorkingData.Add(blockName, newBlock); } } /// public IDictionary FetchBlock(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) { - throw new NotImplementedException(); + if (blockIndex != 0 || _internalWorkingData.Count == 0) + { + return null; // there is only 1 block in this raw dataset implementation (so if there's no data, there's no block) + } + + if (IsBlockActive(blockIndex, handler)) + { + return _rawData[handler]; + } + + if (handler.CanConvert(_internalWorkingData.Values.First(), _internalHandler)) + { + IDictionary convertedBlock = new Dictionary(); + + foreach (string blockName in _internalWorkingData.Keys) + { + convertedBlock[blockName] = handler.Convert(_internalWorkingData[blockName], _internalHandler); + } + + return convertedBlock; + } + + return null; } /// - public Task> FetchBlockAsync(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) + public async Task> FetchBlockAsync(int blockIndex, IComputationHandler handler, bool shouldWaitUntilAvailable = true) { - throw new NotImplementedException(); + return await Task.Run(() => FetchBlock(blockIndex, handler, shouldWaitUntilAvailable)); } /// public void FreeBlock(int blockIndex, IComputationHandler handler) { - throw new NotImplementedException(); + if (IsBlockActive(blockIndex, handler)) + { + _rawData.Remove(handler); + } } /// @@ -277,7 +327,6 @@ public IDataset[] SplitRecordwise(params double[] percentages) /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. public void Dispose() { - } } } From 01cf65dea094b45b0b5ab29c6939d6ed19c477ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20C=C3=A4sar?= Date: Fri, 28 Apr 2017 19:04:07 +0200 Subject: [PATCH 39/40] Improve RawDataset record insertion, fix SoftmaxCE on targets of 1 --- Sigma.Core/Data/Datasets/RawDataset.cs | 25 +++++++++++-------- .../Cost/SoftMaxCrossEntropyCostLayer.cs | 2 +- .../Hooks/Reporters/ValueReporterHook.cs | 2 +- Sigma.Tests.Internals.Backend/Program.cs | 21 +++++++++++++--- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/Sigma.Core/Data/Datasets/RawDataset.cs b/Sigma.Core/Data/Datasets/RawDataset.cs index c9be7ad6..5ac3e388 100644 --- a/Sigma.Core/Data/Datasets/RawDataset.cs +++ b/Sigma.Core/Data/Datasets/RawDataset.cs @@ -23,6 +23,7 @@ namespace Sigma.Core.Data.Datasets /// /// A raw in-system-memory dataset which can be manually /// + [Serializable] public class RawDataset : IDataset { private readonly IComputationHandler _internalHandler; @@ -89,7 +90,7 @@ public class RawDataset : IDataset /// /// The number of currently active and loaded record blocks, with different block formats of the same region counting as one active block index. /// - public int ActiveBlockRegionCount => _rawData.Count & 0b1; // can only be 1 active block + public int ActiveBlockRegionCount => _rawData.Count & 0x1; // can only be 1 active block /// /// The current working data that can be edited and is "flushed" to the public raw data with the next call. @@ -179,8 +180,8 @@ public void AddShapedRecords(string blockName, long[] featureShape, params T[ } long featureLength = ArrayUtils.Product(featureShape); - long[] newShape = ArrayUtils.Concatenate(new long[] {records.Length, 1}, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment - long[] insertedShape = (long[]) newShape.Clone(); + long[] newShape = ArrayUtils.Concatenate(new long[] { records.Length, 1 }, featureShape); // BatchTimeFeatures shape order, time dimension is not supported at the moment + long[] insertedShape = (long[])newShape.Clone(); bool previousBlockExists = _internalWorkingData.ContainsKey(blockName); if (previousBlockExists) @@ -246,19 +247,21 @@ public IDictionary FetchBlock(int blockIndex, IComputationHand return _rawData[handler]; } - if (handler.CanConvert(_internalWorkingData.Values.First(), _internalHandler)) + if (!handler.CanConvert(_internalWorkingData.Values.First(), _internalHandler)) { - IDictionary convertedBlock = new Dictionary(); + return null; + } - foreach (string blockName in _internalWorkingData.Keys) - { - convertedBlock[blockName] = handler.Convert(_internalWorkingData[blockName], _internalHandler); - } + IDictionary convertedBlock = new Dictionary(); - return convertedBlock; + foreach (string blockName in _internalWorkingData.Keys) + { + convertedBlock[blockName] = handler.Convert(_internalWorkingData[blockName], _internalHandler); } - return null; + _rawData.Add(handler, convertedBlock); + + return convertedBlock; } /// diff --git a/Sigma.Core/Layers/Cost/SoftMaxCrossEntropyCostLayer.cs b/Sigma.Core/Layers/Cost/SoftMaxCrossEntropyCostLayer.cs index 7687f41e..4d872fcf 100644 --- a/Sigma.Core/Layers/Cost/SoftMaxCrossEntropyCostLayer.cs +++ b/Sigma.Core/Layers/Cost/SoftMaxCrossEntropyCostLayer.cs @@ -36,7 +36,7 @@ protected override INumber CalculateCost(INDArray predictions, INDArray targets, INDArray a = handler.Multiply(targets, logPredictions); INDArray inverseTargets = handler.Subtract(1, targets); - INDArray inversePredictions = handler.Subtract(1, predictions); + INDArray inversePredictions = handler.Subtract(1 + 1e-6, predictions); INDArray b = handler.Multiply(inverseTargets, handler.Log(inversePredictions)); INumber cost = handler.Divide(handler.Sum(handler.Add(a, b)), -predictions.Shape[0]); diff --git a/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs b/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs index f79466e8..d0a0eda5 100644 --- a/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs +++ b/Sigma.Core/Training/Hooks/Reporters/ValueReporterHook.cs @@ -30,7 +30,7 @@ public class ValueReporterHook : BaseHook /// The value that will be fetched (i.e. registry identifier). E.g. "optimiser.cost_total" /// The the hook will executed on. /// Indicate whether or not to report the current epoch and iteration in addition to the values. - public ValueReporterHook(string valueIdentifier, ITimeStep timestep, bool reportEpochIteration = false) : this(new[] { valueIdentifier }, timestep, reportEpochIteration) { } + public ValueReporterHook(string valueIdentifier, ITimeStep timestep, bool reportEpochIteration = false) : this(new[] { valueIdentifier }, timestep, reportEpochIteration: reportEpochIteration) { } /// /// Create a hook that conditionally (extrema criteria) fetches a given value (i.e. registry identifier) at a given . diff --git a/Sigma.Tests.Internals.Backend/Program.cs b/Sigma.Tests.Internals.Backend/Program.cs index 723b2328..74d49456 100644 --- a/Sigma.Tests.Internals.Backend/Program.cs +++ b/Sigma.Tests.Internals.Backend/Program.cs @@ -56,12 +56,25 @@ private static void Main(string[] args) private static void SampleXOR() { SigmaEnvironment sigma = SigmaEnvironment.Create("xor"); - RawDataset dataset = new RawDataset("xor"); + sigma.Prepare(); - dataset.AddRecords("inputs", new[] { 0, 1 }, new[] { 2, 3 }, new[] { 4, 5 }, new[] { 6, 7 }); + RawDataset dataset = new RawDataset("xor"); + dataset.AddRecords("inputs", new[] { 0, 0 }, new[] { 0, 1 }, new[] { 1, 0 }, new[] { 1, 1 }); dataset.AddRecords("targets", new[] { 0 }, new[] { 1 }, new[] { 1 }, new[] { 0 }); - dataset.AddRecords("inputs", new[] { 8, 9 }); - dataset.AddRecords("targets", new[] { 1 }); + + ITrainer trainer = sigma.CreateTrainer("xor-trainer"); + + trainer.Network = new Network(); + trainer.Network.Architecture = InputLayer.Construct(2) + FullyConnectedLayer.Construct(2) + FullyConnectedLayer.Construct(1) + OutputLayer.Construct(1) + SquaredDifferenceCostLayer.Construct(); + trainer.TrainingDataIterator = new MinibatchIterator(1, dataset); + trainer.Operator = new CpuSinglethreadedOperator(); + trainer.Optimiser = new GradientDescentOptimiser(learningRate: 0.01); + + trainer.AddInitialiser("*.*", new GaussianInitialiser(standardDeviation: 0.1)); + + trainer.AddLocalHook(new ValueReporterHook("optimiser.cost_total", TimeStep.Every(1, TimeScale.Epoch), reportEpochIteration: true)); + + sigma.Run(); } private static void SampleIris() From 60f3d857ed2a95e7cd12c62b182cb1a039eadc75 Mon Sep 17 00:00:00 2001 From: Michael Plainer Date: Fri, 28 Apr 2017 21:07:41 +0200 Subject: [PATCH 40/40] Improve installation guide Add change to .NET 46 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46866e9f..24a9040d 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Short overview about why anyone would use this, how it came to be (even shorter) The recommended way to use the latest version of Sigma is adding the NuGet package to your project. You can either include the core framework (command line only) [![Nuget (PreRelease)](https://img.shields.io/nuget/vpre/Sigma.Core.svg?style=flat-square)](https://www.nuget.org/packages/Sigma.Core) or the WPF visualiser (only works on Windows) which also references the core framework [![Nuget (PreRelease WPF)](https://img.shields.io/nuget/vpre/Sigma.Core.Monitors.WPF.svg?style=flat-square)](https://www.nuget.org/packages/Sigma.Core.Monitors.WPF). -In both cases, you can use any project with a main (ConsoleApplication) but you have to change the project settings to x64 since **Sigma only supports 64bit mode**. +In both cases, you can use any project with a main (ConsoleApplication) but you have to change the project settings to x64 (since **Sigma only supports 64bit mode**) and change the target framework to **.NET 4.6** before installing the NuGet packages. ### From source