本章内容概览:

监督与无监督学习的区别是什么?

无监督学习:寻找数据中隐藏的关系。

特征间关系:PCA

观测间关系:聚类

概念

10.1 无监督学习的特点

常用场景:

10.2 PCA 方法

第6章 降维方法 PCR: 找到特征空间中变化幅度最大的轴(图6.14),或者离所有数据点最近的轴(图6.15)。

10.2.1 什么是 Principal Components?

继续使用二维图像方法寻找 PC 是否可行?为什么?

求解过程:

  1. 通过特征值分解求解式 (10.3),得到 loading vector \(\phi_1, \, \phi_2, \, \dots\);

  2. 根据式 (10.2) 计算出 scores \(Z_1, \, Z_2, \dots\)

式 (10.1):数据集 \(X\) 在坐标系 (loading) 下的映射 \(Z\)\(X_p\) 表示第 \(p\) 个 feature 向量,也就是 \(n \times p\) 训练集的第 \(p\) 列;\(Z_1\) 就是 first principal component, 式 (10.2) 中的 \(z_{i1}\) 表示 \(Z_1\) 的第 \(i\) 个分量,也就是 \(Z_1\) 在第 \(i\) 个观测(行)上的计算结果。 实例见式 (6.19),(6.20) 和 图 (6.15)。

Sample variance 是 standard deviation 的平方,计算公式(参考 Sample Variance: Simple Definition): \[ s^2 = \frac{\sum (X - \bar X) ^ 2}{N - 1} \]

\(\phi_1, \phi_2, \dots\)\(p\) 维空间中的一组正交向量,例如在3个 feature 的数据集上,\(\phi_1\) 确定后,在与其正交的向量(无数个)集合中求出 \(\phi_2\),再根据式 (10.1) 计算出 \(Z_1, Z_2\),它们绘制的二维图实际上是原始数据集(三维空间)在 \(\phi_1, \phi_2\) 确定的平面上的投影。

问题:

  • 如何确保 \(X\) 每个特征(每一列)的平均值是0?

  • \(\phi_1 = (0.839, 0.544)\) 如何确定坐标轴方向?

biplot 解读

图 10.1(右、上坐标轴 (loading vector) 在表 10.1 中定义):

对特征的解读:第一主成分主要由 Assault, Murder 和 Rape 组成,三者比例接近, 说明三者有较高的相关性,第二主成分主要由 UrbanPop 组成;

对观测点的解读:第一主成分高的州(图右侧)犯罪率高,左侧犯罪率低, California 的犯罪率和城市人口都高,靠近中心位置,即两个主成分都低的州, 犯罪率和城市人口都趋向于平均值。

10.2.2 主成分的另一种解释

与 maximize variance 相对的,是低维线性平面解释, 即主成分构成了与所有观测点最近的低维线性平面。

图 10.2 是包含2个主成分组成的平面在三维空间中的图示。

10.2.3 More on PCA

执行 PCA 前要把所有 feature 的 standard deviation 变为1,否则会影响结论, 见图 10.3 中的对比: 右图显示的是没有做 unit standard deviation,Assault 被错误地放大了。

Because it is undesirable for the principal components obtained to depend on an arbitrary choice of scaling, we typically scale each variable to have standard deviation one before we perform PCA.

但是,当各个 feature 的单位一样时,一般不做上述归一化:

In certain settings, however, the variables may be measured in the same units. In this case, we might not wish to scale the variables to have standard deviation one before performing PCA.

一个 \(n \times p\) 数据集的 PC 数量是 \(min(n-1, p)\):

In general, a \(n \times p\) data matrix \(X\) has \(min(n − 1, p)\) distinct principal components.

关于用多少 PC 合适,一般是找 scree plot 上的拐点(elbow),但有时这个点并不明显, 所以到底选前几个PC 并没有一个固定的标准,见图 10.4. 这也是无监督学习(以及数据探索)比监督学习主观性更强的一个证明。

10.3 聚类方法

K-Means 是无监督学习中的聚类(clustering)方法, 其中的 \(K\) 表示要分成 \(K\) 个聚类;

KNN 是监督学习中的分类(也可以做回归)方法, 其中的 \(K\) 表示一个待预测点的响应值由离它最近的 \(K\) 个邻居决定, KNN 方法直接用标记好的数据计算未标记数据,所以没有训练阶段。

聚类方法 与 PCA 的区别:

K-Means 与层级聚类的区别: 前者需要预先确定分组个数,后者给出所有分组情况, 由开发者/用户确定分组数量。

聚类有两种方式:基于特征,将观测分为不同的组;或者基于观测,将特征分为不同的组, 本书只讨论对观测的分组(聚类)。 对特征的分组可以通过先将数据集转置,再对观测分类来实现。

10.3.1 K-Means 聚类

K-Means 实现思路:

  1. 直观想法:将(尽量)相似的观测划分到同一组中;

  2. 数学语言:找到一种充分无重叠(定义见 p386 倒数第2段)的分组 \(C_1, \, \dots, \, C_K\), 使得各组内分散程度(within-cluster variation)之和最小(式 (10.9));

  3. 转化为可解问题:

    1. 用欧氏距离取代 \(W(C_k)\),式 (10.10), (10.11);

    2. Precision-cost trade-off: 用局部最优代替全局最优;

    3. 用 Algorithm 10.1 求解式 (10.11):图 (10.6);

  4. 对 trade-off 做补充和完善(图 10.7);

Algorithm 10.1 计算流程:

  1. 将每个观测点随机分配到一个组;

  2. 重复下面的步骤,直到每个观测所属的组不再变化:

    1. 计算每个分组的质心(centroid),每个质心是一个长度为 \(p\) 的向量,得到 \(K\) 个质心;

    2. 对于每一个观测,比较它与上述 \(K\) 个质心的距离, 将它标记为最近的质心所在的组。

K-Means 这个名字的由来是在上述 2(a) 步骤中,每个质心通过计算组内观测点的平均值得到。 上述步骤中,第1步的随机分配会影响最终的分类结果,所以要多做几次计算,取其中式 (10.11) 最小的作为最终结果。

问题:

怎样保证计算流程第2步最终会收敛(在有限的步骤内结束)?

这个问题等价于:怎样保证每次迭代后 \(W(C_k)\) 单调减小。

图10.7:不同初始质心对聚类结果的影响。

10.3.2 层级聚类

层次聚类相对于 K-Means 的优势:能够提供分类数从1到\(n\)的所有分类结果, 并以图形方式展示出来,即 dendrogram.

本节使用自底向上方法构建聚类,

解释 dendrogram

dendrogram 的每个叶子是一个观测,从底向上,叶子融合为分支,分支继续融合为更大的分支。 融合发生得最早,发生融合的节点的越低,彼此相似度越高。 通过这种方法,可以用融合点的高度表征任何两个观测的相似程度。

图 10.10:对 dendrogram 相似度的一种常见误解

左图:观测 2 和 9 水平距离很近,常被误认为相似度高(实际距离见右图), 但由于 dendrogram 中树的左右子树可以互换位置, 如果将子树 2 和 (5, 7, 8) 互换位置,观测 2 和 9 距离就会显著增加。 这个变化提示我们:dendrogram 中水平距离与相似度没有任何意义, 只有垂直距离才能表征相似度。

图10.9:如何通过在不同高度上水平切割,从 dendrogram 中划分出不同数量的分组。

层次聚类提供多种分割方案的特点,有利于数据探索工程师从数据中发现更多的信息。 但硬币的另一面是:

在某些数据集中,层次聚类的效果比 K-Means 差。 例如一个数据集包含3个国家的男人和女人,当 \(K=2\) 时最佳分组策略是按性别划分, 当 \(K=3\) 时最佳分组策略是按国籍划分, 由于分组的特征发生了变化,\(K=2\)\(K=3\) 之间不存在层次继承关系, 无法体现在同一张 dendrogram 上,这种情况下层次聚类的效果不如 K-Means 效果好。

层级聚类算法

  1. 初始状态:每个观测作为一个分组,共 \(n\) 个分组,计算出任意两个分组(共 \(C_n^2\) 个)间的欧氏距离值;

  2. \(i = n, n - 1, .. , 2\) 分别计算:

    1. 找到 \(i\) 个分组间的最小距离值,合并这两个分组; 合并点的高度就是两个分组间的距离;

    2. 计算剩余的 \(n - 1\) 个分组间的距离。

问题:如何计算分组间的距离?

Linkage 指如何计算两个 cluster 之间的距离:

  • Complete: 两个聚类间两两观测点距离的最大值;

  • Single: 两个聚类间两两观测点 距离 的最小值;

  • Average: 两个聚类间两两观测点 距离 的平均值;

  • Centroid: 两个聚类的质心之间的距离;

基于 Average 和 Complete 方法生成的 dendrogram 一般比 基于 Single 方法生成的 dendrogram 更平衡,见图 10.12。基于 centroid 生成的 dendrogram 会产生倒置 (inversion) 现象,极大降低了模型的解释性,目前只在基因组研究中应用较多。

产生倒置现象的原因是,基于 centroid 的计算方法不能保证距离随着分组数量的减少单调升高, 即大组间的距离一定大于合并前小组间的距离,违背了聚类分析的一个基本假设: 小组比大组更集中。

反映在 dendrogram 上,表现为树枝出现了交叉,示例见:

Centroid clustering of Stanford lecture

Centroid clustering of Stanford lecture

以及 Google Image “hierarchical clustering centroid inversion” 中,INF4820, Algorithms for AI and NLP: Hierarchical Clustering by Erik Velldal, p9。

距离度量标准的选择

欧氏距离只是分组间差别的度量方法中的一种,还可以用相关性等作为度量标准。

图10.13中,绿线和橙线形状相同,所以相关度很高 (highly corrlated),但由于值差距较大,所以欧氏距离比较大,红线和橙线正好相反,值接近导致欧氏距离小,但形状不同导致相关度低。

在线购物数据分析的目标是识别出购买习惯相似的顾客,从而为其推荐符合其喜好的商品。 如果输入以顾客为观测(每行一个对应顾客),以商品为特征,例如“手机”是一列,“衣服”是令一列, DataFrame 的每个值表示某顾客购买某商品的数量。 应该以欧氏距离还是相关系数作为距离标准?

某些商品的购买频率远高于另一些商品,造成前者的影响远大于后者,如何消除这类影响?

图 10.14:不同顾客(以不同颜色显示)购买袜子和计算机的比较:

  • 左图:Y轴代表商品数量,袜子的影响远大于计算机;

  • 中图:标准化后的袜子和计算机购买数量,计算机的影响大大增加了。

  • 右图:Y轴代表购买金额,袜子的影响可以忽略不计。

10.3.3 聚类算法应注意的问题

  • 需要预先对特征做标准化?

  • 对于层次聚类:

    • 使用哪种距离度量标准?

    • 使用哪种 linkage?

    • 从哪一层切 dendrogram?

  • 对于 K-Means 方法:K 应该取多少?

这些选择会对最终结果产生显著影响,但如何确定采用哪个选项没有确定的原则, 只能多尝试几种选项,看有没有稳定的结论。

如何评价分类的效果?怎么知道分类是有意义的,而不只是对噪声分类 (clustering the noise),有些这方面的文献可供参考。

聚类方法对特殊数据 (outlier) 的处理效果不好,数据发生扰动时也不够稳定,例如从原始数据里随机去掉一小部分数据,分类会发生显著差异,这显然不合理。解决方法是取原始数据集的不同部分多做几组聚类,看能否出现稳定的聚类模式。

由于聚类存在以上特点,聚类的结果一般不应作为确定性结论,而只是作为分析的起点,为后续的分析提供参考。

聚类的质量评价指标

轮廓系数 (silhouette of clustering) 是一个观测点属于自己所在 cluster 质量的衡量指标,越接近 1 表示分类质量越好,越接近 -1 表示越不应被划分到当前聚类,接近 0 表示处在两个 cluster 的边界上。

一个聚类内所有点轮廓系数的平均值越接近 1 越好。

在 R 中,cluster.stats() 函数返回值中的 avg.silwidth 表示这个 cluster 的轮廓系数的平均值。

参考:Silhouette (clustering)

LS0tCnRpdGxlOiAiSVNMIOesrDEw56ug56yU6K6wIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgrmnKznq6DlhoXlrrnmpoLop4jvvJoKCiog5peg55uR552j5a2m5Lmg55qE54m554K577ybCgoqIFBDQSDmlrnms5XvvJsKCiog5Yeg56eN6IGa57G75pa55rOV77ybCgrnm5HnnaPkuI7ml6Dnm5HnnaPlrabkuaDnmoTljLrliKvmmK/ku4DkuYjvvJ8KCuaXoOebkeedo+WtpuS5oO+8muWvu+aJvuaVsOaNruS4remakOiXj+eahOWFs+ezu+OAggoK54m55b6B6Ze05YWz57O777yaUENBCgrop4LmtYvpl7TlhbPns7vvvJrogZrnsbsKCiMg5qaC5b+1CgoqICoqdmFyaWFibGVzKio6IGFub3RoZXIgbmFtZSBvZiAqZmVhdHVyZSosICJXaGVuIGZhY2VkIHdpdGggYSBsYXJnZSBzZXQgb2YgY29ycmVsYXRlZCB2YXJpYWJsZXMsIHByaW5jaXBhbCBjb21wb25lbnRzIGFsbG93IHVzIHRvIHN1bW1hcml6ZSB0aGlzIHNldCB3aXRoICBhIHNtYWxsZXIgbnVtYmVyIG9mIHJlcHJlc2VudGF0aXZlIHZhcmlhYmxlcyB0aGF0IGNvbGxlY3RpdmVseSBleHBsYWluIG1vc3Qgb2YgdGhlIHZhcmlhYmlsaXR5IGluIHRoZSBvcmlnaW5hbCBzZXQiOwoKKiAqKmZpcnN0IHByaW5jaXBhbCBjb21wb25lbnQqKjog5Y2zICRaXzEk77yM55Sx5byPICgxMC4xKSDlrprkuYnvvIzmmK8gJFhfMSwgXGRvdHMsIFhfcCQg55qE57q/5oCn57uE5ZCI77yM5piv5LiA5Liq6KeC5rWL54K577yIJHAkIOe7tOWQkemHj++8ieWcqCDlkJHph4/vvIjlnZDmoIfovbTvvIkkXHBoaV8xJCDnmoTmipXlvbHlkI7nmoTlnZDmoIflgLzvvIzov5nmoLfnmoTop4LmtYvngrnkuIDlhbHmnIkgJG4kIOS4qu+8jOaJgOS7pSAkWl8xJCDmmK/kuIDkuKrplb/luqbkuLogJG4kIOeahOWQkemHj++8miR6X3sxMX0sIFxkb3RzLCB6X3tuMX0k77yM5LiUICRcc3VtX3tpPTF9Xm4gel97aTF9IF4gMiA9IDEk77ybCgoqICoqbG9hZGluZyoqOiAiV2UgcmVmZXIgdG8gdGhlIGVsZW1lbnRzICRccGhpX3sxMX0sIFxkb3RzLCBccGhpX3twMX0kIGFzIHRoZSAqbG9hZGluZ3MqIG9mIHRoZSBmaXJzdCBwcmluY2lwYWwgY29tcG9uZW50Ii4gJFxwaGkkIOiEmuagh+eahOesrOS4gOS9jeaVsOWtl+ihqOekuiBmZWF0dXJlIOeahOW6j+WPt++8jOS7jiAxIOWIsCAkcCTvvIznrKzkuozkvY3ooajnpLrov5nkuIDnu4QgbG9hZGluZyDlnKggUEMg5Lit55qE5bqP5Y+377yM5L6L5aaCICAkXHBoaV8xJCDnmoTohJrmoIfnrKzkuozkvY3pg73mmK8x77yMJFxwaGlfMiQg6ISa5qCH56ys5LqM5L2N6YO95pivMuetieetieOAgiRccGhpX3tpan0kIOihqOekuuesrCAkaiQg5LiqIHByaW5jaXBhbCBjb21wb25lbnQgbG9hZGluZyB2ZWN0b3Ig5Lit77yM56ysICRpJCDnu7TkuI7ljp/lp4vnrKwgJGkkIOe7tOWdkOagh+i9tOWkueinkueahOS9meW8puWAvOOAguWunuS+i+ingeihqDEwLjHvvJpVU0FycmVzdHMgUEMxIOWSjCBQQzIg5ZCE6Ieq55qEIGxvYWRpbmcgdmVjdG9yczsKCiogKipsb2FkaW5nIHZlY3RvcioqOiAkXHBoaV8xJCDmmK/kuIDkuKrplb/luqbkuLogJHAkIOeahOWQkemHj++8miRccGhpX3sxMX0sIFxkb3RzLCBccGhpX3twMX0k77yM5a6a5LmJ5LqG5LiA5p2h5Z2Q5qCH6L2077yM6KeC5rWL5pWw5o2u5Zyo6L+Z5Liq6L205LiKIHZhcmlhbmNlIOacgOWkp++8jOaIluiAheivtOaVsOaNruWIsOi/meS4qui9tOeahOi3neemu+WSjOacgOWwj++8jCRuJCDkuKrop4LmtYsgJHhfMSwgXGRvdHMsIHhfbiQg5pig5bCE5Yiw6L+Z5Liq6L205LiK55qE5YC85bCx5pivICR6X3sxMX0sIFxkb3RzLCB6X3tuMX0k77yM5Y2zIGZpcnN0IHByaW5jaXBhbCBjb21wb25lbnQgJFpfMSQg55qEICpzY29yZXMqOwoKKiAqKnNjb3JlKio6ICR6X3sxMX0sIFxkb3RzLCB6X3tuMX0kIOaYryBmaXJzdCBQQyAkWl8xJCDnmoQgKnNjb3Jlcyo7CgoqICoqYmlwbG90Kio6IOW3puOAgeS4i+WdkOagh+i9tOe7mOWItuWQhOS4quingua1i+eCueeahCAkWl8yLCBcLCBaXzEkIOWAvO+8jOWPs+OAgeS4iuWdkOagh+i9tOe7mOWItiBsb2FkaW5nIHZlY3RvciAkXHBoaV8yLCBcLCBccGhpXzEk77yM56S65L6L6KeB5Zu+IDEwLjHvvJsKCiogKipwcm9wb3J0aW9uIG9mIHZhcmlhbmNlIGV4cGxhaW5lZCAoUFZFKSoqOiDnlKjkuo7luqbph4/kuIDkuKogcHJpbmNpcGFsIGNvbXBvbmVudCDop6Pph4rkuoblpJrlpKfnmb7liIbmr5TnmoQgdmFyaWFuY2XvvJsKCiogKipzY3JlZSBwbG90Kio6IOapq+i9tOS4uiBQQyDluo/lj7fvvIznurXovbTkuLrmraQgUEMg5a+55bqU55qEIFBWRe+8mwoKKiAqKmRlbmRyb2dyYW0qKjog6YeH55SoIGJvdHRvbS11cCDmlrnlvI/nmoTlsYLmrKHogZrnsbvvvIhoaWVyYXJjaGljYWwgY2x1c3RlcmluZ++8ieaXtu+8jOeUn+aIkOeahOS4gOmil+WAkue9rueahOagke+8jOavj+S4quWPtuWtkOiKgueCueS7o+ihqOS4gOS4qiBvYnNlcnZhdGlvbu+8jOS7juS4jeWQjOeahOmrmOW6piBjdXTvvIzlsLHlj6/ku6XliIbmiJDkuI3lkIzmlbDph4/nmoTnsbvvvIzop4Hlm74gMTAuOeOAggoKIyAxMC4xIOaXoOebkeedo+WtpuS5oOeahOeJueeCuQoKKiDkuLvop4LmgKfmm7TlvLrvvJrnm5HnnaPlrabkuaDkvJrkuqfnlJ/noa7lrprnmoTliIbnsbvvvIjlm57lvZLvvInnu5PmnpzvvIjkvovlpoLpgLvovpHlm57lvZLjgIHmoJHmlrnms5XjgIFTVk3nrYnvvInlkoznoa7lrprnmoTotKjph4/or4TkvLDvvIjkvb/nlKjkuqTlj4npqozor4HjgIHmtYvor5Xlh4bnoa7njofnrYnmlrnms5XvvInvvJsKICDml6Dnm5HnnaPlrabkuaDkuI3lrZjlnKjov5nkupvnoa7lrprnmoTnu5PmnpzlkozmjIfmoIfvvJsKCiog5Li76KaB55So5LqOIGV4cGxvcmF0b3J5IGRhdGEgYW5hbHlzaXPvvIzlr7vmib7lhbPns7vvvJsKCuW4uOeUqOWcuuaZr++8mgoKKiDnmYznl4fnrZvmn6XvvJrnl4XkurrliIbnsbsgKGJ5IG9ic2VydmF0aW9ucynjgIHln7rlm6DliIbnsbsgKGJ5IGZlYXR1cmVzKe+8mwoKKiDllYblk4HmjqjojZDvvJrnlKjmiLfnlLvlg4/vvIwgYnkgb2JzZXJ2YXRpb25zIG9yIGZlYXR1cmVzPwoKKiDmkJzntKLlvJXmk47nu5PmnpzmjqjojZDvvJoqcHl0aG9uKiAoZGF0YSBzY2llbmNlLCBtb3ZpZSwgYmlvbG9neSwgLi4uKe+8jOWmguS9leehruWumuWQhOWIhuexu+adg+mHje+8nwoKIyAxMC4yIFBDQSDmlrnms5UKCuesrDbnq6Ag6ZmN57u05pa55rOVIFBDUu+8mgrmib7liLDnibnlvoHnqbrpl7TkuK3lj5jljJbluYXluqbmnIDlpKfnmoTovbTvvIjlm742LjE077yJ77yM5oiW6ICF56a75omA5pyJ5pWw5o2u54K55pyA6L+R55qE6L2077yI5Zu+Ni4xNe+8ieOAggoKIyMgMTAuMi4xIOS7gOS5iOaYryBQcmluY2lwYWwgQ29tcG9uZW50cz8KCue7p+e7reS9v+eUqOS6jOe7tOWbvuWDj+aWueazleWvu+aJviBQQyDmmK/lkKblj6/ooYzvvJ/kuLrku4DkuYjvvJ8KCuaxguino+i/h+eoi++8mgoKMS4g6YCa6L+H54m55b6B5YC85YiG6Kej5rGC6Kej5byPICgxMC4zKe+8jOW+l+WIsCBsb2FkaW5nIHZlY3RvciAkXHBoaV8xLCBcLCBccGhpXzIsIFwsIFxkb3RzJDsKCjEuIOagueaNruW8jyAoMTAuMikg6K6h566X5Ye6IHNjb3JlcyAkWl8xLCBcLCBaXzIsIFxkb3RzJOOAggoK5byPICgxMC4xKe+8muaVsOaNrumbhiAkWCQg5Zyo5Z2Q5qCH57O7IChsb2FkaW5nKSDkuIvnmoTmmKDlsIQgJFok77yMJFhfcCQg6KGo56S656ysICRwJCDkuKogZmVhdHVyZSDlkJHph4/vvIzkuZ/lsLHmmK8gJG4gXHRpbWVzIHAkIOiuree7g+mbhueahOesrCAkcCQg5YiX77ybJFpfMSQg5bCx5pivIGZpcnN0IHByaW5jaXBhbCBjb21wb25lbnTvvIwK5byPICgxMC4yKSDkuK3nmoQgJHpfe2kxfSQg6KGo56S6ICRaXzEkIOeahOesrCAkaSQg5Liq5YiG6YeP77yM5Lmf5bCx5pivICRaXzEkIOWcqOesrCAkaSQg5Liq6KeC5rWL77yI6KGM77yJ5LiK55qE6K6h566X57uT5p6c44CCCuWunuS+i+ingeW8jyAoNi4xOSnvvIwoNi4yMCkg5ZKMIOWbviAoNi4xNSnjgIIKClNhbXBsZSB2YXJpYW5jZSDmmK8gc3RhbmRhcmQgZGV2aWF0aW9uIOeahOW5s+aWue+8jOiuoeeul+WFrOW8j++8iOWPguiAgyBbU2FtcGxlIFZhcmlhbmNlOiBTaW1wbGUgRGVmaW5pdGlvbl0oaHR0cDovL3d3dy5zdGF0aXN0aWNzaG93dG8uY29tL3NhbXBsZS12YXJpYW5jZS8p77yJ77yaCiQkIHNeMiA9IFxmcmFje1xzdW0gKFggLSBcYmFyIFgpIF4gMn17TiAtIDF9ICQkCgokXHBoaV8xLCBccGhpXzIsIFxkb3RzJCDmmK8gJHAkIOe7tOepuumXtOS4reeahOS4gOe7hOato+S6pOWQkemHj++8jOS+i+WmguWcqDPkuKogZmVhdHVyZSDnmoTmlbDmja7pm4bkuIrvvIwkXHBoaV8xJCDnoa7lrprlkI7vvIzlnKjkuI7lhbbmraPkuqTnmoTlkJHph4/vvIjml6DmlbDkuKrvvInpm4blkIjkuK3msYLlh7ogJFxwaGlfMiTvvIzlho3moLnmja7lvI8gKDEwLjEpIOiuoeeul+WHuiAkWl8xLCBaXzIk77yM5a6D5Lus57uY5Yi255qE5LqM57u05Zu+5a6e6ZmF5LiK5piv5Y6f5aeL5pWw5o2u6ZuG77yI5LiJ57u056m66Ze077yJ5ZyoICRccGhpXzEsIFxwaGlfMiQg56Gu5a6a55qE5bmz6Z2i5LiK55qE5oqV5b2x44CCCgrpl67popjvvJoKCiog5aaC5L2V56Gu5L+dICRYJCDmr4/kuKrnibnlvoHvvIjmr4/kuIDliJfvvInnmoTlubPlnYflgLzmmK8w77yfCgoqICRccGhpXzEgPSAoMC44MzksIDAuNTQ0KSQg5aaC5L2V56Gu5a6a5Z2Q5qCH6L205pa55ZCR77yfCgojIyMgYmlwbG90IOino+ivuwoK5Zu+IDEwLjHvvIjlj7PjgIHkuIrlnZDmoIfovbQgKGxvYWRpbmcgdmVjdG9yKSDlnKjooaggMTAuMSDkuK3lrprkuYnvvInvvJoKCuWvueeJueW+geeahOino+ivu++8muesrOS4gOS4u+aIkOWIhuS4u+imgeeUsSBBc3NhdWx0LCBNdXJkZXIg5ZKMIFJhcGUg57uE5oiQ77yM5LiJ6ICF5q+U5L6L5o6l6L+R77yMCuivtOaYjuS4ieiAheaciei+g+mrmOeahOebuOWFs+aAp++8jOesrOS6jOS4u+aIkOWIhuS4u+imgeeUsSBVcmJhblBvcCDnu4TmiJDvvJsKCuWvueingua1i+eCueeahOino+ivu++8muesrOS4gOS4u+aIkOWIhumrmOeahOW3nu+8iOWbvuWPs+S+p++8ieeKr+e9queOh+mrmO+8jOW3puS+p+eKr+e9queOh+S9ju+8jApDYWxpZm9ybmlhIOeahOeKr+e9queOh+WSjOWfjuW4guS6uuWPo+mDvemrmO+8jOmdoOi/keS4reW/g+S9jee9ru+8jOWNs+S4pOS4quS4u+aIkOWIhumDveS9jueahOW3nu+8jArniq/nvarnjoflkozln47luILkurrlj6Ppg73otovlkJHkuo7lubPlnYflgLzjgIIKCiMjIDEwLjIuMiDkuLvmiJDliIbnmoTlj6bkuIDnp43op6Pph4oKCuS4jiBtYXhpbWl6ZSB2YXJpYW5jZSDnm7jlr7nnmoTvvIzmmK/kvY7nu7Tnur/mgKflubPpnaLop6Pph4rvvIwK5Y2z5Li75oiQ5YiG5p6E5oiQ5LqG5LiO5omA5pyJ6KeC5rWL54K55pyA6L+R55qE5L2O57u057q/5oCn5bmz6Z2i44CCCgrlm74gMTAuMiDmmK/ljIXlkKsy5Liq5Li75oiQ5YiG57uE5oiQ55qE5bmz6Z2i5Zyo5LiJ57u056m66Ze05Lit55qE5Zu+56S644CCCgojIyAxMC4yLjMgTW9yZSBvbiBQQ0EKCuaJp+ihjCBQQ0Eg5YmN6KaB5oqK5omA5pyJIGZlYXR1cmUg55qEIHN0YW5kYXJkIGRldmlhdGlvbiDlj5jkuLox77yM5ZCm5YiZ5Lya5b2x5ZON57uT6K6677yMCuingeWbviAxMC4zIOS4reeahOWvueavlO+8mgrlj7Plm77mmL7npLrnmoTmmK/msqHmnInlgZogdW5pdCBzdGFuZGFyZCBkZXZpYXRpb27vvIxBc3NhdWx0IOiiq+mUmeivr+WcsOaUvuWkp+S6huOAggoKPiBCZWNhdXNlIGl0IGlzIHVuZGVzaXJhYmxlIGZvciB0aGUgcHJpbmNpcGFsIGNvbXBvbmVudHMgb2J0YWluZWQgdG8gZGVwZW5kIG9uIGFuIGFyYml0cmFyeSBjaG9pY2Ugb2Ygc2NhbGluZywKPiB3ZSB0eXBpY2FsbHkgc2NhbGUgZWFjaCB2YXJpYWJsZSB0byBoYXZlIHN0YW5kYXJkIGRldmlhdGlvbiBvbmUgYmVmb3JlIHdlIHBlcmZvcm0gUENBLgoK5L2G5piv77yM5b2T5ZCE5LiqIGZlYXR1cmUg55qE5Y2V5L2N5LiA5qC35pe277yM5LiA6Iis5LiN5YGa5LiK6L+w5b2S5LiA5YyW77yaCgo+IEluIGNlcnRhaW4gc2V0dGluZ3MsIGhvd2V2ZXIsIHRoZSB2YXJpYWJsZXMgbWF5IGJlIG1lYXN1cmVkIGluIHRoZSBzYW1lIHVuaXRzLgo+IEluIHRoaXMgY2FzZSwgd2UgbWlnaHQgbm90IHdpc2ggdG8gc2NhbGUgdGhlIHZhcmlhYmxlcyB0byBoYXZlIHN0YW5kYXJkIGRldmlhdGlvbiBvbmUgYmVmb3JlIHBlcmZvcm1pbmcgUENBLgoK5LiA5LiqICRuIFx0aW1lcyBwJCDmlbDmja7pm4bnmoQgUEMg5pWw6YeP5pivICRtaW4obi0xLCBwKSQ6Cgo+IEluIGdlbmVyYWwsIGEgJG4gXHRpbWVzIHAkIGRhdGEgbWF0cml4ICRYJCBoYXMgJG1pbihuIOKIkiAxLCBwKSQgZGlzdGluY3QgcHJpbmNpcGFsIGNvbXBvbmVudHMuCgrlhbPkuo7nlKjlpJrlsJEgUEMg5ZCI6YCC77yM5LiA6Iis5piv5om+IHNjcmVlIHBsb3Qg5LiK55qE5ouQ54K577yIZWxib3fvvInvvIzkvYbmnInml7bov5nkuKrngrnlubbkuI3mmI7mmL7vvIwK5omA5Lul5Yiw5bqV6YCJ5YmN5Yeg5LiqUEMg5bm25rKh5pyJ5LiA5Liq5Zu65a6a55qE5qCH5YeG77yM6KeB5Zu+IDEwLjQuCui/meS5n+aYr+aXoOebkeedo+WtpuS5oO+8iOS7peWPiuaVsOaNruaOoue0ou+8ieavlOebkeedo+WtpuS5oOS4u+inguaAp+abtOW8uueahOS4gOS4quivgeaYjuOAggoKIyAxMC4zIOiBmuexu+aWueazlQoKSy1NZWFucyDmmK/ml6Dnm5HnnaPlrabkuaDkuK3nmoTogZrnsbvvvIhjbHVzdGVyaW5n77yJ5pa55rOV77yMCuWFtuS4reeahCAkSyQg6KGo56S66KaB5YiG5oiQICRLJCDkuKrogZrnsbvvvJsKCktOTiDmmK/nm5HnnaPlrabkuaDkuK3nmoTliIbnsbvvvIjkuZ/lj6/ku6XlgZrlm57lvZLvvInmlrnms5XvvIwK5YW25Lit55qEICRLJCDooajnpLrkuIDkuKrlvoXpooTmtYvngrnnmoTlk43lupTlgLznlLHnprvlroPmnIDov5HnmoQgJEskIOS4qumCu+WxheWGs+Wumu+8jApLTk4g5pa55rOV55u05o6l55So5qCH6K6w5aW955qE5pWw5o2u6K6h566X5pyq5qCH6K6w5pWw5o2u77yM5omA5Lul5rKh5pyJ6K6t57uD6Zi25q6144CCCgrogZrnsbvmlrnms5Ug5LiOIFBDQSDnmoTljLrliKvvvJoKCiogUENBIOWvu+aJvuWMuuWIhuW6puacgOWkp+eahOWHoOS4que7tOW6pu+8jOeEtuWQjuWcqOWug+S7rOaehOW7uuWHuueahOS9jue7tOepuumXtOmHjOWxleekuuingua1i+eCueeahOWMuuWIq++8mwoKKiDogZrnsbvmlrnms5XliJLliIblh7rnmoTnsbvliKvkuI7ljp/lp4vop4LmtYvlhbfmnInnm7jlkIznmoTnu7TmlbDjgIIKCkstTWVhbnMg5LiO5bGC57qn6IGa57G755qE5Yy65Yir77yaIOWJjeiAhemcgOimgemihOWFiOehruWumuWIhue7hOS4quaVsO+8jOWQjuiAhee7meWHuuaJgOacieWIhue7hOaDheWGte+8jArnlLHlvIDlj5HogIUv55So5oi356Gu5a6a5YiG57uE5pWw6YeP44CCCgrogZrnsbvmnInkuKTnp43mlrnlvI/vvJrln7rkuo7nibnlvoHvvIzlsIbop4LmtYvliIbkuLrkuI3lkIznmoTnu4TvvJvmiJbogIXln7rkuo7op4LmtYvvvIzlsIbnibnlvoHliIbkuLrkuI3lkIznmoTnu4TvvIwK5pys5Lmm5Y+q6K6o6K665a+56KeC5rWL55qE5YiG57uE77yI6IGa57G777yJ44CCCuWvueeJueW+geeahOWIhue7hOWPr+S7pemAmui/h+WFiOWwhuaVsOaNrumbhui9rOe9ru+8jOWGjeWvueingua1i+WIhuexu+adpeWunueOsOOAggoKIyMgMTAuMy4xIEstTWVhbnMg6IGa57G7CgpLLU1lYW5zIOWunueOsOaAnei3r++8mgoKMS4g55u06KeC5oOz5rOV77ya5bCG77yI5bC96YeP77yJ55u45Ly855qE6KeC5rWL5YiS5YiG5Yiw5ZCM5LiA57uE5Lit77ybCgoxLiDmlbDlrabor63oqIDvvJrmib7liLDkuIDnp43lhYXliIbml6Dph43lj6DvvIjlrprkuYnop4EgcDM4NiDlgJLmlbDnrKwy5q6177yJ55qE5YiG57uEICRDXzEsIFwsIFxkb3RzLCBcLCBDX0sk77yMCiAgIOS9v+W+l+WQhOe7hOWGheWIhuaVo+eoi+W6pu+8iHdpdGhpbi1jbHVzdGVyIHZhcmlhdGlvbu+8ieS5i+WSjOacgOWwj++8iOW8jyAoMTAuOSnvvInvvJsKCjEuIOi9rOWMluS4uuWPr+ino+mXrumimO+8mgoKICAgIGEuIOeUqOasp+awj+i3neemu+WPluS7oyAkVyhDX2spJO+8jOW8jyAoMTAuMTApLCAoMTAuMTEp77ybCiAgICAKICAgIGEuIFByZWNpc2lvbi1jb3N0IHRyYWRlLW9mZjog55So5bGA6YOo5pyA5LyY5Luj5pu/5YWo5bGA5pyA5LyY77ybCiAgICAKICAgIGEuIOeUqCBBbGdvcml0aG0gMTAuMSDmsYLop6PlvI8gKDEwLjExKe+8muWbviAoMTAuNinvvJsKCjEuIOWvuSB0cmFkZS1vZmYg5YGa6KGl5YWF5ZKM5a6M5ZaE77yI5Zu+IDEwLjfvvInvvJsKCkFsZ29yaXRobSAxMC4xIOiuoeeul+a1geeoi++8mgoKMS4g5bCG5q+P5Liq6KeC5rWL54K56ZqP5py65YiG6YWN5Yiw5LiA5Liq57uE77ybCgoxLiDph43lpI3kuIvpnaLnmoTmraXpqqTvvIznm7TliLDmr4/kuKrop4LmtYvmiYDlsZ7nmoTnu4TkuI3lho3lj5jljJbvvJoKCiAgICBhLiDorqHnrpfmr4/kuKrliIbnu4TnmoTotKjlv4PvvIhjZW50cm9pZO+8ie+8jOavj+S4qui0qOW/g+aYr+S4gOS4qumVv+W6puS4uiAkcCQg55qE5ZCR6YeP77yM5b6X5YiwICRLJCDkuKrotKjlv4PvvJsKCiAgICBhLiDlr7nkuo7mr4/kuIDkuKrop4LmtYvvvIzmr5TovoPlroPkuI7kuIrov7AgJEskIOS4qui0qOW/g+eahOi3neemu++8jAogICAgICAg5bCG5a6D5qCH6K6w5Li65pyA6L+R55qE6LSo5b+D5omA5Zyo55qE57uE44CCIAoKKkstTWVhbnMqIOi/meS4quWQjeWtl+eahOeUseadpeaYr+WcqOS4iui/sCAyKGEpIOatpemqpOS4re+8jOavj+S4qui0qOW/g+mAmui/h+iuoeeul+e7hOWGheingua1i+eCueeahOW5s+Wdh+WAvOW+l+WIsOOAggrkuIrov7DmraXpqqTkuK3vvIznrKwx5q2l55qE6ZqP5py65YiG6YWN5Lya5b2x5ZON5pyA57uI55qE5YiG57G757uT5p6c77yM5omA5Lul6KaB5aSa5YGa5Yeg5qyh6K6h566X77yM5Y+W5YW25Lit5byPICgxMC4xMSkg5pyA5bCP55qE5L2c5Li65pyA57uI57uT5p6c44CCCgrpl67popjvvJoKCuaAjuagt+S/neivgeiuoeeul+a1geeoi+esrDLmraXmnIDnu4jkvJrmlLbmlZvvvIjlnKjmnInpmZDnmoTmraXpqqTlhoXnu5PmnZ/vvInvvJ8KCui/meS4qumXrumimOetieS7t+S6ju+8muaAjuagt+S/neivgeavj+asoei/reS7o+WQjiAkVyhDX2spJCDljZXosIPlh4/lsI/jgIIKPCEtLSDmraXpqqQgMihiKSDkuK3pgInmi6nmnIDov5HnmoTotKjlv4PvvIwg55u45b2T5LqO6ZmN5L2O5LqG5byPICgxMC4xMikg5Y+z5L6n55qE5YC844CCIC0tPgoK5Zu+MTAuN++8muS4jeWQjOWIneWni+i0qOW/g+WvueiBmuexu+e7k+aenOeahOW9seWTjeOAggoKIyMgMTAuMy4yIOWxgue6p+iBmuexuwoK5bGC5qyh6IGa57G755u45a+55LqOIEstTWVhbnMg55qE5LyY5Yq/77ya6IO95aSf5o+Q5L6b5YiG57G75pWw5LuOMeWIsCRuJOeahOaJgOacieWIhuexu+e7k+aenO+8jArlubbku6Xlm77lvaLmlrnlvI/lsZXnpLrlh7rmnaXvvIzljbMgZGVuZHJvZ3JhbS4KCuacrOiKguS9v+eUqOiHquW6leWQkeS4iuaWueazleaehOW7uuiBmuexu++8jAoKIyMjIOino+mHiiBkZW5kcm9ncmFtCgpkZW5kcm9ncmFtIOeahOavj+S4quWPtuWtkOaYr+S4gOS4quingua1i++8jOS7juW6leWQkeS4iu+8jOWPtuWtkOiejeWQiOS4uuWIhuaUr++8jOWIhuaUr+e7p+e7reiejeWQiOS4uuabtOWkp+eahOWIhuaUr+OAggrono3lkIjlj5HnlJ/lvpfmnIDml6nvvIzlj5HnlJ/ono3lkIjnmoToioLngrnnmoTotorkvY7vvIzlvbzmraTnm7jkvLzluqbotorpq5jjgIIK6YCa6L+H6L+Z56eN5pa55rOV77yM5Y+v5Lul55So6J6N5ZCI54K555qE6auY5bqm6KGo5b6B5Lu75L2V5Lik5Liq6KeC5rWL55qE55u45Ly856iL5bqm44CCCgrlm74gMTAuMTDvvJrlr7kgZGVuZHJvZ3JhbSDnm7jkvLzluqbnmoTkuIDnp43luLjop4Hor6/op6MKCuW3puWbvu+8muingua1iyAyIOWSjCA5IOawtOW5s+i3neemu+W+iOi/ke+8jOW4uOiiq+ivr+iupOS4uuebuOS8vOW6pumrmO+8iOWunumZhei3neemu+ingeWPs+Wbvu+8ie+8jArkvYbnlLHkuo4gZGVuZHJvZ3JhbSDkuK3moJHnmoTlt6blj7PlrZDmoJHlj6/ku6XkupLmjaLkvY3nva7vvIwK5aaC5p6c5bCG5a2Q5qCRIDIg5ZKMICg1LCA3LCA4KSDkupLmjaLkvY3nva7vvIzop4LmtYsgMiDlkowgOSDot53nprvlsLHkvJrmmL7okZflop7liqDjgIIK6L+Z5Liq5Y+Y5YyW5o+Q56S65oiR5Lus77yaZGVuZHJvZ3JhbSDkuK3msLTlubPot53nprvkuI7nm7jkvLzluqbmsqHmnInku7vkvZXmhI/kuYnvvIwK5Y+q5pyJ5Z6C55u06Led56a75omN6IO96KGo5b6B55u45Ly85bqm44CCCgrlm74xMC4577ya5aaC5L2V6YCa6L+H5Zyo5LiN5ZCM6auY5bqm5LiK5rC05bmz5YiH5Ymy77yM5LuOIGRlbmRyb2dyYW0g5Lit5YiS5YiG5Ye65LiN5ZCM5pWw6YeP55qE5YiG57uE44CCCgrlsYLmrKHogZrnsbvmj5DkvpvlpJrnp43liIblibLmlrnmoYjnmoTnibnngrnvvIzmnInliKnkuo7mlbDmja7mjqLntKLlt6XnqIvluIjku47mlbDmja7kuK3lj5HnjrDmm7TlpJrnmoTkv6Hmga/jgIIK5L2G56Gs5biB55qE5Y+m5LiA6Z2i5piv77yaCgrlnKjmn5DkupvmlbDmja7pm4bkuK3vvIzlsYLmrKHogZrnsbvnmoTmlYjmnpzmr5QgSy1NZWFucyDlt67jgIIK5L6L5aaC5LiA5Liq5pWw5o2u6ZuG5YyF5ZCrM+S4quWbveWutueahOeUt+S6uuWSjOWls+S6uu+8jOW9kyAkSz0yJCDml7bmnIDkvbPliIbnu4TnrZbnlaXmmK/mjInmgKfliKvliJLliIbvvIwK5b2TICRLPTMkIOaXtuacgOS9s+WIhue7hOetlueVpeaYr+aMieWbveexjeWIkuWIhu+8jArnlLHkuo7liIbnu4TnmoTnibnlvoHlj5HnlJ/kuoblj5jljJbvvIwkSz0yJCDlkowgJEs9MyQg5LmL6Ze05LiN5a2Y5Zyo5bGC5qyh57un5om/5YWz57O777yMCuaXoOazleS9k+eOsOWcqOWQjOS4gOW8oCBkZW5kcm9ncmFtIOS4iu+8jOi/meenjeaDheWGteS4i+WxguasoeiBmuexu+eahOaViOaenOS4jeWmgiBLLU1lYW5zIOaViOaenOWlveOAggoKIyMjIOWxgue6p+iBmuexu+eul+azlQoKMS4g5Yid5aeL54q25oCB77ya5q+P5Liq6KeC5rWL5L2c5Li65LiA5Liq5YiG57uE77yM5YWxICRuJCDkuKrliIbnu4TvvIzorqHnrpflh7rku7vmhI/kuKTkuKrliIbnu4TvvIjlhbEgJENfbl4yJCDkuKrvvInpl7TnmoTmrKfmsI/ot53nprvlgLzvvJsKCjEuIOS7pCAkaSA9IG4sIG4gLSAxLCAuLiAsIDIkIOWIhuWIq+iuoeeul++8mgoKICAgIGkuIOaJvuWIsCAkaSQg5Liq5YiG57uE6Ze055qE5pyA5bCP6Led56a75YC877yM5ZCI5bm26L+Z5Lik5Liq5YiG57uE77ybCiAgICAgICDlkIjlubbngrnnmoTpq5jluqblsLHmmK/kuKTkuKrliIbnu4Tpl7TnmoTot53nprvvvJsKCiAgICBpLiDorqHnrpfliankvZnnmoQgJG4gLSAxJCDkuKrliIbnu4Tpl7TnmoTot53nprvjgIIKCumXrumimO+8muWmguS9leiuoeeul+WIhue7hOmXtOeahOi3neemu++8nwoKKkxpbmthZ2UqIOaMh+WmguS9leiuoeeul+S4pOS4qiBjbHVzdGVyIOS5i+mXtOeahOi3neemu++8mgoKKiBDb21wbGV0ZTog5Lik5Liq6IGa57G76Ze05Lik5Lik6KeC5rWL54K56Led56a755qE5pyA5aSn5YC877ybCgoqIFNpbmdsZTog5Lik5Liq6IGa57G76Ze05Lik5Lik6KeC5rWL54K5IOi3neemuyDnmoTmnIDlsI/lgLzvvJsKCiogQXZlcmFnZTogIOS4pOS4quiBmuexu+mXtOS4pOS4pOingua1i+eCuSDot53nprsg55qE5bmz5Z2H5YC877ybCgoqIENlbnRyb2lkOiDkuKTkuKrogZrnsbvnmoTotKjlv4PkuYvpl7TnmoTot53nprvvvJsKCuWfuuS6jiBBdmVyYWdlIOWSjCBDb21wbGV0ZSDmlrnms5XnlJ/miJDnmoQgZGVuZHJvZ3JhbSDkuIDoiKzmr5Qg5Z+65LqOIFNpbmdsZSDmlrnms5XnlJ/miJDnmoQgZGVuZHJvZ3JhbSDmm7TlubPooaHvvIzop4Hlm74gMTAuMTLjgILln7rkuo4gY2VudHJvaWQg55Sf5oiQ55qEIGRlbmRyb2dyYW0g5Lya5Lqn55Sf5YCS572uIChpbnZlcnNpb24pIOeOsOixoe+8jOaegeWkp+mZjeS9juS6huaooeWei+eahOino+mHiuaAp++8jOebruWJjeWPquWcqOWfuuWboOe7hOeglOeptuS4reW6lOeUqOi+g+WkmuOAggoK5Lqn55Sf5YCS572u546w6LGh55qE5Y6f5Zug5piv77yM5Z+65LqOIGNlbnRyb2lkIOeahOiuoeeul+aWueazleS4jeiDveS/neivgei3neemu+maj+edgOWIhue7hOaVsOmHj+eahOWHj+WwkeWNleiwg+WNh+mrmO+8jArljbPlpKfnu4Tpl7TnmoTot53nprvkuIDlrprlpKfkuo7lkIjlubbliY3lsI/nu4Tpl7TnmoTot53nprvvvIzov53og4zkuobogZrnsbvliIbmnpDnmoTkuIDkuKrln7rmnKzlgYforr7vvJoK5bCP57uE5q+U5aSn57uE5pu06ZuG5Lit44CCCgrlj43mmKDlnKggZGVuZHJvZ3JhbSDkuIrvvIzooajnjrDkuLrmoJHmnp3lh7rnjrDkuobkuqTlj4nvvIznpLrkvovop4HvvJoKCiFbQ2VudHJvaWQgY2x1c3RlcmluZyBvZiBTdGFuZm9yZCBsZWN0dXJlXShodHRwczovL25scC5zdGFuZm9yZC5lZHUvSVItYm9vay9odG1sL2h0bWxlZGl0aW9uL2ltZzE2MjcucG5nKQoK5Lul5Y+KIEdvb2dsZSBJbWFnZSAiaGllcmFyY2hpY2FsIGNsdXN0ZXJpbmcgY2VudHJvaWQgaW52ZXJzaW9uIiDkuK3vvIxJTkY0ODIwLCBBbGdvcml0aG1zIGZvciBBSSBhbmQgTkxQOiBIaWVyYXJjaGljYWwgQ2x1c3RlcmluZyBieSBFcmlrIFZlbGxkYWwsIHA544CCCgojIyMg6Led56a75bqm6YeP5qCH5YeG55qE6YCJ5oupCgrmrKfmsI/ot53nprvlj6rmmK/liIbnu4Tpl7Tlt67liKvnmoTluqbph4/mlrnms5XkuK3nmoTkuIDnp43vvIzov5jlj6/ku6XnlKjnm7jlhbPmgKfnrYnkvZzkuLrluqbph4/moIflh4bjgIIKCuWbvjEwLjEz5Lit77yM57u/57q/5ZKM5qmZ57q/5b2i54q255u45ZCM77yM5omA5Lul55u45YWz5bqm5b6I6auYIChoaWdobHkgY29ycmxhdGVkKe+8jOS9hueUseS6juWAvOW3rui3nei+g+Wkp++8jOaJgOS7peasp+awj+i3neemu+avlOi+g+Wkp++8jOe6oue6v+WSjOapmee6v+ato+WlveebuOWPje+8jOWAvOaOpei/keWvvOiHtOasp+awj+i3neemu+Wwj++8jOS9huW9oueKtuS4jeWQjOWvvOiHtOebuOWFs+W6puS9juOAggoK5Zyo57q/6LSt54mp5pWw5o2u5YiG5p6Q55qE55uu5qCH5piv6K+G5Yir5Ye66LSt5Lmw5Lmg5oOv55u45Ly855qE6aG+5a6i77yM5LuO6ICM5Li65YW25o6o6I2Q56ym5ZCI5YW25Zac5aW955qE5ZWG5ZOB44CCCuWmguaenOi+k+WFpeS7pemhvuWuouS4uuingua1i++8iOavj+ihjOS4gOS4quWvueW6lOmhvuWuou+8ie+8jOS7peWVhuWTgeS4uueJueW+ge+8jOS+i+WmguKAnOaJi+acuuKAneaYr+S4gOWIl++8jOKAnOiho+acjeKAneaYr+S7pOS4gOWIl++8jApEYXRhRnJhbWUg55qE5q+P5Liq5YC86KGo56S65p+Q6aG+5a6i6LSt5Lmw5p+Q5ZWG5ZOB55qE5pWw6YeP44CCCuW6lOivpeS7peasp+awj+i3neemu+i/mOaYr+ebuOWFs+ezu+aVsOS9nOS4uui3neemu+agh+WHhu+8nwo8IS0tIOWJjeiAheWvvOiHtOWIhuexu+S4u+imgeS7pei0reS5sOaVsOmHj+S4uuS+neaNru+8jOWQjuiAheWImeS8muaKiui0reS5sOS5oOaDr+exu+S8vOeahOmhvuWuouWIhuS4uuS4gOe7hOOAgiAtLT4KCuafkOS6m+WVhuWTgeeahOi0reS5sOmikeeOh+i/nOmrmOS6juWPpuS4gOS6m+WVhuWTge+8jOmAoOaIkOWJjeiAheeahOW9seWTjei/nOWkp+S6juWQjuiAhe+8jOWmguS9lea2iOmZpOi/meexu+W9seWTje+8nwo8IS0tIOWvueaJgOacieeJueW+geWBmuagh+WHhuWMlu+8jOS9v+WFtuagh+WHhuW3ruS4ujHjgIIgLS0+Cgrlm74gMTAuMTTvvJrkuI3lkIzpob7lrqLvvIjku6XkuI3lkIzpopzoibLmmL7npLrvvInotK3kubDoopzlrZDlkozorqHnrpfmnLrnmoTmr5TovoPvvJoKCiog5bem5Zu+77yaWei9tOS7o+ihqOWVhuWTgeaVsOmHj++8jOiinOWtkOeahOW9seWTjei/nOWkp+S6juiuoeeul+acuu+8mwoKKiDkuK3lm77vvJrmoIflh4bljJblkI7nmoToopzlrZDlkozorqHnrpfmnLrotK3kubDmlbDph4/vvIzorqHnrpfmnLrnmoTlvbHlk43lpKflpKflop7liqDkuobjgIIKCiog5Y+z5Zu+77yaWei9tOS7o+ihqOi0reS5sOmHkemine+8jOiinOWtkOeahOW9seWTjeWPr+S7peW/veeVpeS4jeiuoeOAggoKIyMgMTAuMy4zIOiBmuexu+eul+azleW6lOazqOaEj+eahOmXrumimAoKKiDpnIDopoHpooTlhYjlr7nnibnlvoHlgZrmoIflh4bljJbvvJ8KCiog5a+55LqO5bGC5qyh6IGa57G777yaCgogICAgKiDkvb/nlKjlk6rnp43ot53nprvluqbph4/moIflh4bvvJ8KICAgIAogICAgKiDkvb/nlKjlk6rnp40gbGlua2FnZe+8nwogICAgCiAgICAqIOS7juWTquS4gOWxguWIhyBkZW5kcm9ncmFt77yfCgoqIOWvueS6jiBLLU1lYW5zIOaWueazle+8mksg5bqU6K+l5Y+W5aSa5bCR77yfCgrov5nkupvpgInmi6nkvJrlr7nmnIDnu4jnu5PmnpzkuqfnlJ/mmL7okZflvbHlk43vvIzkvYblpoLkvZXnoa7lrprph4fnlKjlk6rkuKrpgInpobnmsqHmnInnoa7lrprnmoTljp/liJnvvIwK5Y+q6IO95aSa5bCd6K+V5Yeg56eN6YCJ6aG577yM55yL5pyJ5rKh5pyJ56iz5a6a55qE57uT6K6644CCCgrlpoLkvZXor4Tku7fliIbnsbvnmoTmlYjmnpzvvJ/mgI7kuYjnn6XpgZPliIbnsbvmmK/mnInmhI/kuYnnmoTvvIzogIzkuI3lj6rmmK/lr7nlmarlo7DliIbnsbsgKGNsdXN0ZXJpbmcgdGhlIG5vaXNlKe+8jOacieS6m+i/meaWuemdoueahOaWh+eMruWPr+S+m+WPguiAg+OAggoK6IGa57G75pa55rOV5a+554m55q6K5pWw5o2uIChvdXRsaWVyKSDnmoTlpITnkIbmlYjmnpzkuI3lpb3vvIzmlbDmja7lj5HnlJ/mibDliqjml7bkuZ/kuI3lpJ/nqLPlrprvvIzkvovlpoLku47ljp/lp4vmlbDmja7ph4zpmo/mnLrljrvmjonkuIDlsI/pg6jliIbmlbDmja7vvIzliIbnsbvkvJrlj5HnlJ/mmL7okZflt67lvILvvIzov5nmmL7nhLbkuI3lkIjnkIbjgILop6PlhrPmlrnms5XmmK/lj5bljp/lp4vmlbDmja7pm4bnmoTkuI3lkIzpg6jliIblpJrlgZrlh6Dnu4TogZrnsbvvvIznnIvog73lkKblh7rnjrDnqLPlrprnmoTogZrnsbvmqKHlvI/jgIIKCueUseS6juiBmuexu+WtmOWcqOS7peS4iueJueeCue+8jOiBmuexu+eahOe7k+aenOS4gOiIrOS4jeW6lOS9nOS4uuehruWumuaAp+e7k+iuuu+8jOiAjOWPquaYr+S9nOS4uuWIhuaekOeahOi1t+eCue+8jOS4uuWQjue7reeahOWIhuaekOaPkOS+m+WPguiAg+OAggoKIyDogZrnsbvnmoTotKjph4/or4Tku7fmjIfmoIcKCirova7lu5Pns7vmlbAqIChzaWxob3VldHRlIG9mIGNsdXN0ZXJpbmcpIOaYr+S4gOS4quingua1i+eCueWxnuS6juiHquW3seaJgOWcqCBjbHVzdGVyIOi0qOmHj+eahOihoemHj+aMh+agh++8jOi2iuaOpei/kSAxIOihqOekuuWIhuexu+i0qOmHj+i2iuWlve+8jOi2iuaOpei/kSAtMSDooajnpLrotorkuI3lupTooqvliJLliIbliLDlvZPliY3ogZrnsbvvvIzmjqXov5EgMCDooajnpLrlpITlnKjkuKTkuKogY2x1c3RlciDnmoTovrnnlYzkuIrjgIIKCuS4gOS4quiBmuexu+WGheaJgOacieeCuei9ruW7k+ezu+aVsOeahOW5s+Wdh+WAvOi2iuaOpei/kSAxIOi2iuWlveOAggoK5ZyoIFIg5Lit77yMYGNsdXN0ZXIuc3RhdHMoKWAg5Ye95pWw6L+U5Zue5YC85Lit55qEIGBhdmcuc2lsd2lkdGhgIOihqOekuui/meS4qiBjbHVzdGVyIOeahOi9ruW7k+ezu+aVsOeahOW5s+Wdh+WAvOOAggoK5Y+C6ICD77yaW1NpbGhvdWV0dGUgKGNsdXN0ZXJpbmcpXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TaWxob3VldHRlXyhjbHVzdGVyaW5nKSkK