From 1aa0488a0399cf9979d5d5947ec3060676b3e16f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 13:35:50 +0100 Subject: [PATCH 1/9] Added elementary implementation of dynamic s3 --- turftopic/models/decomp.py | 115 ++++++++++++++++++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-) diff --git a/turftopic/models/decomp.py b/turftopic/models/decomp.py index e6a51ba..a106525 100644 --- a/turftopic/models/decomp.py +++ b/turftopic/models/decomp.py @@ -1,3 +1,4 @@ +from datetime import datetime from typing import Literal, Optional, Union import numpy as np @@ -5,14 +6,17 @@ from sentence_transformers import SentenceTransformer from sklearn.base import TransformerMixin from sklearn.decomposition import FastICA +from sklearn.exceptions import NotFittedError from sklearn.feature_extraction.text import CountVectorizer +from sklearn.linear_model import LinearRegression from sklearn.metrics.pairwise import cosine_similarity, euclidean_distances from turftopic.base import ContextualModel, Encoder +from turftopic.dynamic import DynamicTopicModel from turftopic.vectorizer import default_vectorizer -class SemanticSignalSeparation(ContextualModel): +class SemanticSignalSeparation(ContextualModel, DynamicTopicModel): """Separates the embedding matrix into 'semantic signals' with component analysis methods. Topics are assumed to be dimensions of semantics. @@ -95,6 +99,16 @@ def estimate_components( self.components_ = ( np.square(self.axial_components_) * self.angular_components_ ) + if hasattr(self, "axial_temporal_components_"): + if feature_importance == "axial": + self.temporal_components_ = self.axial_temporal_components_ + elif feature_importance == "angular": + self.temporal_components_ = self.angular_temporal_components_ + elif feature_importance == "combined": + self.temporal_components_ = ( + np.square(self.axial_temporal_components_) + * self.angular_temporal_components_ + ) return self.components_ def fit_transform( @@ -154,6 +168,7 @@ def refit_transform( ndarray of shape (n_documents, n_topics) Document-topic matrix. """ + self.n_components = n_components self.topic_names_ = None n_components = ( n_components if n_components is not None else self.n_components @@ -185,6 +200,86 @@ def refit_transform( console.log("Model fitting done.") return doc_topic + def fit_transform_dynamic( + self, + raw_documents, + timestamps: list[datetime], + embeddings: Optional[np.ndarray] = None, + bins: Union[int, list[datetime]] = 10, + ) -> np.ndarray: + document_topic_matrix = self.fit_transform( + raw_documents, embeddings=embeddings + ) + time_labels, self.time_bin_edges = self.bin_timestamps( + timestamps, bins + ) + n_comp, n_vocab = self.components_.shape + n_bins = len(self.time_bin_edges) - 1 + self.temporal_components_ = np.full( + (n_bins, n_comp, n_vocab), + np.nan, + dtype=self.components_.dtype, + ) + self.temporal_importance_ = np.zeros((n_bins, n_comp)) + whitened_embeddings = np.copy(self.embeddings) + if getattr(self.decomposition, "whiten"): + whitened_embeddings -= self.decomposition.mean_ + # doc_topic = np.dot(X, self.components_.T) + for i_timebin in np.unique(time_labels): + topic_importances = document_topic_matrix[ + time_labels == i_timebin + ].mean(axis=0) + self.temporal_importance_[i_timebin, :] = topic_importances + t_doc_topic = document_topic_matrix[time_labels == i_timebin] + t_embeddings = whitened_embeddings[time_labels == i_timebin] + linreg = LinearRegression().fit(t_embeddings, t_doc_topic) + self.axial_temporal_components_[i_timebin, :, :] = np.dot( + self.vocab_embeddings, linreg.coef_.T + ).T + return document_topic_matrix + + def refit_transform_dynamic( + self, + timestamps: list[datetime], + bins: Union[int, list[datetime]] = 10, + n_components: Optional[int] = None, + max_iter: Optional[int] = None, + random_state: Optional[int] = None, + ): + """Refits $S^3$ to be a dynamic model.""" + document_topic_matrix = self.refit_transform( + n_components=n_components, + max_iter=max_iter, + random_state=random_state, + ) + time_labels, self.time_bin_edges = self.bin_timestamps( + timestamps, bins + ) + n_comp, n_vocab = self.components_.shape + n_bins = len(self.time_bin_edges) - 1 + self.temporal_components_ = np.full( + (n_bins, n_comp, n_vocab), + np.nan, + dtype=self.components_.dtype, + ) + self.temporal_importance_ = np.zeros((n_bins, n_comp)) + whitened_embeddings = np.copy(self.embeddings) + if getattr(self.decomposition, "whiten"): + whitened_embeddings -= self.decomposition.mean_ + # doc_topic = np.dot(X, self.components_.T) + for i_timebin in np.unique(time_labels): + topic_importances = document_topic_matrix[ + time_labels == i_timebin + ].mean(axis=0) + self.temporal_importance_[i_timebin, :] = topic_importances + t_doc_topic = document_topic_matrix[time_labels == i_timebin] + t_embeddings = whitened_embeddings[time_labels == i_timebin] + linreg = LinearRegression().fit(t_embeddings, t_doc_topic) + self.axial_temporal_components_[i_timebin, :, :] = np.dot( + self.vocab_embeddings, linreg.coef_.T + ).T + return document_topic_matrix + def refit( self, n_components: Optional[int] = None, @@ -215,12 +310,30 @@ def angular_components_(self): """Reweights words based on their angle in ICA-space to the axis base vectors. """ + if not hasattr(self, "axial_components_"): + raise NotFittedError("Model has not been fitted yet.") word_vectors = self.axial_components_.T n_topics = self.axial_components_.shape[0] axis_vectors = np.eye(n_topics) cosine_components = cosine_similarity(axis_vectors, word_vectors) return cosine_components + @property + def angular_temporal_components_(self): + """Reweights words based on their angle in ICA-space to the axis + base vectors in a dynamic model. + """ + if not hasattr(self, "axial_temporal_components_"): + raise NotFittedError("Model has not been fitted dynamically.") + components = [] + for axial_components in self.axial_temporal_components_: + word_vectors = axial_components.T + n_topics = axial_components.shape[0] + axis_vectors = np.eye(n_topics) + cosine_components = cosine_similarity(axis_vectors, word_vectors) + components.append(cosine_components) + return np.stack(components) + def transform( self, raw_documents, embeddings: Optional[np.ndarray] = None ) -> np.ndarray: From b1f659e8152ddd84e72f0f7cfaad07c821e924e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 13:42:47 +0100 Subject: [PATCH 2/9] Fixed dynamic fitting for S3 --- turftopic/models/decomp.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/turftopic/models/decomp.py b/turftopic/models/decomp.py index a106525..b92b820 100644 --- a/turftopic/models/decomp.py +++ b/turftopic/models/decomp.py @@ -215,7 +215,7 @@ def fit_transform_dynamic( ) n_comp, n_vocab = self.components_.shape n_bins = len(self.time_bin_edges) - 1 - self.temporal_components_ = np.full( + self.axial_temporal_components_ = np.full( (n_bins, n_comp, n_vocab), np.nan, dtype=self.components_.dtype, @@ -236,6 +236,7 @@ def fit_transform_dynamic( self.axial_temporal_components_[i_timebin, :, :] = np.dot( self.vocab_embeddings, linreg.coef_.T ).T + self.estimate_components(self.feature_importance) return document_topic_matrix def refit_transform_dynamic( @@ -257,7 +258,7 @@ def refit_transform_dynamic( ) n_comp, n_vocab = self.components_.shape n_bins = len(self.time_bin_edges) - 1 - self.temporal_components_ = np.full( + self.axial_temporal_components_ = np.full( (n_bins, n_comp, n_vocab), np.nan, dtype=self.components_.dtype, @@ -278,6 +279,7 @@ def refit_transform_dynamic( self.axial_temporal_components_[i_timebin, :, :] = np.dot( self.vocab_embeddings, linreg.coef_.T ).T + self.estimate_components(self.feature_importance) return document_topic_matrix def refit( From f7f09bfdd7c2f16ca8694c5fafe6450eeedb77f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 13:53:47 +0100 Subject: [PATCH 3/9] Added dynamic plot with stronger zero line, and negative topics when topics dip below zero --- turftopic/models/decomp.py | 54 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/turftopic/models/decomp.py b/turftopic/models/decomp.py index b92b820..e283e74 100644 --- a/turftopic/models/decomp.py +++ b/turftopic/models/decomp.py @@ -482,3 +482,57 @@ def concept_compass( fig = fig.add_hline(y=0, line_color="black", line_width=4) fig = fig.add_vline(x=0, line_color="black", line_width=4) return fig + + def plot_topics_over_time(self, top_k: int = 6): + try: + import plotly.graph_objects as go + except (ImportError, ModuleNotFoundError) as e: + raise ModuleNotFoundError( + "Please install plotly if you intend to use plots in Turftopic." + ) from e + fig = go.Figure() + vocab = self.get_vocab() + n_topics = self.temporal_components_.shape[1] + try: + topic_names = self.topic_names + except AttributeError: + topic_names = [f"Topic {i}" for i in range(n_topics)] + for i_topic, topic_imp_t in enumerate(self.temporal_importance_.T): + component_over_time = self.temporal_components_[:, i_topic, :] + name_over_time = [] + for component, importance in zip(component_over_time, topic_imp_t): + if importance > 0: + top = np.argpartition(-component, top_k)[:top_k] + else: + top = np.argpartition(component, top_k)[:top_k] + values = component[top] + if np.all(values == 0) or np.all(np.isnan(values)): + name_over_time.append("") + continue + top = top[np.argsort(-values)] + name_over_time.append(", ".join(vocab[top])) + times = self.time_bin_edges[:-1] + fig.add_trace( + go.Scatter( + x=times, + y=topic_imp_t, + mode="markers+lines", + text=name_over_time, + name=topic_names[i_topic], + hovertemplate="%{text}", + marker=dict( + line=dict(width=2, color="black"), + size=14, + ), + line=dict(width=3), + ) + ) + fig.add_hline(y=0, line_dash="dash", opacity=0.5) + fig.update_layout( + template="plotly_white", + hoverlabel=dict(font_size=16, bgcolor="white"), + hovermode="x", + ) + fig.update_xaxes(title="Time Slice Start") + fig.update_yaxes(title="Topic Importance") + return fig From 3f3b117c2a3da792d283c8b3a440d3a1c1b2f672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 14:08:34 +0100 Subject: [PATCH 4/9] Made dynamic table print negative words when the topic dips below zero --- turftopic/models/decomp.py | 61 +++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/turftopic/models/decomp.py b/turftopic/models/decomp.py index e283e74..ff917ff 100644 --- a/turftopic/models/decomp.py +++ b/turftopic/models/decomp.py @@ -501,10 +501,9 @@ def plot_topics_over_time(self, top_k: int = 6): component_over_time = self.temporal_components_[:, i_topic, :] name_over_time = [] for component, importance in zip(component_over_time, topic_imp_t): - if importance > 0: - top = np.argpartition(-component, top_k)[:top_k] - else: - top = np.argpartition(component, top_k)[:top_k] + if importance < 0: + component = -component + top = np.argpartition(-component, top_k)[:top_k] values = component[top] if np.all(values == 0) or np.all(np.isnan(values)): name_over_time.append("") @@ -536,3 +535,57 @@ def plot_topics_over_time(self, top_k: int = 6): fig.update_xaxes(title="Time Slice Start") fig.update_yaxes(title="Topic Importance") return fig + + def _topics_over_time( + self, + top_k: int = 5, + show_scores: bool = False, + date_format: str = "%Y %m %d", + ) -> list[list[str]]: + temporal_components = self.temporal_components_ + slices = self.get_time_slices() + slice_names = [] + for start_dt, end_dt in slices: + start_str = start_dt.strftime(date_format) + end_str = end_dt.strftime(date_format) + slice_names.append(f"{start_str} - {end_str}") + n_topics = self.temporal_components_.shape[1] + try: + topic_names = self.topic_names + except AttributeError: + topic_names = [f"Topic {i}" for i in range(n_topics)] + columns = [] + rows = [] + columns.append("Time Slice") + for topic in topic_names: + columns.append(topic) + for slice_name, components, weights in zip( + slice_names, temporal_components, self.temporal_importance_ + ): + fields = [] + fields.append(slice_name) + vocab = self.get_vocab() + for component, weight in zip(components, weights): + if np.all(component == 0) or np.all(np.isnan(component)): + fields.append("Topic not present.") + continue + if weight < 0: + component = -component + top = np.argpartition(-component, top_k)[:top_k] + importance = component[top] + top = top[np.argsort(-importance)] + top = top[importance != 0] + scores = component[top] + words = vocab[top] + if show_scores: + concat_words = ", ".join( + [ + f"{word}({importance:.2f})" + for word, importance in zip(words, scores) + ] + ) + else: + concat_words = ", ".join([word for word in words]) + fields.append(concat_words) + rows.append(fields) + return [columns, *rows] From 61ed9799046b69fcc7fbc00d3f20ea3fa1d5923c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 14:57:14 +0100 Subject: [PATCH 5/9] Version bump --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ef66019..38ad992 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ line-length=79 [tool.poetry] name = "turftopic" -version = "0.8.1" +version = "0.9.0" description = "Topic modeling with contextual representations from sentence transformers." authors = ["Márton Kardos "] license = "MIT" From b02f04472eaa29813dcb0439cce7e3cf79e3ec79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 14:57:24 +0100 Subject: [PATCH 6/9] Updated docs --- docs/dynamic.md | 3 ++- docs/images/dynamic_s3.png | Bin 0 -> 137218 bytes docs/s3.md | 27 +++++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 docs/images/dynamic_s3.png diff --git a/docs/dynamic.md b/docs/dynamic.md index 6693cf5..6a1cba6 100644 --- a/docs/dynamic.md +++ b/docs/dynamic.md @@ -11,6 +11,7 @@ In Turftopic you can currently use three different topic models for modeling top 1. [ClusteringTopicModel](clustering.md), where an overall model is fitted on the whole corpus, and then term importances are estimated over time slices. 2. [GMM](GMM.md), similarly to clustering models, term importances are reestimated per time slice 3. [KeyNMF](KeyNMF.md), an overall decomposition is done, then using coordinate descent, topic-term-matrices are recalculated based on document-topic importances in the given time slice. +4. [SemanticSignalSeparation](s3.md), a global model is fitted and then local models are inferred using linear regression from embeddings and document-topic signals in a given time-slice. ## Usage @@ -18,7 +19,7 @@ Dynamic topic models in Turftopic have a unified interface. To fit a dynamic topic model you will need a corpus, that has been annotated with timestamps. The timestamps need to be Python `datetime` objects, but pandas `Timestamp` object are also supported. -Models that have dynamic modeling capabilities (`KeyNMF`, `GMM` and `ClusteringTopicModel`) have a `fit_transform_dynamic()` method, that fits the model on the corpus over time. +Models that have dynamic modeling capabilities (`KeyNMF`, `GMM`, `SemanticSignalSeparation` and `ClusteringTopicModel`) have a `fit_transform_dynamic()` method, that fits the model on the corpus over time. ```python from datetime import datetime diff --git a/docs/images/dynamic_s3.png b/docs/images/dynamic_s3.png new file mode 100644 index 0000000000000000000000000000000000000000..e04fefda7852242d82f98d7ead99a9bde5bd8be9 GIT binary patch literal 137218 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%0DR;j&m@~+Oh zZjjw^;7!ZLY3H$b&R5QlnBSFW$orG{=sg7gbTQfYkAKznzKaB;YJ(Fans-s@!GI;1 z?VO`KX$hW$e{ARcBMq{iGOS4@l*D;{$ZAA_WtB`~?&=wCx3}DGx7x4qvN^gfOHbb> z50(rlRXr^y_sR;P(*(uy#NJ2g;efdotciUCahmWKwo=vcWPC;* zT0k8dVOk>}$yB-rt9rdY2+Xs}Y8i5(!PJS{4Qv z&ts3uxwjn#g+HP*ep3C2Ph?{;c!`jZxMv6nw~rUl!o5U+%;2w_0MNnD_psMouE}pU zMi*g%P$@?p9mm5yBIL|h)Yy|0nnDB|Mb>4^W%r|yVCF)29 zh3$N^{KNvNfOM4i3FQkMg<%Bkk;>ykKd2BmT68sQF?rZPn0(8lQE@6YWg?LdMI@mm zmoAyULf%>Aau8|@SHSv8Fddy>1k5{Zxuvw?a?4uclA9!@!F zaISDSITSLKRK6BhQI;dPA0mQHeMT4pstT{Jzq7V0&2TfL9LG532eKL!WUtTFb5swXG(R~ zZ=}Bv@m;x_HVgP)qed9hWWF7LNe6+U>cS^ z*Z%yJ>_W9B(d6_-2Aq`N?b^)qk<_a|vV1_3^>;K|uL==#zr?t_yhQWiZ~A68NTtw4 z+cc-%TYoO=9rug2u+^}s$?d9i| zKZfueU+`CPr?ca)lkD}ZL zduLkF(b3~DD_CBC5FX7wyg%bm9VICWe-|9qq{UlfHo~ORH+0j9pl}|F-vsCq4E@nEo z+vSU0F_qzy)&qg3o5Gt}VTQ8-Jr<j1zFSH01=5#b`%oG-z zoYBooOIaRn_sw=*`rOk_#*@+=mK$T;csgJvqX>wX zN>s7|17l2jvpI3c*jN)P8jLB3s;1?BlZmhEyI7&ofEM7^5-}hP;tWb%1Ipi^YPL6~ zz{L^A1qY*~a@$7z%$F~IomW{WIxs02%N~k3+Ip$_=;1HwWqZCqr*x2RAl2{;i=3|< zR+E+#A!=v$;-d>iWadkfuTqV_kVQhxUHwV)^Pb59QcmRW=uw_fGi6IV)oYF#VPAv> z_baB|`0BndYdx`VdS=Fu&TjEglU!$5T&EbFB|8B}DOSMU#eZQuDHcp3Dt6VMD1S6H z!~W9CFMT`091VZ`$99O$-7ya4QA787TvFL?O=6vTS}Phe8yf-_bQ0BUoIw;6`KH3m zBtJw9SDmA}4+Vtzaw3`4aCLv5Yz?(`7KA?^1K=k+?ED+{VBI`24K}@-{+PZxqBP(t zkdCn1Km@vcGtjFL9K${CsdonR?Xz?gL_`6s>}qR2PR@W@R*ic!NKk$%hU+|mg4+`F zLGTk}7hTY$P2fb&DXF5sSqvO4Y+U^rD0Jr*`(eD`wTZ^<`EJy=N6iS2xwv0KkG%OsPkvF`9UoT`iSPUQ`Ku^%#2RZJjh4uUo>kr-B2IS3mC&k$mpV}w)FSw9fDz52nhPt#`<=| z@7V{h-|`H7`4N}Z&gFs2JM-fNeFdUQutbnb6W6C*K0{<2wjyp=qidSbUhOG_^r}*J_#3_0%j@1iOSk!=@xTx^&>SKPZF9z>ctN_tm-r7N z^N}1r%#35}T+?Qx)#*1*7~WeyhReE!=A59;*0P1icP`|fVbE}bY^8iTBShj zqh;A8Za=_avTaRk0p>UTYRQZFv(jXJg@jWG^u_xvo0 z8vpRpsg{KJqhOP0MS)3Ji)^m23_FKn96`=sOnWZ1#@lgpSEwM=Fh!;pop$aXB!-#k z&{_2sEu$KyTV@IU>x+~%BH0`70v4$9?Lh9o$)P|sH0UVixIJ1*zSavgs0{ZX3Y|MJ zn#dI#TN)pcl}Sq(9L^4Y^@J>r*BNal5+#dLH9uEj&eFF zvYDG==*OX@@gBla)1kX8|D(%Li2UYuXIH}3JRFm!2<9;nQ8}Ies0e*3mE-=ET*QS$ zkqeM8F)@J<#!suj)}}tS0HR980d&h}wsq_In$9AX;?9bdLt?hzHW_Trtp>v~{I`O~kCKS-c`8nigo~-@WaLNm!w{dWR4saS12s4N9YDe&1 zuajs`|5L=|ki-N!4;oD_pseXVOdlLZ-6iy$7bf>v@Kod>?{@9#Eh?wQWCtL88&1vy zFu^pKO1~p|+xFOrOlOT#%kJyQlWT)8Glr3v%U}!llxtgcpMTZR@uqh3YD8?^wJSfR z0agG&@lS#L#keRmY<2LPv~W>whtC_~TAa1)KVAr1HYn2pWIe?HWJ!_w=AT&74hbNI zqwGv+ngtZer;2pSDoVzsp(z`!1Q+^16ehJ4wfbW&sX&>Hao(9YfGY#}d%?nU4G4Gp zg>VkvVOSP_)uwUmWd&FCQlAeIJ!~SMw9R&W(vX75)8kv3A)ll4u-%{MFMn=?kGDLk zp#jNCmL$LkMF0u+X(Zr$XxbY~GwmzE7b7FS{j!7Na7XvUJ<3fRmfsUj7|qqf_lcs@ zdC+08!I8pTkve$Yc0}QKU-D8LMIG)pi~At!q23OF2lKyi*$ko~TiVh;N)3(OVpeEH z2M`Gg^H$AEGN?bvCWggKvJ3!(ttW0%Mv%;QCjSykdcJUI>z|)(@=dWosn)7y5B>j` zSC)A98q!dhaJfGFhl}kmVi!VHMTX7Gx6zqvn|q&VRcSBD)0_a3#%L_HbM-2ya=&}D zy3+Z34H=XJ2wCdO6B9VTzP?4!#u~G=3ImC_UwcF5cY;U;vx~*aO*dR@`PDt&oD*XC zH58LKcMz-NzeOC{ixP~Zao4R?Tp9M*#N1yIWfj(plU?9Pgoa3EJamd!>>WpJC%quc zi=7{+HgLYAlQ4;;oxUZ@q62PJAx*#tC4PbcNoSyw)6)cPZEYPbg2Dqwupm|!%!+H~ z{_)Hw={4gqoa|yA`~CVyp&XTNT{{3fJpYst34k7*({Eh7k|1i3&FHPGWr`R!*9nQf z)7{9VK|>qz6GVM~fBzH5Zozj|#(AAG2#EfA`ucy^C)fQ#++4kVoWb-L%uT-mp_0XV zO^hLZ1ND8QcztBSXnP#xjI1=GL4+XK7zVTY;DH5;~n5brEDaRD|rF@7FVE4fRi zp|S!7Fh308#wMYfwHAS#meV__vauW>G^s(~7bSUwu(-YnG0Ak5o-g6mqB_79{+a(DwY<6=w^$zf(@)weC= zU%&Oix1gO*T~OsDyyV&{2&ZHKcoQlMWQdoP%HHxmV|tfSpIJzF^2bn*O?e7 z1p^uz8^dZCS5~7+rN!3|_-rv=)}wAp;rFJ5bFW@3qjcZa2lg+v29JHHGSg`|zva|2 zve`VkwOb!Wq=vhq5DLB<7cw-GH>#2M{}E!gi#PBe9PmYt`J~5Gd-@!ke&=`im1X_;Xw)!VkpS#L0p^1#0Ofvhku6Nx0W zs^wfEzRN7(4|*@=Im*IZMv98t7}XmQ7p`9Vr=$=|5e`L*2z=}q98{c26Ocx}SPL6= zox?$5ohWQ|JIL#M-yo|IG-JC$?|byK5k!|b)sDV;nW~JW`pqoP!Yoa(bI^4VqasSjx@5XqR1dMa~SoYovODI z%l`S#A0(1#hI~OiG`=zEJgkW6v5?t80RLtD@}@w1*$$|-KR?{@437+h$jI=RPVwu| z6A2OlgkQMS;9I4&oJO*ySKAL{E-Yatn&dg7Fx7J0q7avsTbhTf-6n&ncg9#&!wQTa z7coZ2G{JNS0%wmtT$$c_kGH{1TbtF3otHhUiIr3gBN&fHGd~{sEd4u`{d}k(jfgtXC5z+>i9-*>Dj3e`3}1W z0ai&?5%&Zw{+;U`e;(s(NM!ipD~d&~y{(|p(%r8g1HTk3)(DAV?}lV~(FQm#U>TgB zC%miB4-0eP+TZcRXAh=>cOv1Gf8Gi32T~k^Q%8YI#cybdF_u!B-Ok|uhG7?ipyXd@ zq+t)o*!T+9{vO>?LY4nukRSiaARCPtM2AJ*u5~^1SPVzc#AK>{$*kU>Dn zUb|j>3ncZ0M%7~96s0~|{1XOtpu=(g3kKGVG@bFq1;l6;L9g@oLx(vZYV-~zpyvRM z=ikc+HkN7527fG4_nI2LL826WHs%Txz5pJrY_>=U(7L|wd!6huS};sZIzr$N{(l7M z!-sXM#FC}JgzBKe{y+amKH~xIM{nAvqsq^N!pUhV*&-;W7>84ep_y$|6kNlaZJ5of zvcg4plB`~rB-BHc8N53XX^MM z1=IOUR?=^6WBCyIt*eu2HFZHlR0alyNs@z!A}$M6rbxGgAeiQYTY*X=hmE_S=n#3% zYMYB`~1YFP6j3n$-C+D7$ z@z#Xg#L|WLBlRspnXRAwEf~q{4Yv8ou5V#BnV65+IL$n7VU)ertG3Y|e%h9-z5 za8J!cU%!1FwzCJPYt&FfmgV<8bKdp5`R31CN#yr{(J5~QgpqZnEbZ?x;@*2V%qz?m zX~>$6s^Y49{q@{XcR2eNI3R(3{x6>39V0A96@DQKv3mi|8Phv}^kx`7N*ifelN{%7 z7Qo~ZZjd14g`P6_=6C?z$vzb$sjVF_HA41KOVz)h^j(*ad?^(VJ z^N;5)Kg-JOZc2F+spS1kw3qBmjzlj~A)79bC-q@4DIEPT5Y+mG6ZIdE110z#=C`3M^y=-q`#k5?1zhp`(svFQmFC70V z=g;KTkBQIDs~4kw;zDtEve1yePy!E1&m1Xq(OnR{jgh`e4S~hq)=F}6>~8oyanrO# zxdcn%*^WaW3(l2TTZKHj!gt`w1nothw@`%^?Ck~b^TtTjL^}7YUZs|z=nt>T?Y{Q| z_E^DY8A+8@V;{Q`_zJ8y0m8U@^q!^y013l%r?#S!`R}-Ev8ew^h3_nvwc(6YDbN`vw@%^35 zz-kvE+(M!7>b9vo*jVG0rhKx7hv)S9&>$`>B+AnbtD8JSnKo=TuQ%{cwl-N&C7%FH zck%D~#*ySmDGQ%8&t2-xo}<{+(aMt&c|0cc*fBaPC*WVF*Xbt_3;rellM@kV2p`D6 zh|Qi&0o$JbDkstj#y4+$G&FrLr+mmSFi^&S;5R&y&Hh4r2Wk1n#Rf_^DEHJd(YG5* zEcj4o7Jm@tA)8r`MSey8zRMEq4|J0Vu!&?caTakee`l9grxe|#l%yP@ocs2?mPfjN zwOd^1owIG(>9hqq5pH^O(IYlJEU9d1+*22vo2?t%S|Sl(aWE}3sXFlFW36VEuI_E; z11#@l=qqVuW{yw^?4ub1o+=Yz)4l~AHp(~QzeBerJ?hjtf^mc500&kJ8`a$JNK z92aOb#@nRhh#Vg9BYHmwYKIm;nn`CKG^VaLXF!bPAcZ*?zl(&#iYVno7r!#ZQsr$< zeby4PtjhQ$v$0yQ*U7x~5(-#EL_{KkjfacLN#!C;Jt(7iul_K{xSP(-DJ>k4G;gg!vS0#2b^HF|2;-WH~KqReaY3(@w6 z?Pe#CKgP%!K(93Y;Y{6W^1YXIR(<% z!Hls$SjF8+fldGRO-IyEe5aXPgPR(H{0!yw&u{pj$&VH6H4;m4=EYvwRMtXjaTI>9 z1b>A)_p-y2)(Ns=#gfHTG*Vmt5+0E$=ouy!NwW6mWF3T6XuHyu%wdkRF;Vg-88FDk zNd7Ldy(~eIR!)b9hXp#VydSuPSgP~&UjcMD04@Cmhj$MK3|y?9I8qycpZB0`auu{d zgoUneiw{a18l#84KfaFhB)L0vd|s=~$pNMt|Ne!u={Fb_gqq^?stHUoZ$5{>)8WkI zb(j5WSLIfL1}3lDBG&5C?R1aEClRVHMWs$9JrU*ES9x@7K1_m(6Ns61(>w|tN8nLW zmYv9L+?%W$Dge$Gv2eDGn=_9|`eaZ@4rjf<8SuPX77u-B9OACDo5HGnqR$8a02@K* z6+sChW|?GIfZv{1w6`-Lom}}D*GqT9q$XsLX9)1D3vV_S^D5%1yR*R-Hu`1tSva7P zSk9a>A+{`l_)g~c7H}{f%T0@}aHPH~)<>Ef zv-irKDFtY5zJ&zc`#`4K+q@+Hfu5Tw7q{$+UnC;30{D3jRC!RIVou4r=blXgf_Zb& zBU1_OxHvIy5P0r7>#SN$b$o1vc}A#j6MZX)+LRTe1gf~lb#SK=vE%F)3b3(RK%V^_EVtH<@}JC8qhlh^J2uNTD9rb-J&#Ys}B&{S)LnVj__AWd$3W6BCCIxk7H4RYFu zxNFb{6Xdw%_laAj)+)ZD*&dnz+=Vc)%_+1!(;Swj(I&d)>6z zqHDms1szB>bSEmURw|=2&e2^TsyrGpZF^KQ`qE@1T?cyPvd& za=lXwHg%}82Wa%7;U|}A(U^1xutO^W6n%b|zr#8Tr&H%82?^j2jw(R79D`~sqH=Y% z+pL|ybfV?uSq|nCclZklGD8F#fFq?6ueGHxn)!spyR|$a@xIXz5h!HS#F%G{Ub4>M zldUF&iZ@fXVEoQR9+rjL+nj0JU@zPX(-8=j{0-07vrTuAQIj`SRglLrSr8W+^YxQF zUr$kmOepIh>U&gGhz-91%YIAgR&W)Zu6el77<%LFDo>09N|5gIpiW(BX9PCHvp9Dm zb7B?hW&!hh_J=FhQk2z>yFlHky`_y+Y{dJEKhJKu*G{Eco}VkVrhaK-xXGeJ;K%+s z@JsmklNwy~fUt1Ct5U)jLd2@8z?97y+opgwFynID-sf4SXhX*s)RWXgAKxg26r4YH z(%5pG*!4+fc@utL$`>xS_sJ6akd4aHz!USv^-s3WDV!LCnkb#7^H`QpG$hnu8_k&`T`VIh#1f)sRKP!HVwHP9JWu}iPrq#UF@^_Rk?NmsS@``JwP#kgR%1T_7?FlHuY$=Pm-+l_5gw zm{O5uoR$&Dz{S8ORh#3(i)4YPCTfJ;AwJFy>A5yN+AR7$^P@Yw#wks|RUU|JXKGTL ztj~u+3L<#UFF!W&i#;<{&zh$5qXzZ9HY6+}HQeMPC03Y;ntGcEML$AzqJ{7#7RCTpyO6!dfv>EDzLB&3 z{aH*c)3{FP@gR>3Pd*QT$vcB$A~Z&&1`{_3%a;pj8~f81_sQHW%hD+mtJ54Tt&Nfx zCHeZsv_$^G)eCstNw~ly8bU@x4HBL>zfJ<@O4zd-C(&lc@R3 zi!2h5O|nvm>81efwmg0O+b|IU&7v!qASmHVbca7!?4kDl?XB|xo`MoCw}QKaGkkJ4C=e9mJw85Ak_PNWrtPjBFt_3NxYenWQP?P8Gp6MXiD3e7|`bgzBFAG;D1m{(Z=!DVe^Qvou0`5Eo zJ-rDFaByYPiLT%Ga0VJfHUTO1E3_IF%8}XuO97|^S-tUL@)=++$qWJGN4$EQB?Luk zB(gLFmG&4>!0`LT_o{v$;pEiRnIk`PZk-iAlq%e3kg-wbc^m-n3h^F2bo%ytn14I; zSbuSAK$Mn;_lj^kC}F$`4h`k?pK-Uxg)e9SPCwtxn047Zk{|r+m zfJ$ECJ`wYO@kYS^5jZC&CpTMe;gQP{e2GA5jPvya)+_0ctMdY@yR9)xjE|4SZT|q% z>8a=jAqe)dJ|R1dW8$$k`cdKcCRqkgM&YG;Z(}M!`yEQg(M!eqDz55|R?*T}LE1`k zVkEznM_injn4hm)86?r+c*yik5*RuG8`xio>Ft+-?A){K)URg0I8w)s>R*h@q_C}> ztoQvx+AO#I5oz~>y&jJKGUt6TmU@*@=$4j2F<{bI#ZKyC|D8+p0@fWhi^(w2J3c;f z)bE|0@bs!B!hvY`1}~HUKc>zxth1NxsRd+mkmTIcUP_kR^UR{H-ac;yo+8A2Gi{H~k_Y`LKM*{vF-4z2eO zj@t6&XuV)8;3ZBwj`NO#R5mNk-Q$D)C@L0*hZKQq;JBI8a-PO@Hm-fDI_BB!MJLBq zP!fuY*1@_^7R0cCM||rJ4dm`KZ(bb*<1P5cQQRNN^Qxq=R8_A zWqvWg@3|E|SJPkqw-kFWFc8drT6J1|r|vW`Ht5cKhmggSl}@uZ1`-wpmvh-s8MuNG zbpOAdOp%=KvsqQGfQ{VySk3W&p?LU!YDrz2>YRVEK{0?5&6%s;MbmyWMa1#2T6SJ# zS+G2sMnk)UX!MH1rh^jbt>KP#?THag;t2OAAaxQgrH5>*%npPp^M%;|ub~2sutJ3-~cg5wNIT@&RG74}7QWk1SM`ngG=Qa~%Q+eJE0T(a%`Lp4GSqLfUAx(MBI z3Aug@dO{$?IF06zn%-I?u|ND#odrkhIv=dwEe@QFMfSUuOFVpG2XjkHRi`WOI zRnV24N@&dA{oZxAf$?%e`Z0pr#j=m=>|AYqlE&@d1aa)Z>_==^R}_gJ{43kmvd@7UsDX5Zt!YddGA= zPG7JI@4PD4s?x~`T91(KGEfrd7{R*w-Kb+?Dzn`393-v>IE`D+AfycmEWWRUS?uPq zTQrIexrmMU659GT2Uc(a>x+NZ4+2_178mShof1WlrTsZN@gLpc|4UW@rKMw8^F#id zb)*G=v5P7JPk8^1kg{%KU;E4aX;-XLKhx&%T)?wOmV*{vDp8kluo<`kx6wCC@=3^n zP(}MDh<2EPNj`b~n-pu;_&2SOqt-LO5e}~g9$SgzxC32adx-!2des{N!1=RPLbI)v z@2nH9;;;;0afV^PJW${aj-Y&R>hD}+*z$eWf~`{6V5{YuOMcDD0JZ?x@n_%ybN?5f zN)oxvKfQPG{}=S|IA_hctP`pAt<9v<5IqcXe_rC0-OwscZ(iRp4%b2b(}G#B0Q#ar zdL-!E+16Gp(beyY+`m?q@x8a>>|X|oY0T6Fr50b2lZ3O7J;U0Ihc{qGw+Jj~<%WWk z@mIo_Nq)I72DlzHaoW3G0Z%fk)8;?~H2&xiU&)IG)&|NE3&GbFVYy~6yM9J!)V$zN&!I2gusYLYu?RktUKj4`3 zdqNMmPG@`W)&6EQS@Y2NgOfD;zHqweViWTV7zCj^xw|i66aHrzfKvd=AQlRTBzp7O zFWOgg<^9!7zE9A@UQOZXx+P}(_u`Xr&l_T3Hrxl{oaH+DUneXy!e?I7%yE{9HFy^G zYgSTcxV?HQYSzb7-lZZ08TP#yfd~1mPDkJvo&D8hIWRYe?(gp(7{&`!^9N+7S6xBp zs40Q6NxI(vyI;J^;eiHyyDBd(|JK&f299R^_IZJWeOP}}Af8RxXk}q>?`Kyf%amSq z;8soXpQ+}593>r~f8}mc)-V$y)v|D8F;~R{1nVL^{zii+wrI6cYt19z>uVeLN0x!dUwOn-Qf4C(Ogck6x$xPn(cb~Ul}xaLmIvE z%BT{Hm?`^81T})FMi1w@l~U05D!VR07KTq>A@pvu=alfUe99r9%n(tY2y5 z0|Q16h3K>`p&l`X0#V|lTOB=WvEt| z2J(yqUHq4;0ktRzK{WJg^xL-gn`R6~= z>-8tntkn}u`YfZAF9QC+ED;sps1pZK<>*AJ(c2NpJ5#swcO>2Lu$8k(q)DxPR#0Cw zMc%HXX$Vt!U<;LX46u&DcLRlkc##EWG9iFx|4$|m=Cm3#(~<`PhrDAiw^c8lpo`f| z5I?a85*dZ4Jw0CH2+8_knevv?cv^?>?>QmB@Z5;ab>Z^X zLozTjDBY)j<*D~a09*~V;}QOsT<-1TdF;AW|J)t!{zL$+UZMIq^2DBm!?aYI9NaI_ z7!JeLZTs~-foRlft)je=VZRuB#cm_^G#M!!_^Od-@g!v*+~%FPkF}qWwF06vvy`rZS92P@MpmqFC*#-c3HUQ2Qs~i8eTyJTo*#nZ%I0KmzA2FBh3=)XlS^T zJz{Si&Ei+n2bplvK~_D)rt|$n>W~zWj;43q{(RV~(C*K=51){`M#*KpB-wvj!7xKQ zBdZixknM4C+>^5jU4pZzG?mq;!?F;;=T^Hot3wmuw9~(SzJ<@wNU4pLd6C%nPD%e1 zg@`s~oBij{Ut>Ku$l?+5zX>Uc?_%mcSo$#1K2}+xkTi;~u-)$l@dp3SzU#BzegkiHHX0J1?W~Ih9|fP+z^WkGYOAD0?Jdjpd%e zPRgSm)hc=Av4@w20ROj&iu3KBJt3bT5%sqp(#=VmKRzI;+K2}lF7LExB-?iHSc)}u zVa^7@l^Z)a-yID&(0&M)x!e}gk;%q~oEg@AZjqmv zibplG9piBo;^cO&hh|i@ZH&b9+i*NEl_!zotFuURYqxovGlHHgyhs$jr8Wj+;-T%D zPU8*9FTRL&tvF|ci6haSO45D%l>n-vuV=8j=TS%uL;~(uOv$h&lano=sK}7>%v0$Z zX{njSySb;{v~qLHNG`uJ)9n{LB!&*+_RwR4t9plbEkYhI=&Yygp@OL%mzfo#fOZ>VhTu|R?JuRstsAN+1S{s34?S;sFK>n zQ1aU25H(4Ro-(barKL?wn;Y1YSKl{Ba<4zGp`$I4jL$NAtoZ5FStPS8T85_Oa6!|$ zr{j+cdS&mRSUDpfx3!a8yIwb90fKc+o`Se;tWI&Qog-&vY##x0+c;%qE(laDt22gw*rrqA1e+f{wn>4?=HB&JvN7yJSV3dM(>Pkk`29 zZz&ZE-{Wbv*zcXi(&*rlUU33_2P5-%HzZ)alp?on7pPcnf2up^N{3Xa+e~`%=X7ty zU{btX;40Qo&l-EFhaViF3WFs+ax+0W+uKGH+>XA|*eD`L>9a}dgMmp$xFxn>E>ZXr zjhe+G&C-jRMar~jj5ls_+hZJ@l5%{!vgZ$baNU56caaaAx~d!T1TtJ>4C{GISyJ%E_Ob` z0pX|8(Yj%IgT&=evBp}fSGdK72(h(mzb)PLZXJNDt^w%dcGD*2K z7Z+LF8qU^Ugz}Dxi;QTI;MMDTOwi7g8Ku*$nv(8v+6IRRZzJv+Y(4yX!A_k%RbQb; zHbE{$%JlHT)CrZT=g53J8TV3fx$xAS6QYx1K zo21FBneuO;e&{yES}_>5+5CO2>{V8hc*8DqerAZ(9`HQvPK6Hnz7A+pWA(`1^a{ns z$!|{O5&rww`*UGa7jKKr9BTG_a2_+&BSW_F*NX$NRmZUwc@KC^XuxJ|xqO}Ah;Fs+ z$VY6r(a-R+bQlJAqluGVD$TOdGf6!o(2CQxsk%Kbrv)YUT+Os$u3seOML|I!B#Hck zVXg8>jUk&WLtjIhu`rv&Z$5ZPA96uhcrdAsd6i|1h_kN)=U_;?7>+x;xXk>h`ebhr zyzr-$4g^{~3dlFR1|pYGc)PskdA(=5r0(l`x)U8+pu4b28yi<9$FsiJ&ut`eXj#hi z>uBYmRot`4iMc#~Qtm>6`y>1kymn;*1y!_P%EpnHAnY`%p*9NWLWwHVf0OGC+mh6K z&6F2KASW_Ty{xe8&38Hq*Qc5-xX7=ecEUDoPa@^O9K9suCK*R4qr-{bHGqSIhPE{T z0-c_VWcW4S5R4cVipuAkUHGow`XK=*sU=|}Wb7?*gXVNr*xrp93OXWKgsA;blHGbxgy z>9>h3_DKnKeRax-aY>P88NqdiPv!a%%>5(W3E=m!wPpF*w|)YO(jXlwUyV`xuX$G+PxpowK`>>NdMdVP&u zbKGp!h+~C;@=slTzh~{vICL3a-I{Fie49?5glK=Q&sz0Dzs3er&aw!}IB)A4%D%r{ zzQTZU^B6q&Zrk*Tg}haJsFc0IOJWxG;7`z}mm~vMk8*M}I@;M2A@#H1*bJu2+R(e} zaiRkxqo^1WrvXp6&Xo>6=gnFD-CsJ?5D`+@1<|1Q{4+VZXs=7xCz8pomrb;&=`Pn);|7T^9;ZvmRPi#TpLCPK1=p!=sQ$%<{ zoq;ha7hH0y5auI6)YN=ABV~$t*M}208Ch9H;_&`RGRm?_E)4PlPv$|@o^wi^=ni-twdRWv`o1qLDlsiB{2SwW;Y@~vr>`@6^i^?dRSRzLt0ni| z-zC`WK$=UBrbbEaJM?8nO;TCxS%57oa<%O-4!!TPdNHC!JA8jmO8cwIQU84II{Ew; zgq*HNA*}rrR9WrG)wOtyG@1==mc;gxMnAaa6RITpCx}0_9WrFU=n_|;#ucFzYsh`B z03QP`rwyh-k8kAa>VX7NoLoEhtzZRA3v>Z^{@2&1=py_7kG7=LL)6&xF zpWMK|)VT|JFHw2M2kNu_l?tb56;hq%7shE3j?bT=?mML$s|QR|md3Isc1D}Lc-~#e z@Hwmkb=w>c<-DNcGTn1V_4Fb!Pij7>?}<9$Ub!dDoWu4)QPvN}Wp*O=utxamOf?!K z2Riy2R@9D!v{?%edhoG`q7&cv>wljl81}@F zoh>!LTLY6h8}q8HrXt8WgrDNt6^;)jdnnNTEpwT7nAWLYG$ zrtfF$Gz%vaGfeAk8yD6SfdfTO|1075dz2w>KT6 zhWIUeqamy$&!TZ4dlPvYZ4IjIg6s4faTCiCOraU$XSU+Y3F>`at0(CRk)!}Y7m$hnwuhd^tZoaw9nhq9$Hq@WG&u_U>M z{+AA&Nj6#sgMN`k^9O_CvXUlTWgUJOiqc+A&c#{t6T<2Y!B30?>XtrkuRvpQ-jQ$` z7AqKj+Ggmx$56EelcDY_T8VHnwJ3?3hU%8w6LNFYD$Kb~jj8F$Gy!V~uu|mo+P;COT6q%3v}G^n*efyDHuE zuO@v_derdw(|U~|?NqmBW?H_LfqjRT`mU6*3qMkbqhmiS$;{p{m=R$UAD0SR z;@UESn=0=Y^Jps{js<(44x3hQItP>FSzCUmwyiC`k(3-VS%1HqtSl=o1~r866=?hM zOKOOVJdI6oKVxGLRgXd8NB-36%apqqh03sqJD*~3Xb-ZIw-W%prDwQJjpG%lcwtEX z5Hph=%CDknx`zjWUS@xDZuE2k$)Ip##+)>tCT zQ8GSyIXSUpa#;7P%&=4#qo`GZX=Q+c8-mX~_1P<$kOsE4a!qIRhIl`my-ibooWB4^ zX`#N#{}gB*q_V$TxVX50%r^;mNNEztqRSvq2{v7@s9aXV^lHR{$w10upjOZx7&A!^4x9=+2f* z#KqsY^ZKvWF+P{wI7Ujv6URQBui(_o7uVqEBBP<%&((Wl&nbz*$kvu(w#kGF;xRx^ zLc|cSCTi<_aFLP9YRE;Irj6Gv1Y&~T`Sfwtb05RH#kNs>jc8!;hVylGcBQ@)5Q?NA zM1b?WetiD=2dt=q_NKndBwSO-u-+~kE8F|dRDx0_gsjc!$y}>o^THq!E}>07q-|20)-;SsCs2 zhdF)whFyVXYHE71*@+X2&q?PN1`P#cx?$(Pma?HTU5pv6&VX`T7NeS9Rfy|o3^v!? z?8cziM#6p7Ys6H9$uG04R7-3o!CF_iW(bVBT4w4-EifR&-8fYS3+!wn*!>6+6Rj>h8HCwGN!?GBHcsnEHVQ&epipho_CeC=>q8HOOD`tj* zb#QawuUe7Sc&2Wp6j;etNE;onZX9;*O%Mpq$|g$DciLWUUZwcoXsr2>{%dizh2cR- zRHN$YaKBErfvN*mmsSQ z$@9ADEV40*S07sfLb*~zyv)o9Gf??9my%l_-N+5_GUE#S3xvDVMNchMIWJc^pGQ9v zW{%=2MfR2Ff1wo{_aPds{L0!;SltV4|6zG16J+(?^2D~wuMyxI)r}n&7)-dM1<5l& zJ*<+bDx%QMR!?so!<|UxiS{Y*x_A;3MtvfrgvReQo?f%IegeJXZx`@C-XFWuR6ze{ zQ+T%qPNo(zd;LoAe-A<9jSSqf&7D8TpZ!`Vn9SkFaShipnpQ%bUaMRBfFbsg+9|N5 z0MKN7C0f{W4KT$Ph$uT(1jJH;eJKbFB4(h7RT22Y>Z{^CP2FF^4bg zYYv~ede6Fpz!^TM_uv_y1UU;s4m}BN;7mS~10K-oX|#^#byP@S5TAgZ0K2B~gM*ar zB2&&water~v9_jlpJH6IC;y+ffS?QsJR)fPFF~fuwO~BZfUl|%a>_f+#oRVtQ!0|m zhJ9h%bb~fhLl^0^W09q0=W{y={Dv&Mdq2LGttPp+JMOL+5~$PPjgpX_{HGzenl9f4 zru=)*h=`4shyfh<$F`~#k9urNBbR|THuKBP9+Wt38~qSbMMXuymoS8w;`|>7C2VMe z;=JnC!G|r+V>6UvVIq#r?airJ&hG9Kz5Z{vmAAS=iqg`3S=^4RIsncVRs&7MaoR^q zKQU9Hku7e6&bYSp?`o!tNS~&>|>k>g)H{C|0GAKX+c+Qu)8c*W8 z2YEQL)D@{F+0BYY@Q1}`_%FQR%5*dcF`u|*A%y(@!l|mN(u_{@olCQ;vAieda6h4O z6Zyo?O&Ii#%fr^8e2V-u5+io2<6BiB>-E@cza!TrebiL*2@fNY4J)n7?-iSX+aWYP z9S0HxiWH7TX$`M%&2g*CD_8%`fiyEWcN&EY(4YDvP)SHfFT`nGt%%LWO65ZLXk6GD z6Ao|CmICln4t}tbuJE)#DE2__ZM3^u0p7`mOzfJW@l^U>-k&Mqtty%#%IoUl0bn1e zb5-Nt-eLdwfA$V=fHH;32evQImwQ^(@Y)V?8%-K`c0YFkc({@MCu3=O8PhzOg*MDf z|HM|Nr9d@E;kuvzd=QL3%23SE`pxhYMGTT`zxlYxs#@)Jh(>3;Q&9YsRG`!aRbY4~ zf% z%l#pnv7gzF{gL7#)Z3~+a?(T7IsB~k0g9y4sGvJ3$u8lKtIuD0HV!CKc785=AsC=a zFn8$20@KEFNR>z-?-Oyz0a!?Ecw8v;a1^2_^(qZfb#-++!(I%K|HnJgW{3L#a8fo6 zYYvqo^zZdw^WM5H`(VnoTg?@kn8#A=DCTds7PIEMXHI%CN^J^;E7V;Xt<>t{vKWCK zdrRoE(9nQthTdL%=P4PXdDT{wr6}FayFj3!rfaRw#W(DgDEJ&8{XiPJr1PIwIRD0) z^S{##OdLo*2-d65fJVa4uw)>`LmFj(W*d7k}+8}i`a zCmSI;_kSV8S?TttbV{hP@F*KKQ=sKyPczsR6cm&jD!_IguNGy`#e+?~8Nqen1&hj#YE3+EcYLf82?G71$w(EoW5N)brg1 zA@A+&A@~s)tt!X%gDi2UH&KRLRY_Kl4>bPV9?CTs-Ftw~ot#*y)##*Zi^g)q)|XD; z^Jshvtt1an_+t8{;ryLxl2;gZtYU1EPS*MRkVG7ba2%6{$CS?vj9Dg|HFVY%*tS^kmH4g^D!%mliU*rzxNqwyq7_DYFeP9fj#t%HpqW z*`FDRxq6Tl&wX|b>@l|}6Z`U6FPSTgyBexm8|zF10y2N>Kw^!nQGV5%t>!WJBiHjj z^2OijUger{EeJ=tClPNxG@xo%;4~rIqk)o~f!y&y03ZKQ{5}W%js#^ANJXQN$*+uGrp<)gx`x8rS{EevHB*6(;n5jE) zz8W7!_U)#3feQA{q1&I0R(pbQWC9pubuYUtZDjqdbnIX67*}xj8Gmq7P*WMS_`hAC zY5xY^+E%yEeqRveiBb#XBkF1%w1_L}?OWTERZlJNRzN_!pwDBz<92Wpj;kKr*CB&0 zPjFpbU9|<;*yEh`rtP>M4(2tN0-zmK&4PIjgsOwjEE0S3l^-b$Wu!1Na~p@8>Erk9i8CjYk=(r=H! zgDp57q?OgxNKxCpTrKdKTKEU;zrs6(hL;KaPXN5;@%LtyrI$1GsO!az90}6tuMVyM z6nvxO*oIrd5cC~rbX1?IC>R-$Z7SVXlVpvpNI4miSsQL<=?V;Rr{0|HF&~~T^Pmf7 z1pRg!ZBV~n86>pOX6tbkmDWIaG#Bs;+Epx@z~L`e2OsBN<=2!1MT&J68edihY*>uX z1coG;DlgxGsr>W+-!N>Y?MP*r5JoE*KltUvii3Lz6*?FZC^8FNI!U0!j%t;D%^BZ_ zIyh_}dW*ENGTX7Ydp|-p{cMt5i9l6ZW#0Zo&KOsuV+LlPEMK~H3x}i`RFVU^x3{;$ zw}RrQd+ZiJzIk%~G*^G>j$BcJ_rvpsoRBC$p5Tr@usl#eR#6|d=gzmFAe-I8?zh** zLuWKh6~2hRehv{BGBPsnS=~ugNpZ1=j0}9^4w>_;?CA9mA|;zVgRqDKk|<;l1+ul3 zRlV5boOha)fh@gZ$&@Ev;8c$xuI+Us2K6n2;Ue_EmBq;bUDyY35_46W%#vG_Uq@d& zp0ABzzTQy`;enFWn}Al&%E27$X>6l93Eg>Yme`9Bn6Y8K!onL=y|>R{s9cx4u?VG- zEcCW1)M%6rK_vvJyDyu^(letX$ONv~j~uQyDBs3D470+YiHV^*cD8%^;oUE4u3t7` zC$+jlaz>{0dLn9Gr^z`vkxTB~>&=c>Qsx)J&*$W>{YVDCRNyaGM%{?L4=no~J1xHv zBVJXQ+m0c@-`={EFIjx1Lb-%^T31BBKP2F5sf;h^rfuhSIuC-?aO4k9SyaO%I5T-q z5uII{8$7PtX0_kt@rUHT#}Ers3g52*i_5)t;o6E-qDW6${D=1+-FPm*z3ZlUT?L@JRXPO z^9%EH$GzAm+f(5E*vigtUR{rtZ~Cikp$cNpEj)r3{J-Pc-tz$UKDdv$KwipLUvgkJ z|MT7+25Z2S0hi$|&Bam$-a0icZH1FTD+Y7---NVW6kU4uRva^PGx46fVw(3o^$p+1 z$)tOyKS!oqIJS2#8Jq>okb8jQUEm_2+I9apurlj}OK@sD)ip;tL!rE1_`c~VIJ8DI zf}WQE!e3%w3Ah#MLWCP{1j(K`o*ZDE>?o1cWG4#r_0fgSG(z@0N-6u)M4ygo!mtAlhwkcPAkR~{%V0i zEZvXSXROjmU{CVFZi+A!x4Ttj{^D$JWN{*97k6zjz@Df%pt``c69lV`=U;8-FD|47 zW3$re%2!%tMp|l4XMz?DZz|P)w%wuI^T_BIA+U#Z*M!S%Gw=jijUbK*8 zyc>W9kLR0wL7B`|UXX3Cohkz#q!%n~_GwFuX^f;1o}_PL2LoRwsa@A_z&rv~XL&hd zy`#em%QA1~*Dd~?$4h=#2n7ns#Mfks^6W(L$AqNRsa}6xWD)TKE|e*!k1ZlXTqiI= zTPL6Vd-uy|zxYSv<&8fXERmhijrpbrDs}$$KAt{aCfZYv8G0?&x$3|DAEZK>&J%)= zd{JVdwDExuC3EwHB)m55*>77t52E(3mE{FRaT5xaPBv6boXEpv#9ySOV6TKg!WphM z)o2Ll1>ZNAH+sWZ4umTs1N3`+zFqZ&HWaO9s?W|2X;s0L*BD}BXTEqozG3`^dNm!Y zItR&rHF93CoHmq<)!A76RiQA?EEo`Q1Yey>5?=stDv#bf17e9jE>q?t@;uLk?CToC z!5=>iL$efkVS5vBp=wUSC>U9N;gBUEONGxO1I1U2T^n3}(+~=HrDC9UJAXiHI0}ZF zt{<}sej^Y<1vn516O~V+VD(04q zcQBbn+ye?Q9_L85%$xJh0hZmCD>jhbZ<2>TtKam-gJS0v9@Y41c;;7N<`Tnfr>pCt zH8+C(I+ukJ=YcMi&ZAR*$XymXPF~=Dc>xxBUHn=prrq`xejvaS8*%xl@vb*LtNiOUs&+OUb6;GC|xwAahqSg2gcH-e*s~RvkOv$o2 zE4n43NRR_F)n7V?n8||dejw~ZXd&1&GwfrOI=bh$N zBS1nJfzA}g^wk;AuvWIUpI%o_yb&z*aajG7)+sp_Gvd8}38pyMyUiOaz4{frZHss?y zTk+3s{!D2tk`J>|EuR+E5iD{J{2O!SuZMn5eI|+Vfwm2Z)f5 z#eaUQL-C8GHGCGnP)~KgZdOSbNRLjxhwqy7R5j=l_Jju)k^I`W<*-1qySg+pN$KGf z(dgAG18vX~8)|=bPNP{%xYcv_T7a_2G(=VWr6};_kOQO_cK;wtE+9adhZ7K9K*fDd zH584q#tkRveLuM6_lh`gU$Da4=qT)sdV;8(i{#Ks6asu^ktB}nX0D#Ug)ncwkY&1( zj0%|`Oa*cc{L_Zf9U)6j+DZB&wb|>VJua^aPk2^pzX`#Omy)Z8^2!^ufz;4`>`bSx zZlJ%(5ArI>;iPl_pSh@Ef@!@Cg7c2>oPY8lWCJPUPp1V>??P8plW%m!*ejppW{L_D)o)*>8=`k=u65ZIhTZ5f^qUyuYJu4@YjsJ~d9q`w%=&x*hT zM@K)XqRPqP%7j7311y#PJDcs%bgC+g^KZ#!TV#@=(`JwveffOmCzDm=VL8w|%ddunf7Zp+QMlO;Y)?R5aQ>e^}H~Q&?bq>? zWt?9hfP~=u@Yqz%o0P?lXAsI*2)OXD*7JBs*NP1Q2etq)M)==|v{)OFCh@Ib zc%yPH>MU>)&ojz2)h0V#UBJL?fP+#%4t;ht^cJVgLS*oOrFZ;i>AJ@S`Tf}x3@_oB_(|ym2`FGv$$%MGB}R?y@I`d`eu3x@|t_5Tp~as zI|!eVQ@^1H5;(nGx;JkwV&9D2)U(w0{h-=cT4<)4yq~;2*vHs-?2c7m(IBHEiz2GM z+Um~g#Z?Y$N6zs4J#dWK^LlBpPe_4Pnrj$h-VUjbv;^NXKp1ckDvfee$^b8kwclUyt%Gi3Wjj^0uSfPkb6aLnj zTtS~<{a6WgHZE{2cLXsM`#zLB*o6HtqbLRT$p-i5-TaQ%OEGzGPkeNloAOH2P->za zQf7*1HG9rcWJlx_^eZ}5wE>)FpwZI8uIuR1;YF(LQ~W+C@gjWv^LswaQKlSI2cWam zwo6pK1uSuLwu@GF2xzwW{P($Qym{ITidP1see~L!zXc!7?xLe2 zBMN#@zSU;-2bM>)k)%!GPYV&S+H(pRyqbd>tWogkP&(PI>%oYlI_4r{Q1m<{?>w~d z&uG79erfQB+L^x6pX>u~XEylpg0`DD7c-dDwNE3YwD_8Y-S-bKan^@xtcQZZwEK4|rZwzd%}>Yw(W~3e|TVdRS>vWp5Bs z(+ep605FDzMK9cQ#pjmp0i}d6t%UVVhEsr(Wr=3d?nTY%8Qw@d?FPzB)`^lIPeZ3b zVI09zV^muYA?W!6WmJ8qQz{2xaj+%-d*^e1oy0@H$-Vk>&&On6OFdjNmdu%Ak}cCz zz-!RmkB`MH{r*W;{Of^twBM>5e9~)ANk{aR0WOIinQf8!o^YY}8`V8TouugRJ?J!! zv(5}(f4lwsF87p>kv+*|k0AE0O)5K1z+sICfEgyvUeRz|UzYAROT(ezm)C}&Xu9l)hHmA^&Gm=#t_A7Z zf?fhtwOY}}ShB`4oWHT>yni$A5Mj;Wevf>6_K5m-asBwAPWo~(N3mF`j+lusetj-P zz$d%6U<9wRV>}AGDAW{16i16wx0AqN9p=xEmdf&DBAs~v@T;LLm+TxZW-Le+sWH)s z#Wl``JbS)3#aAiGA1!xVYEM$aYtzv#$B0n2n?_+Y22zz3*RRUaDKgcj5XT47Xt$gY zww%`!K*m71jeR-r9z=%ao-)CnwSS#q<(898_LzPX8kMC4E9@5mtx+P{8x|Nl~O;4^Ir~Y%U7x&kG~rcvKXR*UdMS=<@P+!mQ=~ zMQB|o=MNQ)bcPicEO-83Z@H?xS)J;~n#;(Lo4nIKK^5#gPA(IpWoB9K*%J z77dJ@$&~xozoLU|*9%cxT`9@vx$$bCSc~orWNq+A7Xp#=ntOkMuK576SpT9Y9ZDSf z4em+UT}{yf-OtTfE)7=X31Ew>9r=C#;HQ~(R|vHWsy?E1RBQ9tvp_C}k$rHWA)~;X zW<_lv(j19sHH7{>jh0xR$=&6fP%*s+OX}Aql_%Z=K}dkd_}HYv*NB+p#lx~J%!zFs)A^c1EmE)Ubm;sW%cv} zv0DLiB@!847F10g%m!UN%<5R1$HsHMX!zL4niPLOU!_FWYnlFk7$z7P-_ng^CX{jwDo5;(U(|-i z?|94{Rd>jM<2}U?acn29_l3O4;iz>~zxN3Optg-`e;kba+;1pIrii7n zI*X(*)Dpq)G_A_H%zQro#rx!w!P?3Vs&4d~@Me%qt`_}3&W#;nk7(pkQNBXlu$4Hq zdq3;0Mou4t+}(dd520cjm`b+Ai^M=jRF0vUs#~x3x^QH(0YMh-4L|Tc6SQ6kPKfZM zgS!*)rEAk0dcIhIE2l5{NIYsz52Dq)$`7@eR^jcGO@vSr3n77`&f`V8c%o^h=vi6e zo2VbfY;^cE>;=YK7vNi_5mQr;H0M?5HeFu=Y;f?{lY?&FuCr(3hGIF{7 zcjW2G2aox#Sfu(myj2+nw326e<+tQl&(3#tC#NEI`B=H1W9As0AhbC2Znyo0)%T<7 zRb+bwS?3*wZ)B!wm7k;O^@VJq2q^qe%X6mWs6cPyk-8DHSBWN1-8`f= z8nw-%@7#>U@sDqoCRTZ^cHJkhvIP+iu<5&hQ(=X{lwAVydc9E(4h|4FQ>OqeBH*mz zZx$W5%{)|_!$zPqM7 zA@`0TMr^zr?Vq>wKvWA07Z;#3G5tOIb2v6Hdznn&xWK9Ky(OYrNbf-53lxJPiG@U@ zLTYuv%dPOPN_Lg1OLS=p$zxik=fPS=a^BxjO6K}Qaj=)CtN6`Mj}MmEZE$hgoXJ}K z&e=K*;UAB#Q>rbIw2>@%meWiyK&0vTt;ahyd?ZvF39QMd=go;RFbW-t_Chj?$&4UC z9%@*nQvMP%R2(1++kBYC&DHxOEcv%J4Rfd^9vsmgnA)eDq+`pYY;>%k16>E{j??h_ z{J`qcJ=Fyxw==R)3q>=DM?Nprp*nvID4e?Z`Z<-M8gQZlHZ!(^$#!(2w@Jdmr8nK6 z6F_~_e%}CqhRAGh;Nuidz?aA}GC*x`nBhIZ(IuO1AeYWGNwAy~OK0p^JbxW4m!2COsfp+jl}+G>jgN z@|x9e?i&ok*zHPlE|CS(=FbhHDf$%Ardo{eK8)J2aBxY`7At2J7cO}l-cnx;r{Els z?weVRrE!LRWp|P??8Ac4rb4RA%vdSI^`mg~S=?FfWo@FM3lA#kjixABzJR5zT956B zm=?$*B+fO&td{CW^D%H~Y`iAjOOv`z-)I(Re@us~q&8_LwS zn=zKXiQZAB&r7!0v$(q{4h|2o(?9cnDDI4n_N{d>P*jm8FrE2{>NU`8MrGBpL^Hk} ztZUW`>IFyEXc4m5>TGM+eL$g&6^`#kTryBL9v%ITAN7Y5QQ1CJh(#m9h&V#N(DvoP zYpUJw?q`a&X6}?H?i&YT$h>~t=)vJO+-pW(=?&ye@5iE*pR*R{9=^`@>9)>pZXNul z@T!rdDej-gszRD+82dJSizzJWZ02%ES8#Cix-%x%6BM7Z2pjpkjPj`VfG_8tCE{Aj z-^ETMmqAG9i3zQq-~TTUBy+dTy$LUUd(`r0MsaFM3NEfRjDgdHcHtgZgV-T$WmjNqZJdNfMe zc+=I!bw-sQB|UIFj%ro+wi5$nVFVyHyI#H>e!9;Y3MFSs-qaFB!Cfc*X(Pa4Js+wq zER7VK)!$doB`L@+Pf5U^r3@I8LGg9ZN7adfq-2{_NrC^fsp;022AEr*b$hiPr zGVFQ(&OhD#98;$pIXge!-(Wg2+iblnWE=YMw+>>C*Y&7xXbAf5LdUpOzg5@JU?#UU zy>-twpBwQ!|2nR#_y<6s*OhFekUPvTDD`)2eLK-$w>)EU8Oibbi=|Xk0 zk#@-GetP_088#Q6blF-qNQ|i?j1s^fv@-ufU#75fO6-ip&+_^rBBb8Mnaah(iCI8r|Ms~$f3fQ=F}M_Uff0s1LyTssSEe0nXRd{Y)=)-P=e5hQ z3E7G(M17C%>Ywvj#(0JuGWLx}(CT(!RXQ8N%`!w0zXH34!Pe6Y)IPQlRaeGBTxT3y z9X1W9zy4&sSiGNHfA{`1t?ce5Zls=IbSgEyN{Bbr=L1X22S$2QKC8GIEan_6Wl3rv zJl6U3QK7sdUG(i}-B^pyQpm_gm~I}Y4T#*jKc~RO#ofDH=ayDg4h?%E3oWL~k1&M! zwk;E35`{*}ScQsY4{de4P(?}sSy5+5`e&K)vv3#u=P1yeib~Lz%V8y}6HtbVxsgT# zd4ErUW#z0&!a(7FWL@eYm4C9XC#=apC$sd_sE8aS<3)`nJoIih1{<4_)f&q9CJc}* zJSNi;rhMWESs467084^*^2#h0o^dMR*9CJ z@bz$jbH(a|!8bA0NXRe{mxi2wH;r_SyZ`x!RN{QrJK*Bgz?)E zWUOI%wJ}}aP9SvutIhY#*aYHM(>i1c;35EIWHU>PcBnl(?pJd;Jh7QK&g0yEssG2* zIR#eIh1)i^?WAMd9ox2T+qP}nwmaz9b~?7ryZ>|Uz5A`+_CwXGZ><`0On1=*I*yL+ z?qW}8zwi8@iGPgzkFO4)s_DS-nxfJ)hc^y#?acrHXW(9L^50U9{LqZ(7=ZbAsn_ex zDjzW%Up>kAenYlyi>m^@&U8Oq5bc{}wcE-7HV$m5vJUXGl`$|c98uEv58r%n4{E$x zf>axx5`kwxWDRXfqAgeiW5mxqQ23Y(u%IPV`TC&>jd#x|EswUw%<*wb>TP3g2{JYn zU!qsXHFPv2O4~wZkRxIxPlf0o^nepEjN!-h%i+)Me*?4Ofixj#DyRbEbcKLx zZ8V+4h{0k4xrf0y-TFXRSspGg0^~i0GD%vIzNbNbKb}qN?And{3jTGo*zlMdG2h;Y z!LatjyqzbRItj20kl(aGpB3sS_=>U597QYl}I?FqHWPxA={@fLDJ}rI>+*XM8F?3 z0PUYSxuPfQWw+_Q-Y-Rp#e@t89jAgy*u*>79NMg~j$Fw~G1>?AnA|b;{2qdbtmCEX z2};NItHOpeH~L%Zyy7$BHa(|3Ps3_-62>YSUi22)z2Xcej;*+u@v}z7fXmJc08wXX z*%YzK<$jH~(P|AjLT+2o`;2t5W5iA`a+yY!!SCOI7E3pxsUU ze6)D<^xqf!?QRY)wVOy#P(+6-oGer}P3rU>+U`!}Hax0TJl$4mhwE_bKY-?xVzcQi zg+)q8=juQ}pr3DnIWttW)lj(>GHyCj*psBN$31H~&?y;^*IOiWx*Ss59be{JY`O0$xOadYLP{>GzF|b!9}Dd7p^a_ zz)uEhEL90jeYzj<6?tPHP;Ezmw=OI z5ju;7(f*bsdiQt2)bR;&GY;F^5|`)1(cUj2;SUYxl$4Sd4IQF~ii$RAEIo`I68$D6 zl6v^1u1h>yPn;Coi_#wL9-x~l5sq|LD#>#hgxE&K=@3OyCbTcX$J{)ce|V8DNUsvQvG5)3K~L< z>;P~=RMu1aP}K&fh*-}^wz{?e5C!umypr-kVW~29mR71losl|LCabW~p{a~@D@N)h zZ0VO`EmQ_qFh#l6qrfA0z$g%yUU^9x4p5b;H3cUp7Qh2w=$M8EDn+WEN~3P}6LBdN zxSs?))`z)Zfe$1)9{(_fx#pOOGIalYc^)W-8+gNqnNZ3>9{R%cC}rNi!~%)V>T6q$ zYk#ub+9A&!8zW5?IX@|ki=5(4G}3=wiG2d-;YL+-lwq|XDKBpSV!9DC^f)y zfn<$BC&+YPcUyYu-EfDE!CXbWW2hQ zc$CI!Sj2~VpK$FNeuzR~%h5iy|&7vUv27@W-D zQxxz`z;jOXvyl-{ zJf{q|(!nck3sLH+&m%Fq3wG6z7ab@Sle*dQwInX8Y(^G6X&Dd{Gs-fGf63V z4*5eF3afrx684GS^@6iTb9k&F1)H%3JvU}1P}VErJuy(hr{#Wpjq-N51J~o#2C{rX zFNFTPFWV!<3r()|cOkZx?$doJh+HZ+RN!Mhk%jXB*_O{)2(95 zD2pki2hFl5_01?=XHm-DmlG(#P9BsdI9mzXsF3ZcNdO!==`j5K#0yqqeWcvQ8jIOnQq{`mvcg>leq6+ zUcv$41q->ExS5P?FZM%If1Vmhaq!}wyl)5p1BBnGzj?CWp_-VRfI`paADv5?eX)P= zmv``tb!l!*GT2nK>nt>M0sY3ABMr*+>2nK-HfJa+BYCn}3IE85XBNSmm}Z;#lUBvL z*6~Ej&(P_SO6Mw~fr>)K1hM@i#`$k@Zuip@XTnUdFxfj4Ig{SxZ5wk^>wCfCP>Pkx zu+DCcg;bsBdjiIWTZAZBZBrkNNT{e#=8^jp6zRZKpK>ZSdh}{Wihm~?s@j5Bt(;Ii zlY1(kv0bkoj%wX6cv|=u@=k<~7ufG}sr(xW9G!$9qZ${Ch$dlihUue94UVq^{e09W zk`+b0zYhTUQr&CJYb+iREDIP@p!>1h9Z?)(44vEOl1^YiO?d3hB} zVRnBM+gvnH^E^TFgsxG|XE25!+Jx?te=FGR0WGq9G<4*UbEmz|r$%0If(fW7%K~40 zZ8@+<5%#O8F9W$hNJ6#PZF6J9OBmT1#LdHtvpD5Qy{G=qM>ijLRGRua5gR4i6tvV^ zhj(F><@zjMmBDmbASgfy{Eq{^_ux(w^Z(`~1}Urx+Vnll4Av3|Jnm1SaJVkT-=cK6 zDjB&K2uGi_7#HCA`T6&T$cZk!)VATU(T8znL&EHS6>>FcC_PjP4Utrng?2l#+)CtO z1}bs@<%dKm9>cK6ohRs=UXtvA0QboJI@U58B}?1V5vqhc-777$45Rn$P0T?H_2v-! z#d(T>vfn%&bcnvBsI-dFid$=%4%xm1IXG+1PtJK2W?bDzRBsFt2Zk{UICdOIDDQ4X&v{P+2|~5F_6t&aO)cjInDa(vJVkfu#o#!q9`ZJ=J{-fP-w?JT!kn zUgIEm%p1j3en+cF5M< z4<50=BRiR~XS_$@qp?n4D&^GOy6(>psQpopbQ=tS0n;6sla;8X+OTT+g46%*YJo5TaSBRII`m*>fJn_S8)Mnzl|LmCcUQIP3JLIf+KPd3Jc ziUI6jSo-uvK`4YfCM6Cm(;kW=^7dgADlr(h&nu&htL$4rR6KlBsDQjLkq$Ys7eSrG zB;LIBOtxm?a|z0_CebR(@4NT3jS=9aBkSZGoh`Lvm65rT}X zRv08M=bgi*eO0$T2!~CY59f!4fr>VuBiLy&Xy}1u?X%M*IsC)-t+q-0t&T0+#(5uQ zI;I&d%c?;Ra)QQ6A54BvPt_&sE_jA~S|O1P4jvw!CVJ0=OsAvC-pLBH$`}VzKE{ie z1x#yta}Z-LvI^{$5S^Ta*4+Js%@r`Mb<7O7i2E$J(>Y)%y5EA0&7u^MBI&{?RU2+JO zlnCVBqZDQ!rt=?s0}y4UE^klA{uU8luk-$kRq(jTFdajP$np2xxR^Ufs3 zMjG%5F=LFqX^CjcLlAfggk^PI5Yp{=@BSYPpeUGaSt-fsUc)!o*BfF?;huKT-?n8)aPIVGw2=8r7N@9OMaB_9g;meI1B{?9xJr^*B;7>Yc zpR>ETc}9`T1aRK^D9zlI3}?Qj9)IkuSW6%Pys#xi`E2UKB6c00(mln*viY2x-or-_5XNwPx!&%HYM%W8BeDW) zNqh8qgJRm~S5#w0x#g#Pcj9PodW5V*p|O$9Mf zQSU{@U}rA6mu+XfIpN?4La0vKGeYh31ZVE8*wfMGZLg*|DU3`8kkt4cV|xnmhLg+c zG`t9CQjy}H3!(*<+63{*Rsqb~e5O#xCEBAuq*GKjp&$O=qubnkSms`sA5&RHy=Izm zv8I?LaxonCZ+j1K)h-FGvME@&cM82(a0J`h!0DdKg{8)!7`F0)vciwG-cC+%cAba< zdmqh|+J!7xEfbl3qr(y5*VDaKi*ZZ8W(yoo6B zR(JgF!Chk29{3W&5egZ+0OO`Mo)VrUXKrXu6kOSs6N7MGmgQ{1$NrZYY05$~w!Rc3 zwL70cHT@;_FCMh0v2Y+;I)G4@^6-7|!Q-@J8npbzt1!8jNe6N@sH@3hzcPOJV9sk< z_L#h@Dx8j-)1+(lA{(?70+f`y! zn9E;Qx@yo}Q+o{Bm;CzQBNs72>1e(gVZZlF+=%=!*$93_5)FOlp%UL+lK72)nDXb9 z(f&3~1lD|{Y-UZlo7>xL^RjOUtd9@BnWuzBMdjXerK@Kp)98tJyl$BNfcaE@Qoo0; zRf*XJGUq`T5=7U=+j%m~4c}$hOW+^y^YnArc<jA5Ehk%8WNG+5*WP;hLdf5y_9#Y3T-L=Y0jv?Vdu!IB5+C+?`Qkbs9+eqJC^_prIe+aLrC zG?Ge6fU_BZc7&$HU1MUs$(%GxA7$VzO!#;=I-!uTNbxu$Nua%>0QLq4D+c$oPo9Fmj<*yKk62 zN+?j27Yuag(HP7)!fdW{22-;@m%D&qwv1#)=)U!VMJ%OvZh_>sA(KK0c1l~`)D(=r zACxstU!v))-k0bm=`}i~MyO8K>`6);ESD(lX9D&SL{d{z6EiZPuJBI^HJT0ctRkGS z!(WZN=gQ>?FSjSZGKnoZ{(r#i_z4Mq#HtqQp90K^~) zD~J$7|JQS9cJm^`=u#dM6%i4UYt7;Ivax-&p?lHg=3dv;Ru^j2?N(G&U=-kT^7!+z z6K@ECWx%NB{?ju%M8d4UossE%?Y-mt7*ernC=)o)p;H$i5FVR6>ow*h_pUSWR4Smd ztiNQwOWkLp=WExmpxx)9=Ue^#%Awzm6!9%B7B3Lr*T+|kosV7j#@RvH`-JL zW>T$oWMQP9WRmeI8G}^ml~^?j8nzL^I3ouZtizbYPK5JIR+QTS` z<2@kkD6lSv+QkLV;k*a0{pJYlI+9LGn%ZHi;$o`$4|6C=>MY+t zxC+w@$DmQWRA5_kZ)*Cy8kD{nj^9V zMSo5VQPeL*S6jAAFDK6iNCr^Fkws8O#*l4Ie<+*F2mI!iXbNQhI*Oc}93&K!q=Q#? z!W7OEiqT*SDQf>|6tOUYuMHp8s%i}OBCW-iVC~E+STr15HByVEGRTi{>ABNzh@vDk zqEqJEbK-;=GE!>vUs^M4+xA`uVh!7UJDx%aY0t?!;@RL0Br^gp8xY#RO2cM9LB2$`rb)_MA zgZ%Sn2FFwi-8kBPqO584@3Rqyyo8isaGdc!cMGn#{N6x*d0jKyOLnzm4Q5|P9lWb1 z6OsBIuORenL_zB0KO^%P4-|+2wXNV`^16ZNsS^eACuR~-a-!8c%8iz1U|U^3JS-&V zKg?JUX*WVfN-&@)fcTNnQUhr!8WP9;E?sYy}x zlJ7D)kXNfn)7K8(A}KTYPM?B|?8 z$=z%l&^EDB=2ue@clI>f54q8E@Z$Aef_KP&>7m&UMx#P98Qpv=!I$1od;q9sDz8*a zRDLRdDPLE7(-;2HxxH@ER*$Vp7kZL|aBw^qmgS>#v0xo*r=0HbNmQfDkDnBU>M=w} z25$x3)jB1d9O)~`Q#8PPrU~EXGZyZN3BVV8s*wG}I&AOw{`kjHgBAT0HI{`62?zjf zrV?(_`kOA}1}0W?pAviQk?>K&m#v(0bZS7?M5P$`wt%6;f>$LIAU;H$7I$jOftABY zD80zS_r{X_i`S6nKEozi>!x`0@LW~)t+nes(Jt;c`g+AeQ zATA8V-h23i3Z4|PQ%xqZ7CK-aTLrRqvXwFW)aZV>_JV%(Kh9i_4RV^j7K*!>$7fA7-;8zNcTPqP-YQkmnaVPvdoRGYR73!}D?# zRuo|A;xIN+wwGJ-=2k(ymLRPx{AU+7?e%NWqDh85wkIKzAUO=@I^b#5FDIKHDlurA zIyunhktul{>FMdR0*SpgM8}Mb0w2;lW12)jDHh=?KHJRD`FwDyLu1kM`G{?J5g6S;tPp@Md0;+|-vI*|052tv5bax9 z4`z2>snHAuoX}yscDiu?tKxS!Bqv(I0`-QKLvGjDdDbr>Vf4H=`TMB3(OM+eUL1@= z+ZRE@K=Q+eJzq$;=*TRne5|v*l)`(F(BT5}fXR-}CVj#eVWSzS$+NEO10LA>Jlg?J z4`ESVDpGE=C|IH0iwAfF1}7Ha4j|nHd$VxPpS1G!2O_08eeW;;vd^FvRwggF{CF7C z?fG6^VYtlC-}Ho<(1ij60oeF27csvq<{vP1KApK@V&Sl!*mP+HU)*Au11a(4ft+Wv zEaA4Ucsvjg^TCatKIfsLV?<|>9~?amegRjWkf+yp7R{TtI=f4I@5Z@;)@SF zI)<-qUOjimnH)d?zT}#8OZvtzlRt$8vD!q;F*H!6O)JvN3)imp3r;kB%w13 zDBC9AZ`T}B=##lVl0P`9F(>lf+M9v$!40ApK4#p*M9m-joA4eTB;dqk?v3W!WR44@ zoi1y%+uU!@6CvhG&7x3Rbc}KfaM3b8*JcBg2!qDt_NE1Tc-2L(5;pkl06_PMzr0=o zkV}<%2-H^ewn#2mj4aM9#!E4(6&fqNs~>9jGr4^En>|@ zlhgj4&#T%r7c;ut1PT#VdF%VWkc=Y)P_h&MB3vzF6LW3XS#VL|!%mNyXrBGW^9$d$ zXVh5Yfvkc<63RHc=4>V&1$;72Pj*IXwbq&@trC1?K@& zP3P}i%;re;dG4$f$Dd5zfSzp8Bezl3Pig3wHt+(FmvPI1dt(8Mn0Id8bCTg+TDhFm zgZagrl!d4xPM|E`7z9GT7=YoSxVD+iZDq=i2S6LMq}0(;{b5^@rP(uuoC3Z}eL=XEvB zQ}3A%^&Er)-~&T$BW{mFnq;~|CPj%1F1Y=RlV6XwVbgyu7?)8EN|S-L4iz6{U1!tn zDfirEv;K6Ulkl2%YeWF@&tBL$4*NH2G^jpAUyyAlzbkvyg2w@`ndZBx| z07$?Qp0+ToSg&YhSb!jVezuQUkOr;Ux=7JRI;|#3kd2TQmmCGqrvYI?Rj2V|KXIGU zasV|i@WB@UXtVx>binEHbT*UK5+zavJ0r@U-XIbwRR@vNO^qHeq@WH;JNLT(L`cM< ztFv`JyPPdt%?BVz6~8>?2%BZ8nd}u3#4Y$7|D6)BUajHA_To7hGQYW}Z91{i_uKmr!iZA7U!(x<+qI4C>`Ft>tZz;3Ijx%!|p62*~$u>fS6u~XWTUyW=G(b$z49%j8{s}x3CPFFgX}=Xx zqdTJcym*SUQjgyoz2>RU6JA2^!Rq?vx1pKU6cA^uw!j=93&suwN=_^4Xb$;!wjW$1 zcRo#zj#LWwkUmvSzD*8TfE6>pWHtSq7a3^!$DEbE#r0_cLr7C#spud8aV?jN}sT|7Y$FEHG(pW;=3+7_8<XgXn z6eC07LOLD9;#N^`pcgfQsYW{eN+pxizfxwyca&qZ@Hc3PuE4gjt$$>kBU>dh718&8 z@rW9zB*1<8p+%IW&|@mvW*h8=CwX8bpa(3}G1(#^0ZrQp7jeG;c>97*rNzH+<~WD- zWtH6abw9sre6T0Z%gbf{^{G5WS!m)&@&69M;-VE|j zWUR8SA&yH6lfD<7s8c zSOq(G*-BEQ&?~F}nF8T?JJ3RlN4yvQ5p#A|MGwky)<>{i((#}8s0`fN%q z8Z4-f(~bucVS7wUog#~SIjD>K(Akp==^o0%59iK4f6(dG5DJ`!Cvz9XH0Qp&>!#-$ zSv_D|cPA#htg4p<9=}lEsgWX%T!LUlX*p5jUDY<)zL~&%nQ|3RnPCbL&xsA(pSF2&I$o16kfF%n zWwo;izKMZ4nC;d(IPI~wpKh>Xkg6@&Z=tkUYQe@Kuxs?)$)}Z;5Dj$ybP(c#dOcH- zc<=j0WMxSg+>b}E!dW=kDh_Nc;Dxh0JKx@X%xY*?(ur)ADge({ta*U-!kZQ_dRuhY z7Ybf4ZS@>4e^Jykn$DZ)a5ljC{-rf5$fWFGa*SN-_yC*S%EG}loTwm(;jRWLns0;# z3=Gs9xKqO|7IheZPhJFmA$@)JebAdP%+P0gRfj;vh=8PF*X~=5pyAs0#);{`q-WM# z7>0ih`3ae95%nPaa}%P$(zVVS(0z@v+daBHvBrH)yih zz3}ySWMBo63z8yEjex(bSlFbAGtry+Rg%;186R`O024}EtB#!CZ>6_ULkY~d%!TJB zjP9WNzCRkeiFJZ|UZO}7PmiMq^OYO~|IJRLe7?|yQ&^__u}S`cB~#uYo3Fbxv;}9a ztjAzS$^Qhk40ks}X9Xd$T8mP2Gxqq~z%&a}Q9+PMnGZ;c8kd4oQBh^GMIMG%Snr;2 zu_FUdeV`IvgJQS#WR5O|>qTw|WF7}-+Ko)S#eS-L@v>obv}1bI@8}q*vp0cIyMyXj zA9)tf0vEA{_w@8+sIKgj_$u_NT}SOhGgV?Odyo_jp*UWyF^L^~)kMf2Hx)26FViIl zsDI=K^wc;+@O`~=iSjSahW$n%8`vr=Vy zAC^~2``8m@t+M3t`xEf-@y*q5gQ?-hoiE@a`SSNv;ZH&=o|p&{Kl!(8473v}{*ji| zyy5ji_HwgG(zLF)@)AL;-8%}~!N#87T_FToUO-0rLc#$q8b={ZwdlOSG;ggWE|6%^ z?7Ha^H3qB!0M7BB_Y=Vi?IE-EdhoTN!Q)0Q1)zDJ{nCb(Iq-DM@9N*8Gc$sHCTzP= z98`RiXmTBD9}Lpd851_mNvz0Ok|z2>aF8&g#{#ns-xNUI8Gy3vHk)-;Q}>v1v&-ps z4FPJOf=s74g$&xYh{?6~fPH>3v^9m*PrEi8QY5F}6C0`w!JLq%{-6CpJ56@NCvPVB zq`3NPB_}vJS%opj%LPn$8Ue^f3LicvtG}q_c&v%Y3=Cfxt5%VgPhTe+e)NQdI ztOEDj<#Yf;+$Ru9R9AbbPQo=qJ4MLl5HuuQM_A)j)eX>;`uX{3U|&zqj7D?V;NJra zEu}OHoTd91_)uOG5TLa>E*kKc+{eU{is^35j>(@c!{23qEwJMJZ%XI;M;%B{JB8w; zFo|#>67l1k$rf{6z+YMLhL%@x!d3$glD~w3im8-n>n30XK{8n(twMx6s1^Ogkw+Tc z+=O&lFaqawU18bTxPW@5XjfI~BJsOV$Y)g}YAbyYI25`fE(^On|1i-fS`vPp(Jo54 zhzTu&fOOODKVlj2W0Rrc3IrdxJVjS#!>X9#aQ1452pD1-`z86{tSDc}m(&&HirRDJ z(@mz68n(ouStuD#k}!}A#zw%Q!y%qnQJ4wz-v#1P;fl0|G zggg#y0$f#S1<+M6zMzy@t^me+M`kXlO1Gl#UL*uxpdQJb0ZT4OGJ7_rm4dwtiIx#+=FQ&W?fiuk5e*n$B<&;zZ2&_Q1*6Y$50=CQFE z9^cYfh}UR!PIUy%1B!Gz`nP_=;R6#b0MCJYNuUFIjlgBOoDNE?L7qbEDnXUrXYCS8 zh#j%;w>B6wU9|1(0pgM8p>Db4AZdkO;J!>B+xYNY_4-3)l_+4Y;(@a!<9CvxrTx~^ zXo)B8?P?xbL)%pDj9lh0>?(o5N0fd-PSS*xNOcNBu4S>1Ycy#Yi5EfgCl{ny`iH4W{Yg&nHyJ`{rh{y|mZ$$RXC-yBlBfH-j3JCrGV*#GIOG-*v zye{8p+#4NVBq5X{CpJuP@zgk^ae+jFbNh`jLxc+D)TmR=NED>emdhD-0@x8M$c+=Le(1RapX3SucjMcZiwQxsGkdSm40!r==q9&AF#{C_j7 zK#MNND`XzI3s`?}9dw~@J4gD3#)q!8gB^c&09&aY6|1rU+c>qSe)Pq{#e^=b0`dGR z7pqPwGkWOu*h+RhlaumD&XtHJw*p@c;<*J7_L^VWnR!SrzSM*4h*5~kp-bJjV6!Mn zbIs=RX{xjm3eWvp(fr7y#}y;7GPw?oDQjE z8JS7(9dTY8YJdr~qi_l`#CqNJu43hZio=rCt-0H0ld)UIb&9D8>2P2Tis6Jec3cy7 z$XzvDZ)s}`*KCoxYPV;atk7ifXyi^ELZRgaD@8R~rTT$mSSCG@fU7MSl0dv`tu^bkOP;&$CQUf2+vZTCt z!J0Sw4YH#%DWzSuY5^K}?!lW4DwZbG5D^l+CJn-;rS2j$oy2}iYxH;NUp=JQzx@Y? zXYSU_WBtuG6~qGV&oO}%tpe(4WX|rv;{o*BY3E&1q}{HNwLdzWfN1wLpE3;2>dk9& z*JwnAh8TYiPmy<@RddQ+R+j|}Xh_Oi(Yr{Ms19ptwsr}hJ36X#oHb{nE{3{Fn zc5;ls&K92=Wnc7V0!^ zCxLvRVyB7#TXvm^y`+5xQx(k5LFlacvcbUEW~{klfED)N?Mi3H$48yavd)HzM(Y!l z`l@y(9I8AqQr%S_^?Q9=*fC&T(UMtzrkf-;qh3|Qzdr8uZ^Tgp1@$E_Tk4QAt*z?J zXQ_wUn*Fwg#P!dbY++KWwkou;>qBMR1P&EwDd2s!=jNkA;ba3(aIBW>jAZe#pB0j- z@xq+zE(Ri)b{02EvDC!*^>@XBiuIv*#*2sCOl6n#V&BN#hR6&2qwxd!k2y@&3~}o# z0O&Z?qmau9i1kHpIUAG=I>DeCFXU_*#Z|Io)@s{@fW(w5`KM7`9MQVZBjnfhfNB+% zE|?0VBdaZ`PPbYNH~aOoOqtYCPY#-hVi?ON;?j5UdJI&w^snXb>YSFM7GHSLFvzXv zxy?{zIljZaB&OP=_+Gav3*VU6u{iWmw!@e@UU-5zSju@$X0B8MRU@rRm=oLUttDxI z<%*@!-l+Xj1v0=_3WiDITT^`=$L+?|oMWG~z<6ngbUi}OvAGSHgFqnv^8hIigh2*8TbCW zuGHRT+ZCq)r_)(EFjDQ5u&wY+c`{;rpaxQ((00^L8zlA-M8bIgZJhxH{@SYqjRg%3 zB_SbdU_`BS2;-4~UDT3^Z1eQQ_%^TIBPnN&ZBXUEN}$5y`C@bbsPfKMOnu z67hrPk>neVT2eW1Ff=d;t7$m`HaO7=Iq?dFO??OsUR3pdR#a-!c((zSo9{Q7^T645 zhfyY<9|sPLap=F3t3D7|El~A$CbSfKt{!?X5!RKLIiWi9>y>dc{QgHp-vW-;H$VwK z08S0wwhd4ppXb@Nk=;d1Or>$*oOsfdE9odg+G|>M)KVxssMIwak027Mr(Gxn-gY$RxcO5trTKMWFOtW9pyJYKa1{c2`M1{3IGjl%2bO0jJH*`|^F0AU+50 zgn;F#&EUU@>eW@1C2G}+OJbHueCkJ!oq9mTe0}SDZ~JKfSo^-qx0VAq17+T?-fPr% ztlI;(1gb-XRL8pwN>az{zqDI8w~B?3kx7RLdLWDF8Aw@ikd~TU-h5_4Qw&9jRg%R8 zHpwRsUrc;&v|Mhv)=j}D_%96izzSV)r`V|mF<#a6j^4Iw+tE>X5EUG z9PDh+kU*Cb<0zR<0K7u|-K^Ec_(nS7Io99S>2$A4Cz!}oVt^c1USLfr{9TvCM@9n& zzG;BoDyjyT38Izt3^sx~DgPY>EMtZpo?*(k`UqRqi+WX|xnFOMKSHbN+F8e-!48cO zRg;z~^6E1Ftb0qKN#$@kLriB|&o$pae3Qb^Jbc%HpHjv>uY-Qq z%FDbCulI)V&w5cPdl!iL7f5K5Lzvpu<^TB_`w9F{Qv7_iSuDnaIJJ@5A76GJW$v~+ zx-sr=c)Ry!t;JILnuGXP-L~JrqD?_V8|GXog20MsmZ0VyqI)I~a#8E6R#LikW}3j= zx#n;QrFZE@!CR$>d5m=f;_Oh}zU?DP2zif)%>)G+lY4lvCzZ#>s#$+LzZUSn$a*HD zVJIYHq4d{zz-$*Ng*1k82~hRcNczy=%1zZ+NJ`}M1{|(~mUYPrwl=Ded=!I0!+r5M z{ra!%DVV?lm^48b95p8rb ziBxc%^m-bT8!=ofa$rR_#lddjRd(~GoeNu;S@o>qwOk(0c!iP*>PE>Ea;{c^3Uz~X zE>(&YSD3ua;C9-o!)%E5t4sq!yy*=8nM>|eFcj|Am%i1rW7{I-od|B|uH-8PY6N){ zkiL|pC67M4HAX2X3{(z$#4>f+ci~av_XOA&+IdX7ITb=en$se_2U-nFE1|5A^o?Af z*lY(ZQV^)|9pfO*1AB%3Do!iO>t5xsaHQ{A9!zxq-_ttOoc9+iMdGKfw6Hc`JW!O2Xfgu%0WG{{LN+T+;tYGRCYs6?df=zX(8 zcf={1$keuG5$TbZ78@;85-H$^U)T;9P~X2Pbd#HcN2(oxmY(@LGQM7cI{FbMCaM(R z%I_m+w&5}4L|q|@;`4XKN19asDNSHx!z3VYbFX5Gb9_!SU!^#%;=BZROruT9LO2`K z!=9fdJ)s#L_4L8?a84>ZHitWl4pgHX)NlJmvTIo_RR9|&g0HwB1XK!svq1$Wx-)*M z;HzOuu&usrTmrpv04b`j(&=<0EbCjtVq#*FTS%}q>Hn5UFrA{k8t4<5C$1rv*M8OY zkI3w|6>e{X$Hss19zAJ0$oH}Xxl|GFw7b(d?v@lRaG4}5Z{-upF5@@VsxjdYuu_lI z`fVSU`@-#O?Y*zHyu1FhVC-jkwe6q~Pz` zM_Kz2AzE{GFA&N7o>P|Z&-q(QK*dWPICvDt%Ki~f#q1)rSyf6C<<<%zp{&ePtSoIH zD48XJd^+lUOZrv=zEb_{6PPM`R$zn=XT=n;Y;@w3!`r4cCm1urtRIw^&y zjQ40*XUjK!IPed5;HcaK4L?XqJiSPY#C>XWRk?h$@VzR|F51AzBSyIN` zFa#^RxLIoiu4QEi4$`;HQ)Lb+9&AQ8g#{K%wwJhTCN{eF?tBE8{aK1Yp*w|cKZ(o( zJrB$>OarwMQ^!_DVe2neyPo(j*{Xnm(V+$m^hPt0i>+RMX*LiZ9L%+k=7Ouqi&v13 z2)~(WbSF8s=QBrvvP9Wq=z>QZ2)#FiP8deXR7)s%|G>GH@(AR9@opp7f&?0e&o4Nr z2c_y|j~Oa_xBau-n+yqnbYb1+xAH=#*4(A$Tvnbydsl#&FT3U`Sk3{hD`j^rwu$b6 z8YJZ=OhJu3L8J4D+~dV6;&N2$P|4p7@Sc`jJ`aDU;nJ|iSztuOcpvfoT`-YKCXwaR zS*v$wL`3nkh0=BTN~NDa@L4|M^|t|o1eBM7{>F$t&O}n+2mZRR+1T*PjofrO1pJ6X zWH*C|6aFrPW26I_nO3fnyuy@O48z;OD^Q)~5XEUDo)s*5K#7Vo%a(40^O$E&GH~bz zj_h4_(k#EUvMCC#tXqda7nybUY%QiMgf3QUhvc8shnlw(a=Qm!RJ?uQ_+sVMU-lcA z!tpjWJN7fQubp`OWEv&<l=v<}!sS<6+*9NZh?6!-H{|N@L@<1NO6d>WRHCJoKv3eq>bov-ANo1 zW61hB=$^L8bQTf~BfBJ=HOn@bwhR8GYGR=VQe6lEKaE1Y(U`eahiQhB2H(FQ1RAmb z!`3-=SK5SaI<{@wwr#V6j%~YRb=cXlZQFLzu{ySG&wk#S`7&$%!Cv>ORaLvL^EghW zkr&&DS$jK!hnzq5x4EOI=s)bm`#$4uI(-q6=`})v`Vihevh``!+DyCEIXv@KY9PGd_Giu6Fyw$iK4QC6?DCc&tcD&e} ztqZstvGV9Kq1#1hir$*1yPqGy)HLVOV^S*trZzjgjSb9$Jpy2H=bKjt9WYDuQX=y3?~)ov&=s*llO{IvIcN7ZIr{~JDE0~5 z!UPy*u{yqgebg1U`t`LMFS&hDT2kRzG94|lW+FsHjJ7*%?#`H54zA)^fD(?S+b`!q zA{SeHxSH$CHie8$u2looB(cJY-P2zPSXT%vOizdZ+umyOCQfdPVT#c7OC_t`OQ3rmUdMT(?MO4>hTvC6-ik-hREs{D+<2QfVYCl!HB_$+IQF1h98in3~quUyw$8_i|Fo1gk2MyAx4qu9c7F^6NlFS`asV{a4$!n`@meb))? zo832C{p}ppXdPCUp{ln0iDj5w3#*z$7Bhmb1tP*z6u6^}+kg#oe8Hx3gBYmRh{Al| zrz^}0UNm2Ip|H9JwoHZ1>P$e5eXZ67dB(AYAWq)NV1R{r3!?q^S<1u@ML}`8&g4>F zz|Ue3ps6{h<%3*(h_|Mp?Q5jK-^b!v%jLloq&lCY_6YjO9i&PKX{fF>75uPF=|L;1 z%ALlvP}B9+97rR0)M7=OA{m`n6?K~|M==SW!0;VPVebYuQ1lV1FA^%G_fJ>u=sXh9%hOiv??(V#G+=XEe?Bd zu$pGiq@7Ph(4Vx(#341m=r^kkpgB0X9fq4|bjMl+?1Vjx!KMh!;fB6VXD9I*wC{5C z=4(;IrkTY}q!({eb#53s+((~^nUoPu`{#9kKeQ`JV(H-KCL!>3Ff1qtiC>1#pT=B} z=Jge`NHR+z4H9`5i7El!#iHRAWnilhToR$nsP=lCNoBDZM=0D6tY8^cV8$X!{_BQeG3+A}hMP(RRSmP&)*Wq5o zNEA(v7|7^g3|2E(zm&X1!UkmaiwPlEcgIJB`R~2A*>aOr% z@VoXHh6j0Lz1pGCQ!md1yX##q=$-!{{fX)zQpGYDB}I}~0)P!%uT#Q`aj^L&0`fB% zVe(16A+qy&9G?r&rC(LCWs&b?D{lPy`g#N3yKqBN!sfc%cLomG8ttj9FYFAARza)Ok9Y$uJ*^2xy#=AFzBymtmI9_a;0RZPIV zQkF!Xl8>3konOPr&_$vb_MOZey;J%t^i7fIG$ym3s8Z#3d>a^r{2xMG>n*I7Q@on> z5tcjSY-I6ZdYafpngiOsp)Gzr&BjcX+5A)SR0Si?tw|8_jRbfXve#NPc+rPC{DV~P zfkL75IcLtDM=he2lz)ek@M*AleZY4BubjilyOOdIukkPzlJQl|1)-*_FQf!B3Q#9 z`*K>>!T_`Qcc#g4)nj>%b6CPD1lmb!0-sn&iXWNS5!|HaU^0 z2~6=4sDBQK2EM_BNUO$Mr0Ssa%L{QNoZ`@h;HGM|^OySrzGc?%c(v#1XIVhKI(71C zJKAaV0fI_K-zUAYL`Lv?YQRu*5kqt6&pTC$1Kd6pBdDGY2yi_`>Avpx3m3(T_1)TJ zVNvG68tHYxBL}3u4aT$A``dkKi`$28abWwmgHZ%#cFur?@OAKQUYT!NKm!-}(!sWF zC02Qie*ndp(60JF_RwNsQ`2O2uR5ip!P`x09tkROn(3E1O60#2n}K_rYqSU5vbsMS zIAJ66kej;-%Zj<9PfJae-wh*Q(&KTsAG3~&f0MN76Aur7sSbSMg$`7;2(Yya1rMH) z(JVrj?{y{HpW2I(EUacgljBcspE{;5m!~7Imnh;% zTx&hyfC+=fd=fE6{^&jXZ!td;JPj`kD;3&iLIERgJOQ|Kgh7ttP9xV`K+SD9(dD;q zNym4^nyU|#NV7CXD39J>Xof6Q!lI#A%?1XOSk7>`9hJn00}fgSg*#}uqCB62Xo5;~ zO0Q$mnLiRuvitphrz{&hT@jldaLhX=i|9McUyA6vKLpJ<(*LyZa_bU zZf(H!lA>av3?ggX5ZyioQT-9@7?on;U4%mmRAe+v6Pl0@@bIIS5&giVFi~f|fvBNI z-^RINs~ZrXQ9?OvwEjc!dnjxLALVWreS~8j0h}DQ^0i7Ql}h?=-up-U5tIkxU5E@x zpaj!sEIv0JLI91cT;7AZkHA-CEU0oK0=+0%)r)N1F7=>TLbZ-^gebw18T!^sME|Nv zptf|zz#P~058ZY<)js$Cn+4F1s_16kbtV~I0dze?h_3FdNfH_2M@pMYVdQ_sE!ycyEx9v1Mi0!*;v+$s zi>%qG08>5jR4COVG69J-%Rbr?fPVhoKRK)Il@*`~Ht^T~_1f@|wFSDWMI__qrB$>hCx4#a_=Ii;iy~G3gKug5K(38Y z;98?4d-K}>@MYtFo;Qf=p?hdiilKgXKSI36zwe4$LA>}0Mf0uY`*uo|sb}-Vh20wX zl5obMGox8vwBYN4R%5eM4u+yo)_gKe`bFh5iYbHIRZQGL6f~_;&;8lAJRp%&jAlv2 z*s#xl5EO!@D6R!Z*(~M)hCgw+FsVYQf=W}9LTKaRq(7Sa6E=DfFdD(1lp{na#H`x4 z>Q>&x7RH0!1gv*d$VfAlqzhEZCSqtqX1yN4W;g#5a_Zam4a|aZZ*BA~%$6o3VGe%( zsobn^8|?XdU)_s?1jT6(c|7{cJSBe%!&TK>09X?TYP*7_LorTQAnou)!=kCKuC9_$ zQ9=2KQ;X0nD(X}7oUk}#U5EL89_3|;kaK<{QO|awrqNBLLcDJLoNWWCzsay{UQm^g zCUJJ-78$wxz(>r2QC0u5F)auOClM9SPs>5*NTEwx^QZu!qc1@`{Mc+6KUiFT!Kt;D_pz&T<&>G7InW_tiyfCp>%yPb%yUw8y^Qug4WM_*s(GuP2Apz!nDlv_I(wT zB+#plr6-5v=R25|Rj0yO&A`Zy_5+2EF&5)y{ICHn3Lz4SkxemnHa=1ooQg!qZwBmq z?aWd(e{j^_eT;Tt7<H8LZL;xQ2 zkaWv$-(dFIs|)sG$lS+#Pv8g5NR;`ohO!6q+Q^n5$OvvOrc|s;qzuYEDo>++fg>Tt zIT(7y`?@2}z(1+V&(w?;)qzBL%f|}Gyf=UfKnWwm6#?{FMJoiuNe4(;$$=edS_e5F zW{@p5al}k)4vzk#m0{6d>4_d+thRduO-xOV zEzhF03=35!YM`t}jg?Za~jcP4f#tu0I>H-c#yyh+d{8(-ZS+;saOQ;mee|^6GjLCKV{6;<WuuzG|){wlg#5M7G7s3bb;j2_pbHq zgmKEE>P6b3XF3L!+h1qEtTQ!Jw=q^+n0#s-X`=_}au;#231MKVJP?HTa|XIWWM6(! zb$)1EhOINGCO;FV>W{02-_L-0nHnzEn5E$r$XeX#Ac|#7+ zhEW1aO_c#~4SYEf#@boT$nZ%(8X?t4xgCc-wjj|F)?7rq?pN;5QuM9DrE~W5c-LkP zy~XL08wSmyUD*Lv3E8rG{i0%-I_rPD7{5#c8JQhL(-ZNqU|#b&gnSIjcLM9%$503j zCQaWf*Qdx6yU=>2UZ^Hm_$UaY@NjqT!u{-=Spyp*XZ*GNe4rqD$;vZ#HCgLG`mxRAPE*W*@c` zbzscMoXibd6zg)b(P;A;U@05d6}^W~cx&M*6eZH8eL~VWQB(Dm+87vekVt|*0?%u| zMaeeGniL|JXk6UEY#D@lp{~!brO!SDgVi(d7jB1okyxCc6XkK3rk+8_e0* zk<>%i#jdU)*U*`1_T0b^$c)*#qKPG=$bjRgBiU4UZl{wg=$MC!-(N(WvwuC|g(yZ3 z)99eU1gpxIP-{w-t^9ll6&@tKgnId-v3B_+fhq6UOiaVnI+NbYfwelai8QW=z~|TI zOUU$ARaMphIz9j9XgY3L9)4D&eb&?Qsg-0`lV-!+^vsD*)(^mTRd& zY9ga7ttAMptg+Hh(y34cISs*=(dDDOhg2Jvh!x%=8%p!#rGYTtBs#^BRF&!4S zDlm=Q$weHRS_~c&O1ANP-eFQSey&u*{p0nBRP9jB&W;^KyoC|k?(UcH>D@=78st4e zcT$B^;fMevRy1**{H$o4q;Vd|1K=Vew1q^CZJn?-cZQsV2lfjZZ*Wra`MBQp4!dBV za`oE|ZOYzd=AkU-XPO;&z#mQ&Q)u%l&V$@4QrPBj9lY5-Y@Ts>-2An4+j&J=mtrTzWEzYJ81$@ zg$4+ETaUgXergicF{3KS7&^(yJe%7Jm}rE7%boQ|nF9}$s22J3`Ak&D-QGIL2|ml& z%~MdhMX>^HMS&DU@o4>SaoP0qJFH9N;%D3eiC07^rrMufUZ?>90sjSxKR!Rx>okBb zr*kz1`~doA@0dzp0$5F}(PpW_YVQDaJB8fsteMA|uF6AE6joci%lloc)RhC-X3-ni z#g-eh$JFub`0C@HAb2Z0Fi?3D?~v6)g}UX6|I|0h9&5QwBRtt!RcsHKII#F?A>2)5 zbz(A!7+!$tZ;xdB_z7jYb!Pyq3JmIzLH^$YgB%(fl;ZtT#;pMyujkw@la)*$b~{<} zXViZQu9($T-*MT@VR-ERW>A8CL*;AG7)FtXLj1zL@|pf#|$ggZL3De}tZaM8g&;$mABT7lPwr%7OqH?tWnhi?VW7iTNg)gLa; zk}Tif53SNdMo z&Pg!fW_!E|b<)!76s-68lGnTlw(Ch;<^G#)??<>vQaXB0{l6}UuI^UgenfYZ`35bp zn+Y}-g#Ig}IvJ7*;Svm=-a(q1iYZaCX6&Sm*uwG%njrPpS7O=7Nir01!_}BVJ-jZS zlYcS-Ywc2{>oJ`l;EJhlH_2tACs&hH`zNv0mQG*^;tPtk-Jco6&UoI+6wqFxP|?Yn zI{ksA=To%Z=B#`Lg}%Ae{yNXUa?NNrGBe@O73=7C3AfDgujDpgxrQrM#|wu&?Su=} z0o(*Yn$-fz0wx0+f`7rTqHRqHFm7JfQA9@+ArM}l$ofZp5k$iMgd4m7Fs&jJxFR1k zBz;D`&?OwGa~=3m@qk96<75qmL0t>QdYTt@FX54@))b!Lkf#$z75%i z-wdRe$vsf&fcri+IMj>tLN(dJg@Wi3!5l%_n1YXK&V_S-p;Q@%--97?L^=hkf@H4D z<&fTF_|Du;v=nzm{U8l5Bd!%VrU85wG0>Qc!{eR8;R@su_wmC@`#TzIVU%v_?P=ag zb}5eA7-$T%aS15ku}`uBNAhWfg>{;5>e36+ARhA~PQYAC zg0!wUt}(oMhr>}58G0bb;OKREY+$^nvHf0T+JSOi6T2}{ttNi^;B49?45dWr&R(u^ z-SLWiLZrD<3r%doODYbp7Z}#xFGRTbQo%~beU836|$;y;2Py^>3F3d{NB+}N|VPNjU-BTRuf6AK5*ZYpG^k)!SKa<8dHji{X; zSqnpEXzR7G@z}w(Gf*W60|^ENqx`cg`Pk>hwrT$(*_X%VjjmH!%mfZ7S@;c1cQvqP zG}=+GPh|+^GyBzUjXr@}*0~;HL=LMpoeL8JaVjw@9k-gxOcqbUbrBryHg*SLub_PO z6w|MwFPck3z~lGZ@IEd}u~5OQsH&B5ssY{PSC$n<_4|_Q~ zcU%Ez?fB}EYkXufCQ?}W5=0C8QvoxiWd@wsdCK2MeB8ioYW`AvXH@7c6HK+ivE9uJ za!RrB%3+~KcEJJN={qZYdMJKV`CB+A?n6@cMGUhV3q&jHwOzkrX#4yy@S8cNXnW=ZaDDE5w8C zQTKiExg;#WMI^ZtRHywL{fY!ZvG(_iKuK~TRENNY8+U{lS$~$6>uP~gD$nIFyy|6F zc$hb|DWYw($cn3CzgD71sz*vDH1*dq{u{7+w<0TDpmO2-F)%#`)Nm+bP@*jU&k>gw z4q-4+sz<#7Y&X`TJr!AiOUUzVO$W#4WSn<~v3rs;rt=AGQTH37fVyj1wGc>7y$`lG zu)|V;mW`BjuuP>4S`gWBEEt?UtajDJZvtZ~n;%>CJL!OubE6lnv0}F)+Dm80DiDea zQsZlSd0x6)wG7V*!i8p+B*EAe6;eWF{OI10m6Tx;b@GB1naE4> z!wf9So$keBZYTYyrltC_M4%p4qMU0s>0h6WF}!IHqQZlnv7HrIB5Qn*vLIqg@PtxC zjU?Pi61PWaVw499{w*sJd&iaN$vVyrqyPa=C+yV{18O1>3}i$4b3=!r>CwIJP#y!r zqg$;p0}aaOd2R1(hr8{`Eo1`SK^w;t8lKkylN?qyK`b0Rz1ecNr?nw6wDPNqiN_Bz zt-GAL$puUsQcAweo*jc+8J)k4gVpFP7nvXf3WD<-RJ2TX9%eV1p|qv?G% zBem-~Qtn2`YT5g2@%%_R!v(b9a{+w{8@$~?p9Vm#xhfN;s^mB2EIJ&nq%a*7QEaC| zA9}BSE~LbJoI!9V^>Tx6)s_duZ4@m@g7{q5u^B@yJDIwK>%u(j#dW#$Y1y0&57Dc` za1eT`)AzXie;ii#vhAYS!^JFw5Ml)>866U^mdui31BCnPt+5Cm zl(xe5@s8$iAQoiM77%L&0v~0kl{jssc18}OKq39Q^X*%R0*TzStgK>0J*xJ-qS5#2 z+WBgS9a;(VTC|!2)5$`*jd9=sfCC5b#Pr`E#`cz4!w6QpF2RkqnTC|^5+kcxE`-P@ zg8INm%#3E1LeqeJxav_@Cd!WUb1WMmu~R&TjUTY5 z($t3K=^5SGB0{USu?dR=iUtEK3xi5FWdHH~*FSwqfej0e@!`1YQOj(r^Lp#v?5gKD zt9!IS&D-HmG0S&EP+Er@-$C!SlSC%qHiRYR@<8|4z zWgDv-=Um&-)d{W`|AWOFbu0C#_uwTgqsKn{UUD~Hej2ecJ zpn8nQ{>NN`c5GrY0W7kJgpZmbAwlA<*LtV1M%dfx_Yo_TBy?d+BY$uKxlvV+nOrWh z(3$H5))8Ay8f+m_(8?kj6{6np=k@dUFX`TZ&(-ab?WOSP)pnK|4MG8Oa;OhVQqi%E zZlbl(=LUb9XQIG1THD2WCu?Vus^74tL&cGArFG`lxjQBkoCuBb5#A1)M9t@RXOKVF z<5-Sp=am0bRXc7Az4)x{&E<^n*+v!YH|}m8lCd>VtS(w}HswE*ZUw>VDQdGPz>xm~+3rPAKOiA+Zd2a$(d%cn19r520&P_wK@K+?!zM`+mY5w8a=tTI10*bpXwqWT z6IHBNN!1r%DIX5tUIy(!JQxTHZggxG#mFr^@XwGNRpTbf>SNvqzw&U?%^yPlce(Pi z?B2-q6#kV3=B`yiI->6OrykN#!2;lNrNv&4 zD!pKm!i5xU;V%hQgjNhdYoq~m;>YLvwM{p;*4nN-RDpc1;Q-*Bnq{dL7i)(>JrGH5z*uu`TxM1IvrXgjbX+fwkfoM=S~=V56=1$14XVobT@2pa zpl-M7j-k5-G@NZ^e<}uApT>}S-5g+YeRyDa(3RIi^eJ5$B1BU_K}DF(E#|JV`j0Y5 zeLGao*2NK%uaed&i6-Y#SBaccao&Sa7GuZf)I({1|CkQ6+Qh@0D`tEau>1Jr*^(S( zC+4^ifWm&Nr9r7veS`&_>*bG=o-sTIRh1(zx!vlSS*kBBvFzVmN-VxW%I^AOu>H}e zv-0AXi7@o~Ik|f@HEm6U-ynY9fe<;r2l*NpGm`(J_frA@LM^%QOw<#ZT}f3qQznVC z+$wmcQ5k8&2tD|30xVcRif1n;KP;%c(8t=J=Bsj_?Sk>f{Q6Nhh-L{=1qVn5cQ7<5 zaSInys#JqiBhYF^^w?p43ZEO?>Fqq&iS+;5)rYd;#754YaDEAefF%ZDP9!KEn$YDN zKj+LgL2%t<^PNiUe7+Lh7835SQq*2$UNf$9-Cm)E^Y)>86ZnPP(~LOeQWv|YW73}W zZg4A{+)KNl_UFCTW;3@RxNVzO)iU}Q?k!zt(;RF4-8r%wT_a<1b zI`$_L1qTO)n0S!P@a@fX?6~0PO#e_rv5PhxIQg`V~tj!MgQ3`?2qx^ zp{>lM)@IrxZMMC)EK_IB=iPI*yW`t^nUrvCf?^MH%%(3Bn31z z+1Z3NgwNx|vAdV$y*)1Lb501l4-l9W-h0DY{Rx)c&{d6~nRb1A&@8WQWmM-3<{RoP z@s{v9-oeNExHB)3tb*f2Get-!$8cR*Ec>SFtn2{RL-LPw81OgG{^rrFzozFM4m=$N zDN2NMVf;UhkEoc?2iN*RQR5x@B(PwDUU(CTs)T_p@JKq^5HlTQM(VI=LAY!bw_^zu zB;tQy{*2^rYZiKh>u*^bc zQ1}j*a5D}%0XDI)Sk00=F%;D(gaH9Vyrz$@G9b;ffzUl}!w77ALU6|33+?wx^Z_Gl zS33(k%PIF*RJ(D%5&bw9(TFIW$rX-IVbm)yXLZc7=bXy36;orv;-_ZeviIS}T84=v z`p1JOwx{$zX)xpBUw+>Maj zVCdH-=sISV=C!gfw(I%;rro$_SXrxO`wvUVf?Y>bTy~bztz&Mycv2BSfu~_{w6PJg zgY&~tx1~237Ly^J8K%3oeJ|n9m=veeuW8(wqvo@}>ZssAi?Hl-8IgC19 zJX!S>vBz8892P*P&nm07ensWHes7dUcJ?72PP`^vyse@XDJ2^ABhZu#F(|Otd_j<} zV$2CfQQxT5n@FZ8o%)@@LMYYv2xj|Vv8Yi!iI4xG6gAlbI&AJhwUO#v@>0NC>3$u9 z=_7qitOab!^N`YWVp2!sO03I;FP#@zlnz{B^P_;DjhE?;0n+zsX7N44Fj1&H#I4nZ zCSU{4xJJs%{zlZcgQR3&iV20m2QEsZbnAz5tDe5pJewcDnBO?D4p#j1o2!VUXPD-l zPkkvOxDdF-a&74em0>Xb1FFH_VZYABHU3Gh;CBqiracqvy*9_fxUA_dM@CzNRFeB& z*?rog9mwb3!?7pCnP}VUp1? zbv$cOn}n67Q4u~qg!O?f4x1UTUk`YL6lhk?GbR172a!cGom)g$7GV@;`I!bo`&_KZ z0<5|3n;jS`T|_DkSR(1DbSV_c`>ACF`ZC(k?Se%3g-?h=SUI*4rE|yW3aE)+UcNu} zpLv&5rX!LZ)pYDkxS*K*f)`r1jz8mdviA2iDHO_DUI*1-Y8}9~IZ&mD-U=&O=%H3M zK;l>P?dib4l&&P`u*t>cb^z=1uD>kg;n~LKzq;wFMO?(7JOptj3o>PIalKqV5x2UP zM9gH!6sBWTHYU?$&oylIv8XJh+WcrhdgJ(_O9*X@XTAuXSnuD89{+?v762-gV#qE_$S=E zpNb$+zO^|WJ6T40nnI@}`N(IrJh+hd{ovkdx{@K}VHpfi{Np>SOCnqP~?PG;$ zKIUilf3pC;y{i9tL>4;>@%1Jrf@4bc46A@hCw9esTGss=Mw2wa)tw)QZ)LT2bJQZY zfk6@Ud=zT=bcXX?nK6Qp-#>OR3XD_Bya!jk(_0~RO#oz#P&ohNT=}%~i*{CVb6)RR zSZy_idLrzOSx3%c2T?GSmB0d|XNP=dTCg@0Pj@P_B+w;~>ljcm(sjiv&+`dIbE#!q z-1HDS?K^VD$97 zd`)a(A$)!k!hqc`588zx^1`3<2;6{B)m5?LH?D9{NYNs z1GHx~)7TG~&Z&VFC%clDV&$S_an+uWpXrxLHJJ{Qt+Lnp5P?h!m(`spXpKq>j|aS+ zQmgP?9CNkHL^h!skSHIjjZ|mUMkGq$=D(>NfoEknqhhDZ_oK9(QI93cQ^;7ILt8)S zeYE&;zdh~ZAP6USk9S3_;L4?F+GsP~NM*K8EMkI8Up6;So}qJr-&`mzNnh@ zJo`9bgp~&_2@zE~8w%f0PS&Paz}Xl<>0NI^WkupBu>I5))y;RudU$qpp>L`Xbh~U_q6je@Krgb&3Fz z3f1%=VD5+}xD?(y8mOZFxfoF`#nglIBM1?O%ElnBlQE5BGMX09WqkiO7eJG^zhO+( z$q^je5*b@ilg>+92EgXXd%uJJe)<&pA3pI2U9|OYuDQ6vhhO2_sMyq$NEJ5Z?wP;w zsz?P6T*S)Pos_-y<{{di^!1vN$eHHNgZmt(GJz*>|{mdC%&1Mkn>K ze`FHxEbQ4|hHJYP+;=*j6y+vTXmL{>3)V~T< zMF73}RNmqSKk`qbsi{XRjnR14OS%Wiabj#o0kg05+jEL#F5IP7wEnpyY*G^c#qj1& z7H>1k zmGJfRV(;`WKhwM`8Bl$CD`|Phtu9esM@N}q6CK2Kh)PoRz6BLq8bz;o0IoP`hiiJ2 z^LD2vb1l_QA=EQ0^4n$W_H6I3Ul@(d;en^1b*&olPY1%7-Ltftm&=)YCqhk_0U7uH z4qJt9IRF}b1}3O)0%8G-6!EyO9f{5=T4K!Uw#d_M(9)==CW+(C7^aT0rCJH1)YG_dz1OXYl;Hy{gLFn*X?a8fLqO^Z!4lNlKM#}gba3(-lVfP5 z>m&*TF}kNvcP3N>YvLNiZoJA-?U9qK@ZO&o49(J9U!ifA8NrrkU^iJogP?u;eiu`c zg+XW&J^lZZ!E=kxz_=vcIs&n>_P`D!+sMVI&~eSsNcxdps*_=^^)+RtIu=82mee=0 z-BKm@BBLIkJ2S8uDzIv!Kf#|10qV4Av0NcKbQXM3B@*4${X_8%BsiJBlE_%H)!VC@HD=Y;&D4n6-f#;pF$S6;mT-+nT3Qj-rh;V z_#M3utWV>MHflzmJh<5n?83f0&e!U&n1hxu=X|LS<|%-XvB_c4Q%1^QFRyn%MyH=! z7=D(a2Ly-oxRJ=6HUme5z^r=E?{?1R<rL0I`SF%6Y zwV&;tx=-M|Df719(Ab|Z_>zivIrk<&fx?|2a1yUQ`bcSzIs+$B-u9*_!O>HBF^n^N zhmT4A3sI{5RANQ2&JuqFO8S)U_**~U_3_XaC)I{{*kosq6Zfw^fQ;G`bv-LLOjoFJ z*KR^qa!ipSaoLN>&R~(cN_LlRL!UN`C(}03?a~GTEl&sW(#Y-dUo#GSc;zU|-9xZs zJSod5 zyY$%jseFxvl~vTrie}??2Pqdd${a7K44R}>x53pRz_h$`M&c~==PNRa(~t3(csT~2 ziKQ$&G+xSEPq6W!zyBJGjW4o?mOG9W4yYBAmybZK6(|Zyki@&11^2266F&w)C{iAz zVszqK;vvh3i~VY25Lcr^$bIlWPRuV1BOVSHSbQF=s&pGicJ`YtWjI}C)Z#_Sw56sA z6yyeGo}kn2+G)61rL__G5~xq_LJVjLn5OH|uQuAz!J(0c0-q@B{HYEJ@GXk@v&6j= zu&jbg0ZF_l9{4c5;6&>Mr>Z z(P&KihwS#*Tw90&43UyNSB)!WOfV~`GU-g9JD<$bAnvaxz{V1<+9uStws!Y!b<#?| zkX2-YNCVDMC#w8k8(G8Eo_R+{NkyZqu13pc-)e~P@(CdU21aNq^G`B9K0NaYfU)~t zlSl~(E3Mu7PhjHYHZ&|O-}m{->t+WOKc_JrGwC0l?Rg9|tfRBA5E`#qTzNXq&`R}! zvWljTu>bn^wRd1JN4GSS8LHv@=Epz#*OAYd%``PHTK|ssI&Xz}DQ&pt6_%s#v$h_N z?O$3Xa#ih?-#Q~|=sjBGo9ZT#_rlGIn6gQ#iM+6ENjP^a4jk5Zzeon>7St%{<=0m0 z{OE6H3v~suJ}f~1zop%^xQI}i^k5Fa4Xo>3HgrfuEa zllZ(p*<)dT{)y2lw%#L8mRl?G*$(u-p)XOgK}#kG3-X298<>QzI)_Fkk^q*5Eryc< ziplx-L9QFX6N<^uYCDot9D+a+x&KUBTlR;=eRU69K zt9P!dGBGvga#E$8ekEF>CqkG$yPqAe2C`i3K!B6tJ**2M9#Tx(Z_o7H%}AJ%Uy@u9dV(?gFti$sq-OY3(1G(!(bQluS-~eura&4f7 zM19@beIZ6(nq}dNnXP94_}9g+Id?{kmGkkW(KLQfE*BSS2}(lwfyrTbtr9ISAdeSM zPTUAfSPi6Xp6J67wUq}|yRS6Kr*d$HHzBhV7Pqs-_P)=ma^crpbrTarY{Lkd z5(LaQ4L5Pf$-i}2R?6<#Zu=M>l&*22zt=Kwe{F9h;yz*(bGiEF2b(yngSQ=1r*{og60Sx9~5q%F-fj8u;anRb$tBQ zXcBJVWQq}1{9YCo3JBn_ux`Plmv{OTvFW13~z5<0$7v;g@@<)Xg58ibAzW= zIrY2Y+dLkE=5##m34NAM!n!}7_W}sC(emb|K+3ZTmMT(0PKKQ$XR6g3{P1ys4pBOY zW*(B%~Drs4a(B$3u%6uK9b`hyZ6>E3u>bSYsD;BR%; zyYi+?`OdtDWYPh`==uK={KZAo)a`AX2VZ=8^TJL0&mo0K+*8GW{6La*#wF^W{r-H+ zuEpLu+K?!^K{|-}lg@5wN(^YUg4{z~IVP@`2oCXWHJP+f@|~aBfMjyuG_t)88+sX) ziSdQ0=KI9SMo9$Map%Jz1w=*Ouwc;c#m$}|@bK^r z$cWQ568xHcQ@~)xqzvs=2{e*MV{xd$f zP%R>bvGSCRJZgN1#G`p&(F~w#IeyNTiHrxIzyv?jmJ*XEy!gdSmNzNDlZhezn9)3! zm;WR)cYN1aVq0)VoX-MX`j=4Rh5qraDYP}~LR7cbW%YXn7K7QaKt%mtZ6^Wm9fsNX z-fSH_vWry)!@bcoGbq0(<;4p-L=>9P9wi&aSYMyv7mt<_e({#|>kvg1|1U(%l*b4R zHnZ)kF$ylOtd$wLA0tPEKVo|jTh+{29!J=RWDg=!=b@h1HMOK*s)S=1;oO>-T(a5(%U*w(C$8`u&~ztbs_iyGEFwRX*6A9=(@6mok{ zta<-xQjw5t!~5&;;ii#DNkXd_8XGY{f^u`S&LhuJozMHGICnwW+dFcmKCyVfIz2hK zJddD8uPtLAEoO5H#v5PD#gv4NTF2*w`9bi%02@K%zGWCqXlIYP$w2A{vpnLl{MWN;eLve2?ZE7T~d9+?_hNgW)# zhRv>sXrNl*@0oQQ%c@pmIY=}oOx}%{q_7N>aSho8$rmTB` zk)waX?0Jg{@w_W{9nzvBjN|z*isP}LJPnUN`B`Cd6FFpjAq4TUKu$^?C?C|c9x}Q% z1dIfjI%yoXZ`}j|U%*JD7PMOcQ)5$hy%hF5`Wem#okx}^3yx0C=+k!qj0Hv*TCWpK z!}&0I&*vn4@|oNSSQBxWEe=R6wd>Lsj}vhj>10g+TKz5+i|ij zM5tKrTk_iu-#qZm1K&LG-}b;~1)?o_Oho*L6p$7WrH(0985J%i5#TS~h?Q%`(j6?{ zU16hVu0_3?mH*X<=!Ns=F!<*INJvmmHKWK6k!TYK038g~d!Dcy;xUAdmBaTx5*K^=qPBxpFLWsLk?6M8#qmOpVoRYyB#hLcAmp?}g8iCe=*F5*8$Z zouC*Tj7q^u;0BVXi4e;XCXypuBtwKmj!4h4FqTR&?tTD9K6(Ztxg1rGEXU)-cX+V7 z5vqFI8x#?}cry?)HU`0{Yy~(UxvOz#`XZTh5JhP1_<)Om2UjB=+>E)O?DuQOVSoD! z;^R_bV=REt(COeAX|BPId=rR%eR{*$${Dd~u}n^fB5^L(N)V@r{79q{?DF4*eGm5K z^}BVWA2D#?P}FZ~SmpvTfxZ>qLWY!MgC*m^2*pfm!``Tb!I9MjX*T9Zox=oKD9S>a zVtDvUG}a${gRImz{M4p6#`i9ZiluE>L`y7@F>o|_?F-y}kpx@EBCs(v!iP)|R?Qp> zpW4kK&m})n^ez8$!As77(bn@Y&Xv@n{qAOEAyifgvGU@1W3qGxoXT^Xu?6zRC5Ypq zpGI#B0u%Ccj4&2Uk1xTq=w~oDHfO-6nRm0ic2y&y58pmSj~zV_nh?r9cXX+Oj@|De zH6s{3I|I(P0563HehM%5C*3$)Q<@^Hij&Ai$&g6i;h~cZGG}ARZRL<_3HB@fBL`m? z2|-36msRdnj(I@R2~E$c;F@T zz)u2dIBAGLsyt;fD>?4vyoB5lklD*1xc>}-=PD`L0zM=SD#Nb_r;ke}6bdnE;xE{~ zjr-1}>r&IRCOnH(#=GQq2#g5?MMKHTdwXN*v>9-9;j#!6{^5xLK{y|RH#`X9)fWiz zBCDpkky3X#kKpe0ag1MJ%eL)#V^KZXe<32O=DcrzeDlCJ4}9~$SLlJy3PgzxTTz3i z$v5?C76dV0nh%px)6ul+c-%g*o`GqyHhrdmh?a=j`=2(di5WU{D69V$9Cx=!5%WYj8F4Jl!z-&@7(RM1(5gBIL=Ck@6M*zA zL`Ft}>R-MjOP9ps)(0+COaNmvb(z966boxonH*`EV%S@2kEUhIQW2f~l+~1GY0*C< zVjK_i$|!1H1(pJ(oJUT09OT>2!<^Eeb8W!2Kd|fdJ@jo`9J^-g*Y?d3O5xq*BHqSk zp?ZC9L~XdQahRq&Vuj_Qh%ui5Om|}*T#UHi*=EE?2@}oHE@|W&q)+IZ*RJKn#W1d3 zPpdm`-n_}~b+XdVr4ckM2qrq}N@>5IJA2~K2Y<3-dQ_c-yLs?n z>%oJCijv6(Q8=Ea9)?K9N!XCt8hgOc_D5I<^rzCQ4dVTA$fLODSYZ!?k`eqc3ofP> z=(qhYVpBMPYGq-B@+GYh@H!P@60-fDMsw{lPS`!THYV{P^RKTKz;s zLvQcq)_uN{!H0Jr<@rz47OP^6N+G#k6BKV?25Z%MK9ST?LIh>@=Bp)VC#3g>7m!>+ zgtpxpahk5xzK7`HE%tHC3N6vUc7GO~rpUE_m_JUxIE~FWH?v5nplC@*W23;6$wqE{$wR5GbTE~Ie`L=Z$e@$Nv9jR^K`Cfqek%>*``2EtWp zE9@+R5$%BD8d#nHCOOrsS1(4gmfr}p&7C`!v8?L)-e$+8|4(R@)+DJ!T+{tP`w)>h zeMQoyg_9^z7=~wQ$3S)R3L|+JKf51cXROSWNlQy(WJI*^+O*9flqlUn=jEmk@86n= z=Z}A78pF44ardD<`Y{18D@e~!PWmY_UAsCTKeQFVPKAd;-#8>vIkG;)z~;(a zK$JTXw{-{F%m<7LN+3{skM~Fsc3qjzmC29Am_5~zI;zCBf0Aze(%p{iZ?k2;wlKvcD1k_aI{O6*ccUohe<`aU(SKa zxj?miU0D%(lv_0pp=n%E@5K$@qluPOP(_<#Rs>+(fj3MO^6}or2(hk-`_6q~Y3iZ| zGVS!2nrieBfs%}=gCGs#BI!ncH5mboHj8>7L*V69w46#P1Mr{dk6NW_>Gl7Ij1MR? zs|-@IQ_#QGO0=$^onV6=FWcgB@Ecx5wx?3#6;p zYtDTl!`#8gFs)q$Ed0?I>Dgi|Iu(e^f$#AsA{ny(rQ@0z3sASL6WUiPijhsdz~}Su z{ep|Q9g@H%+cfD`HLClJdMLx&doskmD3~_sh*;DXT!5KML>7+Lz>wBJ2^S71Q8(WZ zQ<;Ww5m+T@x6%OB4HB77`&NzM@9z(X-4`H!{ty{!=Rq#iOeR7tns@92>q(1|(6}sk zA|ZYnmJES_tBaogivXS_^epPo;u?WF>g#(st_NcZiy!UJ*ewy`=fxW$Z_j0MMe*<`eu$aoJ^H_63Vt~!3feaPD zmURb)wE--3kDbWXh`IaKt55%FJf=m5Jn+o}h4H{=1)?Nw`^S-s2n>#3>A4Ccn&+t4 zMBF<5b)Tj|#-f!FGI$VorpKxbp zMB~_>HIS2?fLir`MFqc6>~s`m__4hJ9!0d*UTNzW0nv~{r?Ef%%9}+}d%Ce7jE0nM(JX<3jTUa2f=&B4-#0y_DP?{hN zQ6mCT?8B1*P9etd2rz|fh#B}TY5=XOp`3U5Jmy`n-vm7Ou7GQMu(0CaFwwX=?x;GN9LLRvTkSSAfWu~qS)#4-o03ZNKL_t*O zD64?XGyb?b?GLo7?2a?z)!8nygc1bBq@qd*dkAuwj#)osa##&Hh-{IRMMoHrkOK+9 zoa73D&|Jc6^?p#q+J}b{wfXSy5<;;1Jn%9%?VAQb>7m7I01^$LhJXYSomQl9aK7QC z3NdTyIBeRq2{zML!m|6%kVL*g=DsbEga$zp77Te-CXCAXz^IfL%v<~b)4EL|e)9^6 z9jl{Ed2dXc`5d?JaqkOnFCNB^&=3{XbB~E{+=uw+We6RQNA4itgLdS;g2Hn-;S3Se3eW6$~sxBtCUk-%V0;GE0wRBF3c+#sbAMnh7QUan* z_k(~Vw@KVt`EjdiK!;jd-@yiT{!{Ek5;F8Eq=gG@kzN9$#JZbLIp}@POT0)s39(%H zY*0oAWgDznvJJCl&4PEOp{Ubnty)j%yDlpu1~&F(VQQ)#=05gkO?*grf{Pa~qG{8n zdPn#*0MYR9aCGh36%QYBY0b8dmhi4t6z-)Q@%m{rUO$P3D2H?YH~AL5m;Bof-#qZm z1OKuIJ}VHV+R8`Ig7JNgN;rQ0HafRyfWY8zWMvDnVDdneFQcqS`j`FiRh+(6t5!I7 z?i_rpO-8jk^O2PJ9C0ysSW0eMY8Wi7++pY74M%4`6e-#OVXqJ2>bYL9u=2q8Y2oPA zMSyZ;3ZF8na84c&wK4&M&H@kjD*aZu6X2&kEimkc43Bp!Ln^8NODmo8!#PB)Sq)r% zqS^n(M!>kvK-UI9!|^~yHd0bjU~5~5Fz#o*vc!mcA%0OFnNU5a5wH@d3`{2vQM zRZk(7=O8Bg8KScSkSf&-%8XzFH}eYcF!#mqK9h0azya0-O_ynEOZAAY>bRm-B}aTn z72-*73S(xCPZF}V23s2wte@apP$}Ak2Q` z(zi*YHuA0v5w~SXj!;L7_un4J@=IONreYhM8ga^Ck1sg005ea{#FQyhuz2xe$Rr%d zO^uQxHJaPf>;k}RavnSr5ZGapN(IX;Iaz-97y(SLM zt-#B2gDCJU5~E|_G4>ctjQDsmuN8be^xx;(u7zUouKTPO`QeRMh`1$X>9^Th(p9NH z1U_jq&0m^*`ZW+B1?=W5ZIK5ahYZ?sn7-Bf#?QnZX1DKlVUSxR}mxU_5u0SG@;q{T`aB(mLvOU0i-x)}%2gq}sMt&z> z(xwM^s@=>&F@#&s!SsbnJ*cTMFt{a9@t&tDd?^pfr+JOf>9G3mODUX^kK^ z4O}S8#Iw|+NE8v0<&30|LT+YZY`3MTUUwNPRvCkYxQDoRa}qwpKZb-@f^*Hp)B)~A z8=_W&mF)ZQ>bc$sdwmcj_tK+B554b(uK|eq`c}rXXU}2hWQidQTA@KlS`kv3Fk6h> zORnJP7Jv57*|TS3&YU@V$Np`HZyxyOfo~r8H$3oJfoR|V9QY28@6SizQ;H~SW+^Q0*$&?~*^G0? zS~9>I5fOnBB?_{(7RDKBK$H%=zK)8{lub}n)I(iIQ?>o*$1?bDmH;vy5;ERm;f3~y zPJRgi&lnZm8^FfQ83MjBM3QXwc}PNT{bA)&z_Tz=svNBbe@T`kev5lazp*Zv@GQ{8 zW#UJ7?^6I#cJiP|VAn-t8K)zviU`q_g~+kfG!q0e6Xp1+=3-=LiqK(jEd<_si_ici z36JVvns)O;{JRu9yAuIZGc$aMxCx8+oq#Z({*Plr@QU>VjHtNHaLd}X7^15j%PHT* z9o8%NBH@iO!f(kC{Yb`uVtzBR0^XTlz{n+S(dvH;t!GA_G5CZF&o0D_6EiTa(=;p` zvyjtBq-dA}AeQB@=*)YeGJTdOGlF$+3yALeAuU?Yz_B6bR^kz=HQEGIGY(*rN#Ovw zdd!>_nK9?or{7X8eBu9)O3cuhWuOraG0o6JM&l2bHx$IKQe zUW*UU?*;00pR_mOYs!KqwUiGU4ySNxdN9z+1@P0)97{md7&$0ax-^nLe1Of=<*@8I zRHvK7Awfv&%w=~t{&58+mAG1EhZr78KQl&cV?L&gDST9v+R&&s>fj8kDa#>nEW@SE z((OxWy~=<$JAbih#Te5v*$<7}v1@i!SX*i)Euxy~wqx%gFf0w*XH>y}4*9};a#!%I zegKL$1S~&dEbo(nji-P(m4Zw+dtg*Mz)Amtg(3IpXWNG)s0mk6J*iSgRQ+_6TtS($ zw1#C1yvu%!m+9vrl~ZvtXCVPG*uR2@tYilSJY1}^yTqMPxA8^AmfNItB z*T8@2K$KE(DJ9pXs4doB7y=sy?J46AuY_V&Pj0c8qNjz`;eHnrk9K{hsrgwVkz(bX z5oq2(zb_RB?ml!LA>q-CS3{e<3XR0rS?h6b-?ERo4Tnuxh1QL0qFwVkA9eiKaF9eQ z#kni@(YBd>DXC9Ao>9}+pm~Gp|C)ba1czh7+)W>Se|&0x6sA4@hk@`cQ3P(zT=|eT ztJ!84j{mk$?|y|j_t&!TX9c2FTMW)4`5_>BasLXoI!U%6kE^fDGf!6}4Xl7@(@@0b1gTB#j%@bF_BrR_<>!HwX9lsF!|=MCCdq*$RAOY#IiCzaBZ6A_N8o!pGYSh&=*%>=8h&!h|KT0M=YI7K1ZJ_=@L)~I6F6;?*dXg5V26_Ha#6g53o zo(GtXjC0^ycNa>Qzpi%rv=|RqC8t6_f{-dE<=bM~p<7sS@;S@8tX0|xe+;dIQZ5Ch zuP!`~#lW5S5S7G5gKC!Sgb7W!$Tk^e*LqatBA>3_yn>g2{2G`GLN&^0egMKB0J-lO z)@bwZfR42Rf%dElmO5%{%A)MuyLSiA!V0!CSHZlk=DKN7;A5mr8UP}w^6WDNIg@hJ zvQ_+Ioy5ZkXH$&uHqyYQYQW=0%(s7Rg773qPQ}c~7#3sZz@%ma^#%x(#sk8)LYTEP zgAv~dMeRKh@!>7poz1XvTxGPb>&DX4$r6%<`0dnN%-#}&9H9&i$~M6Bcz-M(^*#D` zAmE;_HrB)uJhzU3b5nq)Un+^6LW-DM3?N%J>@cn!eV+HXgQWv%d)9_`5pO(t`v~_U?lJiprSU^V6(IyI;j`+w;`lv3|$EQ|l@3*YbaEp}+QXzM1O!r9#q(Wg(JJc7fIy|yW-8R#*5 z9`{A*V|0jTGT1FO3O^n(0U$vJZZ?S6YA#7d#&(DGWZ6Hb@JUt@|_O^vv z-2M{og^|z9`VL~J<%IkvCEDwe19Vv&tXc_}>De zk3xYzuL0>QVLD3N>s%M8UnviWkZi*HoL8)#l+xc84myC_r-BTg*wEm1%)5xg8*gLV zwrv!M?+zLrXRWgH{z=>AeON>GGQGg=}#)!sds;(@D>y&Q1=v^0+!aikcE5 zs1|%p>Ak|(AlQi4!o-Lpf+CZOj3J2SftRTc^ooXy4-X}&?z1YtV67_Q z7*a_g0III~#C4D|jj8sN(r+n!)c+NCPYG2P7>JFPh>V;xOD-vZC^gr)b7vema)dQ) z`h7E)ckB&gA3yMI>>vub58;jT$U3-#={=SzRSE$C0eB;@z}f^6&ZS8Tse(xpoyG&lhAIErGP0;Ks^e2i?tbL#-O zv;g>8$c0E_>!?3){*kh0vR<~ z)vKdQgVI=dppX8+5V>(mHoBExic+OK@#amKLC0v@Y5uC+C|%M6Jv-^d8J-#37 zit69DAH2Y_jeoLWhOvL0h}pd?6M~Fk{&cJbe+$B%Z#jSQhgp4M3k!i!i8X8?nGnYw5zYFDek zekXuEV@w~$Nz%UWG^Ax@qOx~s>{vO85oc-}C;3w(79%7q8g4EQZ0`N%vCGW=Bl>ql z`{wGTcKOE{{XP*B=50b!avD2#R(1~BG^x$z@7m7$+ktZkd>szD{&DfiFflR4@>xS! zgpU?6rYzcu@W@z3y4SZ$3-s>Xj9qs_{Gu8W)pZ>+vvM$h^=3dcfG&2%~1KMFp>tcp4ar_wh+6=HY_Xb4Oy= zfwNe@>nL2E?Ag6q-M73(KTtou0nxwpdeVOI^H<>*J98cW+CCSLp1sB|b2h-n%95>Y zbZy@d)5jS0GW|^5`>L9~fB!ye)~w0;Y-4POknS_#Vy=C4NFtNM_wZ5{B_-Ruc{8iq z`a7l(h*E=zZ-BFN0eNm{#jOI+Yzm-3!h}+csm4>7nFFz00!LFztf|u(y~?Vm`eaK) znDgi?mIqvcJa*4TMGO!)<)SB9SSqkw2y7V!He z;6-j!T5&Qj4`4uZz+QWQgt812aVd)A52-jBJ{_j!hOH*wJQ0Y+gAXwl%in+hU43{- zw;+$)1xQpi9r%E2Yw$dJ6qs~Vy=UkjuMz#m1riOuqab_H>XcT>hhrJ-=wsfzd8`(y zn0+w>&k2UPiEj4K4x2jQ#IqBO`0CQZOOV9oAnDyZSR~rRD#L&pUkXGKASGZ*DZTWQ z7+2*I$fNdf;6v3i_&}5~crxV}k~2%=)!WvH{_q_j=i%b3?bv#II9gX2g}ybH<5<8l z9C$nzGR1SH(w@1oH6}DUh{_&KF#gDQh)jNgz$YQ_@go+Pd`6dof=Co7*F+#gL^%rP z+x*8Sqyn4I08vUn4O-wB&$bHts7PJ$Ed=0u$-_EJWKWWsUrIHeCBgh zbgzi>LFcjM<`!HJxsIevt_auL%^UU0*2lQU<514695&zBjA4HcL#0ZUKv^uzh?pww z4CHYq0f|zkgndSt18(gAm)3wlW$`W}8`ydd2v$Y|VPk=mpPIwAQZWN^3=Dnid?EWq z=hl-FDAhu8)OYt!*zLcE=>tEV{*;lEX|p?T?x5bU^*}ZJ#2`zuUxwJf4Md-&{>50( zHQBMPcd>QWIdmUeA3sgeJ-Jpreo*bThzU=^?kB&%sfgwUBqD?=Vpc(`izrR^=Lsut za`$33!PjN`k6*#*Oa9okdJ3|$h3GkaKKv?{Wk9s^pjqhNu`$zNr}-g8+9*@*&D)r~ z)LdOaw0*znm@~dF3vdv4*mv|2=1m-s2Sls+mP4n3GjVXsY!vr!#le%;aOCuL7RCMJ z$R%v}?I=$Cwuk}LxxfC#O2o$g{3Eort8JX;uRXxQlUK2Q#YCpb{_ExgXi~2#p1pj7 z$IoBqDMAoWN{OPbXjsP&KMb6S-D{^Y;5~8vCcF-dVx?=euu`w%D4f~56d#h)n2)xt zn1DLfD&oqm$5_7U08?q8a~?i@okc{6KvUN^x9&a3u9c;^8Jcw;kGj<>G5-??riFmh zdx&gOyZtg}BZ|2@W8B~_te;(n%)$JL1E9;l1gbavejKOwE`@`gHI}U3#{eu{pJf~V zWT2Y3VF={5{b?%B?^}-4^bCXi5|@~qmzt~VI?_2wa&gJD!AMQZM3*6Rux`O^}66(dq#it%f{*6$UqFN7ShDafBux+mEmPIJQD>V!|L9MM8U* z8p~O5xJ|tc+Yx&vDq_YP8Tm z)c+-L@FqYhxeBu|;6xK$r zuoO7J(#VPZZX}mM9<>*UKc`;9Y-|r+@c|H-)Ir28j(CWohnmc(EDxUb_$XRULu60G z0V0tIRjO1$P*4!sR%(kKeRi-3Ykm`og_v`C4wjr>0y8r+#u#kkl7VNbC-Nk4jKpRr zo?Z=QGU`DPXTsGE7R($k(6-zq4DeVD2xwNFYf^w0XAGpMOx~!Dx?(%PwLHX`K*~Eg z+h#5sg9De=V_@wy@bzelWtV`D}ZN3s-_Br8ndIb{z)tBugl>vX<0b{+#{Su&MGLL>>duoA>`E3RvVs)id|Jn5JfNGsF-AC>ps2CofRyS+ zGnP(<^p#RBgy-Z6tEnp>D8@y`>3wTr!lllRYB&mOyQwp^2F3)k`^(u{sn<#0b(I%X z#*3I2@bvUVSXjOY6qO&upN0JWiF^w+R1|FvxVGY=q)}O1J!pzbn6Q)^FuW}iWqdf= zntn78rNx0QTeh(81A10MLPAiaND(I8;^*gw@#DwC&aRMpxO(3-h1h}aTUt}2)ZKg} zM@|!*@FDX9jt)7Bj(++}ASNA|gyk2Pvy*=<@-4c6=$cbusssF=h?B6sCIYJToja`D<$Jeta*X}rsl(bCD8ut_Xn~tH{Tbe8P z9kVzuTaZ#xeVYtq3KRFAyvhTjhfm+oInIXxudr$^CrQ?4)I#+7p&42>s)4wK1+{00zi3gR zWHC1u@g}?OAHX7>zpb9a?%gVt%I4kkBv09>P8D=&RZk6wYV!jvPJD}q>V36*+zupp zvUGaEC>*VfOkcbW>lSh^gm0$b1F5O0Y=U5GVvdx4OZ6X+yGO&5YjHg`6qin)MHABB zRGBmy+(_<@I)Nzdb9X23`m(aw`Xhmo>V@@0!M|Ysd%gs0KxA(UjHoNGCZ zZ9En=J!`_t#S0JLKE$mzx3J>k3Z{YTVpS5xMrKUH=IPU?@Ga>JP0-|~^oQ@qbGUb>sO9EPIc~?$`#M%JD;!q@~Bqi3_aQAKL5Vj(qPdH^bURMI(=_1D&8 z)PYeh=PE(fuZo4Qx?@rRLA`(xg>Ua8p#po z!1fngNTd>6zH%828>&kpX*&E%j))#we+#=7Tte5;_0Vsc;Sy#)*I9??un*YoKN{|y znh8^M0a39;itjs&#IcSsVuC|h74qeVSOds`gZI)~l6qz>|9TaI%;^>5XPs5U=Pg#Q~5)%Rv8+j9ss3K<+k_3fS+*m#w9c?QWjU+aoVQ(EM1fXo8Km}-6$25QbNB3yOFp7nNkj9 zRkiB@7gPP9T35gI0#TZO-*^rjzO7!jXKfC2Zva%&FW8>{`~=)6Im`Nhp&N%Oa%;lgR`KiT)nJ&)UO2Di|J_=TTyIe;Ae1 zJ=xdgKLVib+qcJs3m5d>9-gI2V%gCFuyj@S$y{KM?`*rm##lc)ECYFQfIKb+5UmDG zlyVc0nt&J68;B!T@O+Uv%8XN_^wLk7*X8bV?AS4M>eLBFd=pj^J-yX*%xXOgCPoEG zZQ|16&~JA?oC`e1R?&M_>xn(n_JH?ZLu8PmpA;Y`0Q&KnN(t&83Ll#TyT>dFgnz8`Y)~IJtjj zGmf3Rr4@*(j!U&&MdVi3xM^(T=WImX8WmZ@_^(sfapC#{7Cm!!bwa;xEei!ism}EN znN4}bo>iLvj5{Yb;O^rfwTP&$aT)@wbd8Bpg}1Gkn3vMpW$+yQ^kZ|K{w0u1ecZU1 zi$+u3EnWL#yB4qr=)fLr(78>0_F2oGldx#&pid4&somA{MixpM(oi5ebJFjljqOoj&oI|GUj8SSWjxu8Mt4 z`WigYWlt|*^8FK-?AsJeYPL7{xX-oY)cYr~WX)ZsLSQHhrk2j@1fo={x8pnzo-fa`h8LF}Nh!G>VHAO*NL-Dk zUYN7Dr`{G)KV)HO{q>-q2T%Nt+D$7VQ<{WyNgT2yNywCHqPYc3r4p1+jz*E}RJC(t z2~6<9p(rwBR&EV{G_;>YO=| zdHtlid#3NJs(Z_`2=BJu+c2;;M;w)E_Da!D{+X-lmrq|A7oGxVpD?1KRIA{C(9R8D zp`s2=eaBh1h>Pc)Nn!(-OQUC61g19KYYXA@BLU>^7H4#?H;4nI2#%EXyFcdpt)3NsM>{{1^_Y`D*qbytU= zl&k6**_4Iu`}-yit-OtT_3GjF?ey&3YMqhXV8@{g@bgathU$)^TEVM#o@3{#$%u)K zV>P1HE0tk&a-9dwM*r?DS#*ukbr-MOkGT{2!`J^uYDDzhwTC!->IU|&pUzTR>3FKI zn>3;)i#8I_AOf6kfx)bv^5NNysX+9%DrFehCD2SYq6bb~#ig51v2We9bP-TmLrO%H z$c$9=s|tuxS}%d)l$1{bDWx3j*xDkaW6`ARcDA5*GLekpZybWn(g0^av!`1UmvFb;#jDii|C5C|>9AhZmHz%UNx2{CXD^Mf8q z|0r3Yz6m~>7Db{cy&MIBdqa^W1ErMiOY$iOBJL*%-KW@t2MjP48 zS}Jc!T5tMgr}F_tIc+A}z{0=+p7T6ms;|CQ@2=-v)LT&xicR-cD`>VgdC zE^~n2(gIjCL!4S?_Bm0Gb-_tE9U;xcb7P;(wA&*KrriXE45z}qus`fG&PQe-`=Wu~ zdI9~Hb6~q+W#HyZ)gB`PrrB!=Cu)F)E=f*C393GN|IMAR;+-%z7C$Ws0!U|ba;q<{j_1D5 zaqr$e)UK`m`=&4hQCf7re*IWhkd1>G)?6A4BQw>cY%gwq!HjO)W)|Ilty<+yx1H)k zDWLGzpUL&-YP?S=r^Nh9fe2e`bGTJ4hv3i%ma<8ia&uPfX3V0rvD2?>bH-|_91*1` z=E&)*8Plq*wFOF*uwz6pM0!JYh+FrcgG?rauC5M74d{p_b*p7y&3%duyHBySOuPS0 zC8o%#y`8m6AWA8*s`^#6RGQE9CEHnwsX!=%YnhUah$kg&lO#K+4H4Urd7|M7arfH_a1C)T7Gtj!aV%wxuek_v?IG_`?`p#>CbAGHP07nyS4RAh+}UFYG(rTe^zJbXU| zV?^UkjKMiHgeL*k_m6s3Mt%btF9 z8XY!wK-X$rab%!U?V_4nw1e**0E#9SZ!~1Mp4npbEJq*Cg1(Dmk70Lq^}1Jk}9wzBnkV&B#6zB zwM*=}{VlZE>v^m{_J@7K$#5@3%QNo`Xv<`1@-+b6-g)EJvAfts%(eDbK(_|KXMeya z2=EL5D5~ga3zV`0tWAL(7g;oP?fzW|YETyYLO;V#k_OUK)~78HqP2+w7QGaq%$1Mn zm)*Gz(6llT{s@YIe}H)JOm0z_xs)%H3$!b zqwp~*4qsyuSaj6ISP!nI1}tTltlFjL2u+l-C>ll6ex|*7FUN-MGWHcirl$wgaJ`8> zy_=(E$(ndL=^?M_NMsTij5YxMq|Fd5E%n(Bg&l}edM#}N(gq@ZMh{)s67|}rk6KeY z?%pLgaB>Uhr~Hs^VYRM}?3{7E4Zm7fl5#QJH4!>O zF=GB)1|iA9(6fFC8xD{XNl!5zk{jw4n1lBzEtk@B$=uBcz*LJ^VDe_EKvZ80Tztl* zKN8SSF>@nMlEuj`Zv!bEOn)t23|yO4JsiL~SATNOM!kVwX>c4PTqybua$C^A&I2yvZg7Q33cqhvNMy zK>HJ5tc-9JK%xx%g?LsSh-5mAbal9`zTOJ}D=MU{_Xn~VVXpLx_ zE|Sa|M?B>KX>emCj76LO_6&w0cz-5fl-Fud$XGcbitifJdM3jL6PZn6-`;wzxUt zfY*2Y;}?=IvR^s5l%D-7$JV_v$dhj~BST=~Ut*XV$AgH~=(GRk*qcl;N1YL&*TfSO zQLI=o`1$#%YtG&;>_C*}NNmhRI`#DFQ#NN43j>s`UJQ1Q7Wn+qAD{pAM^XZ(fkV#> z#8|DdpXUKjFMkZ4w44QDvMNo>ZYIi+;h#6-{27UWsE3z7OTpHd#sfL=K!E~LqC39# zCMk!^ZlXt8j>~JXCvo+a4*>fi!QfeD_zv?K1y4q z>AzASu2?l8O4Jd;$|dWlpycff#LgR)>M6s;+aWgn4u#)tKpLgwK>=XZ6tbe-5Tl4; zwWl%C5X7=qD630VFpUzhde6}ih_tn&5T??jhiM1nuTIsa_ zt;Kq1W^9iZCiZA=6EXbq103}J0VA;p(MljYKr0%8+6!j8{ zfMY;Rh6pMNBncg$kW_;#$^i1{NGPHrp@@!vJSqZLUcE!7V^>hs%nEYmSS7VT`bdh>L!P-Fqa*?n7xC8Rn+I z#8F~cS#X~vQ>IM8(xpq8e&~y-FJNP$x(55P*JGw5O3~0WXU?#wJRkcNfN07(7A{tsyTMU&jO+;wWnE4uwAoSsS+hQSwLY0qW@p6*PNWI!q&DxfhZLY z6CJg3`kk@^#tq3V{ZQB(RM_T2UoL(7a%4qyY#gzqMmxA!J3uTHF=6C4VF6hB>KYDu za*`BOA4H6S`C&N*qBLky9B^(L5R=Rbsbhq}m*cT**Iw8gnBhgIiP`Fi-VFGR#^*Lb z0R35Xy!J9Z0gSZ?FrYb5f+$w=--;G3ihzIsjB2nKbxU#U2#)bZK*T5bhQEWZ zmLcrT%E8{W91L{0n#Fau`{R!10T3`9R(C7R9XZWU`x-)sv*AoqNRkjewm0NI0$4xV zjoLteXmSm?EDnlq`+(r9>9t42#t_)|V}vakElx({NMSgB{3wR?oUT$%MwQnnb#2@1 z%PbPNeED*&RJ~PD99*=m3ynLCySux)y9IX%9^4%QfyUk4-6gmL4ek)!Jy>u({qKEF z-MUZx&@WxpbIDwDd}CyCK|Z;ocn1OHkRysfSZotw;THNxfKgyDTaftXT(Rt2tpTrl zwbX^CXr-U+E*~HW z4<8xWdz0kK;XwWg5N2C$CD-n>R%P+rdL&*mT>E7wO@BDMs>>~o-FS=<&63#&ynZBN zAKGhCj(66hhzs*E4?3|H0--3NET6+i4~Xfa3KUH~0@*Jx8iDMW4C}+-Ov)+?S`Z9i z!(JOd9q_AR=3KCsmWo`4!MZ;g&nEix+%&K>={jC3$lE)`=%7C1~MV@d1al03@~D~V`K z@K;{=+wn??@z=5MN1hzWJCjJDHM`&RT1u|Z|0`?e3@&_al$c=^@=)o7Y=4Avot*vYT*1sOGK9fo^&T6`=pt`Yk}zHRM|24R1#ohZwaG7kJBz0$aviZ0 zfjDG{=^2QU5?FXDJS^$^KgTzhn|``y1g5Qiw0Euw(KYIX3ZuFA7Xa;^4wy`dIPJqv ziO;MJs6;J%$TPG=i29yj-Yp1VAeGf1K$0K=i<#O~e>_~VaUxVWo-d3v((s@lM_rNc zWMxd!Da9UphFv{uU06neikf}D**{wIg@g-*YpFnWH7&`3WF9X|kIR2Q!N z2flkYR7YJF>6>4_Dh4Rdg#C=Fjx^v0Sg>5|^mDs|%N0Pr+ z_kOBl!A*aa?c=dR|INddKOl=DqI2;68k2 z|Ic@Gb&zL9yWV(8WL+~;>X)>%MKWibpC?A4rxDDwlsD(K5BoSS26bjZN+9wNb9XK` zDdOT=ZzB8e(dtb~_=niZnV#~=Db8kK@XY!COiPK`8m&+)c=#%STxWpYi4MoiS{b+I z^CDhQl!D#q?5h&t9WB;eVuEa#_+395MSY7~VKC86r-}0n6$YGw?v5rtoD_9*4`cnN z5DWNe`l(=4kW~{w$)W`3PgLQTb#(o>Os~MN+thMYVrPk=7Rz0(>bZh5=paSy@J6BG3=M1Wtg0drWnL z8@*KisSmoYT-qwYJ!dZ9o?6KF4y2q2QR$bMU z{7^>Y%sO|@yyUjY|9W5SR51U}wicgQ3|jP%IGCZdJ)fWIEs^n{{lNm^>rSwfQS`2o z9hHvE&hr7(4vnmDik;_?Au}DY1gl^UwX?RC8QBAzS;@|Mj~N)<*=S4~HNMHx)fn_5=E=2PB8wp&C|H5fp7NI9{gL zcSmv)#l8V3LK?KQw53-;cMW@>F=ANNkOD|+y33Iq(SjJALkA(HMe#_lv|1d-@rfLG zx7Ed}Mn&u^$wEuRn9UVQX9#cy2(X%!rMr+Lrx-`w4Tols$u%>aD3g?auj9vM=5CY~ zmK3x(q}a>}KIzRR)T45+jrGjX%p?`c9+$FRiA0#C3zX6Q zbA@+w=8@F(5>O+_O+A`=CUa*8TBz>AY{97>@`&FM<$ujNBVcd@E5bQIhU?o|_}+6| zKfXlyF4G_z&cmh!K8nv)F5#_d*)_qJ9^7*dC~Bqe9HHfM2@r(494V=`9o6?;>2dWj88ru7;8#` zXUCxT_C{u_=t5Qn{)LB1n8M)khI;-{AtT}cOK_iXcYu1{Dvx5nSobyL>`-ZU7dLv; z>6i1ZHbfGYD@dVJ4CjRy6lHpv8}xPqmv106>HsfyDM~Z?_tiF0O%@Jv1Ql0YmG^Z@ zA}Ou#s*hGRkIn2Et5|tuxz>P_1x8RXkkEb{a|L3KC|_m@^8eO#o{(CBSc-eR%#1$V z3P)UxOv>asFNi%fQP(k+;f)&ewq^WtA1)#yqB(^pDr&a6fJs#>h35W@@A^#Y?CwCz z&-Bl;m(qT$E(#}supAMeGg<5O;WG(+_hp$dw|)vn!In2rY7L)6pROqbgPA%_QLEMH zu0fUqQ_52c_{9KQAV>idDg9|reU;^b)FDKKz(DnDpP!FUqkh#-r)>_IKTl8IG^*lC z!vQaMzb6qDlyU^?A%F^D^c3V6S(-l_{dmP`X_PJ=R@KNug!*$2d`g`6yVUSpV zn#~iYv$)WYpD|g@LCcxAW}{M+-?HhqOK*|~Qz0X66UT^i<=W~&P=`yJCbi8;aQg^) zUWkpFwX!*Ta<&GDc0VP`&+%ci|2ppLcwzt1Mnp#g>7H6#@Pdv-nqg_zuqN(07d&Qp zl0}}jKtEM(>X_Xzi(_py@D6;3dVhSdeo3Wj7Dqe6+MJ#?Kfo}IeHjruJ)|>vqN=2+ zWk-*io2{UODyvnBDlXv>71jY1LA|(JdidxV#EK=GvvhZpB~BD{SrAQ5PNHLEwc;?p z!bhSFZ|$hAo}Gu__0&YxY#`Unt#9B9Gv{!w=v!qdXDEgICC9ixR+i9&Ei>}@ibp~F zAp2{O5S>3I{Lg&uEJJ=PwD#K}CMZW3BTBdKsX3_<^0Mt404j71Ii@T_3Inv70ha=m z=STy<<1dk2ITfwzxl7D@P z>@rC&`-#9izi|Mvw7R|UMTQ>sl%17|`o|e*^oLvi?qy#gIzhG=3AUc;S7|AxHj6&w z`26yz)|h07V%X?{+?#(w*^D5b{L8JL3HVX4q#A*j_ot90#JioCCO>z&yG(9Q&gx?v z4R`v=Xk1z1f0qm_02&q@`d>a%n(()|ID~%;>!%ZsE++@vL|Z~#=d3QiZPYNv^#`iL3I5%#(q0FIU6+q^Xe702D^?4$#xua}P8R&@w z%ss@!3FBv3ON}Z5G{0L*A8brDv0fDBqz@mUrLuV{BEf&eo>uwq3Y!5i2J8O#Rf=Yq z(r(cgkAD?1MZ?J=T+M#R(X;3OX#oN*7LbPHbXmKV$Mo&WTiOtO4Frnge{ed@)(BmB z!#ML9erFz#zfN^tfdD>2d%414x$2SxK{LzZj(zWSxlc6_h3xd5buC#NZ$cIu$z6*W z%N+dE$hcu(mSZ37UYC+O7g5uMq9}_?kS%Wd?N?wqmxtB^84q-qWZ#Zv7%7Erf-#bW zjU?GY;F&n?bZ1(_3VUdr7%prQ*&B%$AU26aJj0Or?M;$z<7G1}FAm-*p6f>_bL5nj z!(Gqb)+bJ0_x{*C;`bUknlGjcD)`12`<_i&b!7dsqSENmx7s`d$DK2EQ{c-qy|B;G zWTqZVIoa>1+cS%)oB!RPgPY(Gu|OZouJ9x|n;G&-JoNJ4*Z#`xol29a1E-$H4?@Pq z_z((nvDM8 z3KG9}LkX(biW<5?R2;f7%bmru+ldWMfj&0fj#Dc$4W7<`sA3OZlMWKk4b3V3mnVhc zFL_8!u4iJnW#eB5zjGF43?dLujH?(d9=Vs6EikZg-?uFO!KnxwKgvwGbSqfH7jc%% zdDOsg)rTty6g_+FHJw`b2SXNQ?Zc`BnMw)Q1#${1CefHqy68ZUJ_V0?bh@7w9R*8C z#a%*5)1`~lEfitieGpYUW=vi&Ch;xL7A%N0A;a2JEs9roQm$%~Aa{yhc^0WA3X>HORHAGO5X}n0YTk! zkt#uORh`Od+S8Q*T1p~NdM_`w(nVl>$GsG&M5n|2tV_*aN&B5?lD_fL8s+M zzAU^*&-G|!EgEnK8&*#=PS2}y^n7Jv#og*6r zT0%;pcY-Lv{6N#g!+20kas!-0)C(4UQkqH{HeM;05pxgGMa3u$gj2x0o#H+pM=4Wn zJ9bIxg-h*=2VGLJ6|Bj5QDE%|+w$^YTj%C%tL8FrxLnkK_I-rJKNiufNzlTO&{;Bt z=@&V49=>#z<@*=0TTJ;q`A3g(va;AMFHRA( zG8z=<&!+LHnvXQofryGo(WWEa^~u*Vesx?GC|Q(c{kr~+=lS?v!eHHZhUlUNZu3emd; z{nLEv3-O15t3Py0eZp#e<^mEq`6yCQCKER{(a5r-tiN`T-3l0a#2(N7%~oxUDWQco z$|tVAdSf{HZw>dOC5EZ#J9*L|T}$6RiS}n`j9F7!i**^lxDOkeBp31)Uav#REzB2= z*89e4!3h@@GY`dOF3mRo2q?SE??#f0xQR!{$_m~d&)l86gx%1Gp@9F^1>u=XH<@*A z`)(qX&;q&|hAu6;>5W6vlJ}8<7C-DMy6K$wnudMd^p6UQcT%L4U!CU1Yh~&a?;W8# z>`&?8ZE!|ApBjtdfUzYd79DnNuvnsGgL%d1QUE4fX?iWpr7$$cqwz9q-04j3G`n~VheAA@6NqA$4@Gw*fj8tl52rnjYz;zE) zyOeVKp29Vca;}W#L*XNbPf!umsOeOb<9RnfN%|}XFc0W9b8{JH& zz8z!dQ%V1+Jl@5`nE3sT%D$qECoDd%IRjlpIx}(ekb)dW2SV^( znj-N&7;a3(;bn{;AJ*^xvxdSRX-1Z|F}g(y%)AZ_Y2&tE-l^|foG6i+!9)CW{IfCNxd39{I zf?`IdKm+)bV-o_wEAF@ND50e{?fn|w0WQ?zXl6~wnb3kPfb8j})Kt#qfj>u~yEZu^ z1l8RKCneB#T>%iZ-AU&o_GvK7ZYwypc@J&QGOBL0x{}!zgQ&=gfi8WFy|Q8jLs{b! zx#68eVwPk}6eu+`<=bDtv~uM~njOt=D{Y53pCyCpi@dS4HKVO4#X!>8*=YpnT*lq4 z7bBuztnW~96p%4tfQ(sHAYOvft7y_^{+sABi?9nPib~}S4vj$OqRF9JgIgo*0j7$y zcj?mWRuEjwR`9aNH)l^RX5-63ne30}D4?Q=MBk`shLQoKIR=SsX{@7_zS=nH&XS2{ z3t(bd9{40&>odwz(-%lUTx1HTk zErWQo^CpB-*wo(#=$4YMPoH4P>#dG>9{bBy#kLFAWsYICEgps47p?FD$RZdYZLWah zXgGxwI!IDd(wYt~JeAa?FAK8aBW7Y#+@NR`DJdyvC8hbRgJXA%XGkge^8^r9O^o|a zM-6ez{UT@UmN#kGh@umlr<%f-Nt>&gu^SP+gS;)yHYft6X*jkjp;0Kb&@@62=z><5ZZOiYaR3IMQ%vDc%1#o zsUD@lM7xA$4h1A?919V_^CUkVU>8rvvMO2FT-CeMXagA&`2lqnuYHu@XSk_^6YZPu zn$};o<13h=zpD{!v)H>&mH%QObuBvn^$)I+8AiT@M<7OcZ%$*JSFZ*dwo6G z+y^O5tKnrm&Yf4IDIoexTSu+z#57c-nIR20VO2Ka=8h(1HJj+7aEWOpDrBZdM0o&~ zaV%f$&lf8(Kc0{Cb7sV+fK|a2w`M6a0eq8CU6LZZ1H}c&tdBL zWTJXwMwcrZJQI-5c5{e$@U>0VNHySb-23AN^SdM^dw{!B+cMZ5hn#^12YVvT9C(JW z=+$5OmE9i=Vf1q8ONJ=#g$PQeCZeJn=49q9Y22_wCaX~Q8+(w(+I!9o*3nSBUaaIk z5TYy4oqAHa!`=!!k^~j_orl8 zy?tLfMHkq;NP1+PZJ@O$N#Zz4qbYe#5@5fJ1&DI+rrLI&KhLB`?`5a?-KTl(di~hhC@MRU0Eoa%Z_$YTPKkJUqY$ZuY{XqFFNFXw?=I`i3`mzp)1&s{Tn*ZBcXn#M! z4up=7G%!Ho(LMr0y#z0ww$mTWc%o=wVPXB_y6z!*n#(>v|TPSBP;%2i?G6wOej0`*)?Yub=qqNK929v+_LNilJ# zxpp=flA2_S@B8}ZG8lZ9lv1-V-cUl|i= zf1)B8j|hq+zn4YZbtvB;XQl=iGb%~Rd}?zbdSEfLyT_C8!SaPya${%`PJNf(^n4DY zIq@g%%NqenEDg%$?)@2YgB73i1*&s=bW}1nC){L8wyo z0JRWY9TSt-#?P4HyR?PIf=$3yoO9M8^o*&hzrh=dw6a!%Zt{i`PL4Iy$a`$reKjZ9 z^WK#8gQ<2GtulelIVS9i%N?MIzzrym7(n&}BRe`b}_T zbTA6@i+eV2^A=L4) zF3hrrR#I!pLTo_gL}<&u6H2HI&eRNo?E<9GkD9+qyj^n3bvwr}E1R05?xT#7%}$%p zlUw$cN+E6-O}PYFa{#g88HG#BQZ%+?%pl`9Gnr@17L z*DyULpf^umYC5?~5>muo`Gq85d-($&gu20tE=Y3GKP~E66jb|h<~Y3gXy9Zsbr;SW z*A2os)LJ~LhA6@!zYz6AfO5vt)fI8WBUqU-K8l9e1Rphxb}WyXFQX<%bJZ4KU{!kI zB8nZhE4^LKI8UA%lq&Zs4apz#y3G>D_t%dL`cbvs+M;gLg$M{fo>Pfn9RAp2Xiwu01h0el58ad~CKeG$ z?seqRKApDx>r+DSrwig`R)VRm^`JL~t$^E+J=@TEa02w1u=fKFX1J%MPkK@}e1Dc_ zet$n6Bv#YdiEaiSet~*=qi&Ze7DKzUC3(xo5EX(zYh8pfB@UZt;+zj2y9ah1u~8-} z2*de;=POH|(c1Wt%i9|<>>9#sqPmGzHp;JJH$waZ9b91P$J5izyESR*K6*jd{WUcd z=t|VjVk0M(>6dKcI>rMJ-fA+VOTpM(9VIUQHRZKdv4Y;+TMv6QN4eA<^JI+6<(VWH zYY)p!x7wsNeXcR9(2YwDGH5$x`}s$`Pk=SZ(rZDs@cK~kX9K4B;ciEG4r;bYUnO^irEMc`_-!TflF^N)i3neoe=!Lb%PlI#M(SoKoimrNzclGBd4e-1gSZ`cvQ(4AbS`b|ED9oRC zm6}LI!8y)WvuG4HAA9>*sCM)UGl%)g`B$1F)a75HRu&co z!a}jRo?rViXh|F`#^gSny?dU!va#DQIQXQd(xTCJfyUI8w?HxA5Q*ps2YHAVKv>-iQDePC-e`J)iiXbhWK8-U-#XmmN#hRq05LY1MfB)l8Fb~_x zoUF|@b$8bjI!T!8C=R>uvDeksjYyo+V2+Gbq(kP>ui###IGDi+Gdoe-RHjzme3(!? zH;a8sU7j^;&f!w^l2XAcxbT8FH{~%!p8h}Z#QqAJNrEpXo0^p5v)dAcl1!~Y{C*(j zFm1KwT;O`e07Z(&^yds=Z{YrV9UIhKX?nW(cqM(tnm+@MhwhMx}b| z`DKQZye5buXmdJWK0iZ~#me2N`reQeQ7eRK8jTj^R3Li5<8P$sGS`ch09jU3@8dO5T39*xOYEsIfav&v z#R}r;{*|?c7{8YC(CH9Fm$-c);12|w!HIJRukUe=zuvLn(c!ltp(zx0I#K$qs_fs3rjbd~X$Yg4cuT z=l1&@YF4uG(Rk=ptyqh1Ho-^2v`s0FQ8AbeB^4a^uV+2hb^+{`9C{gd(GmE{e5 z4P0<}*Znw6#^&fddUf{?2-w}(fv7H`S^bw2WOunC5^?=BPAh{d1zhUZ4TMmyVh8&n z^7?iP?)0mDG;x#-#Vg51rkHuHA9>*Vn<#&73(=gnJ7&R^4%hGVe!1gIoW4^^#0)E~OUOa^c|Va`~Fz zB*T#*71kjm%Aov9_|u4C;x;7eje9b9>>R(1NXXl1wx}DC`+6Rw7uDJ^f&E+_d@#4X z5R^QgW3+ts5q7q$w0Ta>Il++X7nj!k9o9s^7WjG^(WZ%jyurBJk>aKXBal zAdQGkFPwo2sdO1L*>4Y5;9G99-t6H-I#{oQgtJs~LPJVPkNZCNQji7@A7`^X2}EZu2|e#~&VC)-7+--!D*j ztIa4-Xh^Q7bvGFrb<6K;j93l|o6SU~y3)gVx55vVTe^Nqd-%YU5wM4?_rsoH4H~c& zi>%U8^;q!pt?vPRYQ#(5mbN?GTtZei@Rf7szJQ@=^Z&! zlQR9J3Uzdms_T&YA3gsNn`kg-?7JnmoZn=57s{}cw^<7IBa(&dT0Bpz;}s?*X43y@ za_EtTNmhldOHYxtXHRUn#Z<)n?3OqE@sDf%d{P@#@O*f<>Q;DyMZdhC7 z7FQXIl=~QX8>T@LgF|{1t>#VrK!opR}a>nqq>g2yId2p|LKa&~pP>#U1=xQCVM_3(i&_$8#h(a55 zl4Hj$ngW!B1=D!!$V_gRP$D9#oi3;@*~!JS6u=m5(y$6pR2G#8@lio+NH2+Eb5zGV z>PzRFw=kn;U-(axB3<{aqD6vavaj!;Qg|*c(+#L&k?j_yzIF(BziNq0H^8acRobGwCM~2 z?yJSpfisWF$lg_ECaNfkq`o)*-SHvXU<(Dl(*0C~Jjb#uso-8pHST;)k#2lm2HoCJ zE{)BXiD~c8zQpHsM0Tle?L_|+t)8Opa``m*w&s>qx`&}#`l3ZaR0QHPAyfEJD4=_4 z?@bs#(Cs*+TjO$xXlu(z?`v9Mq`57f@|$VMvdlD$s|!7DIN@7rtLjwI0^dGsFdA3( z|6wgH$;YOYNvRyyu4Nzk@RnvBd~GTMH%a~@QyRaa~17Wby0oxFJ$USrW~ne*jZ7jUYvP(8V5 zFr9Ky;QLFv+c9cq2lnXh?jNZ33}}QLnp|nMuYhXiTsCrHOCQhZad?^gsg5xlm4OP? z4b1NNBhP|b_Z;=j6vbGT$V&qIb92eREGK{O4AK^S-UbPK9505`E6`)`Ibo}{T_pDL znfromO8Nkg+KNEZJf80kmXI5;QDjGw9+}aM(m=u~AeOXSOjjrItHe(~eP1<}&VwMi zA>Nq3TgcU{LH$q0D!M!}!uFSy29PIwH^3^L`ZzFPeoLyjz+r%fuGYjgHvksX{uyMw z^9ZIF4%X&w61nU_V+)|Q=%5Z50^8*r{~mNpQ@Cc%gsZIULJ#OV7GY4x=LXZNV#!4; z?eli+Yc&y|A-)vhHh6It_2;CJq*O{*D5)>!QuG`>-Vo03FxS5@;gzj`MIk3b{J2mb z-yoSp!k&r0vAxf5RDO|@gI@O0-)*lXHpXt1G7qQw**1$RL!o1Xw2(}IfQ8tOPi0zF z3mLeukE?a$2B|iFbGC?6+fc z3M&7S_iIC}Rpx35O=s>Kb2_=}$D5A~Px_Z)fnM(QPcz#(DR@bxA}Pa^Trkr;Uelo& zuf$y-btE|x{xy2}a#Zx#aewR7qw+Los8i5-*bx>LUK4DnmD5;u8w=84wnDULN!&*# zqu|k>hnqqLX(*q7`}Mg7ZOga0QvL<)SWuK1G&dGG$y|Q*ptdD6hc)Z^kDzVe;8kse zr{#}Y093x4PD$gD#u*KJs}=5U@!ip-w3qG z=+vTB1QADK+0ZBgu~zp5#jpuHyw+d|`D7zl3wU3IM1vOAN-aA(NXwnB>qf7f^(I$Y zjk3XLaXXfG{eYy2AeH)_nsk=4Xcry1l-__~bdDu8aVek$BZc6s@c^+j=BOt? zB8X}vm;S5ztebJ-=PZr9N_}(A*7lFm05IXippS#_{5QOcF_@JJ^_BHFF(YG)N=YQ( zWk@bshS>=YGkVhG5({#(=Se`tF%TXK3d;ZE4d2uA?9h0z7F^48b7Nna@oev>Y;;JP z*SgBeK=d=@Y!oE#ZNfvTKgBDwJ19s*{Sx&F3mog{!5-x@=c+h^{ojK$uYHEd-{jsV zJDKbk0n~S!8WB!lYhi{lCrcC5cf$>}sdB^B$NPYmL<7V10N91yu98%?bZf&}7V7ub{Iu znQavpvo^lh&d}3>nL}D)_-%RO??F5L)NM8j&WGlco$T{p$sr_D2uQxXdbvOE(4WhT z4K{PgG(_zVg;4y`KN3Tks{f3J4jepF`0Qx|=zk2oj9F^Yl^_n~#)#$Q6XhQ>4_Z(% z3&lLg8SIL~V>{dCul=H6!|Iff{hIA4?~VeGy{)Dt3LP60v+HOR%J7ml3q0^I-WiI- zR8q~tTg(K4Sj@oxVwys@G=`a`;Iyorf=|)^(xa9OYW&|@6S8?8BUuDc ztAE@&qB>W7h1*sYz21H1&DnZ^Pf1gh2@`;VJwOw50gq#|R@PeWGp(rg@C__tzU?7D z&Zjvya*r(37q;Kuz-b%41ZP0gySGYtw^Sf8ytfk1vX9+lKKPK0F68EPL*f6%)cBf$ zhDTktZZDc92CH&gSU2p97qu`yTLBwgM1xgZ77Nhgv6&^qK`4!d)JoGKd--TVzM3gZ z1c6#0e~MGAYW-dx>=B4i?DLnJTnwq4LM~&8(8m5K5kGsGd3ay9hs+%J`}c+ofcnd~qHoAiSR9l^6^PU!uEUV|SN-;^uwuXIQXj!E zE*LKdJ_DYbkQ3Yl4ctkGO`^UtjUmf0KJ2YgIuP;G%f^@?_ZkGqD&3ID<%Hg-15Tn1 z3mKJ6P$jIX#gC%#{@8=iBN<+_oq6fLXN61eIGRHFIShW=Y_pueK_(VRv0rGTnXP75 z8;@J}NEi?Pxz+#jrGJ7oCN)QQ*?wtHmPXbH$CFIK?d|2BvD51+FYC9Nr45XitQVi2 z;BMv27onTL@6hr9H{cB(I%E6D|1F+h|5H5l?i(W8-@!RJGJbB9oMwt<9-3xZxL{k- z#ZZ!4O+9r#gNtoHbQFT?^k%i6BjD>O7Y_Rlh6`}1w}RuRMjD?`4UU2?K0td~?B8i{ zf(c52YrbBHdKEr*%eV*!0n5!`aYJqm4JBCznsSgwtgs?80iQiAQ`>G`uy;1g^O$TXTEriPj%uuyBz^tae9=%Sd&Amj>7$-1#| z0MuO(&3 zhwv*5Q*N66e~P1SG&FOIKWl4E?g49bOmq{>=*pRBken}<@bGH$F3N$)Ee6Naxf2vN zQLth9TieycS=Iiszy*=#C31nnHVNb=#H@Sb~=v!Z2<{9+}D+Gmf z&TsuFM)zxN6V-_=SU9qX@$O@KP~tNTz6l9#Mpb-G3SgG2qe=5ua}2im1_C^;C;&_E z3~kjFg7t$U3oLXS$WqF3y`Q1?yr`N@qFZ$p>Si^#TZ4?>k}p@;NO#_p#1j2Q{#FA} z_{+pP!)0O#et`MQ()9y24i1T71+50F`*EW3i^KKq&v>sCZ1i{5v~KrWEE1FU*v#!J zMD`M=%i^NNi1KpUbv2FFXIY?;LO`i~4Hnq>CsF@p~DE} zXUocX5T|_32xj(@-A{Ft5YP)c^8YaDNaqh>Z^usN7o=1t8G^7)%7MBY zFQY~;iprzjxT|%p8-(}n@t-)IM%`1t;AQ)~TGvU@2yr;w}^Wttl|r7po0v7lS3Wxkw%kYl*qt z_g4;JZb#KsXq7BfDl&Duunl7A1w@90Ed-w`D@~RKAGOz>BC>fITDZ>ssllX`XDTn` zY=wxPO(f6G0BF&Jx3RP`EsKpyAvi6PjwWXk0D=|k_~9eB+fYAXK)%mojn0;9Weab% z=BqfrUxmdl_Mx}v#${~V!5{xZ@TP*o!DHB|ze3pay8RZA=o3p5$<)vCF4yY}cO=?L zjn`G2^;9t0A96##;pyiY69F93Y!szViFBW79oZ`;A)@I}o;dxH{J|NcBfsL|3zoQW zHe=)C!Clcy*1ZV|sOsO(qkver|F+742EPI@NP7y~YI}wXc3VQ~BK??|ymCCD8IlWX zxPP-+CQMr^y>)Q-#78g1-Y|xG5|TGi-2W{$w;}KN)R(ZoTgJtvU@4DM{uQ=ZLmHzR zO^YhogR3bEg4k@@Uh_FGI0r&~hS0TJfCM-uQ@HkE{ek7uke7S7{e+C31FB36XrH25Aq1s{^t#u zP_ryydN+5(MJ8(so_XAHrw&Atc;mPv5Id4JNeNE?pZ%IR?ndB1Q$v$K(9AfnUNS@CH zQOan-D-3(NFqx)p&RWtDqmu(meXzdzUIu}k<*9~#Kpk5{+yFP|$<5RhelK!QFVQ3V zGmnPe+nQ=Bl9B<6vA*Y{&86=WKZ5T67MMUC#^@i}5%t1VLKPvXgCCs8ByC*(65iW? z8%@MG&8}9B-WNpk_>1L=Uo`p_?(sF3hz3C**yensb4CXu)hHY&{z%f-vXYzW4Lv?DwYB4!6Z8^adf>&D-x{AAvPa;qf972p?4vJb>%H%Jg4LcIL<<`m0 zzB8;0@0bR^6MW2aK3TY}3uMZ>?o^9ljfdfrd*(UMAILdp6PU~TL<(|_TEF#i0L=`A zwm5pyd1M7Y+s%gA(3LXH=j?p=O}GVmmOj>^vtb|pxrA~Qp!V1;(Iu}8vPg(HHNxr# z3h3pTk?rxS5o6VQtJ|YGWlJlNGd1 z?tL=3S~P4(@V9KoteHjKv(ESp?0g7agGuPwg&@tnXUM{UEHNN4Ol=gmX{Qa+5Navs zGyTnPVyS5&SiNA@f>Ibcs+dJtY+$l0Tps|PI>5j@JMiHGKf5zE6E(TowTX9V;c?gd zRsaBbdfe zS;J!O^_9WUFcq>`!@gj52y3I|B~^v?J3O;6jU>Z-{>871^YYj^*diy#D(81qYE6Ox z&D1VAwT>^BqH5J5G8CR)S;eN8uv_ri5VeV4vziwM88WMU5_YOh&c+g0W}%CXX1!w#6}0;^SzA za)xgx-@4W$z9ruTP%*5bU0*mZ;!}j0YxcjuAg38gIgRUBM0vE+H}o-idE7Z)HBDrPK`Fc|110 zIn{Zx(tiPKTA7Srt#dN~N|0q@j$luAkmJiEo+qhD1kHW*;NT{;0dXT_&)UI5Ag2-Q z!CyEfqjpHN{9cJUipva67d8*d>9vS*pX2`-S_EH=yUhS&yjI_n562!wQ zEOUCxz!t$OT3rWs!xvp`RkK@&4>Uw&VMTfG`7*OX>8lJHBaB~{MMSaX68@0 z`#$HKy+7J_U4Py?$@yGihxt-^tKty)74SBo9L9nZHZqc01q`6huX z?`?6!Eu-H@r`^Lo^g}=>;2y6&aP8}6s^iw#UT~Odx7gG4GkTwO`($#)gYvJh)KM5N zVWMUIwQLL4qOzvCe^wrVBzSOIsKH;;9s5so;4T(3h-44{3_9?3vP*Qbg9P;!z5W zP);=?u}QLnM*15KoS(}VDoO`v7iPD=$*9KDX|L9p9GD>qBLVpuO*(+9c`ymKvcvh_8p51gM>jZXiPUr%w58 zj%5(v+Q@%tGKnF9jVxS*&`Q&DUGRSXDHogf#!E)4En&O6ykgG0V}2W=3X=|>pMEl` z_`<2qHFmXpFF*d1Wy^Pe^2fyc^gNfxpv`QVHtJhj^EMme;Cb}IE>uNgE=hW7W7PLp z@s(<-&A)jYB*{*W&c2`Da1$j0;5P6u*%-6>+umP>CTjjU?L_#XpsYw?c?DBm<0x>2qI2pG>z~QZ% zo$rZTeNlmsZC?#mx~>t6Doli#tur4HEmR?OSk+YW--KV*<#a$;QJ#5n7;6cr`(*S% zK|-63f1yHPC4^5>)hfXboi7n#u^Hb1pTC7_BbQYI#sgW1`k=R6oUxHkOY(ft{jvRW z(Jkr5{%|49&=geOj%*?*7|h=&7bQg@TG_UvTzPLNMUleZ?=tF%rbbu20x5<`EQ_92 zwo_oVGKPy)#KGX+WFBr7w z!CjWALF1>&_qWn}(xm;xg!l5r>|Ko%vuX^hY*!4@vVe06{~8daQq~KcyTgf{Km&v_ zwGfB1*UeL_90$~xNco;q^9aPnSc{4A{FE`n zk9F&9c;a`9(jQiu*PQ$w+$HT^4`9bnbz&{6MOiGDEcyp2CwGfy2JcFWh&RH;jjmts zA|jrpF8r$%YMkaT<#aH{1lL_LH6ZrneVMyhAt1?gUGkHwHpRqwz%C{##fEo&IsO z1<$`f{@Ta?BHK+5WOzbt;+%)|xg{HVv*r6R5MRwZdp}%G6)}Wpoqei@nhMG-xh=kU zu{CI$6&ln2*49Xur#Un_U!7k0E#Fz6_|qqW;PPnl!N7%#HvGhtd!t0zhv*0M2;cKC z8m7GOVSn(()~M5V$;9_bNz&6Qf(o*nBZIw|*W+Vp;d-{LQHoSDmIrYUTP6?X+IFX_ zL;IXJuDH(M|1!jP97?hiS%Px~j})Mw_`B-{=XQgMyM)6QWkf0$RDU81?sSIp8&6{) z1aO3bkyPfRz|q1VqL-MRQAS>*^nTjYkTp%geaHGJe7yKBC5RWkJ}jWTOm!W32v0sn zh*JbyLB(U(x~#Y>))sCYn7TG5IX&!~W6$8J5L}iobQ;i_k~b%|{VH`xOD*z|Rw5a`-tP75N}TY{?NjW2Wa@Qk3VtR6T}f$scW(_AT-6ObYVXScFet502HnJ1-vv z{(sdT;Vb#?ua^#D`WI+`ksZg`5Aa`=S&;Wn`|U=egWPrI-z> zZ2T-V9{NV|{sfjEh!?TD<6G-`z;t`Mq?#l5h(jG(&`BvbT%CsZyWl~G$6ZOt5E^9d z^(Iqc!uK`@IWE%113iJLhQeLBqu563%ip`f_t=^mu5o@`APr zs=#?5r0?gP0xacigB9l<3_E>+WKpKzZ$Z9_H8$rsb{oF%wp?%DATzKg{mA>(7l)^a zcEa!bJ1}*XTjCKKBW&9C69ji(yyg`{QF7uz3tzlvHEFiDqRz!EHk-qCwltgZVl%tK z&wLe4UY3t08yy5me%W^H^WH22XH9K8iViE9#oSHklYn1r9(us<)=v6bt2>X-ySY`a zR*O&t@~O&B;sCt$Z`sTyuw+3CMe*rx+BCblnZpoeCg!5u(%RYMR_%uk|_Fck6g>_#JM=mfnHnK0jY(u%_oWl-FV*)=k z$~@XqH)kJr(xdD3_}L79A@@cK@u?0n+;5495Bb@2>-cQ(V}T!oSqEq1wFb76m$Tr5 zv*FBe;c3Am@DBo^{R``HwDhJ(NDz(l!RE{#QuMYTTt@w=diB~;MG@a)fB!}DEiGcJ zl-Iqb{+oI=C>*n>ZeoyAYeufaSrsGU?&kz-fRxL8;rnc70IP_s2^uVh?Sv{gK$cmG zpun`$C^wpeQP@_Im`LV~@7TfsT*8&Z^nV0{xdjo&EiJ_gchAFmTPaLli*d4~A3C?O z42Bh_Ta)5O$h>78BZ_Pu{Yt`R?@>(Z&kh^Aael+VxjU;y_1mZ&R)$*=*6WL&fSMs8 zzxW-Jd=ipxWP&W+HjB3U36UqQXF@iui$-bM- zA>UQ3bg-a87cBSV$#-yfV80LU>+}MF3P=K6Rx=`3!!>2n@wr^N)-OeebiXA&$Q7r+ zaj{)#_NFrSv4wlKlntrzcw7!9xJq4UJDq0ELt7!OTEw8Kl*O-@94B01Fuka3Hxt?YO<~A6)p=J1C$_>a zs0qm>05u*xA_4nH7PLZ2JULpBy@Q}-esPQ^Mf}xVUgkh*GYveFm(;nE9mftpL3pv$M2lP8q?>w~QherPpY@%z(?=(t27?k?$(p_21olk42S zqk1Yh_7m$OZ(oo3VrZ4C(IlS_X1EL5zmSml2wW;ZKehUtfMZpx$3kZ8hjwT^neRVb zO6&JcyYm@Yn#Q1pwuOKd?mx3n1U0=SrV?ro{Sb20=1C5}|6z;n#ouC1s((IO^da^$ zL7djrYDEZmPY(=N-liIvI}Jl}azlXt)^)in>y2B?CMI(2zS{x(qts{%awY-_;cUNR zxIR;h3JC9lA9G~s?#!WqTHnvl@G~&XCM1bfU(!|txF%ZnZQyV3nVfv2p$C4(OFzsH z5kAIWr;RfSt)tc55Wqzh1#KXsVf^Zu5bb$*FT=1|eUyz{SYRcJVmu3iE}(S6UWAvO ze>|KbpRLeN93=8y(lQZ=QL)nQhw><^o!%N|wex)fk3RnP6T|!>22GrrLAonkSW}HcEu#QMdq+3^%7gBbcq|yeD^af?kYspc48?| zSZ1{0(Wj@OffW=Kj87^5F6vu-r4!4`183Yt)L@4|yU|HFCtjKj6+#B z`Wfe&;rv<8jbvK+9RB2o-dkF$KmzZ!8PN5VO@^l0OLu<~vuf}F{)5h=L>sSf1m;9}I!A)bw zN(f)TrN-{8v%&3Os4dw~xUUcNPb_D?mVSzWJ3ZH#Ft4RbQMbW8TTwW9=a}%Fzp4J$ z17YV}{9ZjLhmF|3r~2MX#G;$X#gzKFBDfLrL0F!lwSQNUwWg@CzYv4p`<+*na}C@S zYcgn$Q{F$O)vYRq#q)lZA1NO+Cpi>+f(M8D>jCT+zJ_Q}#~lBYF=^5!uu4-FFC1TX zE#Ahi=*zNG!>6$FG#H6Q!C%haF=$iFY$UTw8N#I)O;x=^HMAJ;vt_E^Ld;>9HD8sR z{dj{c1WK8A5~t2y{X68O2EW3gmzHNP>BJ z*y(g)r0dyC#3d1bxve1Dp^Bvq7do*F(>clhgDCW`PQAt*5R#9$#C) zn-3!4UxA)0`@%xm)i}r?45qH0Hd|FKbss3286%~B^BH%?-@sbZiHQkhY-WS6H`ix1 z)@9uk+NaDj@ipFLl*lFRA;C;==`?%F&L10%mQ@2xA8{XI03-9y?BG#VwpwP zr+k;1Hb9|wV{jnpUKI$Fi@t)ROd#S<;wPHH?SN#tppXj6oL%*L$55^_LaoPd?vBq$ z2WRQN9Gl<)x{r`q$I~&sTF)z=@lqD<%OkZ|EHT^%#+G4)i!0;&Qh3^cBu^eyZ8tfho4tuN|>F)8c-WS?@V7zUZo}$eRch z$)Cyv_8ZUf4QaISMfn|CGoMo>k5RnIYKsM2nOTkdqnuU1L6rg=FNTFsVz?t!gH~jb zzS3JwvtY{!L5jiUU@L7lHABFc6JA?;)1qC+sbP|k%af7}i*Ouzife75O21&3ZFC-% zHaiWuBk+&BwK0O5Hsa!S^PfW<1W4ujHQGw_J$DpJgpD@UNY_;E^3v22SXZip94%!r zky{{?-D)xy{PeVQ%JY(K9cFX;=;G?}U82BN>8}DYXqy=K(vr)XwQ%|^h`*5tQCs>) z6$<9bgs=QWj*w(Boq9Y3s-DIxQh7L|D}k&56_uTKOp9T0o?WX;OW*~O<3&sdVm`%= z^AEC2+p|jhG3EM@cbvDJz`&qZeBvpPJcV&$-q{GMt91f#Lhk+p<4c*inqkU{Guy%> z_Cx4%L(y>Xpq!z2rCi~zc$}l9$?BxRY`#nauKnZ7mv;j`LJDuQ1;^qUEqN1Ca*gs( zY9{03v}!hO;o)Zv;!)}EIYnVfAFEdrG~y3VeT{8BF^1z%hRa9 zv{4hiKA}6bpgJ+YWREw+CN@8Pv+`4m`;5;IHcmlE$V|{are*)V$y+E)&xDkkSwf1n z@M!0G#-D<^#AyF9Scyhm>wZYV%}$$Goi1q!c;$&~)Ce(x^Ovst$@>F=VD%ii z@XDKZt#R|bKkhSOJpP-IEg<(7L`&TN5ZOVJim7-?>@I?dZx~z~oaBP<=k?jrLE$Lr zMvlve`Pp$tvea=c##Z9%&;_QP3=cSgAuSL`3(Lz=Q{6e#JhvHs5sS@U8s`7`R6r43 zSrX@*G8JD=cN|-;fIyD{uHGi4R2V55Z^pYkZUcy_QStDi?%YQTG@Sz?gTf61Ljn!M zOfNToFSh&$^{8*ieG}ds|6Zme_bJLn`uFG*PDHwx_?jyK%f8`2zOpCYc#+sIlEC>1 zDeD`ET}0%Ov^j1Fx}D4;trzj;x|e)-8J=&gZ8$FlB6hu;^SxdT5qAt(dr(m7V+3m+ z8b+QHY}U9jf{e?9b{BBh^o}8m21P)6@?Pw9DZpyane2H&pT2-guj49NBG4Q>)UKx^ ziN}E4AIR$7>A&y?uW!oLL?7vW-ngLQY#1cGuVWcp1#ZfGdK;^VRSL^}~Rrkc{BC5hx*cD`GhapZyA!Z+7=_s=R&ceZFCYifpvr@QO-rLld#y;vCwx-j4ka zq5rJ6?+*r1H735<*ean58V;Ly=|NR)o9FRkBZWP6M^toE85>YcU3Kd z;`LZ4ThJfR@Zln^#`EHkfK1m{N;di1t20XOrooqZfyB0-fHHow({h>xKv*N)DenxV zPpiI_V`{vs5&G+xGZl%hI+s+p$L$5e%yc4PNf^i1Rj{dU&d>-8CxOw_9@nLCVgA8H zp$s0P&v{C9~JJAW_ic8KX zcS$|ZS6SYOp|9lEg;1qp_x9=3h^+WR3z0be9b#~SJ3)P%fO>?P1P^^=Ac_uSl@t0Q zF;|4}CYy_NmJY@lRKdhsqY>pvNWC z>5sn_Jyu#Chj1NQNFe<`hc;(pb9jwzJCwS5dIT{q6iPmC&+axnwRLs*4uAfoW|b-z zSS`Vc=^DT&*AZ{$uQodx#-}3Qo=gwG-<7xKXEqBs@J9^Z!6-{9Y#G#{5CU1d_N9mw zLaMnvK>2TvqMO-25Ny3w!9_%F$J(7<*u!Mexsq(if{(G9>| zTMzaD1#KM~{mRvo)I%Vn27=Xi(YJ}Ru#pgFw)9YGzDPd2_PEhn!%QIciYJbgrN8?0QPwo< zY~#D&gVf=nD(vlY)#y;>I|UiM1Y5E`M@vi~Adi}&j^SYgkx*{h5R2SDf&T<(1Z30g zdtV{)&9?X+Xq~qi9(vBtp&8Pc4is{FTPgfu&%fEx}JTP9no|_&8NV*H* zq}8GW?BM7V*7HdqOpjNdtq3p2NU;1Jm7o8>ytB{1#dD z?>5)iGOgyZ*5Bp4Lfx^$x5jm=n2tt0hLp$3asM`A6!;LsvD42SU`5awLW_B9ahqW) z<`0jnw%o9QTk2{^BBf@kzE}#Jju3SXuKJRu@q4pkG3_23EivXcDoOxgv3^epfyQqA+|5yRLs%5^qTQD>Q%mh@9alp`;@ra~WZ8+K5pS|v+ z)doia$-|`&^S&o7XOKJi=?M-rTsK3K8N_|%RHju+_NLy|@t$6` zKN~YPfMEpx1?syxz^+kpH~_|bh0r(-{IcfRwu`tH@9%-eHl|#E2A$#4`UJQPLui&> z$If~}$#Es~u5fbAJTzyce{_>8TxH*v@2z5oRk{sfb6C$39582zGhTS4ExIsM@XCCD z^>>ASZ?DI3@ECA%2t@hS0LaQkq)^lYzkfY_buP>lf>!@?O`5`SfvvP+}fP&GI-D@?MZmQhA zZYNc!@iPVG_0UnT{SqDad&1&<2A5;+{QP{Hxdna!B9h4JSCJq+388wsHO!`scTk|l z&^lBIHU!-{TYSSVMeq+>$a=k%cS`0zPS11`7?$BAOXn9KXO9xNX3O*A0D^WH|O6#R4Gt!1f zBP0*F_919OL~y7{;&~KQ6|h7EmzKdF6X$FQv$I6jNBvd7JuJ^gV}BTF*HG3c@i|M0 zYQrBY4A)UDMhBP2kDBUAhDfB2$#WNxu5WOWh@8&a(*GquCiH3hX=W`Vdh2g{JVQN2 zaVIDe?b)#fT)?d4p4|Cu`WDqAF|{Wj3nt^ZAG;^fJ80YV8L(r$fhqPK3**;h6120T zaHxxLX8%`HoZ_Hd5}9q0<_m$yaeKV!I%>LPya~gw?Vd>41`q0|0iAOiAYFXb4dg1-6}{IKDRK%#@ywZLlRmL4dJF)FX?1SN~hV()J<4wnOg&q8LfL8HZG zTV%6ntkKkPm5%=UC`3LTB}Q{K`ChN{AID6|XLOGgOd0xxujV_PH5D5Kx*lhPJ;9L1 z)TpLDjc7O;^NA^9lXfgFP!_A+k(JEree3JlqQH(+iTOfGW@xGK)l2GC$_m2P79|(O zPj-kPC=4$5<5%c>v!$0fI_FCqOF=g`Fsu)TFma~2D~{XP-B0;>#x^?m$t_zpO$h_y zBX+MkZi_Zx}6y^tGO z&+?PMuCT)^lkPaR!By8>Z#W{*?$F4B#b&?~ijvu5j3}f}l zOhdg23aP=JzlvWD`j3%2oI=M`4R9afv(o?JGlx(I;cUNJxsLa85B0u!VOAMYU zAMdRkLcYy|1It(Mj!uM@c4qgEh>`dcW38W1rcC3)vp92z_=&_K?37{kQB+0yZHF`J zAsS=X#p-J4ph*1lE^<9wJQYEn%B2->fp)3Mnpkd07|1YD5wzhb=j4BvsA zrOh*`CtS^LxIq4DlXKhB+)Sepmm6Ax(5IwYqcQ=KSp#B9Z<~ABZUk(vSj5cu-EKLZ zl?7$2;9EFjG;myLYT(ldLBLTBO9^QFM@RjcXw&IFXGEx|@pd*XZact&MWN){-{aVP z{dKFGq*cH;j=7Ka7(pUp8&`&MQf9nVrbjs;s`}S>l;HijPF@C^ka$eNQ#ie&B zZmBZGk0JlK-|G)^PTsuYKtVeXF&n+D*1WywR-zU`Pd$U|vKe6gFPcwqJs8iE`aw3U zBl;K2%j+;Ubk29belX1E35=2Yh|r?yGXUEa72bPa1L%MGVZSy!Md3UQ)t7}X_4WFw z^}zHH$Zr&0_bT1^RhOPCkMtDw+M!8ed@XS7GHq7lr2+Mru(CIqB*B&E!cR*m+Sqw( ze>~NMg~9wuAMej}@#usr+WU12Z03GRFvbR#D%aJD0CFWT)gCLT(a-s7-$r{fBSV!N zMQP)6+#5Ub5AZsjI48NGymp4t7diI8}4QX0w4{raMlKtw%w-vD0dwU?7 zVty4SE7X~q&0-3@KbG-LurWYlB7Nreo|+KCkhm`dJ*#nkV-`Li7@>nTY5e{=>O*5( zpDv(B)4J(!I>?e@q)1SqZa1Qn^P0yXG&+N~F+el0SI~_5wR(T=gg;9SMa3`1i-N5NvJxg+CT ze7Dd59NwR|6F%z;BDr^jBWDjLN3=86`sqA3hX0X%z`J#j`STf^FUS|Bl^(^`wO#vX z9TtN3Q9~49JN$cu>Y zq$?=ya$qPOpOi+NpByN7uG@N#GnQ1>y4)4jz5UKf`L(~C7xbhO|8>K;s~++ z^s9WYEV$~b>lj=<>rce~UoC+414W8_OoUEE8wP(hS~^H?;4Q1XoIc>?jO+Gj=G($M z;&EZTi2to+W`#LiQIhYbo!JW|0l_Ucq@sdC@vwlyY76+rb{0$5fKYrCV}n6}<|h9s zVwxCuMpD4=(N;vrVL8g;DmT1D!!B?{$nCT~e^Y-gtW>~unX)bg?)UislkvyI(K+315qOPfO0 zX}=)F`;)8>cKgwY@zzd;eFQHlPAxc_QrU}ON3@hgr%lx&{|Q18eKyZ{HX^?-8$sy7 zYHzt`q}6%_oI=jkf&V2g@Ciq`oBekiTPOo9?pnr9dVbKF=5xwgdY+ z9Qm_}Q8lN<(x;66FHo$l2fTq{q8fW%@ z!cKlTr@22+I!HKcOaq?mo$~6g?M4ML-hqCB{=NRJ)lkbQ2u29ipnF#^gf}Mrt*tF! zY=w5GX4=<-Gfj68p>00?$wd6~68eM*u`jEc+SuAUQZ|)oE1H?r@;lYM!qNb`6i*<; zugw=8=8gH!DR=2p3G~x49G@zits??_UZ^C%U#P*aXE*sA69|qaJNv#K_6V!Ns2IY)ZzfOxF^9wO-Uh!DUT$b9M^p zyFNRj)MsbrE)68MTW><28{yj;+_#7??&2S{Rwm9*P|h2Y?(ZKtiXH{TP1y^}Kyecy z-A(>iTvedB_Vca;0fw*SbV*m^4MrxEZ%?ToTccHb7AvqB5#11jZ3pQHpa&q<8-OK# zi!$^YbkkYw{&3}|sZAPh#||-%Tc4Dxj3W{VNlnH6h`By|V%UPn?$5~+=v*Jje_s32 zQ;s)jl3=h%uA!VDpjnTB06sl^-e_cb^qrcxYTMh4WR^lOA&IH6uD8?oq2)Ql1$UQ= zS=3|eQ_RQLg!*1H8#FiuoB5JUYvp!QBT~O72%?0mi+mLbNlWk_dSo<im z2VYDTq4O;;R7cdF2tmV5;|6NRFI9-;hY8v$iz{%70lR(%WDYGa$q|ZwP}0o$?B}Jv zI}lPzNl6E1Bw~IwjJdR=JcEChX^RhFVPSFd@Ca9<>&@!c%~he5>_k{~yTok#p2BSS zIgZ#iDRhb@A-L2)TN~zoO_>HTGfZ(BD)d|hrda4YMajidtqpA-=WUF(;d0^%L49|h z;D7-rYLhT{OcX-G7#=}NmbQ@h$1D%aP$v#Dth43Dz8~b0kM;?c)wWX^sFc3azM2T| zVzo+DUlD$}f!Uli^~C=3h-+3$@W9~TG9LwxF|Y4v``NJc&YrYu$xKxj!VvXSY>vL* z%wCm+v-Nd*XpO%6 zR`Cem#tFUm0FH3l4t-lybh7I|9I>NZdcep+B0E#JEL zQPqvzZ5;>WB{m?7TmueCiy+fEY$fz}6*wP67&SlRY*3Fl@$h5)pmmvL-i@GB(9>A7 z`bp3j2Th_=+*4sg`K8IER!$Zjn-)G=!an|V1%jzakg(#Y9lJwl0wA;QOz$l)#upCuFl*O+N~DtS?FZkhwPOF6W{~gZi@OO% zZNR{cJX%=zf7j3Yofu&KsG=~Pzj-Pn1K4wi&kYff?qzkD@g$Up>Bjn(@R6wttA|n0-1QBI)%ehW-7jTpqKrOQy0fL(f8$ko-L`Vd9c!>k+jY=NW2fL<{D^&!)!KHC6k(sa_UUy zTPD%mgQ-jf_o5CPf%iHP0Ukc$m)bw2rZ9-2MEhpY#BZ+8Pea)Si`hWkctYgNp{4Mv z+`LA-NYW{XLoW%9A=He0bf@g^D@~?2uwW&K0@*>00Y$?TMXJnwwc&Agd?Z zg6IFMih+9?@#zMBc=fT@%ENyCb!`Vt4D6^T5C**IJi=~=lX;If6GB(AmD4yXgNYB} z&w74A=ok65l_KJ9G{=L!nN_jXZAoHQBMA+%TQ{UMohK|(m&yKbz42`>iotY0(VP!9 zM6xP&P1xZMWhkvYcX_Ki;(BucK1cFOv}68;UocWfoRPwWLXU4^z~80;0z97%%E`?` zLa$WJICn-=`1$B0ofT!zT~7X3O-VQ@Lilg-t0SK!Cgnx7R7ELIMSee$=gns*(RH(w zHaTh3u5-pvbNhtl;n8wi}CgVX&U6uzbn8`W;b zLr^gMUHErBO)o6)=toM)#ioWDze3}s$e9|Kmg-##TNx2rv@=s9Cg*DS$(qx1{U1?8 zUm-;)yQ15PzudUnOyS^vzdu$kOFC|O`>|Fvl|{nGKAXl(&mX^SsQ1$+u}h>-Y|uE7 z_?RMGUUD}xMp8~1Gi_!rAuY|mSe$x6=MT~i1?q`FOjT%1Q6cpoZVY*q(?|=0>bB6D zH)f;M)wB|jQu}k!xb*xhb3M1+iHXg;g8=!zw=(7b`BtjasV}x2d;+w0QCt@--(I)H5ej@?1`pTD%9c2PQ?V+5 zi>(IOM?33xhs!}OeHk-giS?M3L zKQR&sX=2Zifol{6rx~uE&B1hew&Zx?3sc##gvwPBWzyI@u2GAw(24PpB^F7b_?B)~ ztxiYMr1X1z0WNXnj4d4v`Og&FU3oT z;{`-XYW$(-dHr=IcuqEk!;oV7cg&N3q1R(dmi&(QZ)B{mG9ZTK93;_DXe29vsR~BJ zP%A%fCnMHesWCjgCfZ4(Qtk8PRw`o>8z#!e3Drr!?Bn+A$I~kaCLKv^L@p2}Iv#g< zxh3{28kyuswjm4bUCVV3sc*urRs%}O;?TlV_Sza$%6m_45{L(OH$+1h+F&8TfAIwj zu*Q5%E`s$SuiG;hB#S^_sT}SG^SmdIUJF(kaIsZaHo&R~Jy5_G53^PX_RH_;>j-o~ zrM9-1P8l?VUzhNQP?O0*9(n1RjUwCl@!w3@p2qjc6)7beZ|clVa*)!gNQX3huKvg( zhlKZw1rIX0LvjBadu5TuG~i@ogGRywp(CT_HtnJ!yp1JGE%Tjzqgg>aGV8KgkT^bcIYmFqm8*6^j$9>m%ZImHG|dyPMCFUG5veN3l&u4naA zUy1XTN}cWuFp4W$<77Qs7*to99fvdxkC^(3%GdxLrJH;a^FP~BP%(g`l{&T?w=@JI zF)%W+mN6v`D_8Hpe#%_zIUl6f2x|7Nl7U*PACf}sfIcb^rXhkUqE7nbj9|h-VNU-$ zKb^U7t}Cd)Prd3hgz%0#kTZ7$P%N{ap8bwpdrH%SzEOYJjHhs1*>D^a&2Ruq^n8`R zEob9+IJ0D3R5`BBf;);Hqg#?(YX>;&{Xtb$x-{3+I{sX_rlgb8mqB%!s2u;6LdoUj zt>zz(&)4LOD=Xw*zMzh&EP`rzm`t#ti-^SUEUc_#QB3+ z7HH`h2Yj+dn?1qMgg$^1YIuN`?Z2@%@!yL9NIYV)v(j?`CHz%xJ91VZ;7+N%sP?9E z+;q(fO6n!mXap4Ls=2;^m#?x~T5sUb$`c$qRnK^Axp7(fk;{a7r|+0HzjWro8yL!i zuD<-KIsuj-ftQY2CDNjm;`Yt)9R2Ot3brN?bLr4VVKKWf25wGh=fp=xgxzcEM4JgY zaMAS=d(J_P3(JozEW0b6`m z-A}}Q!fH;D%9Fyki?use3ssDTD!Q}3gb>tizmM(zCQTgJdLEGW@^d6-s3e%|+|XZK z@-2!UqsC|2;JaxJF4ZBGTrK>q)EOW`Nk*wpfc1e4?s>jFL>veLK&kC*)_22eATuy0 zhghRh2a37+yKj%CA#}c9vdP>3zG!a@pybssg1w&Tfg-dQWHjoliCw?_P|?EUn=fiz z&T$^+DlM}0{VeJMg&EG<^Ic!1ZrL4^>tc6vGgp({Qb@7<9d+2W+eGD66Iy1KKmiy4 zT~@1VCxCiGwD`)Odh;a+BQlZb%SDZRj;4#!cwDK>Sef*@EpD!F`|rCy_8VcuVuhuq z)|XcjcY=?9ZvYuuA(jq99;sSD|jSTB5tz3wLfaM+5n z_H39GC^0cHMcD|zkZ!g11lA$jG)KF67oCWTQG=L0ke=uNu;b(g_Aea~DfJ@jX;nDs zFdq>q?@oM1w$1GnG6TF|hSK-tp7Brh_1=i(2xwe$p&6@PBQjHU`QkP&qr{*Mb$ei2cmDaR&MiL~7F7Wc6Qazk!=zYJLXF)^FtZ7@g}Y zCWK_w6b!%dwC})d6J*v7|W<}5i zMPP)wjWEO3Hot#Y&}_+Pr8d@Wb2{#ogGvhaZ~`ckWFgEh9C!|xD3}JZs40)ohqrctv1belG9kcuWnSL;ic*6EOX_lZS z3MJma1feAQ&Qy*)L2aIu`=|AGMMDF$Xqs9B&0lJffaN0-!h{HJx6Wolcs73K&-4EP z#2HK@5}UU0R?fZ} zJ-t+xs`q9o+I28M0yGFaptaRi6v8*uP>FsKhT->KW@?U&@XWzl|1&EB?noFe&zDRQHOv=O zXQA7^FiXR%rAH|*k{85H2qaeNIwuTO!zb{y8C-`4)ldB8 z#4B6*`SDi@SQ{TjfcKGmAz)*A6MxuOOLvm|+t2Asuo0WX7J(KsKb9GV>e^c8Sm-ui zQ_eP3tltDy9hS za$pI%w{R<7sJJodFS*VzX`l$-`rKlH{z0Lr0!6A&6la({oU4cIR*bYeaY39FAxs7{Q75AA^^P>X>9g?6ITk2zOXwM{LG2AlW5V2;2j*5 zOh?A498QHPP-AOGj^Q%;dM#e8WO911`}ijJrE?#U&{)@%WiFRMPu0|X`L|j!<&;4vduJ4H@b-#`A$V6S@pdlJ|03T$6K-mhQt{sLB1fuumP-4r z+Ma$4VPj#r@Oxi>>ZjaTJ#&ScvR$akGwAeTSM?KaUv?TJl{VC%dm`$0lU z8TMXP&4Mylg7T92ztf@#E+X9E@a>}ZV1kEczf4FZ+PhiR$&&m$fl?+(m<3<fzr3d>}w0|qS>}f zwD#5v>0>c^Q-?21mcxQVr##q zpK#e7*LBnKh;7sQ09@1F5Fku=D5&G0Ah6N1teQm~I(1A1a3u8zzxzk&A;b0pw(+gXE0PW^0V!n$y zYb9~|ypFeAu$ozicr}pM&+T(dqo80Ho1*^Mx;a2Kyv6Q^y-HAla<%X!sO4E(%e7m! zGB-s>1R6nWX%XNdf@aa;ivzOPC-7=W-q;3zPsc8Fj+LQ1F97F+(@(Z_`*@U-cP)DO zv3V-8l=}$d|FQ2+Nm?kOP>r~5$9d2HU6344C z6cM4T2Y%7xc>_@4b#n^s-PO0G-Y0F@GsiHx27UHFVLH_qiW&9yDdvMv-yiAAIej%KqM-Tl zEjo)@I99dVW%a1_^SC3ry1HHZpTSqbq|=?UPHHI7J1K|dvC)agp3xLz?+JIut6lv; z6L!8v;tZ6a_(haB(E*yU9Cgxt`Oi;D4Q43Cc7aFB-c+Vud)6>}N=|)zlv2=eag|+& z@|sLTWmbwy^qV`hvSVEomu`J||H2C1+1|)yNf zdEFajAA}-oMLW4{NS-reV}x2!xQiR)iW$W&iz?5_|Ip?RTs-2MDMS|H45N@)E~OD$J+BLjAg!?bGMXA9Yj@s6-M-2y(-OnY8TYHmc1-=~A)xkUscuNCt@ZmT zPt3)Qgc8v;A*y{IDL-)7=~=7EUeN7Ve?@roGgrZA`1rD`aZ@B#`VH3F)mJNwr>gX- zEri|UN=;W~P%uLlxVpQWw#IN<4wc;KWH5K=#U#Zi%k)W^P)9^{J48Cdj@S2pO#fVI zd5(Ei@tU2L$*!XANT4xykATlYcjG|C zhDLss#hA(;xbocD`kGgg~WxGZvXilHuXuCX8(cnIkg#*)- zTVg9BKA-?;U0aVml?tVdc(M#8V6rDo0(-f0Wx0BiGQ_XSof}Uh*<#n}`u>2bvonhi zGLuHN(D18oly!tuol)Oz$n{JaPW-ORw7f@e**+T>Eq?q!#}=HpU4mh0K6x+L^E{g6 z$93&IZEl3}%kmkz-V&hIIuMlyjdfBc$D;3$k?XrFztBw=Lun`5Esxct4M1#)sC?l= zspau@1scaB7#o%BS}- zfKcx%VsEKT_65-fPS>by-YG^tqn`WKh)r(e+z!Rdv?|moQ8O8x(bc%Cs~+} zlD!nT7}I^4$>io*qeiu=vJ6o1$>n8=x92STt4+bLBx;{H{hGDVA~~Ka-ti@E0;0)2 z6>9Ho7(A93KSK_gDS8rFIX#^eZ!8m4K1~IH>Iiph9eTzlvP9vs^2bJ1gaCPeu*lQ| zh06VU35$!NN)c&?JDlH{R$dOwkCeWCttH4AL|2h^T?H|*w~b#(?m4Q$L4y%&je?aG z&32KtB}*}BWU0;wUgvc%0U!njV1Iri5!IUU8kYNjV=Aw5aGatsp>(6=4dD4YqCVWu z$kvcrwCPCJ9-*ZF6?CT7rWK3^fAr!&YvEBRZ+zmD zw1rVuz~eG;+ETJpg0a;(N%))JmA3T`w(^t9U!A?Y!yU%Z>cYO}RQjU0fYop8@wIR4 z#whVmcDt7aZTfpe3lt0P-ie?(_o*U__t{(_9<++CU3;j$Oc&Re@^OIhRx}l+V^r5& zm6C0gcAN)>I;EsEr8Ke9jZW}9859vq8up0>lMvG(XL#6iD+l4Z<{|J%*^ge;34^}P zq`*A;;1w#&iKdH@;l}I?zHb_w8(u$nNC6ji?qJ&V^SfVWCn2zgmyP9tskb*ZWtTRx zwmh;oB}q!E7BOnLQ;!Q%|4~ewkgBuDIYQdqH!SJ7diNSD{6oY*0>cvDR3OQmcLzDt z^oQB8jfoM}o%649pH|ieYfDUCy>TK#@mNmMPKK+(8#1knxNG}zvDbX5=Z8XRAG;2h z*)`hR=ztf}Gzp|Vqf3Zl*E=QQwqBopqnB{!GD(J7%5u`E7~gdKfkXS3TRXM(3*BUQ z5lfiY_s-~gAES^p1+V|`QPQzXbs_Jik|cl5vaZabll}0DAh)D&7C6lG{I%1o*s*|~ zO*mT6_E6dQk=oI29S-VvvK`fpZR||K2kVc6zp58r$3WW^eUB}O?xy&-WBYuP!B-UL zkI3n#9rB0Wl4|7vO{<2lDAg8nvnTsxyLQ3T06Dw1CMH)obPCUatZodwd!ewx>a{_! z`B|@>Ikq=F7pRI(mMWIN_Zqwt6rv_mm&bnUy{4?1+8zK?D|q}=4YIoDZ3X6(H(Q)d z;RiZ?wBaKHczC*gzSaC!bxMy|8mN1>m0$vW#idt_6>?1U`SMr`b+mh-+koUx4UY~Ejt^~afY`W=2hW7LZ~DFINfm-o2pe^`yDsPu~7ZHuXWX=&bBF!}w2 zP)pDDape6d4}c+p8&Ee`DOy(c!8s zCVASFxka9}cL#U{6)DfOOJGjmTS+ItM43#N+kd+KGg>}+pg_0Czkr-eTCmbO%bLM} zKO1zn#b^TLvu;gKSPLzGNQ$bB*Hj-(b=ALio~B84 zwF|+HroYBu9{BiXzYE~X?tSdoxnFNiZwP0?yzpfwh<)Lal8I7&YHYWYpl|Pu$6z2ePoicU^ftneKMS7LwSPH074#s=Fqi zPaprnerN6hK-701cG3%#qqFdVBNK87O|a#*~vN z>9s7dBp&P8+OK6(iLF%1t3wx96dH}ky>8ZO7N$lCds?>MiF|lPD8Iad4=reRhE!dn zuU9I@H`^;zdFeA(Y9>dvyLd5CkVL}GihtJVee(f8HnX^cJc__onCPZPH$j8ssA{Gp z%>q9}1)kh1kL3BRF#qDXovhT%a~D{=FFWtM5FBVSSkAdnJZ5e&;7Ah%Q{IX~WB$aU z!~dDs0^HPl%(WE>9!VQ`j(c6NO}z%r#%W@_3u?oajklb<*zL!~)sV4VV65^(85mgq zuoE#zR5QMx)PcBy`fIdXR9<-?-7A4^t)$BpbHobbG#o`~i|Agpu!G4x9@0s3y)_N) z7n_d6v9Xryurtumi1zm~po$yOI?)0C#I(I9A^z{Rqxny9U*`m1@G-emIQd8OPFp?p zSOXMSf!!DX&>B@ll(+749UCz|@ajB}!Mx+=3YEh`~FSNbDaDL0TI)gpd56 z4Se^0B<+gcII?L%(c@WR5aWw%MOSZb-4FxyL2b`p`XS)FZl(u+(fiIf`{~ffcRxLf zv?@^mSiiEPYCk$A^-`sll4D2V_Dze8Rnxl;iPVb*DJ3w{G55VF1|oMPe{lyPwgc8x zwE*i{wVMCh5>U8HHx+z!^~iYSkQwlxD{`FS&91lHam^I3-`~&baujm7d|cj&GIAr) zz@NC5z<*kcPO`lwofE#b9_wwkYG#<<;xfT z<6=is!%g;A^_`MBB56nA#@CD*)5;?qJd*~r?l@ zk8}gQd@2guk*a|Z|Ib>`L*|waAB9utzS+e!tUS=dRyeLAHthf!vd2AYs)8M3H_>WN z-^Xk`1Zu?5@h=Ai$on@H1rXcmxbg$(^HBfu9oQS2hA;GAMl#W4E+frS6h1%<;{SV6 zEd4C~uHI6sz@pS#1AM{{d-g>XYP#xdvlZO;FZ^V*=zn4~i3)`E{0!^n$ZnB5B*MWT zhb)1yXnwGN)MF&|mAI4K|F{!o&L9j}08W|rHajGBH*f0J5xbZS<)MYFi$sq0|3{8K zKGt3RBPl*T#Mk@Fsmj|w9mXY-w|(g~Uco<=IPpJ9R~y0_Y39_q6k4Cmtg#fIE=~58 z@x42|m@8D2XJ2Iqn?*+?W#&JU0vl+kVCv^@i$G|O-mA}rm@Rvu>p?^PY(YZ=)}WonSZ3?a zci@UiqLe;D;>T`N7cH$Svpz1KwA)(5yWTLlndllFT$s649uI3@9e<(>Da})ZlrAVi z2%)?(eM$V_;+A0XIdYUteZYs)H^I+xW2!<$>C6M&djWZyYbC3d`@9@itm5I@8AZ2q z4V7)x;&(j%Hu@vst`Od85d``chFG5g<9d}pmtQSQ`y_u z1$>zK9Utsu`eK{l8awwFf zsxUami?(kAt5`NnnkI*F-c1&=!# zc=WP%RF+KN#_CAu31f6Jn~>N6X6!yZ-0~(k)Yd8Q-rw)8`^izfv8#@;{YY*=%?StR zrpwRIq;iX$9VqGc)U3Gk&Z8z69PINc99#HZLS135DM8;*FTd(Xz0wIe7+ALTpO=+- zGMthd-7+_Jf-Sc}B@})pHFSv3-wMB*-B%%pCvdC@1kqhH_~{Y`fJ;aa4G4rbdw5xX zJ6zU0;r0wH&iPM^(+|{1kX}#V3u-h*tLUKfQV8+hn%!56=(=kB>0s*o;|1BpEwr<0!nQ6;Hm~roJlK(3(OJoL~YnT(eXdH$a z;*^w!FAetaA3e$ZR1|p5^xk9Y_#z&H4LHH&+eyKSjM^mnegmEUg2H}dy8+oW3#-A@ zXB^tsgp3Pvi_fNxdAZ@#K*WeLEOp~%$7x2T{?BEYJD-9sAE ze*G!DjB;pWK{X>ior6n2^GeDUI;oN>gt3N>PMN2)1_=C1^IGe3L+uD*n<6LHMUBB8 zto425uqN-=C||F%VVK2bXghtexWsK7O>{8oTBpXL$v9l}&0bZnhe3am1k+hLtc3BuUGo5X& zVRS00Fj6g$k7<~Sl5T1BJL%*dqEn*;0V(N}B7OU>cx2-Sd^#b+`46A|t@w{6aH@Oi z#!N2Fm)xJYSP8NZNOa;?(14n%=zqnMw2Hq(CE>&)VyXG3!;h^|K>>;tPO6$&soGik zu5Xb~eOl;#{~Z+xM(6j2!2Atv{3fhT3kJDOxd4aG?;zk9&VNuTCz_-CSWXAN+VnG` z{Ojg_gDH&svxlcDURlYP-g*?lzX5qMS4rhhO-F^Z<~jHt2PDby50WIpnQt}_L3_lu zi(Nr^yq0JsqRDj7)g(=b!K1eVrTh38csJ_c)F)quD~b_awD?tf8_SRv(9Ij znYi`l?AKaVPXi5`@C!wyI|nOO9gYB6sC!HrJhwfcO$)-IcGy2ew0shsqjvt5Mq$`O zv6ToaDsP8I826{>j_``Me)_!%Vmx>J9ovM05Vxh`rz))GtahGm3TJQ(UUE+RL6I%3 zOQ{22!4fyn{~Ou+-1eItr0*O}-m4l|bnmzXcd*Q-OCBEY-`cMs-uuPx?j6ePCe#Ek zW7vmEF>HUo1h0r2sub9`t24E^NxU!h)qh4Y;J(?He6pJ0=tXy<-AHF)(?V+JVnul! zxS*G}JrToQ`Hix>a0a@h80K--||Je7H2iEr&C3Q?G0)86G?}#n~L__VG;O!QHh)&RnJ$0p7u=Ax zB+|_KJDT}}Fizr|y*2!f*H}MaTAl$0>H-Y(zq#*ie@o0%#g$W9#lS9Us3t>r`IfS^ zuPZ-45Q9FdEd28D#mj&yI(KFP;^wJ-w|NlEr9U!u+9G?pV@0QSfvMSwZ@t8if4$0? zZTGgLu#thCi2pd{{vII_(+Cp#6Ws}6SUb_JOsAypvmvF5Dc5r~S2%R0&PDySm)~;G z-%|B|OjQ@jHKg*45?ev%{Qf8H7k)=O1GN2N+vzGr8q-y593z+*hkWNL7@>ZCHao4K(h zn!jKmfL?PRbNnx@=95+LU8NW<^=N&w_31VDP8W*Vq}p?HsJx_s)iec!ls5`jxxn+^ zI*yJ+F|AKe^yHu~tu}IvI6PVy|9w~+$yZ^OA-c`@M4b8i+1zHTJIk<9$wkyL_5 zgiGy4hbq_{w)}?0>D2V~D~F=I4XtwKM8SMUmt=Vm^L+R7Z+JPfZt-5%k*A%Xq1558 z*S6ev#KlNJk|-foTwH+w4oTneH3$slv?mqRZXb$Iy^zKo9XpxIA|KWV9(r|XsWP;0Wgy#*(1@mYm zGItg8s$x`}uCrT~%|R*pS@7%Ea7kwYU1RX`Xpn{eQ&EBFj4N0N$<*OUY>-@8j$JQD zMVM9NL>XaY5BV6!%fM#>EkvJ~KSo@K<@f7csspdgM1pZ44z8;1z!=pNHb=Uo834w^%{-K0W7cbLy=JEF0%zRJA zYp3P0rI0-76!z#GL*-hJGNl{MIUQ&^0n7IL!xneZS_p}n!I|`_O*~{Oeyv`5Dy}o~vHQ(gNb6yoU)Z&b8-RfcTX3gG} zjTFc?wt%T;A@GDWwg+qNEs9D?Iu8^PsVw;M{dg4nbA7kU2x7YR0(sW{JXGyk2K)7v z-DJ7TG*qdY_~YAqj$C|l$GEmI@PUxI%f`iCcyzL~r_TP=s~f>#XLN#2Pxy6@9q#`S zBN-zHMWmGi>3fx~$~Sl=M7@&2lJB)$RTuvB<|Scy(ZhCOW4zz_yTe(WXH{XvN9{(( zrt`%w(GN3~m0}|zG{{q9f)~j$rZvAp*15@*ny56i>h5;k&SGh!xF_kYhi}IgW@UyW zM_)WV0Fzr+y5!Djg@lgtI%TOWgUVN3?R9Ag!RKI8$~kYiPJxa;J>FWUw#%R9vnx5s z-v*-7Dx5q;5H@J^Itu$RHMmJ`&^ygz=Uihf$TosIyAA(9%n7PK%=4csXM5}u>}qm~ z^bHL<{qy`csX&G^1oAXsFMn$@0u(lNBeX+%p8_vXz9pc-6&l>Ltr}X_x=bg80K6;! z-jgV}zZD)4qMuAH+jt8S4#PL>ZHq$Gfs zGSe2ZAS^_~>8PL*CO@u%G_B6&=wgst=&da=fKUnmy8T757%0(!)&Ej0UHn-ngg{}d zGedFA2+p^8r-}57TepQ}|0J1#7=!xWFwaw-r@aEot48M^%J zQUkmcL0+KKfl=^UklU9pazLGY&}82!33RLsMDmG+)jvL5t^zHCzOsRUf-_**pC8pk z<@-PUw%J3cs0c)EPUoIZC$CXqzfxx2y%CWP=s8BwTy+f^%l4h+3+Jgb0^OYY2%!t} zK(QAZs~DSa4Ms(2s$3dWLJQ`msiEz9;6r>J@x!q^ME*`nvJh^)TAIiIMhh zZk3r5yNEFl=TfTkk$sbyjq~ICG}Kb*U>1O8PXQ{UiDmExZX+#=s|!UMNXwz-o)z2l?I4PllDlV!` zYS*k6-`IiDkd#BG|M~SsczB+}t5m(04igiUqXX~~nohzkM-N$6YL%LWsmWaS9!hCuakJE^_ZsbY&c~=+N9A-?4Lvo6t-?6ww$35e3GIyw)X1tH5FBb=4ae?TN`W=l8$dVblB72r)a)W zL08)=L)L!mekqabU?NGr=z-i=l1d+TlgtFS$W?96%^&yJ)@Vrw?94nO)0b&?WZl*; zj6Ag;StF(d&I@_={ycM@vF7J@U;Wd}bDanrm1(eEu41>v<`=mRGM7fjKD`>-pH-?k z=-_Bi6z;0Pth_a~?khwNaK-0*`xbPhYvlj}Ut1kC?h&wL1_~SEqdG&I5QDdoW z@`MMW*I~tdKU(75th(1zcIL2BEA85;#e_uB%ChJB!(W5H{D^NxFFK(9jI58?{7q_N zB-ZCg)Ded*RUJ$jm80D)+m(a+0##}FtaAgQiGj1LpEq+ctkDU}Dsih3r>H}^3ks0^ zgfgjg-kA2b*=39!%lcE~u!C#C>*~V>ELI|^*|{~m7E?}hsQMkdsLJa>@LU>nzR41V z8}&YEOo3j0=b__GD9F|3z%G7|*IAa&%z5VT0)v}zd+hI71W#V^k)9xjKuMA2+IJHq zf`pu%gxt-^y5*ZXBM15Ddaz+3o41=Bs?H{)m(hedItgI7+?3omnfh2LM&3OGUh#CY z8+4{MrsNh*dQPAUxtgzwasc3UZOlS{rKQTvbIi2TqK-_^MpK@_z&H<-vHK?2F!M{a zjSCgAW1nva`Xz_jtJ+jqPU?Deu8@{)?omZ{Sv);G-}$7ty_e;Dp~OJ{ND zGxH6>rX=_-Ow@g{hfBs`ACtU7c)IWQ!>009lY@aH$-~PIH?nY-1qLf_Kl$PhyQLqRc#x_X%azH)Q0R;@#|a90 z&oH?h7F#rE~LHYt;Y zu(oC&4$!G6G(cb%#wi9pCAMJ*i6Ac&&cH*$ur_H6;hwmAHo1_FR_8${k8OZG>VVR0 z?IiO<1s`T>a-puu_5+G-4GM?B60`VRZOL(wQ|7p1m!BG+u&{2vkyDxLXkTN6yUeZE zwvDL3t|DRX#R2`C`UD3YlbO80LN~Ug!~ttmIm3z0y=Qnu(C+^3^lGD(Y(i~a_{FEO zc;<-Yc2$kqXZiyBl-OB*RMug03(5<=1{1e&Y4k7uh_r=!Tp0J>K}dzfNkyFjKnyP4 zU5#T9R$tOLTpFRZHp0;1n{qY8QaOzhBUayhq&3==j{o!oZEG9G+ z;>AyoEZ8$mkFZ!LNya4`S8OA)Xbv};ct(dRi*Vj9!IG|?`p09p=E1X#M+r11nzg6vLytHgm|w@!i?}&L)~|zI#!MFlswz} z(WA~Y^923s#~GPY-DvVf*iM)uuDL+>K%Cf#z^E{$)5U5&N1;D0+?3$Adf&mTL1jz< zib^O<+8y9ZGi?U!wI_J?8|Mb%>GHmovN=nt)wI>L`ZLBajU2*0JPfI%NSO8@Q{Roz z5!(#5-`bD|Si=DGEl0%spng3i_o0wrzWkN8>VBO~nmb)b>$A6w8xv3(?k8~0dm5xl(# zzZ;j35K&~aJ=q$mHpY3|I_A@Ur3Py-^+0wYPJ1uoaF~*BGZ2v$k`>0Ch`=BS1_IV= zM_Cs~k)qc_Bzs^lrcP}a`PHN(Hls(vg+1!wJCECM-x7OfZjsXv$|hyA8p$hUJyd+? zh@%ipZv8%oSx7k15J!tT%+oRQY}b&7>kn@obfN?9;U8u#W?i~|b~z>UEN`!$&UkMz zFAqFyuB_sK13OoSL7C&L9#2ni?>y`mr4D-KB*|3fh(E5{gqg)RsI_%F8+dC~;1z|L z-l`YOAKUOcxnGVQ@qp{U#!z@*!gZ~ztZpUC)6>vo8t4o5bfFSg+BKJ}cZ8O1N|U=& za9k6(mUbJzi>6nx*xy;DxF9Qg#MkEnbI|d}gBJz<3PG76k1fHA%F5q`Uq&SkiNfnhSK*TjqcXGJDt>227T7|EE}=WuJojc zhzFo6ere%?_d$((Z?e0r&Fv@MsQthT?y55VIeJ>8%e7kAXbxPpH)dsfX~5XQuDhPY z)s7Mw#?5y_ub76b+nvcfqxSs94bfY7v^b(QKs?dpJut!6fV{fLfXSoq+-;*s?55XT zJ9TA+8H*e=09!#pclA$+S^!~681NMWH9?-Dmwc|gOTp;0BT$tD+X?MmTqV^+JyF2g zJS%!}!C6%XiNd}Utt!Gpw79&J+?;LmsJ;fzB1hc?T{k#~ww?WAxaqUHx**Ameqo4@ z(!>z}N(v|Sj5X}sO1G*09!8PquH9@Vb)&_Q0Vv(g#LPBNEo29S>wsiVj+LUKs`@^_ zYhOQJ;((m@9PsS=m&Sa{16qW9ULp&qJiWN*9$vU0eBWO3u$(9VK6pV~n>?JYLqDJN zL^wMK$Adhy-Shgsw0%)4oqEZd>S-3XzOnvEw^4U@rL3AkJpr-8Wv>$LIjgzK_0(Xx zp-olT{lY$}##;AI5OvwcCqRU!Z2>se|DdN&Jsnfc!ww=j(Ai zdFom$$48=zBCSyed#$aG6BCc3c?}djmu-=G3uy5I)7N5*1BpxVB2C`>wMKe7Z|V99 z3K_f?AB2C_0Qp?zZ1%|-af|d|8cF%I>%3h<1cL-*ld=9F`A0KFYV_N*CM{4B3cb{$ za^4)3?k@VNtGBauZtDwFp4h;JE#xxiS-Y?KJnay23v zA@Zpf{@7`r|IqQ^u;aEdmfiqXHRx6*`ax#;TByq}KJg!Q73bjFvEpKI)OQvCR`jQmEnuoF#bz1y z?!eD$*EE)OQWRU74pD%7Cph1!d8>p_LGxW+~be&L* zW;fCmbHZuwx(6=g%@hw(p3P^XzDq1r0}oaQfFvm@K>3L81m%iAP@!I}9I{Qsm7dUB z8t-`65J}kXxun`9@aUs@q>)&`LU<9<{@*)%2iqsbUaHAL4OSS&h*4%5ANcL zM($z4Y`FztH@Qk{|A%5_{#|N8I|vdHtJzY{mBnn`s6OX+%Pm`89;;s*S&3QTwti+S zL2!GVn`^8oQ-iaM@9y;Uzn<6lmAcqtsqgmr4aTky$x}t@U@!22 zhDPEFm=!>yBsf`uco34BrFq8pAZKw*tmc6~1?Dpj1h$WYo`Lx8u}oM&_RX4%5eLvr zW>L!s)b_-nHz=e}mxA7b+tOfnW%k;(>&uaY1=Z5Io$So8`Lye2ZIbzd#s&{WL0Z`? zHI}D^z0x5OcRd?JFmn;SC?W zn5;V%8`71b#R*aneX^lHia0(xpw4FWDE&Mr9KG}@^S1<36b`PhcLnpk*+v~;{vlTo zn&SmC7CyTj2}`sH1;{#2FMzKkvVkD(LFE56~395=2leOGWHV z*BWh;#Ryz)f}Lt#KD$$#mDC|$z_>7@q9}F{5nVjT9S0` z9Ktq=;2wkqoy_cqzWGdgAD3bi=bw(>V=Ea0s5qGVRqxpTiNvf4RIy2D49~^1j~Siq zd_joLJ$lJi5tYlMP1|j1_=g#`K(1el<%LPg4udWsL@UD!^EFh)J<3!h0>$UV?|mb~ zv>~UbFO2rhP$nAWe}Es(9y3##+j<4{Tpv6xvE7zOC$%n#MQPy4M)gj|&JtY1MJD^` zWf?&w$a;LuxAGd0zg{|2 z#{>Qyhn0aSQNGZ+_}A|qA*nsj9JB*dxCr?RzB|bb83EvNqL8;3#M{3tzDF#3JF`BL s{uA5$a=rhb=>N}Yq5}TEr5<}sHH%#&iz=6gkAQy)a;nh6I}iQ-7i8itt^fc4 literal 0 HcmV?d00001 diff --git a/docs/s3.md b/docs/s3.md index 1a76d21..137072b 100644 --- a/docs/s3.md +++ b/docs/s3.md @@ -56,6 +56,33 @@ Based on our evaluations, however, we recommend that you use axial or combined t Axial topics tend to result in the most coherent topics, while angular topics result in the most distinct ones. The combined approach is a reasonable compromise between the two methods, and is thus the default. +### Dynamic Topic Modeling *(Optional)* + +$S^3$ can also be used as a dynamic topic model. +Temporally changing components are found using the following steps: + +1. Fit a global $S^3$ model over the whole corpus. +2. Estimate unmixing matrix for each time-slice by fitting a linear regression from the embeddings in the time slice to the document-topic-matrix for the time slice estimated by the global model. +3. Estimate term importances for each time slice the same way as the global model. + +```python +from turftopic import SemanticSignalSeparation + +model = SemanticSignalSeparation(10).fit_dynamic(corpus, timestamps=ts, bins=10) +model.plot_topics_over_time() +``` + +!!! info + Topics over time in $S^3$ are treated slightly differently to most other models. + This is because topics are not proportional in $S^3$, and can tip below zero. + In the timeslices where a topic is below zero, its **negative definition** is displayed. + +
+ +
Topics over time in a dynamic Semantic Signal Separation model.
+
+ + ## Model Refitting Unlike most other models in Turftopic, $S^3$ can be refit using different parameters and random seeds without needing to initialize the model from scratch. From dee6294d0413d0361d52096eb2656ae63f937b55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 15:01:45 +0100 Subject: [PATCH 7/9] Updated readme --- README.md | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index bc64a91..cb002fb 100644 --- a/README.md +++ b/README.md @@ -20,30 +20,20 @@ > This package is still work in progress and scientific papers on some of the novel methods are currently undergoing peer-review. If you use this package and you encounter any problem, let us know by opening relevant issues. -### New in version 0.8.0 +### New in version 0.9.0 -#### Automated Topic Naming - -Turftopic now allows you to automatically assign human readable names to topics using LLMs or n-gram retrieval! +#### Dynamic S³ 🧭 +You can now use Semantic Signal Separation in a dynamic fashion. +This allows you to investigate how semantic axes fluctuate over time, and how their content changes. ```python -from turftopic import KeyNMF -from turftopic.namers import OpenAITopicNamer +from turftopic import SemanticSignalSeparation -model = KeyNMF(10).fit(corpus) +model = SemanticSignalSeparation(10).fit_dynamic(corpus, timestamps=ts, bins=10) -namer = OpenAITopicNamer("gpt-4o-mini") -model.rename_topics(namer) -model.print_topics() +model.plot_topics_over_time() ``` -| Topic ID | Topic Name | Highest Ranking | -| - | - | - | -| 0 | Operating Systems and Software | windows, dos, os, ms, microsoft, unix, nt, memory, program, apps | -| 1 | Atheism and Belief Systems | atheism, atheist, atheists, belief, religion, religious, theists, beliefs, believe, faith | -| 2 | Computer Architecture and Performance | motherboard, ram, memory, cpu, bios, isa, speed, 486, bus, performance | -| 3 | Storage Technologies | disk, drive, scsi, drives, disks, floppy, ide, dos, controller, boot | -| | ... | ## Basics [(Documentation)](https://x-tabdeveloping.github.io/turftopic/) [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/x-tabdeveloping/turftopic/blob/main/examples/basic_example_20newsgroups.ipynb) From ff2edfdd63e7d5a0f66f61f1a1e7a11e0ce5cd4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Thu, 21 Nov 2024 15:03:48 +0100 Subject: [PATCH 8/9] Readded automated topic naming to readme --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index cb002fb..2f88904 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,29 @@ model.print_topic_distribution( +#### Automated Topic Naming + +Turftopic now allows you to automatically assign human readable names to topics using LLMs or n-gram retrieval! + +```python +from turftopic import KeyNMF +from turftopic.namers import OpenAITopicNamer + +model = KeyNMF(10).fit(corpus) + +namer = OpenAITopicNamer("gpt-4o-mini") +model.rename_topics(namer) +model.print_topics() +``` + +| Topic ID | Topic Name | Highest Ranking | +| - | - | - | +| 0 | Operating Systems and Software | windows, dos, os, ms, microsoft, unix, nt, memory, program, apps | +| 1 | Atheism and Belief Systems | atheism, atheist, atheists, belief, religion, religious, theists, beliefs, believe, faith | +| 2 | Computer Architecture and Performance | motherboard, ram, memory, cpu, bios, isa, speed, 486, bus, performance | +| 3 | Storage Technologies | disk, drive, scsi, drives, disks, floppy, ide, dos, controller, boot | +| | ... | + ### Visualization Turftopic does not come with built-in visualization utilities, [topicwizard](https://github.com/x-tabdeveloping/topicwizard), an interactive topic model visualization library, is compatible with all models from Turftopic. From 15f08be726e0d59ab9200a3139fa151cdbce69e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rton=20Kardos?= Date: Mon, 25 Nov 2024 09:09:58 +0100 Subject: [PATCH 9/9] Added interactive figures to docs --- docs/KeyNMF.md | 6 +++--- docs/dynamic.md | 6 +++--- docs/images/dynamic_keynmf.html | 14 ++++++++++++++ docs/images/dynamic_s3.html | 14 ++++++++++++++ docs/s3.md | 8 +++++++- 5 files changed, 41 insertions(+), 7 deletions(-) create mode 100644 docs/images/dynamic_keynmf.html create mode 100644 docs/images/dynamic_s3.html diff --git a/docs/KeyNMF.md b/docs/KeyNMF.md index 01535f7..f5367f3 100644 --- a/docs/KeyNMF.md +++ b/docs/KeyNMF.md @@ -221,12 +221,12 @@ pip install plotly ``` ```python -model.plot_topics_over_time(top_k=5) +model.plot_topics_over_time() ```
- -
Topics over time on a Figure
+ +
Topics over time in a Dynamic KeyNMF model.
### Online Topic Modeling diff --git a/docs/dynamic.md b/docs/dynamic.md index 6a1cba6..12aa449 100644 --- a/docs/dynamic.md +++ b/docs/dynamic.md @@ -70,12 +70,12 @@ pip install plotly ``` ```python -model.plot_topics_over_time(top_k=5) +model.plot_topics_over_time() ```
- -
Topics over time on a Figure
+ +
Topics over time in a Dynamic KeyNMF model.
## API reference diff --git a/docs/images/dynamic_keynmf.html b/docs/images/dynamic_keynmf.html new file mode 100644 index 0000000..f68572c --- /dev/null +++ b/docs/images/dynamic_keynmf.html @@ -0,0 +1,14 @@ + + + +
+
+ + \ No newline at end of file diff --git a/docs/images/dynamic_s3.html b/docs/images/dynamic_s3.html new file mode 100644 index 0000000..2d44f52 --- /dev/null +++ b/docs/images/dynamic_s3.html @@ -0,0 +1,14 @@ + + + +
+
+ + \ No newline at end of file diff --git a/docs/s3.md b/docs/s3.md index 137072b..0b5c050 100644 --- a/docs/s3.md +++ b/docs/s3.md @@ -66,8 +66,12 @@ Temporally changing components are found using the following steps: 3. Estimate term importances for each time slice the same way as the global model. ```python +from datetime import datetime from turftopic import SemanticSignalSeparation +ts: list[datetime] = [datetime(year=2018, month=2, day=12), ...] +corpus: list[str] = ["First document", ...] + model = SemanticSignalSeparation(10).fit_dynamic(corpus, timestamps=ts, bins=10) model.plot_topics_over_time() ``` @@ -77,8 +81,10 @@ model.plot_topics_over_time() This is because topics are not proportional in $S^3$, and can tip below zero. In the timeslices where a topic is below zero, its **negative definition** is displayed. + +
- +
Topics over time in a dynamic Semantic Signal Separation model.