aboutsummaryrefslogtreecommitdiffhomepage
path: root/Q5.php
blob: ee561016b46105fd17a1f6daa751f8414ffbd6d1 (plain)
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
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
<?php

declare(strict_types=1);

if (php_sapi_name() !== 'cli-server') {
  fwrite(STDERR, <<<EOS
    Usage:
      php -S localhost:8000 $argv[0]

    Recommended options:
      -d opcache.enable_cli=on
      -d opcache.jit=on
      -d opcache.jit_buffer_size=100M
      -d max_execution_time=300

    EOS);
  exit(1);
}

if (!str_ends_with($_SERVER['REQUEST_URI'], '.png')) {
  echo base64_decode(
    'PGhlYWQ+PHRpdGxlPkknbSBhIHRlYXBvdDwvdGl0bGU+PC9oZWFkPjxwPjxpbWcgc3JjPS90ZWFwb3Q'
    . 'ucG5nIHdpZHRoPTQxOCBoZWlnaHQ9NDE4PjwvcD48c2NyaXB0PmNvbnNvbGUubG9nKGF0b2IoJw==')
    . 'bm8gdG9rZW4gaGVyZSA7LSk='
    . base64_decode('JykpPC9zY3JpcHQ+');
  return;
}

// For slow machine, enable fast mode.
const FAST_MODE = true;

const w = FAST_MODE ? 104 : 209;
const h = FAST_MODE ? 104 : 209;
const rM = [[0.866,0.5,0,0],[-0.5,0.866,0,0],[0,0,1,0],[0,0,0,0]];
const pM = [[1,0,0,0],[0,1,0,0],[0,0,-0.818,1.818],[0,0,-1,0]];

[$vs, $ns, $ps] = T();

$q = 0; $cP = [-5,0,0,0]; $cU = [0,1,0,0]; $L = [-0.41,0.82,-0.41,0];

header('Content-Type: image/apng');
APNG(); IHDR(); PLTE(); acTL(FAST_MODE ? 1 : 12);
for ($f = 0; $f < 12; $f++) {
  if (!FAST_MODE || $f === 9) {
    $px = g($vs, $ns, $ps, cM($cP, $cU), $L);
    fcTL($q++); $q === 1 ? IDAT($px) : fdAT($q++, $px);
  }
  $cP = mM(rM, $cP); $cU = mM(rM, $cU); $L = mM(rM, $L);
}
IEND();

function T() {
  $z = file_get_contents(__FILE__, offset: __COMPILER_HALT_OFFSET__);
  $s = base64_decode(str_replace("\n", '', $z));
  [$vsN, $tpsN, $rpsN, $tqsN, $rqsN] = array_values(unpack('va/vb/Cc/vd/Ce', $s));
  $vs = array_chunk(unpack('g' . 3*$vsN, $s, $o=8), 3); $o += 4*3*$vsN;
  $tps = array_chunk(unpack('v' . 3*$tpsN, $s, $o), 3); $o += 2*3*$tpsN;
  $rps = array_chunk(unpack('v' . 4*$rpsN, $s, $o), 4); $o += 2*4*$rpsN;
  $tqs = array_chunk(unpack('v' . 3*$tqsN, $s, $o), 3); $o += 2*3*$tqsN;
  $rqs = array_chunk(unpack('v' . 4*$rqsN, $s, $o), 4);

  $vs = array_map(fn($v) => [...$v, 1], $vs);
  $ps = [];
  foreach ($tps as [$a, $b, $c]) $ps[] = [$a, $b, $c, 0];
  foreach ($rps as [$a, $b, $c, $d]) array_push($ps, [$a, $b, $c, 0], [$c, $d, $a, 0]);
  foreach ($tqs as [$a, $b, $c]) $ps[] = [$a, $b, $c, 1];
  foreach ($rqs as [$a, $b, $c, $d]) array_push($ps, [$a, $b, $c, 1], [$c, $d, $a, 1]);

  $ns = array_fill(0, count($vs), []);
  foreach ($ps as [$i1, $i2, $i3]) {
    $n = vN(vC(vS($vs[$i2], $vs[$i1]), vS($vs[$i3], $vs[$i2])));
    $ns[$i1][] = $n; $ns[$i2][] = $n; $ns[$i3][] = $n;
  }
  foreach ($ns as $i => $vn) {
    $u = [0, 0, 0];
    foreach ($vn as $n) {
      $u[0] += $n[0]; $u[1] += $n[1]; $u[2] += $n[2];
    }
    $ns[$i] = vN($u);
  }
  return [$vs, $ns, $ps];
}

function cM($c, $u) {
  $z = vN($c); $x = vN(vC($u, $z)); $y = vN(vC($z, $x));
  return [
    [$x[0], $x[1], $x[2], -vD($x, $c)],
    [$y[0], $y[1], $y[2], -vD($y, $c)],
    [$z[0], $z[1], $z[2], -vD($z, $c)],
    [0, 0, 0, 1],
  ];
}

function g($vs, $ns, $ps, $cM, $L) {
  $us = array_fill(0, count($vs), 0);
  foreach ($vs as $i => $v) {
    [$x, $y, $z, $w] = mM(pM, mM($cM, $v));
    $us[$i] = [$x/$w * w/2 + w/2, -$y/$w * h/2 + h/2, $z/$w];
  }

  $pp = array_fill(0, count($ps), 0);
  foreach ($ps as $i => [$i1, $i2, $i3, $o]) {
    $v1 = $us[$i1]; $v2 = $us[$i2]; $v3 = $us[$i3];
    $n1 = $ns[$i1]; $n2 = $ns[$i2]; $n3 = $ns[$i3];
    $mx = min($v1[0], $v2[0], $v3[0]);
    $mX = max($v1[0], $v2[0], $v3[0]);
    $my = min($v1[1], $v2[1], $v3[1]);
    $mY = max($v1[1], $v2[1], $v3[1]);
    $pp[$i] = [
      $v1, $v2, $v3,
      $n1, $n2, $n3,
      $mx, $mX, $my, $mY,
      $o,
    ];
  }

  $px = array_fill(0, w*h, 0);
  for ($y = 0; $y < h; $y++)
  for ($x = 0; $x < w; $x++) {
    $D = -INF;
    foreach ($pp as [$v1, $v2, $v3, $n1, $n2, $n3, $mx, $mX, $my, $mY, $o]) {
      if ($x < $mx || $mX < $x || $y < $my || $mY < $y) continue;
      $e1 = ($v3[0]-$v2[0])*($y-$v2[1]) - ($v3[1]-$v2[1])*($x-$v2[0]);
      $e2 = ($v1[0]-$v3[0])*($y-$v3[1]) - ($v1[1]-$v3[1])*($x-$v3[0]);
      $e3 = ($v2[0]-$v1[0])*($y-$v1[1]) - ($v2[1]-$v1[1])*($x-$v1[0]);
      if (0<$e1 || 0<$e2 || 0<$e3) continue;
      $w1 = $e1 / ($e1+$e2+$e3);
      $w2 = $e2 / ($e1+$e2+$e3);
      $w3 = $e3 / ($e1+$e2+$e3);
      $d = $w1*$v1[2] + $w2*$v2[2] + $w3*$v3[2];
      if ($d < $D) continue;
      $D = $d;
      $n = vN(vA(vA(vM($n1, $w1), vM($n2, $w2)), vM($n3, $w3)));
      $c = .2 + .8*max(0, vD($n, $L));
      $px[$y*w+$x] = (int) ($c*127) + $o*128;
    }
  }
  return $px;
}

function APNG() { echo pack('C*', 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A); }
function acTL($n) { chunk('acTL', pack('NN', $n, 0)); }
function fcTL($q) { chunk('fcTL', pack('NNNNNnnCC', $q, w, h, 0, 0, 50, 0, 1, 0)); }
function IHDR() { chunk('IHDR', pack('NNCCCCC', w, h, 8, 3, 0, 0, 0)); }
function IDAT($px) { xdat('IDAT', null, $px); }
function fdAT($q, $px) { xdat('fdAT', $q, $px); }
function IEND() { chunk('IEND', ''); }

function PLTE() {
  $s = '';
  for ($i = 0; $i < 128; $i++) $s .= pack('CCC', $i*2, $i*2, $i*2);
  for ($i = 0; $i < 128; $i++) $s .= pack('CCC', 0, 0, $i*2);
  chunk('PLTE', $s);
}

function xdat($t, $q, $px) {
  $s = $z = '';
  if ($q !== null) $s .= pack('N', $q);
  $l = h * (w+1);
  $s .= pack('CCCvv', 0x78, 0x01, 1, $l, ~$l);
  for ($y = 0; $y < h; $y++) {
    $z .= pack('C', 0);
    for ($x = 0; $x < w; $x++) {
      $z .= pack('C', $px[$y*w+$x]);
    }
  }
  $s .= $z . pack('N', hexdec(hash('adler32', $z)));
  chunk($t, $s);
}

function chunk($t, $s) {
  $z = $t . $s; echo pack('N', strlen($s)).$z.pack('N', crc32($z));
}

function vN($v) { $n = sqrt($v[0]**2+$v[1]**2+$v[2]**2); return $n == 0 ? $v : vM($v, 1/$n); }
function vA($v, $u) { return [$v[0]+$u[0], $v[1]+$u[1], $v[2]+$u[2]]; }
function vS($v, $u) { return [$v[0]-$u[0], $v[1]-$u[1], $v[2]-$u[2]]; }
function vM($v, $k) { return [$v[0]*$k, $v[1]*$k, $v[2]*$k]; }
function vD($v, $u) { return $v[0]*$u[0] + $v[1]*$u[1] + $v[2]*$u[2]; }
function vC($v, $u) { return [$v[1]*$u[2]-$v[2]*$u[1], $v[2]*$u[0]-$v[0]*$u[2], $v[0]*$u[1]-$v[1]*$u[0]]; }
function mM($m, $v) {
  return [
    $v[0]*$m[0][0] + $v[1]*$m[0][1] + $v[2]*$m[0][2] + $v[3]*$m[0][3],
    $v[0]*$m[1][0] + $v[1]*$m[1][1] + $v[2]*$m[1][2] + $v[3]*$m[1][3],
    $v[0]*$m[2][0] + $v[1]*$m[2][1] + $v[2]*$m[2][2] + $v[3]*$m[2][3],
    $v[0]*$m[3][0] + $v[1]*$m[3][1] + $v[2]*$m[3][2] + $v[3]*$m[3][3],
  ];
}

__halt_compiler();
JAS6AV9HAYvOp+69cqZdPxJKs7+U9q4+QIddP/iIrr/j46s+6X5yP2LYq79Ap
eq9QltyP6NasL89uT4/QIddPwcHmb9hqDs/zH1yP8mulr8e/Hw/DMpcP4P8fL
8tBpk/24ZdPwa6Pr9/+p0/KGV2P2xcJ7+LG6k/deRcPwRW5r4SSrM/cqZdP0i
n7r2jWrA/MVtyP7qk6r34iK4/QIddP5T2rj5i2Ks/6X5yP+Pjqz4HB5k/L4dd
Pz25Pj/JrpY/u31yP2GoOz+T/Hw/+8lcPy/8fD8Xuj4/24ZdPzYGmT9sXCc/K
GV2P3/6nT8mVuY+deRcP4sbqT/Op+49cqZdPxtKsz9Apeo9MVtyP6NasD+U9q
6+L4ddPwGJrj/j46u+2H5yP2LYqz89uT6/L4ddPwcHmT9hqDu/u31yP9Gulj+
hL5G/UBddP+okVz9/+p2/KGV2P31cJz+LG6m/deRcPyZW5j4SSrO/cqZdP86n
7j2jWrC/MVtyP0Cl6j34iK6/QIddP3P2rr5i2Ku/6X5yP+Pjq74HB5m/QIddP
yy5Pr/Jrpa/zH1yP1CoO7/qJFe/UBddP6Evkb8mVua+deRcP4sbqb9sXCe/KG
V2P3b6nb+PG64+lBd1P2zrs78zTkM/DHd2P8vWnL9s67M/gxd1P48brj7L1pw
/DHd2PzNOQz+PG66+gxd1P2zrsz8zTkO/DHd2P9TWnD9s67O/gxd1P20brr7L
1py/DHd2PyNOQ78YtGC/MV1sP+9Zmb9MFre+DftlP8BZur9YjhA+/U10P7Ubu
7/3WZk/MV1sPxi0YL/JWbo/DftlP0wWt761G7s//U10P1iOED4YtGA/MV1sP/
dZmT9MFrc+DftlP8lZuj+THoY7Vfp1P+m5tz/3WZm/MV1sPym0YD/JWbq/Dft
lP24Wtz61G7u//U10P1iOEL4czcm/Q1PePhMMK79BLai/P3LLPjxLkL+Tcme/
kITdPnR6ur8TDCs/qFPePhTNyb88S5A/YHLLPjgtqL90ero/kITdPpNyZ78cz
ck/Q1PePiQMKz9BLag/P3LLPjxLkD+Tcmc/b4TdPn16uj987jS+0xFAPRxd7z
8TDCu/IlPePiXNyT88S5C/P3LLPkEtqD90erq/kITdPqRyZz/RsdO/Z38wvnB
4gz8vTfG/dR8wvkQ28D5qwPa/+5YZvlMjJL5/MeW/RFEwvlhxQr/0wr2/xQRF
vg/Ror9oeIO/Z38wvtGx079ENvC+Mh8wvi9N8b9TIyQ+t5YZvmrA9r9pcUI/v
lAwvn8x5b8P0aI/xQRFvvTCvb/RsdM/Z38wvmh4g78vTfE/dR8wvkQ28L5qwP
Y/+5YZvlMjJD5/MeU/RFEwvmlxQj/0wr0/CAVFvg/Roj9oeIM/Z38wvtmx0z9
ENvA+dR8wvjhN8T9YcUK/RFEwvocx5T8P0aK/CAVFvvTCvT9MUhm+PX/6vh0f
AECIgk2/cXYXv91B7D+FPpq/WHQ7v9L8zz86Ivm/yXUXv3rjAD+ULwDAN+AXv
+SHKr7dQey/YHYXv4iCTb/S/M+/R3Q7v4U+mr9p4wC/yXUXvzIi+b/khyo+N+
AXv5AvAMCIgk0/YHYXv91B7L+FPpo/R3Q7v9L8z786Ivk/yXUXv2njAL+ULwB
AN+AXv+SHKj7dQew/cXYXv4iCTT/S/M8/WHQ7v4U+mj9p4wA/2nUXvzoi+T/y
YTY9BOUiv0UNAEAgm/S+gzJRv85U9j/vqic+Jv5Uv5oJ/D82PtG/NUM6vydpm
D+Y/Om/by9Rv5g0Rj+aCfy/Jv5Uv++qJz7OVPa/gzJRvyCb9L4naZi/JEM6vy
0+0b+YNEa/Xi9Rv5j86b/vqie+Ff5Uv5oJ/L8gm/Q+gzJRv85U9r82PtE/JEM
6vydpmL+Y/Ok/Xi9Rv5g0Rr+aCfw/Jv5Uv++qJ77OVPY/gzJRv0Gb9D4naZg/
NUM6vzY+0T+YNEY/by9Rv6D86T8TnBo+sW+Lv49y6D+/Dlg/LLmKv+CB0T9U/
+C+wkuKv0Kv4z8b2Iy/Y7SKv3h+vT/YgdG/LLmKv78OWD+Pcui/qG+LvxOcGj
46r+O/wkuKv1T/4L5vfr2/Y7SKvxvYjL+/Dli/LLmKv9iB0b8TnBq+qG+Lv49
y6L9U/+A+wkuKvzqv478b2Iw/Y7SKv29+vb/YgdE/LLmKv78OWL+Pcug/qG+L
v9CbGr46r+M/wkuKv1T/4D5vfr0/Y7SKvxvYjD9PPC8/tKqtv+Ierz9QcAE+s
5asv3Odwj/iHq+/tKqtv088Lz9zncK/s5asv1BwAT5PPC+/tKqtv+Ier79QcA
G+q5asv3Odwr/iHq8/tKqtv088L79zncI/s5asv1BwAb7BxJs/vhauv2pnbD9
qZ2y/vhauv8HEmz/BxJu/tRauv2pnbL9qZ2w/tRauv8HEm7/EQb4/88m2v5c5
/T2FmUo/O6q2v+GXoj8E5UY+Ppe7v/t5uT/hl6K/O6q2v4WZSj/7ebm/Ppe7v
wTlRj6FmUq/O6q2v+GXor8E5Ua+NZe7v/t5ub/hl6I/O6q2v4WZSr/7ebk/Pp
e7vwTlRr5LkZI/mny7vx08az8eG7E/wqa0v+2dET8ROf2988m2v8RBvj9stDi
/WMbCv46QHT8dPGu/mny7v0uRkj/tnRG/wqa0vx4bsT/EQb6/88m2vxE5/b1L
kZK/kXy7vx08a78eG7G/wqa0v+2dEb8ROf0988m2v8RBvr8xz/o+ELLEv1iNv
b4dPGs/kXy7v0uRkr/tnRE/wqa0vx4bsb+y9OG926bOP4bj+T3+0x0+QWHMP1
r0fr6d9H4+QWHMP0HUHT6d9H6+QWHMP3jTHb6RJ6E+ngrIP2lVO77vVTs+ngr
IP5EnoT6RJ6G+ngrIPzJWOz7vVTu+ngrIP3Anob46ebE9hpPCPyjXvL5J17w+
hpPCP0Z6sT1MF+K9YCLIP8Xnrj5J17y+hpPCPzp5sb0GhK4+DRi+P/ht6L0sZ
Rk99MO8Pw/xtz4GhK6+DRi+P35u6D34bei9DRi+P8ODrr4ogmg+Jc6+P+bmk7
4I55M+Jc6+P2uCaD4ogmi+Jc6+Pynnkz4I55O+Jc6+PyiCaL43OTy9dCOkP+Z
0Ob7pnco9lImjP5/II74pdTk+dCOkPzc5PL2fyCM+lImjP+mdyj03OTw9dCOk
Pyl1OT7pncq9lImjP+LIIz4pdTm+dCOkP0M6PD2fyCO+lImjP2Kdyr2Dp1A90
QWZP8csK74KLSs+0QWZP4OnUD2Dp1C90QWZPwotKz4KLSu+0QWZP4OnUL2P4b
G9CcOYP775Hb6++R0+CcOYPwnhsb2P4bE9CcOYPwH6HT6++R2+CcOYP4/hsT2
sraC+i1KMP7luOr4fR9O9uhWMPwExsb65bjo+i1KMP6ytoL4BMbE+uhWMP5lG
072sraA+i1KMP/xuOj4fR9M9uhWMPyMxsT65bjq+i1KMP6ytoD4BMbG+uhWMP
x9H0z3V6m+/G/V4PyS4JT+bOp+/2jlxPxDMEb4QzBE+6zlxP5s6n7+bOp8/2j
lxP1PMET4QzBG+2jlxP5s6nz8kuCW/G/V4P8Tqb7/V6m8/G/V4PyS4Jb8kuCU
/CvV4P9Xqbz+kcn+/pb1hP0D7Yb9A+2E/pb1hP5Nyf7+kcn8/pb1hP1D7YT9A
+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
vzYhIT8tzlg9QQ21v9cXJT+ndoY8QQ21v15KLT9mMwe8QQ21v8pqNj/K+eK8Q
Q21v0dUMD+gb0u9QQ21v2hZKz81f4y9QQ21v4f4Jz+5cMC9QQ21v+S/JD/FBP
W9QQ21v/G6Ij8N5Bm+QQ21v5zDIT/fwjq+QQ21v1dDIj+laFW+QQ21v8qjIz8
XRoq+QQ21vzC8Kj/YYp++QQ21v102Nj8ZcKa+QQ21v5PiOz+w6K6+QQ21vzLn
RT8X1bK+QQ21vwbYTz9GtrO+QQ21v8dLVz+wqq6+QQ21vzC5aT9NSaa+QQ21v
4i4cT/+J5++QQ21v4Qsdz9SuJa+QQ21v2IQfD/5E42+QQ21v6YrgD8qVYK+QQ
21vxr6gT8bnl6+QQ21vxwmhD8f+Di+QQ21v54mhT+FshC+QQ21v41ehT8C0+m
9QQ21v1K4hD+Crr29QQ21v87ggz9jmmm9QQ21v0w3gT/NWgq9QQ21vyhHfT+R
tQa8QQ21v4o8dT+WJiU9QQ21v5pBgj+En7g9QQ21v51LhT8Bpuw9QQ21v0pGh
j91djI+QQ21v1uVhj+9xWM+QQ21v44ehT9VS4I+QQ21v031gj+wx4w+QQ21vx
0AgT8/NZY+QQ21v0JgfT/f4KM+QQ21v0fIdD+YGKs+QQ21vwLVaz9oPq8+QQ2
1v9j0ZD81z7E+QQ21vz+qXT8hsLI+QQ21vxkEVj9FnYG+QQ21v69bTD8tWnC+
QQ21vxjMQz8aFF2+QQ21v+FFPz/HR0u+QQ21v23mPD/vIDa+QQ21vzBLOz9cy
gm+QQ21vzFDOz873++9QQ21v3cSPT/7scm9QQ21v5DAPz9vRaK9QQ21v7dCRD
85tl69QQ21v5OoTz/9oVm9QQ21v4sXUz/Rsm69QQ21vzS+Xz+wq4m9QQ21vyc
WZD+pMaG9QQ21v41jaD9txsm9QQ21v0YKbT98R+29QQ21vwqCbz8u4gu+QQ21
v9B9cT9M3SW+QQ21v2mscT9UU0K+QQ21v25PcD+t31y+QQ21v2A6bT9pj3e+Q
Q21v3juZT+cGoC+QQ21v3WSYT9d/oO+QQ21vxJLWj8HmDk9QQ21v7U1Sj8qb4
c9QQ21v0FhQD//Qq89QQ21v16dOz8h6fM9QQ21v5SFNz9tyB8+QQ21vzbKNj/
dJDY+QQ21v6/QNz8ls0o+QQ21v7jMOT+7C2Q+QQ21v7YxPj/Lvns+QQ21v+6T
Rz9YO4I+QQ21v+9ZTz93EIM+QQ21v/URWD/x838+QQ21v5HxYD8aTmk+QQ21v
xCvaz8ucVQ+QQ21v0Debz+Qvjk+QQ21v7A9cz9I/SU+QQ21v4IBdD9d/A0+QQ
21vw4vdD9zofI9QQ21v4s2cz9Qcsc9QQ21vzsccT/NBpk9QQ21v6XdbD9qFX0
9QQ21v3XkaD8eM1A9QQ21v9kIZD/exiY9QQ21v40KXD8K1yM9QQ21vxkEVj97
FK4+QQ21v5hukj6gGq++QQ21v5hukj6gGq++QQ21v6abxD57FK4+QQ21v6abx
D5CYOU8QQ21v65HYT1oke09QQ21v65HYT1oke09QQ21v7x0k7x7FK4+QQ21v7
x0k7x7FK4+QQ21v2iR7b1oke09QQ21v2iR7b1oke09QQ21vylcz75zaJE9QQ2
1vylcz75GtrO+QQ21v4/Cdb1GtrO+QQ21v7x0k7xCYOU8QQ21v7x0k7xCYOU8
QQ21v2iR7b3yQiq+QQ21v0Hy7r1CYOU8QQ21v7pJjL6e76e9QQ21v1TjRb+e7
6e9QQ21v1g5FL/y0o2+QQ21v166Cb/y0o2+QQ21v42X7r6e76e9QQ21v8HKAb
+e76e9QQ21v/T91L70/VS8QQ21v/T91L70/VS8QQ21v0JgBb+cxCA+QQ21v42
XDr+cxCA+QQ21v/T91L6LbGc+QQ21v/T91L6LbGc+QQ21vw4tEr9Qjdc+QQ21
vwisHL9Qjdc+QQ21v6AaL7+LbGc+QQ21v6abJL+LbGc+QQ21v6JFVr9Qjdc+Q
Q21v5zEYL9Qjdc+QQ21vzMzc7+LbGc+QQ21vzm0aL+LbGc+QQ21v3e+f7+cxC
A+QQ21v3e+f7+cxCA+QQ21v7geZb/0/VS8QQ21v23nW7/0/VS8QQ21v3e+f7+
e76e9QQ21v3e+f7+e76e9QQ21v+xRWL/y0o2+QQ21v/LSTb/y0o2+QQ21v1pk
O7+cxCA+QQ21vyUGIb/0/VS8QQ21v9nOF7/0/VS8QQ21v9V4Sb+cxCA+QQ21v
yGwUr/0/VS826bOv/T91L70/VS826bOv9nOF7/0/VS826bOv9V4Sb+e76e926
bOv1TjRb+e76e926bOv1g5FL/y0o2+26bOv166Cb/y0o2+26bOv42X7r6e76e
926bOv8HKAb+e76e926bOv/T91L70/VS826bOv/T91L70/VS826bOv0JgBb+c
xCA+26bOv42XDr+cxCA+26bOv/T91L6LbGc+26bOv/T91L6LbGc+26bOvw4tE
r9Qjdc+26bOvwisHL9Qjdc+26bOv6AaL7+LbGc+26bOv6abJL+LbGc+26bOv6
JFVr9Qjdc+26bOv5zEYL9Qjdc+26bOvzMzc7+LbGc+26bOvzm0aL+LbGc+26b
Ov3e+f7+cxCA+26bOv3e+f7+cxCA+26bOv7geZb/0/VS826bOv23nW7/0/VS8
26bOv3e+f7+e76e926bOv+xRWL/y0o2+26bOv/LSTb/y0o2+26bOv1pkO7+cx
CA+26bOvyUGIb/0/VS826bOv9nOF7/0/VS826bOv9V4Sb+cxCA+26bOvyGwUr
+e76e926bOv1TjRb+e76e9QQ21v1TjRb+e76e926bOv1g5FL+e76e9QQ21v1g
5FL/y0o2+26bOv166Cb/y0o2+QQ21v166Cb/y0o2+26bOv42X7r7y0o2+QQ21
v42X7r6e76e926bOv8HKAb+e76e9QQ21v8HKAb+e76e926bOv/T91L6e76e9Q
Q21v/T91L70/VS8QQ21v/T91L6LbGc+26bOvw4tEr9Qjdc+26bOvwisHL9Qjd
c+QQ21vwisHL9Qjdc+26bOv6AaL79Qjdc+QQ21v6AaL7+LbGc+26bOv6abJL+
LbGc+QQ21v6abJL+LbGc+26bOv6JFVr+LbGc+QQ21v6JFVr9Qjdc+26bOv5zE
YL9Qjdc+QQ21v5zEYL9Qjdc+26bOvzMzc79Qjdc+QQ21vzMzc7+LbGc+26bOv
zm0aL+LbGc+QQ21vzm0aL+LbGc+26bOv3e+f7+LbGc+QQ21v3e+f7+cxCA+26
bOv3e+f7+cxCA+QQ21v3e+f7+cxCA+26bOv7geZb+cxCA+QQ21v7geZb/0/VS
826bOv23nW7/0/VS8QQ21v23nW7/0/VS826bOv3e+f7/0/VS8QQ21v3e+f7+e
76e926bOv3e+f7+e76e9QQ21v3e+f7+e76e926bOv+xRWL+e76e9QQ21v+xRW
L/y0o2+26bOv/LSTb/y0o2+QQ21v/LSTb/y0o2+26bOv1pkO7/y0o2+QQ21v1
pkO79oke0926bOvylcz75zaJE926bOvylcz75zaJE9QQ21vylcz75GtrO+26b
Ov4/Cdb1GtrO+QQ21v4/Cdb1GtrO+26bOv7x0k7xGtrO+QQ21v7x0k7xCYOU8
QQ21v7x0k7ywqq6+QQ21vzC5aT9NSaa+QQ21v4i4cT/+J5++QQ21v4Qsdz9Su
Ja+QQ21v2IQfD/5E42+QQ21v6YrgD8qVYK+QQ21vxr6gT8bnl6+QQ21vxwmhD
8f+Di+QQ21v54mhT+FshC+QQ21v41ehT8C0+m9QQ21v1K4hD+Crr29QQ21v87
ggz9jmmm9QQ21v0w3gT/NWgq9QQ21vyhHfT+RtQa8QQ21v4o8dT+WJiU9QQ21
v5pBgj+En7g9QQ21v51LhT8Bpuw9QQ21v0pGhj91djI+QQ21v1uVhj+9xWM+Q
Q21v44ehT9VS4I+QQ21v031gj+wx4w+QQ21vx0AgT8/NZY+QQ21v0JgfT/f4K
M+QQ21v0fIdD+YGKs+QQ21vwLVaz9oPq8+QQ21v9j0ZD/fqbA+26bOv2jLST8
lBKs+26bOv/rSPz8UdqE+26bOv4ygNT+285U+26bOv7bzLT/mdYw+26bOv5s8
KT8kfnU+26bOv8h6Ij/1MFQ+26bOv9KpHz+laFW+26bOv8qjIz8XRoq+26bOv
zC8Kj/YYp++26bOv102Nj8ZcKa+26bOv5PiOz+w6K6+26bOvzLnRT8X1bK+26
bOvwbYTz9GtrO+26bOv8dLVz+wqq6+26bOvzC5aT9NSaa+26bOv4i4cT/+J5+
+26bOv4Qsdz9SuJa+26bOv2IQfD/5E42+26bOv6YrgD8qVYK+26bOvxr6gT8b
nl6+26bOvxwmhD8f+Di+26bOv54mhT+FshC+26bOv41ehT8C0+m926bOv1K4h
D+Crr2926bOv87ggz9jmmm926bOv0w3gT/NWgq926bOvyhHfT+RtQa826bOv4
o8dT+WJiU926bOv5pBgj+En7g926bOv51LhT8Bpuw926bOv0pGhj91djI+26b
Ov1uVhj+9xWM+26bOv44ehT9VS4I+26bOv031gj+wx4w+26bOvx0AgT8/NZY+
26bOv0JgfT/f4KM+26bOv0fIdD+YGKs+26bOvwLVaz9oPq8+26bOv9j0ZD81z
7E+26bOvz+qXT8hsLI+26bOvxkEVj9FnYG+26bOv69bTD8tWnC+26bOvxjMQz
8aFF2+26bOv+FFPz9UU0K+26bOv25PcD9pj3e+26bOv3juZT+cGoC+26bOv3W
SYT+7C2Q+26bOv7YxPj/Lvns+26bOv+6TRz9YO4I+26bOv+9ZTz93EIM+26bO
v/URWD/x838+26bOv5HxYD9CYOU826bOv65HYT1oke0926bOv65HYT1oke092
6bOvylcz75zaJE926bOvylcz75GtrO+26bOv4/Cdb1GtrO+26bOv7x0k7xCYO
U826bOv7x0k7xCYOU826bOv2iR7b3yQiq+26bOv0Hy7r1CYOU826bOv7pJjL6
e76e926bOv1TjRb+e76e926bOv1g5FL+e76e926bOv8HKAb+e76e926bOv/T9
1L70/VS826bOv3e+f7+e76e926bOv3e+f7+e76e926bOv+xRWL+e76e926bOv
1TjRb+e76e9QQ21v1TjRb/y0o2+26bOv42X7r6e76e926bOv8HKAb+e76e9QQ
21v8HKAb+e76e926bOv/T91L6e76e9QQ21v/T91L70/VS826bOv/T91L70/VS
8QQ21v/T91L70/VS826bOv0JgBb/0/VS8QQ21v0JgBb+cxCA+26bOv42XDr+c
xCA+QQ21v42XDr+cxCA+26bOv/T91L6cxCA+QQ21v/T91L6LbGc+QQ21v/T91
L7y0o2+26bOv1pkO7+cxCA+26bOvyUGIb/0/VS826bOv9nOF7/0/VS8QQ21v9
nOF7/0/VS826bOv9V4Sb/0/VS8QQ21v9V4Sb+cxCA+QQ21vyGwUr9CYOU826b
Ov65HYT1CYOU8QQ21v65HYT1oke0926bOv65HYT1oke09QQ21v65HYT1oke09
QQ21v7x0k7x7FK4+26bOv2iR7b1oke0926bOv2iR7b1oke09QQ21v2iR7b1ok
e0926bOvylcz75oke09QQ21vylcz75zaJE9QQ21vylcz75GtrO+26bOv7x0k7
xCYOU826bOv7x0k7xCYOU8QQ21v7x0k7xCYOU826bOv2iR7b1CYOU8QQ21v2i
R7b1pNyq+26bOvy9v7r1pNyq+QQ21vy9v7r1CYOU826bOv7pJjL5CYOU8QQ21
v7pJjL57FK4+26bOv5hukj6gGq++26bOv5hukj6gGq++QQ21v5hukj6gGq++2
6bOv6abxD6gGq++QQ21v6abxD57FK4+QQ21v6abxD57FK4+26bOv5hukj6gGq
++26bOv5hukj6gGq++26bOv6abxD57FK4+26bOv6abxD5CYOU826bOv65HYT1
oke0926bOv7x0k7x7FK4+26bOv7x0k7x7FK4+26bOv2iR7b1oke0926bOv2iR
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
26bOvxr6gT8bnl6+26bOvxwmhD+FshC+26bOv41ehT8C0+m926bOv1K4hD+Cr
r2926bOv87ggz9jmmm926bOv0w3gT/NWgq926bOvyhHfT+RtQa826bOv4o8dT
+WJiU926bOv5pBgj+En7g926bOv51LhT8Bpuw926bOv0pGhj91djI+26bOv1u
Vhj+9xWM+26bOv44ehT9VS4I+26bOv031gj9oPq8+26bOv9j0ZD81z7E+26bO
vz+qXT8hsLI+26bOvxkEVj9FnYG+26bOv69bTD8tWnC+26bOvxjMQz8aFF2+2
6bOv+FFPz/HR0u+26bOv23mPD/vIDa+26bOvzBLOz9cygm+26bOvzFDOz873+
+926bOv3cSPT/7scm926bOv5DAPz9vRaK926bOv7dCRD85tl6926bOv5OoTz/
9oVm926bOv4sXUz/Rsm6926bOvzS+Xz+wq4m926bOvycWZD+pMaG926bOv41j
aD9txsm926bOv0YKbT98R+2926bOvwqCbz8u4gu+26bOv9B9cT9UU0K+26bOv
25PcD+t31y+26bOv2A6bT9pj3e+26bOv3juZT+cGoC+26bOv3WSYT9d/oO+26
bOvxJLWj8HmDk926bOv7U1Sj8qb4c926bOv0FhQD//Qq8926bOv16dOz8h6fM
926bOv5SFNz9tyB8+26bOvzbKNj/dJDY+26bOv6/QNz8ls0o+26bOv7jMOT+7
C2Q+26bOv7YxPj/Lvns+26bOv+6TRz9YO4I+26bOv+9ZTz93EIM+26bOv/URW
D/x838+26bOv5HxYD8aTmk+26bOvxCvaz8ucVQ+26bOv0Debz+Qvjk+26bOv7
A9cz9I/SU+26bOv4IBdD9d/A0+26bOvw4vdD9zofI926bOv4s2cz9Qcsc926b
OvzsccT/NBpk926bOv6XdbD9qFX0926bOv3XkaD8eM1A926bOv9kIZD/exiY9
26bOv40KXD8K1yM926bOvxkEVj8GnOU926bOvx+8Hj9M3SW+26bOv2mscT/fq
bA+QQ21v2jLST8hsLI+QQ21vxkEVj/7scm9QQ21v5DAPz9vRaK9QQ21v7dCRD
85tl69QQ21v5OoTz/9oVm9QQ21v4sXUz/Rsm69QQ21vzS+Xz+wq4m9QQ21vyc
WZD9UU0K+QQ21v25PcD+t31y+QQ21v2A6bT8HmDk9QQ21v7U1Sj/dJDY+QQ21
v6/QNz8ls0o+QQ21v7jMOT+7C2Q+QQ21v7YxPj93EIM+QQ21v/URWD/x838+Q
Q21v5HxYD8K1yM9QQ21vxkEVj9M3SW+QQ21v2mscT/fqbA+26bOv2jLST8hsL
I+26bOvxkEVj873++926bOv3cSPT/7scm926bOv5DAPz9vRaK926bOv7dCRD8
5tl6926bOv5OoTz/9oVm926bOv4sXUz/Rsm6926bOvzS+Xz9UU0K+26bOv25P
cD8HmDk926bOv7U1Sj9tyB8+26bOvzbKNj/dJDY+26bOv6/QNz8ls0o+26bOv
7jMOT9YO4I+26bOv+9ZTz93EIM+26bOv/URWD/exiY926bOv40KXD8K1yM926
bOvxkEVj9FnYG+QQ21v69bTD9d/oO+QQ21vxJLWj8bnl6+26bOvxwmhD8f+Di
+26bOv54mhT+FshC+26bOv41ehT8C0+m926bOv1K4hD9jmmm926bOv0w3gT+E
n7g926bOv51LhT8Bpuw926bOv0pGhj91djI+26bOv1uVhj+9xWM+26bOv44eh
T9FnYG+26bOv69bTD/9oVm926bOv4sXUz/Rsm6926bOvzS+Xz98R+2926bOvw
qCbz8u4gu+26bOv9B9cT9UU0K+26bOv25PcD+cGoC+26bOv3WSYT9d/oO+26b
OvxJLWj+Qvjk+26bOv7A9cz9I/SU+26bOv4IBdD9d/A0+26bOvw4vdD9zofI9
26bOv4s2cz9Qcsc926bOvzsccT9M3SW+26bOv2mscT9oke0926bOv65HYT1ok
e0926bOv7x0k7xoke0926bOv2iR7b30/VS826bOv/T91L70/VS826bOv0JgBb
+LbGc+26bOv/T91L6LbGc+26bOvw4tEr+LbGc+26bOv6abJL+LbGc+26bOv6J
FVr+LbGc+26bOvzm0aL+LbGc+26bOv3e+f7/0/VS826bOv23nW7/0/VS826bO
v3e+f7/0/VS826bOv9nOF7/0/VS826bOv9V4Sb9oke0926bOv65HYT1oke092
6bOv2iR7b1oke0926bOvylcz76gb0u926bOv2hZKz9jmmm926bOv0w3gT/9oV
m926bOv4sXUz8EAAYABQAJAAgABwAOABAADwATABIAEQAYABoAGQAcABsAGgA
hACMAIgAkACUAIwAkAAMAJQAGAAgAJwAJAAsACAAQABIAKQATABUAEgAaABsA
KwAcAB4AGwAjACUALQAlAC8ALgAIADIAMQASADUANAAbADgANwAtADoALAAuA
DsALQAuADwAOwAuAC8APAAnAD0AJgAxAD4AJwAxAD8APgAxADIAPwApAEAAKA
A0AEEAKQA0AEIAQQA0ADUAQgAqAEMANgArAEQAKgA3AEUAKwA3AEYARQA3ADg
ARgA1AEMAVwBXAFoAaQBbAFwAawBdAG4AbQBeAG8AXQBeAHAAbwBfAGAAcABh
AHIAcQBiAHMAYQBiAHQAcwBjAGQAdABlAHYAdQBmAHcAZQBmAHgAdwBnAGgAe
ABpAHoAeQBqAGwAaQBuAH8AbQByAIMAcQB2AIcAdQB6AHwAeQCLAJMAigCNAJ
QAfgCPAJUAggCRAJYAhgCTAKAAoQCUAKQApQCVAKcAqACWAKsArABhAZ8AoAC
YAIsAmQCaAI0AmwBiAZsApwCcAI8AnQCeAJEAnwCtAK8ArgCtAK4AsACtALMA
twCuALUAtACvALYAsQCwALgAswC1ALwAtAC2ALkAsQC3ALoAsgC3AL8AugC4A
LsAswDIAM0AzADBAM0AyADCAM4AyQDDAM4AwgDEAM8AygDFAM8AxADGANAAyw
DHANAAxgDNANEAzADNANIA0QDOANMAyQDOANQA0wDPANUAygDPANYA1QDQANc
AywDQANgA1wDZANoA5QDeANsA5gDfANwA5wDgAN0A6ADZAOUA5ADeAOYA4QDf
AOcA4gDgAOgA4wDaAOwA6wDbAPAA7wDcAPQA8wDdAPgA9wD7APwAEgH/AP0A/
gAEAQMBAgEeAQkBBgEHAQgBHgEeAQgBCQEGAQkBCgEBAQMBCwH/AAwBDQEIAQ
4BCQEJAQ4BEQEPAQwBCwEQAQoBCQEQAQkBEQELARYBEgELARABFgEVAREBEwE
VARABEQEXARIBFgEWARUBGAEUAWoAGwETARQBGwEpARUBEwEZARUBKQEXARYB
GAH7ABcB+QATARsBKQEaARwBGwEdAR4BIQEGAQUBHwECAQEBIgEiAQEBAAH/A
P4AIwEhAQYBHwEeAQYBIQEiAQABIAEcASEBJAEhASIBJQElASABJgEjAScBJg
EkASEBKAEbARwBJAEbASQBKAH6ACUBJgEYASUB+gApARsBKAEpASgBGQEZASU
BGAEYAfoAFwEnAfkA+gAqASwBKwEsAS0BKwEuAS8BQgEuATABLwE1ATMBNAE2
ATUBNAE4ATsBNwE8ATYBNwE1ATYBPAE3ATsBPwE7AToBPgFAATcBPwFAATwBN
wFBATwBQAFBATUBPAFCATUBQQFCAT0BNQFAAT8BRQE/ATsBQwFDAT4BRAFGAU
ABRQFBAUABRgEtAUIBQQEtAUEBRwFHAUEBRgFFAUMBSAFGAUUBSAErAS0BRwF
JAUMBRAFJAUQBSgFIAUkBTwFOAUgBTwFOAUYBSAFLAUYBTgFLAUcBRgFMAUcB
SwEqASsBTAEqAU0BXQFNASoBTAFeAUwBSwFOAV4BSwFQAV8BTwFRAVABSgFRA
WABUAFSAWABUQE7ATgBWQE4ATcBUwFTATcBNgFTATYBVAFUATYBNAE0ATMBVQ
EzAVcBVQEzATIBVwEyATEBVgFXATIBVgFUATQBVQFYATgBUwFZATgBWAFXAVY
BWgFcAVUBWwFcAVQBVQFcAVMBVAFYAVMBXAFbAVoBXQFNAVsBXQFeAVsBTQFe
AVwBWwFfAVgBXAFgAVkBXwFfAVwBTgFOAVwBXgFPAV8BTgEHAAgABgAKAAsAC
QARABIAEAAUABUAEwAdAB4AHAAAAAMAJAAGACcABQAQACkADwAaACsAGQAjAC
0AIgAlAAMAMAAIAAsAMwASABUANgAbAB4AOQAtACUALgAlADAALwAnAAgAMQA
IADMAMgApABIANAASADYANQArABsANwAbADkAOAAsADoAOQAtADsAOgAmAD0A
MAAnAD4APQAoAEAAMwApAEEAQAA1ADYAQwAqAEQAQwArAEUARABEAFgAQwBXA
EMAWgBpAFoAagBaAFsAawBdAG8AbgBeAF8AcABhAHMAcgBiAGMAdABlAHcAdg
BmAGcAeABpAGwAegBcAG0AfgBtAH8AfgBgAHEAggBxAIMAggBkAHUAhgB1AIc
AhgBoAHkAigB5AHwAigB8AIsAigB/AI0AfgCDAI8AggCHAJEAhgCLAJgAkwCM
AJkAiwCMAKIAmQCMAKUAogCNAJoAlACOAJsAjQCOAKYAmwCOAKgApgCPAJwAl
QCQAJ0AjwCQAKkAnQCQAKwAqQCRAJ4AlgCSAJ8AkQCSAJcAnwCSAKEAlwBhAa
oAnwCgAJMAmABhAaAAmQCgAJgAmQCkAJQAmgCjAKQAmwCkAJoAmwBiAaMAmwC
nAJUAnABiAacAnQCnAJwAnQCrAJYAngCqAKsAnwCrAJ4AnwCwAK4AtACuAK8A
sQCvAK0AsgCtALcAsgCtALAAswCuALEAtQCvALIAtgCwALQAuAC1ALEAvQCxA
LkAvQC2ALIAvgCyALoAvgC3ALMAvwCzALsAvwC4ALQAwAC0ALwAwAC1AMEAvA
C2AMMAuQC4AMcAuwDBALUAwgC1AL0AwgDDALYAxAC2AL4AxADFALoAxgC6AL8
AxgDHALgAyAC4AMAAyADBAMkAzQDBAMIAyQDDAMoAzgDDAMQAygDFAMsAzwDF
AMYAywDHAMwA0ADHAMgAzADMANEA2ADNAMkA0gDJANMA0gDOAMoA1ADKANUA1
ADPAMsA1gDLANcA1gDQAMwA2ADXANgA2QDRANoA2ADRAN4A2gDRANIA3gDTAN
sA0gDTAN8A2wDTANQA3wDVANwA1ADVAOAA3ADVANYA4ADXAN0A1gDXANkA3QD
ZANgA2gDeANIA2wDfANQA3ADgANYA3QDeAOEA2gDfAOIA2wDgAOMA3ADZAOQA
3QDlANoA6wDaAO0A7ADmANsA7wDbAPEA8ADnANwA8wDcAPUA9ADoAN0A9wDdA
OkA+AD8AP0ADQEAAQwB/wAAAQEBDAECAQMBAQEFAQYBCgH9AP8ADQEMAQEBCw
EEAQUBCgEDAQQBCgENAQwBDwH8AA0BDwEDAQoBCwELAQoBEAH8AA8BEgEPAQs
BEgEWARABFQH7ABIBFwEYARUBGQH5ABcB+gBqABoBGwEcAR0BIQEdAQcBHgEf
AQUBBAEgAQAB/wAfAQQBAgEiAR8BAgEgAf8AIwEhAR8BIgElASIBIAEmASABI
wEoASEBJQH6ACYBJwEZASgBJQE7ATkBOgE9ATMBNQFCAS8BPQFDATsBPgFFAT
8BQwFIAUMBSQFMASsBRwFeAU0BTAE5AVkBUgE5ATsBWQFSAVkBYAFfAVkBWAF
QAWABXwFQAUkBSgFPAUkBUAGqAGEBowCjAJkApACqAKMAYgGqAJ0AqwCjAGEB
mQCqAGIBnQBXAVoBWwFVAQUAAgABAAQADQALAAoADAAPAA0ADAAOABcAFQAUA
BYAGQAXABYAGAAgAB4AHQAfACIAIAAfACEAMAADAAIAJgACAAMAAAABACYAAg
AFACcAMwALAA0AKAAoAA0ADwApADYAFQAXACoAKgAXABkAKwA5AB4AIAAsACw
AIAAiAC0ASABHAEYAOABJAEgAOAA5AEkAOQA6AEoASgA6ADsASwBMAEsAOwA8
AE0ATAA8AC8ATgBNAC8AMABOADAAPQBPAE8APQA+AFAAUQBQAD4APwBSAFEAP
wAyAFMAUgAyADMAUwAzAEAAVABUAEAAQQBVAFYAVQBBAEIAVwBWAEIANQBYAE
QARQBZAEcAWQBFAEYAWwBYAFkAXABtAFwAWQBHAF0AbQBHAEgAXgBdAEgASQB
eAEkASgBfAF8ASgBLAGAAcQBgAEsATABhAHEATABNAGIAYQBNAE4AYgBOAE8A
YwBjAE8AUABkAHUAZABQAFEAZQB1AFEAUgBmAGUAUgBTAGYAUwBUAGcAZwBUA
FUAaAB5AGgAVQBWAGkAeQBWAFcAWgBDAFgAWwBrAGwAagBaAHwAegBsAHsAfQ
B7AGwAawB+AH0AawBcAH8AbgBvAIAAgQCAAG8AcACCAIEAcABgAIMAcgBzAIQ
AhQCEAHMAdACGAIUAdABkAIcAdgB3AIgAiQCIAHcAeACKAIkAeABoAIsAfAB7
AIwApQCMAHsAfQCUAKUAfQB+AI0AfwCAAI4AqACOAIAAgQCVAKgAgQCCAI8Ag
wCEAJAArACQAIQAhQCWAKwAhQCGAJEAhwCIAJIAoQCSAIgAiQCTAKEAiQCKAJ
cAoQCgAJ8AogClAKQAmQCmAKgApwCbAKkArACrAJ0AyADAALwAwQDCAL0AuQD
DAMQAvgC6AMUAxgC/ALsAxwDpAN0A5ADqAO0A2gDhAO4A8QDbAOIA8gD1ANwA
4wD2ABQBEwERAQ4BQgEtASwBLgEyAS8BMAExATMBPQEvATIBZQFjAWYBZAFjA
WUBbwFnAXABcgFnAW8BcQFnAXIBaAFnAXEBbQFpAW4BbAFpAW0BawFpAWwBag
FpAWsBjAGOAY0BiwGOAYwBigGOAYsBigGPAY4BiQGPAYoBiQGQAY8BiAGQAYk
BiAGRAZABiAGSAZEBiAG/AZIBvwGTAZIBiAGpAb8BvwGUAZMBvgGUAb8BvQGU
Ab4BiAGqAakBvAGUAb0BhwGqAYgBhwGrAaoBhwGsAasBhgGsAYcBuwGUAbwBu
wGVAZQBhgGtAawBugGVAbsBhQGtAYYBugGWAZUBhQGuAa0BuQGWAboBhAGuAY
UBhAGvAa4BuAGWAbkBuAGXAZYBhAGwAa8BtwGXAbgBtwGYAZcBgwGwAYQBgwG
xAbABtgGYAbcBggGxAYMBtgGZAZgBggGyAbEBtQGZAbYBtAGZAbUBgQGyAYIB
gQGzAbIBswGZAbQBgQGZAbMBgQGaAZkBgAGaAYEBgAGbAZoBfwGbAYABfwGcA
ZsBfgGcAX8BfgHXAZwBfQHXAX4BfQHAAdcB1gGcAdcB1QGcAdYBfQHBAcAB1A
GcAdUBfAHBAX0B0wGcAdQBfAHCAcEB0wGdAZwB0gGdAdMBewHCAXwB0gGeAZ0
BewHDAcIB0QGeAdIB0AGeAdEBegHDAXsBegHEAcMB0AGfAZ4BzwGfAdABzgGf
Ac8BegHFAcQBegHGAcUBeQHGAXoBzgGgAZ8BzQGgAc4BeQHHAcYBeAHHAXkBz
AGgAc0BzAGhAaABeAHIAccBywGhAcwBeAHJAcgBygGhAcsBdwHJAXgBygGiAa
EBdwHKAckBdwGiAcoBdgGiAXcBdgGjAaIBdQGjAXYBdQGkAaMBdAGkAXUBdAG
lAaQBcwGlAXQBcwGmAaUBcwGnAaYBqAGnAXMB2AHaAdkB2AHbAdoB4wHlAeQB
4wHoAeUB6AHmAeUB4wHpAegB5wHmAegB4wHnAekB4wHmAecB4wHcAeYB4wHdA
dwB4gHdAeMB4AHeAeEB4AHfAd4BAwIFAgQCAwLqAQUC6wHtAewB6wHuAe0BAQ
IDAgICAQLqAQMCAQLrAeoBAQLuAesBAQLvAe4BAQLwAe8B/wEIAgAC/wEJAgg
CBgLxAQcCBgLyAfEB/QH/Af4B/QEJAv8B/QEGAgkC/QHyAQYC/QHzAfIB/QH0
AfMB+wH5AfwB+wH6AfkB9wH1AfgB9wH2AfUBCwIMAgoCJQInAiYCJQINAicCD
gIQAg8CDgIRAhACJAITAhICIgIqAiMCIgIrAioCKAIUAikCKAIVAhQCIAIiAi
ECIAIrAiICIAIoAisCIAIVAigCIAIWAhUCIAIXAhYCHgIcAh8CHgIdAhwCGgI
YAhsCGgIZAhgCLAIvAi0ChwKGAokCiAKHAokCigKJAosCigKEAosChAKDAosC
iQKGAoUCiQKFAooChQKEAooCqAKPAqkCjQKMAoMCjAKLAoMCpAKDAqUCpgKDA
oICgwKmAqUCrQKcAq4CrQKdApwCnQKtAn8CrQKsAn8CrAKAAn8CrAKrAoACqw
KqAoACqgKBAoACfwJ+Ap0CnQJ+Ap4CfgJ9Ap4CngJ9Ap8CfQJ8Ap8CnwJ8AqA
CfAJ7AqACoAJ7AqECkAKPAqcCsgK0ArMCsgK3ArQCtwK1ArQCsgK4ArcCtgK1
ArcCsgK2ArgCsgK1ArYCsgKwAq8CsQKwArICvQK/Ar4CvQK5Ar8CvQK6ArkCv
QK7AroCvQK8ArsCwQLQAsAC1wLaAtgC2ALjAtcC5QLoAuYC8QLzAvIC8QL0Av
MC+gL1AvsC+AL2AvkC+AL3AvYCBgMIAwcDBwMKAwYDFQMWAxQDFwMZAxgDGAM
bAxcDtAOTA7UDtQOTA7YDkwOSA7gDkgORA7gDkQOQA7gDuAOQA6MDpQOPA6YD
jwOOA6YDpgOOA6cDjgONA6cDpwONA6gDjQOMA6gDqAOMA6kDqQOMA6oDjAOLA
6oDqgOLA6sDiwOKA6sDxAOfA8UDnwOeA8UDxQOeA8YDxgOeA8cDxwOdA8gDyg
OcA8sDwAO/A4IDvwODA4IDvwO+A4MDvgO9A4MDzQOaA84DzAOaA80DzAObA5o
DzAPLA5sDzgOaA88DuQPQA4UDuQOFA7oDhQOEA7oDugOEA7sDvAPRA4MDvAOD
A70DzwOGA9ADmgOGA88DmgOHA4YDmgOZA4cDmQOIA4cDmQOJA4gDmQOYA4kDr
QOsA4kDlwOJA5gDrgOXA68DrwOXA7ADlwOWA7ADsAOWA7EDlgOVA7EDsQOVA7
IDsgOUA7MDrAOKA4kDrAOrA4oDhgOFA9ADuwNnA2YDuQN6A9ADuQNlA2QDZgO
6A7sDpANVA1QDVQOkA6UDowNUA1MDVAOjA6QDpQNWA1UDewOzA9IDtAN7A9ID
YwO3A7gD4wP0A/UD4wPuA90D5APtA9sD7QPcA9sDBwT4AwgEAAT/AwkECgT/A
wsE/wP+AwsECwT+AwwE/gP9Aw0EAgT8AwME+wP6AwQEBQT6Aw4E+gP5Aw4EDg
T5AwYEAQT3AwgE9wMBBPYDEAQRBA8EGgQbBBIEHQQaBBIEEwQcBBIEGAQZBBQ
EFwQYBBQEFgQXBBQEFQQWBBQEHwQgBB4EIQQjBCIELwIsAi4CMQIxAi4CMAIz
AjMCMAIyAjUCNwI0AjYCOAI7AjkCOgI9Aj0COgI8Aj8CPwI8Aj4CQQJBAj4CQ
AJDAkMCQAJCAkUCRQJCAkQCRwJHAkQCRgJJAkkCRgJIAksCSwJIAkoCTQJNAk
oCTAJPAk8CTAJOAlECUQJOAlACUwJTAlACUgJVAlUCUgJUAlcCVwJUAlYCWQJ
ZAlYCWAItAlwCWgJbAl4CXgJbAl0CYAJgAl0CXwJhAqECewKjAqICYwJiAokC
igJkAmMCigKLAosCjAJlAmQCjAKNAmYCZQKNAo4CZwJmAo4CjwJoAmcCjwKQA
mkCaAKQApECagJpApECkgJrAmoCkgKTAmwCawKTApQCbQJsApQClQJuAm0ClQ
KWAm8CbgKWApcCcAJvApcCmAJxAnACmAKZAnICcQKZApoCcwJyApoCmwJ0AnM
CmwKcAnUCdAKcAp0CdgJ1Ap0CngJ3AnYCngKfAngCdwKfAqACeQJ4AqACoQJ6
AnkCxALCAsMCxgLIAsUCxwLKAsoCxwLJAswCzgLLAs0CzwLTAtEC0gLVAtUC0
gLUAtYC2gLXAtkC2wLeAtwC3QLgAuAC3QLfAuEC5ALiAuMC2ALoAuUC5wLqAu
oC5wLpAuYC7QLrAuwC7wLvAuwC7gLwAv4C/AL9AgADAgP/AgEDBAMEAwEDAwM
FAwsDCQMKAwcDDgMMAw0DEAMSAw8DEQMTAxwDGgMbAxgDOgM7AysDKgMtAzwD
LAMdAy4DHgMsAzwDLgMvAx8DHgMvAzADIAMfAzEDMgMiAyEDMgMzAyMDIgMzA
zQDJAMjAzQDNQMlAyQDNQM2AyYDJQM2AzcDJwMmAzcDOAMoAycDOAM5AykDKA
M5AzoDKgMpAz8DPQM+A0ADuwOEA9EDvANnA7sDvANoA2gDvAO9A2kDagO/A8A
DawNrA8ADwQNsA2wDwQPCA20DbgPDA8QDbwNvA8QDxQNwA3ADxQPGA3EDcQPG
A8cDcgNyA8cDyANzA3MDyAPJA3QDdAPJA8oDdQN1A8oDywN2A3YDywPMA3cDd
wPMA80DeAN4A80DzgN5A3kDzgPPA3oDZQO5A7oDZgNWA6UDpgNXA1cDpgOnA1
gDWAOnA6gDWQNZA6gDqQNaA1sDrgOvA1wDXAOvA7ADXQNdA7ADsQNeA14DsQO
yA18DXwOyA7MDewNgA7QDtQNhA2EDtQO2A2IDYgO2A7cDYwOgA6EDUQNQA6ED
ogNSA1EDfAN9A0IDQQN9A34DQwNCA34DfwNEA0MDfwOAA0UDRAOAA4EDRgNFA
4EDggNHA0YDggODA0gDRwOGA4cDSgNJA4cDiANLA0oDiAOJA0wDSwOJA4oDTQ
NMA4oDiwNOA00DiwOMA08DTgPeA+8D8APfA98D8APxA+AD4QPyA/MD4gPVA+c
D6APWA9YD6APpA9cD1wPpA+oD2APYA+oD6wPZA9kD6wPsA9oD5QPTA9QD5gM=