From 87004994f70a7888037be4c828eef6cae336ac4c Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Mon, 26 Oct 2020 16:22:47 -0700 Subject: [PATCH] doc: Introduce Inheritance Addendum to TSM Spec (#7876) This introduces an addendum to the Terminal Settings Model spec that covers inheritance and fallback. Basically, settings objects will now have a reference to a parent object. If the settings object does not have a setting defined, it will ask its parent to resolve the value. A parent is set using the `Clone()` function. `Copy()` is used to copy the value and structure of the settings model, whereas `Clone()` is used to copy a reference to the settings model and build an inheritance tree. ## References #6904 - Terminal Settings Model Spec #1564 - Settings UI --- .../spell-check/dictionary/dictionary.txt | 1 + .github/actions/spell-check/excludes.txt | 1 + .../#885 - Terminal Settings Model.md} | 176 +++++++++++++++++- .../Inheritance-DAG.png | Bin 0 -> 34753 bytes .../Inheritance-DAG.vsdx | Bin 0 -> 35439 bytes 5 files changed, 176 insertions(+), 2 deletions(-) rename doc/specs/{#885 - winrt Terminal Settings.md => #885 - Terminal Settings Model/#885 - Terminal Settings Model.md} (54%) create mode 100644 doc/specs/#885 - Terminal Settings Model/Inheritance-DAG.png create mode 100644 doc/specs/#885 - Terminal Settings Model/Inheritance-DAG.vsdx diff --git a/.github/actions/spell-check/dictionary/dictionary.txt b/.github/actions/spell-check/dictionary/dictionary.txt index 2c562c0f85..093c0ed43f 100644 --- a/.github/actions/spell-check/dictionary/dictionary.txt +++ b/.github/actions/spell-check/dictionary/dictionary.txt @@ -157078,6 +157078,7 @@ geek geekier geekiest geeks +geeksforgeeks geeky geelbec geelbeck diff --git a/.github/actions/spell-check/excludes.txt b/.github/actions/spell-check/excludes.txt index 97eb58e3ff..165b5d6d5c 100644 --- a/.github/actions/spell-check/excludes.txt +++ b/.github/actions/spell-check/excludes.txt @@ -45,6 +45,7 @@ SUMS$ \.tar$ \.tgz$ \.ttf$ +\.vsdx$ \.woff \.xcf$ \.xls diff --git a/doc/specs/#885 - winrt Terminal Settings.md b/doc/specs/#885 - Terminal Settings Model/#885 - Terminal Settings Model.md similarity index 54% rename from doc/specs/#885 - winrt Terminal Settings.md rename to doc/specs/#885 - Terminal Settings Model/#885 - Terminal Settings Model.md index 8a1f4be5f9..37b1fe4cb2 100644 --- a/doc/specs/#885 - winrt Terminal Settings.md +++ b/doc/specs/#885 - Terminal Settings Model/#885 - Terminal Settings Model.md @@ -78,13 +78,185 @@ This separation leaves `AppKeyBindings` with the responsibility of detecting and `KeyMapping` handles the (de)serialization and navigation of the key bindings. +### Fallback Value + +Cascading settings allows our settings model to be constructed in layers (i.e. settings.json values override defaults.json values). With the upcoming introduction of the Settings UI and serialization, it is important to know where a setting value comes from. Consider a Settings UI displaying the following information: +```json + // : + "defaults": "Solarized", // profiles.defaults + "A": "Raspberry", // profile A + "B": "Tango", // profile B + "C": "Solarized" // profile C +``` +If `profiles.defaults` gets changed to `"Tango"` via the Settings UI, it is unclear if profile C's value should be updated as well. We need profile C to record if it's value is inherited from profile.defaults or explicitly set by the user. + +#### Object Model Inheritance + +To start, each settings object will now have a `CreateChild()` function. For `GlobalAppSettings`, it will look something like this: +```c++ +GlobalAppSettings GlobalAppSettings::CreateChild() const +{ + GlobalAppSettings child {}; + child._parents.append(this); + return child; +} +``` +`std::vector _parents` serves as a reference for who to ask if a settings value was not provided by the user. `LaunchMode`, for example, will now have a getter/setter that looks similar to this: +```c++ +// _LaunchMode will now be a std::optional instead of a LaunchMode +// - std::nullopt will mean that there is no user-set value +// - otherwise, the value was explicitly set by the user + +// returns the resolved value for this setting +LaunchMode GlobalAppSettings::LaunchMode() +{ + // fallback tree: + // - user set value + // - inherited value + // - system set value + return til::coalesce_value(_LaunchMode, _parents[0].LaunchMode(), _parents[1].LaunchMode(), ..., LaunchMode::DefaultMode); +} + +// explicitly set the user-set value +void GlobalAppSettings::LaunchMode(LaunchMode val) +{ + _LaunchMode = val; +} + +// check if there is a user-set value +// NOTE: This is important for the Settings UI to identify whether the user explicitly or implicitly set the presented value +bool GlobalAppSettings::HasLaunchMode() +{ + return _LaunchMode.has_value(); +} + +// explicitly unset the user-set value (we want the inherited value) +void GlobalAppSettings::ClearLaunchMode() +{ + return _LaunchMode = std::nullopt; +} +``` + +As a result, the tracking and functionality of cascading settings is moved into the object model instead of keeping it as a json-only concept. + +#### Updates to CascadiaSettings + +As `CascadiaSettings` loads the settings model, it will create children for each component of the settings model and layer the new values on top of it. Thus, `LayerJson` will look something like this: +```c++ +void CascadiaSettings::LayerJson(const Json::Value& json) +{ + _globals = _globals.CreateChild(); + _globals->LayerJson(json); + + // repeat the same for Profiles... +} +``` +For `defaults.json`, `_globals` will now hold all of the values set in `defaults.json`. If any settings were omitted from the `defaults.json`, `_globals` will fallback to its parent (a `GlobalAppSettings` consisting purely of system-defined values). + +For `settings.json`, `_globals` will only hold the values set in `settings.json`. If any settings were omitted from `settings.json`, `_globals` will fallback to its parent (the `GlobalAppSettings` built from `defaults.json`). + +This process becomes a bit more complex for `Profile` because it can fallback in the following order: +1. `settings.json` profile +2. `settings.json` `profiles.defaults` +3. (if a dynamic profile) the hardcoded value in the dynamic profile generator +4. `defaults.json` profile + +`CascadiaSettings` must do the following... +1. load `defaults.json` + - append newly created profiles to `_profiles` (unchanged) +2. load dynamic profiles + - append newly created profiles to `_profiles` (unchanged) +3. load `settings.json` `profiles.defaults` + - construct a `Profile` from `profiles.defaults`. Save as `Profile _profileDefaults`. + - `CreateChild()` for each existing profile + - add `_profileDefaults` as the first parent to each child (`_parents=[_profileDefaults, ]`) + - replace each `Profile` in `_profiles` with the child +4. load `settings.json` `profiles.list` + - if a matching profile exists, `CreateChild` from the matching profile, and layer the json onto the child. + - NOTE: we do _not_ include `_profileDefaults` as a parent here, because it is already an ancestor + - otherwise, `CreateChild()` from `_profileDefaults`, and layer the json onto the child. + - As before, `_profiles` must be updated such that the parent is removed + +Additionally, `_profileDefaults` will be exposed by `Profile CascadiaSettings::ProfileDefaults()`. This will enable [#7414](https://github.com/microsoft/terminal/pull/7414)'s implementation to spawn incoming commandline app tabs with the "Default" profile (as opposed to the "default profile"). + + +#### Nullable Settings +Some settings are explicitly allowed to be nullable (i.e. `Profile` `Foreground`). These settings will be stored as the following struct instead of a `std::optional`: +```c++ +template +struct NullableSetting +{ + IReference setting{ nullptr }; + bool set{ false }; +}; +``` +where... +- `set` determines if the value was explicitly set by the user (if false, we should fall back) +- `setting` records the actual user-set value (`nullptr` represents an explicit set to null) + +The API surface will experience the following small changes: +- the getter/setter will output/input an `IReference` instead of `T` +- `Has...()` and `Clear...()` will reference/modify `set` + + +### CreateChild() vs Copy() + +Settings objects will have `CreateChild()` and `Copy()`. `CreateChild()` is responsible for creating a new settings object that inherits undefined values from its parent. `Copy()` is responsible for recreating the contents of the settings object, including a reference to a copied parent (not the original parent). + +`CreateChild()` will only be used during (de)serialization to adequately interpret and update the JSON. `CreateChild()` enables, but is not explicitly used, for retrieving a value from a settings object. It can also be used to enable larger hierarchies for inheritance within the settings model. + +The Settings UI will use `Copy()` to get a deep copy of `CascadiaSettings` and data bind the UI to that copy. Thus, `Copy()` needs to be exposed in the IDL. + +#### Copying _parents +It is important that `_parents` is handled properly when performing a deep copy. We need to be aware of the following errors: +- referencing `_parents` will result in inheriting from an obsolete object tree +- referencing a copy of `_parents` can result in losing the meaning of a reference + - For example, `profile.defaults` is a parent to each presented profile. When a change occurs to `profile.defaults`, that change should impact all profiles. An improper copy may only apply the change to one of the presented profiles + +The hierarchy we have created has evolved into a directed acyclic graph (DAG). For example, the hierarchy for profiles will appear similar to the following: + +![Profile Inheritance DAG Example](Inheritance-DAG.png) + +In order to preserve `profile.defaults` as a referenced parent to each profile, a copy of the DAG can be performed using the following algorithm: +```python +# Function to clone a graph. To do this, we start +# reading the original graph depth-wise, recursively +# If we encounter an unvisited node in original graph, +# we initialize a new instance of Node for +# cloned graph with key of original node +def cloneGraph(oldSource, newSource, visited): + clone = None + if visited[oldSource.key] is False and oldSource.adj is not None: + for old in oldSource.adj: + + # Below check is for backtracking, so new + # nodes don't get initialized everytime + if clone is None or(clone is not None and clone.key != old.key): + clone = Node(old.key, []) + newSource.adj.append(clone) + cloneGraph(old, clone, visited) + + # Once, all neighbors for that particular node + # are created in cloned graph, code backtracks + # and exits from that node, mark the node as + # visited in original graph, and traverse the + # next unvisited + visited[old.key] = True + return newSource +``` +Source: https://www.geeksforgeeks.org/clone-directed-acyclic-graph/ + +This algorithm operates in O(n) time and space where `n` is the number of profiles presented. The above algorithm will be slightly modified to... +- hold a separate reference to profile.defaults `Profile` in the `CascadiaSettings` clone +- visited will be a map of pointers to the cloned `Profile`. This ensures that profiles reference the same `Profile`, over creating a new copy + ### Terminal Settings Model: Serialization and Deserialization Introducing these `Microsoft.Terminal.Settings.Model` WinRT objects also allow the serialization and deserialization logic from TerminalApp to be moved to TerminalSettings. `JsonUtils` introduces several quick and easy methods - for setting serialization. This will be moved into the `Microsoft.Terminal.Settings.Model` namespace too. + for setting deserialization. This will be moved into the `Microsoft.Terminal.Settings.Model` namespace too. -Deserialization will be an extension of the existing `JsonUtils` `ConversionTrait` struct template. `ConversionTrait` +Serialization will be an extension of the existing `JsonUtils` `ConversionTrait` struct template. `ConversionTrait` already includes `FromJson` and `CanConvert`. Serialization would be handled by a `ToJson` function. diff --git a/doc/specs/#885 - Terminal Settings Model/Inheritance-DAG.png b/doc/specs/#885 - Terminal Settings Model/Inheritance-DAG.png new file mode 100644 index 0000000000000000000000000000000000000000..e462530e16e4e8857b23a6b60bb6a0409949e401 GIT binary patch literal 34753 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 literal 0 HcmV?d00001 diff --git a/doc/specs/#885 - Terminal Settings Model/Inheritance-DAG.vsdx b/doc/specs/#885 - Terminal Settings Model/Inheritance-DAG.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..8c34c59afaa4ceef80ee2ad6ab98d6ed20c1f0f9 GIT binary patch literal 35439 zcmWIWW@Zs#U}NB5U|>*WaBG}h)y>Gj;K0VfAk4tQ6z!a!SCX1n5+71okXjt8SCN~e zu!x08V*vvb!zdWhA+Tl2Nx#DeBCg*({y0C;^|~X*sd!}zcbjTSpxuE@@lo9s6W;pO zpD&&z)?pR7Vzx_X?faeQ4@>u5Uv+NUgFPm@RQ@h^_N#nu%siO2 zc%h2)hZLJ#dnNtM#cJBJ-g+DHAG8a6^;1UVbL++hg-eY5Ha5)9bJKkspTkyi;k9i* zUI~NjCjr|N89$grqpv7d$3A|aD-o12D}PyV%<-+YQd+LAC3l2u zY}Q53Y1>zFg_srpiHWLjzt}JE=*0by{fukhF;Bnj$#}D6=ZAA5Y0JGkQv(x!I3+$j znmJ!0^> z5y{sZUs~))kha;Z~5Xa2Gz|FwH6kn8@Q>?ECB1iM?h|aQb&##$$ z+V8M|04VP^KdpVd#HJ-+a-Kj?IY%qM#2e2fLHiW{Ro~ukv z^WrV7j!dj9PP-bo<%J>@=B6c@wur5Ka_Z#tkiPaloxoy4-Yt7{1WKDLw=ek3Ic5HC z9$(|*!Dl{5=r(t+Tj*n@yv<5=&bGKGkJomad{4M=Y5m{u*Bk4yM9Yn@3Gdv!?4r>8 zeP`7ki5GP|Ib(lQrpiz8Zk!Njc}v(rD_+)n@|{Osgon&$z?Q4#E@#?ME5g9=sgZ#} zh=GBjEVDQ>Uq2;3ximL5uLM*vzKP8(e!NZa-@Tdt*nK}czAZU7X^r@8$=_C+Qhwk0 zp*!up>fcKXRZk@KDTPk@H23rC-P{w7G(`l2OtLD>s#dcsp3f?FfGI+!?BwD4npn18 zcR}?!5jj(9>$hpnEtfN%we!25Ew!rOd_U*U!g=XI(t*nU;01R=zR9_oJrKSML+M%@4BXJw5{y++`HEIzU6NEwCvG}on5XD(p$j5cq?`1St;MDY9nRoEamZ|&bmzPFB3 z(+@^Hxw_ZZB1f`b-p?sNG@zXSSG(@x&L#6}d|f-3C+>OsO{BqQ(uBkx0v$_Od26_A zU%cCVWB%Nhd$kH_`PS{a&t5+Cm06m!Dr(lAT={Kh*jZ~Iu5ED)=P&xTbo!D7YD*ga zc=lQR`y+5pL!p`>DK#s&E+q}0zyDQy9xp%kbNS+DdFyZPu(h_!s@q)Nwcj^m zWs8u9eft-->fMXw*d;|K6!O!rgOaF3Iv&9Tp6`a?1LJh{^9$(T7gRJo}&X;QssmS<3n!-Y4(BSt0++Ao=K8 zaXXF~Q}U~toA=i3zI!u!&&w^}cU9lLd#`SP;RS|3H*Wp5K!%Y0);I3I{!+I4$B$#& zi&>r>%v*dp|BLkQPus7*IP^c!#gF+tqs6Y>wIXN5lxJ2M-_P!GV2hsN_kY3e`)}WV z-OVeKw*T&X{sngq<}JT&ton+_>aFAQ+b_$d@_*fJuB*?lmp|5U;#wxp0?FOIW`7>l zuguw$9=)^RLTu3?KQX2#@BbNd`kyLID18)qWx|29$2O8{C!0j2u}FygxgI##{Xi6F zah*!jg2K`(A;ALI`DVoI(5iK?(pt}Wpmd2)gZCun4}4*>FKfuH3p+SjXTR_1#; zyuI|R?`X5U*RI)@mnF=0yLU?M#iJjuRFw4$$~TIyI%r^(EutHKW76*BQ-!WAc%Xn-4@%xT~P@&9O&6J`Go_GCN*8JsoT%FQn z%{XcO^Up3z=D*oCUBEs>@g4Jj`)oz?ONz6-ylzO6_q9yj!>-EM@U&u1_g~ zwHsgW5cvG%Qn#aO?k!zEMRCC#4)K>3UWqRY0_{62zAkh;e4svIndrHy_MoTBy2|Z6 z7w2fbIgx4+A334&&G8L~n;#~auh6({_(lBUm(T9?)AVw}RQ4)obIrZzvAai(buqVP zXCRXb?_|*vr>>icHG0g{?5rue^f_n4j}I-kHNM6??M+ztY^U9lc>lD0&Mt5K%|(}4 z+*nt$F}-k0*%c1!pI;tZ&&y@1ee_EI&W3{B4=nv3XJ~4#o%D)Nr+i@#?>-Sui<##g zInp$bPCVJg;oQ&=7#?^gQzT5RNbcN`@Ol5k)-V~gRy<)-A7eLf^P znR2YT`WF-x+Z-1 z4O7pv&l{(NwB+COU$LV|{->W!ZRewzliGteYF<~A(|Q`G+HFv#IYT^I|Ldm0lJ6D| zI*fJ{s`p=5{`hx-$dA^t9EW9mUYfDyX+L<@M<+WB$DrfTJ3bRyQKUu3X*2yzW{NtHuy{X?Mvn-ojE!qz6k+Qu! z!(v*pP?yT=IyKQ}&OCOra&DYdd34s`#hMfTGiGY}PMq4FEm}M!P+IQA+D9fS^1nHA znEhEVO4M%Mb*C{^ebcePyO#bJ9y+aXJNVpl-^Sen$uG>dRJd{5&uDy6rhnq;Bex^o zjsGN$85uG5)TS`y{os9n?MwZ^$kS$Z{(sjeEj#yE=dW7FzK{tI=Sji|Cb zy>NzKp@FsmA1l6{|5|jE+kxR7*C(X|A5wqK6k%jYw@;S#W44b!)?t^^R&S&HQ3JwpYn^MIu0}Q-j+;xu5DkG>2NHTO@=)|Y;nGl{(&d@CoFe+${n)fUzc*|-d*Fq z8mS550ZbZ3J1g#Q$c-;%3)7)Aq9PEPJApAh7NH0+vZ-OJ7wd z^PPCUs=xQSM%1APPm9^?nW}>}aIa8FS?pmRnEKx6Z(F-YUF@Xi+EWb49r!6S*|>RO`Tg|=#inI5^6mMSS$6B#vK5IhbXGGmtIm8V#_8vBGpf8Y zLF`Jy!jkE6QorNPMc5x*J($Y=$tu969o80%dCkjHR2gptqSNk74<~Te;MOjR?RjR zk$Y9id0ti#F`7GAO9cHqToo5QWs-4pbj{W;c-j^m!P{|7%UR6w*MqFTTN?izX8X0@ z>_R2y!wSW}%O7ZL+{(#w`U>-Z|93wg-&u5@bK{}Ke0N?NE_<+c#^UXQvz`}-XEWII z&FVXJLn+IuKFww_`{bmnORGXA$ShKvE1tz9$f<68Lt6I9d8N5}Y7fdbKb`9_t5`GO z$wQ&M$sx(S*1my-4-MBp>*==KF!8~qFDojG-KAGYx^wfdE1jBREn8YY$5K|r<6Q<@ zhnPzG6_&@wEr)ln+BV6HhC^&ZP4>wU~6OzRdae3;C- zOF?$Vnb|$}vUipV+sj(A35gV5_{cE5-&ULXZ)`=)3IA}5N5`*U7cbcPuIR|3vo6!0 zW-ZxhvwPt;-8k8tJkDJkHP)0hZ(Hg%KmPCUEsJU&-}ud>{qg*hrptnnig%kXMr9e! zY3Kfb&;MfN6kYarhc;ea;r#5W%h`>t$39Bca0J)7hcZT8Ew+P=jjb>LvDJ|Z!|;OH%uN@wd1cfi`+NG2zPnJb82@qlJAqUU<;BWf zzKk2zcr{${*^wA>dcEPh=%WWcyNlJftKPW&@`$74*9oDIGjgU$bH=&L$~)V|WPABeYm{MGo<Q`Sx4y7)B)zG=;>w~8U?8=v)Y@V=%*>g&K?hY%ZD~;3F zo{_Rib>7V8{V;AtqiSN)858aM>=#0h?BZB(Z<{OsOuOWA+cnHL+y2+=o)O4%+3p$R6~8or)ase75@p8S3%(gM8@$a(mXbK8 zb9mK@R@=8O0=st!1;3eHuq?6R(yWJXa@f4z<~r%!UKz@!kaN$qh*>T=X50PHkY)R3 z)qd%k|L$8`)!wM868+z?kyXbm1d~1A6?{82lmGkb!t{B4UfUkX-`Me+`Ihc6nFYrL zOhb7t{J&y#^7)KDl?lg#l(#g!DKV3oy`cYuhKm+m~ecTSAs()XKBeS0Bvn>i>^ zVc*5v+8bXs{be*?Z1H2}V$Od~-m8AR{{Ey)>v)gjwADWk-}xBTetfP~%+lagUAf;o zBD;INqmx7SS}5=8pLo7bZ|$XvaSIn4wccO5h-c@Tg$v%hI6u^1v@rIA)brIdqpAvD zuJ}@&6gicla>@@;nZ+BHL>RI^+w|w`J(>EKS;|M%CD-ka^{U<4m6^XM>ZtGboxNHA zUVVCUX2zip|8isJtq(JFk+JV4-F;w(@PFG| z%s=hUEMYdbWu9lKtb1ce!=A1+TN1W$R32Y{xml8Dw%VBoUM~;v9P*P+b6EN%k?r6z zLE|0IJ=D`ywc3U*7d0+X+dIQ?W9Bg)zDJw)6zwu(-h8P~(ns^}49AFv`aEv$c+;$m znjc-BB)LFm-IR418oM|H>=tk}_=TG|#Ozw+J*(*60`71xx#EKdluR#6#5!mn>}7P~ z$>IID>CC~PD&=^YS(iDcut$Br*(u^_bZb>N%K|C=YvGI7woUo>LNB1~vFAj#lMJbi zCbFA^oG&X$DomF140y6GJH*`TLT*Ra_I}BT-u%|v4~*0Vn_c$Q%)dCXnMbhJ)auRD zy+&GjQ*J%IeE=P~q-^v)ZBX0y zBH`buby>Fep6T(`gx!ptGv)N#?1U4k@yzE^-|{x^?^xgHcJ$x98r~F_clYMT%&U=z z`*Za}(yYGrsDdiSbhdMTADmx#|mDdkAx>WwW!>m27*OjK1iqLHN3MzG~~ouiEOK=A7Oc26CdsTbm!(Hshs53 zMSOE7h0bn$l6LiR;JfKgX4g8Vf6`bWmMJ{R<564G$vr)?>e>40Uw0K0G#O5=e*M+y zSXfTk*BxtA9#rLoC4DH%i9Vx0mudIWOY3I7DsO+LSyX6l=JokXyngqQJD)l`=U1`T zbU%~cxmQ{`@%it(G|lG>#=F*B%H1AyQ-u2@|2j>Mbq7__E4cM6M4rDqWV*B9=DjxW z<7^^r%Va9PYa4A~Qohrivis$w163OznMEv+U4QUUz^)({mhQvft{=QvDEUt8_Cbl9 zt5>!6ypuBKXpY^P%07MbdiK9{*9&q!?7Sz&6BcK8|F)A>c-zd_yv8L;PBDew^8CBw zO#ICj@dfNUqt(zS^I_4m_!q8^#Ld<|o}DiDJfUdHD&ydprZ2C5F_z5FZn|!5c=fNm z^?aGdhtu}w$<*8AiFh`qs`peVbMHgM!V&B10bjoh=kKHONFIc<$m1o5*`0-=vv^$RfnU22SpYxGjKl;z! z>AL^^ofiB5AhqlN>wW(Z>~yyh-Dq< zY}dT{`S?@QE6%6;HYhLi3d)vzbvm}hFnil{trcC|8%<~g#T+w;`_ zA2-ils%ZS~SOL3UK2PY6q@DktmS-N@+3<%kezM-a^uGA%=lnSqBz(A2YxCg6)6I+RhB4q#ZS|HZq}Q7Eh?@}d4GLEU+A9CvqYv}RKMKu zdya7!o1)>boqB% zE(tC;ntf*S={Ww|hrYME|2(|?KPv;4DS#bPhrSN?al{F=XUpL8QaeaB5vtZq)n$KRBjp~nHk1N~7_t)g)q|~}s>e;%Hdd~B+<((t0 z?y6e8dhK3=u+-b(FBe}s*>-%xZl6nAr>8IXl$xS;=g9qam2(bv)Gb?T^Qq{;nXrdy z!q?(brO!WSE}i_TXSw{&s>nwnYVRE0t~xb!`?KxLU#)H)i9wD>$m?dT&Y~X?EBn_3%|d4cYjq<^~@{sQB}v^O3vMO zbeG%hH{W{AlBZpK_hnbQ?e5Dj`ARR%ue40Fm2-`2@MLc)+!0Z*MkM8F*N&UHEZ0tV zOa8KtFPx{n{_u?RpJQ9NUi2Q)u$q$hWB$*5C6x~oTBfXS^y;nW6aVQIdXG0GI5dy_ z)f2C)v!s&c*jE3Eocc2>a8IP3@x1-wR=+Zr-(G#&LZe22>#e)gBH?}R+AJ0Ziv0x% zm$={b{oEgPXv-xAPm@xWQf>cipGTn;;?F+cxNVc?XArOc@BQ@};Y9W+TrAh>K0hnH z8@Tjko_XMl+;iO`G4oEWg!SIOCX*u_y*Bp# zL5X{U!!?dSo|XPpF?+?C%>93kl)FyS+wk|HlK!MHF};dwQ7X50cWnQYd(SI#y>k2G zgp0S1DbCe;;wc>L{rdB#rf-6LrpIQSy)nU8=9^fhig_Yqvhtsq&iq;%Hx+rDQew>s zdX}Z1_%5Jq!cu!5hsYU%`R-4ccccVQ7hPiT`m}wq>DmHQq0FNn1&fS%RXt2IYGSJz z-kt8z?RiyR6Y}f=H>ou7mf%P7M@jBtrgW{%d(2>xa=|c zdR%kHgI!vgExWsI3lv$Od-JSwRKHv7@|g81+r=G`tv3%Ydz9-KT1o(9>-Ty zc>HrybG3k|;1#9dLwmBO)UusFur&O+_{xdfjp5fIM4l6)=w1CK0EetloP?RkS&;Q}|;3ii0&ZM3LKPW$+J1>eGR zT&JvqgeEM%`YL?s&pC6KuYdFY&7u^I;+)``U;*~pw{I)DSj%`%*;V>~W&h^+JNit= z=KD8I^IoY0dS>m~tM>5B-Wu(bUd{ZR^R}wbH1*zW(xZAXw?Lk4!jCH(xSr*RYy5n~=B(AE^FN=g zQ$*Q5vS~eMb81{yb=rFSuIkn1v1fw+9A!PrG55qo|MDt((+~UIYdaY)Y3&qc&8yJ! zQn_S2Q`j;>;5{2##DvtByT9;oSF=3fp10gK;lS)OC+kjs|0VwH)F;Mf8P!0$9tFW` zNmmsDKh)H?JmwMk8j`s3w9EUW99Nb;iL9C)!C!!;&PU)r}Rabs&*X3fqk(~iwJWy`H2BUIC+)7!AKZE0k!x3lf3S%v%c zf190({U-PIphwh|fHviBv88O270wrM7G2#wF@M?f6QSWXi)|g(RaF<2PSyB)_m^Jh zJoV7?D@;y^=-vDubmf@b*Qy21vEf0h{M~ZhX6*l5d_2?o@WU0kv!-25Q!c(yHX~6w z{at0e{M>rB*{|xN&A!@ZHP5*EeFg8LG*hR~7FoufnoBg4cE(-V=x2P;xqW#`gvP_`zlVbjcOX>?}T%4(Y+xikSYpp~k zhxhLdt`55v`CZFec13Z`63uA#9d(KgtUsqD^52-A`|*u)_z!lqEafK84FOxlx4PY| zQ#$O!G(V^N`N@5Ic~VY3=gczU)i|iTB>y36O-ZXj7`E<7BKK9OZiW?xs}8zaJ^yA5tcwpr}Krp zA2av!KbbP~%_n)R^OSD41caY3F)+ljGcbt4tNwz-^weT~FbS&mdqRDSZy5;eEnoKk zp!wWK{6PwdNk*Jgrb%*1`doT)CGdxAii(CaKg}mPLxYBiwlN+~r z^2SN6K3k+upPB4=DCxsAp5!WC`-}?7)TWSf>sJr9opDUKAmAN@o zB)IST#uxgI*}t=ekI(sPpughy1e3e^(|zxMm;RTkow5DZa(_k3@@Pi6Uk599%l=r) z+pNKQ;amr2$Cq169L$)H{d}FpreC%FRovHx;`Eq}zfV51I%?v<6Pe6-*zn^w#ruuA zLAi$Fd7n8nyq>T2oFuY9UiVaa^Rdi3laJ2b%W9$&wNop}J?NWg?86H(O?AAlzHB%6 zCZ6_MMyu>N!!q;Zg3c2+r7u%<{CxOz+Y66l`c9LTIooAdH(qTk|gg{!vlpP%zr^P!v04>Q-bbJ-G2r7uKyr#7>f&XPX3EZ~aj z?Pj0Um8(6i_vA@Wza*oyW|P#+y}NBsF6}yF-L`PX;qKlGd)65Ln581{`tpoFtSAdIPjdj6Oele{tsp(`7}eVUZiRF!@}$lb2unu<_HU6Cdtq&U_jgd@;ev zXxcf3*ey@4qDxw%H(B_gGB zUrtrf{q6ke#y_hkm#3?2`my(|^c1$We-!#Eue9&B7QWH_F?aQ~d+YwnactWXcuy~H z*@_icKkn~}`?~1DgN@k-WUnTEp0MKKooAbtYwThay<3kpTde7y;LF6wz|g|Pz#t3H z7LcVe$dmZsWim@99n3mxAmH-8^& zP1>^pA~iYJ`SlfouI;*lNU1@t!;I#8baa9hs zA4O)nIo>hpSJ-y^z!Up>=Vp0y-inbZD$2KHm>u@?N{HN={1+2$xE$x(+!Ux$p+DjC ziKDqE4*b+>SU$0Ma|LhIUACw9=k7dOd@gXp<4WGYU-+w**=0p%f9O4PZsB=j-BV|- zKCbM&{6jfxzx9cew^#1Rx}xZ;&w8`73=9mP85tN<;DHD2M(9HV5y}IVF5ocSGSRpD zkONQK`$PZQ6~E`+;_B|We2-;)_iyI5%p7)Wc^|gO|9crDH*Bi-{6pxIP5y~>|G#eD z6_6(0+_r3$W8j9ug2XEyitp6tITRWu8Wi&^dFaJc`+eiB+RHgzIv<}1X)k2CW-xWq zwvHV2Pi?DbXqf-m+RkXU=Y@Fa9=y-jLg2645pD#r2tb2Y}kR?=Dee;qIu6rH^ zFWxTO{~$?A{^A>B&M+m-8QEvmHBX+C;4#%qesb1!YJyh((UUoE4qHt5z0LN-r|gEf znMrd*rWC$%h`B#=^8Ysvay_TK+qzNn#Pa7%J!NmDp4znQ%y_gx>xWWc4LMC>*OTo z2P+qMm|kv*(QAt>Ik~N`nWJ~}Zh?6@x2_p*9DcN(^Vg)O^?Pr=U2L$$t@_(`5R-1aZ>_Ta9_NE+b&|C|eNKM!{7-B; z`xVJ|H>aH9z8#SABYCJcTX(BIiD{ z042A70UA%N*6oh`wQ+6nhBqx->2KW7*^n*Kz#b(R74o`Fno1$<3!vwlBWe<}|_Ts0AN$^V9na4dy+t_@KG4 zTj6i@pNqwRZvL4bzun4O_UN}-nft1i4L{?rwZ(5gA-KWsh~UOw7M+Dou{Srak=r3r zYq)iXc)YdCV#80Jn}xqyvp;9MZg+V8$@tnumK~)%%Whh5B}E9wBkn zSYG9xl9H`%#j!_PIk4l^_Y&rJ5z8-UcAaV3<+s}TBwydlo3>JU0_>#+)~22|&FHA| z6moAme1-9l$m+Iz^E=}2=`F}T!P3Ehb?W2YXBM*_e}Ad<)U?wF{_fCO^I*%Sj5+82 zs=V%HOY@$7#y@6Foa&;3f393S{k!=0>jJ@FQaVSO*G1QsE?`;zd*@bQ8IMr}%NtltGv4ud9Y(m#2U%B&B58PXVfXAE0cb{Sv*_8 z%IAa9wd-vUW#dx*MhZwhnNeY`oPSP3i$y%LZLwlV#gqkmOpbYeQ&0Ld@wt~8^A*np zD>gmKzi0E0`CCNFWYdFUzGX{1R%Cj=@vLLQ{qq2PEe^d#So)mHsMQJ8MSJ>kP~7UEQ}YY%bK}So!mHZ{quknt=8H_oXO@ zdVQNThb6l5lii|}FQw|aP4O%5#=cTY$$y|p2&x{2Uu2GHCiUFQ+M#pr@Oxni!OPFjmNomHpPgGe?O@tN z16CHRntkg^?58(d|F~7SG5zol-fabHMgOaoz7ue+sywaw!lkpsWtWX@bmpJKdzM`; z5M|#f^hCt-cU(zCPtVeu4JP4>ZS`uzgpxMw^j=w-%Dcg|jh|`4&ZF9E6!pxXZ)v+U zA=7fUPq66BygnXN<@rx+OnW3QRBd!zd`#JK;`C+O$p?3f@^YCyj6JQG*k<@^dlie^ z&j}k6{z{zi(0y3jPI`>_ z#s{zd#NaLLz5gm-lS{xvCKH>~Ob^|MN8JOTX68?P=&TYn$;GAXlgY0B4W=#qAG$9D zx36MTjh;10cO9$sNv~NCC;el;nvPS^SkG^?LNCoa@w!Bb&WqRn`F5g zXPv&Ob!GWMhs*mq4yoO~boIUAyXF)2zMu25pS7+w5w+6}mzov(Giht&b?>j4QN`|? zpKYHbdS=^^*+*VAulc30>;IoUtJ?)et8_>=arh3q^@ z8n1YE1w))_WaACn+lD;P1h`B zS95V+(c$+&H|B7X(aWm=_na^Gd|Z3keYO5hZ>_4d2QDRobG|gG5W`^Br0 zueLg#3-HW(q;uhXPKe08)zU0M>cV$6ElF9mEMvhTb(yY}Rh{}eOPBu^)e0%v%K5~g zU~;;#ty+;>=fghH{X9q2Ob&_Z=v{gEO?9Q*mRV89u1;~EspI|XWq1zzdczeL0%lK{ zuzpkjyr?q=xVq93j%tO6ZWCJF7BO`NgZ90JBCA`UUp7A)xk@+xLY?UD*+ESD97{i| zsI24qQl+^jB9`sf)M?FE0vOkvI6B3&;8j?$)?r7BAd@?781th4e7nlwe~ujoYy3^!{coL)RJOYiim@y zt7JfHC*y@n43oDw7>NqzaBb;S@-!Rlhg&<^uNViv^}%T zwe;eW@B0?M68NuwA>{x0hiC1vw$xN>Z#`PY%)n62iM!2W1ZuPNgvA!$vJk1gKl3mD zt#6JORJSG0-ZGi<<&Fdvpr)mO!J*#< zx~CuADy^Kf$mW?}pRk+d-6?)f#nbc5EF9nQaTjfWURs?em&|1PZIC`;>8J7INs1&N0`*85yvY_-{Q_a0Bcw8lz#yM#?G z4^~g{ozVa5!@Kx;!bRb|%CJq?vu>em zB;PTP{L4Wz<4baXPu&(D`7L;s%%u-&Os3o~fApqj@41JE*fOs3w)k(83}WOw$*)xD zeE*Sb>W&LZv%-|?rPz3_-~Rnx#(m@?zscg)x3&hd=tir)e7RHY{Y=-%QQEIBUtTq3 zS?-r8xvwEV+Z>;`cPCt#wE1wxG1;4b{8N%|9tkUwis@Xv`g`@3Wbxn!{dbkRlI_E_ z=FHrm<9g7jY7WohLT#^!JH2vnyURynVufonhv&_Hy|DU^m z#%0ZWiU*~-W%akMyHk~>lhxhk+IHHgZq>89Ml+68A4$`wck)>{)ke|liNJ}}DBt#o zyWGEGmLL@w{|HG*<{NydFdZ6xv6u5e_jn|NC0=SlGuG#f1c%i0`j*l3tr|0CqzhWmX za*6Vp_GRfz#-j$lardgv*-oE+?&0zF+*NlMFY+lcyQF*gis_W2KdesXx&MkSEf#oj z>-ggMddoc>r?^Cg=Y(pk_TrtE`qbloNa(+X_w^t1-f~;I(f1M4^dHNNlJ>lPJbSi^ z+uz?TJ>PRLZ~A>(<7COUZ_XDZdyA(u-j$BYS-i@mpfGy&j7LB6xNkQJUVbmG(W_Ok z{f>r39+oV>88$|v#2 z#jTH3d~f?JR;`%j@7^vvW!bHoCGl!Ey{=DFzI*NWr5C%bf0^!FXI65ZrQ`bR&Oho1P50yQ;bXuzIp6zNLqFIJB!`Ef_E>7$XfbMo^$lFsX>Y)Ln)Ar@32ZeCldnuXAZ~qN8$;xx?Y*pG+YmBF<@qi`q_7m-k0}Z^5i=9YKuZa&AvHjIaT7%KeN@WQ<}Oy_u8zs zOe<^s*xyXQI3(9B-`st(sODbvb-kMH`BK}eCB4d43W-SF!s9F5yy4}c zpw-#Ow>t9Z2l#mL2-<2^vidDt7W43Z3d6m9ksl_8w?;X+JY_lRKY#z3<+kf0tMA{j zmz%Gj_Tk)d8P1mJo)xCGEvI(MybM^7IQiC;j)PJ24t`bki*(f4D!8z2?avh|3p}UH zT~f}qHeRe^w(+4uyea{0rzYiGVvl){-#drpq4(+>+8huPEDFYpa*@DTjmGds6*m^E^Jc z_h+VSJ0+->&Ra5N;#C=zIl(_wW~j9;>N>n)QHOb`^Qs?@cXQ2GaLwwNIC;zLa|`DrQf-73(B@Y{!$OHIMcP=vXXWH~+0g5mMSy1$b1g9&OsXSHg@CP%q!e>+{p z?FCPo<{e}28!bm}=W^dV{kph4wRn-4Yp~ZO!@E=Gnl@bd5|goViSTpb;{KW0>8sZI zU70+!&Tp#Rm9mxG=S@x+6)L&ePu{^@)9>`hB>&rm&pM~`RenB zbHv6flzVweW8nSAH8+pldSz_CWHmd#b8o=oAKnT{lU;iv*3E8v?5r&`WLHp-t}2vcF%KWosJhr>iH~Y%Pj9dadIf=c<(_m5+86FMH)awPJh9 z+9g2;JcESp>P2zqX`Hs2f2u`k*`;W)_ZN!qDoB|4bN^@LKVf#IVW;!u?|T?a4!v3E z9ht_F?RqC}we3^Bkm^Hh+ApW;pIc_MZe8)EsC6q88tz?{GV^y2KJ+g6BvbggVlgYf znn^x?8l0?-zTN+2Axrz^w|m;&l}$WRyt?1+Z*Kn|xsd+?_ox4FEcl|2wPkmKx#9FO zRR)HgVT@R(IUplZvC+l1EjHEphyH8+?m2U<@T~8rL+0rA>(2~Pm0bTeWzKTlqswyN zo?7HJY4XWGzb-3q2=SUI1}vKE)3)-~+!m#aFW5eO<;~dh*xI>iIh}1y~Z_RCV&p zPm1?R`}w}8J?4eSqto?n)(T%I7r%Oa-|p}9&KaN2SQW7~Gc})f`7OsLtWq0Qllb3C z|5^U0*H`neUq4-=%6p*wbwqA_y3VkozYF7Q` zMV@MkO76BT;zvV-cc^69UDPyuE$r!|m|NvFxle|>DNf8aN0%jY$}Y`6&T{@6`K&Lm zZtGN7etuD#?UhtREf?u!dY{d1u_Yc8XV`L5?cdLP9Bghjw<~Kmnir`SHDzCR%H8E- z^31dM(_lfy*q%>h4;^Lc$jm$*3( zp!*il%I02wEj<6K_}ZFJxo^5jCUZ*S9j0X=G4`Kr?)Q3Dthc;3C2!5e(#AaYzFvLl zNI#QHb0fAX_~@U!{V}PAvr7KNX3>>;2a^w+4XTyxnLhpT>XQ}E7wkBdI=3p|&e`QZ z<^L3Xy?*hms#f0o?(;t@56ZvxzS(od<3_$icX!*0tvlt; zuaY~-8~FOtu7!V(E`2d!-x;gMDV*n77rYI>CSvH#qsHRUbVh%thN$s5hGmKhZZD2z zPHOR#QHj)+@L06)+G5WmP4}fZLS9dN5wE}LVz|C>>+fr?Pco8 zc6ePru(*fma*fcOZ${hZ@z^G%%?y*BH1`Y}tL?J3U#ZQ9w1rDWH=h4&AEqB4b5488 zz1qqT-vnfy$NsC?{zWNux`+?+lXxQ?%jnvreOAz`x$_(%#;y?3-^; zFZhPj+*3H<|LvXgJ5Ng$AJ*s=KHvM~+JxUP)nD*`3f}m8rd#U&8hh_%jZe)&_q_VQ z&reu)lI2JFR~N3JpZ+m*$A2%V+i`wx<%eUjJNG_*nGz>C^VQ?7jz2$4;{E=exo@O; z?oZW~OBd5QoMq}}$@!>H|G&B}t>fqIlNWb?Uflipe*FIGZxF^6Kxumk*7__ntep=kV+F?cwoOd(K&X&SEs$s=%|@gU6N$P2aNRo~X~NE1x&t ze#HH=#%x~jd2dTuy<_HQ`=|Pr&ho!5QT1ucVTdKdf7)f!$x`cKt<_fO3XYQ5&YY-RG|u$jx=8(-lc2lyy)Zs*;j?x zi%#B1zItkE?OL_vU*3N5VSCqVC6;_Ud)~pTo9GpD68x~#RmpwPCJkyF#5{CfNPCYH0=%ExzkKec3Zs1kFMyY~6-1=WqQJkeVe zBehoD?TmkX+O6-aMX7q9F305=KVsSJb2j_5P3>vftM)IU>Hf8{FRq!4U82cBFCycU z<|QY1$KINEba&~R*!Z2dpU%+9=oXc9GGY8C@5pkkz1LOX`cwzz&IqC2eNw$bVXnze zwjcBK7cHEY_nzyn+TkmSHa>?OA1mt18Xf*3;Ih=yA$O)HirJS9 z>PuL7dB2`+;|oiBHK*4tIYV;UWG$o0jEA!hCFPg;uD-8vU8HVPx$onw>549@%=%4p zyNecVEc0!ToltT8=?3me?+areyKtMYnE!Ux*;R-7E^gqS^i;ER@0Q-`iwm@OTuurx zDZjPnpmVF44M)=P$J;;qZC!hW_qUTe$KqAt?@Mm5cG}!bTP0X$_;eoMZiUp@adTH4 z`L``CZuYb%@we4Pf?z2B;qT5ElPS(j@|1vmCI8<1@QK)RL;M3Lgn7ty9TxH z@5|(}+UsVOtyPrtUUbnmWb-@0KU@svm5Gn;#-%LYz2a}F2&enJlZW+AY>VBxw@>%& zVyQGcDT7S2YLPECw?2K<*kcs)BKb2 ze(tiq*&9>R85X|gFuOV>`oa;F8`rFRjc#7QYf#*^#@^ofqvgfGJ+_xpYOci}*th=u z=N>tZ+}_LV&;RKNP0EK%Ew>wfyP8$UJ$-q=;U zdfr9jO*xJ;jvbXhZhbUck~4bS%avO@=X&uRTnnxa6i;Scoj$Y3jo)~gUcT_W?(%3G z1GDMXU;NJgJ#sJe*1pM3LcCk$e3iuhTysbWm<|r!^>Ldgi5$tbx@E<9y?XgG!Hr=& zpFSxXub9QVbL~+UtI%0&C2XQ|e;)bl*|B~4#;qUxHqN=&a55+0!sm?B*AH1Qy^*n{ z?b+OY|4Zzn@6NWleB{B*u>FDaKw&;J&F{>fOB`OuD>gVY=N`Iy&9Hak?Az_hQU?qK z{vGLmGQ;Vp?BuYCa~AUXJ^AIf+j?18Zds`hZ?Bm*=WmzUmdgyxJ3FuVF7!xttmulk zd`x4fioiBw+vwvWo3A@$P2ZyV&M1FzuE0Ly<06~ad;NYW6U;haYNv3VUMhp~@sLcP zr-yF+3wZtGh1lk2GwL=!GMrf$YPTRc>siD{{*R}R1zz)wzG`R+3eLDm_I=5xLY$HX zloL-+GfkD9rLbeGVpeRFxysGezl?%qf{i^APm6IoIyiPWo?DjQ-?wt-{2PXES6A>{ zvu%o(F4esE*46CSt5Dg?XRSfOXua%9&W4G8+84j}W%|1;6-|0LORLh>MpNPCK)Ce}?YNh2I(+Di;+6 zEq!#Oj=klW*Hs4D34wybr^8B|CuF4N7E0XZQRzCoCfC*frQq5dQ)gtZwk`NkYSw0T z%YS}|yY)P~%Bkl+9jyq}@o_x0Cj3Wxv8@l|kvb{0f=wY-FXGvioz;0Gp1u^x5_6j= zy=bx=^Dq7v@zczuFVwen&3QRBhV=~J)bzGf#=G@hJ7@N_9zW2Uecx8IZpoyOH|9^w zB)HGtxLe4OUm4KbBWuWa&|G4jg~U3G1o4O&Nr^#rOXinEJr4gqX{pmj|Hd14nQUV> zg&Y=TKYLZv>6CPO_mf9QLOZ?Q7Kv(ZTHE*TSV`&o<2BlhpO#!nnfQ)nrgZSmABvkp z1U_XM2}vEdPnmY=#HR^MwZ8fot6!M(YTD960(Wi+Y}G5AcIv_ekv-QA3ujF`wW3K* z_sm*$2dl526E}rK9FY>p*;l(Mnk~O}TGr>jZGHz7y-j7_ZT2_%K7VOc@lnP(sU{Z7 zuJ$iU=GuSLdRbX&ddP8+rCXm&P`$;;v#wj@|C{vRDychocB`M}7Tvz{{QLav)t53v zZruDc_fOD`%XcEeV?}Zo@87Zde4dAjS@x_q5?eWUC)WzpPTFQ*lAUZXYR#$8?4++4Hd4&T|kcK-SMX0FMujEfJZE{e>JnsE4@r^ex>7L!?Kg?a~< z7k?rA-tN-9lV`1Otw=eLQOU#?_wvEiI`8#gj;wmZ zV}0~mRI%G153A)L7Va%x6*kxL_VibOO|I?MoLJ1&E?ZsZ_qRvqckZ)S%mmKVI;6MQFi zvf&@wm>Ua~`V&j!&sm3lSUJ)9p;}Oxfz|EhCTcwT6N|TXFA!+a{S#cwIj#4vi;-iq zUYq*Ez0ZCy{tY%h?)6D%e~wJ5?fXUZ-ogt!``l)uqpOyenaog-=$-XOF5va0U5Y0; zFHfI2srN|F%G1*B(l5)SYc|L)d~xR3tDqAb#c#e?9nM>opsLw%y(87*{WiY?U;k;^ zN^euz^)DwLoG%NvyOsXWx|#o~^d~*V4DSX51^MpWSms z<`vtUpq7NS;Zlogj;GyP?R_rf**eE9dVZSkHg=^}aO~SYW#yT@TCdwbdx|Dx9r4@I zHsx)1P0&)qsom^fJ$tWO%3n}-y{Xarxc!S~ugvOoid8o)PVEX^{cDNaG+mC%3w}KQ zv19??tOtsdw!ZOPSMI54a$6%cE5pNR$Ms!HI`m6dCHGIM*?RV6)6UEdG9v!-dW4P! z)L&@z-W^;fIbElA>+}lo^$WQst4#m;Ge{?X>N3u6M|SV+aEsr$%6?a+d-U>;RrOaa z6x1GWxfJuh@0)Y*EEcnS8ku@ujW(H0O?#5rucBV;*my2^Z47t32(NVdqCl}(+P5~I z>0!4B{<$=CY13Tqd9yXd{!HI1_>uYL#8VNR`_$~`h&seF?g+cp-z?N`WaJfEy{y19 zpXK|_W1a8S6hm|rPJ5a~SI<9uc59xPLt*oc?uGZVN*Uj+{5^WeBV^BJ~)2R;=Wwy&CFgA>G&;f)&R9X6fI1RzANdLcl;_g%bzI z#~Q<(J6F~{j`{oi(T_i0zOD{;U;g!nOzpY!)!mP`9~G5iezE81^N03PcI|=o^ZrbX zmlX-OoW9BC{Q3V8S62(DWr=JqWx9Osv#oyO>wO!KA8~m)zr&O9>4F;*So4Gqt6t{3 z#nE}!O?BZM=BG)Pk-l9spZN#dPTXd*<lZnxvwiVD=;e1uhiT5zX~&LfohqNi z@+JPsPsb?-{_kj8QF^9%wZ?hQOPj;+Psjf(Yz}a0lgPav*S-LGhO6s-NJ^J~@=&+Ort0Ctd)e<(- z8?KC*cP|7SUpm3}#R<3H8N8l%h4a049Y1iUd4*h=@w^=VoHcn-Qj1!ytUAsi%3N15 zD=i>WjWcLNjK4U@rD9W7YPq<6dg39=TzroG^-x8FqS>|+kwM3C)ir=TmUtVRMG?#=n2>mw#T?=6$a63d5`aS}@t*`ltUcXH`5Q$J%f`B}^K)(JsPU7z({ zSf9`-jlLGmntEYbtJdv>*>$`5w%!WJ$ZxWp=-azuO}F6E@LIJ68_X8fv>&xl$Um{^ zwPD4KDOwpupVmG8{KMXS_6>Xf`wQkQ4=L0xIJGSHy#Hi_GHugf>6q-x@AYmNr^p5K z?XKWEeSY(8{sXRUXJ;sA+kT9cGN_r8@i9T!({o3A$syY#GqX;5G`*2}E%@e~kocz; zZ8zLZvZPOTaf{!sQj&l7@cCNF@)NVC<}_%F{3eF!-t>ccq7D_AOnEudg{P!^GPf)-&&po0^?Kg=SyA7tMc~#bGuO$W4?02qUYRC9$308;s31pTBzgXlz?xyU%fhA z$$P+uPqFH!lV{DM{cAbArEc3Q=0u&_o8PlxONGIqM@!zeIz;^W@wkkmTYB@7K;<>O z;`8n|ZTPXXtInbMe41$D&QC`t-J0OW&#^o8l7y9=g3gW5T|qyhm2{q*f5Y5Z#Vcog zDC}7n*UhvW&L@LguNnq69+y^HqrYu}nqf{s%iLc6<_$}?a!jnp z?~%5s4PPu@w@3BRqhmUmS2$J|9W-7ugIhntG2+i2(Zs~~tjx~C?{o?(6c5Mq#p|0? zIo!~_+^#U^p1?Q9-mshh-zP0SHTTy#$6$BPw1Pv^CQjGys8#-!rl~N~He*%$;nbI$ zB2(5}I)3;J`zEj5iE5g%JS-OWfrlmQ_Nb2e33aN zZ>Bt>BF_ZQ<)@>|_t?);U+yS8A-2r2 z3U!~D8?tA=@tk>P!{e7v?s?Vf(`Nf@ zpRSd=am*Uqm^HCH;j5WGd@^lTaEj7DkrJ}*`L%v7!L=VemgiJxtv$i$oAme7K2VR~ z-J+-K3a=cA+seE)S3FxkJly`j&F=Yr-9Jy2Oy0(S^7pHj*SnLRzj=Lkd6JgjHZT4O zegfNBfcZ@e)s6TxuRnemCjI+u+}= z>uy~Xim?2zC@fL%Z^qw5b;(Ot&T0sTY`$k`nExSZw(-6R4lDP#y^Ne0UAXj4m+j7J z$29D=dV2I6y4JEX=X}+|tpy7YD@g=wSSrWHU35-vj>-3vYkxO!3m@m`yShJ=Xb=PF6c_;Tg^W|&gD+{dy&Awhb zv1#8{wsjL;D!u(WMOsxgH8)yz>0-?pySz8_+%B3ItG4j$?xgS@yTq+dMoyf6f)sb& zt9h-?e%Ib|joro%M`{&;7=R%p$&UtDnd$|A43n_sMyNY(cwmgY@77KXwRyxjU{F-_x*e=J#d!a}>xBAHk z96SE#33Ys3a5(VAHLKKJPVp$o{$3;Qn{FudhrcPI4H99G)K3 zysPzM&LI;svl;JGFD~?R+j8-psaLhZ{nkdq8Sf7TNS^sF*6zUJ!LY2?R!7H@J37Y1 ze#ZOepLv^p2rj61e`c-1Tl#r#RmYj~3XnCo^K#FWmqeYF2%Q!sz36@T>f6_D_$Ke? zTp+dRz4MpYudHk!2jmvXI)8~h=eD)2sQtz7>9Q+o^JP0^7rmEXkhC#bh}m3zwnI*K zUUtX6|7#b$FW?C@zrVWuL`{48w`aSHmNEM!d$X0lekQp^GtJ;WZ)4<1G4oTM9__r( zekbhXfA;%c#toa`TRg{9ni?bpf61Krez0cy2BXzyrJH}A^NaYhQ#;e({_X8QJEn9W z^^;)CR(hKB@#J@@+V;6icm0gBb$MoOv)TOq)X%MkU90(@{m!`Y+wM)R{@Ufe-*@xO zPQMmCpQAW*daA+w>)Zh^b{?!*ey)k<;`hY&zjxJ&H2*x;w{^m)tQ)`21?fe}HqDp=UWN*xhcEHJF={Ie6j>VAxx&0dUfOH-k2hJKFM>{- zt5wmgjO5Q-qxZH+eznP~OL}H8KX$C$b!*k9JzKYUKbbPM=%GuBSW7|p>Ub|PZ?DYL z)7Zs^fj7ueeOJ?vI%?C;ZQ39pX7$rFu}UmWEW#3Y(?na}+4)+r{fQERvi zHB+xGjhc3?Z_B&2n-9Ec+4xjaCv1-7uC6tuk?VtQE&jzOy~5zDXo#U{cC4-Ti;yd! z_U0;`{$IAU-8{i4(x7}SP~yN#;~leS9a_QbI4w5$^toAwm!`j2QTgKY%j?FcHW?W| zom=iH(iX5nDo;yYVp_s9F#$IIrEiLR8&4IBvMjxHQ}7IHnP9xs@&Z@x-7i897cDi6 zRx-VG%ixjr(PY=RIZuC#OqVc zhu=zVSbB7EgYG(`yAKrV_Nm@@bS$UyN<#MGj`de2u01GbznwMODK*DqA^(cpwN1I4 zTi2QTH{1Mz-q|+?aXxtFuKB5! z#UMZ9W)(`Rni+ip?KeoIHoSwwGhp7Q!tH`X4pSJ^#Hte} z55-fRM%}zK(>!>$a4B!_ zZCfkEni2f#8I!zyc%nc?!SRUBtKZxg@-N8c-5SM|dn(qUd&PCTq_`hGR^{B6#oAuDwMOC@G)m9#mwoNU~{GI!C zdeYVU@P!xcc6f=_z>EVS!xRFpFOdNbjZm-OXVQ)Yfyvo&sg=1#NNw%`p} z$+xe)zB^+>&yu9H+&zp%x4Rh2Hn$1PmuVA=ai~q$F-`2Beap>RYKEUKxolV*C%=*V zy=uY4T%JtJ9ZWOktY=BhI;}LNyoLK{(hl+K?RTO}^`|o3iWXjWsvt^(OD_@s{Y1$ja8Ri9L%rY zKBI9kOMh|qx((u2dMCMEn*4LY8|Gy1zeY|6r%kj;UlJ()#!u+kk$HFfp8q^8{R$Pg9LcK&G^)xx>R}Ryr;5(>*gQZV9)R6csk!SQ~c{U zose`#t(;}|UG6`ssCqQ-@-4%(4dFr|`7MX;si$-8;wq0{8d&=MRl!t|&(Y`d*6*9s z6Q0m>X2&M2t3Q9PchB#yxODojr(CSr&N$rzYA4fIFTVNXvdR8M_SX06i_2Qc`J-Gh5@Or0V|S)n>nMVw`@G?VQ6$Tr|$aCzEzwnlAe1kW%jx{?si2|DWcZ+v521kL8O3$&z!=_CL9Pv?*d?`scsd z&wfr*<$UU2rz=+f&R^Z!iPtmZ>*>EGToa?-3jdS&u;`CxUeEua^$IML&*tl%o-#A4 zVOFaBZ4Y_>F z(TX+sd#4snxFVTQ+x}qoAGP_h2j4b+u1qz3v#+H-*6hDkq{#Kjng70=ysXZ?ee%nz zeqY(etRoW7?#^MIm8ZyaYt@pIn^tWOm?_L!AjHJf={RLs!RdK2&jo`cia7W5JY93+ zuE7R%ZJw3erLQxX%`KdLr@c7ggI)j6>$}(J&HLPAv#Cm@pRvr$UA6I)OKZK{K1Y4+ zpR1-6KB~%l#H?+2lIxqq4M_o|Wld&WQ|3+L-u}MHn{m7KNnvNNuj+kTlAJdcM9&`H zGxP9nj^!tr^cz1%7iE7Ci?=?uZP$}Cl`%i;#g9KKS)qSYjvi zo0tBR%lG>vxp_*>$92_DRXIbxei1tU#`C4ri|a0hO_LtD8Z=IvAm{BqGwSz`j~}v^ zE|yu^ti|Rbdu^)&>yccIH6;R$vcde%S@&P{Jswk=>&bJ=jGOzD!Tfi<7EWP3CJ))= z+9H}3bl>C&dT{oBS)cgPSj*WDlFg2N@NW~Fpm;i8&3MM!H=GXFv+}1nK4B`6I%DI; z@$X!GPLY@Q^F=l1;=jkNC3=gXVA1W1J6hyl%7dDu)O48`k zM@7AR;tNeDWhbw!(TjK#TEsEU!D5?^;a|tziF4lwEHu@bsw=elV4rH6-?YUnyYFvH z;1rBH9AwF9p2pe7d216(cOLgNkg|=NyRX!2kW!To+pp`LYkVi`QKD1Yv|AiE3tQ55 z2+Hm;b1IWjbV}>Hb#0BTdq&f2%dF^4P?2dMkvfpbMyN>G8d3MBd{x$4np61pCakqM z)N)4VU_o9V&(p?Rvy_b&nq8bKE3j+*)trRt`Poj#PHwnb^>xPKz{`flSIl<5m2hg2 zo1kcrmm`_QtYF>0Z+sG=Dp1qYr`fTl347Q-x}xro#9xZ@Z}%ur>A^-yV{xES914P z6_thWCts*4=G<%*oH&0`W0?5@ja?=`ETn!|=GgCZDBN1Op|~sMffvv0e}8lLF25Nj z`RHVNm{Vs?!Yb2x1OmWzsu|Lm0AquqIVW7c%0d3$9PE^Lc*3cR)=q$TmR$JK^w--YfcFHdzou>a}Z?x%0- zKYcs;>FRnJ@%?Y|v95CyR%tu6f{B4amxF;p5Wd&6JTosPzq}Z{usI|)|CWJB?ffnO zCv3OT-6-tA;T074;>HqR*Co;BoGXi(8M8ZOZ?fI0-~YO1>bkpE+U?fZEVxr_|E9R+ z&5t+hbk;CW?c$twJ^8}b>&@lewv|rXS1%rKyid$M)tB3C=f1S;z0JQ) zG`F$+a=BTyT-ch+`F7LF7}alnue09l(z<_flE(6sog!X2TPAm35}nO^dS!LOhHbAE z-|SRP-1AoUwEEpei)5bVwdiz)^-Z{4cEsn&Zy_^Q=YR)ZQ3AXb?uS6HGsCxx1+8 z!tvNU+E3VJuV}UivgK&)VA~gB_FC`6v|H1DuHXJ;?#1M3lMk(VyMU2zmwZQdQSbxr zr~OCdteP`A1U?0bJP>$hmr}2`?LCXcB#z&S9f1sIHqW)t`_4M2qAU5k$|~dHlh-t} zKK$D4c6Qx4Rn`5!<_Rx(d3&?z+s&WVRv9}?zI;dKgp z&U1XMT{JtC_40!6PAfz#H+++icw?qkk+S9<*ICB&4cq64&XtTxW-ZXUm?2VHki44R z|Ju4kwRd)%l5XIgrD`4Qswh%wuDEgeh*W;BBy`d8||t1W!2AP z2UqQD4da`~lDyX7)8DHFlrRe{!?T;`QRrr$5{H=k?v3`({)Bv0=;QD?3Gx{o-O^sIy~W5Q8V{l8n^cRDCcB z&fssPZ|2=T^>weq|Hcc}$?v)apEj+2dqjHAk`s?37OBJqFYyZMtL^?R=xV?G#r-c! z>n|D~b~S!-B1q?`Z{Ax5!Ssq}XKtRK+4{b|a*p~T=PBZa)A-mwS!XJ^yws3B{<6ek z$6ij?Yy}Zjuj3jgFJ)L%bafrnm;d)?`S%wa=D2?LX!w{}*wNM;8L7v|&(|ebviMQ# zwvM0*^OK(}wHD6w=Raooi>u=K$wnp5V+Uo9zI5=oD03msNA07AP@ci5gY9gU6C8|n zx$hWyeah~!iZV~C(NEr?H2+?ur=HD%6pINb?mu{N_&0M&1hY!2ydIC!kJS&e8b0p5 zba;8@t~3i>JEjR!YIhvq={b<`QINqzic$aXPSe97Hf!6KHmq{z%e((2bY|o7536lw z$;$pue!v;f8vpuW`$G005Sw-V_Xnld%WB2!8CN~%mD{6fxi8J=2j>Ny&da~$wk(le zb-mzrlh39nGr03!M`dW47D;JU>G*dGEpAs&oO%54!TTb?L9$mvUE?`Z0)uO#x2W6| z={@kxS9gMwZ*iS`O~wBJIib~ket&M=kv}zW@A=1p^F(hhsWCtGj9qf$^X7JmKU`~K z!}vP3H|PsW^IdvcV{zf_vf7gBN6d~>cY00gkhl78`o3=cOlGr)Je6o(9qR&@!`pZt zxN*6d^E9en-RR8zFD7{H&YipGFMAvt`En)K?tr&03Wi4PA9u?w-S=L5U+RrT%UKq# zm}wM{)!LVFdX})&s+7vIh~QrhpCqOV%s#MG`#ZbtJ3q?{*N^L**=(ZiIc2i;TIQbV zs*(TJTn^hIWwGjNd2H}@=kv;3DGyhK-ETC#Ipys=jfTZ;U+>=dTC2HXcQK=k>8kf< z4r=Y#P!RGua(dds71M5RpT2qM|S*zlX zJBamxm@QT++t!^h*F5#nC-~Fu#rygft+?S=$i%fYs@647va9v>@gC^$$ zOot6{gY~%GxBilIRn-HTW!t5119F$`tJE&8L)%OiY-o1+zDi@N z`X1jduAS%hc?LEfPtI8EzE(@li)Xft*W*uHJp zay;AC*3DkGE#_Ea`J|;!KOg-p^LN%$#fHQWEJk@+Q~bL#n%n~BRBLp;|0L0_F@rlW zf7QCci?0tEJFT63oO{KTzPX=YGqQe~U;pp#{r|t*O}BAZI5W>PHJ$pQP;BYt$19dK zN`Cox$ugZSmV3H;q-D4JAIZLq2a8jM&RZ6ooBH@t0pAowPWE>e1?#sp?zSxR%dpTt zecVv!+~V~zOAekjWUl$wB6Os&xVgA(=J`sV*Cu=qF1~edJM}tppHAhbKP5HC7=C5U zjB|V0)BO4J&i5B&?&@6DtbeyUTIwCwLiT%C;*NVXJ!J~3HsoJgE@Kc9r>3EM(Zp+U z(1*0Zd3W6f+aKwxtM^2NU;C;m79&!uT2%aKo#DyH6?|Ehj|4exrKJ>qi!9jOa(t_N zO`4*h$Hepu^Mjho$CS6|T%6PX>6oSUQr5bzQ&#e64em(g!qs>NiYPBl<>29wcSixxkdSvRLHH{*K9%Y4k_#oRw%lb2a4UFMjq634@?ne%|R z#YX$T(Dco(C8G{7vE@HscsMgK*i5&@HSEAkhL`KgQf@0ZALWrd$sNHm^{OG$n^#+` zAL&}$ygf%u^cmN}MTr)N^lv_^6KvEwi!0W&Ul&qoF_wBz7}#6smb=H1`@ z+;iV|>rt~M8+KjQ@%glQS1n^0_v~v`YoxDeCmSZQ+4%~r!?noit&oH zfXZpT+J83foO^OxWZr()?zNB3FuW;Up=7!EUHnqV-5+ZV4nM6q+Uz1Ea{ld&FA<5V zlT8borxm#;tUf8xnAjyfN%Kzwxn0j%n0-m)_6)OoQO;qe8fISuLLPWXUX$9U7d215 ztM6@ffE{0T6SSWot^ zpZl-Dud8qSp3Ct%`=8F8Z~FcKW0`&AgqBg$CJ&gXUtn4y-#h{B-ZlR57g$q z(CX8k<@bQCYfWU|)3uj!kLG;%v3S$%F!6)R^JC99yl!q|EoW!G&GeRS-isf38eY>l z_q@`&Gb=~$#aG^E?ay`xbFLL`$kUj$is}8P%tL1b{I@>TQ`M0DR;+q-qiv*dG^2^D z%SQ3i$FrUoofi{u4v2KK+&86H*yP(;`3Iu=+AmG>y}B-0-%MiO<6CAG?N4ST*y`Er z+?Ct4E9pnuBB^E1v$k$_SSmB|>8*J!*R@OiZ*z8V-2Qn>EJAxq>4wlQ^NU^E8Lqg@1~&{r?y)4gc*PntI{c`5zZ&J?MEYdiJ`i;fE57C0}@N7*CK5 z{qiNCDCP9l(8WKWHO~3}ka_PTjq}sG_b%BUxLH{6(P7u7J*RRnthp4|XkEBN^{;Zx z-+4I~*4z%g_2>dCQ)F*@$GVxX{ud_cG(0cau-WTF+3|l*|JH6OGy8W<*6ZEmxzEmg zTYmgzMNqOq&TJN*f47`Ao9Z`wiu{r)>y>@^yGt~`&c#c-v79oe4bLoC$9LPm5H$h_nwc zt*+nW)!Uw)WwYhh$E?`z-;W=zjJLM834XlrYM=W3Cyfig9lR}ke z-s@f`5I#Ssw1uO!^fZg!rjuoIf-+m8)J|-#iBT&PePqs&c>QO&*rHwMgm}F=KKO77 zMy(Y%Iei64@{snq{hI}@@A|yX=Z#fec=UYCgmk&=IEv7roD-Y4wgACDyO<`$EQb66!|N^B>!`b%dr$c>ZuyKYSZdB zQ@k~$pF0I<^ocANdZNU!K73o~CY{wOf|?nrVF#TWln!R?#zBP-3TKpZ zRg_ajBPVY9Sv4zn*3P#JnwZY`o#k1+d;d$zzrOzOEo-Z8C~+LJlR5g*@5zoov_5Tr@Pn-{{;|Ssxr8V=;g9$gljI#1K*?x;E(Ff^}V` z`s%B;S(R@rYhS4SX5Y=6Fx$W8>OD{X{9~`G|9*FOx#o|9&Fr(LI4skSu={rH%GJWK zwf#(;_W9REI~5fT>OQqL3HHr;xk8fv=_4VQIozzq)29^`8VmP1J=5pW`~UmakLQo4 z-&nWZ+?n@!n}U60$op?sPN)|xFWGWUHgap|dmC$edw$b*f3>S0dj)lGtyDb9y!)7& z9`nx+`{NyWmo-SPJmKQB)6!VDb5pix>PNC^Xt}4m~XuCvW$0H>uIrlJ8FY} z9p1LkdHu%Ny4{mLC5PmmZP7kcq9MqqyCVDv`xA}&Uzwloo;uB5{`|v|OG#>a&kFlo zj0;tKA4uA-G%uHU|Ih8;hPDuil?OhXUVK#|lItH5%5d_>%y&I%|9>%sG9)~X@YM_Y zKY!yd&z;RmjNcv|@0o2`l+9VLUKF+IR}afBpG$L>)XXYb{#2-?oqOt!)fb#2{u>^u zXsRe%BATNAsd+h%-SXwjm;SO!$XKZ=a5L+NlKqPR-`1>DtrFKN+_ST1zQ48924mKM zg$Lz)KWgdM{ZMO|JoVO`KR$i^nX+dyEbboNu03(k`(&r4U%pW5~Q z?IgPu%RIM!{L2_x_v3@&fd}m62Uj$mVf`>ss_?&GnWEdO=Ha*|D@}VQw zzPi6wuA4s3`f&IiALE}7o?6CrKNk5*eLtINXxDyfioD(ZuSE!WP@DP{Jrxytq}Tz$7bVadnnr02#pLPpg!>zJY* z&U$}F#%@n_SWfXX>*BoLWqNPdmpt43Y>k}#_xJbxR~fz8qWat3K5Eh%8*ZKn>vky` zTiC}v-n=<&{l}Y~F6Ul-Y`z~nLuTFG8Rw@+-#=rVI?2`{?T9o`z+xL@eehUvz z>694heS$v=b3G26dGL0rDBJP%^ZyA?;0llU@NL@9Le&e?B4jeUlX2#T=aDZDu&D*^6dDSQSAE#fRFn`iV{Z*E4?HSY$iSG2!n6JiX(QP>ON%|sx z=O@`aR81}i*P2PjlOHnNIwt?pqc`yTr!|FD z+m6qWeOg0 z4O4$t{aA8Rx8<<^+I4zjwW_tu^L(tbS`uxd&xvn8(&uwspEq~Ms_;$! z6Ylyg`c-)#=G&|1fu~lrPVc=jll#oBu=jcUi=Xo`e?Fx3@o*mFW`QszV-ek%qSFMt zJ{`W}JiSf)djG}hgma8}Te*8a1;^CC2+1)0p?Ge$vVzB)?-q)uw2wT#qHAG)B=%E8 z{fQrvYu9V<{C8pH;j9mb-zEJNIntW`w_TJ~(CgFT{qY5JrmwLtsop=MIG6Lzuftob z_cwib(5iXzeDBURdfzsh@_e%1pSnryTl#ukw?&3i%@=5{30Zl6b={wbPMgg8GWGOj z!?ymfxNDM7=UErPFLmzP0fzG_x9_O!Ro0fxTrvAq?n2LPOD=@2?mfqUe}zI#(4O;u zwBi+?7}=XS<(&L_rvK0J`8T$F^=CWY@8-1GYj=I_mM@<>y`9-tHz_n;%#J&tRImSm z>)d~ZLrzZ2xq)+TPFIfm?pjx1b4WNP@cU0SXWuia_McY@yGC&NUF+Iz+L!KDbIp~Z z^C6#bQh>y=9oHMS1^t&$f`_LGGl z7kR5J%|5wL@9X04Po6zKv2o=Q_2$PPQ?~w_x8z2*e!qczk7(_zO)r{1lsX-Ivr#Jh zVySPpT#&!)wItmLt^C6mRK(b|-kyDt5g;**S!CJ$A2$wYA3c90!p%m{DYyrR{*0Nt+VSY;fZeX%~qAl0L!MkRP_R~3!)?QCeKk_}kJ?td+ z+6>meDo2)ydb1sW?CPPZ)Wq!-->=sF(7a?KyNDrPtk^&3O}kUBvX<$F!4N?a^=10t4rPqCzlJ^F1htDPruds)8YGjm-Hy|DKGhd z;!HSGii3>>${>u7YxF=V3GV{^(3WkP8 zMl+HwoISu_xnIY9b{#`R&FK#_r7KT=uxH$2eEep_k$=Zomu47$Xr8tyVxF!^kJ63= z=9vGD`PN6zp2-oa%SiuVmCV=DXJc_Y=7H~N{zb0c@27l??qAV9`M}we{C|(CcXOS{ z`x`Ewz0_-_ygKtg%NO?k4}OU8ZK@S!pZK32+t9JGcI^2+Mg|5!X3&fX2P3>OoSa{j z3Yrm7Sj57pv4DXQe%tK`WlWjm>;J@nr|rG=NBLEEtUax@S+4q6Hdt&F5^9bpir~`x0qkxqJvh)lc2?iX6;pIYx}$;?!c)n3ayJDZSD_K zYTfwQah3T^#`UchPsIYVIw!qvOr6pBhI{4J9-iAb(i_5Lsx~|@_?Q*=F<;kd%ggz^ zJBt=6%<&CySNQ>!Jn^lRX=XDc^-|HE6>+;0{5KhTAN*V9#a z!oMdT_FfZqP3O#CT*$F&t*h=SuPIw^grxUcEW1j=wC}60xP`MAkoy3=IA(3=9GcNQpSHpkOo&BQorqkl5_o4gxj$ zU+iV7wyPdLC{i5ek>kWwn*69=-SOs}ux}SH&)u<`WB2}j)j>M9Gcz*3Y}viJrz|b} zk@@eSjZ$kTyZJA2wC|M2N-SEreR9U$UGHl8^LH-fZv0UgOsE{<9@BO^>DL z+DN2sRY{*=Fl*VDn+lSAn|I%Sdi~{_!d^VVkC^_L4W7d%+st9xB$&hphi`M*8<{U&iwnBv}VLBGAK zZe2*;$ng4qs;hBm_7TsT^`T!@?fd-jSqYpTqY=(TR61Ze&T;|EyPfS=O@Q=fp?;3Nc@o{k31x9B99Ax#hFu-s8*d z9e+t<%Q1D~%LH>685r`J85o3-b4+q+aY=seXr@7Anmv>K^P3DLj=lH(ChPIuW96d; z1~*3G$(d)4*}O>-=rUWVo7p`(^4s0;R4IPz+_dfc>OcLNr(P-Db1yUZ&Bh5Wn+0yz za`2qtiWAz#d(hj=G&aFw>Sm+$mWLHB5;)y1{*B!rvge?apboF@!4!@%FVlUgCzIMU z^{T7Rd|C3S>6zE`r0kEYlvw>LE(V>M(yAa6<*F^ZJgs;l^W1s+!}m|ssVpo}55Kwa zV%g#c(SH&`LM9rq$ae~>cQVTgFOAE&bz$C&xck)x3%M0%EvR_ad)Yt1QR`efpG1wftpTD;HN0m|0%^haRviTc-YhDzGuhw8>(q#}~ zU}NB5U|>*WaBG}h)y>Gj;J^k-rieI!u%eyw^GZ_lO5#H*3sQ??L5ViN8`Xg25r?*_ zGBPm4F*7i5Lv%sOBg_m8@t`Fy`rw5x=o;suT~H6z#lXNI#m>M`mWh5{J-UAMJEIW# zk4wY!Ll1dJzCjAz81(xm5XKx*h8Y7s9vyKT1-cPy`ccp7M;LKa4Q2!+AX4&^OLJ56 zNLO^MgBM1ihZy=frwC)t8(}vFeCjE>G3ci$B8=H!hTRxrkk2rTVMaZh3t`Mk8<;WR zU;!rqtR6yN1%@!9DGAjGL@0v|!kP-u7f~Tho0tqU4QWXgx_{6Yt01&zq`|a<7p)*I zT|qYkeFz_6#tAHuvzm}}BWmLSZ&o&tGGPW`1}Rns2K!bJ4*-Gi6QKYA literal 0 HcmV?d00001