一 打包

1.1 配置

image-20231124005013137

image-20240517190646021

image-20240517190657564

image-20240517190705146

image-20240517190712189

image-20240517190719056

image-20240517190725780

1.2 车智赢获取秘钥案例–无输入参数

1.2.1 编译

1
2
3
4
5
# 构建成jar文件--》发现在项目根路径下出现out文件夹,如下

##### 注意把apks文件夹复制过来####

# unidbg-0.9.7.jar为主运行的jar包

image-20240517190735077

1.2.2 终端调用

1
java -jar unidbg-0.9.7.jar

image-20240517190747323

1.2.3 python调用

1
2
3
4
5
6
import subprocess

cmd = f"java -jar unidbg-0.9.7.jar"
signature = subprocess.check_output(cmd, shell=True, cwd="unidbg_0_9_7_jar")
data_string = signature.strip().decode('utf-8')
print("加密结果为:",data_string)

1.3 B站案例

1.3.1 参数化和注意事项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## 因为要使用python调用,我们需要把参数动态传递个jar包
## java中通过main函数中的String[] args 数组获取
# 例如:
终端调用:java -jar unidbg.jar name=justin
java中获取 String argString = args[0];

#### 注意事项 ####
1 参数中如果包含 & 空格 都有问题,
java -jar unidbg.jar name=justin&age=19 #把&解析成空格
java -jar unidbg.jar name=wupeiqi age=999 # 把空格解析完后,认为传了两个args[0]只能取出第一个

所以用双引号引起来传递进去

2 字符串特别长,终端不支持
- 写入文件 shihuo.txt
- java -jar unidbg.jar shihuo.txt
- java代码中
public static void main(String[] args){
args[0] # 取出文件名,使用java打开文件读出,再用
...
}

3 python -> java 只能是字符串形式

1.3.2 修改代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
package com.nb.demo;

import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Module;
import com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import com.github.unidbg.linux.android.AndroidResolver;
import com.github.unidbg.linux.android.dvm.*;
import com.github.unidbg.linux.android.dvm.jni.ProxyDvmObject;
import com.github.unidbg.memory.Memory;

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;


// 正常完成copy过来,里面可能有些别的引用---》能copy就copy,不能copy的就自己写
class SignedQuery {

public static final String KEY_VALUE_DELIMITER = "=";
public static final String FIELD_DELIMITER = "&";

private static final char[] a = "0123456789ABCDEF".toCharArray();
public final String rawParams;
public final String sign;

public SignedQuery(String str, String str2) {
this.rawParams = str;
this.sign = str2;
}

private static boolean a(char c2, String str) {
return (c2 >= 'A' && c2 <= 'Z') || (c2 >= 'a' && c2 <= 'z') || !((c2 < '0' || c2 > '9') && "-_.~".indexOf(c2) == -1 && (str == null || str.indexOf(c2) == -1));
}

static String b(String str) {
return c(str, null);
}

static String c(String str, String str2) {
StringBuilder sb = null;
if (str == null) {
return null;
}
int length = str.length();
int i = 0;
while (i < length) {
int i2 = i;
while (i2 < length && a(str.charAt(i2), str2)) {
i2++;
}
if (i2 != length) {
if (sb == null) {
sb = new StringBuilder();
}
if (i2 > i) {
sb.append((CharSequence) str, i, i2);
}
i = i2 + 1;
while (i < length && !a(str.charAt(i), str2)) {
i++;
}
try {
byte[] bytes = str.substring(i2, i).getBytes("UTF-8");
int length2 = bytes.length;
for (int i3 = 0; i3 < length2; i3++) {
sb.append('%');
char[] cArr = a;
sb.append(cArr[(bytes[i3] & 240) >> 4]);
sb.append(cArr[bytes[i3] & 15]);
}
} catch (UnsupportedEncodingException e2) {
throw new AssertionError(e2);
}
} else if (i == 0) {
return str;
} else {
sb.append((CharSequence) str, i, length);
return sb.toString();
}
}
return sb == null ? str : sb.toString();
}

static String r(Map<String, String> map) {
if (!(map instanceof SortedMap)) {
map = new TreeMap(map);
}
StringBuilder sb = new StringBuilder(256);
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
if (!key.isEmpty()) {
sb.append(b(key));
sb.append(KEY_VALUE_DELIMITER);
String value = entry.getValue();
sb.append(value == null ? "" : b(value));
sb.append(FIELD_DELIMITER);
}
}
int length = sb.length();
if (length > 0) {
sb.deleteCharAt(length - 1);
}
if (length == 0) {
return null;
}
return sb.toString();
}

public String toString() {
String str = this.rawParams;
if (str == null) {
return "";
}
if (this.sign == null) {
return str;
}
return this.rawParams + "&sign=" + this.sign;
}
}


public class Bili2 extends AbstractJni {
public static AndroidEmulator emulator; // 静态属性,以后对象和类都可以直接使用
public static Memory memory;
public static VM vm;
public static Module module;

public Bili2() {
emulator = AndroidEmulatorBuilder.for32Bit().setProcessName("com.bili").build();
// 2.获取内存对象(可以操作内存)
memory = emulator.getMemory();
// 3.设置安卓sdk版本(只支持19、23)
memory.setLibraryResolver(new AndroidResolver(23));

// 4.创建虚拟机(运行安卓代码需要虚拟机,就想运行py代码需要python解释器一样) 以后会动
vm = emulator.createDalvikVM(new File("apks/bili/v6240.apk"));
vm.setJni(this); // 后期补环境会用,把要补的环境,写在当前这个类中,执行这个代码即可,但是必须继承AbstractJni
//vm.setVerbose(true); //是否展示调用过程的细节

// 5.加载so文件
DalvikModule dm = vm.loadLibrary(new File("apks/bili/libbili.so"), false); // 以后会动
dm.callJNI_OnLoad(emulator); // jni开发动态注册,会执行JNI_OnLoad,如果是动态注册,需要执行一下这个,如果静态注册,这个不需要执行,车智赢案例是静态注册

// 6.dm代表so文件,dm.getModule()得到module对象,基于module对象可以访问so中的成员。
module = dm.getModule(); // 把so文件加载到内存后,后期可以获取基地址,偏移量等,该变量代指so文件

}

private static Map<String, String> convertStringToMap(String inputString) {
Map<String, String> map = new HashMap<>();
String[] keyValuePairs = inputString.split("&");

for (String pair : keyValuePairs) {
String[] entry = pair.split("=");
String key = entry[0];
String value = entry.length > 1 ? entry[1] : null;
map.put(key, value);
}

return map;
}

public void sign(String str) {
// str:actual_played_time=0&aid=466565149&appkey=1d8b6e7d45233436&auto_play=0&ts=1647952932

Map<String, String> map = convertStringToMap(str);

// 打印结果
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}

// 1 找到类
DvmClass LibBili = vm.resolveClass("com/bilibili/nativelibrary/LibBili");
// 2 找到方法和签名
String method = "s(Ljava/util/SortedMap;)Lcom/bilibili/nativelibrary/SignedQuery;";

// 3 调用
DvmObject<?> obj = LibBili.callStaticJniMethodObject(
emulator,
method,
ProxyDvmObject.createObject(vm, map) // map需要包裹
);

// 4 打印结果
String res = obj.getValue().toString();
System.out.println(res);

}

// 代码右键运行,创建一个main
public static void main(String[] args) {
// python调用时,传入的参数取出来
String str = args[0]; //actual_played_time=0&aid=466565149&appkey=1d8b6e7d45233436&auto_play=0&ts=1647952932
Bili2 che = new Bili2();
che.sign(str);
}

// 补环境

@Override
public boolean callBooleanMethod(BaseVM vm, DvmObject<?> dvmObject, String signature, VarArg varArg) {
if (signature.equals("java/util/Map->isEmpty()Z")) {
//1 c中调用java中 的isEmpty 包错了
// 2 map 调用 isEmpty 报了错--需要补环境
// java开发会懂,这是在判断map是否为空,反回true或false
//return true; // 写死为true---》不好处---》即便这个map是空的,c在调的时候,返回true,c认为有值--》可能会出错

// 我们自己主动调用---》拿到c中的map---》如何取到c中的map

// 咱么要拿map需要从dvmObject 中拿,调用方法 isEmpty 如果有参数,放在了varArg里面
Map m = (Map) dvmObject.getValue();
// System.out.println(m);
return m.isEmpty();

}
return super.callBooleanMethod(vm, dvmObject, signature, varArg);
}

@Override
public DvmObject<?> callObjectMethod(BaseVM vm, DvmObject<?> dvmObject, String signature, VarArg varArg) {
if (signature.equals("java/util/Map->get(Ljava/lang/Object;)Ljava/lang/Object;")) {
// map 根据key取值,得到value报错了
// 1 拿出map
Map m = (Map) dvmObject.getValue();
// 2 拿出调用 get的第一个参数
// Object key = (Object)varArg.getObjectArg(0).getValue();
String key = (String) varArg.getObjectArg(0).getValue();
// System.out.println(key);
// 方案一
//Object value=m.get(key); // 但实际上value是字符串
//return ProxyDvmObject.createObject(vm,value);

// 方案二
String value = (String) m.get(key);
return new StringObject(vm, value);

}
return super.callObjectMethod(vm, dvmObject, signature, varArg);
}

@Override
public DvmObject<?> callStaticObjectMethod(BaseVM vm, DvmClass dvmClass, String signature, VarArg varArg) {
if (signature.equals("com/bilibili/nativelibrary/SignedQuery->r(Ljava/util/Map;)Ljava/lang/String;")) {
// SignedQuery的对象调用r方法--》传入了map--》返回了String,报错了
// SignedQuery 是app自己的---》遇到这个应该怎么做,自己写个类--》完全实现人家源码中SignedQuery 类---》反编译把别人的copy过来即可
// 类直接调用r方法,因为r是静态方法--》调用对象的 r 方法--》传入参数[varArg],把返回值返回即可
Map m = (Map) varArg.getObjectArg(0).getValue();
String res = SignedQuery.r(m);
return new StringObject(vm, res);

}
return super.callStaticObjectMethod(vm, dvmClass, signature, varArg);
}

@Override
public DvmObject<?> newObject(BaseVM vm, DvmClass dvmClass, String signature, VarArg varArg) {
if (signature.equals("com/bilibili/nativelibrary/SignedQuery-><init>(Ljava/lang/String;Ljava/lang/String;)V")) {
// 调用 SignedQuery的构造方法---》传入两个参数---》之前读反编译代码---》第二个参数就是sign

// 方案一:直接得到秘钥
// String sign=(String) varArg.getObjectArg(1).getValue();
// System.out.println(sign);
// // 为了阻止它报错---》返回一个空的SignedQuery
// return vm.resolveClass("com/bilibili/nativelibrary/SignedQuery").newObject(null);

// 方案二:完成整个流程
String str = (String) varArg.getObjectArg(0).getValue();
String sign = (String) varArg.getObjectArg(1).getValue();
SignedQuery sq = new SignedQuery(str, sign);
return vm.resolveClass("com/bilibili/nativelibrary/SignedQuery").newObject(sq);

}
return super.newObject(vm, dvmClass, signature, varArg);
}
}

1.3.3 编译

1.3.4 终端调用

1
java -jar unidbg-0.9.7.jar "actual_played_time=0&aid=466565149&appkey=1d8b6e7d45233436&auto_play=0&ts=1647952932"

image-20240517190815228

1.3.5 python调用

1
2
3
4
5
6
import subprocess
body = "actual_played_time=0&aid=466565149&appkey=1d8b6e7d45233436&auto_play=0&ts=1647952932"
cmd = f'java -jar unidbg-0.9.7.jar "{body}"'
signature = subprocess.check_output(cmd, shell=True, cwd="unidbg_0_9_7_jar")
data_string = signature.strip().decode('utf-8').split("\n")[-1]
print("加密结果为:",data_string)

image-20240517190823132

1.4 识货案例

1
加密文本太长,所以选择把他放在一个文件,让unidbg去读取文件的内容

1.4.1 修改代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package com.nb.demo;

import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Module;
import com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import com.github.unidbg.linux.android.AndroidResolver;
import com.github.unidbg.linux.android.dvm.*;
import com.github.unidbg.linux.android.dvm.array.ByteArray;
import com.github.unidbg.memory.Memory;

import java.io.File;
import java.io.FileReader;
import java.util.Base64;

public class ShiHuo2 extends AbstractJni {
public static AndroidEmulator emulator;
public static Memory memory;
public static VM vm;
public static Module module;

public ShiHuo2() {
emulator = AndroidEmulatorBuilder.for32Bit().setProcessName("com.shihuo").build();
// 2.获取内存对象(可以操作内存)
memory = emulator.getMemory();
// 3.设置安卓sdk版本(只支持19、23)
memory.setLibraryResolver(new AndroidResolver(23));

// 4.创建虚拟机(运行安卓代码需要虚拟机,就想运行py代码需要python解释器一样) 以后会动
vm = emulator.createDalvikVM(new File("apks/shihuo/v7.20.1.apk"));
vm.setJni(this); // 后期补环境会用,把要补的环境,写在当前这个类中,执行这个代码即可,但是必须继承AbstractJni
//vm.setVerbose(true); //是否展示调用过程的细节

// 5.加载so文件
DalvikModule dm = vm.loadLibrary(new File("apks/shihuo/libdusanwa.so"), false); // 以后会动
dm.callJNI_OnLoad(emulator); // jni开发动态注册,会执行JNI_OnLoad,如果是动态注册,需要执行一下这个,如果静态注册,这个不需要执行,车智赢案例是静态注册

// 6.dm代表so文件,dm.getModule()得到module对象,基于module对象可以访问so中的成员。
module = dm.getModule(); // 把so文件加载到内存后,后期可以获取基地址,偏移量等,该变量代指so文件

}

// sign 成员方法,用来破解加密
public String sign(String fileName) {

String filePath = "apks" + File.separator + "shihuo" + File.separator + fileName;
String body = readFileBody(filePath);

byte[] bArr = Base64.getUrlDecoder().decode(body);
// 3 调用 so --》heracles--》把结果传入
DvmClass SwSdk = vm.resolveClass("com/shizhuang/dusanwa/main/SwSdk");
String method = "heracles([BII)[B";
ByteArray byteValues = SwSdk.callStaticJniMethodObject(
emulator,
method,
new ByteArray(vm, bArr),
0,
0
);
// 4 返回的byte数组,转成字符串就是明文
byte[] info = byteValues.getValue(); //取到具体的值
String data = new String(info);
return data;


}

public static void main(String[] args) {
ShiHuo2 obj = new ShiHuo2();
//String fileName = "info.txt";
String fileName = args[0];
String result = obj.sign(fileName);
System.out.println(result);
}

public String readFileBody(String path) {
try {
FileReader reader = new FileReader(new File(path));
StringBuilder stringBuilder = new StringBuilder();
char[] buffer = new char[10];
int size;
while ((size = reader.read(buffer)) != -1) {
stringBuilder.append(buffer, 0, size);
}
return stringBuilder.toString();
} catch (Exception e) {
return "";
}
}
// 补环境


@Override
public DvmObject<?> callStaticObjectMethod(BaseVM vm, DvmClass dvmClass, String signature, VarArg varArg) {
if (signature.equals("android/app/ActivityThread->currentActivityThread()Landroid/app/ActivityThread;")) {
// 使用ActivityThread类对象的currentActivityThread方法没有参数,返回值是ActivityThread 的时候报错了
// 应该返还给c一个ActivityThread的对象--》安卓的系统对象 ---》模仿之前contxt--》new出一个null的,先穿进去,如果报错,再补
return vm.resolveClass("android/app/ActivityThread").newObject(null);

}
return super.callStaticObjectMethod(vm, dvmClass, signature, varArg);
}

// 继续补 callObjectMethod

@Override
public DvmObject<?> callObjectMethod(BaseVM vm, DvmObject<?> dvmObject, String signature, VarArg varArg) {
if (signature.equals("android/app/ActivityThread->getApplication()Landroid/app/Application;")) {
// Application 是安卓系统的对象
return vm.resolveClass("android/app/Application").newObject(null);

}
if (signature.equals("android/app/Application->getPackageManager()Landroid/content/pm/PackageManager;")) {
// Application 是安卓系统的对象
return vm.resolveClass("android/content/pm/PackageManager").newObject(null);

}

// 补充:如果咱们在写的时候:报了 android/app/Application->getPackageName()Ljava/lang/String;
if (signature.equals("android/app/Application->getPackageName()Ljava/lang/String;")) {
// 使用Application的对象,调用getPackageName 返回字符串--》返回包名
// 百度搜:getPackageName干啥用---》获得包名的---》包名又是字符串,我们写死
// 包名如何获得:1 hook getPackageName 2 直接使用frida打印出这个app包名即可
//return new StringObject(vm,"com.hupu.shihuo");
// unidbg 针对于安卓的东西,也会写一点
String packlageName = vm.getPackageName();
System.out.println(packlageName);
return new StringObject(vm, packlageName);


}
return super.callObjectMethod(vm, dvmObject, signature, varArg);
}
}

1
34IUiEErkt6DauKmcSg19vtelOP0U7Q42r_C3xVCsSQfQ8KJnIupah4jJPbjJ7IV56cdt3n0oykpIqZTGXst3ASM9Drm6XZf18RGb_PkbtWHCG-E8MzdQodNb7m3msvBY5L6UMJ6zeKXfapoLCeaOOY_gje6_SGOPg7SBWY1oFrZN6ToMW44TsCfqEHfeNTu0tFgPqe8Hdjc9TgYzuKflqOutsbw2nb_2n6WyRVHLLB3b08MLsUA9NbbfDUZZQfPwA_x9LOpM82HX2NvR04g5--fqEHfeNTu0vpCAdow7K-Y12HAnlzK7APE5SwvtUgCvs2Le66jkjhtDp9EggOp7rrOJ26iiKUXwfG3Zl6_uV-7hxvqlBqDewXLvMa29vVTO76eg3Oj3wnhkyEI3FCY-6lrf2f5nqZ8eCmYSbVToqdhIx5BtWXPVMJogkWlFX3sODUVb77wQrjwSthRgKA71tS4vN8WtzahAn7ArpYNxA9-9qwg83uqCpVIja1S7YfM-5FtiP_Xw8Ohe_vtLLSlZEcYevDiKiLLlAcO5RG9akTXSIM-89FmB-_5QVUQD-C6kSc6Jvo23ufAdZUuyljooaOMk6T9mWcwd3ZBreZGkCS-JehXtfq0R7RjlP3sAfyr-d1N66ucH0DMdWWX1MS8GU16G_oz_7pXM-vPhkvcPsDP9TL7vErMyXi-OyMI-vb3AlXszWjPbp9-6NIEL32SMAeXmBZ47aguQIRi1Rx1slrNFCgtUHTyFdlClxChnrR3RrykvEOyoxwgPK6NC30vrkkyEu00C01hHVEhXvYX1hsgFUyo9Mjc7EAy64bbJ7Gaw8nabm3Plcqan6CfUuUOlW0uV67xvlM44EIfMFfHoU-SU10qVgqEOrgGMZNpkCU4wqq2WwNWAAxFy4a6j5dnoN31VuVgjymmv_3KPh87Npuket6iRtqBvHrrYWVr0Ewy95x6Ao7XB3wzsyJ90tOZ98jkZn-8bhG-MRxQtQmPawlrD53jzMe_TEhpCqv2Dq-nVNS-_9xXWuidzpE2oCZ4F8yFCyIvJ7-PkQFjJkBlJfpHmc8Z-Jn6BzmfoJ9S5Q6VbcBG6pJHEanQSEcWOSrjy5n_9YrOq8sq6JyYxBNbc-pquyMKEeUmjBqw4DcZL2z90_WPBlIUtNTAG0K9lFFTucK5KIGFrWiGh3kjcE1c1qhqLvl1nKG-tgPkZn-8bhG-MRxQtQmPawlrD53jzMe_TEhpCqv2Dq-nVNS-_9xXWuidzpE2oCZ4F8yFCyIvJ7-PkQFjJkBlJfpHMYCGWHpw7MmfoJ9S5Q6VbS5XrvG-UzjgQh8wV8ehT5JTXSpWCoQ6uAYxk2mQJTjCqrZbA1YADEVnNwTI229a5xhra0ExeXSXYcvrZKJsoycPgzi_RkahEtgJLuiQkeSLl4QnRtSMHhWzIn3S05n3yORmf7xuEb4xHFC1CY9rCWsPnePMx79MSGkKq_YOr6dU1L7_3Fda6J3OkTagJngXzIULIi8nv4-RAWMmQGUl-kcxgIZYenDsyZ-gn1LlDpVtwEbqkkcRqdBIRxY5KuPLmf_1is6ryyronJjEE1tz6mrGnF2y6RHyaA4OLBplRKHCaPyDCnlGupSrMR-itOg_S9otKMxxKz2wjaTej-Aa2NUu-XWcob62A-Rmf7xuEb4xHFC1CY9rCWsPnePMx79MSGkKq_YOr6dU1L7_3Fda6J3OkTagJngXzIULIi8nv4-RAWMmQGUl-kcxgIZYenDsyZ-gn1LlDpVtLleu8b5TOOBCHzBXx6FPklNdKlYKhDq4BjGTaZAlOMKqtlsDVgAMRYv8nokdYaebuXuwcprRU0ZwO0KiE6rRdpeVXRg971DSe3C_3ON0oiaXhCdG1IweFbMifdLTmffI5GZ_vG4RvjEcULUJj2sJaw-d48zHv0xIaQqr9g6vp1TUvv_cV1ronc6RNqAmeBfMhQsiLye_j5EBYyZAZSX6RyBLsqHovkqT6fB9MWsrMRF2Dpydhzz9fam5eIbcddFPRTqJaaYec2EY5aHntGDL9MznneGt8kqgoN0N8XH7q2obXUbke6A2J5LpB5r1sDrOlHlPedpjtToYpm0HoDqZl-6UcTGwtiC-fQqSqjx31fFYRTWAl71VQIsiMmt-iwzifQqSqjx31fGstyg1FQ5rG1-xKMyP5C2e2WUrf2_6RqkyFKYKzBga5nh1NTxSvjs87yDUciNTOTnWWX0zW_LjHblR8d9W4CtESEcWOSrjy5n_9YrOq8sq6Aq4lolcYsUAytEeagR0U-mDgjrERI7E6FDl6zVhzGD81HbwPwSKshTjAFPM3D2xnbLrrLO1XxCSGroVLu5b_6f74cGexiw4ukWwkJ35zVN5WGLSdL1px2-yKG3XMrrUI8ajjwq8F3Ki7yTxOPsGXwr5gCdURJp0HoE70IkcgOfGgAb6Gi8p9O35Q9Sw9yK4zNOK_DbFHy_-DNumMsvjM3wI7UxswZn9Uz8cEq1l7vjzEm1dnNqSicCjoMHvWHVT1u0-mrob2Z9Uc4OWRZnELs07rH_nPQuk46D2e6Y1Xtr9RTuWDV108_ukZFDfsDBw4KuTEcH6F_3ETLm628B6euoGWENM6JfmK5J_bC-9X95Ld9Ja8Sofe4CbCB48Zp2t7e9UTaZ-9w628dInlmRn6tHxkZj9Q1K6BdLL8EQX2N7qSYLiiTpGy_VFOPPJYyz_EkEDZDxfi2Q3J4q4oxh8GFPAFsnSJND2tFHcSGRTHqttl2ML2inNsMMqdIia5DmLOTgft2eMomhJZzCCO1d1icOuFYSGHBJbZI_pds9_JFWw2kPiK7ufpE_i4WhuzLOFpVJBWf2oHwxMq8tpcDFjw4YHLNi1ZFxesujUd-PfBNY6_aXymlcSDbr85jPMszilPT2gHIEpaGYA9jZoRHj0O_rgyNSN6cASmqpNvd-_bTUPaPY250VesUhLa83P3L1Ag21LQADsT6yFrJhvxk1CidJlavD6cvWndJjMiwj7TVf0i8ARHzbcm1MZUOqXS5dFflEhXvYX1hsgFUyo9Mjc7EBhUm4upsPdzb6eg3Oj3wnhkyEI3FCY-6nOFQQRM8Nm69_MCS2MvoPwxofkzpysXmOvCW3CGVLtqzUVb77wQrjwSthRgKA71tS4vN8WtzahAn7ArpYNxA9-iwJUlMuUyLZgNo0zObXU1edaa3ZELe4u6c_c8DiedBjUJ8hP9BZiMVyuZ4JoHaAj-hgEkr3xv5WbQkX3SIW6jgk8cclRBwjl6Npn0_EQZNGraQlmWp7-Wk1H8W7a2MliI4FLSfwpdSR_PRqs0MpMkg4fTQL-C76pi2BEYd4_GTaQyU1jJOCqUGRD45sm1iEPLSgtOpM4sQwC49DjSmc1kAYtU9ip7gibRPiYgDbST-WifjzZsp5XxlEUmXlEE3v5MKDjCsmpd93f6ARcj3umGKqrRsiar9rEyYrZ4OOIBON1QCirYTCOnKh9OVHRxBn3ckvSGWhKv6UYIRhVvyPfBpX_H69TOz-aEd8lIk0QYfrRiMkIc0Wq1GkLhOY1g-oLSsXrG0NXVe8RkbiRc9ldQcEHxjQW21xDr6cmHjr5ZpC3GxFYeBeQk8vb21l1gfbpHgGWWEJYATSYMqfMfa0y3LI02469hxRpZ1wMAh3tkweSCgPJ5EAZ_STxnJpC0_Gxf8techsJhtWc1M9t_OvywfwRKS1xQ1v9ssfS2V5y06Jj5fKDSWD0SYpnkM4P6ExYo4xtdY4G7Iwn7DnL0VD8w5IQn_A52rA6wd15RybwM0p5ETr-BYInTn58s31IUtDTERL-vR9wtc9l3rLIPBEapL6BVJk4iVGG_2e6vyq-SIUOdgNFfREWuyv7OdLgCX0YheOhG7PK2TWbqwKn3kEzllsDnXdi_g2XQDHD_OSEQQH2sWCuOm-ShjwLFmL0XK0QXGT6gxF-dzq1rEzuQH1a7IpZhwCZho5MivcCtb7W7BfSVhOdFbTZ99Y2Hq0vq4ovH5grt5yphJOr2QVqouUjSbQ-dAdZ9TvnQsUYUC5x9OaLOidd6SYlPNRKpItw29riZsKF6xVJRqkBYCMicaa0M1t0YDZlyQnaPYKhjPcGMhxBuElzAxfr0UjR1-G2i95RUoQ5UY2Rg1vmWfGjnru54s3pb3FezUfTWiCrD6_8817jVIpzshgWYnc2pEya35Rnc6UcxzmvWX58XtLytxr32YGGPPKEUF-JfpwW4z4-QQXIAFXMxgP_caI78g-sJwDAIUSn89cAkk5t6nzOeUmlgibdYrpCMeeYtWb5N6C-CaZI2HgUd4AnD8Z3HXvDurX51JQwFKrNaA3fzcTZy1gRVlDeIbH4I0aqxncde8O6tfld2zMgMziiaz04UU2nINVNAP6TA19TzuPw-B7bQDXZJtBhc42tacHE4oVjpWbkCVFB3PysfS77lWwf_RBRCB_rEnLj1CApxh5COkFOCdSsefsBTkFkmyzO0_Zx-EiqEK0171vI6P4VvRDUbvu88vlCOZO3DCLwCdP4WtqyB_5gcbjvOYetK1OQFz02KUInkOEOJjI2X8x_YvB6SA_lgt0XMWxtqMPwR-ixaUxWHoFA_oxZWv1Kv8k941BUfUeLAJEzbjSJr6zeOOdaa3ZELe4uMO8PHgTjwpJb2I1D3xnOqM_508uldutA9jZoRHj0O_rgyNSN6cASmqpNvd-_bTUPaPY250VesUhLa83P3L1Ag8an8DTKmpbOrJhvxk1CidJlavD6cvWndJjMiwj7TVf0wyJ9AkOQKOjCZE1DQFje0E7jUKEhCOvLBSMUkZkL7A_ZuEKyhd7hBCUlIHrMOx8yJhgXyV_CjAil-WClbVAbzSyHwB8vBOyGIaiNksRXtRdF4YS9tRkZJgxztCSFQfdzGOC-m8OYuJbaGi8AhYR0yf1cOBUAIKdMBJ86D3w1zEfuugQPf3LRKDCR7hvYFUMiShpXSY170Sf68QYW3efhLGCH7OZ7xYNAszk-JR7mlirFWgljyKUWTESX8Y3XZ3xtByE7NaHBaB0KJXkN-FARmYoyHPU8Z1VYloZn8Y1s7Sv3GPAnK0P6SzLhQIx2gjQPiq8GTxxBk9xsdmvZmbaDdbGYL1GoYJ1Gf90gY4dovdVMYZ34XcY7aWkF91flbXaP7pRxMbC2IL59CpKqPHfV8VhFNYCXvVVAiyIya36LDOJ9CpKqPHfV8ay3KDUVDmsbgD_5Yr5FcgI7XBdFbYSr_i5XrvG-UzjgQh8wV8ehT5JTXSpWCoQ6uAYxk2mQJTjCqrZbA1YADEXLhrqPl2eg3fVW5WCPKaa__co-Hzs2m6R63qJG2oG8euthZWvQTDL3nHoCjtcHfDOzIn3S05n3yORmf7xuEb4xHFC1CY9rCWsPnePMx79MSGkKq_YOr6dU1L7_3Fda6J3OkTagJngXzIULIi8nv4-RXlEm77aMlmfXGUijZu38-toaLwCFhHTJ_Vw4FQAgp0wEnzoPfDXMR-tP0DJphoFiMyQ57waUZEyi9Dh4VY1cU83IR9eJ9Wsx5HHZQgN7mhJHjl-2zGx9ZYe1D_fvs-4kamzNdzckaAVmcq3Rr27a1zTdIuBIQbjLkTIua82jCxq4qPBLI_aBzUIrU_2nf5IIYNte2eqSaMSizn3Y4z1xm9H4nDoJzsU-CfaA75c9RO6puXiG3HXRT0U6iWmmHnNhGOWh57Rgy_TF4-qt2ajyWJlT1ryQtbQL4Qkx6vIf7fLO9KOW2jKYgsnh1Z6znaTdpquNfHwXYZZqZU-dDbukDsPQzOdeVVfNzuwgmTah9MWRVHJbgCOF7AxUkDpifjQtFkYlco7VwKEkYAbUokCxGkEhe9uZ5f4v03ruq0cZD94VJ1fqEG9WNETlb32QNW5Ce0TW2_40kuR3Vl98Fx7O2cg4BECtS_EXYUEg02MTn641uky9DXjs3UCrCX-eJXfCShwdJitAmUMQlqJ3SkJWgYEjeSHt4lnCjoftOhpRvS2zDU5HLMq44YrLMjsyqGxyY-ksipPINykTA3X6Y3ngkY4X3pe4bRDYf4UVANiEZ4MkYk58vvP7LzuZZ5puWg3i2dN_zsmxo9tEh6BstZxzOH0S0ghc2So1nieP-8wsKgmGHkyZXjIiDncM3tdY9kZe4Wpzfml-j_uUKgTqdpCrs_v7c8TrUdqi7qoOLbf1QY1f3PzeksVtkZWbpJlomTJUikOU6h4XR-E2DF5dWspQj5BlWa5pAHyp_8-WNm9y69i3yn2xOZHBHu8vtekN9M6ItNQ8uY4x34FUZlXN7ozJ-Rqtd--uQlUBQbhJcwMX69FI0dfhtoveUVKEOVGNkYNb5lnxo567ueLN6W9xXs1H01ogqw-v_PNe41SKc7IYFmJ3NqRMmt-UZ3OlHMc5r1l-fF7S8rca99mBhjzyhFBfiX6cFuM-PkEFyABVzMYD_3GiO_IPrCcAwCFEp_PXAJJObep8znlJpYIm3WK6QjHnmLVm-TegvgmmSNh4FHeAJw_Gdx17w7q1-dSUMBSqzWgN383E2ctYEVZQ3iGx-CNGqsZ3HXvDurX5YltXz4SrgEzmXZjdsevGuaze1Jb308TeJt1iukIx55jd8fTl1VzDOltntsFYrZVBEZuSLpJ5ikiryRhs7sjNCLcmZ471v_6Sy2QDce_yVsOBWEqu1Gbo2suF_eYtyjkrmeHLccjHPV_2NmhEePQ7-uDI1I3pwBKaqk29379tNQ9o9jbnRV6xSEtrzc_cvUCDxqfwNMqals6smG_GTUKJ0mVq8Ppy9ad0mMyLCPtNV_QQzn-v1JANHVXIy1BUTpCClyFn6BuVz2dbRQWiu15HWcW4N6n_ptGxkPcIRwyI-3P9PEB8lZ6QTpmGSNf_LSK3PCid1ijn627dSwbqRS3_50kq0tH6fCEAZVHkSqiczMDzdcscr8VSbJjMiwj7TVf0Gb1xAv9_1SZlavD6cvWndDNuNImvrN441ff1cQ1OOMIajS4mlPPm1HEE7CF6C0hZ-pVr-3jSw9ucN1YThy0Hes1pFfHI3TyIVwSTqYvARhP0KP5z9MPL7GZkS1Li9g54xzewJwiFbjleR1MhB_6DsvDrN7nnCUvSucNfH1faFrO-Ftdk0jWw8hJo035Esun99xjwJytD-ksy4UCMdoI0D4qvBk8cQZPcbHZr2Zm2g3WvaBWfIKCtwlvFjQklmb-XTGGd-F3GO2lpBfdX5W12j-6UcTGwtiC-fQqSqjx31fFYRTWAl71VQIsiMmt-iwzifQqSqjx31fGstyg1FQ5rG4A_-WK-RXICO1wXRW2Eq_7ARuqSRxGp0EhHFjkq48uZ__WKzqvLKug4wFHByZFJeDy5W892e1fdd8I276nyfaf_hsAisIJDDBIkW2omHaYjtQUisv-_h9n-WcP3i9AieKQmm4kEHccUYek7EuQg_D71FUFQS4YX3ws-696VxhGciWn2ca50_trm58mUDzn-Afv7c8TrUdqiZx0qkRQRo5YGGSYlCRkXFKtSGmr6Ht18Y-ksipPINykTA3X6Y3ngkY4X3pe4bRDYyGu5lZmPZz344FwQ0exOY5a1agRm1fteiIqD6d5wKDoIE32MBtBt6HzsjRzftKS_JOotjOArY8wfMycABODv94p4nxWdYAN2uuC5AK_ACEldUwSxk6Z2aAjt8WoJa_eoM1Ad8Ztyg4-l4O3g2bpFAPklkOkVcJr-2LF8ctnxlQdDpkI-p7L9Uw1CJDCRwcLSpZ97DJ_gXi3jjfiykpn92bLx2KdHUy0OqdJ-vJJFVisaY_aGyeQEEpW_y1OHbcRGmgDg6SATLbzDU1afbbZwTCoR4RXDYX-8kiP0LtePt1QCJ3uVQCAyVl2D_bQhDicczQt9qKmiah57Tc1mMDfCy-654-vVjQ_7qkyo3yqn4CpPL3P_M0CKiKUWN7s-l1wh6889s2FrtcjdDJK4c2UiGohGDNd8gdDGHyL8BzxtsEuWm3WWfFZ0Dzwy55-vlm_E7OIhpyYyqAGzjLFv5nDEqXbioVranAWHzGE1DCNb76ehCc521wA88afM_Lu0-erROqJ1YnNp9raJafzqUisKRxNxkwBl1SwVvbRacOrdPl4OAOVBIMTD9kIytlkNpxsepGRQ37AwcOCrkxHB-hf9xEy5utvAenrqb72cSFSlXvliua5HITJPqcF0JvWrr-8IWdz4Rt1C-8NhMtaKAMvF1Fj4RER0K8bM-MbBZ72BF_0XxbdTnLGWqXcM3tdY9kZe4Wpzfml-j_uUKgTqdpCrs_v7c8TrUdqi7qoOLbf1QY1f3PzeksVtkZWbpJlomTJUikOU6h4XR-E2DF5dWspQj5BlWa5pAHyp_8-WNm9y69i3yn2xOZHBHu8vtekN9M6ItNQ8uY4x34E-Gx9KgND05wovwJXj_1JRQbhJcwMX69FI0dfhtoveUVKEOVGNkYNb5lnxo567ueLN6W9xXs1H01ogqw-v_PNe41SKc7IYFmJ3NqRMmt-UZ3OlHMc5r1l-fF7S8rca99mBhjzyhFBfiX6cFuM-PkEFyABVzMYD_3GiO_IPrCcAwCFEp_PXAJJObep8znlJpYIm3WK6QjHnmLVm-TegvgmmSNh4FHeAJw_Gdx17w7q1-dSUMBSqzWgN383E2ctYEVZQ3iGx-CNGqsZ3HXvDurX5xVlloLMM2T9ixWg2gRsX66ze1Jb308TeJt1iukIx55jd8fTl1VzDOltntsFYrZVBEZuSLpJ5ikiryRhs7sjNCLcmZ471v_6Sy2QDce_yVsPYyrF5NcCobfklkOkVcJr-qP5Cb9fwAruZhkjX_y0itzwondYo5-tu3UsG6kUt_-dJKtLR-nwhAGVR5EqonMzA83XLHK_FUmyYzIsI-01X9Bm9cQL_f9UmZWrw-nL1p3QyKKsbYjO8m4uTx-2nscOEYEM5EskuJDhw08A41Kh2Pa4Zh383Pm9Yz_nTy6V260D2NmhEePQ7-uDI1I3pwBKaqk29379tNQ9o9jbnRV6xSEtrzc_cvUCDxqfwNMqals6smG_GTUKJ0mVq8Ppy9ad0mMyLCPtNV_TDIn0CQ5Ao6MJkTUNAWN7QKIod-6mHBx_GwkzkX1raN49i9e1uuHb9byzSzMIA2RaWr5qt_z1o8gfIXa5iXuluio56s-8pgjKu7uaN7Z2ptmIL3LwM6Nla8XgkNUwX6FEc7KCkUADBzxt_wa9xwzGkmmZ1Y9JRgvxJ8QvYxyyucNoLhIKW90IFGjLVw2WjHEvgKMjDcfm8EEFF7tn41dW9Pf7XpZSPbaQhm0Ky1gDt68Wy5rCnyTyDRS_qYzoYxRG0DcTaGmII0SBnRKBhVTxt_aJPolyUe3RB7hMgznWeCVa2OqHm7S5u_aJPolyUe3Tk2nvKDwktz2Xx0zgzOBbxpGRQ37AwcOCrkxHB-hf9xEy5utvAenrqb72cSFSlXvliua5HITJPqcF0JvWrr-8IWdz4Rt1C-8NhMtaKAMvF1Fj4RER0K8bM-MbBZ72BF_0XxbdTnLGWqXcM3tdY9kZeSgiMGGln0fUot2IPc3-Eukjcq4TA850SlSjC_CfOGytQ9ESB06dR32u0JXwUWHhrOTMghKqtrubX_JDstbsfQu5dqumUSb6GZd6yyDwRGqS-gVSZOIlRhmzzY7Gk9wYe2_ptJskKix70xxbe4gYoO-9zlFwsZRQ_HZObwFSh6LQt8SNHYuANElS0ErMWFJOoielij04qU7o-uUcKwf2sOncRJh8VMQqogC1rkDhbkImjWQOfbh1T7kZcuaMAIDfq45nsIu_YH23YsXxy2fGVB0OmQj6nsv1TDUIkMJHBwtKln3sMn-BeLeON-LKSmf3ZsvHYp0dTLQ6p0n68kkVWKxpj9obJ5AQSDSDhde1yZH6aAODpIBMtvL_I3A_EXBeawSE5nFRQ_E2iR1IHLiyaTy1Q2AWs9SuXFUp-XfAQoVxi7mYu0eTSWCKS-Rw8lPUbD8oiUOqs7RDhEICr0h1rScEhOZxUUPxNQm53qjTP_zB3_MlPHeauUbkei52OIA4VXP9K1I738QPeERIBCjhmeMdc0i3iFVsEEcVi-7QMdNNpC4TmNYPqC9cYm3YkS35ooCL0H0jWuiy8DF-IN9VKHg4Gje-3mGzxxpMP1CmnYx9viAnChZ13p8falV8xJJZq0qTyB2CQuoBD-xbRd26zTwEQJ4lTSp-esRFX4tVhX-QcfaHuXaietUIfMFfHoU-SU10qVgqEOrgKJFv-m2Lm2Uvhh_O8qbYBcieGhSV_Gu0M6AI7GyZGvUhtsKoO8j6A-ANAquyGKAiDkxerS5tTj6Qmm4kEHccUncDNa_bfsQoSL4wvarTgHtVhW1BYrhkX_IevsHdedVgAnXwyNmMXyG08jiGofXWaKgUwZBtkYsc7V5fm7IJiZF_iOfGXm88ofsCulg3ED37f4BQCYWKlc-Yc66b-dXYto4dq0qcvWzeOBsB5KVB5NrCMkMwbKZGvnwB693HI24IoEk5BPbq8QM-nFraiygjxV6Q2k18yyNmFnPI6EFpEE-B_7lUb_H6wxsd3MUKOmMvxxmGUuwc-zhBH_mDG56pkW9mDyufDj2co0fElmCAALGdyRlTT4mz_fsCulg3ED369Op68wLmjyx8Pj_ozvZ7HjyGazxAoeqz1jXTWWrxSkADrccwMsaJeVAzJA2Alcd9eAqjFz_8AkvD4HttANdkmGd27C26PCqLdyS2qprm1FJop9FD7WAgw8Pge20A12Sb-DmO-L6QDXlvZg8rnw49nSXEr3LpaHamTUCpoKXPDCxBeG-5ndnqHb5flJSrKuNj-TvVLqClKQrWoErUe39BQvjFtrxUXvWc8FmNHWJeNw6dYE2gSnUyxZBbnKi-RqvAQ1G77vPL5QjmTtwwi8AnT-Frasgf-YHG47zmHrStTkBc9NilCJ5DhDiYyNl_Mf2LwekgP5YLdFzFsbajD8EfosWlMVh6BQP6MWVr9Sr_JPeNQVH1HiwCRM240ia-s3ji-jzLPDhgLWNoaHmPq5uJ4hLCd4YP_Kcwx8mwbG6ed6USiiP6t4D99KK-cbd0-YZDOTbWTPbitzfQIqskqN-NqZ8R3dk_6Y6ymrbkXY_aZCqYSj1Ne2RQ7jFla_Uq_yT2DhzwsAsh-iPGk5j7qdBNMnNQximWjTs_KnQMKrlgGKIwlSm5BVXbdSzpIEgFnSVyf0KMshu1QEhXVdZMrMg8Mpucf43ZJdStTU1u0GXcRya7u5o3tnam2YgvcvAzo2VrxeCQ1TBfoURzsoKRQAMHPG3_Br3HDMaSaZnVj0lGC_EnxC9jHLK5wCB4v2cEmuGAaMtXDZaMcS-AoyMNx-bwQQUXu2fjV1b09_tellI9tpAF4habew_4RPu-ALVeQOA3QDqKqfZecJgEkMxbkQ54SvDWJrKI8LCngf7CkY_T3a-XKvbTa4arqUwKYdVbRmR3gf7CkY_T3a4s2jqof0G3ull0okRJNDEuxMiqa7ap9YS_bxLoXu-EEcJgGhRTbUD0y3_OjvuwsTO7lcSWwNeHG57CveSk7Hnj56a_PJVG1AZtXJ3-eis02aolRhcJu5tvieYSLgA5OksVJLlmKzgp2XGT6gxF-dzrEV8PMRZPcYsSP37dXDXxH_DhcA0j-uzT91BScaV0IrVlatMhy_NkZMTyORYKWyDVDymc4nTEJOg9Z9aplMIfZ1ll9M1vy4x3yJ-BCgPApKTjMozk0E-c9UlIzZl-6y9rqpg4rofDsQvx1d8ePQeaNh-l7YdkrauAjk37inN4es1QJRpLLQzItW-35rwvbL0Y6az182ouU-nzzIr3MTtDSNXeocRejWLAU0kH49vheVY-nJmlkA4dG1RocjRQVjFZ_PRqs0MpMkg4fTQL-C76pi2BEYd4_GTaQyU1jJOCqUGRD45sm1iEPLSgtOpM4sQwC49DjSmc1kAYtU9ip7gibCge193dsfXKifjzZsp5XxjWw_m_fuoQx5MFNRlp0-5ivI3s_NigrvSqW2GDu-EQUc88jKPy5DSO_DUarHSBCPazBTYqrO4ebuR6LnY4gDhUyfZSngcvXVue6x7aoPXBZROcyD8tXpIycOFDHOd_rYIBdf8r6eZt49Oyz3PvmGL4FtRwOtafim9bBjvSzuFsQUQR8J7HZYCF0k3nzRfutgygxqPPL4-23qdVqvng__r2wazXoHR9RaKL6ehEBxz7pzGE1DCNb76ehCc521wA88ffqshV_Cn-yB2TtihDrrI5YmyO95YF5tzfy9ty24c6KfoU0E81o-D7uXarplEm-hmXessg8ERqkvoFUmTiJUYakWetMoZgcVNmA0b2Q4J-loDC3_WDmj2C5DAaEwc4FFjEQW9SuKsEP9ch_uaLRYu6woc36CjyCkrwSPAJK8ekSFtX72u80H90ZMV2JTxrVKa-UC5T0ZfZsx3_7TCTL6UM8G19cohM8DlTSm1VqAIvVT4gGIk6Mu1vi9F2VBLo1czICYLpmINlte-qHL654vu47mXD51r6K88irHYt6nsYlb4-UVwu89cNPdcBpOlCMkPfIijPf60WXSii9jl76smV1OWx1HSyVzfD4HttANdkmT-wCJSBTb0b6_FZAEx-T3avZBWqi5SNJSXGn1vHWwvalhMyt2uokYtqzz97bzQ8HzkRWCspnPabdPUCEl-SEny04zy-HQr2L_uaWFTbPjkaN6y3qOU9UUfcdvwnr0fnjyYQShMpYI2AzJsDnaBxigW670rKL-i4EIIXTKstDgu6oLdsH2ybs_veZ0GqfXoz3mcZXQkQNpWrWiZubej67v3a1o2-_Fc_4_YfJW91xTBSvaomfKitI8h7I1Cr5mAeYUZzCPTI7miZqiRieAsMYwzxJ7tviFzDD3cF4yFoBvwxXfgtoJPGPngmRITGJ0YC4Q3KNw5bLJqL6cUCel5aXafJY9pz2StGT5kSM-tQtJs71Mvu8SszJeAXHY9KoJJS2y88Skf9UW7u-rJu67ptD3R7yAhUalj0Ryydc-LmmLJ4UKC1QdPIV2UKXEKGetHdGowKp87kwGRSN6y3qOU9UUfcdvwnr0fnjPdA3iyS_9BKy1jxYqGhocgCezgQn-mSvbGDtucY52MW6e7xH7N5srQjIQZSqX14iDSrjkBsfq7HXt8MkLwCWge835nmklHFO8goXqrBNifxYUvaCLsr8jbnKViquzD1qoV3Ds9cEze5ClxChnrR3Rr0Zzxf4j-nMlyFn6BuVz2dzP_Sbq2WqTli1hnJKuofl2bhCsoXe4QQlJSB6zDsfMiYYF8lfwowIpflgpW1QG801e0wJ-JptDnPTipqkDnBM4CF6lAA3usBN-9YnMNNoZVWP3_TDEe_CVvBb7h9vfxlREKQJXMvHt2drSLDK2geVg_rKGnjnlJojjXTcbwlUKGviCwYE_d40iL4oA4c4XvbtMf0MTOiEXA0PGQP1UD02z0Zvq9qnfjgq15O-2vIaC7bI64u9hGTlNRbu6mW1NT8iNIKjZn0Y-2XwI0DETeDTGptbWUurTwciNIKjZn0Y-0F10SyfGY4OTH1YVRXj5uJj6SyKk8g3KRMDdfpjeeCRjhfel7htENiLT5N9NW9maT836U07h5_CBaTpRaanGnaJll1geHm8eJhyQRNMAuxZXhSesCR8zdfYL6mhOQnl_VzkKMmNDMln4JMNZ2vaJZhUd59LwZ-VOJOVrpg1m9Q6wYH3qN5E9qi-Zi-gtAtKdMd_-0wky-lDKPajPz07eUY6b-XZCH-8OANgYnfbsF0jsTIqmu2qfWEv28S6F7vhBHCYBoUU21A9UQDXG0HoFuTjeeQdNqGo4YNVIMo69H84xjCURvph6YAXzoQIU7OkpBI0cpTpM5OVQ10sfG76tcqtuPEaH2aU2zNV27qyeKOvzvKKDMAeL2vx-W2WQbE_vSUVkv0vcxW12GhsJffGJmx8tsIRpL7RFNdQOuDNRkJmw1qMZRh9zdE0QrKoR-SmaH-NwPhSOp4SFwHqomwzJxZ_PRqs0MpMkvE9XB94F1pdTehkjuCzS7KTMnfhuRQJ8-CwlZq85AB8_78mmvF9tAm-EGPCd9O2xSQfVzOGkRoXdFS4xMCEjBjEP_e7Et3KRsb_Ai4-I7ihkAVPFKO-k7ptqNCK6byIG78NRqsdIEI9fBZ4POctEkiyyVlCpMbeL9bBjvSzuFsQx6EEupAPXxHG_wIuPiO4oYG5YYn8SRbFrRgaLJ9Iftir3Tdvn-93Ndzvq0m5MSUwuR6LnY4gDhUa1TuSKBuMzwjTshd_mZPzxgn535qHgAeJafzqUisKRxNxkwBl1SwVvbRacOrdPl4OAOVBIMTD9kIytlkNpxsepGRQ37AwcOCrkxHB-hf9xEy5utvAenrqb72cSFSlXvliua5HITJPqSBPwHe1JlVJPv2qBPoc2wPqUH7DDzeaxICYZVI0m3FQpmhD8P1zEjTCEtaf-xVOUXcM3tdY9kZe4Wpzfml-j_uUKgTqdpCrs_v7c8TrUdqi7qoOLbf1QY1f3PzeksVtkZWbpJlomTJUikOU6h4XR-E2DF5dWspQj5BlWa5pAHyp_8-WNm9y69i3yn2xOZHBHu8vtekN9M6ItNQ8uY4x34HDToMeW4_6oVpV4RGs5BeMQbhJcwMX69FI0dfhtoveUVKEOVGNkYNb5lnxo567ueLN6W9xXs1H01ogqw-v_PNe41SKc7IYFmJ3NqRMmt-UZ3OlHMc5r1l-fF7S8rca99mBhjzyhFBfiX6cFuM-PkEFyABVzMYD_3GiO_IPrCcAwCFEp_PXAJJObep8znlJpYIm3WK6QjHnmLVm-TegvgmmSNh4FHeAJw_Gdx17w7q1-dSUMBSqzWgN383E2ctYEVZQ3iGx-CNGqsZ3HXvDurX5itiLeQfqGUT0c62xceoFUqze1Jb308TeJt1iukIx55jd8fTl1VzDOltntsFYrZVBEZuSLpJ5ikiryRhs7sjNCLcmZ471v_6Sy2QDce_yVsOJ7zmZd_JlLdDU_e4xFSCmr-v1l3ft8mfPEOUuwLIkR7UqMgcRsAbF9l1euEiFBLv2NmhEePQ7-uDI1I3pwBKaqk29379tNQ9o9jbnRV6xSEtrzc_cvUCDxqfwNMqals6smG_GTUKJ0mVq8Ppy9ad0mMyLCPtNV_QQzn-v1JANHVXIy1BUTpCClyFn6BuVz2fmhLOkXHNq4OujVzStFavTkPcIRwyI-3P9PEB8lZ6QTpmGSNf_LSK3PCid1ijn627dSwbqRS3_50kq0tH6fCEAZVHkSqiczMDzdcscr8VSbJjMiwj7TVf0Gb1xAv9_1SZlavD6cvWndDNuNImvrN44YIbHqTNmYi8nIun7c6YzwVO_Kv1c8MCW-pVr-3jSw9ucN1YThy0Hes1pFfHI3TyIF3WZjry7bB2J11Cr_hOlfxypGjnnHESh1gmlULMPvw79fJfAIaY73eU-RNEcwrDszjPMFbB0hqqqQ2kR0y7nmm580Ewknpky2YnZUgY-mboq15O-2vIaCy5b8Ebjg72krqr2K1pQ5PJ798vB2aMOFpYCYv4orVlv_9DgnRLXhXNJaREz6k7ZxD7J_8BUOpSGaIzoZT_AgdeLL9D2pcvJHNHycGX2S3uTaIzoZT_AgddVJ5bk8B4xFE_BTAMgOCx6y6uMVURUN9LyJ-BCgPApKTjMozk0E-c9Bw4udaOeQ4_CL474hS9tOzIcBImZjOlZzrCBESxEwmKTJhOl6WH6mbJgVlz5HHi2yr3NNJgpFKHEDBramqZJ_yO-b0LexF-xv-g05lv5Xws3HlJLmGRTPfM9AhxEgtrM5kgAXRSXGtcjZqFBCm9dDq9ZB2v4b5cRV_EFIhT3uCHRdSwCsdEU6LERV-LVYV_kHH2h7l2onrVCHzBXx6FPklNdKlYKhDq4XRma_-_AqknlpSZsXVMhR5NfaoNvoRhBZQkfbHCauGGGUS7u8jaxAws1jHrFJ7vl4yt2OPYa99A3c4c4iGmjomZyrdGvbtrXZRqRI1g0NiwgBiiUlaCqRbio8Esj9oHNM15ctaUIs0T5AtdO8T_JWn89GqzQykySDh9NAv4LvqmLYERh3j8ZNpDJTWMk4KpQZEPjmybWIQ8tKC06kzixDALj0ONKZzWQBi1T2KnuCJs5U3LsKbmi8aJ-PNmynlfGDosWFbC2216I_-nb22r0yrSCKWzqkcpOEcVi-7QMdNPTE8OZgiFfKZUathv7XAr-KPtfvaAAEw4789uzrRX4RrYEc39j7qtY1QEc-oU54VAco5qWnvs8xJeSvqesG_WXokdSBy4smk8uGdq8pgFgT2EsrTmm-ar7sMVc31Di4jpmns9tbwLHag_KIlDqrO0QincZA7dNGZAhFavoQ-I-wqK92OC-vnnUeDKrcXVIVglkQ-ObJtYhDzNpm-j8i-PKTBmHHapDK84dadIIhnyax9oaLwCFhHTJ_Vw4FQAgp0wEnzoPfDXMR2ikk2qGx6J44PSY4eI4knPzdJZM5xd9YDjhdGqysLYwQCWwOqhi-WLVZF1YhYW89yAuoDL7qK3foE2W-ofXQsqzgpcrSakQyItB0AGp_EqNoh8q6fS_WnavWQdr-G-XEbB5mQJvxeW0RbCQnfnNU3lYYtJ0vWnHb7IobdcyutQjxqOPCrwXcqJClxChnrR3Rioc-LSESVCVGqyJKFrkRlk9BJ1pDK2gb0nUS0DekECHadsSv8MgTMVaWF2cVoghVsEJMzV95yK1Z-UoHaxVf6vHjjZ1GS0lI1NQ2VVPWSDEO1eX5uyCYmSSbaL2aeokAV-QeGx45v0BUPPm9OH1lJmCiz4UuLGzkIW_uxRnKMVp8Pge20A12SZClxChnrR3Rm1Vj8a9csGJIVuYSVF3F8Vb2YPK58OPZ8l2TmZFZHZ5q3BACH4qSq6PIZrPECh6rInx__Yu9BJVJt1iukIx55jujLmjR5TVkyBdMXio1u6rDf-5xk2gYCyDiZO4P3zVKKiKYp0jjmbzOhNXNQO45qLdKEiG7heumHFXUPb_CpJBW9mDyufDj2d8IdXcar97WKp88cjOq1_RS_VVcQMYpHsL9CNYEKmw2q7WJ6IWXG38xfqmsktfzDXQ4twla3O4nOvHdfzGEt17ENRu-7zy-UI5k7cMIvAJ0_ha2rIH_mBxuO85h60rU5AXPTYpQieQ4Q4mMjZfzH9i8HpID-WC3RcxbG2ow_BH6LFpTFYegUD-jFla_Uq_yT3jUFR9R4sAkTNuNImvrN441ff1cQ1OOMKglSGZImbkLby9lugq2eU3MfJsGxunnelEooj-reA_fSivnG3dPmGQzk21kz24rc30CKrJKjfjamfEd3ZP-mOspq25F2P2mQqmEo9TXtkUO4xZWv1Kv8k9g4c8LALIfojxpOY-6nQTTJzUMYplo07P2ut_RwDobUe0Cq-wpHD3s0s6SBIBZ0lcn9CjLIbtUBIV1XWTKzIPDKbnH-N2SXUry-u-AU-e3Beu7uaN7Z2ptmIL3LwM6Nla8XgkNUwX6FEc7KCkUADBzxt_wa9xwzGkmmZ1Y9JRgvxJ8QvYxyyucAgeL9nBJrhgGjLVw2WjHEvgKMjDcfm8EEFF7tn41dW9Pf7XpZSPbaRYJydQE7RR4OD7DM9sOtgjRS_qYzoYxRG0DcTaGmII0SBnRKBhVTxt_aJPolyUe3RB7hMgznWeCVa2OqHm7S5u_aJPolyUe3Tk2nvKDwktz2Xx0zgzOBbxpGRQ37AwcOCrkxHB-hf9xEy5utvAenrqb72cSFSlXvliua5HITJPqfVNmo6kVXHP94kaLrfRziPrPXGz-x4h9xNN-XmkVQYvhQAkPD9AK7L0eQEUN0rkTXcM3tdY9kZeSgiMGGln0fUot2IPc3-Eukjcq4TA850SlSjC_CfOGytQ9ESB06dR32u0JXwUWHhrOTMghKqtrubX_JDstbsfQu5dqumUSb6GZd6yyDwRGqS-gVSZOIlRhmzzY7Gk9wYe2_ptJskKix70xxbe4gYoOwCDI4xWwal1RnMb_k723w4t8SNHYuANEna_y69fvOvlzMdeFTEAFNYJ2AjUnASKa0xDqcJOZur5D9AIc1FP3vujWQOfbh1T7po-aq_87QGfcTmXvKWG-MjYsXxy2fGVB0OmQj6nsv1TDUIkMJHBwtKln3sMn-BeLeON-LKSmf3ZsvHYp0dTLQ6p0n68kkVWKxpj9obJ5AQSDSDhde1yZH6aAODpIBMtvDM5BhpO4bS1MbEpIUFqF47TE8OZgiFfKRp7dZGUmgVe-DleBiGAOT6SCgPJ5EAZ_UOpdUfNxR1u3NcIoXSPo7LHXNIt4hVbBFAWVngeKzk7aQuE5jWD6gveZoNveV8TUkRUhLlqFdKCFSdX6hBvVjRWC_o0lgMPNlWL4YXRDYLoV6i5j-wmnjnNvFirbem2FUJud6o0z_8wqcyM59lFiVWwxVzfUOLiOp35KiISZS0ECNOyF3-Zk_PGCfnfmoeAB4lp_OpSKwpHE3GTAGXVLBW9tFpw6t0-Xg4A5UEgxMP2QjK2WQ2nGx5n1Fbue4iyPS_bxLoXu-EEcJgGhRTbUD3prT-t-OFQMFcLDbauXZ4_NQCj7i4mv8Bky1N2373Ngw2nUZu_Q1DJm2Fom8UDJbZ41UwUkh3_ECzjBKCp-ZlXGPaIzPUikLt3DN7XWPZGXuFqc35pfo_7lCoE6naQq7P7-3PE61Haou6qDi239UGNX9z83pLFbZGVm6SZaJkyVIpDlOoeF0fhNgxeXVrKUI-QZVmuaQB8qf_PljZvcuvYt8p9sTmRwR7vL7XpDfTOiLTUPLmOMd-BjrDG1auz0A0GxXt8d2NNsEG4SXMDF-vRSNHX4baL3lFShDlRjZGDW-ZZ8aOeu7nizelvcV7NR9NaIKsPr_zzXuNUinOyGBZidzakTJrflGdzpRzHOa9Zfnxe0vK3GvfZgYY88oRQX4l-nBbjPj5BBcgAVczGA_9xojvyD6wnAMAhRKfz1wCSTm3qfM55SaWCJt1iukIx55i1Zvk3oL4JpkjYeBR3gCcPxncde8O6tfnUlDAUqs1oDd_NxNnLWBFWUN4hsfgjRqrGdx17w7q1-REy6QPpPRx_4xtA_M1xIUys3tSW99PE3ibdYrpCMeeY3fH05dVcwzpbZ7bBWK2VQRGbki6SeYpIq8kYbO7IzQi3JmeO9b_-kstkA3Hv8lbDRavGBnvm_xkVJ3QPzaMdiCRhpXHG1l3y9jZoRHj0O_rgyNSN6cASmqpNvd-_bTUPaPY250VesUhLa83P3L1Ag8an8DTKmpbOrJhvxk1CidJlavD6cvWndJjMiwj7TVf0EM5_r9SQDR1VyMtQVE6QgpchZ-gblc9nPYQH3x7DlNqztC6zQdftq5D3CEcMiPtz_TxAfJWekE6ZhkjX_y0itzwondYo5-tu3UsG6kUt_-dJKtLR-nwhAGVR5EqonMzA83XLHK_FUmyYzIsI-01X9Bm9cQL_f9UmZWrw-nL1p3QzbjSJr6zeONX39XENTjjChLvW1qSWGHCxLztdDkUozfqVa_t40sPbnDdWE4ctB3rNaRXxyN08iFcEk6mLwEYTDX3Ske0mjRJmZEtS4vYOeMc3sCcIhW45XkdTIQf-g7Lw6ze55wlL0rnDXx9X2hazvhbXZNI1sPKWhmfxjWztK_cY8CcrQ_pLMuFAjHaCNA-KrwZPHEGT3Gx2a9mZtoN17IMVBaV_EQH9N0Jup4exk0xhnfhdxjtpaQX3V-Vtdo_ulHExsLYgvn0Kkqo8d9XxWEU1gJe9VUCLIjJrfosM4n0Kkqo8d9XxrLcoNRUOaxuAP_livkVyAjtcF0VthKv-Lleu8b5TOOBCHzBXx6FPklNdKlYKhDq4BjGTaZAlOMKqtlsDVgAMRWyekMlX0Zy3R-oi26IpAGh3bFqjwR7d6t53_XgasKsqzW1PKLd5JEBjuDjgaC4xgrMifdLTmffI5GZ_vG4RvjEcULUJj2sJaw-d48zHv0xIaQqr9g6vp1TUvv_cV1ronc6RNqAmeBfMhQsiLye_j5FeUSbvtoyWZ9cZSKNm7fz62hovAIWEdMn9XDgVACCnTASfOg98NcxH60_QMmmGgWIzJDnvBpRkTKL0OHhVjVxTWYwkcIFQ1kitsLtpZn7pMzOSnNflxmMxxnbBRi2x9XNJlH5yUAzlFH6X2XcMdZ3EmY29kKBeJ-kFHuHR_E8Mpp_qQdr6ng7xOAoA1doaN1jybbxIVDgL1PrZxAJLDTCNDrv80PaJi2Kmevk4Duq0As4nbqKIpRfB8bdmXr-5X7uHG-qUGoN7BSEmvNz0_F3a_-MFcct4vwera6dEO_J4RGPcno1ZHELTF_K2ualUmSvwMBgGWinwyqe45E8I9n1Jrm_hV9h1e2b9Mjwnn3McOgGIn3hVJF751D1lqaW_ymFpC4TmNYPqC3Fr9zzlCCYodTd1sJxwdqbuxSFyqLHGxBWNQDjo2OsDobdk47uaPbnNYGkS5nscDnDAOs_r4QwQIRWr6EPiPsKivdjgvr551Hgyq3F1SFYJZEPjmybWIQ8zaZvo_IvjykwZhx2qQyvOHWnSCIZ8msfaGi8AhYR0yf1cOBUAIKdMBJ86D3w1zEdopJNqhseieLz95IC5_P3ocuCl8KCYEv7LAk4qZFd-cbDlPNt7U4wWVkpcLaQ1r1AgcnJpmojD6KBNlvqH10LKs4KXK0mpEMiLQdABqfxKjaIfKun0v1p2r1kHa_hvlxGweZkCb8XltEWwkJ35zVN5WGLSdL1px2-yKG3XMrrUI8ajjwq8F3KiQpcQoZ60d0YqHPi0hElQlRqsiSha5EZZPQSdaQytoG9J1EtA3pBAh9dzegAIz8O4WlhdnFaIIVbBCTM1fecitWflKB2sVX-rx442dRktJSNTUNlVT1kgxDtXl-bsgmJkkm2i9mnqJAFfkHhseOb9AVDz5vTh9ZSZgos-FLixs5CFv7sUZyjFafD4HttANdkmQpcQoZ60d0ZtVY_GvXLBiSFbmElRdxfFW9mDyufDj2fJdk5mRWR2eatwQAh-KkqujyGazxAoeqyJ8f_2LvQSVSbdYrpCMeeYjwreASDlwNydiiTXsXQ8LQ3_ucZNoGAsg4mTuD981SioimKdI45m8zoTVzUDuOai3ShIhu4XrphxV1D2_wqSQVvZg8rnw49nfCHV3Gq_e1iqfPHIzqtf0Uv1VXEDGKR7C_QjWBCpsNqu1ieiFlxt_GAygkJRi-L8PNEYPbv_zV-9lbLgRTjxbJMhCNxQmPupzhUEETPDZuvfzAktjL6D8MaH5M6crF5jrwltwhlS7avVravFNyVmA0rYUYCgO9bUuLzfFrc2oQJ-wK6WDcQPfr06nrzAuaPLWWWZ5-hoY8RIja1S7YfM-9dzegAIz8O4sZnrScG5FDKEmyQ7nWWdoCgIlLyCO_Pn3Bd7k2pDWp7uKmkfH3sStgkIjT6hscpieVbWCamySrmcc45u57e3YR0zpJizmhkHfsCulg3ED35t33fxA700rYxjNWINn2zNPdA3iyS_9BIg7n5zKu000-TvDo6NnIuIK6rlvvBVyx1QZVSmi2F5DHAMG-F3h_l1A4hrdHY0B7zU17x5Zz9LLD8LTGsNNky7oAXHTOD9mwZhcuB-GiY1KNBS89fskR5mgaf0777MN3QicxLH0v5Ozzc9nxoT4d_25-KZZF1tba_51XqbEXytnyc6Jvo23ufAdZUuyljooaOYS9Xcea2XxpxNQKZTjc9jOKZyIBtahUrQDqKqfZecJgEkMxbkQ54SvDWJrKI8LCngf7CkY_T3a-XKvbTa4arqUwKYdVbRmR3gf7CkY_T3a4s2jqof0G3ull0okRJNDEuxMiqa7ap9YS_bxLoXu-EEcJgGhRTbUD0y3_OjvuwsTO7lcSWwNeHGCotfTe1_YgJ6AiKeUoojra_V-LiLmpFHgY_Qq81DdIH6vUC82V5FAi0Y78hYCIQWXGT6gxF-dzrEV8PMRZPcYsSP37dXDXxH_DhcA0j-uzT91BScaV0IrVlatMhy_NkZMTyORYKWyDVDymc4nTEJOg9Z9aplMIfZ1ll9M1vy4x3yJ-BCgPApKTjMozk0E-c9UlIzZl-6y9rqpg4rofDsQvx1d8ePQeaNqRnVylP2MZ9L7ng2kcjSQVQJRpLLQzItxCV4Wz1ykkbHRRP889X6UlFDdAPw51FnNXeocRejWLA07rIvgdPK94-nJmlkA4dGEhq31Rg2KZd4fa7at8W14H89GqzQykySDh9NAv4LvqmLYERh3j8ZNpDJTWMk4KpQZEPjmybWIQ8tKC06kzixDALj0ONKZzWQBi1T2KnuCJuX4GYwISaUdaJ-PNmynlfGDosWFbC2214GH2myPJ8dO0eDTQ58N6HlvWiEur7nzcSzjLFv5nDEqQ0uHZ5wBiJaYu5mLtHk0lji_eg0j2tATX_LXnIbCYbVBnoSpzjnTLgPY4PgCcBZGL4AG2AoHxv0W0wSoIIzQN9jBit_RZv7v41QcINWJ98jO_Pbs60V-EZhnNmeI90gUNe6179JGyxemJRujfcqbwJtM4Ygu2mWVei9SfVZjB9rkqHCqzCXh7zEuHGiXlZXjsCpW-X7PjrQuekSuZ8mLFn9NuMCgL5_vNtXW2Pl2uS9lVM9KI5p9cbARuqSRxGp0EhHFjkq48uZ__WKzqvLKuicmMQTW3PqarsjChHlJowaJel8VzME71BNWtu8XWyUzyu2eBelLWRUOY9IEtgh0qzH7OhM6Wcoky75dZyhvrYDY1hlLEtWQNcMHU0BuPOV8gEQdKgQMuNrEJ5ens5noXYVmv7-E2NlLvGzjzuCdmW7KHOWFPCIBTL15YVBsnwCj8K-LCxFmjg3jFla_Uq_yT3JE9YXJlEi0DEPRKL9NNEWIt4HiVxPY7FPhNqh5updqf5ZBDRrfrB8ua5dLvo2rjLwBvr-Ze6TTLyE2Wj5h8Yo0N4j8vCzG1Ho-37V-H5D4Ryv9Y_pyuHhaSdqVVw_dL_dk4xSGZI3bRlAQR7hyuLEjyGazxAoeqw_K5id67xr--zEKCcp_fPfjFla_Uq_yT3jUFR9R4sAkQBT6QgTXR-B3KJekBwZTPsg4LR6pI3VQXtxMxhDeAsZ3ux4JWBBak3WCLUj7K6FeFbRqpCa-yRH6Ov-eiT4lfooaFztVTxrvWeglJ3rKGh7jCn41qJczEGFyDR6mXgANo8hms8QKHqs7Vv0jPO0JZ-xvkEOJ-bNSL2iHtz7wYBSRagJfqj_fZIsBpTu14EoQxV-VshKbGpT5Nvg_0jRM2agH4fw8UNdrtCWSNrrJBMc6AN71c5zcEEQ1G77vPL5QjmTtwwi8AnT-Frasgf-YHG47zmHrStTkBc9NilCJ5DhDiYyNl_Mf2LwekgP5YLdFzFsbajD8EfosWlMVh6BQP6MWVr9Sr_JPeNQVH1HiwCRM240ia-s3jjV9_VxDU44wvP0YJYc_VqpOagYWLv-EO4x8mwbG6ed6USiiP6t4D99KK-cbd0-YZDOTbWTPbitzfQIqskqN-NqZ8R3dk_6Y6ymrbkXY_aZCqYSj1Ne2RQ7jFla_Uq_yT2DhzwsAsh-iPGk5j7qdBNMnNQximWjTs_nmvaByYuk5kDxIB-SND0YSzpIEgFnSVyf0KMshu1QEhXVdZMrMg8Mpucf43ZJdSvpLsm4JKA4-D8LTGsNNky7oAXHTOD9mwZhcuB-GiY1KNBS89fskR5mgaf0777MN3QicxLH0v5Ozzc9nxoT4d_2T28_EGUVFIT51XqbEXytnyc6Jvo23ufAdZUuyljooaOYS9Xcea2Xxjt5IU_jqst-ZHaBF3pSbwrQDqKqfZecJgEkMxbkQ54SvDWJrKI8LCngf7CkY_T3a-XKvbTa4arqUwKYdVbRmR3gf7CkY_T3a4s2jqof0G3ull0okRJNDEuxMiqa7ap9YS_bxLoXu-EEcJgGhRTbUD0y3_OjvuwsTO7lcSWwNeHG5JtC27MPeLzPPr2TKCPMf3fFmpTImeFNqmaYpv1HSW1Dd-l_05cGf5P0oIVShC4AXGT6gxF-dzrEV8PMRZPcYsSP37dXDXxH_DhcA0j-uzT91BScaV0IrVlatMhy_NkZMTyORYKWyDVDymc4nTEJOg9Z9aplMIfZ1ll9M1vy4x3yJ-BCgPApKTjMozk0E-c9UlIzZl-6y9rqpg4rofDsQvx1d8ePQeaNqRnVylP2MZ_HInZGaLziTVQJRpLLQzItHZsdn6mWyz--Mn-SNfu5tiHwlSqeeOaYNXeocRejWLBXbHmC4t5EQ4-nJmlkA4dGn3wn4YRcWYbuiN1kVxvGxvbjR5ZcVOTq2LF8ctnxlQdDpkI-p7L9Uw1CJDCRwcLSpZ97DJ_gXi3jjfiykpn92bLx2KdHUy0OqdJ-vJJFVisaY_aGyeQEEsq5lxW4U5OumgDg6SATLbxHEK6XozVs8rVL5cafyqbVxkhQVy6qWAoJwzNq8P5YI1-Xep0rkJ4Vrm_hV9h1e2aM5Mb0nCwRZbcn8WfdnkAhepDZgsIkSqJN1mrAafaDU-l86-xbIQqfSuA9QC89tj9BA7pDRF-Jcei9SfVZjB9rkqHCqzCXh7zEuHGiXlZXjsCpW-X7PjrQuekSuZ8mLFn9NuMCgL5_vNtXW2Pl2uS9lVM9KI5p9cYuV67xvlM44EIfMFfHoU-SU10qVgqEOrgGMZNpkCU4wqq2WwNWAAxFaOEU1bB8ycwxKs4ErKK0DrC1rI0Bv6j7GcOri7e00ZuQeJT5aGj3hHJUeKIcHIgTsyJ90tOZ98hjWGUsS1ZA1wwdTQG485XyARB0qBAy42sQnl6ezmehdhWa_v4TY2Uu8bOPO4J2Zbsoc5YU8IgFMvXlhUGyfAKPwr4sLEWaODeMWVr9Sr_JPckT1hcmUSLQMQ9Eov000RYi3geJXE9jsXcWjiv1J9oKxtjOC8nj5ni5rl0u-jauMvAG-v5l7pNMvITZaPmHxijQ3iPy8LMbUej7ftX4fkPhHK_1j-nK4eFpJ2pVXD90v92TjFIZkjdtGUBBHuHK4sSPIZrPECh6rD8rmJ3rvGv77MQoJyn989-MWVr9Sr_JPeNQVH1HiwCRAFPpCBNdH4Hcol6QHBlM-yDgtHqkjdVBe3EzGEN4Cxne7HglYEFqTdYItSPsroV4VtGqkJr7JEfo6_56JPiV-ihoXO1VPGu9Z6CUnesoaHuMKfjWolzMQXIHz2RTBezAjyGazxAoeqztW_SM87Qln7G-QQ4n5s1IvaIe3PvBgFJFqAl-qP99kiwGlO7XgShDFX5WyEpsalPk2-D_SNEzZqAfh_DxQ12u2fHtmbBYall0ubk_9YcC4WNQh28F7-449TL7vErMyXgFx2PSqCSUtsvPEpH_VFu7vqybuu6bQ90e8gIVGpY9EcsnXPi5piyeFCgtUHTyFdlClxChnrR3RqMCqfO5MBkUjest6jlPVFH3Hb8J69H54z3QN4skv_QSjXbgA7BxHcxkq6tdoXclYsHHn6O6GwvJz_nTy6V260D2NmhEePQ7-uDI1I3pwBKaqk29379tNQ9o9jbnRV6xSEtrzc_cvUCDxqfwNMqals6smG_GTUKJ0mVq8Ppy9ad0mMyLCPtNV_TDIn0CQ5Ao6MJkTUNAWN7QURoGgYbIOofTy13ht4kro0s6SBIBZ0lcn9CjLIbtUBIV1XWTKzIPDKbnH-N2SXUrJOzFbqEodwghqI2SxFe1F0XhhL21GRkmDHO0JIVB93NsoewLuaSgJtFXh7RlXOSqYnSlZ6Hf7432OskdhmgbzCoFTB8zyi3lK67RBbMvgt7zO4ra81XJo9j92nmsMfkft2zw7Y_wkFNiuc2PSdUl2Jr533ExTtKYKteTvtryGgu2yOuLvYRk5TUW7upltTU_IjSCo2Z9GPtl8CNAxE3g0xqbW1lLq08HIjSCo2Z9GPtBddEsnxmODkx9WFUV4-biD_NbpGF9FkCrkxHB-hf9xEy5utvAenrqBlhDTOiX5iuSf2wvvV_eS0WiXKplCYPjoCwJ6sRBUJ5LOq5id2uUKBu7uopS7ZbRytWlJXVFTow81Q3z9VxCMox9S7JFUNok4JMNZ2vaJZhUd59LwZ-VOJOVrpg1m9Q6wYH3qN5E9qi-Zi-gtAtKdMd_-0wky-lDKPajPz07eUY6b-XZCH-8OANgYnfbsF0jsTIqmu2qfWEv28S6F7vhBHCYBoUU21A9UQDXG0HoFuTjeeQdNqGo4YNVIMo69H84nkixV2TWlI9HL9WhDwyBo0yiDDANuRdk8SAlaGRvNhNXX2uEpqN-EDNV27qyeKOvqT8E8w7JBuRIlsw4sw9WlvJY9pz2StGTLC_VHba5_0V_jcD4UjqeEhcB6qJsMycWfz0arNDKTJLxPVwfeBdaXU3oZI7gs0uykzJ34bkUCfPgsJWavOQAfP-_JprxfbQJAHnEqAoyfDIkH1czhpEaF-Z3B82juQLkX1nYXdHDqWmjeiq0lELu0FuxN9G1_FotjKd6OFZNI4JxFCcw7H-ix587sCZZr7_4DK76BPQLxHcVJ1fqEG9WNJ3cD24k0cHF9cJdwkI8PLRE5zIPy1ekjK1hf4GTuvQ2uR6yR_-SrHETruvJyFgbU6CRau0OykxMcNfKqx-qSJdhnNmeI90gUK8jez82KCu9rWF_gZO69DaJ_CbwpGYPsqLc57JtkEkumFyF07SmJCf7-3OIfF9k8jlhc2hN4MndOQK99ISWfOp9sgZ2rsU7zIpnkM4P6ExYo4xtdY4G7Iwn7DnL0VD8w5IQn_A52rA6wd15RybwM0p5ETr-BYInTn58s31IUtDTERL-vR9wtc9l3rLIPBEapL6BVJk4iVGG_2e6vyq-SIUOdgNFfREWuyv7OdLgCX0YiTmlG-wcO-exBOl0czYQYx4Udv_NauMehXnNsh8IN9C7ZYm_q4Ho6-4i018phN_jXGT6gxF-dzq1rEzuQH1a7IpZhwCZho5MivcCtb7W7BfSVhOdFbTZ99Y2Hq0vq4ovH5grt5yphJOr2QVqouUjSbQ-dAdZ9TvnQsUYUC5x9OaLOidd6SYlPNRKpItw29riZsKF6xVJRqkBYCMicaa0M1t0YDZlyQnaEvbwNV6hybFBuElzAxfr0UjR1-G2i95RUoQ5UY2Rg1vmWfGjnru54s3pb3FezUfTWiCrD6_8817jVIpzshgWYnc2pEya35Rnc6UcxzmvWX58XtLytxr32YGGPPKEUF-JfpwW4z4-QQXIAFXMxgP_caI78g-sJwDAIUSn89cAkk5t6nzOeUmlgibdYrpCMeeYtWb5N6C-CaZI2HgUd4AnD8Z3HXvDurX51JQwFKrNaA3fzcTZy1gRVlDeIbH4I0aqxncde8O6tfld2zMgMziiaxMvQuC-F7fwAP6TA19TzuPw-B7bQDXZJtBhc42tacHE4oVjpWbkCVFB3PysfS77lWwf_RBRCB_rEnLj1CApxh5COkFOCdSseRGIpXvfpvYXJGGlccbWXfL2NmhEePQ7-uDI1I3pwBKaqk29379tNQ9o9jbnRV6xSEtrzc_cvUCDxqfwNMqals6smG_GTUKJ0mVq8Ppy9ad0mMyLCPtNV_QQzn-v1JANHVXIy1BUTpCClyFn6BuVz2fsIBYnCQFhdxE-7P3fRCK-kPcIRwyI-3P9PEB8lZ6QTpmGSNf_LSK3PCid1ijn627dSwbqRS3_50kq0tH6fCEAZVHkSqiczMDzdcscr8VSbJjMiwj7TVf0Gb1xAv9_1SZlavD6cvWndDNuNImvrN4451prdkQt7i5gQg3lunKTZJbmqZdCc8oI-pVr-3jSw9ucN1YThy0Hes1pFfHI3TyIRwbuLowfZE1tKlzO-VSy1mZkS1Li9g54xzewJwiFbjleR1MhB_6DsvDrN7nnCUvSucNfH1faFrO-Ftdk0jWw8hJo035Esun99xjwJytD-ksy4UCMdoI0D4qvBk8cQZPcbHZr2Zm2g3WbOHjw0Yw4AUZip4n30pAxTGGd-F3GO2lpBfdX5W12j-6UcTGwtiC-fQqSqjx31fFYRTWAl71VQIsiMmt-iwzifQqSqjx31fGstyg1FQ5rG4A_-WK-RXICO1wXRW2Eq_4uV67xvlM44EIfMFfHoU-SU10qVgqEOrgGMZNpkCU4wqq2WwNWAAxFanCPt5hqHYiVSdw9PR5LF-uvMkal9bBQGo3MG6AW1nVBcOmqmaaNTGM9uvLd6oB0syJ90tOZ98jkZn-8bhG-MRxQtQmPawlrD53jzMe_TEhpCqv2Dq-nVNS-_9xXWuidzpE2oCZ4F8yFCyIvJ7-PkV5RJu-2jJZn1xlIo2bt_PraGi8AhYR0yf1cOBUAIKdMBJ86D3w1zEfrT9AyaYaBYjMkOe8GlGRMovQ4eFWNXFMh-cvcfJ6PpZlYGnDAXaKgR45ftsxsfWVz5slZ1kSNVXsQ16ow9NV7ZnKt0a9u2tei6lc3VwPqpx2mTcoamJQ2_PHq6qZkt0nMbZjtfUew-sLs-5XrrIIpos592OM9cZvR-Jw6Cc7FPgn2gO-XPUTuqbl4htx10U9FOolpph5zYRjloee0YMv0xePqrdmo8ljipJE6vnTupOEJMeryH-3yXkeWGZZPmLalFje7PpdcIejWi_-vf2CwVNVX0VLut173iBX1RQQS_cWcgKMn7go13hESAQo4ZngMVJA6Yn40LR_yGX1DmvKJJGAG1KJAsRpU1VfRUu63Xj4t8tFsd1J_LHcuk8rnpnj7J2iVGQlxHwGIn3hVJF75sMdklvZ9uorqIZTDFlTFsEKDmhY79bv8kCldiBEJxCRquRVdLTnI5fv7c4h8X2Ty_FqemY_2RrV0Jx-hzD9SQ9C1SinDCXRbckxXnUWRI9FmsoVmDs4U9dwfMsm5SohvHh5yX4HNx5dKcSBc95wXntZZfTNb8uMduVHx31bgK0RIRxY5KuPLmf_1is6ryyroCriWiVxixQARez-rx5i7e8N3Y-J1nhLpV_5-mzjkGilD9TvXrZVtHpfWkYOQ5ZZVHGWvTn771z5MyGZpvtNGGyO-b0LexF-x7NCrtmCCLVyTdYIfOTGGUqp60NbZpwYCfL0lkp83RdNFOPPJYyz_Ejtxc9_ttYOiunMiQvMdUecBnH9YhnxT3mgTGtDvIpKbZWrw-nL1p3RpJPPGb-nZpIMexn4xrB6O3JrmJfEGiDN0I7U5k9iAm80KSJ0PZH4lEi42bSg9oqEm3WK6QjHnmBYs31aMUacwtCLQzKdob03i9F2VBLo1c65W5oVNX7U6eCoMl8mDreGEvJ82qqyfRDOpn60cNoUYjgTQeMgZhmFdCULxjo0xevyL6gobMUBSZWrw-nL1p3QyKKsbYjO8m7WMXTnRTnJwT3pJl7hiws9H_MI2pcdjEWbztoAkrGVKq7dEHJebCrs4rlwQmX05elbtjsVLhM0YyCPvwpFJ5CHAkr_HN4_jiNEegdN0iiZnu82kBbjTsBfrvY-cdnY-kOne8WbG5XZHvNvQFDo6_1_Feg1URgJLbo1N5-vyW8ZFwCbvb2j14QwlzzjMG_lZj2PiBgRzdICF5eBu8Ys2COXxPVwfeBdaXfE6rTY0XTE-9RUoIIl8m3f1Mvu8SszJeAXHY9KoJJS2y88Skf9UW7u-rJu67ptD3R7yAhUalj0Ryydc-LmmLJ4UKC1QdPIV2UKXEKGetHdGowKp87kwGRSN6y3qOU9UUfcdvwnr0fnjPdA3iyS_9BIHA0Ws7dw42vpSFYvIVDL_DXZbtSHY6-3P-dPLpXbrQPY2aER49Dv64MjUjenAEpqqTb3fv201D2j2NudFXrFIS2vNz9y9QIPGp_A0ypqWzqyYb8ZNQonSZWrw-nL1p3SYzIsI-01X9MMifQJDkCjowmRNQ0BY3tBJIuSrdIFHjz7VgqwkhyAMSzpIEgFnSVyf0KMshu1QEhXVdZMrMg8Mpucf43ZJdSsVdsClSnq5iyGojZLEV7UXReGEvbUZGSYMc7QkhUH3c2yh7Au5pKAm0VeHtGVc5KpidKVnod_vjfY6yR2GaBvMKgVMHzPKLeUrrtEFsy-C3vM7itrzVcmj2P3aeawx-R-3bPDtj_CQUy2FOljX4RH8iImQzq5LfNNFL-pjOhjFEbQNxNoaYgjRIGdEoGFVPG39ok-iXJR7dEHuEyDOdZ4JVrY6oebtLm79ok-iXJR7dOTae8oPCS3PZfHTODM4FvFn1Fbue4iyPS_bxLoXu-EEcJgGhRTbUD3prT-t-OFQMFcLDbauXZ4_y9sx2cRd_Re9q9nKI2KJCMZ6LE4OmOYGnqmzw0B4p1RezmwBpSoMmNZgI36w4B5wGPaIzPUikLt3DN7XWPZGXkoIjBhpZ9H1KLdiD3N_hLpI3KuEwPOdEpUowvwnzhsrUPREgdOnUd9rtCV8FFh4azkzIISqra7m1_yQ7LW7H0LuXarplEm-hmXessg8ERqkvoFUmTiJUYZs82OxpPcGHtv6bSbJCose9McW3uIGKDvCL7Y4xyieYDPqwECo8oZ0LfEjR2LgDRJIxVGB49YTSnuDU43GDZY86xE7Q98UghB3ESYfFTEKqCnYBxozO80Uo1kDn24dU-4OX_XCo2Nyue9zrg1LJ6zep3GXDJPpSRp_jcD4UjqeEhcB6qJsMycWfz0arNDKTJLxPVwfeBdaXU3oZI7gs0uykzJ34bkUCfPgsJWavOQAfP-_JprxfbQJKiZmDyOODqIkH1czhpEaF6WzAeWla5NuSfeCaBMwgX96sG2Q7YYZ7wxUkDpifjQtWWZWNS35FgIkYAbUokCxGk5HabTMAU-RIdOnMe7Y0AySCgPJ5EAZ_bjgvkaCzgzLa-MM85fOy2LhEICr0h1rSS9l5jCEaFiSs4yxb-ZwxKmQKV2IEQnEJOIE1SnNk04ji3EQ9sHPc1YI07IXf5mT88YJ-d-ah4AHiWn86lIrCkcTcZMAZdUsFb20WnDq3T5eDgDlQSDEw_ZCMrZZDacbHqRkUN-wMHDgq5MRwfoX_cRMubrbwHp66p0wFgOuCbsRDnW_3IAF4uTyBq-jvtU17euXwMVraATF54FVY6Mbzu4V8HtHVdOIpWi8aQyaiWZS59zWdzi4K7xcZPqDEX53OrWsTO5AfVrsilmHAJmGjkyK9wK1vtbsF9JWE50VtNn31jYerS-rii8fmCu3nKmEk6vZBWqi5SNJtD50B1n1O-dCxRhQLnH05os6J13pJiU81Eqki3Db2uJmwoXrFUlGqQFgIyJxprQzG9YjRm1bGt0ezqudJR8wQH4HBm2_dLmufDlC_QaBIcYPQ0-P4z7TjF9olwsgzKQ_ikOU6h4XR-FX8IMaXYDKH8t6HNdeeLyYC0XUqqZX-zKi19nUDgufCYHq751k1_TTjSnaI2W4paDxmajFKPgnSYxjNWINn2zNIUhytiUEQ5Djncm8DNSneOYxkMlQQ74BuBJkrzqzGhvzHw_ZUO1-SvGZqMUo-CdJwHvA3dGZLBogNvsqRP2r3uIdJuRKcXKIfBbxUPzTNMfAe8Dd0ZksGvmioZhUEDzVgGn3W1M9ac3NOZfcEnacJfAG-v5l7pNM2ajkY-Z0gEpyJLc2p3RG4Z2l42bg1lOKQpnrDB68IgVp53fY7mYUkH6VQIFAGDXvcwYINhmoGdp20R6u8J_jswP8r-2w9f0PdRxNi0aZhzX2NmhEePQ7-uDI1I3pwBKaqk29379tNQ9o9jbnRV6xSEtrzc_cvUCDxqfwNMqals6smG_GTUKJ0mVq8Ppy9ad0mMyLCPtNV_QQzn-v1JANHVXIy1BUTpCClyFn6BuVz2fxEKvfs4fE6uFFzVAFp0x-ky99GrrBdbeM_-BOE5gXojmTtwwi8AnT-Frasgf-YHG47zmHrStTkBc9NilCJ5DhDiYyNl_Mf2LwekgP5YLdFzFsbajD8EfosWlMVh6BQP6MWVr9Sr_JPdyUq7Ce0sPXSI2tUu2HzPvYBtosYiCZOP3p2gxUSN1uekGDTUONmfSdXnAGH4QquoHcBo7nccDaXHbfE4W2WfMOzBb47AtffXPTipqkDnBM4CF6lAA3usBN-9YnMNNoZVWP3_TDEe_CVvBb7h9vfxlREKQJXMvHt2drSLDK2geVg_rKGnjnlJojjXTcbwlUKGviCwYE_d40iL4oA4c4XvbtMf0MTOiEXPXuAWbTDfcoNkTAEFMCN1cq15O-2vIaC7bI64u9hGTlNRbu6mW1NT8iNIKjZn0Y-2XwI0DETeDTGptbWUurTwciNIKjZn0Y-0F10SyfGY4OTH1YVRXj5uJj6SyKk8g3KRMDdfpjeeCRjhfel7htENh_hRUA2IRngzSqBum43ytV3VIfXjR7RA4vjQGhTj--KbW5IL--AGU_oRiTVvOFIbdTPVuKEJyCHDOo32PzOfOndwze11j2Rl5KCIwYaWfR9Si3Yg9zf4S6SNyrhMDznRKVKML8J84bK1D0RIHTp1Hfa7QlfBRYeGs5MyCEqq2u5tf8kOy1ux9C7l2q6ZRJvoZl3rLIPBEapL6BVJk4iVGGbPNjsaT3Bh7b-m0myQqLHvTHFt7iBig7wi-2OMconmBQbgvE-Aasfy3xI0di4A0SeeQ8YvKDWiTQZXVigMlO8N7t399wiM9rTEOpwk5m6vlPxqqrwOiIuqNZA59uHVPuDl_1wqNjcrn0Mb-UsrAhNrnbQckp9Sazf43A-FI6nhIXAeqibDMnFn89GqzQykyS8T1cH3gXWl1N6GSO4LNLspMyd-G5FAnz4LCVmrzkAHz_vyaa8X20CRMW_bxSRvixJB9XM4aRGhfmdwfNo7kC5IQ8gryv_iiVL3o_FmaRR6ceWD-WhHxk-imBerJkQ6Mxq903b5_vdzXL5P2cX81N42sqRwedL9KywQfGNBbbXEPNn1LP4KR84gGIn3hVJF75rf97HxddWKKlFje7PpdcIbQ776mimPFGkiwjEEOgNm3D0MznXlVXzTT-trphYp9WLq-oELYjr6TC__ksEFNgqHW0YsPuutnAgF1_yvp5m3g-AZqLNfog0ECrCX-eJXfCShwdJitAmUMQlqJ3SkJWgYEjeSHt4lnCjoftOhpRvS2zDU5HLMq44YrLMjsyqGxyD_NbpGF9FkCrkxHB-hf9xEy5utvAenrqBlhDTOiX5iuSf2wvvV_eS8DP08dS_-f06Q9kZrh9OBqSnMTaP5OsflrH6HsTkML-yfRKXzyMcoluhrbXM1Y_Lox9S7JFUNok4JMNZ2vaJZi9ZdjMqDr3dJvw77jJZ-uYzpE2oCZ4F8wQdj0iP1THwCid4kPQXrIN_IAAphJW2E7N6W9xXs1H02HdzxUStCjY9nbPQf5_idscDk6pRCvIw0mC_2g5U_yySBPYFNd8YmThHWpXlAyqzgVZyObzc9MDUvovNJcgVosEeovSkfGqPf1FrTnWBrUIHIfWkpSzui6hk1jmL5Hfa7IobdcyutQjMOOC8qXbzDWjD1wGcC7wZ_I0mLctvPBNRluz4mz9I_KmU0qI9ffOjCbdYrpCMeeYL4-fn-nYpT4Qzn-v1JANHVXIy1BUTpCC--gtfS2k-OT988_lYNb9IPD4HttANdkmW9mDyufDj2d8IdXcar97WKp88cjOq1_RS_VVcQMYpHtb2YPK58OPZ88px6LPt_k-qnzxyM6rX9G0gDJmN9n3uxK1NN4_ly3FAP6TA19TzuPw-B7bQDXZJtBhc42tacHE4oVjpWbkCVFB3PysfS77lWwf_RBRCB_rEnLj1CApxh5COkFOCdSsecJvg7Y7BZgaOUDApeQnhmbQ4twla3O4nL2VsuBFOPFskyEI3FCY-6nOFQQRM8Nm69_MCS2MvoPwxofkzpysXmOvCW3CGVLtq9Wtq8U3JWYDSthRgKA71tS4vN8WtzahAn7ArpYNxA9-vTqevMC5o8tZZZnn6GhjxEiNrVLth8z7SfMoN6irvdsAkNPW_HrMYBW1yAaC7QAN9TL7vErMyXgFx2PSqCSUtsvPEpH_VFu7vqybuu6bQ90e8gIVGpY9EcsnXPi5piyeFCgtUHTyFdlClxChnrR3RqMCqfO5MBkUjest6jlPVFGLk8ftp7HDhIeOuXb-8ftnkzyXVWFMnL1j9JHAZhjcd_qVa_t40sPbnDdWE4ctB3rNaRXxyN08iFcEk6mLwEYTWWMFcaheY3pmZEtS4vYOeMc3sCcIhW45XkdTIQf-g7Lw6ze55wlL0rnDXx9X2hazvhbXZNI1sPISaNN-RLLp_fcY8CcrQ_pLMuFAjHaCNA-KrwZPHEGT3Gx2a9mZtoN1k0da5xM9v50UHjvmJtgkEExhnfhdxjtpaQX3V-Vtdo_ulHExsLYgvn0Kkqo8d9XxWEU1gJe9VUCLIjJrfosM4n0Kkqo8d9XxrLcoNRUOaxuAP_livkVyAjtcF0VthKv-Lleu8b5TOOBCHzBXx6FPklNdKlYKhDq4BjGTaZAlOMKqtlsDVgAMRaNESSdxQQTNjL9G5dXKqii4OXjSq8GnyJBrJSZ2aNOletuZzaTLYqVqS256FAOEYrMifdLTmffI5GZ_vG4RvjEcULUJj2sJaw-d48zHv0xIaQqr9g6vp1TUvv_cV1ronc6RNqAmeBfMhQsiLye_j5FeUSbvtoyWZ9cZSKNm7fz62hovAIWEdMn9XDgVACCnTASfOg98NcxH60_QMmmGgWIzJDnvBpRkTKL0OHhVjVxTLEr5gCNZAWBqcwZB5Lab-XY6gii0JF3tijVIliagex8BBnCFCx8Z_36X2XcMdZ3EwaikgD-Jm0a46BmPCMt-RN3Li1aU02lXuDFWXx2CtHrybbxIVDgL1PrZxAJLDTCNDrv80PaJi2Kmevk4Duq0As4nbqKIpRfB8bdmXr-5X7uHG-qUGoN7BSEmvNz0_F3agQDAOaChFGJKwgHy3Ok0A2Pcno1ZHELTqOnE8yeVNqy-2aLedW3MLy96PxZmkUencciLvHJ3g385l4brt4P8WJ1-UoSbTk2MuXzL1g5n9jf-tHrbcf_Ypb4AG2AoHxv0qgm-yjO9A_sr93gzlhWfQK5v4VfYdXtme-ZMvysPtwbT6ubxDGTW5csZwVX0JqPOHM3zffqGqgr7S5ytfQpZPfRti2m_wpJgQKsJf54ld8JKHB0mK0CZQxCWondKQlaBgSN5Ie3iWcKOh-06GlG9LbMNTkcsyrjhissyOzKobHIP81ukYX0WQKuTEcH6F_3ETLm628B6euoGWENM6JfmK5J_bC-9X95LoLnyYQ1-MTfdvnJ3HWr6gRfBn1abV9T4dLWKrSP3mxtNU80lGBtedcY0AbBQpz0-jH1LskVQ2iTgkw1na9olmL1l2MyoOvd0m_DvuMln65jOkTagJngXzBB2PSI_VMfAKJ3iQ9Besg38gACmElbYTs3pb3FezUfTYd3PFRK0KNj2ds9B_n-J2xwOTqlEK8jDSYL_aDlT_LJIE9gU13xiZOEdaleUDKrOma2kC5fnCDz4IhPCJ2lAtQR6i9KR8ao9_UWtOdYGtQgch9aSlLO6LqGTWOYvkd9rsiht1zK61CMw44LypdvMNaMPXAZwLvBn8jSYty288E1GW7PibP0j8qZTSoj1986MJt1iukIx55gvj5-f6dilPhDOf6_UkA0dVcjLUFROkIL76C19LaT45P3zz-Vg1v0g8Pge20A12SZb2YPK58OPZ3wh1dxqv3tYqnzxyM6rX9FL9VVxAxike1vZg8rnw49nzynHos-3-T6qfPHIzqtf0UwT-hbi-yBvp0gHQRcXNoYA_pMDX1PO4_D4HttANdkm0GFzja1pwcTihWOlZuQJUUHc_Kx9LvuVbB_9EFEIH-sScuPUICnGHkI6QU4J1Kx5wm-DtjsFmBo5QMCl5CeGZmrxW5iANi05CMhBlKpfXiINKuOQGx-rsde3wyQvAJaB7zfmeaSUcU7yCheqsE2J_FhS9oIuyvyNucpWKq7MPWqhXcOz1wTN7kKXEKGetHdGbVWPxr1ywYkhW5hJUXcXxVEhXvYX1hsgX3zNN7lNb7YfzqQTdm69BJD3CEcMiPtz_TxAfJWekE6ZhkjX_y0itzwondYo5-tu3UsG6kUt_-dJKtLR-nwhAGVR5EqonMzA83XLHK_FUmyYzIsI-01X9Bm9cQL_f9UmZWrw-nL1p3QzbjSJr6zeONX39XENTjjC_Vx41KXRXAGhMy5LPmMLcTVt5P_oWW6gFBjYqEEo5zqswENT87AJDrO29ovV4VkgNIpPopP0iuJmZEtS4vYOeMc3sCcIhW45XkdTIQf-g7Lw6ze55wlL0rnDXx9X2hazvhbXZNI1sPKWhmfxjWztK_cY8CcrQ_pLMuFAjHaCNA-KrwZPHEGT3Gx2a9mZtoN1r2gVnyCgrcJAFnT4zNqaRUxhnfhdxjtpaQX3V-Vtdo_ulHExsLYgvn0Kkqo8d9XxWEU1gJe9VUCLIjJrfosM4n0Kkqo8d9XxrLcoNRUOaxuAP_livkVyAjtcF0VthKv-Lleu8b5TOOBCHzBXx6FPklNdKlYKhDq4BjGTaZAlOMKqtlsDVgAMRRxuGJVPfHj8VnUhKOmgNiUgRKypdOSFkeJ7pjw9vnjDDsriUx99bktjuDjgaC4xgrMifdLTmffI5GZ_vG4RvjEcULUJj2sJaw-d48zHv0xIaQqr9g6vp1TUvv_cV1ronc6RNqAmeBfMhQsiLye_j5FeUSbvtoyWZ9cZSKNm7fz62hovAIWEdMn9XDgVACCnTASfOg98NcxH60_QMmmGgWIzJDnvBpRkTKL0OHhVjVxTs_V6zNxmQtljeh2ExUGnHCo8lrg_G0ZMhp5unAiBY1WdrTsOAuXV3X6X2XcMdZ3E2UgMM_2up0gsXwqlZi9UQWjvG_8Mkqj2c1aS4OYBP2jPJTwpeW46aX_T1n7HfRUUDJ3TjygErEY2FKUt5mu9zk--fcHQF8F465timS9imI7Ui1eL63wv-h6n1ya_haAstf-5Zz8kj9kGMHgOCAHro-BHEOJ8O7c-aoo21kgOTw9zzyMo_LkNIzvvr15toSGThE-tJbS2gpqnuORPCPZ9STvz27OtFfhGmkJjJVTlx4zVARz6hTnhUBHFYvu0DHTTa7caGyo0Z1IkYAbUokCxGhVKfl3wEKFcqOnE8yeVNqxpUiN8I8wBQDCg4wrJqXfdxKODtVksxr03-GWtdu0pydVaDqpOdFTKKJUzKoauZJySLCMQQ6A2bQ4Gje-3mGzxxpMP1CmnYx9viAnChZ13p8falV8xJJZq0qTyB2CQuoBD-xbRd26zTwEQJ4lTSp-esRFX4tVhX-QcfaHuXaietUIfMFfHoU-SU10qVgqEOrgFI99Favs7DcFQ_YIGeH32ysL16hst4cMSpzbGpOnrBjFeQhXTtIHbEt5sOmzsCqYxXCFlO6RWF6BNlvqH10LKs4KXK0mpEMiLQdABqfxKjaIfKun0v1p2r1kHa_hvlxGweZkCb8XltEWwkJ35zVN5WGLSdL1px2-yKG3XMrrUI8ajjwq8F3KiQpcQoZ60d0YqHPi0hElQlRqsiSha5EZZPQSdaQytoG9J1EtA3pBAh0TQdmU6K0_YWlhdnFaIIVbBCTM1fecitWflKB2sVX-rx442dRktJSNTUNlVT1kgxDtXl-bsgmJkkm2i9mnqJAFfkHhseOb9AVDz5vTh9ZSZgos-FLixs5CFv7sUZyjFafD4HttANdkmQpcQoZ60d0ZtVY_GvXLBiSFbmElRdxfFW9mDyufDj2fJdk5mRWR2eatwQAh-KkqujyGazxAoeqx1cn_BcmmhRibdYrpCMeeYqfcphKnJvDWPIZrPECh6rInx__Yu9BJVJt1iukIx55ggKtq4glLzBZ2KJNexdDwtDf-5xk2gYCyDiZO4P3zVKKiKYp0jjmbzOhNXNQO45qLdKEiG7heumHFXUPb_CpJBC_QjWBCpsNqu1ieiFlxt_N-T9HOSjDEAavFbmIA2LTkIyEGUql9eIg0q45AbH6ux17fDJC8AloHvN-Z5pJRxTvIKF6qwTYn8WFL2gi7K_I25ylYqrsw9aqFdw7PXBM3uQpcQoZ60d0ZtVY_GvXLBiSFbmElRdxfFUSFe9hfWGyB6XJmPqVUN2pOFPF7qwdrmkPcIRwyI-3P9PEB8lZ6QTpmGSNf_LSK3PCid1ijn627dSwbqRS3_50kq0tH6fCEAZVHkSqiczMDzdcscr8VSbJjMiwj7TVf0Gb1xAv9_1SZlavD6cvWndDNuNImvrN44vo8yzw4YC1jgd3bslPbP7mJPlVwzt4rUNW3k_-hZbqAUGNioQSjnOqzAQ1PzsAkOs7b2i9XhWSBh1aADJzDTnWZkS1Li9g54xzewJwiFbjleR1MhB_6DsvDrN7nnCUvSucNfH1faFrO-Ftdk0jWw8paGZ_GNbO0r9xjwJytD-ksy4UCMdoI0D4qvBk8cQZPcbHZr2Zm2g3WxmC9RqGCdRpmIVv37Y6YZKCuHYT9Lc-oh45JOZK9ipt20tKNYChknFvg4hTU7wQW8K_mFgQSHhJLpB5r1sDrOFvg4hTU7wQVXaFz83PElRVmflk8QOZBYVPr4tT7FFlscfaHuXaietUIfMFfHoU-SU10qVgqEOrgFI99Favs7DcFQ_YIGeH32ysL16hst4cMSpzbGpOnrBjFeQhXTtIHbEt5sOmzsCqYxXCFlO6RWF6BNlvqH10LKs4KXK0mpEMgEW63PtK-FBAlZ3uJgcXp2MRjEhhu7AFHfgW1Jig5XbIr3ArW-1uwXMqeMkSq-nNPko1GrPScgZawKCv3q0FJIpGRQ37AwcOCrkxHB-hf9xEy5utvAenrq9aXmMw7VhzxJWUQKxApRaUhC9-g9C3kbDv1Wy59Gba--JhWOUHfmYn1qTYPu2L0Wo3aqxcp0crd1KETpRTlYLQ1Gr9M5ljt5i4DpPtO-FjKeYmr6mITP4wkkHGFCfB-GjHnQmVtuzBciQzn-NhtdqtGrnr1oBCACCkE7LpK8cQnPJTwpeW46aX_T1n7HfRUUDJ3TjygErEY2FKUt5mu9zk--fcHQF8F465timS9imI7Ui1eL63wv-tIez9H_ZFusWp7Lld2Wz48GMHgOCAHro5M1maxfnFU4W7E30bX8Wi1VE_tsYzgV6ZAtGO_CBbYPEUPpvmOvcicAexWrfTdDpOEQgKvSHWtJtQ78CAdfhIyr3Tdvn-93NVRpQB2RIqcOqOnE8yeVNqwY1VG7JCQJ2isPZR2MCEdPdCcfocw_UkPQtUopwwl0W3JMV51FkSPRZrKFZg7OFPXcHzLJuUqIbx4ecl-BzceXSnEgXPecF57WWX0zW_LjHblR8d9W4CtESEcWOSrjy5n_9YrOq8sq6Aq4lolcYsUAEXs_q8eYu3sD9wO1q4Vf5RrL1n_nn3bnQaE2SRsC0a_A-IHGGzfl1N4eRhqYnT8UkQC4Oe8XW-Ejvm9C3sRfsezQq7Zggi1ck3WCHzkxhlKqetDW2acGAny9JZKfN0XTRTjzyWMs_xI7cXPf7bWDorpzIkLzHVHnAZx_WIZ8U95oExrQ7yKSm2Vq8Ppy9ad0aSTzxm_p2aSDHsZ-Mawejtya5iXxBogzTII5jHyZNQ5Oh-lYUC6mwhIuNm0oPaKhJt1iukIx55gWLN9WjFGnMLQi0MynaG9N4vRdlQS6NXOuVuaFTV-1OngqDJfJg63hhLyfNqqsn0QzqZ-tHDaFGI4E0HjIGYZhXQlC8Y6NMXr8i-oKGzFAUmVq8Ppy9ad0MiirG2IzvJu1jF050U5ycE96SZe4YsLPR_zCNqXHYxFm87aAJKxlSqu3RByXmwq7OK5cEJl9OXpW7Y7FS4TNGMgj78KRSeQhwJK_xzeP44jRHoHTdIomZ99xWXY12tBYQIejjLVRaS7p3vFmxuV2R7zb0BQ6Ov9fxXoNVEYCS26NTefr8lvGRcAm729o9eEMJc84zBv5WY9j4gYEc3SAheXgbvGLNgjl8T1cH3gXWl3GpsfIScn4-YqW1Wk7Rt3WeB3yZSbwmcAyFZeyqnO4rSgIlLyCO_Pn3Bd7k2pDWp7uKmkfH3sStgkIjT6hscpieVbWCamySrmcc45u57e3YR0zpJizmhkHfsCulg3ED35t33fxA700rYxjNWINn2zNIUhytiUEQ5Cc1DGKZaNOz-Jl5npwnVtiRasCQI-dldTjqsN3cqvRSbp7vEfs3mytCMhBlKpfXiINKuOQGx-rsde3wyQvAJaB7zfmeaSUcU7yCheqsE2J_FhS9oIuyvyNucpWKq7MPWqhXcOz1wTN7kKXEKGetHdGvRnPF_iP6cyXIWfoG5XPZ9hHcNkPs_4e2cB1O3LcV1ePYvXtbrh2_W8s0szCANkWlq-arf89aPIHyF2uYl7pbrS2NVxnBOy6IaiNksRXtRdF4YS9tRkZJgxztCSFQfdzbKHsC7mkoCbRV4e0ZVzkqmJ0pWeh3--N9jrJHYZoG8wqBUwfM8ot5Suu0QWzL4Le8zuK2vNVyaPY_dp5rDH5H7ds8O2P8JBT83gLCL1MDuRO8oFdWcTEMSrXk77a8hoLtsjri72EZOU1Fu7qZbU1PyI0gqNmfRj7ZfAjQMRN4NMam1tZS6tPByI0gqNmfRj7QXXRLJ8Zjg5MfVhVFePm4g_zW6RhfRZAq5MRwfoX_cRMubrbwHp66gZYQ0zol-Yrkn9sL71f3kv5AFf5jy35vmUjEjU0jYWLySVaMgi7qhBAj4FXfTvezvTmQZTRXgjDszgO5yysge2MfUuyRVDaJOCTDWdr2iWYVHefS8GflTiTla6YNZvUOsGB96jeRPaovmYvoLQLSnTHf_tMJMvpQyj2oz89O3lGOm_l2Qh_vDgDYGJ327BdI7EyKprtqn1hL9vEuhe74QRwmAaFFNtQPVEA1xtB6Bbk43nkHTahqOGDVSDKOvR_OESVrYTnKZoGU094lXKA3HpMogwwDbkXZG0rfwpzXVUVQS3ZPgOmExHqfaAb9VX-CENsa8kGN0hHjGdTt8FdIKd6lHvBlJfHVRUkXnjYyaDVls74knpgyWA2S-QtYAH702Qhg0IcZFYJb17nRPkssTHuYBCFGBurNIqCyaMw-rmcEgIsiWosrO2qKkL7A8qVEK6hE379PvHqJsWZ2-xx3Fj1Mvu8SszJeFCxoVlutOq7NoKXiskamJyh_4hgiGv1MJy7e2v6ZHrtQ6zbacQLXz3uUIOHuj1Oc5pDclElGrXegjHyr7x7X8OlKiNDeQBArdKk8gdgkLqAQ_sW0Xdus08BECeJU0qfnlTSm1VqAIvVT4gGIk6Mu1vi9F2VBLo1czICYLpmINlt2gibbi_k5rCqzF0lVZNusYbR4HuLgaaUG9NrwcsBZr5t-JDoSLtCL_JwaKmmrBRdcDFFRSsSvYnZf1iDnG1DgyFRq3U0SKj3dBS6f0oD2LgFP8Vt6pKVE6h1otyqQHp8Sv6_oA8Vyf89tin_CmTgQLZccPIfrkZsP0alW_zpPDBLOUK9tE_Tsj1nTdpplVjt69LUQI7ZTRcanTJV5LmCdYMRKX5T_7CfF8Mho8qjSBJqe4NiINEo9qpLHZ-UJ01VPpatudEzKKVcgamBaR0JgEZ5jadUQeBO9iFqNiysAi9t2cmvmR7Bli59q9w6E9x9ezn6qyAcEXfw-B7bQDXZJkKXEKGetHdGOdRhwICLuwF-vUl6CyBzqbxzbEBysZ9cUq3R1m8EIwQ8yxfFlrIwW7rhXkVVaAih5LOewv-souLccwGP1_nIP6wj5I-q6Lsm8aP0abDiaDvGngIS6Vkk718ONTEqGF35qnzxyM6rX9HpZmuXVd_O03A5pURQZpeKPFNaiRrmuezBHNj7R0ERLV0MwE51JyiZPZYHc5bxJ_fw-B7bQDXZJuYHFZ9mYl6HkDqzNmzpwxePIZrPECh6rHdSi0VCvHn0Jt1iukIx55i1Zvk3oL4JpmlnVf7_xOni8Pge20A12Sa1Zvk3oL4JppISKhBT2RNvuREdP0DnZ9uf32GY4MdRJNIwbaucl-AuI8NDLpxo2YMe7i7VaBeSyybdYrpCMeeYJ10BqFIxxVtXlA9vrFgpSrC6WrfjEakltsvVLYT_80G1Zvk3oL4JpiN0sZD9J3qMV9COFAeXWF8nKsZXTJrR1LQUUofUMc4okDqzNmzpwxePIZrPECh6rHQ3ZAw6svbvlL3ks5tTBHAldgmrCvwSWpyVuEHxSwOCdUO1Cw7hol9HJhmMbGTc2KopchYJmo92dXtNaJQhyPmpAgFrgFxMZKp88cjOq1_Rsxwf6ZpqTP3M4shgnYIUTaOkP8qtIYqPaIzoZT_AgdeqfPHIzqtf0cF0iNa_lVerguUl3gS2JuIam1tZS6tPB_0tMlBavns2OQGk-tP7DkyPIZrPECh6rLYGHfKNHNCe8wkDpeaHWM2rcEAIfipKro8hms8QKHqsBHqL0pHxqj38i-oKGzFAUmVq8Ppy9ad0W9mDyufDj2cRBfcSAz7CO2iM6GU_wIHXqnzxyM6rX9GulCf7CALw6C27HiQ_dvwiR_zCNqXHYxFPLGcAN_u6hObubYd0R6kvxk8VhXyL4HbiZkRk9qQEfbn3NOgVMqb7TI--352i0h6bwRsT-z-9UQ56wykHZtz0zf_KCW78FX7pibkswXygyxk9NpF1PFpAvdEP7WzNNf2nGtzp2Hp0flpw2oU9rWW4bRXzXJFqLcvAGgGpBekJDZdpxJ92YD1svk-TZ0LCCO43cNsntFOqzYu390mUPVdQlMhQWHVUNsuRqJeLgWaWXOqQwe6UjRAJEXL4ynaZmayUFpiH0nKEsbC3Vc_m-dwOufc06BUypvvtbG_RqXd6EmVq8Ppy9ad04dYbR4dREwLAGgGpBekJDZdpxJ92YD1s17Zj2DQ9Uqu59zToFTKm-8h9Tz_NusgeaPvdyrMC-WKzCDf-LXTYWKOEH7wr6_fZYfXgkAQ6hroNM36ZXqX89j7a7j9U23nbG1ykEmsvvCXLM69ZFq5ha2uixVlUdpPiFsNlhnFJq7ZGB3knYPtYyrWgAYdE2p7HYNAwkacPGr5kNG2YFVdAN82fU9e9sI-p-CUL1ZKWS8C8wPohML2DFW_8daGVu1x0iDkBJVC-eD7Qn6QGyK_meMAaAakF6QkNl2nEn3ZgPWxwO3YLlm8uor08NFjjneez8qAhUeHt6yi8ckdKa8SXrAOnZuDrO6d0d8MaLlaskY9v_HWhlbtcdFPWNVabtlxUG1ykEmsvvCVgYbGO6lZUBb3RD-1szTX9Ea5Aaa7G_Rpwip-oX20A_V73APh6Bmidso-3Hr29T9QbXKQSay-8JRVkuz3sP1JevdEP7WzNNf3s3lVcjRSq_bxyR0prxJes29Z59vPJB2xrosVZVHaT4qVWCE3RJlemc3fykPNZ3Lm8ckdKa8SXrN_ZBZFjE--gmz2H6x8M4pQ3cNsntFOqzSdK24TFSfDqkvg0u6o87M7Qn6QGyK_meMAaAakF6QkNxEPZXvymaqb6Uq6rFqMz5pqnSM9Vwc8nvdEP7WzNNf0ZpZrWK1mginCWnZITdPbFwg0PYgTfoywhw2cObdjZVl2C9Xs3e0TzfgcGbb90ua5nckZU0-Js_37ArpYNxA9-ARiX7qmPXPamU0qI9ffOjCbdYrpCMeeYL4-fn-nYpT7sbNggHf4fAzqqdSopFEOlbep8znlJpYIm3WK6QjHnmLVm-TegvgmmSNh4FHeAJw_Gdx17w7q1-dSUMBSqzWgN383E2ctYEVZQ3iGx-CNGqsZ3HXvDurX5XdszIDM4omsSbfxnentYspywjFZA4TiwVNKbVWoAi9VPiAYiToy7W-L0XZUEujVzMgJgumYg2W3aCJtuL-TmsKrMXSVVk26xhtHge4uBppQb02vBywFmvm34kOhIu0Iv8nBoqaasFF1wMUVFKxK9idl_WIOcbUODIVGrdTRIqPd0FLp_SgPYuAU_xW3qkpUTqHWi3KpAenxK_r-gDxXJ_z22Kf8KZOBAtlxw8h-uRmw_RqVb_Ok8MEs5Qr20T9OyPWdN2mmVWO3r0tRAjtlNFxqdMlXkuYJ1gxEpflP_sJ8XwyGjyqNIEmp7g2Ig0Sj2qksdn5QnTVU-lq250TMopVyBqYFpHQmARnmNp1RB4E72IWo2LKwCL23Zya-ZHsGWLn2r3DoT3H17OfqrIBwRd_D4HttANdkmQpcQoZ60d0Y51GHAgIu7AX69SXoLIHOpvHNsQHKxn1xSrdHWbwQjBDzLF8WWsjBbuuFeRVVoCKHks57C_6yi4txzAY_X-cg_rCPkj6rouybxo_RpsOJoO8aeAhLpWSTvXw41MSoYXfmqfPHIzqtf0elma5dV387TcDmlRFBml4o8U1qJGua57MEc2PtHQREtXQzATnUnKJk9lgdzlvEn9_D4HttANdkm5gcVn2ZiXoeQOrM2bOnDF48hms8QKHqsd1KLRUK8efQm3WK6QjHnmLVm-TegvgmmaWdV_v_E6eLw-B7bQDXZJrVm-TegvgmmkhIqEFPZE2-5ER0_QOdn25_fYZjgx1Ek0jBtq5yX4C4jw0MunGjZgx7uLtVoF5LLJt1iukIx55gnXQGoUjHFW1eUD2-sWClKsLpat-MRqSW2y9UthP_zQbVm-TegvgmmI3SxkP0neoxX0I4UB5dYXycqxldMmtHUtBRSh9QxziiQOrM2bOnDF48hms8QKHqsdDdkDDqy9u-UveSzm1MEcCV2CasK_BJanJW4QfFLA4J1Q7ULDuGiX0cmGYxsZNzYqilyFgmaj3Z1e01olCHI-akCAWuAXExkqnzxyM6rX9GzHB_pmmpM_cziyGCdghRNo6Q_yq0hio9ojOhlP8CB16p88cjOq1_RwXSI1r-VV6uC5SXeBLYm4hqbW1lLq08H_S0yUFq-ezY5AaT60_sOTI8hms8QKHqstgYd8o0c0J7zCQOl5odYzatwQAh-KkqujyGazxAoeqwEeovSkfGqPfyL6gobMUBSZWrw-nL1p3Rb2YPK58OPZxEF9xIDPsI7aIzoZT_AgdeqfPHIzqtf0a6UJ_sIAvDoLbseJD92_CJH_MI2pcdjEU8sZwA3-7qE5u5th3RHqS_GTxWFfIvgduJmRGT2pAR9ufc06BUypvtMj77fnaLSHpvBGxP7P71RDnrDKQdm3PTN_8oJbvwVfumJuSzBfKDLGT02kXU8WkC90Q_tbM01_aca3OnYenR-WnDahT2tZbhtFfNckWoty8AaAakF6QkNl2nEn3ZgPWy-T5NnQsII7jdw2ye0U6rNi7f3SZQ9V1CUyFBYdVQ2y5Gol4uBZpZc6pDB7pSNEAkRcvjKdpmZrJQWmIfScoSxsLdVz-b53A659zToFTKm--1sb9Gpd3oSZWrw-nL1p3Th1htHh1ETAsAaAakF6QkNl2nEn3ZgPWzXtmPYND1Sq7n3NOgVMqb7yH1PP826yB5o-93KswL5YrMIN_4tdNhYo4QfvCvr99lh9eCQBDqGug0zfplepfz2PtruP1TbedsbXKQSay-8Jcszr1kWrmFra6LFWVR2k-IWw2WGcUmrtkYHeSdg-1jKtaABh0Tansdg0DCRpw8avmQ0bZgVV0A3zZ9T172wj6n4JQvVkpZLwLzA-iEwvYMVb_x1oZW7XHSIOQElUL54PtCfpAbIr-Z4wBoBqQXpCQ2XacSfdmA9bHA7dguWby6ivTw0WOOd57PyoCFR4e3rKLxyR0prxJesA6dm4Os7p3R3wxouVqyRj2_8daGVu1x0U9Y1Vpu2XFQbXKQSay-8JWBhsY7qVlQFvdEP7WzNNf0RrkBprsb9GnCKn6hfbQD9XvcA-HoGaJ2yj7cevb1P1BtcpBJrL7wlFWS7Pew_Ul690Q_tbM01_ezeVVyNFKr9vHJHSmvEl6zb1nn288kHbGuixVlUdpPipVYITdEmV6Zzd_KQ81ncubxyR0prxJes39kFkWMT76CbPYfrHwzilDdw2ye0U6rNJ0rbhMVJ8OqS-DS7qjzsztCfpAbIr-Z4wBoBqQXpCQ3EQ9le_KZqpvpSrqsWozPmmqdIz1XBzye90Q_tbM01_RmlmtYrWaCKcJadkhN09sXCDQ9iBN-jLCHDZw5t2NlWXYL1ezd7RPN-BwZtv3S5rmdyRlTT4mz_fsCulg3ED34BGJfuqY9c9qZTSoj1986MJt1iukIx55gvj5-f6dilPuxs2CAd_h8DlqpEnwwR486PIZrPECh6rPWNdNZavFKQAOtxzAyxol5UDMkDYCVx314CqMXP_wCS8Pge20A12SYZ3bsLbo8Kot3JLaqmubUUmin0UPtYCDDw-B7bQDXZJiguBXkYSAshvjFtrxUXvWf1Mvu8SszJeL47Iwj69vcCVezNaM9un37o0gQvfZIwB5eYFnjtqC5AizIJn_gbz9wUKC1QdPIV2UKXEKGetHdGowKp87kwGRSN6y3qOU9UUSvjHgC8QoSO-HNaBjQAhw5aAWLJKyb3ymWAX8suFL015QF3pQXUFozcHzLJuUqIbx4ecl-BzceXdfvwLqrdWAVnlrekdzTsWbzJMJcGrCi_ZYBfyy4UvTWRfweA5ZGrA9FSt4x5XFIOXwn3sXPMjH_OSL8p6zYMqSgIlLyCO_Pnxk57NeXg3xTY8KftVZnVG_y9m5Saru4GmQ7rllst5RU5R6_DsIzWQjtP4rPDAikiXP5wdMvHFhWVs-Mt94d2ojvAfUDnVMdYE2xn8bKQK5XCdeo7lGqI-HVll9TEvBlNQC6zGMiq-MQVmv7-E2NlLuKWlvDh2K_QCMhBlKpfXiKYoSi3H8N9wtN6NStfmZFpryM43_8VWtMI38DiuirHkr8KdaG8YtNXPhu2Vr407jDUI-XPBHzJaa_mXiTazBoELbQQ5GVPmO4x8hkpZFJnHj1n_W007XRnQ4LFB69CtDDQmzrF53egjRDUbvu88vlCw-ArOzVmnGXXph2bANqt9TlHPGiA6QIpXZk8Up9ENLKaQ3JRJRq13pzIs88WuEUk0eFtS5rej1HyaeaffUdJpqKkIdjYZAuxfyUn6CJ50mM9tU_0oHTsatqR3OoCgFpdcjoC7NPXsM2o_kJv1_ACu4BFEdEctIX3H2YvNHZQTWZKjOSXCMzCR57NlDFS8V83a2Dagd4ZMA89tU_0oHTsaiV4ckdTPhz1r-ZeJNrMGgQXO79Sm5QPudzWezKVRZU0SvEk9pIGdpxWLnVMEjDQLMUl1lx1qiwpJsWZ2-xx3Fj1Mvu8SszJeFCxoVlutOq7NoKXiskamJzMrZ6SJdeQdPDRUZyvubblPqazkKcDC7RY_3cHaIB69mA7o99jok4ifXuhhNYRoeZ5Jn2FjmSySlKWwAq0MIbQuSfKI92Gd0QmxZnb7HHcWPUy-7xKzMl4ULGhWW606rs2gpeKyRqYnDNxxg6pd-QYPbVP9KB07GoleHJHUz4c9a_mXiTazBoEwdMDyLjBahYb7q-m8-Gz04AGWUqC9EfVT-Dtpkvp755n3uGVrW5BkVirZo3fawlbZ97hla1uQZGVbbk9kvvn8C60cJ4QaolGRKKI_q3gP30LWxAqfmEzK9c2UYA4Hz-onRnJc14Nu4DsSpMmFKIxJNJ6t8nFPPQnXk9EhHFecckV7U2sybpsXvfGZ-9C1y-rJflScNm_dDXfraNwX-VmP9Kk8gdgkLqAQ_sW0Xdus08BECeJU0qfnmQKusLJ39NH2TKo5hsohY7ARuqSRxGp0EhHFjkq48uZ__WKzqvLKug6LaZ_eyk3MUgnEbKRPBhf6EYlUFsEv138aFnz-3oGimGebBF33wJlqBJKs2a3E8in3L6fQ6vBSh1LO9o65b0ZRYtZs7fqjm0oneJD0F6yDfyAAKYSVthOzelvcV7NR9Nh3c8VErQo2NMz8ozOPod5qR0sWyY8HWzOZT0owwDYV82wMpY58JEdrBb5vH7abtOAw_vWQEkaIZrHSUuDOSDkhXAnbbnRwrNiDmLTS-z0Z-64v_E7G1CXdYqerqg6uFfhWImDkuoU29CmpEYjr_DmJt1iukIx55ix1hpfUZzR1CUBfb06lAN3g0A-xjFPrlF98y34EM05Fap88cjOq1_Rpxrc6dh6dH5acNqFPa1luG0V81yRai3LW9mDyufDj2fyLO5rUnRctPD4HttANdkmY5j6fxzlb99xyBpG6VSnVfzrK7In37CzV9ii9cE1dVFb2YPK58OPZ_v1B8hFV-7p_IvqChsxQFJlavD6cvWndOHWG0eHURMCW9mDyufDj2dG41-APIm3IybdYrpCMeeY2L_SQHSjWvNNKV2ljROdsX_yStK09jjsTwh3fXT5SHk4Ll1y4G4aEmvEUuMHnvIdlR-ujAXl_rZTo3j2R9eCTCxyommgQEegRgd5J2D7WMq1oAGHRNqex2DQMJGnDxq-ZDRtmBVXQDePIZrPECh6rONFJVHtPzecu6FgVHz1fYeYmKE-PjsAMQ4CY4sf8j7W7DwFbQLhjm4UVxmXW3tU1gDrccwMsaJemvMqbFf8-RhfPMl9tfwMTpV0JGT07oU13cktqqa5tRSwulq34xGpJRGuQGmuxv0acIqfqF9tAP1e9wD4egZonXx_evZLKyLoIIBsh3AylnhhpeuGwfhF8NGZDaaWuHbmM1uVG7oew4tzDjirvvqcVxWR4xnHEOjU3cktqqa5tRT0mmwqLvUioPD4HttANdkmCY1kJ0LYpjgN3_C-NbAiGA4CY4sf8j7WyGBLuRK5TBZ3ypgOgO0XBE7Akhn8utbbGaWa1itZoIpwlp2SE3T2xWy9Q-07xCz-uXoBbjBCUYm1y2d-TU95iflgWDf0iUmh2ZtVHGjpiqVe3s-no0LWFJ2KJNexdDwtMJJYHfED9AxzN7sqHuiSZEujTeHOCytiXt7Pp6NC1hRb2YPK58OPZ73FZmkINn4BfQqSqjx31fHGdx17w7q1-V0j_IOZG5St75AgIZhjoQmbcQWsVs6TmkoueuX_j3NNZvO2gCSsZUp9QMCRXctE_vAG-v5l7pNMfpwW4z4-QQV8na_C818mRKkgcfbuCpTBIGdEoGFVPG1Lo03hzgsrYsQDvIMZRgNLW9mDyufDj2c3ANW_5htZqibdYrpCMeeY7r2f-F5uRmqodaLcqkB6fEr-v6APFcn_MOnTwc69bGu90Q_tbM01_TsDW5HWb464HJwMze2u13wGFQlp5-kY_xtcpBJrL7wlJrgBCmlvyJRrosVZVHaT4ka2-yGT-UNQsVZHoqYmIvQyVl8L2XtQxT3YndSoI_1pzf_KCW78FX6qSx2flCdNVSfjZ68x5G3sb_x1oZW7XHRuEmKfJ08McV58p0Z9mpNB7V6qteLf4NeUhtT6i9HEx6ML-H_uLzQPGf5vTryIdCS3X4zzXhd7173RD-1szTX9fpwW4z4-QQWaM68utPqc7Aft-uxlqi-Zzf_KCW78FX68c2xAcrGfXJqnSM9Vwc8nvdEP7WzNNf3ueSI5T7Cjikr8aWDlf5mpu-5GuryvKcSpYN7PHain1vGBhD1bXuq8huaPbDBF1ALNn1PXvbCPqfglC9WSlkvAvk-TZ0LCCO43cNsntFOqzYAT8CLEaCw_KFbe-n1RrjfluJQ7F8_SOj8HhN3R4mUQyeNdcxbWXlKUFpiH0nKEsT2WB3OW8Sf3vTw0WOOd57NTkqO5EPHdIW6p3eHUlBaErIl82gM0wnHN_8oJbvwVfhe7kVWGPruaXGvloAP9cI1QxwiLgDHSVkBnvb_Xr-jgGAe9_jTDPaRpZ1X-_8Tp4r08NFjjneezkcv4oGpJ6h3Nn1PXvbCPqTG-3hQRi5LHa6LFWVR2k-LrO9XtoFyE8GvmHLrNhFXJ4tBMOOYL2rfYc2fo7Wi7ec2fU9e9sI-pA-yorvh8lNFrosVZVHaT4vormLcLIyFpBQDeeSjDkpcYB73-NMM9pGNKADzVrel1N3DbJ7RTqs1lt33n6-EwleCkNkRKGFHtGAe9_jTDPaQjdLGQ_Sd6jLzA-iEwvYMVb_x1oZW7XHQ3AWOaoC56qg4GLkmDRFG4rIl82gM0wnHN_8oJbvwVftBb4UGd0IfX9RuZknFX7rprosVZVHaT4hCBIQ_5SO5hcLUo6DPPptURKDTeYTqRFiyyQCI89Xye3HF0nO77yuBaWF2cVoghVsEJMzV95yK1_uaWFTbPjkYwvIsM5OTlSI8hms8QKHqsPyuYneu8a_vsxCgnKf3z34xZWv1Kv8k9cbcK2DiLDQePIZrPECh6rPWNdNZavFKQAOtxzAyxol5UDMkDYCVx314CqMXP_wCS8Pge20A12SYZ3bsLbo8Kot3JLaqmubUUmin0UPtYCDDw-B7bQDXZJiguBXkYSAshvjFtrxUXvWcyog745flbtZ8o_VW6UOvebTyOIah9dZoqBTBkG2RixztXl-bsgmJkt7kwco67R8NOJCXsRAflhcbVNe4aIEt6gQlKrGfNQ5sB_ln1XuSmE_dRhPXWQoMJ-ixE8fDMKmZWfrsffLc3wh151YMzKZ_h04nMGnXztmNetousXFf_grmeyKNAn5efxk8VhXyL4HbnQ7zxwYEeGKFr9zXq9sdSz8NxlRiuaIeIsGGwGHZ-eo8hms8QKHqso9BZf1Dsbk_w-B7bQDXZJr50hjO33h7RMY_EINHhi-24iHRtUaHTE5UfrowF5f62saCRDQZsgb8NU9V9wsnSzXQj_mWIW-8bjRCWB5GO1VzdnyuElXG6MpwOjegTFHd5lR-ujAXl_rZX0I4UB5dYX_GZqMUo-CdJ2ZwpIrL7lzON_y0YDgYr25UfrowF5f62v6jkmQZfWmeo7A_LIVXVcqUFIudg4mcJiLlv454modntFEwgYZpYwE6VzQSCvB7FKscH0XildFKkd9AAOhQWJCvMgrMBdLIa69LUQI7ZTRc0r814syTvoEoFB22tM3GES1WbydbfwIaDCl90Icg3qiC1fp_LLIp3oneCj85aU_ZX0I4UB5dYX1aVIQV89fRM7gpuHakoLUUaFSw3KfZG91dOQ2qRL20PUq3R1m8EIwRm87aAJKxlSu7G9Y74VXFybdTLPcie-jSDiq6oqNMarv513jDFvnA88Pge20A12SbjZdjVrZKocOei5GNlzN-nvccFARdmrHFb2YPK58OPZ0ha1qJtMiIYhR7ToLsKV8db2YPK58OPZwb4zDPehyQlGYve__H7dArV1yodFYnH98hgS7kSuUwWpSv-xj74OufWEVAe1aDnYirYucDuoD1BN293ky04svcaFSw3KfZG96RbTA40f9H_UJiyX6lEQJXw-B7bQDXZJl8hV6wiGhk-B3BP-5H-SOx6o4z4bJ1G9iw-r1MRD3RlHcjoakTlOJy16_9E7dxVNmUT4gEQ6qB2L212WItM4aKPIZrPECh6rKhBTPYcsg1-6CsjPZ31tE1FZKHiO8hLh99RUsrFvB5895gkRpydfuoPhDGE23ObnZVv_R5lALosJt1iukIx55hywzxJEmdfn7C0-SlH2URw8IkLnL8Tpy7BbyxGb-BMo_MfD9lQ7X5KdTlsdR0slc3w-B7bQDXZJkKXEKGetHdGsfz5GiHBYNZuGlHbYgW4iegrIz2d9bRNRWSh4jvIS4dZQjmnWM5iql3isk6VqtfV12xx3RuXVE-rcEAIfipKrhKnvZrddc1v87CpFhDE8XuVOEnhFi403-b2Su_DnPosf81sctjk-ZB9JMc_43U8rY8zg8tKjyzpwBoBqQXpCQ3C7wBOtaVx9UfeoPlilfkdufc06BUypvu6ecYpVUFx2YMRKX5T_7CfF8Mho8qjSBIpL0sQYjjI1RgHvf40wz2keGtXGed1wtlrosVZVHaT4kT53d1lUaCOqp00CvYbIjpf4HoGKEdurkTLLk9c8qHEwhrI6IBZHQbNn1PXvbCPqRHJ7K3mq_e1rSMrp6ZEuih_zWxy2OT5kEKXEKGetHdGOdRhwICLuwFjnsTUQSzjpBgHvf40wz2kCeX7sVCVqrvm9krvw5z6LH_NbHLY5PmQaEQZ2PvMbafc7dyQzvWN-OD5ywoVJ4dfqk8gIdE7i3DwtHaVlyIVTauYFdZP28aGzf_KCW78FX4DDQdWPXTVfhk9NpF1PFpAvdEP7WzNNf3pZmuXVd_O03A5pURQZpeKPFNaiRrmuezBHNj7R0ERLdMhaK3bkOo6G1ykEmsvvCVZSe39wCevuTdw2ye0U6rNQhccLXUy5Yc60TWGzZDfAQl4Ns6uIUqJGAe9_jTDPaSyLWGgddR7KYZok2Z3MjD5b_x1oZW7XHQn_3OA13G6IRn-b068iHQkdtn35JRNNPQ3cNsntFOqzTBtSZSgY8XRzf_KCW78FX4-5kI4rd9ABLn3NOgVMqb7GiYP6nGBl_Cf32GY4MdRJNIwbaucl-Auwnz0kU51L1LN_8oJbvwVfvOXmP0pFEPZufc06BUypvvkkfF0Ymo7ri3eWRcmHmG8Gf5vTryIdCRWGSJ9OKmbNb3RD-1szTX9tsvVLYT_80En_3OA13G6IRn-b068iHQkdDdkDDqy9u9rosVZVHaT4pwKF-a_PH5Dj0wYLEOQTcLdcOVUw0K5Agl4Ns6uIUqJGAe9_jTDPaQjdLGQ_Sd6jNe2Y9g0PVKrufc06BUypvvjCK6EHUC7C5yVuEHxSwOCdUO1Cw7hol94l47jsnIi806qUtUTEassua5dLvo2rjLwBvr-Ze6TTH6cFuM-PkEFfJ2vwvNfJkTdPUCEl-SEny04zy-HQr2L_uaWFTbPjkaN6y3qOU9UUTKiDvjl-Vu18UE38wQAfDVt6nzOeUmlgibdYrpCMeeYtWb5N6C-CaZI2HgUd4AnD8Z3HXvDurX51JQwFKrNaA3fzcTZy1gRVlDeIbH4I0aqxncde8O6tfld2zMgMziiaxJt_Gd6e1iyZBLjA0LsRycxuZ5akfAPD2dMlRA80G1QpdhieLR0i-ousU5sn3K8ySgIlLyCO_PnPFNarp5tjEO6MAryYYLKQPUy-7xKzMl4vjsjCPr29wJV7M1oz26ffujSBC99kjAHl5gWeO2oLkBQUh4Skb1TYxQoLVB08hXZQpcQoZ60d0ajAqnzuTAZFI3rLeo5T1RRu3CzNylYnd_4c1oGNACHDloBYskrJvfKZBLjA0LsRyfNz75wmdH65C0CYzav3fgyZtywz9RZI8SkvEUGXHSg0_uFKOKUwZszky-b_EuStgQjX9iymZ1TWPqZAVyGD9BcLY3J0Ayi3E2CoUBPWS_AtY3Q3mPmrFU9Y2RLsuV7nfR5WCyp5LAdPUv8EHo9GyHnGJCL0aqZyYRThZQYVunj-BXyMCmZH5yaKAiUvII78-ed2fKmvZ_lRjm1234HiAf1N6KhToSrvQBCdhtDdMIrAUJkPCAai_NtHTOkmLOaGQd-wK6WDcQPfmYzV2VYScI2jFla_Uq_yT1BqJ9y41GhVD_fPkEODptiZdUwVcjoS24IFKoCf1nmJ7HiJEVPXQDJ9TL7vErMyXi-OyMI-vb3AlXszWjPbp9-6NIEL32SMAeXmBZ47aguQN0of8tKnX5XFCgtUHTyFdlClxChnrR3RqMCqfO5MBkUjest6jlPVFEa39gyCPLWrE7jUKEhCOvLO6vz4ntW7ZZaoOS1pPmW4aTKsFz8WMIC8HOt4kQRAqQoneJD0F6yDfyAAKYSVthOzelvcV7NR9OD_SW2OfLTeu2zqoGkIQBeaSTzxm_p2aSDHsZ-Mawejh58413vXP934wtVU8AjUjriNatCKerJPqm75lD7HhEqoXgOp92gPj8R_3gcd2z3J97N_gPg9HxlTRXP2lcvAOaJC7cGo68sCOEdaleUDKrO-TYo1OZB0rBaWF2cVoghVsEJMzV95yK1_uaWFTbPjkYwvIsM5OTlSI8hms8QKHqsPyuYneu8a_vsxCgnKf3z34xZWv1Kv8k9zWI4tGMtmgnxQTfzBAB8NW3qfM55SaWCJt1iukIx55i1Zvk3oL4JpnKM-c6d9-LCXgKoxc__AJLw-B7bQDXZJhnduwtujwqilR-ujAXl_rbciLQVv4MAsP2HyVvdcUwUGYve__H7dArV1yodFYnH9wTH0_rmR_64835ko-ko81PXOfc0Y-bN0cs35YzLCs8DZPsbiaHfSIQpLCHwNYZaUDLhQIx2gjQPiq8GTxxBk9yTt3IJGU7CaS2xCAmVrZPpRHY3DMUUPxNm7jCTpt8_FWSz3atU_IXCYHK-HD76lH0TA3X6Y3ngkY4X3pe4bRDYSJCBxVP3x7nE1YbquwEQJbt3NW5WreHexbfw4JOpRIIRO35vJgRrbChnmUnYWBx9LC1-1xbU9euo5mjE5_vvfViYOrL9lG9hs4KXK0mpEMgEW63PtK-FBAlZ3uJgcXp2MRjEhhu7AFHfgW1Jig5XbIr3ArW-1uwXMqeMkSq-nNP7Flc_K2YgSvbC3GOmiUbbZLPdq1T8hcLaGi8AhYR0yf1cOBUAIKdMBJ86D3w1zEdopJNqhseieOwNQC9qebZfYDYlP1GNAMcVOjxnSZDGAkTqIz8SmHk__HigllKwoDvUXmLGRP_7F6BNlvqH10LKs4KXK0mpEMgEW63PtK-FBAlZ3uJgcXp2MRjEhhu7AFHfgW1Jig5XbIr3ArW-1uwXMqeMkSq-nNP7Flc_K2YgShbF-DqQRDa9ZLPdq1T8hcJgcr4cPvqUfRMDdfpjeeCRjhfel7htENhIkIHFU_fHucTVhuq7ARAl44SgK5o5GHfvSW2NskwE9P4wyGrkBMkLTANT-3LTdh7F6izrEXw93Qmu5a3a9y-QWJg6sv2Ub2GzgpcrSakQyARbrc-0r4UECVne4mBxenYxGMSGG7sAUd-BbUmKDldsivcCtb7W7Bcyp4yRKr6c0_sWVz8rZiBKFsX4OpBENr1ks92rVPyFwtoaLwCFhHTJ_Vw4FQAgp0wEnzoPfDXMR2ikk2qGx6J4vP3kgLn8_eiv4oeyXH8T862z0Nc72Mzpxn45W9sNvsQw3bCp3NCmHPn_9FKx_7muoE2W-ofXQsqzgpcrSakQyARbrc-0r4UECVne4mBxenYxGMSGG7sAUd-BbUmKDldsivcCtb7W7Bcyp4yRKr6c0_sWVz8rZiBKFsX4OpBENr1ks92rVPyFwmByvhw--pR9EwN1-mN54JGOF96XuG0Q2EiQgcVT98e5xNWG6rsBECVgoP4CL0oq23eivcrYkxXBFaNGPcnSg82OmYl5mmY5mSW0bqcBA6W6Ca7lrdr3L5BYmDqy_ZRvYbOClytJqRDIBFutz7SvhQQJWd7iYHF6djEYxIYbuwBR34FtSYoOV2yK9wK1vtbsFzKnjJEqvpzT-xZXPytmIEoWxfg6kEQ2vWSz3atU_IXC2hovAIWEdMn9XDgVACCnTASfOg98NcxHaKSTaobHonjsDUAvanm2X2A2JT9RjQDH3TO4tYV0zKd-QmOrVCHv3cpQuDwYaBImEaRuK0eFvtugTZb6h9dCyrOClytJqRDIBFutz7SvhQQJWd7iYHF6djEYxIYbuwBR34FtSYoOV2yK9wK1vtbsFzKnjJEqvpzT-xZXPytmIEridUsjleQu2XU_ckXJB1i7pSEoZpmKEcuIWLwihFevD-UsLin-ajrah7XT7yjSgGZfnpsbi_gI07Lx2KdHUy0OKqE9VVlEuQ6GaZ3dNX-TqnMwIJ2OxlVOIgqOK-C8tdIFKf6LcCxkJp5JIEAwdSuy7cKpBgAQYBKzD9tsCnkM2TtXl-bsgmJkAj5GAx8OK3086gIfPDOebNqxF1G4Z5T4R3eY-H4VZltbdGA2ZckJ2ntLrwwyaJlaa6wzp79MIV0hK9C4RWgRDMnQdyNOE7H1m_Xp5P-xOnOxEVfi1WFf5KEX-HIxuT37_Vw4FQAgp0wEnzoPfDXMR1Bif2a93xmqmzeRgk47zsfQKZ4psTW95M1BNGvNs1DuJsENANgpAIHucWBDcUpBvmto54Htgybe4TNJ390EpkvA-nbO9beo8Gw_JyY_9KW-1QAa_u55J0LMnN0Lg3gZ47LowvUdKCz9XSU__0FYT7szxoGf3BkDF3JcKAwosiZzCAW9QClvxJc2Q08vwgr45oMexn4xrB6O3JrmJfEGiDNUjtBlQPDFFnjcOR-D9yWgQV3BmDvizLUUqs33ruxCeK0wSMtVmgvEjWP1Y__wqb-oa555XcUHQiCkXNTm6xaC2gBC4S__u3o3Cxz_ZTdyvM3pb3FezUfTdGZ4Q4_NDeFEm-3fW_PPIsBTq9GaNxxk2rEXUbhnlPgVHcVBEcx8bSyVup5906HByzcGE0Xrqu-tlXwMdY66VnfYJHYm4Jz_NTn9IpS1kZZdtr4GZuEAnb38DtbGYj5vnjDbjdHPRTaS8cAYz-LB3-Mn1TnyixnZJLrYjGJSeuIYSNQq71xcZ5-gn1LlDpVtLleu8b5TOOBCHzBXx6FPklNdKlYKhDq4BjGTaZAlOMKqtlsDVgAMRcuGuo-XZ6Dd9VblYI8ppr_9yj4fOzabpHreokbagbx662Fla9BMMvecegKO1wd8Mx67Exdg2HrecWCimbtCZBXtwqkGABBgEhx9oe5dqJ61Qh8wV8ehT5JTXSpWCoQ6uAokW_6bYubZrXFuWn3TN2ggDVY6kW1LpshJFFQ477AsRon8OsthQW9EJaAofI9aGVtmAkCPJAaK4rx3E2INyN0Wxfg6kEQ2vWSz3atU_IXCYHK-HD76lH0TA3X6Y3ngkY4X3pe4bRDYSJCBxVP3x7nE1YbquwEQJeOEoCuaORh370ltjbJMBPT-MMhq5ATJC0wDU_ty03Yexeos6xF8Pd0JruWt2vcvkNpuOEvHcAiA3D88LZf51VEOiNsbN1LVSWPpLIqTyDcpEwN1-mN54JGOF96XuG0Q2ItPk301b2ZpPzfpTTuHn8J2cRkY7tY4hIg6w1Z8GibS0aubGz3u3SGS8jt1jKh0JCBqylRdw8LFSV__Vn45EnmVZEmd98y_tU48hZ9dvpH7Z9RW7nuIsj0v28S6F7vhBHCYBoUU21A96a0_rfjhUDBXCw22rl2ePw_SMi2WFmJowCNtpo5fnPy1JlHEzSjYDQMJ1yHx0PMPv6PrcNtXrjKiGB1faMeYDxupCyCOzAnkg2TpNVn5arGVE8A84DBFzbEyKprtqn1hL9vEuhe74QRwmAaFFNtQPTLf86O-7CxM7uVxJbA14careMmcmcDs3S-MRLacHQsZ_huxEgi979UgOx5xQYEhxXi4NEFLtUb3H__kBD68kVFFyaEXdKvjcG0HDnKJAdKV72AOpPBWf_FKtvFNXHTrXhwVTm-b-sURTKqKodJLEvt0azMq938u9b4Z7MSIlR35IqhpytFR_XUHPNdIoLeYKWXqN0Blhc9UPwtMaw02TLtdhJZkac2xZ23vCdhkl654KAiUvII78-ed2fKmvZ_lRjm1234HiAf1N6KhToSrvQBCdhtDdMIrAQ46QcWy_jVvHTOkmLOaGQd-wK6WDcQPfm3fd_EDvTStjGM1Yg2fbM2Ykwx_hgHUCMdLqBRdybpGUVeN2Kv50gSqMJUbHPu0sClX4pH0mlVf9TL7vErMyXi-OyMI-vb3AlXszWjPbp9-6NIEL32SMAeXmBZ47aguQFDB-FvHLwSTFCgtUHTyFdlClxChnrR3RqMCqfO5MBkUjest6jlPVFEltRk_slLTx1EhXvYX1hsgFUyo9Mjc7EAee5t4-xOFuSTwggrS3cJxDLhSf_WGxolREluE3ZLcNE5HvAiaEdTglcV2ttuCJanOSL8p6zYMqSgIlLyCO_PnEFrpIrsabx5Pys-rKVwPhU2sRVzJC3L-sqlDvD533MQri-HUOAqDEvo9NmTFl1JCoxDJGWz5YOe2Df6oeq6FVDxR0Ce9_t2D_NVPV3RUqogcfaHuXaietUIfMFfHoU-SU10qVgqEOrgISOn2I4jLv1uq_kx_5Tgftt7hzfjWnLkfatmO6Pnaj82F4TyR271_n0CN6jHsvHmI3kjBFzAoENOHzQsu_7fqWBuUU0muNk22oBdQgwBs4SdXFSZAgJdFAyC9vq_fiPVfV75Ro5l6fyT7A3O2nrCBFZr-_hNjZS7xs487gnZluyhzlhTwiAUy9eWFQbJ8Ao-t60cDTfH_gpanGaRHMWtC-ixE8fDMKmYcqeJU5ojjsxDOkSL9sa7MEm1dnNqSicBvBebtDTr0Y6Y1Fl7KUH2m8Pge20A12SYZ3bsLbo8KolIAI7pacjyrUq3R1m8EIwQ8yxfFlrIwW56xc785-k_UCxLyFWgvkjzlRXQHAEMdsn6Ag8xRon-vFTfEgyLjGsWhtWR3e6A_9fUWFTAcND8TKlzceOnOP_HOZiTDwaVs7E91Bq-HSyvR5PohfJWz1aSqpHCNP2vpscCSv8c3j-OIAorJoP_IBBR7cTMYQ3gLGXGNcOgS2pmxak54dnYdZoBB51Wk2NyoXc5pCrC0Rm8Y_0ptecdxJ_Z4KssB-kZdmsFOt32hTEvAWlhdnFaIIVbBCTM1fecitf7mlhU2z45G8jtq1esnEaJb2YPK58OPZyjR8SWYIAAsZ3JGVNPibP9WtSoyCx6b9vhEHo5BY9eTHmfScO79zhzmMZDJUEO-AbgSZK86sxob8x8P2VDtfkr93jFkn-57JOzEKCcp_fPfjFla_Uq_yT0VK5SrN4Q4qN3JLaqmubUUghSiNTrO0ls1ZYtIdIF2PHGNcOgS2pmxak54dnYdZoBB51Wk2NyoXQyMrdowIA2FKAiUvII78-eti-UFycOmJh0zpJizmhkHfsCulg3ED35t33fxA700rbXaGHLHe-TWPV340KS4oJaR910lhPSVq704hn-V06nTp6_HWxM1osCx_-mQNR0D5MKjjRrsh4RDpIyV-7xQcg88dpP5QlufgvzSF87rW06g7l2q6ZRJvoZl3rLIPBEapL6BVJk4iVGG_2e6vyq-SIUOdgNFfREWu59bWwFPPA9o5GOzS564aZLKpPMQhPSwwG4yMnk8DyWfstcoNL-F2NCiLLX32R9IyMy5UGuBld3NVNKbVWoAi9VPiAYiToy7W-L0XZUEujVzMgJgumYg2W33kbeWZ6QM20Wf3CWj_tFQHZ5PK-08Ay83ZL3XKFdfBXinGW9iECa1IKRc1ObrFoLaAELhL_-7elDzH6-JZvEwAWH0nWvYw4jN6W9xXs1H0ygjrcOTVN5WzKQOPG-Fy1WMfle8vqvFlPvRxkEuvIRu4YeUU8FlGLjjZfS_9neWfUG4SXMDF-vR7MQoJyn989-MWVr9Sr_JPZQrW_wwL-8Phb-7FGcoxWnw-B7bQDXZJkKXEKGetHdGiTKTQMr6CB0L6S4kglKgd-YxkMlQQ74BuBJkrzqzGhvzHw_ZUO1-SnwW8VD80zTHwHvA3dGZLBqPZvXt8dl6245HhGVXCGeDqC3bB9sm7P73mdBqn16M95nGV0JEDaVqrBjRNQlskBaO0XZrXU17-AjIQZSqX14iBD-QzNOdXz-xawffJkShylavURn8sTNQe5SsuncWFmBP1SAbcUpoxLnKViquzD1qoV3Ds9cEze5ClxChnrR3Rokyk0DK-ggdMsPdyyCcN8tl1TBVyOhLbhqlmDll8nYqxZKRAxPwkdVcae91FhUxgLh30yNgdzoxPKTDOOlbk-ViK5kzfdAB3sM3YpPZ7tgFScSpp6DLV78wPj4LBuhr9IQn8QyvTuw3wXVPx6d5RSWqgEI8ACtGQiWSkys9nCIavUqxvqL6312pVgHK8Gangj9sxY7W-LyJinMJpPGK26UbzToxfH_Qj6d6Vp6gSKzxd-G1ruiBRitBuqwBls-d9ok2T9SYsPtVJbUZP7JS08d_9y9Q4QvNOECqNB3YT75Iy-T9nF_NTeP2UF54FTsDte931og8qogUnF4GAEdl6RZ0Jx-hzD9SQ5-4DUHZAiuKOhszj42y44H8oyzleM_THQDxRsHERnJDvRNZPmfjpViaX6sXY5-ESqSNBPFH-Du3hotX74QADOM7PcSHEa-4u29ZV7pjcKllQ7oU8LrXmSkqc1vIz_anC4EHZiJh5MzfZlkhUQYK_-NHyGDe-sDkBX5gPPmYqW3FBQFRmYFoBv8QQfNFW3K6DOv8LgVrm5UR0ZDNgVMihuklFZL9L3MVtYFq0gaV1MTsHqfXJr-FoCyKex8aKWV_mbinwmgySXTR-deVarJESjuMdI1Eo40eP7Lz38LZGXor-gKIPxohmXbR3tVOGDqUUYbfPcwBsWItfxQUayBQReh5VpuGk-Me3WZxFQ7qKpoCX575ipNGSgDcGJ1PZg0HlrWn3g_jdtQ37SzS4yngPkaIZQGtfv29qflSyMnI5IgmLoQlVk82sfR9f31127j8JRQG6k7wa7P5qkoZTX18QoA3qCVHOE4TrzuL8tw88LnRxI_WPhPrLNPXoBBSzIXu8ZbfVMMOI4Fn9WDp73u87DfIsc7gN5li2VJyaPAToTleaDbkyGfQ9Xh6QYNNQ42Z9B5oB6muLTwosqS6dux1bBobzToxfH_QjydnOi4L30FaIWsIdbTDOUcCyTZ9-mO9y0LOcDbv0MW3eVabhpPjHt2Dm2jbYFJT3AyxQiSkKZPZ-n_7kFMJlST_gLNZuqP-F4NPvNsUkUIspsSMghosCPNLsQ8VomNRElFfIRlZRS3qRX506XQ6DgYDiJBKyCTqwxpj9obJ5AQSiTZP1Jiw-1WWY02Hf6AxnffxnTPqoZJPmWtaA0QqCxQo6_nyTqFIcthUQBYaffStUGVUpotheQwmhnlRXjozMcWSkQMT8JHVqOuFU0Y1hHZiyzST0BLPwp_375dKZsoxQA_DIBs5eOmotVMLOyXxgGoMwaROJNsbFjO5zYcSALpmdxsjaas_5t0OHcU_3yCRkX0RaU1yi2sHx9nYBuz8-n7M9xyqzJE7S7EPFaJjURJRXyEZWUUt6kV-dOl0Og4GEzWUUOZ8DBMaY_aGyeQEEok2T9SYsPtVlmNNh3-gMZ3AbFLbHjY2lJlrWgNEKgsUKOv58k6hSHLYVEAWGn30rVBlVKaLYXkMJoZ5UV46MzHFkpEDE_CR1ajrhVNGNYR2Yss0k9ASz8Kf9--XSmbKMUAPwyAbOXjpqLVTCzsl8YBqDMGkTiTbGxYzuc2HEgC68u6684plwWXdDh3FP98gkQfFm5opSCnWB8fZ2Abs_Ppg06ssp9B_3UuxDxWiY1ESUV8hGVlFLepFfnTpdDoOBo7Dx9eJ_nklHqfXJr-FoCyKex8aKWV_mbinwmgySXTR-etKuQXuEvSxPxxp7zqPFpqz9-RXj5KwNW3k_-hZbqBLj2qqjGP_SKnMZ5ypdALUvUqxvqL6310_FL889BWYg4sBe1Whf1yD9QAoKjfJnslHBCyrIB9ceVkwRWLRYgoGg1FjP3GdyI7P_KQSD-beQN0OHcU_3yCRo7ofMLOcdcYwMz7cV0Jp51ugkjKqG52akhNrgSee6xca_aYrFDrI3eou9pbMqw-O7u0TZgy7sLP_vyaa8X20CZEk3hzDoG34AJNs9KrkO81TwT8X-S1zMHliqZElb_kzlmRkyjB8nRylIglV4pvWzp_QoyyG7VASwrtf5DpA6Q_qzu629VPZQqp_0dk5wMoyPjGyPIhmC7shwfFHFqWPeijV5joR6Eox7KL3nmjusFXQLV0RHW9t8fMP2zsX6Y37iGj1_svFJZ-zP7Z_mg6qWKO6HzCznHXG1OMaqOrioHYGPwwCu0v7c5ITa4EnnusXGv2mKxQ6yN3qLvaWzKsPjpbUYHaN-SbI_78mmvF9tAltq1quhvusVACTbPSq5DvND0ba9XWt-St5YqmRJW_5M5ZkZMowfJ0cpSIJVeKb1s6f0KMshu1QEl0EEUgssPSr6s7utvVT2UKqf9HZOcDKMj4xsjyIZgu7IcHxRxalj3oo1eY6EehKMeyi955o7rBV0C1dER1vbfGMqrYKdA8_Xoho9f7LxSWfZSVFpTFiJaejuh8ws5x1xtTjGqjq4qB2RWOmz6QaU76SE2uBJ57rFxr9pisUOsjd6i72lsyrD47Cg3cmVVIogYJsni-9yS6auC2hreiPK6Hb6V5FN_gtCUHd92AnCvDjWJYsSfzNzQskTlgdUtKVWfqVa_t40sPb5fuKaFMCWspZEE-R17CqCN1F28_nIep12HbQ63Jen4s-Kgj-1jG2CsuX3z5uDUyyFLC2ioLPP_WRnKl8Dql7QcDIFGHPY2OziGj1_svFJZ_9EJaSNOv4bU3HOno-wt-S19rUyrUZffRjPffKkPVkfIQRl0pHijyhQsxXPCjBRIolFZL9L3MVtWW4SKQXuGWN16AQUsyF7vFScXQEGUrn0fVg6e97vOw3HOGShpUxRIHcq3UCiM5UNH_NsPn6hdabO8b7-NN2ZcoRglSXBRBRmJhMLzf7umqYqWShdFdey3cUseFTHAGPj_UdWgupQ8HjQYFqA96oPCz8ROM1CHyfzT4cUoSkCZYcT10yPGyK7UTSeE5sx3JniiLHWbF7GAZyLohFdY2gDH9Nxzp6PsLfkhZLe43COQIrjSeCwAFxTLqEEZdKR4o8oULMVzwowUSKJRWS_S9zFbWLKScAW45eAtegEFLMhe7xd0qzIUA_uAz1YOnve7zsN-cNu2Cg5BzN3Kt1AojOVDR_zbD5-oXWmzvG-_jTdmXKALGeY-i7CALxzqSHNSCRxalkoXRXXst3FLHhUxwBj4_1HVoLqUPB40GBagPeqDws_ETjNQh8n80-HFKEpAmWHE9dMjxsiu1EU2ZnQ-vbUiwix1mxexgGciLpzoJzOH1YTcc6ej7C35IWS3uNwjkCK9sCW7359fQFhBGXSkeKPKFCzFc8KMFEiiUVkv0vcxW1jidIrIN3xyKNMkinc4dWzxlnk5H56yuCiOsudbkzLxqAIgnvrArJ3yl8tG349nXNxtKGaRwfCrgA8UbBxEZyQ47SHngZp0Hm4Qkx6vIf7fKxmyBj7rZ7XAsSmj8MfmWHujYs_vMhUHYW0ca8fd5syeUZPaF5A5g_ZvU53tpgrLSCP9_GBMF4rCLHWbF7GAZyRQ7Ql5JoHH63bPDtj_CQU2vi17CIympGG2Wphr6GFkiHuGwIcHdBGGSV-WIcBDnp7ZVPmbfs9rlyJ7RWunNrdlYuaUVLnjeghnTNwhPI1OO4p8JoMkl00TkfdQFqoO1CjHSNRKONHj-y89_C2Rl6K_oCiD8aIZl2Tbj8DH_K1WNsS5GsaVhYfH8UFGsgUEXoeVabhpPjHt1mcRUO6iqaAl-e-YqTRkoA3BidT2YNB5a8N-Q_N_Jwi4NB_MGzY4q1wYoSgAQVFlAgsruTgwK9Rv_DgF5Vtajbt2zw7Y_wkFOHBxkyp0fqKH3fJH7X3Uosh7hsCHB3QRhklfliHAQ56e2VT5m37Pa5tptSmgn7ypNWLmlFS543oHSe0pPBul5ouKfCaDJJdNHhLV3yNN8QkYx0jUSjjR4_svPfwtkZeiv6Aog_GiGZdk24_Ax_ytVjbEuRrGlYWHx_FBRrIFBF6HlWm4aT4x7dZnEVDuoqmgJfnvmKk0ZKANwYnU9mDQeWvDfkPzfycIuDQfzBs2OKtf1ypwXg5xfXILK7k4MCvUYg7s8URCzJVrds8O2P8JBT7ZwPPVYNpESNUMRhoIS-mYe4bAhwd0EYZJX5YhwEOentlU-Zt-z2uRg_AFy91EvW4PDkborka904KLxLAWjqpCjdLbAnGY3vmWtaA0QqCxQo6_nyTqFIcthUQBYaffStUGVUpotheQyHrhyXF1qKHcWSkQMT8JHVqOuFU0Y1hHZiyzST0BLPwp_375dKZsoxQA_DIBs5eOmotVMLOyXxgDD7k5dPpE3px2EL1cauQG4gsruTgwK9RkdQTOhqnxAw7TH9DEzohFxtHpktSQjQ_3cn3RSiswgPqoBCPAArRkJPo8v7gXcrTIiko3kleBmA5juCa9HtXGDeTj2Z_rQxa71USVF64m8k2-leRTf4LQmoan2snFsEllJyaPAToTleaDbkyGfQ9Xh6QYNNQ42Z9CNAP4OQKqk1sqS6dux1bBobzToxfH_QjydnOi4L30FaIWsIdbTDOUcCyTZ9-mO9y0LOcDbv0MW3ipm-Sn3hbuHtLNLjKeA-RnGqBCxz17vuRVb2sI6kNA3VikZp4X4mEO0x_QxM6IRcTurWpJzsEaUxdm_qsctDmKqAQjwAK0ZCT6PL-4F3K0xIQJfMXF4QZPfUoG7Q7qFBdSEdtVFhtxu4LaGt6I8rodvpXkU3-C0JVCZ9bTh6dUZScmjwE6E5Xmg25Mhn0PV4ekGDTUONmfRLLyrXMHlhSbKkunbsdWwaG806MXx_0I8nZzouC99BWiFrCHW0wzlHAsk2ffpjvctCznA279DFt4qZvkp94W7h7SzS4yngPkYPr0G2gqOhJ0VW9rCOpDQNRJI12dcEGZntMf0MTOiEXO5ZFEdCQpx8mlYnO_2IYO2qgEI8ACtGQk-jy_uBdytM5BDBQRthrUbhCTHq8h_t8vXCXcJCPDy0fks70pfnyRQPibKxOe_QdHliqZElb_kzlmRkyjB8nRylIglV4pvWzp_QoyyG7VAS3sV5FCAww-nqzu629VPZQqp_0dk5wMoyPjGyPIhmC7shwfFHFqWPeijV5joR6Eox7KL3nmjusFVPXTI8bIrtRC58bTntltGkRVb2sI6kNA2JH6xgVRJ2N7h30yNgdzoxlIB4VJpLGZsEOq07ApHbaZdfwLGI_k7auNvWo0799IlxHJbb_d54Py9RbL_gw9t3mLLKBIAGnyF-SzvSl-fJFChwN3P8aOUBgCIJ76wKyd8pfLRt-PZ1zcbShmkcHwq4APFGwcRGckMlkpMrPZwiGr1Ksb6i-t9dPxS_PPQVmIOLAXtVoX9cg_UAKCo3yZ7JRwQsqyAfXHnGJqMH0jw5Y4ObaNtgUlPcDafXd-1Q4zA2zjrtN0h3nEF-4ngMK7vTuHfTI2B3OjGlU4CvDXElrgQ6rTsCkdtpl1_AsYj-Ttq429ajTv30iW0FCFyh4nmu5xwnOkNPxAVFUd4Oz523MRlnk5H56yuCtHDGSRBhRQxVtmkFx3UbyrE_HGnvOo8WmrP35FePkrA1beT_6FluoPEg1B-Fur07qcxnnKl0AtS9SrG-ovrfXT8Uvzz0FZiDiwF7VaF_XIP1ACgqN8meyUcELKsgH1x5xiajB9I8OWODm2jbYFJT3FqlLSxaz7QXNs467TdId5x-30tIdmpRa7h30yNgdzox17yaZnMTlzIEOq07ApHbaZdfwLGI_k7aPLjx4L56Hv5Eooj-reA_fduFQqz-BQwuvp6Dc6PfCeGTIQjcUJj7qY5Ec9mEGk1ZTfDCI8Y6S_YRHQz-ltbBLZ7kH4zgV_49gNX7V7skRwKpuXiG3HXRT-ZeNwyQEaMZC_aUdMy64lpf3PzeksVtkZWbpJlomTJUikOU6h4XR-FV3drmou7ZBPFd3fHOW_rjfNryPUrjBwcTD7t7XaEmvqpVE4xEiKr5e12arzcEV69D4RXOIFP1SLCwX8ZcSafsUfm0b5hEMgqCITogDN45G6043F3g-k24Ac2J2hdkittNnFEwNxCkpllEViYRk0XA37L_nzwiWPFrHAmvEMw6gIKEOmVx-vqyqSeEwmKn5Qxhi8jzjh2yU-BVQSBYxPHKB3Dyq-i55kCOv5XaD7mize6c35WBMKlFYbgyERD0kkKQEvsBNWjnzD5WQo47XK4-eP1SxYYQju9_jNLts0UuQ7Yxj953LZBNJm2tOyKQgKek4oBa05ta9GeNCanMQY-um8EbE_s_vVH5eu3NVuHqfo7JrE4bisXhsaCRDQZsgb_W7JnzjFu1PxILTrRHfpR_G5E8sJKh8Of6ev3vhzn_9F31DIp7ygLNeTVNjTq8QkjFKUiKYQOl4JTIUFh1VDbLkaiXi4FmllzqkMHulI0QCUddtXzCOlt2C6P0UnTzEJwm3WK6QjHnmC-Pn5_p2KU-Kg1cvx-ZPRlWgo7kdZyDvr4xdk3j4EK9vHNsQHKxn1xSrdHWbwQjBGbztoAkrGVKK8yCswF0shrr0tRAjtlNFzSvzXizJO-gSgUHba0zcYRLVZvJ1t_AhoMKX3QhyDeqILV-n8ssineid4KPzlpT9lfQjhQHl1hfVpUhBXz19EzuCm4dqSgtRRoVLDcp9kb3V05DapEvbQ9SrdHWbwQjBGbztoAkrGVK7sb1jvhVcXJt1Ms9yJ76NIOKrqio0xqu_nXeMMW-cDzw-B7bQDXZJuNl2NWtkqhw56LkY2XM36e9xwUBF2ascVvZg8rnw49nSFrWom0yIhiFHtOguwpXx1vZg8rnw49nBvjMM96HJCUZi97_8ft0CtXXKh0Vicf3yGBLuRK5TBalK_7GPvg659YRUB7VoOdiKti5wO6gPUE3b3eTLTiy9xoVLDcp9kb3pFtMDjR_0f9QmLJfqURAlfD4HttANdkmXyFXrCIaGT4HcE_7kf5I7HqjjPhsnUb2WlhdnFaIIVbBCTM1fecitf7mlhU2z45GMLyLDOTk5UiPIZrPECh6rD8rmJ3rvGv7t6bK3AknyPoCwzEWJpH_5HxpxbHxe75Mbep8znlJpYIm3WK6QjHnmLVm-TegvgmmSNh4FHeAJw_Gdx17w7q1-dSUMBSqzWgN383E2ctYEVZQ3iGx-CNGqsZ3HXvDurX5XdszIDM4oms9OFFNpyDVTTzJCOt_uGMSgIg1E1f-nZEm3WK6QjHnmNi_0kB0o1rzKyDXj-cxmR7w3TjxYR2yjrZne2NpEUqnjeUJJ83hugP93jFkn-57JOzEKCcp_fPfjFla_Uq_yT31Ma67IoJcKJQ8x0GRjJEtC_QjWBCpsNqo_kJv1_ACu4fcp9Ea4cEPgijns1PLwOlStq9bpCIByJDkvrzwCcpbmRqp_Hf8t9d-idbFwvWmn5jMiwj7TVf0LB9ncL3Z8VsiVTo2niT8krGb-CFAt_43UVeN2Kv50gR8zKYMTLq5OiUVkv0vcxW1ySZThNM3WKJFOPPJYyz_Ejtxc9_ttYOiunMiQvMdUedbKli7TpX7xN5OK0O6dn5eRv8ARbU7p6MXnyCo5_LKcMsMRSo-QVI1m03BxFY4GIYnjr_amgm4x6-e1xo64wq2ON7JUawK1gIm3WK6QjHnmBdtrjhe6VKXrqyoqjBYmDpCj97hUYJaxoIXzga0_jTtmITHtfY67LIzbs6EKsaH9HOp4pjirDD-AbJ4xgY9qam5egFuMEJRiZ3_seMOSNIj590zM-Zyf-s6Y4khC7uCXolPaEkrZG7nrSWDO5_HZLSH43rWKz-V1fhG3qVF_kI5cWefTmJa3YnLXsVAenijTdLMUoxnBo3-_Y5QuLbOtS_GAc3VIX_S6rUiCLXTdgCWT3XAaTpQjJC7bpPyjhQ8jlllUn8ngq558Ci3DZ7KMkle1ZsDZb1RU0qHjvXD103pAB3wO-_dLVwR_3GrYMV_peuJsImScahEzjdp6PZuQwtQ-Ukdwi-FYu-4T7_h0zwE3EAEEB4dGsX82n5uX54c_LbQaj7lO8R9lQWB5OmQkN208QUr2j9p8Hc6RX3qLFxbJXMVcQ3AO_v5g6-pQUhs6MbkCdDLDvZcLKQJaNNl8fbP_nmWuVNeWbgZrRKjRoXUhnRH03bgJg64cjWaEz10_zH8ZPPm88qxeP-V7vbPFAGm8pgRC4m76jEhsrZXhCLuizjbH6l_HN-FobfDjyguTa-egTY_xtVwZNLn5GTtr6LuuL_xOxtQl3WKnq6oOrhX4ViJg5LqFNvQpqRGI6_w5ibdYrpCMeeYsdYaX1Gc0dQlAX29OpQDd4NAPsYxT65RffMt-BDNORWqfPHIzqtf0aca3OnYenR-WnDahT2tZbhtFfNckWoty1vZg8rnw49n8izua1J0XLTw-B7bQDXZJmOY-n8c5W_fccgaRulUp1X86yuyJ9-ws1fYovXBNXVRW9mDyufDj2f79QfIRVfu6fyL6gobMUBSZWrw-nL1p3SxqYU9yzWq3pQ8x0GRjJEtW9mDyufDj2dG41-APIm3IybdYrpCMeeYtWb5N6C-CaZfDjUxKhhd-ap88cjOq1_R6WZrl1XfztNwOaVEUGaXijxTWoka5rnswRzY-0dBES1dDMBOdScomT2WB3OW8Sf38Pge20A12SbmBxWfZmJeh5A6szZs6cMXjyGazxAoeqx3UotFQrx59CbdYrpCMeeYtWb5N6C-CaZpZ1X-_8Tp4vD4HttANdkmtWb5N6C-CaaSEioQU9kTb7kRHT9A52fbn99hmODHUSTSMG2rnJfgLiPDQy6caNmDHu4u1WgXkssm3WK6QjHnmCddAahSMcVbV5QPb6xYKUqwulq34xGpJbbL1S2E__NBtWb5N6C-CaYjdLGQ_Sd6jFfQjhQHl1hfJyrGV0ya0dS0FFKH1DHOKJA6szZs6cMXjyGazxAoeqx0N2QMOrL275S95LObUwRwJXYJqwr8ElqclbhB8UsDgnVDtQsO4aJfRyYZjGxk3NhEl7823oqOpcn3-cNpjzEjnwB693HI24IoEk5BPbq8QPGZqMUo-CdJmLRRQCrQpgqOBNB4yBmGYV0JQvGOjTF65I29OWpXqM-H43rWKz-V1XxpxbHxe75Mbep8znlJpYIm3WK6QjHnmLVm-TegvgmmLTZb9hufMXQm3WK6QjHnmJEUNg_0BOhzFoLRtbFPy7DiJwijzRxOXqtwQAh-Kkqu--Q8hQp2YbadcNBBIYliQKrEBB_mXf-srxNW45Vshwj8i-oKGzFAUmVq8Ppy9ad0samFPcs1qt6UPMdBkYyRLVvZg8rnw49nfCHV3Gq_e1iqfPHIzqtf0Uv1VXEDGKR7W9mDyufDj2fPKceiz7f5Pqp88cjOq1_RtsvVLYT_80HdnHw42dN45BDUbvu88vlCo9jaiBNoayxHvo06YNWUcXWXyawErA5L9LQAXeLN5V2ECnizQtH3BFMnn7nAN_rsMWxtqMPwR-i2UUeTefnmq7JIDYuezGrJ3RKCIL5FPjNl1TBVyOhLbuUb8B3i9y6z2jFvbOsDDr9ACMulGVr9fgl2qeSibjWDAJ18MjZjF8htPI4hqH11mioFMGQbZGLHO1eX5uyCYmTOlupR7HsoQPUaLNQ8Vc6-HMOX3kjtLOdyduNNRLK8qbLLOyzmeI3N3nvi3QaszWBZPyGIYLZIDEn_AGq_WMzEbdTLPcie-jQRmzMph4Nt0jSnd2zG9fHkuBJkrzqzGhv25PfTUFgsdF-dFsMvuZhDQkiGDHwSP7CV6TPbFlIYHWkVEGyvZ6jZ5Sas-dRjnl2OeBQzpY39QlKdCDBAVN1GjhO3ahLEHkZCw7HTO_M6EaRMcbpoBxRJFUSGeEknCgDKMOnS3J3c1eFq-RWQAeuw4KjLBSTBWu9U0wU6-qlFtDaAHJ9sElaXSoRIUaDft-poLk-5vrRl1SLeB4lcT2OxxfBq3WIFjxCT_8TF10xzIeowAhw_iIc75mDAGOoU668vh-N-A2cT_K63wvFlwPYy-YOvqUFIbOgPGZe_3qRMSgYLBmbUoxak67cxzmoVbXgR_3GrYMV_pTim_oPGnL8DAQROSeDIQQKyzdIY1DjkGFUmvj-q8xurYeO_m3hy233az4w5NsT5i1PURWo66fEaUPlJHcIvhWJ9f5psnC4ANcozKWmbRpIqSoeO9cPXTek6epGf4oDbxOowAhw_iIc7QYmPNSCtH9j82n5uX54c_NeaPVelp1Lcy3GLZ0vjypJNJKJ_6FKOMNDRJIyngIZpVr9a1cpO9-34tVNqW5EOrHqew8x06Zgk5pLrM_tNbeDuuL_xOxtQl3WKnq6oOrhX4ViJg5LqFNvQpqRGI6_w5ibdYrpCMeeYsdYaX1Gc0dQlAX29OpQDd4NAPsYxT65RffMt-BDNORWqfPHIzqtf0aca3OnYenR-WnDahT2tZbhtFfNckWoty1vZg8rnw49n8izua1J0XLTw-B7bQDXZJmOY-n8c5W_fccgaRulUp1X86yuyJ9-ws1fYovXBNXVRW9mDyufDj2f79QfIRVfu6fyL6gobMUBSZWrw-nL1p3SxqYU9yzWq3pQ8x0GRjJEtW9mDyufDj2dG41-APIm3IybdYrpCMeeYtWb5N6C-CaZfDjUxKhhd-ap88cjOq1_R6WZrl1XfztNwOaVEUGaXijxTWoka5rnswRzY-0dBES1dDMBOdScomT2WB3OW8Sf38Pge20A12SbmBxWfZmJeh5A6szZs6cMXjyGazxAoeqx3UotFQrx59CbdYrpCMeeYtWb5N6C-CaZpZ1X-_8Tp4vD4HttANdkmtWb5N6C-CaaSEioQU9kTb7kRHT9A52fbn99hmODHUSTSMG2rnJfgLiPDQy6caNmDHu4u1WgXkssm3WK6QjHnmCddAahSMcVbV5QPb6xYKUqwulq34xGpJbbL1S2E__NBtWb5N6C-CaYjdLGQ_Sd6jFfQjhQHl1hfJyrGV0ya0dS0FFKH1DHOKJA6szZs6cMXjyGazxAoeqx0N2QMOrL275S95LObUwRwJXYJqwr8ElqclbhB8UsDgnVDtQsO4aJfRyYZjGxk3NhEl7823oqOpcn3-cNpjzEjnwB693HI24IoEk5BPbq8QPGZqMUo-CdJmLRRQCrQpgqOBNB4yBmGYV0JQvGOjTF65I29OWpXqM-H43rWKz-V1XxpxbHxe75Mbep8znlJpYIm3WK6QjHnmLVm-TegvgmmrxNW45Vshwj8i-oKGzFAUmVq8Ppy9ad0samFPcs1qt6UPMdBkYyRLVvZg8rnw49nfCHV3Gq_e1iqfPHIzqtf0Uv1VXEDGKR7W9mDyufDj2fPKceiz7f5Pqp88cjOq1_RtsvVLYT_80G1Zvk3oL4Jpi02W_YbnzF0Jt1iukIx55jZuZbtbWikoxaC0bWxT8uw4icIo80cTl7sdPtT1JI8_NB7ihhHDP8lgWGyBt1T21k1FBcv8qEupzLPQ65t9LnWRKKI_q3gP31N4Ts9hYfXvBtqbuIhilYEtiESpNcRjYBJXewDr3s6t3OMRK5PQ5r9phKPU17ZFDuMWVr9Sr_JPflh-uThvXd7g38G4PXVbgVIja1S7YfM-5FtiP_Xw8OhckMcp6Naw-9FfnTpdDoOBqHbmI5CHuPkAJ18MjZjF8htPI4hqH11mioFMGQbZGLHO1eX5uyCYmTOlupR7HsoQPUaLNQ8Vc6-HMOX3kjtLOdyduNNRLK8qbLLOyzmeI3N3nvi3QaszWBZPyGIYLZIDEn_AGq_WMzEbdTLPcie-jQRmzMph4Nt0jSnd2zG9fHkuBJkrzqzGhv25PfTUFgsdF-dFsMvuZhDQkiGDHwSP7CV6TPbFlIYHWkVEGyvZ6jZ5Sas-dRjnl2OeBQzpY39QlKdCDBAVN1GjhO3ahLEHkZCw7HTO_M6EaRMcbpoBxRJFUSGeEknCgDKMOnS3J3c1eFq-RWQAeuw4KjLBSTBWu9U0wU6-qlFtDaAHJ9sElaXSoRIUaDft-poLk-5vrRl1SLeB4lcT2OxxfBq3WIFjxCT_8TF10xzIeowAhw_iIc75mDAGOoU668vh-N-A2cT_K63wvFlwPYy-YOvqUFIbOgPGZe_3qRMSnxpqNByt9zf5HAzVCCXuRsR_3GrYMV_pTim_oPGnL8DAQROSeDIQQIERj-jRmSXh091Bq-HSyvRNxzP1a3wTn8kseAv0yysY-Xw6zD1i_HOWJyLKGLmbuJy3__7FoJ4I7LelgFRjehermdXAxOIZWMi1r6sYJBmVXjm7CC9xZ7FpYuawCWMucT81FBIFf6o7IPmojULgdXjXDNYYduMn4SVfgQZRwwkvFD5SR3CL4VifX-abJwuADXKMylpm0aSKkqHjvXD103pOnqRn-KA28TqMAIcP4iHO0GJjzUgrR_Y_Np-bl-eHPyTZkpR2WeoQYDsHdPW8WGdgus-OEjtpAS5egFuMEJRiXJkC_4PPdoMuxTGXQmMdr4wswoaa2wKMftgfplzOCjcPDrk3Y2KZiSGiv9kDv6Bbo817TOC9d8vObTbKa8zmEgtrDRFUyo_shmPskmrqoNdfUKska9Hu0zp3vFmxuV2RwDzAykZUFE3rXDQhWtPMEexVkeipiYi9DJWXwvZe1DFL0nINDzw0hcZUlPeEzr1NOvS1ECO2U0XI5C1_ZleKbG10yQtoVknKXnbZ-adPuEv5vAVXwwO9nSCHLgrjlED1AkNyGLRunq5TBcOSD7QJ0l-nBbjPj5BBZozry60-pzs7ldQpx290JvIDN8ml4e73wkNyGLRunq5FFcZl1t7VNYA63HMDLGiXpUfrowF5f62U6N49kfXgkwscqJpoEBHoEYHeSdg-1jKtaABh0Tansdg0DCRpw8avmQ0bZgVV0A3jyGazxAoeqzjRSVR7T83nLuhYFR89X2HmJihPj47ADEOAmOLH_I-1uw8BW0C4Y5uFFcZl1t7VNYA63HMDLGiXprzKmxX_PkYXzzJfbX8DE6VdCRk9O6FNd3JLaqmubUUsLpat-MRqSURrkBprsb9GnCKn6hfbQD9XvcA-HoGaJ18f3r2Sysi6CCAbIdwMpZ4YaXrhsH4RfDRmQ2mlrh25jNblRu6HsOLcw44q776nFcVkeMZxxDo1N3JLaqmubUU9JpsKi71IqDw-B7bQDXZJgmNZCdC2KY4Dd_wvjWwIhgOAmOLH_I-1shgS7kSuUwWd8qYDoDtFwROwJIZ_LrW2xmlmtYrWaCKcJadkhN09sVsvUPtO8Qs_rl6AW4wQlGJ3kyY58LjrJdomUHFuSYTanU5bHUdLJXN8Pge20A12SZClxChnrR3RrH8-RohwWDWfF7S8rca99mBhjzyhFBfiXmPym5cvVerqGdb_R720pCPIZrPECh6rPWNdNZavFKQAOtxzAyxol5d4rJOlarX1UwXDkg-0CdJfpwW4z4-QQWaM68utPqc7O5XUKcdvdCbyAzfJpeHu9_e7HglYEFqTdYItSPsroV4VtGqkJr7JEfo6_56JPiV-ihoXO1VPGu9Z6CUnesoaHtzDjirvvqcVxWR4xnHEOjUXeKyTpWq19Xu47MSSTgu412ph9mJXbsGEy9C4L4Xt_Amd5RHfWKt5FKt0dZvBCME3H8aF07JR5TAvxUqbJXnLHe24l6eyj0cDIyt2jAgDYUoCJS8gjvz553Z8qa9n-VGObXbfgeIB_U3oqFOhKu9AEJ2G0N0wisBRPqtO0Yn_e0dM6SYs5oZB37ArpYNxA9-a4ERBanlrYuUPMdBkYyRLVEhXvYX1hsgFUyo9Mjc7EDt6oRG6d_LvDuL8tw88LnRtpcvB6Cljqst6NurhYddnlTSm1VqAIvVT4gGIk6Mu1vi9F2VBLo1c_jtd5f1cL7HuuDXBNAaNfIed5G-ryVGvv7xCsIj_GRbKGnyLl37ypGYnuf5HcMvPKj2Cgbg3gTowzlaeFTu3xyDRorTvu2nF_D4HttANdkmb6VUZKcfNPpYjZFbT78D0k6yDT5r6S00d2-D_fhmsM_2rGUw7SaI9cwUUcA6XWzYL5RQVx3YDcqoaFfgTMwMC4HOQpZsBvuoKEQ_sMdIps_Wrrrb1Ax7DftutiA8nLUtuNM7U4gIPz-TsdZqCDFufO_Ee1Qnty6etLeXDocEQFIRIB82WPz0-Dvw_fF86CN1EM6RIv2xrsyAwAwP1Jkw3Csiqw7FdM0PGNMu-A3IHggBYCMicaa0M7mEqU9ucjnck-oGT4gNwfsjlyZp6Sz44bfvP5AfYwxDuHI1mhM9dP-5nOGE-CRoiN9s3rZhhBXpnOXSYa1bDVXi7YRvKQ6qIIVNImTgEoaNed6n3Fx_K64vh-N-A2cT_DRWnuxdryiXV8LZhRdUp_ioNFBeSLMlMgVBSFCbVL8OPojMDRTuHoAriMrI1VZQACsLZ2xmhnYKpVnYCARKLUkflplbw4G9qlwzWGHbjJ-EfFJkr8bapFPj7PpzfZ177w1_aYUfl3n_GeMKjMtynwqBXI3U9HQnsbpx9CEL4b2b-TzY40pEJUrXGaINanl19_ghjZRYijhaSpL8k_9MIuYBBE5J4MhBAs4akt0GqNr0cEhls7gR8p1Kh471w9dN6Tm7CnpOi4Pzco2T5NzxW2_79yuL3J4f2HEFqv2tbRYjwjGxSB4pYJIdwpI66DvK1RSMhpJ3e5lRa1lb9rt6m9c3NqMlKaJW1V62i6xcV_-CuZ7Io0Cfl5_GTxWFfIvgdudDvPHBgR4YoWv3Ner2x1LPw3GVGK5oh4iwYbAYdn56jyGazxAoeqyj0Fl_UOxuT_D4HttANdkmvnSGM7feHtExj8Qg0eGL7biIdG1RodMTlR-ujAXl_raxoJENBmyBvw1T1X3CydLNdCP-ZYhb7xuNEJYHkY7VXN2fK4SVcboynA6N6BMUd3mVH66MBeX-tlfQjhQHl1hf8ZmoxSj4J0nZnCkisvuXMyrqdcBP2lT_ORzF1fMRMSyVH66MBeX-tr-o5JkGX1pnq3BACH4qSq6PIZrPECh6rDUflZg7bjQ28Pge20A12Sb6xKYp2lflAN2qSqhsZmy_GOFT0K0Uuat3Nf_s5WLltlvZg8rnw49nKAxN9ZGZjOKi5MCYDsk8SW6p3eHUlBaEMoR1wtCI-q6id4KPzlpT9r-o5JkGX1pnq3BACH4qSq6PIZrPECh6rA_z00_w_UNCY7rnImoHP7qPIZrPECh6rN1bueCiPzdY5RRxtrsLkZTfzenf6UEHHJ8jQkEMU2aDRCI70LtR0G5UX9GKrFL_Il7ez6ejQtYUTz8wn5qxwflXNf72IhNKCfD4HttANdkmKC4FeRhICyGPIZrPECh6rHQ3ZAw6svbvJt1iukIx55g3AWOaoC56qg4GLkmDRFG4MoR1wtCI-q79bPh_byHQF5YMFOlb6kMEIG12sF0G_hWms_TTXACZe74nZUO5tfU9ZtOvxV4Zhz5jM2XZzoPKLMmtCijDKive-YANo0hqG3QSLjZtKD2ioSbdYrpCMeeYL4-fn-nYpT7K4TlF-cQWx4Hq751k1_TTjSnaI2W4paAy_gpb-3u9A5Q8x0GRjJEtW9mDyufDj2fJdk5mRWR2eatwQAh-KkqujyGazxAoeqxYXUFvTTTcfPGZqMUo-CdJ2ZwpIrL7lzMq6nXAT9pU_zkcxdXzETEsVAzJA2Alcd9eAqjFz_8AkvD4HttANdkmGd27C26PCqLdyS2qprm1FJop9FD7WAgw8Pge20A12SYoLgV5GEgLIY8hms8QKHqsUU_Cy1dwcCTEtvgBYlNrlDxDyzIU1ydYb8sVRRC9fBcICI-8l4wM4LNDKi4KzRXk7OFJQO4RViuFTDVs1TFptZdwBuraB1l4jtF2a11Ne_gIyEGUql9eIgQ_kMzTnV8_sWsH3yZEocpWr1EZ_LEzUHuUrLp3FhZg-MbNJwLTLX65ylYqrsw9aqFdw7PXBM3u7ldQpx290Jse6gwOG3oSM_hzWgY0AIcOPtVmxNr5stTf9xJBTHaIaiUVkv0vcxW1vy1VKmMNetBFOPPJYyz_Ejtxc9_ttYOiunMiQvMdUedbKli7TpX7xN5OK0O6dn5eRv8ARbU7p6MXnyCo5_LKcMsMRSo-QVI1m03BxFY4GIYnjr_amgm4x6-e1xo64wq2ON7JUawK1gIm3WK6QjHnmBdtrjhe6VKXrqyoqjBYmDpCj97hUYJaxoIXzga0_jTtmITHtfY67LIzbs6EKsaH9HOp4pjirDD-AbJ4xgY9qam5egFuMEJRiZ3_seMOSNIj590zM-Zyf-s6Y4khC7uCXolPaEkrZG7nrSWDO5_HZLSH43rWKz-V1fhG3qVF_kI5cWefTmJa3YnLXsVAenijTdLMUoxnBo3-_Y5QuLbOtS_GAc3VIX_S6rUiCLXTdgCWT3XAaTpQjJC7bpPyjhQ8jlllUn8ngq558Ci3DZ7KMkle1ZsDZb1RU0qHjvXD103pAB3wO-_dLVwR_3GrYMV_peuJsImScahE83FRCznY5LhQ-Ukdwi-FYu-4T7_h0zwE3EAEEB4dGsX82n5uX54c_LbQaj7lO8R9lQWB5OmQkN0VN8SDIuMaxeu04OsN_4Lt1qJaYyQw2w927vTCRufJXt46x8H1j-WMWWFnlHSXnlBxgv-mXG4lrWHjv5t4ctt9YnT2PiqUoE-7EBpW64NMaAOqpLQyuM3uBKxzeUR2ibV2A73doaCQ1HD7AHUNxqfUwbg2C7EspMbH0x50eH17pQIg_1D70iEJKtUUt09oHnfOzl82uJq0-RbnqjhyMlIS-TzY40pEJUpLb1nngv-RRJa-5Gu4lNkNoyCVDs9BD2iHXwCMC728jy3-MC_pQHC-NvNiCkfsbns9qdKQAZmk6lJWzi3EGD1_dBS6f0oD2LgFP8Vt6pKVE6h1otyqQHp8Sv6_oA8Vyf89tin_CmTgQLZccPIfrkZsP0alW_zpPDBLOUK9tE_Tsj1nTdpplVjt69LUQI7ZTRcanTJV5LmCdYMRKX5T_7CfF8Mho8qjSBJqe4NiINEo9qpLHZ-UJ01VPpatudEzKKVcgamBaR0JgEZ5jadUQeBO9iFqNiysAi9t2cmvmR7Bli59q9w6E9x9ezn6qyAcEXfw-B7bQDXZJkKXEKGetHdGfG3MlfLMfDuySA2Lnsxqyb4xdk3j4EK9vHNsQHKxn1xSrdHWbwQjBGbztoAkrGVKK8yCswF0shrr0tRAjtlNFzSvzXizJO-gSgUHba0zcYRLVZvJ1t_AhoMKX3QhyDeqILV-n8ssineid4KPzlpT9lfQjhQHl1hfVpUhBXz19EzuCm4dqSgtRRoVLDcp9kb3V05DapEvbQ9SrdHWbwQjBGbztoAkrGVK7sb1jvhVcXJt1Ms9yJ76NIOKrqio0xqu_nXeMMW-cDzw-B7bQDXZJuNl2NWtkqhw56LkY2XM36e9xwUBF2ascVvZg8rnw49nSFrWom0yIhiFHtOguwpXx1vZg8rnw49nBvjMM96HJCUZi97_8ft0CtXXKh0Vicf3yGBLuRK5TBalK_7GPvg659YRUB7VoOdiKti5wO6gPUE3b3eTLTiy9xoVLDcp9kb3pFtMDjR_0f9QmLJfqURAlfD4HttANdkmXyFXrCIaGT4HcE_7kf5I7HqjjPhsnUb2gvQIgjTGPp_b60evL8UorL0RZ6mAZi4VQbhJcwMX69HsxCgnKf3z34xZWv1Kv8k9lCtb_DAv7w-Fv7sUZyjFafD4HttANdkm7ldQpx290JvIDN8ml4e73096SZe4YsLPR_zCNqXHYxFm87aAJKxlSif1w6IMYSQSwHvA3dGZLBongJ2Thamz3VvZg8rnw49nG5MKJ9FV5BxOwJIZ_LrW2zxOQv98TjcOmxBYh4ySAB4HJLqcla7G7nMpJyruyXgd8Pge20A12SZClxChnrR3RnxtzJXyzHw7skgNi57Masm-MXZN4-BCvagt2wfbJuz-95nQap9ejPeZxldCRA2lataJm5t6Pru_drWjb78Vz_j9h8lb3XFMFBmL3v_x-3QK1dcqHRWJx_cNBWrky4u-4fY2aER49Dv60Ej8AdbLgZOB2Jq3WcyjKlflbd7JdV5czICRuuQVyp4QezkDGuvHkKyYb8ZNQonSZWrw-nL1p3RO2XSO6v593_VtDlqITlF751prdkQt7i7pz9zwOJ50GKnzQnFciYj96i72lsyrD46QFRvxIyHnQBWa_v4TY2Uu8bOPO4J2Zbsoc5YU8IgFMvXlhUGyfAKPPEOxlTL0vAbU_XVWf7eWqx2pT7TePllpk-u76US10Hi5SJXXmINI9MFOt32hTEvA_FMJh8UA72MUtwef710DjhlzBAYcGQTuwXSI1r-VV6trHJpYkJxsIjdw2ye0U6rNEpD01oPVkKFhuDIREPSSQpAS-wE1aOfMnZOB1vdDBYHzNAnnICgDZ2MzZdnOg8os3jEqVihP-5Wk6oWzxADoOFcXWdWD6PzeGKm-9Njmp0Fpw-gp3Zb9mrJIDYuezGrJqw3pjAbJq-Qd7syqdc6HiqvAS0ysmdXIxo2WQGV-PzDXQn-9ntsxno2c2uCdI9Qgcy8ydBZYrz3cmuYl8QaIMzBGY_lifYYRyYcgwt6xxzcGgEqYB9xczyaTC6bgw_PS-TzY40pEJUpc4qeoBE3wAd5dMrsGM44yO6YjI50y9RLGq0r8brJemb1908SiJkovbkIeSqiFpm5gPG6mDS8xD8_-eZa5U15Zu8a_JW_dDPhiz0x7PUPgBzvhlwo1aGfxFLaVrrErEpK7GpSA8r0lRiQvwnPWxrqF2nzvA_s9bZdRAOz7gDn-AAS2_OugRcALU_ri43A6YvGCudyvayDbgTQhuslPGWVIlMcARLJ_mkt5wBMG4YqMiM2nOos-fnxinapFhQyo6vGFTSJk4BKGjdKYJUnVLMHoI6N8hL1xmPW4cjWaEz10_8aSAHRvHlAEBoBKmAfcXM-c5dJhrVsNVTRWnuxdryiXNfSPZPIQwJ3LcYtnS-PKkk0kon_oUo4w0NEkjKeAhmkcUupxR-y31EP2M6GXRQDGLtfEcQZ81xJ4_VLFhhCO73-M0u2zRS5DtjGP3nctkE0mba07IpCAp6TigFrTm1r0Z40JqcxBj66bwRsT-z-9Ufl67c1W4ep-jsmsThuKxeGxoJENBmyBv9bsmfOMW7U_EgtOtEd-lH8bkTywkqHw5_p6_e-HOf_0XfUMinvKAs15NU2NOrxCSMUpSIphA6XglMhQWHVUNsuRqJeLgWaWXOqQwe6UjRAJR121fMI6W3YLo_RSdPMQnCbdYrpCMeeYL4-fn-nYpT7vQobhx_KCfBVEhnhJJwoA8oBwON2G-0QLo_RSdPMQnJS95LObUwRwe3EzGEN4Cxmid4KPzlpT9rGgkQ0GbIG_YHyNOhb6uCH2uQj7FrCwwaVKFceZAOy3Uu2XyhAaGKlmDi75kMo8oJUfrowF5f62R3wtp-NdFUy9_Yy33PqCVjrRNYbNkN8BZWiRSqjAYswXu5FVhj67mpS95LObUwRwe3EzGEN4CxkE6g40Pd0OFemgJfgteqXFMISn7h5W0ojewTuA4_2GTibdYrpCMeeYyQVSf5yRqaxfRgnXsKvtJ5PCFy1KwXRLSMuxbehubmN71z6lqq-adsVODR8nw70fb6VUZKcfNPpEwL_KF18IvCp544E1ZpT0_4Ig1-vXsp79bPh_byHQF08xDaY_uqiQS4FqKwidGUGPTBgsQ5BNwt1w5VTDQrkCZWiRSqjAYszQW-FBndCH1_UbmZJxV-66Jt1iukIx55htLXcD0OLJO2iyxHfGnA2bD-xbkRAZOe49ndULVvztgGemSSlDYlkMN5iGuEnovLN-BwZtv3S5rmdyRlTT4mz_fsCulg3ED34BGJfuqY9c9qZTSoj1986MJt1iukIx55gZaHjvESyYlDkcxdXzETEs3KJekBwZTPsg4LR6pI3VQXtxMxhDeAsZC4QG2K-08P0m3WK6QjHnmC-Pn5_p2KU-70KG4cfygnwVRIZ4SScKAPKAcDjdhvtEq7dEHJebCrs4rlwQmX05elbtjsVLhM0YyCPvwpFJ5CHAkr_HN4_jiNEegdN0iiZnKnnjgTVmlPT_giDX69eynhaC0bWxT8uwzrJO5SrITsFoYte7gGN0uZ2KJNexdDwtKr4UqD_DVAkgbXawXQb-FYUJuQkKN7XZICPL7ldZTD-5DI1_xBitBTLPQ65t9LnWRKKI_q3gP31N4Ts9hYfXvBtqbuIhilYEtiESpNcRjYBJXewDr3s6t3OMRK5PQ5r9phKPU17ZFDuMWVr9Sr_JPflh-uThvXd7g38G4PXVbgVIja1S7YfM-5FtiP_Xw8Oh6621S16u8YtFfnTpdDoOBlGhWjjt2GMKAJ18MjZjF8htPI4hqH11mioFMGQbZGLHO1eX5uyCYmTOlupR7HsoQPUaLNQ8Vc6-HMOX3kjtLOdyduNNRLK8qbLLOyzmeI3N3nvi3QaszWBZPyGIYLZIDEn_AGq_WMzEbdTLPcie-jQRmzMph4Nt0jSnd2zG9fHkuBJkrzqzGhv25PfTUFgsdF-dFsMvuZhDQkiGDHwSP7CV6TPbFlIYHWkVEGyvZ6jZ5Sas-dRjnl2OeBQzpY39QlKdCDBAVN1GjhO3ahLEHkZCw7HTO_M6EaRMcbpoBxRJFUSGeEknCgDKMOnS3J3c1eFq-RWQAeuw4KjLBSTBWu9U0wU6-qlFtDaAHJ9sElaXSoRIUaDft-poLk-5vrRl1SLeB4lcT2OxxfBq3WIFjxCT_8TF10xzIeowAhw_iIc75mDAGOoU668vh-N-A2cT_K63wvFlwPYy-YOvqUFIbOgPGZe_3qRMSrbApjqYkl_feTdJ5ixvwggR_3GrYMV_pTim_oPGnL8DAQROSeDIQQIERj-jRmSXh-Ps-nN9nXvvDX9phR-Xef8Z4wqMy3KfCmpHw9UwVxdPhz9p-8EGeQse9c2SXTe8wSE6r3roRAC7qr1fIE--uqjVLApVIE7oFVfaDOVYbFLE0i7NJCDZFR67TyDqvqusXhH_catgxX-l7XYUlACiRyL2tyHMper5N0KrRR5SrPrPIWgvAi8M6CgiQQkHXziEfwEETkngyEECGjlQgBCZ7fT5PNjjSkQlSqNznOHAGXad9-lryPlZ8X-SVa-5qtv6wglGH8aqhxlXdNNqoNeGKdqF255_DkXuMBsRjWeX0LyAggnyeLd90px2bXhdlhWC-G0VjOgB64RS8Pge20A12SZ9JMc_43U8rY8zg8tKjyzpW9mDyufDj2cmuAEKaW_IlCbdYrpCMeeYMwEQBv_nEWLVSlsm4BJtKCa98Ffqu8DNjyGazxAoeqxTo3j2R9eCTMQDvIMZRgNLqp00CvYbIjpf4HoGKEdurkTLLk9c8qHEwhrI6IBZHQaPIZrPECh6rEd8LafjXRVM_uaWFTbPjkYwvIsM5OTlSKakokWRGg1rqGdb_R720pCPIZrPECh6rHA7dguWby6i8Pge20A12SZb2YPK58OPZ8szr1kWrmFrJt1iukIx55jmQwIlLmpi19LAiymw30_zY9yMMQNompMUuTAz3iNNz3hV7tS0E6_T38jDGLH3gK6KfBmXudor8_EoX64FzdEwm80gLM78tF-VH66MBeX-tnA7dguWby6i8Pge20A12SZb2YPK58OPZ7PoqG9bIZWVjCn41qJczEFb2YPK58OPZ-uWxoY7qVwKt4DJSWgk5emrvDAb2Z2W4S5MyhPpbdkkZt01QSDMscYwmDHn4f997PD4HttANdkmwdnu11sjq8QHh5xizr12cibdYrpCMeeYiN1NplPrputb2YPK58OPZwQ6IdlYzBR6TBcOSD7QJ0nGP7Z9j4HKDnssYdnhjr1Rm80gLM78tF_dyS2qprm1FPpSrqsWozPmUq3R1m8EIwRwK2_zAMo-uYJGpUc624ju-TJ28Bf0eUTOaQqwtEZvGBOPMXsJtiFLuVSEIhanyay5rl0u-jauMvAG-v5l7pNMfpwW4z4-QQV8na_C818mRN09QISX5ISfLTjPL4dCvYuJAbm5rJ8Rs-_Ee1Qnty6eHLGGmog3PEz988_lYNb9IPD4HttANdkmW9mDyufDj2cY29C9ThQs3_7mlhU2z45GMLyLDOTk5UimpKJFkRoNa6hnW_0e9tKQjyGazxAoeqx1cn_BcmmhRibdYrpCMeeYqfcphKnJvDWPIZrPECh6rInx__Yu9BJVJt1iukIx55iI3U2mU-um61vZg8rnw49nFv9wLAEzO9nw-B7bQDXZJnZIKUkiTlpzGHMF6lwmsQEOhtoCC6nVke8WaN5SaoDYkehueV_nFc0t7bnoLc3dgwv0I1gQqbDaqP5Cb9fwAruH3KfRGuHBD4Io57NTy8DpUravW6QiAciQ5L688AnKW5kaqfx3_LfXfonWxcL1pp-YzIsI-01X9JROlQBnBE_ph-N61is_ldV2wSUjDHnSrE7jUKEhCOvLXCyLy9FkdirstDvGp0QBhX--ZnndHWhd-P9aIi_H6vxf3PzeksVtkZWbpJlomTJUikOU6h4XR-FV3drmou7ZBPFd3fHOW_rjdfeSyCsBC76Ud6nIK5AGE7vFpzFkonWhZLXwWtLzLgu2fmqrSeCAfyT_iwJvTcDnHRWc0Uvs2ebJeR3B7HyCtI8hms8QKHqs0d9BCmiUSw7jTBTaDYYGKp1k3cbivSydNZYUA49hiyxKGcayk_WnGYx-yv_Q0oRYZfsZbl0ICxuwsF_GXEmn7FH5tG-YRDIKgiE6IAzeORutONxd4PpNuAHNidoXZIrbRBVqBTkcDU_RhYLPwqPum6P-X6r7QmRMT7JgFISiW1eIXIzT7gDGj_Kyp9mAnEX25pUGcD2W5TxP2AOyyAaFyQ58n46-OqAUyxmooyvrNvmsOxVAmLaXGLAn_MPYi0f5Ui-GekEMdxe5UUBdq8rx14v3En0ArUD8hU0iZOASho3wq7a7hA3XJ0qHjvXD103p7_uJCYCERlHXGaINanl195kKZMlKpBGYSoeO9cPXTengKN6u-qqiJXjm7CC9xZ7FpYuawCWMucT81FBIFf6o7IPmojULgdXjavQBv5haVQE0fNzC884OwMV_I7E5vCz3Fv5wK3vhqJd-EMyEfonoQ3XnzAvAaq3oTEL5eU066iX5PNjjSkQlStcZog1qeXX3-CGNlFiKOFpKkvyT_0wi5gEETkngyEECzhqS3Qao2vRwSGWzuBHynUqHjvXD103piqvYdfRnh7cBrUnza3Pf0_v3K4vcnh_YcQWq_a1tFiPCMbFIHilgkrY7CDPcV4_1aJKXAUWGJ9sg8HItbgZHci2NDnVGmMb6YCmtN5R3OILriKSsxJq6M5t3R8SQCXasMRyOSdHW21i49wopgGsfEMNPTu7lNnilcEylv9U1GBHpibkswXygy3k1TY06vEJIP6d6PwK4U5Q-2tt2wnqhVlTl5NetMSiltYJ2zhYj2MY4hXuE0OwZRap88cjOq1_RzXSVJzSlc1iaX5XGb0GPwYWBdQhbuZjXgHCfgdewGyDcdCZ550MCpuFbRelYt3nvZ3JGVNPibP9-wK6WDcQPfhqWzdPVruWlh-N61is_ldV8acWx8Xu-TH1BLswcMnqzIG12sF0G_hUghdMqy0OC7gMNB1Y9dNV-eTVNjTq8QkhyFpWM-uD7dShW3vp9Ua435biUOxfP0jo_B4Td0eJlEC_xNeojEpJk7DwFbQLhjm5MFw5IPtAnSdHmjkrvbx4VjqtPtXUGy9JvpVRkpx80-rItYaB11HspIG12sF0G_hUghdMqy0OC7nmv8RcJ6-8KGXMEBhwZBO4ZwcdkbjmtSA8_1HAPTwUWz5rrLGSvRBNr5hy6zYRVyeLQTDjmC9q32HNn6O1ou3mPIZrPECh6rP4e4V1atekc-br77Yl9002PIZrPECh6rNqOGQWP-oPvj2b17fHZetuOR4RlVwhng9Bb4UGd0IfXFXE0nWVUXrbmf2UURXo6mtdzRWoE7PaXeKPNNsGJjQxvpVRkpx80-iN0sZD9J3qMv6jkmQZfWmercEAIfipKrnC1KOgzz6bVESg03mE6kRZpZem5tOKOVEqy4n7DD7hF-nakwVa-hjjjzo6d9_PfawR6i9KR8ao9_IvqChsxQFJlavD6cvWndFvZg8rnw49nKNHxJZggACxI4uz5M0NyiRVEhnhJJwoA8oBwON2G-0QzJsDnaBxigW670rKL-i4EIIXTKstDgu7Zzv-yIjq0H2dyRlTT4mz_fsCulg3ED34als3T1a7lpYfjetYrP5XVfGnFsfF7vkzxmajFKPgnScB7wN3RmSwaIDb7KkT9q97iHSbkSnFyiHwW8VD80zTHwHvA3dGZLBqPZvXt8dl6245HhGVXCGeDJrT16705JSzGdx17w7q1-RMVCBZzOd4NjyGazxAoeqy7fnRGVwRSBybdYrpCMeeYfmQDPXm2ibA_HkbBlF6BNr97_fkge1CQjtF2a11Ne_gIyEGUql9eIgQ_kMzTnV8_sWsH3yZEocpWr1EZ_LEzUHuUrLp3FhZg-MbNJwLTLX65ylYqrsw9aqFdw7PXBM3u7ldQpx290Jse6gwOG3oSM_hzWgY0AIcODDhAJ7IBAeGTv77jBN6NjSUVkv0vcxW1Qt9z7h-VLXaF8HfPRcs_HhWa_v4TY2Uu8bOPO4J2Zbsoc5YU8IgFMvXlhUGyfAKPPEOxlTL0vAbU_XVWf7eWqx2pT7TePllpk-u76US10Hi5SJXXmINI9MFOt32hTEvA_FMJh8UA72MUtwef710DjhlzBAYcGQTuwXSI1r-VV6trHJpYkJxsIjdw2ye0U6rNEpD01oPVkKFhuDIREPSSQpAS-wE1aOfMnZOB1vdDBYHzNAnnICgDZ2MzZdnOg8os3jEqVihP-5Wk6oWzxADoOFcXWdWD6Pzexn7P87v1wKT5SRg9SaxAm1llUn8ngq558Ci3DZ7KMkle1ZsDZb1RU0qHjvXD103pAB3wO-_dLVwR_3GrYMV_peuJsImScahEn0YJs42TGdBQ-Ukdwi-FYu-4T7_h0zwE3EAEEB4dGsX82n5uX54c_KYCloxsTIjIi7HViqu6JJJy3__7FoJ4I4l-hvLuFhLnqr1fIE--uqjVLApVIE7oFYu-m7k3Viqw3l0yuwYzjjLMq7mqXJ-6IvS3_mxboxUD5bStT0LsBKJMfegnNB3dSF9HoFnonBenKtUUt09oHnf1wpkPB91qE_k82ONKRCVKo3Oc4cAZdp336WvI-Vnxf7jTO1OICD8_k7HWaggxbnzvxHtUJ7cunrS3lw6HBEBSESAfNlj89Pg78P3xfOgjdRDOkSL9sa7MklWvuarb-sKpjEB4FtkpI0fqUC5B2abtfuHByfa26k16fH3-HalUHcwUUcA6XWzY9xceTQHIo2otjQ51RpjG-mAprTeUdziC64ikrMSaujObd0fEkAl2rDEcjknR1ttYuPcKKYBrHxDDT07u5TZ4pXBMpb_VNRgR6Ym5LMF8oMt5NU2NOrxCSD-nej8CuFOUPtrbdsJ6oVZU5eTXrTEopbWCds4WI9jGOIV7hNDsGUWqfPHIzqtf0c10lSc0pXNYml-Vxm9Bj8GFgXUIW7mY14Bwn4HXsBsg3HQmeedDAqbhW0XpWLd572dyRlTT4mz_fsCulg3ED34als3T1a7lpYfjetYrP5XVfGnFsfF7vkx9QS7MHDJ6syBtdrBdBv4VIIXTKstDgu4DDQdWPXTVfnk1TY06vEJIchaVjPrg-3UoVt76fVGuN-W4lDsXz9I6PweE3dHiZRAv8TXqIxKSZOw8BW0C4Y5uTBcOSD7QJ0nR5o5K728eFY6rT7V1BsvSb6VUZKcfNPqyLWGgddR7KSBtdrBdBv4VIIXTKstDgu55r_EXCevvChlzBAYcGQTuGcHHZG45rUgPP9RwD08FFs-a6yxkr0QTa-Ycus2EVcni0Ew45gvat9hzZ-jtaLt5jyGazxAoeqz-HuFdWrXpHPm6--2JfdNNjyGazxAoeqzajhkFj_qD749m9e3x2XrbjkeEZVcIZ4PQW-FBndCH1xVxNJ1lVF625n9lFEV6OprXc0VqBOz2l3ijzTbBiY0Mb6VUZKcfNPojdLGQ_Sd6jL-o5JkGX1pnq3BACH4qSq5wtSjoM8-m1REoNN5hOpEWCxemSKuD61CfAHr3ccjbgigSTkE9urxA8ZmoxSj4J0mYtFFAKtCmCo4E0HjIGYZhXQlC8Y6NMXrkjb05aleoz4fjetYrP5XVfGnFsfF7vkxt6nzOeUmlgibdYrpCMeeYtWb5N6C-CaavE1bjlWyHCPyL6gobMUBSZWrw-nL1p3SxqYU9yzWq3pQ8x0GRjJEtW9mDyufDj2d8IdXcar97WKp88cjOq1_RS_VVcQMYpHtb2YPK58OPZ88px6LPt_k-qnzxyM6rX9G2y9UthP_zQbVm-TegvgmmLTZb9hufMXQm3WK6QjHnmO9-bFKdFBVQFoLRtbFPy7DiJwijzRxOXqtwQAh-KkqukSAmD1dP0Q6q5FMfUX7WgBDRBnc4PnTyFf4qWCDiKaowfRYm4XjvZ8jqx__PMsvPDQVq5MuLvuH2NmhEePQ7-tBI_AHWy4GTgdiat1nMoypX5W3eyXVeXMyAkbrkFcqeEHs5Axrrx5CsmG_GTUKJ0mVq8Ppy9ad0Ttl0jur-fd_1bQ5aiE5Re-daa3ZELe4u6c_c8DiedBiYJXaRngbKGOou9pbMqw-OryM43_8VWtMI38DiuirHkgCdfDI2YxfIbTyOIah9dZoqBTBkG2RixztXl-bsgmJkzpbqUex7KED1GizUPFXOvhzDl95I7SzncnbjTUSyvKmyyzss5niNzd574t0GrM1gWT8hiGC2SAxJ_wBqv1jMxG3Uyz3Invo0EZszKYeDbdI0p3dsxvXx5LgSZK86sxob9uT301BYLHRfnRbDL7mYQ0JIhgx8Ej-wlekz2xZSGB1pFRBsr2eo2eUmrPnUY55djngUM6WN_UJSnQgwQFTdRo4Tt2oSxB5GY-rsYX6LX10qVcGXi4qnO8mHIMLescc3BoBKmAfcXM8mkwum4MPz0vk82ONKRCVKXOKnqARN8AHeXTK7BjOOMjumIyOdMvUSroyV3Dtc9DBFVTMLz8h-l25CHkqohaZuYDxupg0vMQ_P_nmWuVNeWbC5gVedQVz3HFiqEZPnWRcpOBVZSH09g4BArmoMi0STFTfEgyLjGsWhtWR3e6A_9fgM47z9AIJmKOFwCYLGoUoKsVPzIUaG4k91Bq-HSyvR1Qs4TpQuAsbBn_BBgDvtpxyZqpp9xbnKLut_GWy0pHxQ-Ukdwi-FYn1_mmycLgA1yjMpaZtGkipKh471w9dN6Tp6kZ_igNvE6jACHD-IhztBiY81IK0f2Pzafm5fnhz8DbDIfb7tRizLcYtnS-PKkk0kon_oUo4wNKWEmH1o6aLQpqRGI6_w5k2e7H7JOQS3WURWJhGTRcDfsv-fPCJY8WscCa8QzDqAgoQ6ZXH6-rLTicwadfO2Y4VEAsWiSiwfU4NysxJjWu7FinwTpYHTSky73xU-LB1GKa3c3UI4Rysr-6y6-iFLXTg1LEH-vr4nCqMBgZp6Ne7zsKkWEMTxe5U4SeEWLjTfTsCSGfy61ts7A1uR1m-OuBycDM3trtd8FOQXK_O630gVIWiq_2l-BD6WrbnRMyilT7AmvSToMLI14j-vaeuuq8gzzrCUUse18puQ3lwMJvh4a1cZ53XC2SbdYrpCMeeYbhJinydPDHFefKdGfZqTQe1eqrXi3-DXlIbU-ovRxMeqxAQf5l3_rKyP-TXzGUPX7MQoJyn989-MWVr9Sr_JPZfqSGBnr-Yw78R7VCe3Lp4csYaaiDc8TAnl-7FQlaq7TsCSGfy61tvzHw_ZUO1-Si6SPEKc4KZ0PpatudEzKKUbS1M0YOXfbIQ074VssJTfjxEt-fXrtZxPJpRV8bEnSzAHrmlWJXjTF7uRVYY-u5om3WK6QjHnmIg5ASVQvng-0J-kBsiv5nhb2YPK58OPZ9E7F5qIWpBJTsCSGfy61tvzHw_ZUO1-Speax74Ari3CJt1iukIx55jzHw_ZUO1-SkoShj6cWwMnDy6qxmYnyfD_CrZcIz2QuiZf_d6hiTA-s08S5WTntQndyS2qprm1FH6n7PGQ6dOp26JMYDzuKojdyS2qprm1FEm0lBtQdDNMXdszIDM4oms9OFFNpyDVTaRbTA40f9H_m7lWOz0-Gn12ASYLWRqLqpL4NLuqPOzO0J-kBsiv5nhb2YPK58OPZwQ6IdlYzBR6FFcZl1t7VNbvFmjeUmqA2IbRY-x4u4drhRBaPTMdDl9OqlLVExGrLLmuXS76Nq4y8Ab6_mXuk0x-nBbjPj5BBXydr8LzXyZE3T1AhJfkhJ8tOM8vh0K9i4kBubmsnxGz78R7VCe3Lp4csYaaiDc8TP3zz-Vg1v0g8Pge20A12SZb2YPK58OPZxjb0L1OFCzf_uaWFTbPjkYwvIsM5OTlSKakokWRGg1rqGdb_R720pCPIZrPECh6rHVyf8FyaaFGJt1iukIx55ip9ymEqcm8NY8hms8QKHqsifH_9i70ElUm3WK6QjHnmIjdTaZT66brW9mDyufDj2cW_3AsATM72fD4HttANdkmdnXkcb0UtQQYcwXqXCaxAQ6G2gILqdWR7xZo3lJqgNjrSC9lKHu0wG-I84EkHqg1aFIRP9pgxOdYyBPiDNdSoq7XUtEmGXxyMs9Drm30udZEooj-reA_fU3hOz2Fh9e8G2pu4iGKVgS2IRKk1xGNgEld7AOvezq3c4xErk9Dmv2mEo9TXtkUO4xZWv1Kv8k9-WH65OG9d3uDfwbg9dVuBUiNrVLth8z7kW2I_9fDw6F7fxS1uCW1KbruN4TeKMMBzJbGIwPnmaTqtgrAPGpJCCjnt3lylIsLCVazN8q2VJruDIjxByh08N5Bh0xNPa56s1sn8klKMeQG21RQgazbp-f0LZ5xyHXg3kGHTE09rnqsPGKpVwysp19OgDclh6xQE8mEBCwZ_EB5IFRKE9o89-9QDwpYvq3ykRdWlmG3dZ-zcoGUgEaE_o8HwaaeqOmEI7CsunIuWPoBNUkpLj_QgD5x83I9AvcOIFrMWBhjIJtrD69HyMaWzNZ5nsmw0d8p93FSfKHucyTUVdjHYm5SedoaLwCFhHTJ_Vw4FQAgp0wEnzoPfDXMR1Bif2a93xmqmzeRgk47zsfkYB6Di79YOghsHxwkj1g5dZItXvBL6asFIt9FpCp1kVUfEfh8gESSnQiMPJS2o71gRbsMJadmxhZr50uehzyEAJ18MjZjF8htPI4hqH11mioFMGQbZGLHO1eX5uyCYmQaRdX8XVVndNwqJdkVdL21KvJogyIxn9HXvrHT7jHOwLXLZ35NT3mJ-WBYN_SJSaHZm1UcaOmKpV7ez6ejQtYUnYok17F0PC0wklgd8QP0DHM3uyoe6JJkS6NN4c4LK2Je3s-no0LWFFvZg8rnw49nvcVmaQg2fgF9CpKqPHfV8cZ3HXvDurX5XSP8g5kblK3vkCAhmGOhCZtxBaxWzpOaSi565f-Pc01m87aAJKxlSn1AwJFdy0T-8Ab6_mXuk0x-nBbjPj5BBXydr8LzXyZEqSBx9u4KlMEgZ0SgYVU8bUujTeHOCytixAO8gxlGA0tb2YPK58OPZzcA1b_mG1mqJt1iukIx55juvZ_4Xm5Gaqh1otyqQHp8Sv6_oA8Vyf8w6dPBzr1sa73RD-1szTX9OwNbkdZvjrgcnAzN7a7XfAYVCWnn6Rj_G1ykEmsvvCUmuAEKaW_IlGuixVlUdpPiRrb7IZP5Q1CxVkeipiYi9DJWXwvZe1DFPdid1Kgj_WnN_8oJbvwVfqpLHZ-UJ01VJ-NnrzHkbexv_HWhlbtcdG4SYp8nTwxxXnynRn2ak0HtXqq14t_g15SG1PqL0cTHowv4f-4vNA8Z_m9OvIh0JLdfjPNeF3vXvdEP7WzNNf1-nBbjPj5BBZozry60-pzsB-367GWqL5nN_8oJbvwVfrxzbEBysZ9cmqdIz1XBzye90Q_tbM01_e55IjlPsKOKSvxpYOV_mam77ka6vK8pxKlg3s8dqKfW8YGEPVte6ryG5o9sMEXUAs2fU9e9sI-p-CUL1ZKWS8C-T5NnQsII7jdw2ye0U6rNgBPwIsRoLD8oVt76fVGuN-W4lDsXz9I6PweE3dHiZRDJ411zFtZeUpQWmIfScoSxPZYHc5bxJ_e9PDRY453ns1OSo7kQ8d0hbqnd4dSUFoSsiXzaAzTCcc3_yglu_BV-F7uRVYY-u5pca-WgA_1wjVDHCIuAMdJWQGe9v9ev6OAYB73-NMM9pGlnVf7_xOnivTw0WOOd57ORy_igaknqHc2fU9e9sI-pMb7eFBGLksdrosVZVHaT4us71e2gXITwa-Ycus2EVcni0Ew45gvat9hzZ-jtaLt5zZ9T172wj6kD7Kiu-HyU0WuixVlUdpPi-iuYtwsjIWkFAN55KMOSlxgHvf40wz2kY0oAPNWt6XU3cNsntFOqzWW3fefr4TCV4KQ2REoYUe0YB73-NMM9pCN0sZD9J3qMvMD6ITC9gxVv_HWhlbtcdDcBY5qgLnqqDgYuSYNEUbisiXzaAzTCcc3_yglu_BV-0FvhQZ3Qh9f1G5mScVfuumuixVlUdpPiEIEhD_lI7mFwtSjoM8-m1REoNN5hOpEWLLJAIjz1fJ7ccXSc7vvK4Kk73nFN_TLt5vcmQaPKIrMoG3Rs-AeQDPKyp9mAnEX2retHA03x_4KWpxmkRzFrQnj9UsWGEI7vf4zS7bNFLkNqR5NBn5kxUmdyRlTT4mz_oyJSO-1dT6uOyaxOG4rF4bGgkQ0GbIG_xgAdzHPQwP8F50leSAtplss-9R0bEj7ug6phRgYm7HXFi08t6-MUW131DIp7ygLNeTVNjTq8QkgcvNGd3xNbWU51LHBTRCkHLXDSUDQYbfjwKQpWxEoYjGnb_RQl3DqyC6P0UnTzEJwm3WK6QjHnmMKK53cqMcdXmjOvLrT6nOwzqAw34iF0YSyt_iwp4YlTW9mDyufDj2dG41-APIm3IybdYrpCMeeYtWb5N6C-CaZfDjUxKhhd-ap88cjOq1_RDR_VQyV6eIG2SM6lBtr9GSM4X5zEMG6ydbqNMMZVchm8I0f0-w3Njj2WB3OW8Sf38Pge20A12SZ9Wtmpi8yDpG6p3eHUlBaEIRDaDJvy-Eaid4KPzlpT9r-o5JkGX1pnq3BACH4qSq6PIZrPECh6rD_w0imdqk3hIesuhjX6kWBQ-0HdG_N3TF88yX21_AxOlXQkZPTuhTXdyS2qprm1FLC6WrfjEakl0eGvB1D_EQTh1sTqHSxoAh7uLtVoF5LLJt1iukIx55giN8Te2ncYoleUD2-sWClKsLpat-MRqSW2y9UthP_zQbVm-TegvgmmI3SxkP0neoxX0I4UB5dYXycqxldMmtHUkSeREaju3EcA63HMDLGiXtBb4UGd0IfX9RuZknFX7rom3WK6QjHnmLaQR0G6cGDFjyGazxAoeqy7ll7zfPRu6YB0ZzEGnn8qpL_6j4BqotbMP4J3b_vezTRbLi_I5BbuEi42bSg9oqEm3WK6QjHnmC-Pn5_p2KU-yuE5RfnEFseB6u-dZNf0040p2iNluKWg_KOoocFxJMLjtvB65-J2T096SZe4YsLPR_zCNqXHYxFm87aAJKxlShhzBepcJrEBlL3ks5tTBHBLkPYBxZjArplduP_Aechr9Lt6hmiHYfuPIZrPECh6rCyVup5906HB8Pge20A12SYoLgV5GEgLIY8hms8QKHqspjUWXspQfabw-B7bQDXZJhnduwtujwqiXeKyTpWq19VMFw5IPtAnSUjYeBR3gCcPl5dHvhbEvTpMHdO4psp_g0p1pvDl7UrPKHdqv8pqrqQCSBOQzG9xvXnycMz2AHYvZOaliHNRksWkZFDfsDBw4KuTEcH6F_3ETLm628B6euoGWENM6JfmK5J_bC-9X95LAPrYgRoapYlOpZSSDT4B9vpt5EUL1rLASUmDa7aNuEMua4IK4qIsgI2bfMiQPKngYHyz1LMA24Nq91DOGwBuUxlGppdZQ6xmKJ3iQ9Besg38gACmElbYTs3pb3FezUfTYd3PFRK0KNhLVZYlRQWZ1sUJZneJefaxkZJrxcYGmt1vj5RXC7z1w7OZzlrm_nYLY0yPtQQTe_9sixQ6pihwDDg1LEH-vr4nCqMBgZp6Ne51sdtVVEdb2DeK6f5IF-q6JRr32ULCRWQVIWiq_2l-BD6WrbnRMyilfjnvN_BkJ2w5kgyhtyyP9ZX3ta1q0ambDmQD0UZRy9d4Ve7UtBOv03hrVxnndcLZJt1iukIx55ieOE8tneVdk1A1yoIYnfCEXgVZvFMcR3YwVQz_6lbhd9WU_fU_l17SrI_5NfMZQ9fsxCgnKf3z3-91Qs3vgTMl2c8u900mSmZ4zB9olAQ8s05TfKNcU8H03vbF7QU7c0Z9QS7MHDJ6syBtdrBdBv4VIIXTKstDgu4DDQdWPXTVfnk1TY06vEJIS8uHDJ679Vl11v0lnA-lrA9KIk_hawTY7nFA3P0bbOfPMdASxKv7pew8BW0C4Y5uTBcOSD7QJ0klPCDscWTxRu7ukl-S6sTklSPYF9waL2yPIZrPECh6rHdSi0VCvHn0Jt1iukIx55i1Zvk3oL4JpuDRrQOa8USpKLsLX6QejJDzIyY95HXjqLPoqG9bIZWVjCn41qJczEFb2YPK58OPZ-uWxoY7qVwK7IR5dsEVcYegwwT-mLGVMY8hms8QKHqs_h7hXVq16RxKjaai5dgpiI8hms8QKHqs2o4ZBY_6g--PZvXt8dl6245HhGVXCGeD0FvhQZ3Qh9cVcTSdZVRetuZ_ZRRFejqaDp_3ZWO-wsaqsZA1gBQ8SP1s-H9vIdAXlgwU6VvqQwQgbXawXQb-FSEe7Lj6wNHi3mWtKF5e8u6RGjD_Vx4VLTnJYmlZ5Rg4OLfR4I72sjJPKm7hq5wqT_OxwOSFLXQVnwB693HI24IoEk5BPbq8QPGZqMUo-CdJmLRRQCrQpgqOBNB4yBmGYV0JQvGOjTF6xVC5VUI2Fb1KSbOPfudgj48hms8QKHqs9Y101lq8UpAA63HMDLGiXl3isk6VqtfVHMeuj0PRXpKrcEAIfipKrsjT5wbQDOLR0BY9NxShrc92VepaIhmAFpNZyWtFHwgMqnzxyM6rX9G2y9UthP_zQbVm-TegvgmmPc_eW6X1_PeqfPHIzqtf0Uv1VXEDGKR7W9mDyufDj2cY29C9ThQs3_7mlhU2z45G8jtq1esnEaIgmpaRHalDXGT8GNAbAtlOhxgB3I-aztUUUkw6Jr1S_AXX3-flXiNQQVQuWfMozWQMRTgorYv2W2PpLIqTyDcpEwN1-mN54JGOF96XuG0Q2EiQgcVT98e5xNWG6rsBECUcgBHwMuHZja8GHrt0fIYrwDjZmwE6OTBf500bHJCEon5qu_Y_kSm2QJ5ExQWklC7wadfmAJ5xHA3v4gWSDfLgUmX9w8FXMoPWNh6tL6uKLx-YK7ecqYSTq9kFaqLlI0m0PnQHWfU759372a9NGiNFc_7Ukv8uk0I6zI3fnKV2PAykDioSVapKsVEfppdvwPcollC8AbqzOxYWRE65yIXDmhP4cs8bZKdQBja6ZI6aXK9lcMM9AWiq_gpRtk9SVykVTVK4u9-iSCF9xoOk8A9x8rKn2YCcRfYbEY1nl9C8gJ3YOryDZBslhUelEMtOG8PXI5M56UdQVlvZg8rnw49nJrgBCmlvyJQm3WK6QjHnmLlPH6eY85Y2kTXmJ3lF4Eilj4bMUPJ9tYtesTWWqD2ojyGazxAoeqxTo3j2R9eCTFbRqpCa-yRHjPQ65ul2X9fERm_z5G7VhwhvhPDM3UKHytUEzG4vyDOPIZrPECh6rEd8LafjXRVM_uaWFTbPjkbyO2rV6ycRoiCalpEdqUNcG2_fec561YY4H7dnjKJoSVvZg8rnw49nRuNfgDyJtyMm3WK6QjHnmLVm-TegvgmmXw41MSoYXfmqfPHIzqtf0Q0f1UMleniBtkjOpQba_RkjOF-cxDBusnW6jTDGVXIZvCNH9PsNzY49lgdzlvEn9_D4HttANdkmfVrZqYvMg6Ruqd3h1JQWhCEQ2gyb8vhGoneCj85aU_a_qOSZBl9aZ6twQAh-KkqujyGazxAoeqw_8NIpnapN4SHrLoY1-pFgUPtB3Rvzd0xfPMl9tfwMTpV0JGT07oU13cktqqa5tRSwulq34xGpJdHhrwdQ_xEE4dbE6h0saAIe7i7VaBeSyybdYrpCMeeYIjfE3tp3GKJXlA9vrFgpSrC6WrfjEakltsvVLYT_80G1Zvk3oL4JpiN0sZD9J3qMV9COFAeXWF8nKsZXTJrR1JEnkRGo7txHAOtxzAyxol7QW-FBndCH1_UbmZJxV-66Jt1iukIx55i2kEdBunBgxY8hms8QKHqsu5Ze83z0bumAdGcxBp5_KqS_-o-AaqLWzD-Cd2_73s00Wy4vyOQW7hIuNm0oPaKhJt1iukIx55gvj5-f6dilPsrhOUX5xBbHgervnWTX9NONKdojZbiloPyjqKHBcSTC47bweufidk9PekmXuGLCz0f8wjalx2MRZvO2gCSsZUqrt0Qcl5sKuzfio4kwuCNqmcZXQkQNpWrWiZubej67v9nO_7IiOrQfZ3JGVNPibP9WtSoyCx6b9sINQq0Bdr5jkdkomVLG9y__wGRM7Nacb5ZIOC5ymuKxbCuy7yHHEtpSrdHWbwQjBHArb_MAyj65Ce9IPOs9EkEyPKbnHpdXeieSBcgbe_VTjyGazxAoeqwslbqefdOhwfD4HttANdkmKC4FeRhICyF_OV58XQd2sp8KL3tIdpj_kCOgCkllGAHkCHmU98n8tlkty283edcyRTA8a8blMKTRV4e0ZVzkqtbZpe_BYaFDIDYyVVtGGZc8EnU4tNCvu5MBiuMo1wtf9m_FJ4rPjsQC-qNLBKIKciyOAOIJy_dBqaW6i4Gptr1PbKfnDxQtf16bPh1U1BsTrxFa3Slkrc2uWlt30LYUiDJnwc9qYzM5zibvLNU6vhpdTmjA3_bq5ixus1yp5-zjQOaMtCOKWpE0EhuxHPk1OIRVIjw3GELxUVKDscAsZdXgtDa0qREw5Ve_RC6rW2fP9MVGGegm0GYEuBli0h5_hajrhVNGNYR2BSBRFZ-D-joQaNtKdLAalc9TxAMTikAcbKjP6dT91XYbf8GvccMxpCinVQ_DZHldXgU31CsZZE7dI8xP0M0oIARSHpMtmyrjobjpQJY-UOkd1DuuWVEGVsfIrjDhV9QJ4bJg60qLMad6-CDnHdhsFm-u01e6DxtBQfTVL-lhUw4hJibShrhSbSbBQG-HCg5LUk8gj40UcAZmeBOkAcoqaYYqRtQTsRsaQVXQl4fsifBzzF3SNW1DLX3WMe9Ube3TF2geQNNeYy6p_BoZhk4rtI4OtEquPzfNqXOh2ihZg3w=

1.4.2 编译

1.4.3 终端调用

1
2
java -jar unidbg-0.9.7.jar shihuo

1.4.4 python调用

1
2
3
4
5
import subprocess
body = "shihuo"
cmd = f'java -jar unidbg-0.9.7.jar "{body}"'
signature = subprocess.check_output(cmd, shell=True, cwd="unidbg_0_9_7_jar")
print("加密结果为:",signature)

二 小红书案例

2.1 目标

1
2
3
4
5
6
7
8
9
10
11
12
13
#1 小红书 shield 字段
#2 版本:v6.73.0

#3 注意:我们只是以小红书 请求头中 shield 为例研究unidbg,小红书后台风控很严格

#4 今日知识点:
1 jadx搜索不到有价值的代码,c层实现
2 延迟hook
3 unidbg补环境--通过hook得到值,补进环境
4 okhttp3的拦截器,Request对象研究



image-20240517190850102

2.2 抓包

1
2
3
# 1 发送短信接口 
# 2 验证短信验证码 get请求,数据少,相比较而言容易搞 api/sn
# 3 短信登录接口

2.3 反编译搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 1 搜索不到 有价值的内容
shield

# 2 我们猜测是 so 层生成,可以hook NewStringUTF 方法,该方法用于讲C中的字符串转换为jstring,再返回给Java
java层 jni层 c层
String jstring 字符/字节数组
c层生成了字符数组(字节数组),通过NewStringUTF方法返回给java层
java层拿到c层生成的字符串,发送网络请求(okhttp3)


# 3 我们通过hook-NewStringUTF打印出数据后,发现有跟 shield 长一样的,就可以确定,确实是so层生成,但是无法确定是哪个so文件生成的
我们可以输出调用栈信息---》


# 4 hook--NewStringUTF的代码是固定的


# 5 hook到
so文件是:libshield.so
java类是:com.xingin.shield.http.XhsHttpInterceptor

# 6 jadx中搜索类:com.xingin.shield.http.XhsHttpInterceptor中方法intercept
public class XhsHttpInterceptor implements Interceptor {
# okhttp3的拦截器
public native Response intercept(Interceptor.Chain chain, long j2) throws IOException;
}

image-20240517190900843

2.3.1 hook-NewStringUTF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var symbols = Module.enumerateSymbolsSync("libart.so");
var addrNewStringUTF = null;
for (var i = 0; i < symbols.length; i++) {
var symbol = symbols[i];

if (symbol.name.indexOf("NewStringUTF") >= 0 && symbol.name.indexOf("CheckJNI") < 0) {
addrNewStringUTF = symbol.address;
console.log("NewStringUTF is at ", symbol.address, symbol.name);
break
}
}


if (addrNewStringUTF != null) {
Interceptor.attach(addrNewStringUTF, {
onEnter: function (args) {
var c_string = args[1];
var dataString = c_string.readCString();

if (dataString && dataString.indexOf("XYAAAAAQAAAAEAAAB") != -1) {
console.log(dataString);

console.log(Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join('\n') + '\n');
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));

}
}
});
}

// frida -UF -l 1-hook-NewStringUTF.js


image-20240517190910765

image-20240517190918444

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57


// hook输出的shield
XYAAAAAQAAAAEAAABTAAAAUzUWEe0xG1IbD9/c+qCLOlKGmTtFa+lG43AJf+FXQaoRzIS4nbQ2Sp2qqbJWz8N/2Mt+gKFmRAwYFDSBZ7Kl2Hk00uY7HhiM6YhyxOkBGi3oZ3p4

// 打印出so文件
0xb65149b7 libshield.so!0x109b7
0xb6597fa9 libshield.so!0x93fa9
0xb79086e1 base.odex!0x1c86e1

// 打印出调用栈
java.lang.Throwable
at com.xingin.shield.http.XhsHttpInterceptor.intercept(Native Method)
at com.xingin.shield.http.XhsHttpInterceptor.intercept(XhsHttpInterceptor.java:5)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.g1.j.a.intercept(UserAgentInterceptor.kt:4)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.g1.j.b.intercept(ValueRewriteInterceptor.kt:6)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.e0.b.intercept(ExceptionWithUrlInterceptor.kt:3)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.g1.k.a.intercept(XYFixOkhttpInterceptor.kt:1)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.e0.r0.k.intercept(XhsNetTrackInterceptor.kt:8)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.e0.c0.intercept(XhsSavingResponseInterceptor.kt:1)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.e0.y.intercept(UnicomKingInterceptor.kt:5)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.b0.d.a.intercept(LoginInterceptor.kt:2)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.j.b.intercept(AntiSpamNativeInterceptor.kt:2)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at p.d0.v1.e0.d0.b.intercept(CustomHeadersInterceptor.kt:7)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:10)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:1)
at s.a.j0.e.e.s.b(ObservableDoOnEach.java:1)
at s.a.r.a(Observable.java:153)
at s.a.j0.e.e.a1$b.run(ObservableSubscribeOn.java:1)
at p.d0.g1.i.a.run(SkynetScheduler.kt:4)
at p.d0.q1.i.k.a$b$a.invoke(LightHelper.kt:2)
at p.d0.q1.i.k.a$b$a.invoke(LightHelper.kt:1)
at p.d0.q1.i.k.a$b.run(LightHelper.kt:19)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
at p.d0.q1.i.k.i.d$b.run(LightBaseThreadFactory.kt:2)

2.3.2 回顾 okhttp3的拦截器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

# day10 5.1 拦截器讲解

###1 创建拦截器
# 方式一:拦截器类+实例化对象方式
拦截器1 = new XhsHttpInterceptor()

# 方式二:直接new 并实现Interceptor方法方式
拦截器2 = new Interceptor(){
public Response intercept(Interceptor.Chain chain, long j2) {
...
}
}

### 2 使用拦截器
# 链式调用方式
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
# 普通方式
client = okhttp3.OkHttpClient.Builder();
client.addInterceptor(拦截器1)
client.addInterceptor(拦截器2)
client.addInterceptor(拦截器3)
client.发送请求

### 3 intercept方法具体实现
# 添加多个拦截器,依次执行拦截器的intercept方法
Interceptor interceptor = new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
# 在请求头中加参数
# chain.request() 拿到请求对象 Request对象
Request request = chain.request().newBuilder().addHeader("ctime", "").addHeader("sign", "").build();
# 执行下一个拦截器
Response response = chain.proceed(request);

return response;
}
};


### 4 猜想:生成shield是so生成的,调用 addHeader 在c中调用java 添加进去
chain.request().newBuilder().addHeader("ctime", "").addHeader("sign", "").build()
chain.request().newBuilder().header("ctime", "").build()

2.3.3 OKHttp3的对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# 1  chain对象
-在 jadx中查看源码是接口类型--》是通过接口接受具体类型
-具体类型为:okhttp3.internal.http.RealInterceptorChain
-调用:request() 方法返回 Request对象,就是请求对象

# 2 Request类的对象request
## 2.1有构造方法,有自己的方法,大致如下
public final class Request {
public final RequestBody body;
public volatile CacheControl cacheControl;
public final Headers headers;
public final String method;
public final Map<Class<?>, Object> tags;
public final HttpUrl url;
# Request 内部有个Builder 类--》目的是包裹
#
public static class Builder {
public RequestBody body;
public Headers.Builder headers;
public String method;
public Map<Class<?>, Object> tags;
public HttpUrl url;

public Builder() {
this.tags = Collections.emptyMap();
this.method = "GET";
this.headers = new Headers.Builder();
}

public Builder addHeader(String str, String str2) {
this.headers.add(str, str2);
return this;
}

public Builder header(String str, String str2) {
this.headers.set(str, str2);
return this;
}

...
public Request build() {
if (this.url != null) {
return new Request(this);
}
throw new IllegalStateException("url == null");
}

}

public Request(Builder builder) {
this.url = builder.url;
this.method = builder.method;
this.headers = builder.headers.build();
this.body = builder.body;
this.tags = Util.immutableMap(builder.tags);
}

public String header(String str) {
return this.headers.get(str);
}

public Headers headers() {
return this.headers;
}

public String method() {
return this.method;
}

public HttpUrl url() {
return this.url;
}

public Builder newBuilder() {
return new Builder(this);
}
}

##2.2 因为内部类Builder,我们在实例化得到Request对象时,可以通过如下几种方式

### 方式一:(需要builder对象),builder相当于包裹,里面有request对象的数据,一次性传入,依次再放到request对象中
Request request = new Request(builder对象);

### 方式二:通过Builder构建
builder对象 = new Request.Builder();# 创建空包裹
builder对象.addHeader()# 往包裹里放数据
builder对象.url()
builder对象.removeHeader()
Request obj = new Request(builder对象);# 构建出request对象

### 方式三:开发中常用
Request request = chain.request().newBuilder().addHeader("ts", "1988812212").addHeader("sign", "xxxx").build();
#最终调用build,返回的就是request对象
public Request build() {
if (this.url != null) {
return new Request(this);
}
throw new IllegalStateException("url == null");
}

## 2.3 得到Request对象中的数据
request对象.method(); GET POST PUT ...
request对象.url().toString(); HttpUrl对象("http://xxxxx.com?v1=123&v2=5467"
request对象.headers() Headers对象(所有的请求头)

image-20240517190933240

2.3.4 分析拦截器intercept方法的执行流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class XhsHttpInterceptor implements Interceptor {
public native Response intercept(Interceptor.Chain chain, long j2) throws IOException;
//猜想
- 读取当前request请求中数据
- 加密->值
- 添加到请求头
- 发送请求
//基于C语言实现
//findClass 签名 执行 "xxx.xxx.xx.request"
}



public class XhsHttpInterceptor implements Interceptor {
public Response intercept(Interceptor.Chain chain, long j2){
// 请求相关所有的数据
// 调用so中的某个方法+返回字符串
request = chain.request().newBuilder().addHeader("sign","xxx").addHeader("shield",返回字符串).build();
request = chain.request().header("sign","xxx").header("shield",返回字符串);

// 执行下个拦截器
Response response = chain.proceed(request);

return response;
}
}


// hook得到请求头中的数据---拦截器执行之前


// 如果我们能够hook到 下一个拦截器执行完成后的数据,就可以对比出在so层增加了那些请求头字段
-通过打印
// 但是我们hook不到
-因为拦截器中 执行Response response = chain.proceed(request); 其实在执行下一个拦截器
-即便我们打印response,是所有拦截器执行完成的结果,没法打印出当前拦截器下一个的结果

// 我们需要想中方法--》得到下一个拦截器的入参--》对比--》步骤如下
1 打印出所有拦截器
2 找到XhsHttpInterceptor拦截器下一个拦截器,通过hook得到



//确定是在 `com.xingin.shield.http.XhsHttpInterceptor`的native的`intercept`方法中生成了两个请求头
-shield
-xy-platform-info:

2.3.4.1 hook-得到请求request中的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Java.perform(function () {
var XhsHttpInterceptor = Java.use('com.xingin.shield.http.XhsHttpInterceptor');
var Buffer = Java.use("okio.Buffer");
var Charset = Java.use("java.nio.charset.Charset");

XhsHttpInterceptor.intercept.overload('okhttp3.Interceptor$Chain', 'long').implementation = function (chain, j2) {
console.log('\n-----------------请求来了-------------------');
var request = chain.request();

console.log("网址:")
console.log(request.url().toString())

console.log("\n请求头:")
console.log(request.headers().toString());

var requestBody = request.body();
if (requestBody) {
var buffer = Buffer.$new();
requestBody.writeTo(buffer);
console.log("请求体:")
console.log(buffer.readString(Charset.forName("utf8")));
}

var res = this.intercept(chain, j2);
return res;
};
})
// frida -UF -l 2-hook-得到请求request中的数据.js
1
2
3
4
5
6
7
8
9
10
11
12
13
-----------------请求来了-------------------
网址:
https://www.xiaohongshu.com/api/sns/v1/system_service/check_code?zone=86&phone=18953675225&code=889988

请求头:
X-B3-TraceId: a3a3f74bee11080f

xy-common-params: fid=1709625890105b664aedccbcd10c2ad2eb632c9e2dca&device_fingerprint=2024030515543183adcbaf57cfa94ffd875e79c8f077a4011d87121ee36228&device_fingerprint1=2024030515543183adcbaf57cfa94ffd
875e79c8f077a4011d87121ee36228&launch_id=1709633113&tz=Asia%2FShanghai&channel=YingYongBao&versionName=6.73.0&deviceId=c90832a6-bfb9-3e46-a3dd-f5a939a4bdd2&platform=android&sid=session.1709632456270565876089&identifier_flag=0&t=1709632497&project_id=ECFAAF&build=6730157&x_trace_page_current=welcome_page&lang=zh-Hans&app_id=ECFAAF01&uis=light

User-Agent: Dalvik/2.1.0 (Linux; U; Android 11; Pixel 2 XL Build/RP1A.201005.004.A1) Resolution/1440*2880 Version/6.73.0 Build/6730157 Device/(Google;Pixel 2 XL) discover/6.73.0 NetType/WiFi


image-20240517190949463

2.3.4.2 打印出所有拦截器

1
2
3
4
5
6
7
8
9
10
11
12
13
Java.perform(function () {
var Builder = Java.use('okhttp3.OkHttpClient$Builder');

Builder.addInterceptor.implementation = function (inter) {
//console.log("实例化:");

console.log( JSON.stringify(inter) );
//console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
return this.addInterceptor(inter);
};
})

// frida -U -f com.xingin.xhs -l 6.all_inter.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[Pixel 2 XL::com.xingin.xhs ]-> "<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.e>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.k0.f$a>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.k.a>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.l0.a>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.y>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.c0>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.r0.k>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.k.a>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.b>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.j.b>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.j.a>"
"<instance: okhttp3.Interceptor, $className: com.xingin.shield.http.XhsHttpInterceptor>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.n0.h>" // 下一个
"<instance: okhttp3.Interceptor, $className: p.d0.g1.k.a>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.r0.k>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.j.b>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.j.a>"
"<instance: okhttp3.Interceptor, $className: okhttp3.logging.HttpLoggingInterceptor>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.r0.k>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.k.a>"
"<instance: okhttp3.Interceptor, $className: p.d0.g1.j.b>"
"<instance: okhttp3.Interceptor, $className: p.d0.v1.e0.n0.h>"
"<instance: okhttp3.Interceptor, $className: com.xingin.shield.http.XhsHttpInterceptor>"

image-20240517191004820

2.3.4.3 hook-下一个拦截器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Java.perform(function () {
var XhsHttpInterceptor = Java.use('p.d0.v1.e0.n0.h');
var Buffer = Java.use("okio.Buffer");
var Charset = Java.use("java.nio.charset.Charset");

XhsHttpInterceptor.intercept.overload('okhttp3.Interceptor$Chain').implementation = function (chain, j2) {
console.log('\n--------------------请求来了--------------------');
var request = chain.request();

var urlString = request.url().toString();
console.log("网址:")
console.log(urlString)
console.log("\n请求头:")
console.log(request.headers().toString());

var requestBody = request.body();
if (requestBody) {
var buffer = Buffer.$new();
requestBody.writeTo(buffer);
console.log("请求体:")
console.log(buffer.readString(Charset.forName("utf8")));
}

var res = this.intercept(chain);
return res;
};
})

// frida -UF -l 4-hook-下一个拦截器.js

image-20240517191014145

1
2
3
4
5
6
7
8
9
10
11
请求头:
X-B3-TraceId: eeee673fec1a0c0f
xy-common-params: fid=1709625890105b664aedccbcd10c2ad2eb632c9e2dca&device_fingerprint=2024030515543183adcbaf57cfa94ffd875e79c8f077a4011d87121ee36228&device_fingerprint1=2024030515543183adcbaf57cfa94ffd875e79c8f077a4011d87121ee36228&launch_id=1709633815&tz=Asia%2FShanghai&channel=YingYongBao&versionName=6.73.0&deviceId=c90832a6-bfb9-3e46-a3dd-f5a939a4bdd2&platform=android&sid=session.1709632456270565876089&identifier_flag=0&t=1709633343&project_id=ECFAAF&build=6730157&x_trace_page_current=login_full_screen_sms_page&lang=zh-Hans&app_id=ECFAAF01&uis=light
User-Agent: Dalvik/2.1.0 (Linux; U; Android 11; Pixel 2 XL Build/RP1A.201005.004.A1) Resolution/1440*2880 Version/6.73.0 Build/6730157 Device/(Google;Pixel 2 XL) discover/6.73.0 NetType/WiFi


shield: XYAAAAAQAAAAEAAABTAAAAUzUWEe0xG1IbD9/c+qCLOlKGmTtFa+lG43AJf+FXQaoRzIS4nbQ2Sp2qqbJWz8N/2Mt+gKFmRAwYFDSBZ7Kl2Hk00uYq/OprEtShT17JVeQdtafQ


xy-platform-info: platform=android&build=6730157&deviceId=c90832a6-bfb9-3e46-a3dd-f5a939a4bdd2

2.5 分析 XhsHttpInterceptor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 0 正常我们应该使用unidbg 运行intercept了,但是还得做如下分析

# 1 正常使用拦截器流程
1 实例化得到拦截器对象
2 通过 addInterceptor(interceptor)

# 2 所以我们要分析出 XhsHttpInterceptor,在实例化的时候做了什么操作
public class XhsHttpInterceptor implements Interceptor {
public long cPtr;
public a<Request> predicate;
#0 这个代码比构造方法执行更早
static {
initializeNative();
}
public static native void initializeNative();

#1 构造方法
public XhsHttpInterceptor(String str, a<Request> aVar) {
this.cPtr = initialize(str);
this.predicate = aVar;
}
# 2 执行jni的 initialize 方法
public native long initialize(String str);

# 3 执行 intercept 方法
public native Response intercept(Interceptor.Chain chain, long j2) throws IOException;

}、


# 3 分析完后--》真正的执行顺序是:
-1 public static native void initializeNative();
-2 public native long initialize(String str);
-3 public native Response intercept(Interceptor.Chain chain, long j2) throws IOException;

# 4 以后遇到这种情况,可以直接执行intercept得到结果--》如果得到的结果发送请求可以用,上面两个就不用执行了,如果不能用,要倒回来再处理上面两个


__END__