summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2713
-rw-r--r--PROTOCOL4
-rw-r--r--PROTOCOL.agent4
-rw-r--r--README2
-rw-r--r--auth-chall.c2
-rw-r--r--auth-options.c25
-rw-r--r--auth-pam.c4
-rw-r--r--auth.c5
-rw-r--r--auth.h6
-rw-r--r--auth2-hostbased.c5
-rw-r--r--auth2-pubkey.c625
-rw-r--r--authfd.c8
-rw-r--r--authfile.c6
-rw-r--r--channels.c63
-rw-r--r--channels.h5
-rw-r--r--clientloop.c32
-rw-r--r--compat.c51
-rw-r--r--compat.h4
-rwxr-xr-xconfig.guess6
-rwxr-xr-xconfigure124
-rw-r--r--configure.ac30
-rw-r--r--contrib/redhat/openssh.spec2
-rw-r--r--contrib/suse/openssh.spec2
-rw-r--r--dh.c49
-rw-r--r--dh.h3
-rw-r--r--digest-libc.c4
-rw-r--r--dispatch.c22
-rw-r--r--dns.h4
-rw-r--r--groupaccess.c6
-rw-r--r--gss-genr.c1
-rw-r--r--gss-serv.c40
-rw-r--r--hmac.c4
-rw-r--r--hostfile.c11
-rw-r--r--kex.c4
-rw-r--r--kexc25519.c7
-rw-r--r--kexc25519s.c3
-rw-r--r--kexgexc.c33
-rw-r--r--kexgexs.c49
-rw-r--r--krl.c4
-rw-r--r--match.c14
-rw-r--r--match.h6
-rw-r--r--misc.c4
-rw-r--r--moduli507
-rw-r--r--monitor.c22
-rw-r--r--monitor_wrap.c19
-rw-r--r--monitor_wrap.h6
-rw-r--r--mux.c23
-rw-r--r--myproposal.h25
-rw-r--r--openbsd-compat/bcrypt_pbkdf.c18
-rw-r--r--openbsd-compat/blowfish.c2
-rw-r--r--openbsd-compat/bsd-cygwin_util.c2
-rw-r--r--openbsd-compat/bsd-misc.h4
-rw-r--r--openbsd-compat/openbsd-compat.h2
-rw-r--r--openbsd-compat/rmd160.c2
-rw-r--r--packet.c50
-rw-r--r--readconf.c37
-rw-r--r--regress/Makefile12
-rw-r--r--regress/README.regress2
-rw-r--r--regress/cfgparse.sh75
-rw-r--r--regress/cipher-speed.sh4
-rw-r--r--regress/hostkey-rotate.sh8
-rw-r--r--regress/integrity.sh4
-rw-r--r--regress/kextype.sh4
-rw-r--r--regress/keys-command.sh59
-rw-r--r--regress/netcat.c8
-rw-r--r--regress/principals-command.sh141
-rw-r--r--regress/ssh-com.sh6
-rwxr-xr-xregress/ssh2putty.sh6
-rw-r--r--regress/test-exec.sh2
-rw-r--r--regress/try-ciphers.sh4
-rw-r--r--regress/unittests/hostkeys/test_iterate.c6
-rw-r--r--regress/unittests/sshkey/test_sshkey.c4
-rw-r--r--rijndael.c2
-rw-r--r--sandbox-seccomp-filter.c111
-rw-r--r--sandbox-systrace.c21
-rw-r--r--scp.c4
-rw-r--r--servconf.c176
-rw-r--r--servconf.h15
-rw-r--r--session.c8
-rw-r--r--sftp-client.c9
-rw-r--r--sftp-client.h6
-rw-r--r--sftp-server.c7
-rw-r--r--ssh-add.019
-rw-r--r--ssh-add.118
-rw-r--r--ssh-add.c20
-rw-r--r--ssh-agent.09
-rw-r--r--ssh-agent.113
-rw-r--r--ssh-agent.c80
-rw-r--r--ssh-keygen.c349
-rw-r--r--ssh-keyscan.c11
-rw-r--r--ssh-keysign.c4
-rw-r--r--ssh-pkcs11.c34
-rw-r--r--ssh-rsa.c4
-rw-r--r--ssh.051
-rw-r--r--ssh.132
-rw-r--r--ssh.c12
-rw-r--r--ssh_config.034
-rw-r--r--ssh_config.525
-rw-r--r--sshbuf-misc.c4
-rw-r--r--sshconnect.c7
-rw-r--r--sshconnect2.c5
-rw-r--r--sshd.06
-rw-r--r--sshd.86
-rw-r--r--sshd.c25
-rw-r--r--sshd_config4
-rw-r--r--sshd_config.0131
-rw-r--r--sshd_config.5102
-rw-r--r--sshkey.c201
-rw-r--r--sshkey.h3
-rw-r--r--sshpty.c4
-rw-r--r--uidswap.c6
-rw-r--r--uuencode.c4
-rw-r--r--version.h4
-rw-r--r--xmalloc.c18
-rw-r--r--xmalloc.h4
115 files changed, 4127 insertions, 2541 deletions
diff --git a/ChangeLog b/ChangeLog
index 092cc48ef..c63681f16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1535 @@
1commit 7de4b03a6e4071d454b72927ffaf52949fa34545
2Author: djm@openbsd.org <djm@openbsd.org>
3Date: Wed Jul 1 02:32:17 2015 +0000
4
5 upstream commit
6
7 twiddle; (this commit marks the openssh-6.9 release)
8
9 Upstream-ID: 78500582819f61dd8adee36ec5cc9b9ac9351234
10
11commit 1bf477d3cdf1a864646d59820878783d42357a1d
12Author: djm@openbsd.org <djm@openbsd.org>
13Date: Wed Jul 1 02:26:31 2015 +0000
14
15 upstream commit
16
17 better refuse ForwardX11Trusted=no connections attempted
18 after ForwardX11Timeout expires; reported by Jann Horn
19
20 Upstream-ID: bf0fddadc1b46a0334e26c080038313b4b6dea21
21
22commit 47aa7a0f8551b471fcae0447c1d78464f6dba869
23Author: djm@openbsd.org <djm@openbsd.org>
24Date: Wed Jul 1 01:56:13 2015 +0000
25
26 upstream commit
27
28 put back default PermitRootLogin=no
29
30 Upstream-ID: 7bdedd5cead99c57ed5571f3b6b7840922d5f728
31
32commit 984b064fe2a23733733262f88d2e1b2a1a501662
33Author: djm@openbsd.org <djm@openbsd.org>
34Date: Wed Jul 1 01:55:13 2015 +0000
35
36 upstream commit
37
38 openssh-6.9
39
40 Upstream-ID: 6cfe8e1904812531080e6ab6e752d7001b5b2d45
41
42commit d921082ed670f516652eeba50705e1e9f6325346
43Author: djm@openbsd.org <djm@openbsd.org>
44Date: Wed Jul 1 01:55:00 2015 +0000
45
46 upstream commit
47
48 reset default PermitRootLogin to 'yes' (momentarily, for
49 release)
50
51 Upstream-ID: cad8513527066e65dd7a1c16363d6903e8cefa24
52
53commit 66295e0e1ba860e527f191b6325d2d77dec4dbce
54Author: Damien Miller <djm@mindrot.org>
55Date: Wed Jul 1 11:49:12 2015 +1000
56
57 crank version numbers for release
58
59commit 37035c07d4f26bb1fbe000d2acf78efdb008681d
60Author: Damien Miller <djm@mindrot.org>
61Date: Wed Jul 1 10:49:37 2015 +1000
62
63 s/--with-ssh1/--without-ssh1/
64
65commit 629df770dbadc2accfbe1c81b3f31f876d0acd84
66Author: djm@openbsd.org <djm@openbsd.org>
67Date: Tue Jun 30 05:25:07 2015 +0000
68
69 upstream commit
70
71 fatal() when a remote window update causes the window
72 value to overflow. Reported by Georg Wicherski, ok markus@
73
74 Upstream-ID: ead397a9aceb3bf74ebfa5fcaf259d72e569f351
75
76commit f715afebe735d61df3fd30ad72d9ac1c8bd3b5f2
77Author: djm@openbsd.org <djm@openbsd.org>
78Date: Tue Jun 30 05:23:25 2015 +0000
79
80 upstream commit
81
82 Fix math error in remote window calculations that causes
83 eventual stalls for datagram channels. Reported by Georg Wicherski, ok
84 markus@
85
86 Upstream-ID: be54059d11bf64e0d85061f7257f53067842e2ab
87
88commit 52fb6b9b034fcfd24bf88cc7be313e9c31de9889
89Author: Damien Miller <djm@mindrot.org>
90Date: Tue Jun 30 16:05:40 2015 +1000
91
92 skip IPv6-related portions on hosts without IPv6
93
94 with Tim Rice
95
96commit 512caddf590857af6aa12218461b5c0441028cf5
97Author: djm@openbsd.org <djm@openbsd.org>
98Date: Mon Jun 29 22:35:12 2015 +0000
99
100 upstream commit
101
102 add getpid to sandbox, reachable by grace_alarm_handler
103
104 reported by Jakub Jelen; bz#2419
105
106 Upstream-ID: d0da1117c16d4c223954995d35b0f47c8f684cd8
107
108commit 78c2a4f883ea9aba866358e2acd9793a7f42ca93
109Author: djm@openbsd.org <djm@openbsd.org>
110Date: Fri Jun 26 05:13:20 2015 +0000
111
112 upstream commit
113
114 Fix \-escaping bug that caused forward path parsing to skip
115 two characters and skip past the end of the string.
116
117 Based on patch by Salvador Fandino; ok dtucker@
118
119 Upstream-ID: 7b879dc446335677cbe4cb549495636a0535f3bd
120
121commit bc20205c91c9920361d12b15d253d4997dba494a
122Author: Damien Miller <djm@mindrot.org>
123Date: Thu Jun 25 09:51:39 2015 +1000
124
125 add missing pselect6
126
127 patch from Jakub Jelen
128
129commit 9d27fb73b4a4e5e99cb880af790d5b1ce44f720a
130Author: djm@openbsd.org <djm@openbsd.org>
131Date: Wed Jun 24 23:47:23 2015 +0000
132
133 upstream commit
134
135 correct test to sshkey_sign(); spotted by Albert S.
136
137 Upstream-ID: 5f7347f40f0ca6abdaca2edb3bd62f4776518933
138
139commit 7ed01a96a1911d8b4a9ef4f3d064e1923bfad7e3
140Author: dtucker@openbsd.org <dtucker@openbsd.org>
141Date: Wed Jun 24 01:49:19 2015 +0000
142
143 upstream commit
144
145 Revert previous commit. We still want to call setgroups
146 in the case where there are zero groups to remove any that we might otherwise
147 inherit (as pointed out by grawity at gmail.com) and since the 2nd argument
148 to setgroups is always a static global it's always valid to dereference in
149 this case. ok deraadt@ djm@
150
151 Upstream-ID: 895b5ac560a10befc6b82afa778641315725fd01
152
153commit 882f8bf94f79528caa65b0ba71c185d705bb7195
154Author: dtucker@openbsd.org <dtucker@openbsd.org>
155Date: Wed Jun 24 01:49:19 2015 +0000
156
157 upstream commit
158
159 Revert previous commit. We still want to call setgroups in
160 the case where there are zero groups to remove any that we might otherwise
161 inherit (as pointed out by grawity at gmail.com) and since the 2nd argument
162 to setgroups is always a static global it's always valid to dereference in
163 this case. ok deraadt@ djm@
164
165 Upstream-ID: 895b5ac560a10befc6b82afa778641315725fd01
166
167commit 9488538a726951e82b3a4374f3c558d72c80a89b
168Author: djm@openbsd.org <djm@openbsd.org>
169Date: Mon Jun 22 23:42:16 2015 +0000
170
171 upstream commit
172
173 Don't count successful partial authentication as failures
174 in monitor; this may have caused the monitor to refuse multiple
175 authentications that would otherwise have successfully completed; ok markus@
176
177 Upstream-ID: eb74b8e506714d0f649bd5c300f762a527af04a3
178
179commit 63b78d003bd8ca111a736e6cea6333da50f5f09b
180Author: dtucker@openbsd.org <dtucker@openbsd.org>
181Date: Mon Jun 22 12:29:57 2015 +0000
182
183 upstream commit
184
185 Don't call setgroups if we have zero groups; there's no
186 guarantee that it won't try to deref the pointer. Based on a patch from mail
187 at quitesimple.org, ok djm deraadt
188
189 Upstream-ID: 2fff85e11d7a9a387ef7fddf41fbfaf566708ab1
190
191commit 5c15e22c691c79a47747bcf5490126656f97cecd
192Author: Damien Miller <djm@mindrot.org>
193Date: Thu Jun 18 15:07:56 2015 +1000
194
195 fix syntax error
196
197commit 596dbca82f3f567fb3d2d69af4b4e1d3ba1e6403
198Author: jsing@openbsd.org <jsing@openbsd.org>
199Date: Mon Jun 15 18:44:22 2015 +0000
200
201 upstream commit
202
203 If AuthorizedPrincipalsCommand is specified, however
204 AuthorizedPrincipalsFile is not (or is set to "none"), authentication will
205 potentially fail due to key_cert_check_authority() failing to locate a
206 principal that matches the username, even though an authorized principal has
207 already been matched in the output of the subprocess. Fix this by using the
208 same logic to determine if pw->pw_name should be passed, as is used to
209 determine if a authorized principal must be matched earlier on.
210
211 ok djm@
212
213 Upstream-ID: 43b42302ec846b0ea68aceb40677245391b9409d
214
215commit aff3e94c0d75d0d0fa84ea392b50ab04f8c57905
216Author: jsing@openbsd.org <jsing@openbsd.org>
217Date: Mon Jun 15 18:42:19 2015 +0000
218
219 upstream commit
220
221 Make the arguments to match_principals_command() similar
222 to match_principals_file(), by changing the last argument a struct
223 sshkey_cert * and dereferencing key->cert in the caller.
224
225 No functional change.
226
227 ok djm@
228
229 Upstream-ID: 533f99b844b21b47342b32b62e198dfffcf8651c
230
231commit 97e2e1596c202a4693468378b16b2353fd2d6c5e
232Author: Damien Miller <djm@mindrot.org>
233Date: Wed Jun 17 14:36:54 2015 +1000
234
235 trivial optimisation for seccomp-bpf
236
237 When doing arg inspection and the syscall doesn't match, skip
238 past the instruction that reloads the syscall into the accumulator,
239 since the accumulator hasn't been modified at this point.
240
241commit 99f33d7304893bd9fa04d227cb6e870171cded19
242Author: Damien Miller <djm@mindrot.org>
243Date: Wed Jun 17 10:50:51 2015 +1000
244
245 aarch64 support for seccomp-bpf sandbox
246
247 Also resort and tidy syscall list. Based on patches by Jakub Jelen
248 bz#2361; ok dtucker@
249
250commit 4ef702e1244633c1025ec7cfe044b9ab267097bf
251Author: djm@openbsd.org <djm@openbsd.org>
252Date: Mon Jun 15 01:32:50 2015 +0000
253
254 upstream commit
255
256 return failure on RSA signature error; reported by Albert S
257
258 Upstream-ID: e61bb93dbe0349625807b0810bc213a6822121fa
259
260commit a170f22baf18af0b1acf2788b8b715605f41a1f9
261Author: Tim Rice <tim@multitalents.net>
262Date: Tue Jun 9 22:41:13 2015 -0700
263
264 Fix t12 rules for out of tree builds.
265
266commit ec04dc4a5515c913121bc04ed261857e68fa5c18
267Author: millert@openbsd.org <millert@openbsd.org>
268Date: Fri Jun 5 15:13:13 2015 +0000
269
270 upstream commit
271
272 For "ssh -L 12345:/tmp/sock" don't fail with "No forward host
273 name." (we have a path, not a host name). Based on a diff from Jared
274 Yanovich. OK djm@
275
276 Upstream-ID: 2846b0a8c7de037e33657f95afbd282837fc213f
277
278commit 732d61f417a6aea0aa5308b59cb0f563bcd6edd6
279Author: djm@openbsd.org <djm@openbsd.org>
280Date: Fri Jun 5 03:44:14 2015 +0000
281
282 upstream commit
283
284 typo: accidental repetition; bz#2386
285
286 Upstream-ID: 45e620d99f6bc301e5949d34a54027374991c88b
287
288commit adfb24c69d1b6f5e758db200866c711e25a2ba73
289Author: Darren Tucker <dtucker@zip.com.au>
290Date: Fri Jun 5 14:51:40 2015 +1000
291
292 Add Linux powerpc64le and powerpcle entries.
293
294 Stopgap to resolve bz#2409 because we are so close to release and will
295 update config.guess and friends shortly after the release. ok djm@
296
297commit a1195a0fdc9eddddb04d3e9e44c4775431cb77da
298Merge: 6397eed d2480bc
299Author: Tim Rice <tim@multitalents.net>
300Date: Wed Jun 3 21:43:13 2015 -0700
301
302 Merge branch 'master' of git.mindrot.org:/var/git/openssh
303
304commit 6397eedf953b2b973d2d7cbb504ab501a07f8ddc
305Author: Tim Rice <tim@multitalents.net>
306Date: Wed Jun 3 21:41:11 2015 -0700
307
308 Remove unneeded backslashes. Patch from Ángel González
309
310commit d2480bcac1caf31b03068de877a47d6e1027bf6d
311Author: Darren Tucker <dtucker@zip.com.au>
312Date: Thu Jun 4 14:10:55 2015 +1000
313
314 Remove redundant include of stdarg.h. bz#2410
315
316commit 5e67859a623826ccdf2df284cbb37e2d8e2787eb
317Author: djm@openbsd.org <djm@openbsd.org>
318Date: Tue Jun 2 09:10:40 2015 +0000
319
320 upstream commit
321
322 mention CheckHostIP adding addresses to known_hosts;
323 bz#1993; ok dtucker@
324
325 Upstream-ID: fd44b68440fd0dc29abf9f2d3f703d74a2396cb7
326
327commit d7a58bbac6583e33fd5eca8e2c2cc70c57617818
328Author: Darren Tucker <dtucker@zip.com.au>
329Date: Tue Jun 2 20:15:26 2015 +1000
330
331 Replace strcpy with strlcpy.
332
333 ok djm, sanity check by Corinna Vinschen.
334
335commit 51a1c2115265c6e80ede8a5c9dccada9aeed7143
336Author: Damien Miller <djm@mindrot.org>
337Date: Fri May 29 18:27:21 2015 +1000
338
339 skip, rather than fatal when run without SUDO set
340
341commit 599f01142a376645b15cbc9349d7e8975e1cf245
342Author: Damien Miller <djm@mindrot.org>
343Date: Fri May 29 18:03:15 2015 +1000
344
345 fix merge botch that left ",," in KEX algs
346
347commit 0c2a81dfc21822f2423edd30751e5ec53467b347
348Author: Damien Miller <djm@mindrot.org>
349Date: Fri May 29 17:08:28 2015 +1000
350
351 re-enable SSH protocol 1 at compile time
352
353commit db438f9285d64282d3ac9e8c0944f59f037c0151
354Author: djm@openbsd.org <djm@openbsd.org>
355Date: Fri May 29 03:05:13 2015 +0000
356
357 upstream commit
358
359 make this work without SUDO set; ok dtucker@
360
361 Upstream-Regress-ID: bca88217b70bce2fe52b23b8e06bdeb82d98c715
362
363commit 1d9a2e2849c9864fe75daabf433436341c968e14
364Author: djm@openbsd.org <djm@openbsd.org>
365Date: Thu May 28 07:37:31 2015 +0000
366
367 upstream commit
368
369 wrap all moduli-related code in #ifdef WITH_OPENSSL.
370 based on patch from Reuben Hawkins; bz#2388 feedback and ok dtucker@
371
372 Upstream-ID: d80cfc8be3e6ec65b3fac9e87c4466533b31b7cf
373
374commit 496aeb25bc2d6c434171292e4714771b594bd00e
375Author: dtucker@openbsd.org <dtucker@openbsd.org>
376Date: Thu May 28 05:41:29 2015 +0000
377
378 upstream commit
379
380 Increase the allowed length of the known host file name
381 in the log message to be consistent with other cases. Part of bz#1993, ok
382 deraadt.
383
384 Upstream-ID: a9e97567be49f25daf286721450968251ff78397
385
386commit dd2cfeb586c646ff8d70eb93567b2e559ace5b14
387Author: dtucker@openbsd.org <dtucker@openbsd.org>
388Date: Thu May 28 05:09:45 2015 +0000
389
390 upstream commit
391
392 Fix typo (keywork->keyword)
393
394 Upstream-ID: 8aacd0f4089c0a244cf43417f4f9045dfaeab534
395
396commit 9cc6842493fbf23025ccc1edab064869640d3bec
397Author: djm@openbsd.org <djm@openbsd.org>
398Date: Thu May 28 04:50:53 2015 +0000
399
400 upstream commit
401
402 add error message on ftruncate failure; bz#2176
403
404 Upstream-ID: cbcc606e0b748520c74a210d8f3cc9718d3148cf
405
406commit d1958793a0072c22be26d136dbda5ae263e717a0
407Author: djm@openbsd.org <djm@openbsd.org>
408Date: Thu May 28 04:40:13 2015 +0000
409
410 upstream commit
411
412 make ssh-keygen default to ed25519 keys when compiled
413 without OpenSSL; bz#2388, ok dtucker@
414
415 Upstream-ID: 85a471fa6d3fa57a7b8e882d22cfbfc1d84cdc71
416
417commit 3ecde664c9fc5fb3667aedf9e6671462600f6496
418Author: dtucker@openbsd.org <dtucker@openbsd.org>
419Date: Wed May 27 23:51:10 2015 +0000
420
421 upstream commit
422
423 Reorder client proposal to prefer
424 diffie-hellman-group-exchange-sha1 over diffie-hellman-group14-sha1. ok djm@
425
426 Upstream-ID: 552c08d47347c3ee1a9a57d88441ab50abe17058
427
428commit 40f64292b907afd0a674fdbf3e4c2356d17a7d68
429Author: dtucker@openbsd.org <dtucker@openbsd.org>
430Date: Wed May 27 23:39:18 2015 +0000
431
432 upstream commit
433
434 Add a stronger (4k bit) fallback group that sshd can use
435 when the moduli file is missing or broken, sourced from RFC3526. bz#2302, ok
436 markus@ (earlier version), djm@
437
438 Upstream-ID: b635215746a25a829d117673d5e5a76d4baee7f4
439
440commit 5ab7d5fa03ad55bc438fab45dfb3aeb30a3c237a
441Author: Darren Tucker <dtucker@zip.com.au>
442Date: Thu May 28 10:03:40 2015 +1000
443
444 New moduli file from OpenBSD, removing 1k groups.
445
446 Remove 1k bit groups. ok deraadt@, markus@
447
448commit a71ba58adf34e599f30cdda6e9b93ae6e3937eea
449Author: djm@openbsd.org <djm@openbsd.org>
450Date: Wed May 27 05:15:02 2015 +0000
451
452 upstream commit
453
454 support PKCS#11 devices with external PIN entry devices
455 bz#2240, based on patch from Dirk-Willem van Gulik; feedback and ok dtucker@
456
457 Upstream-ID: 504568992b55a8fc984375242b1bd505ced61b0d
458
459commit b282fec1aa05246ed3482270eb70fc3ec5f39a00
460Author: dtucker@openbsd.org <dtucker@openbsd.org>
461Date: Tue May 26 23:23:40 2015 +0000
462
463 upstream commit
464
465 Cap DH-GEX group size at 4kbits for Cisco implementations.
466 Some of them will choke when asked for preferred sizes >4k instead of
467 returning the 4k group that they do have. bz#2209, ok djm@
468
469 Upstream-ID: 54b863a19713446b7431f9d06ad0532b4fcfef8d
470
471commit 3e91b4e8b0dc2b4b7e7d42cf6e8994a32e4cb55e
472Author: djm@openbsd.org <djm@openbsd.org>
473Date: Sun May 24 23:39:16 2015 +0000
474
475 upstream commit
476
477 add missing 'c' option to getopt(), case statement was
478 already there; from Felix Bolte
479
480 Upstream-ID: 9b19b4e2e0b54d6fefa0dfac707c51cf4bae3081
481
482commit 64a89ec07660abba4d0da7c0095b7371c98bab62
483Author: jsg@openbsd.org <jsg@openbsd.org>
484Date: Sat May 23 14:28:37 2015 +0000
485
486 upstream commit
487
488 fix a memory leak in an error path ok markus@ dtucker@
489
490 Upstream-ID: bc1da0f205494944918533d8780fde65dff6c598
491
492commit f948737449257d2cb83ffcfe7275eb79b677fd4a
493Author: djm@openbsd.org <djm@openbsd.org>
494Date: Fri May 22 05:28:45 2015 +0000
495
496 upstream commit
497
498 mention ssh-keygen -E for comparing legacy MD5
499 fingerprints; bz#2332
500
501 Upstream-ID: 079a3669549041dbf10dbc072d9563f0dc3b2859
502
503commit 0882332616e4f0272c31cc47bf2018f9cb258a4e
504Author: djm@openbsd.org <djm@openbsd.org>
505Date: Fri May 22 04:45:52 2015 +0000
506
507 upstream commit
508
509 Reorder EscapeChar option parsing to avoid a single-byte
510 out- of-bounds read. bz#2396 from Jaak Ristioja; ok dtucker@
511
512 Upstream-ID: 1dc6b5b63d1c8d9a88619da0b27ade461d79b060
513
514commit d7c31da4d42c115843edee2074d7d501f8804420
515Author: djm@openbsd.org <djm@openbsd.org>
516Date: Fri May 22 03:50:02 2015 +0000
517
518 upstream commit
519
520 add knob to relax GSSAPI host credential check for
521 multihomed hosts bz#928, patch by Simon Wilkinson; ok dtucker
522 (kerberos/GSSAPI is not compiled by default on OpenBSD)
523
524 Upstream-ID: 15ddf1c6f7fd9d98eea9962f480079ae3637285d
525
526commit aa72196a00be6e0b666215edcffbc10af234cb0e
527Author: Darren Tucker <dtucker@zip.com.au>
528Date: Fri May 22 17:49:46 2015 +1000
529
530 Include signal.h for sig_atomic_t, used by kex.h.
531
532 bz#2402, from tomas.kuthan at oracle com.
533
534commit 8b02481143d75e91c49d1bfae0876ac1fbf9511a
535Author: Darren Tucker <dtucker@zip.com.au>
536Date: Fri May 22 12:47:24 2015 +1000
537
538 Import updated moduli file from OpenBSD.
539
540commit 4739e8d5e1c0be49624082bd9f6b077e9e758db9
541Author: djm@openbsd.org <djm@openbsd.org>
542Date: Thu May 21 12:01:19 2015 +0000
543
544 upstream commit
545
546 Support "ssh-keygen -lF hostname" to find search known_hosts
547 and print key hashes. Already advertised by ssh-keygen(1), but not delivered
548 by code; ok dtucker@
549
550 Upstream-ID: 459e0e2bf39825e41b0811c336db2d56a1c23387
551
552commit e97201feca10b5196da35819ae516d0b87cf3a50
553Author: Damien Miller <djm@mindrot.org>
554Date: Thu May 21 17:55:15 2015 +1000
555
556 conditionalise util.h inclusion
557
558commit 13640798c7dd011ece0a7d02841fe48e94cfa0e0
559Author: djm@openbsd.org <djm@openbsd.org>
560Date: Thu May 21 06:44:25 2015 +0000
561
562 upstream commit
563
564 regress test for AuthorizedPrincipalsCommand
565
566 Upstream-Regress-ID: c658fbf1ab6b6011dc83b73402322e396f1e1219
567
568commit 84452c5d03c21f9bfb28c234e0dc1dc67dd817b1
569Author: djm@openbsd.org <djm@openbsd.org>
570Date: Thu May 21 06:40:02 2015 +0000
571
572 upstream commit
573
574 regress test for AuthorizedKeysCommand arguments
575
576 Upstream-Regress-ID: bbd65c13c6b3be9a442ec115800bff9625898f12
577
578commit bcc50d816187fa9a03907ac1f3a52f04a52e10d1
579Author: djm@openbsd.org <djm@openbsd.org>
580Date: Thu May 21 06:43:30 2015 +0000
581
582 upstream commit
583
584 add AuthorizedPrincipalsCommand that allows getting
585 authorized_principals from a subprocess rather than a file, which is quite
586 useful in deployments with large userbases
587
588 feedback and ok markus@
589
590 Upstream-ID: aa1bdac7b16fc6d2fa3524ef08f04c7258d247f6
591
592commit 24232a3e5ab467678a86aa67968bbb915caffed4
593Author: djm@openbsd.org <djm@openbsd.org>
594Date: Thu May 21 06:38:35 2015 +0000
595
596 upstream commit
597
598 support arguments to AuthorizedKeysCommand
599
600 bz#2081 loosely based on patch by Sami Hartikainen
601 feedback and ok markus@
602
603 Upstream-ID: b080387a14aa67dddd8ece67c00f268d626541f7
604
605commit d80fbe41a57c72420c87a628444da16d09d66ca7
606Author: djm@openbsd.org <djm@openbsd.org>
607Date: Thu May 21 04:55:51 2015 +0000
608
609 upstream commit
610
611 refactor: split base64 encoding of pubkey into its own
612 sshkey_to_base64() function and out of sshkey_write(); ok markus@
613
614 Upstream-ID: 54fc38f5832e9b91028900819bda46c3959a0c1a
615
616commit 7cc44ef74133a473734bbcbd3484f24d6a7328c5
617Author: deraadt@openbsd.org <deraadt@openbsd.org>
618Date: Mon May 18 15:06:05 2015 +0000
619
620 upstream commit
621
622 getentropy() and sendsyslog() have been around long
623 enough. openssh-portable may want the #ifdef's but not base. discussed with
624 djm few weeks back
625
626 Upstream-ID: 0506a4334de108e3fb6c66f8d6e0f9c112866926
627
628commit 9173d0fbe44de7ebcad8a15618e13a8b8d78902e
629Author: dtucker@openbsd.org <dtucker@openbsd.org>
630Date: Fri May 15 05:44:21 2015 +0000
631
632 upstream commit
633
634 Use a salted hash of the lock passphrase instead of plain
635 text and do constant-time comparisons of it. Should prevent leaking any
636 information about it via timing, pointed out by Ryan Castellucci. Add a 0.1s
637 incrementing delay for each failed unlock attempt up to 10s. ok markus@
638 (earlier version), djm@
639
640 Upstream-ID: c599fcc325aa1cc65496b25220b622d22208c85f
641
642commit d028d5d3a697c71b21e4066d8672cacab3caa0a8
643Author: Damien Miller <djm@mindrot.org>
644Date: Tue May 5 19:10:58 2015 +1000
645
646 upstream commit
647
648 - tedu@cvs.openbsd.org 2015/01/12 03:20:04
649 [bcrypt_pbkdf.c]
650 rename blocks to words. bcrypt "blocks" are unrelated to blowfish blocks,
651 nor are they the same size.
652
653commit f6391d4e59b058984163ab28f4e317e7a72478f1
654Author: Damien Miller <djm@mindrot.org>
655Date: Tue May 5 19:10:23 2015 +1000
656
657 upstream commit
658
659 - deraadt@cvs.openbsd.org 2015/01/08 00:30:07
660 [bcrypt_pbkdf.c]
661 declare a local version of MIN(), call it MINIMUM()
662
663commit 8ac6b13cc9113eb47cd9e86c97d7b26b4b71b77f
664Author: Damien Miller <djm@mindrot.org>
665Date: Tue May 5 19:09:46 2015 +1000
666
667 upstream commit
668
669 - djm@cvs.openbsd.org 2014/12/30 01:41:43
670 [bcrypt_pbkdf.c]
671 typo in comment: ouput => output
672
673commit 1f792489d5cf86a4f4e3003e6e9177654033f0f2
674Author: djm@openbsd.org <djm@openbsd.org>
675Date: Mon May 4 06:10:48 2015 +0000
676
677 upstream commit
678
679 Remove pattern length argument from match_pattern_list(), we
680 only ever use it for strlen(pattern).
681
682 Prompted by hanno AT hboeck.de pointing an out-of-bound read
683 error caused by an incorrect pattern length found using AFL
684 and his own tools.
685
686 ok markus@
687
688commit 639d6bc57b1942393ed12fb48f00bc05d4e093e4
689Author: djm@openbsd.org <djm@openbsd.org>
690Date: Fri May 1 07:10:01 2015 +0000
691
692 upstream commit
693
694 refactor ssh_dispatch_run_fatal() to use sshpkt_fatal()
695 to better report error conditions. Teach sshpkt_fatal() about ECONNRESET.
696
697 Improves error messages on TCP connection resets. bz#2257
698
699 ok dtucker@
700
701commit 9559d7de34c572d4d3fd990ca211f8ec99f62c4d
702Author: djm@openbsd.org <djm@openbsd.org>
703Date: Fri May 1 07:08:08 2015 +0000
704
705 upstream commit
706
707 a couple of parse targets were missing activep checks,
708 causing them to be misapplied in match context; bz#2272 diagnosis and
709 original patch from Sami Hartikainen ok dtucker@
710
711commit 7e8528cad04b2775c3b7db08abf8fb42e47e6b2a
712Author: djm@openbsd.org <djm@openbsd.org>
713Date: Fri May 1 04:17:51 2015 +0000
714
715 upstream commit
716
717 make handling of AuthorizedPrincipalsFile=none more
718 consistent with other =none options; bz#2288 from Jakub Jelen; ok dtucker@
719
720commit ca430d4d9cc0f62eca3b1fb1e2928395b7ce80f7
721Author: djm@openbsd.org <djm@openbsd.org>
722Date: Fri May 1 04:03:20 2015 +0000
723
724 upstream commit
725
726 remove failed remote forwards established by muliplexing
727 from the list of active forwards; bz#2363, patch mostly by Yoann Ricordel; ok
728 dtucker@
729
730commit 8312cfb8ad88657517b3e23ac8c56c8e38eb9792
731Author: djm@openbsd.org <djm@openbsd.org>
732Date: Fri May 1 04:01:58 2015 +0000
733
734 upstream commit
735
736 reduce stderr spam when using ssh -S /path/mux -O forward
737 -R 0:... ok dtucker@
738
739commit 179be0f5e62f1f492462571944e45a3da660d82b
740Author: djm@openbsd.org <djm@openbsd.org>
741Date: Fri May 1 03:23:51 2015 +0000
742
743 upstream commit
744
745 prevent authorized_keys options picked up on public key
746 tests without a corresponding private key authentication being applied to
747 other authentication methods. Reported by halex@, ok markus@
748
749commit a42d67be65b719a430b7fcaba2a4e4118382723a
750Author: djm@openbsd.org <djm@openbsd.org>
751Date: Fri May 1 03:20:54 2015 +0000
752
753 upstream commit
754
755 Don't make parsing of authorized_keys' environment=
756 option conditional on PermitUserEnv - always parse it, but only use the
757 result if the option is enabled. This prevents the syntax of authorized_keys
758 changing depending on which sshd_config options were enabled.
759
760 bz#2329; based on patch from coladict AT gmail.com, ok dtucker@
761
762commit e661a86353e11592c7ed6a847e19a83609f49e77
763Author: djm@openbsd.org <djm@openbsd.org>
764Date: Mon May 4 06:10:48 2015 +0000
765
766 upstream commit
767
768 Remove pattern length argument from match_pattern_list(), we
769 only ever use it for strlen(pattern).
770
771 Prompted by hanno AT hboeck.de pointing an out-of-bound read
772 error caused by an incorrect pattern length found using AFL
773 and his own tools.
774
775 ok markus@
776
777commit 0ef1de742be2ee4b10381193fe90730925b7f027
778Author: dtucker@openbsd.org <dtucker@openbsd.org>
779Date: Thu Apr 23 05:01:19 2015 +0000
780
781 upstream commit
782
783 Add a simple regression test for sshd's configuration
784 parser. Right now, all it does is run the output of sshd -T back through
785 itself and ensure the output is valid and invariant.
786
787commit 368f83c793275faa2c52f60eaa9bdac155c4254b
788Author: djm@openbsd.org <djm@openbsd.org>
789Date: Wed Apr 22 01:38:36 2015 +0000
790
791 upstream commit
792
793 use correct key for nested certificate test
794
795commit 8d4d1bfddbbd7d21f545dc6997081d1ea1fbc99a
796Author: djm@openbsd.org <djm@openbsd.org>
797Date: Fri May 1 07:11:47 2015 +0000
798
799 upstream commit
800
801 mention that the user's shell from /etc/passwd is used
802 for commands too; bz#1459 ok dtucker@
803
804commit 5ab283d0016bbc9d4d71e8e5284d011bc5a930cf
805Author: djm@openbsd.org <djm@openbsd.org>
806Date: Fri May 8 07:29:00 2015 +0000
807
808 upstream commit
809
810 whitespace
811
812 Upstream-Regress-ID: 6b708a3e709d5b7fd37890f874bafdff1f597519
813
814commit 8377d5008ad260048192e1e56ad7d15a56d103dd
815Author: djm@openbsd.org <djm@openbsd.org>
816Date: Fri May 8 07:26:13 2015 +0000
817
818 upstream commit
819
820 whitespace at EOL
821
822 Upstream-Regress-ID: 9c48911643d5b05173b36a012041bed4080b8554
823
824commit c28a3436fa8737709ea88e4437f8f23a6ab50359
825Author: djm@openbsd.org <djm@openbsd.org>
826Date: Fri May 8 06:45:13 2015 +0000
827
828 upstream commit
829
830 moar whitespace at eol
831
832 Upstream-ID: 64eaf872a3ba52ed41e494287e80d40aaba4b515
833
834commit 2b64c490468fd4ca35ac8d5cc31c0520dc1508bb
835Author: djm@openbsd.org <djm@openbsd.org>
836Date: Fri May 8 06:41:56 2015 +0000
837
838 upstream commit
839
840 whitespace at EOL
841
842 Upstream-ID: 57bcf67d666c6fc1ad798aee448fdc3f70f7ec2c
843
844commit 4e636cf201ce6e7e3b9088568218f9d4e2c51712
845Author: djm@openbsd.org <djm@openbsd.org>
846Date: Fri May 8 03:56:51 2015 +0000
847
848 upstream commit
849
850 whitespace at EOL
851
852commit 38b8272f823dc1dd4e29dbcee83943ed48bb12fa
853Author: dtucker@openbsd.org <dtucker@openbsd.org>
854Date: Mon May 4 01:47:53 2015 +0000
855
856 upstream commit
857
858 Use diff w/out -u for better portability
859
860commit 297060f42d5189a4065ea1b6f0afdf6371fb0507
861Author: dtucker@openbsd.org <dtucker@openbsd.org>
862Date: Fri May 8 03:25:07 2015 +0000
863
864 upstream commit
865
866 Use xcalloc for permitted_adm_opens instead of xmalloc to
867 ensure it's zeroed. Fixes post-auth crash with permitopen=none. bz#2355, ok
868 djm@
869
870commit 63ebf019be863b2d90492a85e248cf55a6e87403
871Author: djm@openbsd.org <djm@openbsd.org>
872Date: Fri May 8 03:17:49 2015 +0000
873
874 upstream commit
875
876 don't choke on new-format private keys encrypted with an
877 AEAD cipher; bz#2366, patch from Ron Frederick; ok markus@
878
879commit f8484dac678ab3098ae522a5f03bb2530f822987
880Author: dtucker@openbsd.org <dtucker@openbsd.org>
881Date: Wed May 6 05:45:17 2015 +0000
882
883 upstream commit
884
885 Clarify pseudo-terminal request behaviour and use
886 "pseudo-terminal" consistently. bz#1716, ok jmc@ "I like it" deraadt@.
887
888commit ea139507bef8bad26e86ed99a42c7233ad115c38
889Author: dtucker@openbsd.org <dtucker@openbsd.org>
890Date: Wed May 6 04:07:18 2015 +0000
891
892 upstream commit
893
894 Blacklist DH-GEX for specific PuTTY versions known to
895 send non-RFC4419 DH-GEX messages rather than all versions of PuTTY.
896 According to Simon Tatham, 0.65 and newer versions will send RFC4419 DH-GEX
897 messages. ok djm@
898
899commit b58234f00ee3872eb84f6e9e572a9a34e902e36e
900Author: dtucker@openbsd.org <dtucker@openbsd.org>
901Date: Tue May 5 10:17:49 2015 +0000
902
903 upstream commit
904
905 WinSCP doesn't implement RFC4419 DH-GEX so flag it so we
906 don't offer that KEX method. ok markus@
907
908commit d5b1507a207253b39e810e91e68f9598691b7a29
909Author: jsg@openbsd.org <jsg@openbsd.org>
910Date: Tue May 5 02:48:17 2015 +0000
911
912 upstream commit
913
914 use the sizeof the struct not the sizeof a pointer to the
915 struct in ssh_digest_start()
916
917 This file is only used if ssh is built with OPENSSL=no
918
919 ok markus@
920
921commit a647b9b8e616c231594b2710c925d31b1b8afea3
922Author: Darren Tucker <dtucker@zip.com.au>
923Date: Fri May 8 11:07:27 2015 +1000
924
925 Put brackets around mblen() compat constant.
926
927 This might help with the reported problem cross compiling for Android
928 ("error: expected identifier or '(' before numeric constant") but
929 shouldn't hurt in any case.
930
931commit d1680d36e17244d9af3843aeb5025cb8e40d6c07
932Author: Darren Tucker <dtucker@zip.com.au>
933Date: Thu Apr 30 09:18:11 2015 +1000
934
935 xrealloc -> xreallocarray in portable code too.
936
937commit 531a57a3893f9fcd4aaaba8c312b612bbbcc021e
938Author: dtucker@openbsd.org <dtucker@openbsd.org>
939Date: Wed Apr 29 03:48:56 2015 +0000
940
941 upstream commit
942
943 Allow ListenAddress, Port and AddressFamily in any
944 order. bz#68, ok djm@, jmc@ (for the man page bit).
945
946commit c1d5bcf1aaf1209af02f79e48ba1cbc76a87b56f
947Author: jmc@openbsd.org <jmc@openbsd.org>
948Date: Tue Apr 28 13:47:38 2015 +0000
949
950 upstream commit
951
952 enviroment -> environment: apologies to darren for not
953 spotting that first time round...
954
955commit 43beea053db191cac47c2cd8d3dc1930158aff1a
956Author: dtucker@openbsd.org <dtucker@openbsd.org>
957Date: Tue Apr 28 10:25:15 2015 +0000
958
959 upstream commit
960
961 Fix typo in previous
962
963commit 85b96ef41374f3ddc9139581f87da09b2cd9199e
964Author: dtucker@openbsd.org <dtucker@openbsd.org>
965Date: Tue Apr 28 10:17:58 2015 +0000
966
967 upstream commit
968
969 Document that the TERM environment variable is not
970 subject to SendEnv and AcceptEnv. bz#2386, based loosely on a patch from
971 jjelen at redhat, help and ok jmc@
972
973commit 88a7c598a94ff53f76df228eeaae238d2d467565
974Author: djm@openbsd.org <djm@openbsd.org>
975Date: Mon Apr 27 21:42:48 2015 +0000
976
977 upstream commit
978
979 Make sshd default to PermitRootLogin=no; ok deraadt@
980 rpe@
981
982commit 734226b4480a6c736096c729fcf6f391400599c7
983Author: djm@openbsd.org <djm@openbsd.org>
984Date: Mon Apr 27 01:52:30 2015 +0000
985
986 upstream commit
987
988 fix compilation with OPENSSL=no; ok dtucker@
989
990commit a4b9d2ce1eb7703eaf0809b0c8a82ded8aa4f1c6
991Author: dtucker@openbsd.org <dtucker@openbsd.org>
992Date: Mon Apr 27 00:37:53 2015 +0000
993
994 upstream commit
995
996 Include stdio.h for FILE (used in sshkey.h) so it
997 compiles with OPENSSL=no.
998
999commit dbcc652f4ca11fe04e5930c7ef18a219318c6cda
1000Author: djm@openbsd.org <djm@openbsd.org>
1001Date: Mon Apr 27 00:21:21 2015 +0000
1002
1003 upstream commit
1004
1005 allow "sshd -f none" to skip reading the config file,
1006 much like "ssh -F none" does. ok dtucker
1007
1008commit b7ca276fca316c952f0b90f5adb1448c8481eedc
1009Author: jmc@openbsd.org <jmc@openbsd.org>
1010Date: Fri Apr 24 06:26:49 2015 +0000
1011
1012 upstream commit
1013
1014 combine -Dd onto one line and update usage();
1015
1016commit 2ea974630d7017e4c7666d14d9dc939707613e96
1017Author: djm@openbsd.org <djm@openbsd.org>
1018Date: Fri Apr 24 05:26:44 2015 +0000
1019
1020 upstream commit
1021
1022 add ssh-agent -D to leave ssh-agent in foreground
1023 without enabling debug mode; bz#2381 ok dtucker@
1024
1025commit 8ac2ffd7aa06042f6b924c87139f2fea5c5682f7
1026Author: deraadt@openbsd.org <deraadt@openbsd.org>
1027Date: Fri Apr 24 01:36:24 2015 +0000
1028
1029 upstream commit
1030
1031 2*len -> use xreallocarray() ok djm
1032
1033commit 657a5fbc0d0aff309079ff8fb386f17e964963c2
1034Author: deraadt@openbsd.org <deraadt@openbsd.org>
1035Date: Fri Apr 24 01:36:00 2015 +0000
1036
1037 upstream commit
1038
1039 rename xrealloc() to xreallocarray() since it follows
1040 that form. ok djm
1041
1042commit 1108ae242fdd2c304307b68ddf46aebe43ebffaa
1043Author: dtucker@openbsd.org <dtucker@openbsd.org>
1044Date: Thu Apr 23 04:59:10 2015 +0000
1045
1046 upstream commit
1047
1048 Two small fixes for sshd -T: ListenAddress'es are added
1049 to a list head so reverse the order when printing them to ensure the
1050 behaviour remains the same, and print StreamLocalBindMask as octal with
1051 leading zero. ok deraadt@
1052
1053commit bd902b8473e1168f19378d5d0ae68d0c203525df
1054Author: dtucker@openbsd.org <dtucker@openbsd.org>
1055Date: Thu Apr 23 04:53:53 2015 +0000
1056
1057 upstream commit
1058
1059 Check for and reject missing arguments for
1060 VersionAddendum and ForceCommand. bz#2281, patch from plautrba at redhat com,
1061 ok djm@
1062
1063commit ca42c1758575e592239de1d5755140e054b91a0d
1064Author: djm@openbsd.org <djm@openbsd.org>
1065Date: Wed Apr 22 01:24:01 2015 +0000
1066
1067 upstream commit
1068
1069 unknown certificate extensions are non-fatal, so don't
1070 fatal when they are encountered; bz#2387 reported by Bob Van Zant; ok
1071 dtucker@
1072
1073commit 39bfbf7caad231cc4bda6909fb1af0705bca04d8
1074Author: jsg@openbsd.org <jsg@openbsd.org>
1075Date: Tue Apr 21 07:01:00 2015 +0000
1076
1077 upstream commit
1078
1079 Add back a backslash removed in rev 1.42 so
1080 KEX_SERVER_ENCRYPT will include aes again.
1081
1082 ok deraadt@
1083
1084commit 6b0d576bb87eca3efd2b309fcfe4edfefc289f9c
1085Author: djm@openbsd.org <djm@openbsd.org>
1086Date: Fri Apr 17 13:32:09 2015 +0000
1087
1088 upstream commit
1089
1090 s/recommended/required/ that private keys be og-r this
1091 wording change was made a while ago but got accidentally reverted
1092
1093commit 44a8e7ce6f3ab4c2eb1ae49115c210b98e53c4df
1094Author: djm@openbsd.org <djm@openbsd.org>
1095Date: Fri Apr 17 13:25:52 2015 +0000
1096
1097 upstream commit
1098
1099 don't try to cleanup NULL KEX proposals in
1100 kex_prop_free(); found by Jukka Taimisto and Markus Hietava
1101
1102commit 3038a191872d2882052306098c1810d14835e704
1103Author: djm@openbsd.org <djm@openbsd.org>
1104Date: Fri Apr 17 13:19:22 2015 +0000
1105
1106 upstream commit
1107
1108 use error/logit/fatal instead of fprintf(stderr, ...)
1109 and exit(0), fix a few errors that were being printed to stdout instead of
1110 stderr and a few non-errors that were going to stderr instead of stdout
1111 bz#2325; ok dtucker
1112
1113commit a58be33cb6cd24441fa7e634db0e5babdd56f07f
1114Author: djm@openbsd.org <djm@openbsd.org>
1115Date: Fri Apr 17 13:16:48 2015 +0000
1116
1117 upstream commit
1118
1119 debug log missing DISPLAY environment when X11
1120 forwarding requested; bz#1682 ok dtucker@
1121
1122commit 17d4d9d9fbc8fb80e322f94d95eecc604588a474
1123Author: djm@openbsd.org <djm@openbsd.org>
1124Date: Fri Apr 17 04:32:31 2015 +0000
1125
1126 upstream commit
1127
1128 don't call record_login() in monitor when UseLogin is
1129 enabled; bz#278 reported by drk AT sgi.com; ok dtucker
1130
1131commit 40132ff87b6cbc3dc05fb5df2e9d8e3afa06aafd
1132Author: dtucker@openbsd.org <dtucker@openbsd.org>
1133Date: Fri Apr 17 04:12:35 2015 +0000
1134
1135 upstream commit
1136
1137 Add some missing options to sshd -T and fix the output
1138 of VersionAddendum HostCertificate. bz#2346, patch from jjelen at redhat
1139 com, ok djm.
1140
1141commit 6cc7cfa936afde2d829e56ee6528c7ea47a42441
1142Author: dtucker@openbsd.org <dtucker@openbsd.org>
1143Date: Thu Apr 16 23:25:50 2015 +0000
1144
1145 upstream commit
1146
1147 Document "none" for PidFile XAuthLocation
1148 TrustedUserCAKeys and RevokedKeys. bz#2382, feedback from jmc@, ok djm@
1149
1150commit 15fdfc9b1c6808b26bc54d4d61a38b54541763ed
1151Author: dtucker@openbsd.org <dtucker@openbsd.org>
1152Date: Wed Apr 15 23:23:25 2015 +0000
1153
1154 upstream commit
1155
1156 Plug leak of address passed to logging. bz#2373, patch
1157 from jjelen at redhat, ok markus@
1158
1159commit bb2289e2a47d465eaaaeff3dee2a6b7777b4c291
1160Author: dtucker@openbsd.org <dtucker@openbsd.org>
1161Date: Tue Apr 14 04:17:03 2015 +0000
1162
1163 upstream commit
1164
1165 Output remote username in debug output since with Host
1166 and Match it's not always obvious what it will be. bz#2368, ok djm@
1167
1168commit 70860b6d07461906730632f9758ff1b7c98c695a
1169Author: Darren Tucker <dtucker@zip.com.au>
1170Date: Fri Apr 17 10:56:13 2015 +1000
1171
1172 Format UsePAM setting when using sshd -T.
1173
1174 Part of bz#2346, patch from jjelen at redhat com.
1175
1176commit ee15d9c9f0720f5a8b0b34e4b10ecf21f9824814
1177Author: Darren Tucker <dtucker@zip.com.au>
1178Date: Fri Apr 17 10:40:23 2015 +1000
1179
1180 Wrap endian.h include inside ifdef (bz#2370).
1181
1182commit 408f4c2ad4a4c41baa7b9b2b7423d875abbfa70b
1183Author: Darren Tucker <dtucker@zip.com.au>
1184Date: Fri Apr 17 09:39:58 2015 +1000
1185
1186 Look for '${host}-ar' before 'ar'.
1187
1188 This changes configure.ac to look for '${host}-ar' as set by
1189 AC_CANONICAL_HOST before looking for the unprefixed 'ar'.
1190 Useful when cross-compiling when all your binutils are prefixed.
1191
1192 Patch from moben at exherbo org via astrand at lysator liu se and
1193 bz#2352.
1194
1195commit 673a1c16ad078d41558247ce739fe812c960acc8
1196Author: Damien Miller <djm@google.com>
1197Date: Thu Apr 16 11:40:20 2015 +1000
1198
1199 remove dependency on arpa/telnet.h
1200
1201commit 202d443eeda1829d336595a3cfc07827e49f45ed
1202Author: Darren Tucker <dtucker@zip.com.au>
1203Date: Wed Apr 15 15:59:49 2015 +1000
1204
1205 Remove duplicate include of pwd.h. bz#2337, patch from Mordy Ovits.
1206
1207commit 597986493412c499f2bc2209420cb195f97b3668
1208Author: Damien Miller <djm@google.com>
1209Date: Thu Apr 9 10:14:48 2015 +1000
1210
1211 platform's with openpty don't need pty_release
1212
1213commit 318be28cda1fd9108f2e6f2f86b0b7589ba2aed0
1214Author: djm@openbsd.org <djm@openbsd.org>
1215Date: Mon Apr 13 02:04:08 2015 +0000
1216
1217 upstream commit
1218
1219 deprecate ancient, pre-RFC4419 and undocumented
1220 SSH2_MSG_KEX_DH_GEX_REQUEST_OLD message; ok markus@ deraadt@ "seems
1221 reasonable" dtucker@
1222
1223commit d8f391caef62378463a0e6b36f940170dadfe605
1224Author: dtucker@openbsd.org <dtucker@openbsd.org>
1225Date: Fri Apr 10 05:16:50 2015 +0000
1226
1227 upstream commit
1228
1229 Don't send hostkey advertisments
1230 (hostkeys-00@openssh.com) to current versions of Tera Term as they can't
1231 handle them. Newer versions should be OK. Patch from Bryan Drewery and
1232 IWAMOTO Kouichi, ok djm@
1233
1234commit 2c2cfe1a1c97eb9a08cc9817fd0678209680c636
1235Author: djm@openbsd.org <djm@openbsd.org>
1236Date: Fri Apr 10 00:08:55 2015 +0000
1237
1238 upstream commit
1239
1240 include port number if a non-default one has been
1241 specified; based on patch from Michael Handler
1242
1243commit 4492a4f222da4cf1e8eab12689196322e27b08c4
1244Author: djm@openbsd.org <djm@openbsd.org>
1245Date: Tue Apr 7 23:00:42 2015 +0000
1246
1247 upstream commit
1248
1249 treat Protocol=1,2|2,1 as Protocol=2 when compiled
1250 without SSH1 support; ok dtucker@ millert@
1251
1252commit c265e2e6e932efc6d86f6cc885dea33637a67564
1253Author: miod@openbsd.org <miod@openbsd.org>
1254Date: Sun Apr 5 15:43:43 2015 +0000
1255
1256 upstream commit
1257
1258 Do not use int for sig_atomic_t; spotted by
1259 christos@netbsd; ok markus@
1260
1261commit e7bf3a5eda6a1b02bef6096fed78527ee11e54cc
1262Author: Darren Tucker <dtucker@zip.com.au>
1263Date: Tue Apr 7 10:48:04 2015 +1000
1264
1265 Use do{}while(0) for no-op functions.
1266
1267 From FreeBSD.
1268
1269commit bb99844abae2b6447272f79e7fa84134802eb4df
1270Author: Darren Tucker <dtucker@zip.com.au>
1271Date: Tue Apr 7 10:47:15 2015 +1000
1272
1273 Wrap blf.h include in ifdef. From FreeBSD.
1274
1275commit d9b9b43656091cf0ad55c122f08fadb07dad0abd
1276Author: Darren Tucker <dtucker@zip.com.au>
1277Date: Tue Apr 7 09:10:00 2015 +1000
1278
1279 Fix misspellings of regress CONFOPTS env variables.
1280
1281 Patch from Bryan Drewery.
1282
1283commit 3f4ea3c9ab1d32d43c9222c4351f58ca11144156
1284Author: djm@openbsd.org <djm@openbsd.org>
1285Date: Fri Apr 3 22:17:27 2015 +0000
1286
1287 upstream commit
1288
1289 correct return value in pubkey parsing, spotted by Ben Hawkes
1290 ok markus@
1291
1292commit 7da2be0cb9601ed25460c83aa4d44052b967ba0f
1293Author: djm@openbsd.org <djm@openbsd.org>
1294Date: Tue Mar 31 22:59:01 2015 +0000
1295
1296 upstream commit
1297
1298 adapt to recent hostfile.c change: when parsing
1299 known_hosts without fully parsing the keys therein, hostkeys_foreach() will
1300 now correctly identify KEY_RSA1 keys; ok markus@ miod@
1301
1302commit 9e1777a0d1c706714b055811c12ab8cc21033e4a
1303Author: markus@openbsd.org <markus@openbsd.org>
1304Date: Tue Mar 24 20:19:15 2015 +0000
1305
1306 upstream commit
1307
1308 use ${SSH} for -Q instead of installed ssh
1309
1310commit ce1b358ea414a2cc88e4430cd5a2ea7fecd9de57
1311Author: djm@openbsd.org <djm@openbsd.org>
1312Date: Mon Mar 16 22:46:14 2015 +0000
1313
1314 upstream commit
1315
1316 make CLEANFILES clean up more of the tests' droppings
1317
1318commit 398f9ef192d820b67beba01ec234d66faca65775
1319Author: djm@openbsd.org <djm@openbsd.org>
1320Date: Tue Mar 31 22:57:06 2015 +0000
1321
1322 upstream commit
1323
1324 downgrade error() for known_hosts parse errors to debug()
1325 to quiet warnings from ssh1 keys present when compiled !ssh1.
1326
1327 also identify ssh1 keys when scanning, even when compiled !ssh1
1328
1329 ok markus@ miod@
1330
1331commit 9a47ab80030a31f2d122b8fd95bd48c408b9fcd9
1332Author: djm@openbsd.org <djm@openbsd.org>
1333Date: Tue Mar 31 22:55:50 2015 +0000
1334
1335 upstream commit
1336
1337 fd leak for !ssh1 case; found by unittests; ok markus@
1338
1339commit c9a0805a6280681901c270755a7cd630d7c5280e
1340Author: djm@openbsd.org <djm@openbsd.org>
1341Date: Tue Mar 31 22:55:24 2015 +0000
1342
1343 upstream commit
1344
1345 don't fatal when a !ssh1 sshd is reexeced from a w/ssh1
1346 listener; reported by miod@; ok miod@ markus@
1347
1348commit 704d8c88988cae38fb755a6243b119731d223222
1349Author: tobias@openbsd.org <tobias@openbsd.org>
1350Date: Tue Mar 31 11:06:49 2015 +0000
1351
1352 upstream commit
1353
1354 Comments are only supported for RSA1 keys. If a user
1355 tried to add one and entered his passphrase, explicitly clear it before exit.
1356 This is done in all other error paths, too.
1357
1358 ok djm
1359
1360commit 78de1673c05ea2c33e0d4a4b64ecb5186b6ea2e9
1361Author: jmc@openbsd.org <jmc@openbsd.org>
1362Date: Mon Mar 30 18:28:37 2015 +0000
1363
1364 upstream commit
1365
1366 ssh-askpass(1) is the default, overridden by SSH_ASKPASS;
1367 diff originally from jiri b;
1368
1369commit 26e0bcf766fadb4a44fb6199386fb1dcab65ad00
1370Author: djm@openbsd.org <djm@openbsd.org>
1371Date: Mon Mar 30 00:00:29 2015 +0000
1372
1373 upstream commit
1374
1375 fix uninitialised memory read when parsing a config file
1376 consisting of a single nul byte. Found by hanno AT hboeck.de using AFL; ok
1377 dtucker
1378
1379commit fecede00a76fbb33a349f5121c0b2f9fbc04a777
1380Author: markus@openbsd.org <markus@openbsd.org>
1381Date: Thu Mar 26 19:32:19 2015 +0000
1382
1383 upstream commit
1384
1385 sigp and lenp are not optional in ssh_agent_sign(); ok
1386 djm@
1387
1388commit 1b0ef3813244c78669e6d4d54c624f600945327d
1389Author: naddy@openbsd.org <naddy@openbsd.org>
1390Date: Thu Mar 26 12:32:38 2015 +0000
1391
1392 upstream commit
1393
1394 don't try to load .ssh/identity by default if SSH1 is
1395 disabled; ok markus@
1396
1397commit f9b78852379b74a2d14e6fc94fe52af30b7e9c31
1398Author: djm@openbsd.org <djm@openbsd.org>
1399Date: Thu Mar 26 07:00:04 2015 +0000
1400
1401 upstream commit
1402
1403 ban all-zero curve25519 keys as recommended by latest
1404 CFRG curves draft; ok markus
1405
1406commit b8afbe2c1aaf573565e4da775261dfafc8b1ba9c
1407Author: djm@openbsd.org <djm@openbsd.org>
1408Date: Thu Mar 26 06:59:28 2015 +0000
1409
1410 upstream commit
1411
1412 relax bits needed check to allow
1413 diffie-hellman-group1-sha1 key exchange to complete for chacha20-poly1305 was
1414 selected as symmetric cipher; ok markus
1415
1416commit 47842f71e31da130555353c1d57a1e5a8937f1c0
1417Author: markus@openbsd.org <markus@openbsd.org>
1418Date: Wed Mar 25 19:29:58 2015 +0000
1419
1420 upstream commit
1421
1422 ignore v1 errors on ssh-add -D; only try v2 keys on
1423 -l/-L (unless WITH_SSH1) ok djm@
1424
1425commit 5f57e77f91bf2230c09eca96eb5ecec39e5f2da6
1426Author: markus@openbsd.org <markus@openbsd.org>
1427Date: Wed Mar 25 19:21:48 2015 +0000
1428
1429 upstream commit
1430
1431 unbreak ssh_agent_sign (lenp vs *lenp)
1432
1433commit 4daeb67181054f2a377677fac919ee8f9ed3490e
1434Author: markus@openbsd.org <markus@openbsd.org>
1435Date: Tue Mar 24 20:10:08 2015 +0000
1436
1437 upstream commit
1438
1439 don't leak 'setp' on error; noted by Nicholas Lemonias;
1440 ok djm@
1441
1442commit 7d4f96f9de2a18af0d9fa75ea89a4990de0344f5
1443Author: markus@openbsd.org <markus@openbsd.org>
1444Date: Tue Mar 24 20:09:11 2015 +0000
1445
1446 upstream commit
1447
1448 consistent check for NULL as noted by Nicholas
1449 Lemonias; ok djm@
1450
1451commit df100be51354e447d9345cf1ec22e6013c0eed50
1452Author: markus@openbsd.org <markus@openbsd.org>
1453Date: Tue Mar 24 20:03:44 2015 +0000
1454
1455 upstream commit
1456
1457 correct fmt-string for size_t as noted by Nicholas
1458 Lemonias; ok djm@
1459
1460commit a22b9ef21285e81775732436f7c84a27bd3f71e0
1461Author: djm@openbsd.org <djm@openbsd.org>
1462Date: Tue Mar 24 09:17:21 2015 +0000
1463
1464 upstream commit
1465
1466 promote chacha20-poly1305@openssh.com to be the default
1467 cipher; ok markus
1468
1469commit 2aa9da1a3b360cf7b13e96fe1521534b91501fb5
1470Author: djm@openbsd.org <djm@openbsd.org>
1471Date: Tue Mar 24 01:29:19 2015 +0000
1472
1473 upstream commit
1474
1475 Compile-time disable SSH protocol 1. You can turn it
1476 back on using the Makefile.inc knob if you need it to talk to ancient
1477 devices.
1478
1479commit 53097b2022154edf96b4e8526af5666f979503f7
1480Author: djm@openbsd.org <djm@openbsd.org>
1481Date: Tue Mar 24 01:11:12 2015 +0000
1482
1483 upstream commit
1484
1485 fix double-negative error message "ssh1 is not
1486 unsupported"
1487
1488commit 5c27e3b6ec2db711dfcd40e6359c0bcdd0b62ea9
1489Author: djm@openbsd.org <djm@openbsd.org>
1490Date: Mon Mar 23 06:06:38 2015 +0000
1491
1492 upstream commit
1493
1494 for ssh-keygen -A, don't try (and fail) to generate ssh
1495 v.1 keys when compiled without SSH1 support RSA/DSA/ECDSA keys when compiled
1496 without OpenSSL based on patch by Mike Frysinger; bz#2369
1497
1498commit 725fd22a8c41db7de73a638539a5157b7e4424ae
1499Author: djm@openbsd.org <djm@openbsd.org>
1500Date: Wed Mar 18 01:44:21 2015 +0000
1501
1502 upstream commit
1503
1504 KRL support doesn't need OpenSSL anymore, remove #ifdefs
1505 from around call
1506
1507commit b07011c18e0b2e172c5fd09d21fb159a0bf5fcc7
1508Author: djm@openbsd.org <djm@openbsd.org>
1509Date: Mon Mar 16 11:09:52 2015 +0000
1510
1511 upstream commit
1512
1513 #if 0 some more arrays used only for decrypting (we don't
1514 use since we only need encrypt for AES-CTR)
1515
1516commit 1cb3016635898d287e9d58b50c430995652d5358
1517Author: jsg@openbsd.org <jsg@openbsd.org>
1518Date: Wed Mar 11 00:48:39 2015 +0000
1519
1520 upstream commit
1521
1522 add back the changes from rev 1.206, djm reverted this by
1523 mistake in rev 1.207
1524
1525commit 4d24b3b6a4a6383e05e7da26d183b79fa8663697
1526Author: Damien Miller <djm@mindrot.org>
1527Date: Fri Mar 20 09:11:59 2015 +1100
1528
1529 remove error() accidentally inserted for debugging
1530
1531 pointed out by Christian Hesse
1532
1commit 9f82e5a9042f2d872e98f48a876fcab3e25dd9bb 1533commit 9f82e5a9042f2d872e98f48a876fcab3e25dd9bb
2Author: Tim Rice <tim@multitalents.net> 1534Author: Tim Rice <tim@multitalents.net>
3Date: Mon Mar 16 22:49:20 2015 -0700 1535Date: Mon Mar 16 22:49:20 2015 -0700
@@ -7401,1184 +8933,3 @@ Date: Tue Jul 2 20:06:46 2013 +1000
7401 the Cygwin README file (which hasn't been updated for ages), drop 8933 the Cygwin README file (which hasn't been updated for ages), drop
7402 unsupported OSes from the ssh-host-config help text, and drop an 8934 unsupported OSes from the ssh-host-config help text, and drop an
7403 unneeded option from ssh-user-config. Patch from vinschen at redhat com. 8935 unneeded option from ssh-user-config. Patch from vinschen at redhat com.
7404
7405commit b8ae92d08b91beaef34232c6ef34b9941473fdd6
7406Author: Darren Tucker <dtucker@zip.com.au>
7407Date: Tue Jun 11 12:10:02 2013 +1000
7408
7409 - (dtucker) [myproposal.h] Make the conditional algorithm support consistent
7410 and add some comments so it's clear what goes where.
7411
7412commit 97b62f41adcb0dcbeff142d0540793a7ea17c910
7413Author: Darren Tucker <dtucker@zip.com.au>
7414Date: Tue Jun 11 11:47:24 2013 +1000
7415
7416 - (dtucker) [myproposal.h] Do not advertise AES GSM ciphers if we don't have
7417 the required OpenSSL support. Patch from naddy at freebsd.
7418
7419commit 6d8bd57448b45b42809da32857d7804444349ee7
7420Author: Darren Tucker <dtucker@zip.com.au>
7421Date: Tue Jun 11 11:26:10 2013 +1000
7422
7423 - (dtucker) [Makefile.in configure.ac fixalgorithms] Remove unsupported
7424 algorithms (Ciphers, MACs and HostKeyAlgorithms) from man pages.
7425
7426commit 36187093ea0b2d2240c043417b8949611687e105
7427Author: Damien Miller <djm@mindrot.org>
7428Date: Mon Jun 10 13:07:11 2013 +1000
7429
7430 - dtucker@cvs.openbsd.org 2013/06/07 15:37:52
7431 [channels.c channels.h clientloop.c]
7432 Add an "ABANDONED" channel state and use for mux sessions that are
7433 disconnected via the ~. escape sequence. Channels in this state will
7434 be able to close if the server responds, but do not count as active channels.
7435 This means that if you ~. all of the mux clients when using ControlPersist
7436 on a broken network, the backgrounded mux master will exit when the
7437 Control Persist time expires rather than hanging around indefinitely.
7438 bz#1917, also reported and tested by tedu@. ok djm@ markus@.
7439
7440commit ae133d4b31af05bb232d797419f498f3ae7e9f2d
7441Author: Darren Tucker <dtucker@zip.com.au>
7442Date: Thu Jun 6 08:30:20 2013 +1000
7443
7444 - (dtucker) [configure.ac sftp.c openbsd-compat/openbsd-compat.h] Cater for
7445 platforms that don't have multibyte character support (specifically,
7446 mblen).
7447
7448commit 408eaf3ab716096f8faf30f091bd54a2c7a17a09
7449Author: Darren Tucker <dtucker@zip.com.au>
7450Date: Thu Jun 6 08:22:46 2013 +1000
7451
7452 - dtucker@cvs.openbsd.org 2013/06/05 22:00:28
7453 [readconf.c]
7454 plug another memleak. bz#1967, from Zhenbo Xu, detected by Melton, ok djm
7455
7456commit e52a260f16888ca75390f97de4606943e61785e8
7457Author: Darren Tucker <dtucker@zip.com.au>
7458Date: Thu Jun 6 08:22:05 2013 +1000
7459
7460 - dtucker@cvs.openbsd.org 2013/06/05 12:52:38
7461 [sshconnect2.c]
7462 Fix memory leaks found by Zhenbo Xu and the Melton tool. bz#1967, ok djm
7463
7464commit 0cca17fa1819d3a0ba06a6db41ab3eaa8d769587
7465Author: Darren Tucker <dtucker@zip.com.au>
7466Date: Thu Jun 6 08:21:14 2013 +1000
7467
7468 - dtucker@cvs.openbsd.org 2013/06/05 02:27:50
7469 [sshd.c]
7470 When running sshd -D, close stderr unless we have explicitly requesting
7471 logging to stderr. From james.hunt at ubuntu.com via bz#1976, djm's patch
7472 so, err, ok dtucker.
7473
7474commit 746e9067bd9b3501876e1c86f38f3c510a12f895
7475Author: Darren Tucker <dtucker@zip.com.au>
7476Date: Thu Jun 6 08:20:13 2013 +1000
7477
7478 - dtucker@cvs.openbsd.org 2013/06/05 02:07:29
7479 [mux.c]
7480 fix leaks in mux error paths, from Zhenbo Xu, found by Melton. bz#1967,
7481 ok djm
7482
7483commit ea64721275a81c4788af36294d94bf4f74012e06
7484Author: Darren Tucker <dtucker@zip.com.au>
7485Date: Thu Jun 6 08:19:09 2013 +1000
7486
7487 - dtucker@cvs.openbsd.org 2013/06/04 20:42:36
7488 [sftp.c]
7489 Make sftp's libedit interface marginally multibyte aware by building up
7490 the quoted string by character instead of by byte. Prevents failures
7491 when linked against a libedit built with wide character support (bz#1990).
7492 "looks ok" djm
7493
7494commit 194454d7a8f8cb8ac55f2b9d0199ef9445788bee
7495Author: Darren Tucker <dtucker@zip.com.au>
7496Date: Thu Jun 6 08:16:04 2013 +1000
7497
7498 - dtucker@cvs.openbsd.org 2013/06/04 19:12:23
7499 [scp.c]
7500 use MAXPATHLEN for buffer size instead of fixed value. ok markus
7501
7502commit 4ac66af091cf6db5a42c18e43738ca9c41e338e5
7503Author: Darren Tucker <dtucker@zip.com.au>
7504Date: Thu Jun 6 08:12:37 2013 +1000
7505
7506 - dtucker@cvs.openbsd.org 2013/06/03 00:03:18
7507 [mac.c]
7508 force the MAC output to be 64-bit aligned so umac won't see unaligned
7509 accesses on strict-alignment architectures. bz#2101, patch from
7510 tomas.kuthan at oracle.com, ok djm@
7511
7512commit ea8342c248ad6c0a4fe1a70de133f954973bd2b2
7513Author: Darren Tucker <dtucker@zip.com.au>
7514Date: Thu Jun 6 08:11:40 2013 +1000
7515
7516 - dtucker@cvs.openbsd.org 2013/06/02 23:36:29
7517 [clientloop.h clientloop.c mux.c]
7518 No need for the mux cleanup callback to be visible so restore it to static
7519 and call it through the detach_user function pointer. ok djm@
7520
7521commit 5d12b8f05d79ba89d0807910a664fa80f6f3bf8c
7522Author: Darren Tucker <dtucker@zip.com.au>
7523Date: Thu Jun 6 08:09:10 2013 +1000
7524
7525 - dtucker@cvs.openbsd.org 2013/06/02 21:01:51
7526 [channels.h]
7527 typo in comment
7528
7529commit dc62edbf121c41e8b5270904091039450206d98a
7530Author: Darren Tucker <dtucker@zip.com.au>
7531Date: Thu Jun 6 05:12:35 2013 +1000
7532
7533 - (dtucker) [Makefile.in] append $CFLAGS to compiler options when building
7534 modpipe in case there's anything in there we need.
7535
7536commit 2a22873cd869679415104bc9f6bb154811ee604c
7537Author: Darren Tucker <dtucker@zip.com.au>
7538Date: Thu Jun 6 01:59:13 2013 +1000
7539
7540 - (dtucker) [regress/forwarding.sh] For (as yet unknown) reason, the
7541 forwarding test is extremely slow copying data on some machines so switch
7542 back to copying the much smaller ls binary until we can figure out why
7543 this is.
7544
7545commit b4e00949f01176cd4fae3e0cef5ffa8dea379042
7546Author: Darren Tucker <dtucker@zip.com.au>
7547Date: Wed Jun 5 22:48:44 2013 +1000
7548
7549 - (dtucker) [contrib/ssh-copy-id] bz#2117: Use portable operator in test.
7550 Patch from cjwatson at debian.
7551
7552commit 2ea9eb77a7fcab3190564ef5a6a5377a600aa391
7553Author: Darren Tucker <dtucker@zip.com.au>
7554Date: Wed Jun 5 15:04:00 2013 +1000
7555
7556 - (dtucker) Enable sha256 kex methods based on the presence of the necessary
7557 functions, not from the openssl version.
7558
7559commit 16cac190ebb9b5612cccea63a7c22ac33bc9a07a
7560Author: Darren Tucker <dtucker@zip.com.au>
7561Date: Tue Jun 4 12:55:24 2013 +1000
7562
7563 - (dtucker) [configure.ac] Some other platforms need sys/types.h before
7564 sys/socket.h.
7565
7566commit 0b43ffe143a5843703c3755fa040b8684fb04134
7567Author: Darren Tucker <dtucker@zip.com.au>
7568Date: Mon Jun 3 09:30:44 2013 +1000
7569
7570 - (dtucker) [configure.ac] Some platforms need sys/types.h before sys/un.h.
7571
7572commit 3f3064c82238c486706471d300217d73dd0f125e
7573Author: Tim Rice <tim@multitalents.net>
7574Date: Sun Jun 2 15:13:09 2013 -0700
7575
7576 - (tim) [regress/sftp-chroot.sh] skip if no sudo. ok dtucker
7577
7578commit 01ec0af301f60fefdd0079647f13ef9abadd2db5
7579Author: Tim Rice <tim@multitalents.net>
7580Date: Sun Jun 2 14:31:27 2013 -0700
7581
7582 - (tim) [aclocal.m4] Enhance OSSH_CHECK_CFLAG_COMPILE to check stderr.
7583 feedback and ok dtucker
7584
7585commit 5ab9b63468100757479534edeb53f788a61fe08b
7586Author: Tim Rice <tim@multitalents.net>
7587Date: Sun Jun 2 14:05:48 2013 -0700
7588
7589 - (tim) [configure.ac regress/Makefile] With rev 1.47 of test-exec.sh we
7590 need a shell that can handle "[ file1 -nt file2 ]". Rather than keep
7591 dealing with shell portability issues in regression tests, we let
7592 configure find us a capable shell on those platforms with an old /bin/sh.
7593
7594commit 898ac935e56a7ac5d8b686c590fdb8b7aca27e59
7595Author: Darren Tucker <dtucker@zip.com.au>
7596Date: Mon Jun 3 02:03:25 2013 +1000
7597
7598 - (dtucker) [configure.ac] bz#2111: don't try to use lastlog on Android.
7599 Patch from Nathan Osman.
7600
7601commit ef4901c3eb98c7ab1342c3cd8f2638da1f4b0678
7602Author: Darren Tucker <dtucker@zip.com.au>
7603Date: Mon Jun 3 01:59:13 2013 +1000
7604
7605 - (dtucker) [configure.ac] sys/un.h needs sys/socket.h on some platforms
7606 to prevent noise from configure. Patch from Nathan Osman.
7607
7608commit 073f795bc1c7728c320e5982c0d417376b0907f5
7609Author: Darren Tucker <dtucker@zip.com.au>
7610Date: Sun Jun 2 23:47:11 2013 +1000
7611
7612 - dtucker@cvs.openbsd.org 2013/06/02 13:35:58
7613 [ssh-agent.c]
7614 Make parent_alive_interval time_t to avoid signed/unsigned comparison
7615
7616commit 00e1abb1ebe13ab24e812f68715f46e65e7c5271
7617Author: Darren Tucker <dtucker@zip.com.au>
7618Date: Sun Jun 2 23:46:24 2013 +1000
7619
7620 - dtucker@cvs.openbsd.org 2013/06/02 13:33:05
7621 [progressmeter.c]
7622 Add misc.h for monotime prototype. (id sync only)
7623
7624commit 86211d1738695e63b2a68f0c3a4f60e1a9d9bda3
7625Author: Tim Rice <tim@multitalents.net>
7626Date: Sat Jun 1 18:38:23 2013 -0700
7627
7628 20130602
7629 - (tim) [Makefile.in] Make Solaris, UnixWare, & OpenServer linkers happy
7630 linking regress/modpipe.
7631
7632commit e9887d1c37940b9d6c72d55cfad7a40de4c6e28d
7633Author: Darren Tucker <dtucker@zip.com.au>
7634Date: Sun Jun 2 09:17:09 2013 +1000
7635
7636 - (dtucker) [sandbox-seccomp-filter.c] Allow clock_gettimeofday.
7637
7638commit 65cf74079a2d563c4ede649116a13ca78c8cc2a4
7639Author: Darren Tucker <dtucker@zip.com.au>
7640Date: Sun Jun 2 09:11:19 2013 +1000
7641
7642 fix typo
7643
7644commit c9a1991b95a4c9f04f9dcef299a8110d2ec80d3e
7645Author: Darren Tucker <dtucker@zip.com.au>
7646Date: Sun Jun 2 08:37:05 2013 +1000
7647
7648 - dtucker@cvs.openbsd.org 2013/06/01 22:34:50
7649 [sftp-client.c]
7650 Update progressmeter when data is acked, not when it's sent. bz#2108, from
7651 Debian via Colin Watson, ok djm@
7652
7653commit a710891659202c82545e84725d4e5cd77aef567c
7654Author: Darren Tucker <dtucker@zip.com.au>
7655Date: Sun Jun 2 08:18:31 2013 +1000
7656
7657 - (dtucker) [configure.ac misc.c] Look for clock_gettime in librt and fall
7658 back to time(NULL) if we can't find it anywhere.
7659
7660commit f60845fde29cead9d75e812db1c04916b4c58ffd
7661Author: Darren Tucker <dtucker@zip.com.au>
7662Date: Sun Jun 2 08:07:31 2013 +1000
7663
7664 - (dtucker) [M auth-chall.c auth-krb5.c auth-pam.c cipher-aes.c cipher-ctr.c
7665 groupaccess.c loginrec.c monitor.c monitor_wrap.c session.c sshd.c
7666 sshlogin.c uidswap.c openbsd-compat/bsd-cygwin_util.c
7667 openbsd-compat/getrrsetbyname-ldns.c openbsd-compat/port-aix.c
7668 openbsd-compat/port-linux.c] Replace portable-specific instances of xfree
7669 with the equivalent calls to free.
7670
7671commit 12f6533215c0a36ab29d11ff52a853fce45573b4
7672Author: Darren Tucker <dtucker@zip.com.au>
7673Date: Sun Jun 2 08:01:24 2013 +1000
7674
7675 Remove stray '+' accidentally introduced in sync
7676
7677commit 3750fce6ac6b287f62584ac55a4406df95c71b92
7678Author: Darren Tucker <dtucker@zip.com.au>
7679Date: Sun Jun 2 07:52:21 2013 +1000
7680
7681 - dtucker@cvs.openbsd.org 2013/06/01 20:59:25
7682 [scp.c sftp-client.c]
7683 Replace S_IWRITE, which isn't standardized, with S_IWUSR, which is. Patch
7684 from Nathan Osman via bz#2113. ok deraadt.
7685
7686 (note: corrected bug number from 2085)
7687
7688commit b759c9c2efebe7b416ab81093ca8eb17836b6933
7689Author: Darren Tucker <dtucker@zip.com.au>
7690Date: Sun Jun 2 07:46:16 2013 +1000
7691
7692 - dtucker@cvs.openbsd.org 2013/06/01 13:15:52
7693 [ssh-agent.c clientloop.c misc.h packet.c progressmeter.c misc.c
7694 channels.c sandbox-systrace.c]
7695 Use clock_gettime(CLOCK_MONOTONIC ...) for ssh timers so that things like
7696 keepalives and rekeying will work properly over clock steps. Suggested by
7697 markus@, "looks good" djm@.
7698
7699commit 55119253c64808b0d3b2ab5d2bc67ee9dac3430b
7700Author: Darren Tucker <dtucker@zip.com.au>
7701Date: Sun Jun 2 07:43:59 2013 +1000
7702
7703 - dtucker@cvs.openbsd.org 2013/05/31 12:28:10
7704 [ssh-agent.c]
7705 Use time_t where appropriate. ok djm
7706
7707commit 0acca3797d53d958d240c69a5f222f2aa8444858
7708Author: Darren Tucker <dtucker@zip.com.au>
7709Date: Sun Jun 2 07:41:51 2013 +1000
7710
7711 - djm@cvs.openbsd.org 2013/05/19 02:42:42
7712 [auth.h auth.c key.c monitor.c auth-rsa.c auth2.c auth1.c key.h]
7713 Standardise logging of supplemental information during userauth. Keys
7714 and ruser is now logged in the auth success/failure message alongside
7715 the local username, remote host/port and protocol in use. Certificates
7716 contents and CA are logged too.
7717 Pushing all logging onto a single line simplifies log analysis as it is
7718 no longer necessary to relate information scattered across multiple log
7719 entries. "I like it" markus@
7720
7721commit 74836ae0fabcc1a76b9d9eacd1629c88a054b2d0
7722Author: Darren Tucker <dtucker@zip.com.au>
7723Date: Sun Jun 2 07:32:00 2013 +1000
7724
7725 - djm@cvs.openbsd.org 2013/05/19 02:38:28
7726 [auth2-pubkey.c]
7727 fix failure to recognise cert-authority keys if a key of a different type
7728 appeared in authorized_keys before it; ok markus@
7729
7730commit a627d42e51ffa71e014d7b2d2c07118122fd3ec3
7731Author: Darren Tucker <dtucker@zip.com.au>
7732Date: Sun Jun 2 07:31:17 2013 +1000
7733
7734 - djm@cvs.openbsd.org 2013/05/17 00:13:13
7735 [xmalloc.h cipher.c sftp-glob.c ssh-keyscan.c ssh.c sftp-common.c
7736 ssh-ecdsa.c auth2-chall.c compat.c readconf.c kexgexs.c monitor.c
7737 gss-genr.c cipher-3des1.c kex.c monitor_wrap.c ssh-pkcs11-client.c
7738 auth-options.c rsa.c auth2-pubkey.c sftp.c hostfile.c auth2.c
7739 servconf.c auth.c authfile.c xmalloc.c uuencode.c sftp-client.c
7740 auth2-gss.c sftp-server.c bufaux.c mac.c session.c jpake.c kexgexc.c
7741 sshconnect.c auth-chall.c auth2-passwd.c sshconnect1.c buffer.c
7742 kexecdhs.c kexdhs.c ssh-rsa.c auth1.c ssh-pkcs11.c auth2-kbdint.c
7743 kexdhc.c sshd.c umac.c ssh-dss.c auth2-jpake.c bufbn.c clientloop.c
7744 monitor_mm.c scp.c roaming_client.c serverloop.c key.c auth-rsa.c
7745 ssh-pkcs11-helper.c ssh-keysign.c ssh-keygen.c match.c channels.c
7746 sshconnect2.c addrmatch.c mux.c canohost.c kexecdhc.c schnorr.c
7747 ssh-add.c misc.c auth2-hostbased.c ssh-agent.c bufec.c groupaccess.c
7748 dns.c packet.c readpass.c authfd.c moduli.c]
7749 bye, bye xfree(); ok markus@
7750
7751commit c7aad0058c957afeb26a3f703e8cb0eddeb62365
7752Author: Darren Tucker <dtucker@zip.com.au>
7753Date: Sun Jun 2 07:18:47 2013 +1000
7754
7755 - (dtucker) [configure.ac defines.h] Test for fd_mask, howmany and NFDBITS
7756 rather than trying to enumerate the plaforms that don't have them.
7757 Based on a patch from Nathan Osman, with help from tim@.
7758
7759commit c0c3373216801797053e123b5f62d35bf41b3611
7760Author: Darren Tucker <dtucker@zip.com.au>
7761Date: Sun Jun 2 06:28:03 2013 +1000
7762
7763 - (dtucker) [configure.ac openbsd-compat/xcrypt.c] bz#2112: fall back to
7764 using openssl's DES_crpyt function on platorms that don't have a native
7765 one, eg Android. Based on a patch from Nathan Osman.
7766
7767commit efdf5342143a887013a1daae583167dadf6752a7
7768Author: Darren Tucker <dtucker@zip.com.au>
7769Date: Thu May 30 08:29:08 2013 +1000
7770
7771 - (dtucker) [configure.ac openbsd-compat/bsd-misc.h] bz#2087: Add a null
7772 implementation of endgrent for platforms that don't have it (eg Android).
7773 Loosely based on a patch from Nathan Osman, ok djm
7774
7775commit 9b42d327380e5cd04efde6fb70e1535fecedf0d7
7776Author: Darren Tucker <dtucker@zip.com.au>
7777Date: Fri May 17 20:48:59 2013 +1000
7778
7779 - dtucker@cvs.openbsd.org 2013/05/17 10:35:43
7780 [regress/scp.sh]
7781 use a file extention that's not special on some platforms. from portable
7782 (id sync only)
7783
7784commit 0a404b0ed79ba45ccaf7ed5528a8f5004c3698cb
7785Author: Darren Tucker <dtucker@zip.com.au>
7786Date: Fri May 17 20:47:29 2013 +1000
7787
7788 - dtucker@cvs.openbsd.org 2013/05/17 10:34:30
7789 [regress/portnum.sh]
7790 use a more portable negated if structure. from portable (id sync only)
7791
7792commit 62ee222e6f3f5ee288434f58b5136ae3d56f5164
7793Author: Darren Tucker <dtucker@zip.com.au>
7794Date: Fri May 17 20:46:00 2013 +1000
7795
7796 - dtucker@cvs.openbsd.org 2013/05/17 10:33:09
7797 [regress/agent-getpeereid.sh]
7798 don't redirect stdout from sudo. from portable (id sync only)
7799
7800commit 00478d30cb4bcc18dc1ced8144d16b03cdf790f6
7801Author: Darren Tucker <dtucker@zip.com.au>
7802Date: Fri May 17 20:45:06 2013 +1000
7803
7804 - dtucker@cvs.openbsd.org 2013/05/17 10:30:07
7805 [regress/test-exec.sh]
7806 wait a bit longer for startup and use case for absolute path.
7807 from portable (id sync only)
7808
7809commit 98989eb95eef0aefed7e9fb4e65c2f625be946f6
7810Author: Darren Tucker <dtucker@zip.com.au>
7811Date: Fri May 17 20:44:09 2013 +1000
7812
7813 - dtucker@cvs.openbsd.org 2013/05/17 10:28:11
7814 [regress/sftp.sh]
7815 only compare copied data if sftp succeeds. from portable (id sync only)
7816
7817commit 438f60eb9a5f7cd40bb242cfec865e4fde71b07c
7818Author: Darren Tucker <dtucker@zip.com.au>
7819Date: Fri May 17 20:43:13 2013 +1000
7820
7821 - dtucker@cvs.openbsd.org 2013/05/17 10:26:26
7822 [regress/sftp-badcmds.sh]
7823 remove unused BATCH variable. (id sync only)
7824
7825commit 1466bd25a8d1ff7ae455a795d2d7d52dc17d2938
7826Author: Darren Tucker <dtucker@zip.com.au>
7827Date: Fri May 17 20:42:05 2013 +1000
7828
7829 - dtucker@cvs.openbsd.org 2013/05/17 10:24:48
7830 [localcommand.sh]
7831 use backticks for portability. (id sync only)
7832
7833commit 05b5e518c9969d63471f2ccfd85b1de6e724d30b
7834Author: Darren Tucker <dtucker@zip.com.au>
7835Date: Fri May 17 20:41:07 2013 +1000
7836
7837 - dtucker@cvs.openbsd.org 2013/05/17 10:23:52
7838 [regress/login-timeout.sh regress/reexec.sh regress/test-exec.sh]
7839 Use SUDO when cat'ing pid files and running the sshd log wrapper so that
7840 it works with a restrictive umask and the pid files are not world readable.
7841 Changes from -portable. (id sync only)
7842
7843commit dd669173f93ea8c8397e0af758eaf13ab4f1c591
7844Author: Darren Tucker <dtucker@zip.com.au>
7845Date: Fri May 17 20:39:57 2013 +1000
7846
7847 - dtucker@cvs.openbsd.org 2013/05/17 10:16:26
7848 [regress/try-ciphers.sh]
7849 use expr for math to keep diffs vs portable down
7850 (id sync only)
7851
7852commit 044f32f4c6fd342f9f5949bb0ca77624c0db4494
7853Author: Darren Tucker <dtucker@zip.com.au>
7854Date: Fri May 17 20:12:57 2013 +1000
7855
7856 - (dtucker) [regress/cfgmatch.sh] Remove unneeded sleep renderd obsolete by
7857 rev 1.6 which calls wait.
7858
7859commit 9cc8ff7b63f175661c8807006f6d2649d56ac402
7860Author: Darren Tucker <dtucker@zip.com.au>
7861Date: Fri May 17 20:01:52 2013 +1000
7862
7863 - (dtucker) [regress/runtests.sh] Remove obsolete test driver script.
7864
7865commit f8d5b3451726530a864b172c556c311370c244e1
7866Author: Darren Tucker <dtucker@zip.com.au>
7867Date: Fri May 17 19:53:25 2013 +1000
7868
7869 - (dtucker) [regress/stderr-after-eof.sh regress/test-exec.sh] Move the md5
7870 helper function to the portable part of test-exec.sh.
7871
7872commit 6f66981ed3c6bb83b937959f329323975e356c33
7873Author: Darren Tucker <dtucker@zip.com.au>
7874Date: Fri May 17 19:28:51 2013 +1000
7875
7876 - (dtucker) [regress/test-exec.sh] Move the portable-specific functions
7877 together and add a couple of missing lines from openbsd.
7878
7879commit 5f1a89a3b67264f4aa83e057cd4f74fd60b9ffa4
7880Author: Darren Tucker <dtucker@zip.com.au>
7881Date: Fri May 17 19:17:58 2013 +1000
7882
7883 - (dtucker) [regress/integrity.sh regress/krl.sh regress/test-exec.sh]
7884 Move the jot helper function to portable-specific part of test-exec.sh.
7885
7886commit 96457a54d05dea81f34ecb4e059d2f8b98382b85
7887Author: Darren Tucker <dtucker@zip.com.au>
7888Date: Fri May 17 19:03:38 2013 +1000
7889
7890 - (dtucker) [regress/agent-getpeereid.sh] Resync spaces with openbsd.
7891
7892commit 7f193236594e8328ad133ea05eded31f837b45b5
7893Author: Darren Tucker <dtucker@zip.com.au>
7894Date: Fri May 17 19:02:28 2013 +1000
7895
7896 - (dtucker) [regress/cfgmatch.sh] Resync config file setup with openbsd.
7897
7898commit 8654dd2d737800d09e7730b3dfc2a54411f4cf90
7899Author: Darren Tucker <dtucker@zip.com.au>
7900Date: Fri May 17 16:03:48 2013 +1000
7901
7902 - (dtucker) [openbsd-compat/getopt.h] Remove unneeded bits.
7903
7904commit 59d928d3b47e8298f4a8b4b3fb37fb8c8ce1b098
7905Author: Darren Tucker <dtucker@zip.com.au>
7906Date: Fri May 17 15:32:29 2013 +1000
7907
7908 - dtucker@cvs.openbsd.org 2013/05/17 04:29:14
7909 [regress/sftp.sh regress/putty-ciphers.sh regress/cipher-speed.sh
7910 regress/test-exec.sh regress/sftp-batch.sh regress/dynamic-forward.sh
7911 regress/putty-transfer.sh regress/conch-ciphers.sh regress/sftp-cmds.sh
7912 regress/scp.sh regress/ssh-com-sftp.sh regress/rekey.sh
7913 regress/putty-kex.sh regress/stderr-data.sh regress/stderr-after-eof.sh
7914 regress/sftp-badcmds.sh regress/reexec.sh regress/ssh-com-client.sh
7915 regress/sftp-chroot.sh regress/forwarding.sh regress/transfer.sh
7916 regress/multiplex.sh]
7917 Move the setting of DATA and COPY into test-exec.sh
7918
7919commit 34035be27b7ddd84706fe95c39d37cba7d5c9572
7920Author: Darren Tucker <dtucker@zip.com.au>
7921Date: Fri May 17 14:47:51 2013 +1000
7922
7923 - dtucker@cvs.openbsd.org 2013/05/17 01:32:11
7924 [regress/integrity.sh]
7925 don't print output from ssh before getting it (it's available in ssh.log)
7926
7927commit b8b96b0aa634d440feba4331c80ae4de9dda2081
7928Author: Darren Tucker <dtucker@zip.com.au>
7929Date: Fri May 17 14:46:20 2013 +1000
7930
7931 - dtucker@cvs.openbsd.org 2013/05/17 01:16:09
7932 [regress/agent-timeout.sh]
7933 Pull back some portability changes from -portable:
7934 - TIMEOUT is a read-only variable in some shells
7935 - not all greps have -q so redirect to /dev/null instead.
7936 (ID sync only)
7937
7938commit a40d97ff46831c9081a6a4472036689360847fb1
7939Author: Darren Tucker <dtucker@zip.com.au>
7940Date: Fri May 17 14:44:53 2013 +1000
7941
7942 sync missing ID
7943
7944commit 56347efe796a0506e846621ae65562b978e45f1d
7945Author: Darren Tucker <dtucker@zip.com.au>
7946Date: Fri May 17 13:28:36 2013 +1000
7947
7948 - dtucker@cvs.openbsd.org 2013/05/17 00:37:40
7949 [regress/agent.sh regress/keytype.sh regress/cfgmatch.sh
7950 regress/forcecommand.sh regress/proto-version.sh regress/test-exec.sh
7951 regress/cipher-speed.sh regress/cert-hostkey.sh regress/cert-userkey.sh
7952 regress/ssh-com.sh]
7953 replace 'echo -n' with 'printf' since it's more portable
7954 also remove "echon" hack.
7955
7956commit 91af05c5167fe0aa5bd41d2e4a83757d9f627c18
7957Author: Darren Tucker <dtucker@zip.com.au>
7958Date: Fri May 17 13:16:59 2013 +1000
7959
7960 - (dtucker) [regress/integrity.sh]. Force fixed Diffie-Hellman key exchange
7961 methods. When the openssl version doesn't support ECDH then next one on
7962 the list is DH group exchange, but that causes a bit more traffic which can
7963 mean that the tests flip bits in the initial exchange rather than the MACed
7964 traffic and we get different errors to what the tests look for.
7965
7966commit 6e1e60c3c2e16c32bb7ca0876caaa6182a4e4b2c
7967Author: Darren Tucker <dtucker@zip.com.au>
7968Date: Fri May 17 11:23:41 2013 +1000
7969
7970 - (dtucker) [regress/bsd.regress.mk] Remove unused file. We've never used it
7971 in portable and it's long gone in openbsd.
7972
7973commit 982b0cbc4c2b5ea14725f4b339393cdf343dd0fe
7974Author: Darren Tucker <dtucker@zip.com.au>
7975Date: Fri May 17 09:45:12 2013 +1000
7976
7977 - dtucker@cvs.openbsd.org 2013/05/16 05:48:31
7978 [regress/rekey.sh]
7979 add tests for RekeyLimit parsing
7980
7981commit 14490fe7b0f45b1b19f8a3dc10eb3d214f27f5bd
7982Author: Darren Tucker <dtucker@zip.com.au>
7983Date: Fri May 17 09:44:20 2013 +1000
7984
7985 - dtucker@cvs.openbsd.org 2013/05/16 04:26:10
7986 [regress/rekey.sh]
7987 add server-side rekey test
7988
7989commit c31c8729c15f83fba14ef9da0d66bda6215ff69a
7990Author: Darren Tucker <dtucker@zip.com.au>
7991Date: Fri May 17 09:43:33 2013 +1000
7992
7993 - dtucker@cvs.openbsd.org 2013/05/16 03:33:30
7994 [regress/rekey.sh]
7995 test rekeying when there's no data being transferred
7996
7997commit a8a62fcc46c19997797846197a6256ed9a777a47
7998Author: Darren Tucker <dtucker@zip.com.au>
7999Date: Fri May 17 09:42:34 2013 +1000
8000
8001 - dtucker@cvs.openbsd.org 2013/05/16 02:10:35
8002 [rekey.sh]
8003 Add test for time-based rekeying
8004
8005commit 5e95173715d516e6014485e2b6def1fb3db84036
8006Author: Darren Tucker <dtucker@zip.com.au>
8007Date: Fri May 17 09:41:33 2013 +1000
8008
8009 - djm@cvs.openbsd.org 2013/05/10 03:46:14
8010 [modpipe.c]
8011 sync some portability changes from portable OpenSSH (id sync only)
8012
8013commit a4df65b9fc68a555a7d8781700475fb03ed6e694
8014Author: Darren Tucker <dtucker@zip.com.au>
8015Date: Fri May 17 09:37:31 2013 +1000
8016
8017 - dtucker@cvs.openbsd.org 2013/04/22 07:28:53
8018 [multiplex.sh]
8019 Add tests for -Oforward and -Ocancel for local and remote forwards
8020
8021commit 40aaff7e4bcb05b05e3d24938b6d34885be817da
8022Author: Darren Tucker <dtucker@zip.com.au>
8023Date: Fri May 17 09:36:20 2013 +1000
8024
8025 - dtucker@cvs.openbsd.org 2013/04/22 07:23:08
8026 [multiplex.sh]
8027 Write mux master logs to regress.log instead of ssh.log to keep separate
8028
8029commit f3568fc62b73b50a0a3c8447e4a00f4892cab25e
8030Author: Darren Tucker <dtucker@zip.com.au>
8031Date: Fri May 17 09:35:26 2013 +1000
8032
8033 - djm@cvs.openbsd.org 2013/04/18 02:46:12
8034 [Makefile regress/sftp-chroot.sh]
8035 test sshd ChrootDirectory+internal-sftp; feedback & ok dtucker@
8036
8037commit dfea3bcdd7c980c2335402464b7dd8d8721e426d
8038Author: Darren Tucker <dtucker@zip.com.au>
8039Date: Fri May 17 09:31:39 2013 +1000
8040
8041 - dtucker@cvs.openbsd.org 2013/04/07 02:16:03
8042 [regress/Makefile regress/rekey.sh regress/integrity.sh
8043 regress/sshd-log-wrapper.sh regress/forwarding.sh regress/test-exec.sh]
8044 use -E option for ssh and sshd to write debuging logs to ssh{,d}.log and
8045 save the output from any failing tests. If a test fails the debug output
8046 from ssh and sshd for the failing tests (and only the failing tests) should
8047 be available in failed-ssh{,d}.log.
8048
8049commit 75129025a2d504b630d1718fef0da002f5662f63
8050Author: Darren Tucker <dtucker@zip.com.au>
8051Date: Fri May 17 09:19:10 2013 +1000
8052
8053 - dtucker@cvs.openbsd.org 2013/04/06 06:00:22
8054 [regress/rekey.sh regress/test-exec.sh regress/integrity.sh
8055 regress/multiplex.sh Makefile regress/cfgmatch.sh]
8056 Split the regress log into 3 parts: the debug output from ssh, the debug
8057 log from sshd and the output from the client command (ssh, scp or sftp).
8058 Somewhat functional now, will become more useful when ssh/sshd -E is added.
8059
8060commit 7c8b1e72331293b4707dc6f7f68a69e975a3fa70
8061Author: Darren Tucker <dtucker@zip.com.au>
8062Date: Fri May 17 09:10:20 2013 +1000
8063
8064 - dtucker@cvs.openbsd.org 2013/03/23 11:09:43
8065 [test-exec.sh]
8066 Only regenerate host keys if they don't exist or if ssh-keygen has changed
8067 since they were. Reduces test runtime by 5-30% depending on machine
8068 speed.
8069
8070commit 712de4d1100963b11bc618472f95ce36bf7e2ae3
8071Author: Darren Tucker <dtucker@zip.com.au>
8072Date: Fri May 17 09:07:12 2013 +1000
8073
8074 - djm@cvs.openbsd.org 2013/03/07 00:20:34
8075 [regress/proxy-connect.sh]
8076 repeat test with a style appended to the username
8077
8078commit 09c0f0325b2f538de9a1073e03b8ef26dece4c16
8079Author: Darren Tucker <dtucker@zip.com.au>
8080Date: Thu May 16 20:48:57 2013 +1000
8081
8082 - dtucker@cvs.openbsd.org 2013/05/16 10:44:06
8083 [servconf.c]
8084 remove another now-unused variable
8085
8086commit 9113d0c2381202412c912a20c8083ab7d6824ec9
8087Author: Darren Tucker <dtucker@zip.com.au>
8088Date: Thu May 16 20:48:14 2013 +1000
8089
8090 - dtucker@cvs.openbsd.org 2013/05/16 10:43:34
8091 [servconf.c readconf.c]
8092 remove now-unused variables
8093
8094commit e194ba4111ffd47cd1f4c8be1ddc8a4cb673d005
8095Author: Darren Tucker <dtucker@zip.com.au>
8096Date: Thu May 16 20:47:31 2013 +1000
8097
8098 - (dtucker) [configure.ac readconf.c servconf.c
8099 openbsd-compat/openbsd-compat.h] Add compat bits for scan_scaled.
8100
8101commit b7ee8521448100e5b268111ff90feb017e657e44
8102Author: Darren Tucker <dtucker@zip.com.au>
8103Date: Thu May 16 20:33:10 2013 +1000
8104
8105 - dtucker@cvs.openbsd.org 2013/05/16 09:12:31
8106 [readconf.c servconf.c]
8107 switch RekeyLimit traffic volume parsing to scan_scaled. ok djm@
8108
8109commit dbee308253931f8c1aeebf781d7e7730ff6a0dc1
8110Author: Darren Tucker <dtucker@zip.com.au>
8111Date: Thu May 16 20:32:29 2013 +1000
8112
8113 - dtucker@cvs.openbsd.org 2013/05/16 09:08:41
8114 [log.c scp.c sshd.c serverloop.c schnorr.c sftp.c]
8115 Fix some "unused result" warnings found via clang and -portable.
8116 ok markus@
8117
8118commit 64d22946d664dad8165f1fae9e78b53831ed728d
8119Author: Darren Tucker <dtucker@zip.com.au>
8120Date: Thu May 16 20:31:29 2013 +1000
8121
8122 - jmc@cvs.openbsd.org 2013/05/16 06:30:06
8123 [sshd_config.5]
8124 oops! avoid Xr to self;
8125
8126commit 63e0df2b936770baadc8844617b99e5174b476d0
8127Author: Darren Tucker <dtucker@zip.com.au>
8128Date: Thu May 16 20:30:31 2013 +1000
8129
8130 - jmc@cvs.openbsd.org 2013/05/16 06:28:45
8131 [ssh_config.5]
8132 put IgnoreUnknown in the right place;
8133
8134commit 0763698f71efef8b3f8460c5700758359219eb7c
8135Author: Darren Tucker <dtucker@zip.com.au>
8136Date: Thu May 16 20:30:03 2013 +1000
8137
8138 - djm@cvs.openbsd.org 2013/05/16 04:27:50
8139 [ssh_config.5 readconf.h readconf.c]
8140 add the ability to ignore specific unrecognised ssh_config options;
8141 bz#866; ok markus@
8142
8143commit 5f96f3b4bee11ae2b9b32ff9b881c3693e210f96
8144Author: Darren Tucker <dtucker@zip.com.au>
8145Date: Thu May 16 20:29:28 2013 +1000
8146
8147 - dtucker@cvs.openbsd.org 2013/05/16 04:09:14
8148 [sshd_config.5 servconf.c servconf.h packet.c serverloop.c monitor.c sshd_config
8149 sshd.c] Add RekeyLimit to sshd with the same syntax as the client allowing
8150 rekeying based on traffic volume or time. ok djm@, help & ok jmc@ for the man
8151 page.
8152
8153commit c53c2af173cf67fd1c26f98e7900299b1b65b6ec
8154Author: Darren Tucker <dtucker@zip.com.au>
8155Date: Thu May 16 20:28:16 2013 +1000
8156
8157 - dtucker@cvs.openbsd.org 2013/05/16 02:00:34
8158 [ssh_config sshconnect2.c packet.c readconf.h readconf.c clientloop.c
8159 ssh_config.5 packet.h]
8160 Add an optional second argument to RekeyLimit in the client to allow
8161 rekeying based on elapsed time in addition to amount of traffic.
8162 with djm@ jmc@, ok djm
8163
8164commit 64c6fceecd27e1739040b42de8f3759454260b39
8165Author: Darren Tucker <dtucker@zip.com.au>
8166Date: Thu May 16 20:27:14 2013 +1000
8167
8168 - dtucker@cvs.openbsd.org 2013/05/10 10:13:50
8169 [ssh-pkcs11-helper.c]
8170 remove unused extern optarg. ok markus@
8171
8172commit caf00109346e4ab6bb495b0e22bc5b1e7ee22f26
8173Author: Darren Tucker <dtucker@zip.com.au>
8174Date: Thu May 16 20:26:18 2013 +1000
8175
8176 - djm@cvs.openbsd.org 2013/05/10 04:08:01
8177 [key.c]
8178 memleak in cert_free(), wasn't actually freeing the struct;
8179 bz#2096 from shm AT digitalsun.pl
8180
8181commit 7e831edbf7a1b0b9aeeb08328b9fceafaad1bf22
8182Author: Darren Tucker <dtucker@zip.com.au>
8183Date: Thu May 16 20:25:40 2013 +1000
8184
8185 add missing attribution
8186
8187commit 54da6be320495604ddf65d10ac4cc8cf7849c533
8188Author: Darren Tucker <dtucker@zip.com.au>
8189Date: Thu May 16 20:25:04 2013 +1000
8190
8191 - djm@cvs.openbsd.org 2013/05/10 03:40:07
8192 [sshconnect2.c]
8193 fix bzero(ptr_to_struct, sizeof(ptr_to_struct)); bz#2100 from
8194
8195commit 5d8b702d95c0dfc338726fecfbb709695afd1377
8196Author: Darren Tucker <dtucker@zip.com.au>
8197Date: Thu May 16 20:24:23 2013 +1000
8198
8199 - dtucker@cvs.openbsd.org 2013/05/06 07:35:12
8200 [sftp-server.8]
8201 Reference the version of the sftp draft we actually implement. ok djm@
8202
8203commit 026d9db3fbe311b5a7e98d62472cb666aa559648
8204Author: Darren Tucker <dtucker@zip.com.au>
8205Date: Thu May 16 20:23:52 2013 +1000
8206
8207 - tedu@cvs.openbsd.org 2013/04/24 16:01:46
8208 [misc.c]
8209 remove extra parens noticed by nicm
8210
8211commit 2ca51bf140ef2c2409fd220778529dc17c11d8fa
8212Author: Darren Tucker <dtucker@zip.com.au>
8213Date: Thu May 16 20:22:46 2013 +1000
8214
8215 - tedu@cvs.openbsd.org 2013/04/23 17:49:45
8216 [misc.c]
8217 use xasprintf instead of a series of strlcats and strdup. ok djm
8218
8219commit 6aa3eacc5e5f39702b6dd5b27970d9fd97bc2383
8220Author: Damien Miller <djm@mindrot.org>
8221Date: Thu May 16 11:10:17 2013 +1000
8222
8223 - (djm) [contrib/ssh-copy-id] Fix bug that could cause "rm *" to be
8224 executed if mktemp failed; bz#2105 ok dtucker@
8225
8226commit c54e3e0741a27119b3badd8ff92b1988b7e9bd50
8227Author: Darren Tucker <dtucker@zip.com.au>
8228Date: Fri May 10 18:53:14 2013 +1000
8229
8230 - (dtucker) [configure.ac] Add -Werror to the -Qunused-arguments test so
8231 we don't get a warning on compilers that *don't* support it. Add
8232 -Wno-unknown-warning-option. Move both to the start of the list for
8233 maximum noise suppression. Tested with gcc 4.6.3, gcc 2.95.4 and clang 2.9.
8234
8235commit a75d247a18a5099c60226395354eb252c097ac86
8236Author: Darren Tucker <dtucker@zip.com.au>
8237Date: Fri May 10 18:11:55 2013 +1000
8238
8239 - (dtucker) [kex.c] Only include sha256 and ECC key exchange methods when the
8240 underlying libraries support them.
8241
8242commit 0abfb559e3f79d1f217773510d7626c3722aa3c1
8243Author: Darren Tucker <dtucker@zip.com.au>
8244Date: Fri May 10 18:08:49 2013 +1000
8245
8246 - (dtucker) [openbsd-compat/getopt.h openbsd-compat/getopt_long.c
8247 openbsd-compat/openbsd-compat.h] pull in getopt.h from openbsd and plumb
8248 in to use it when we're using our own getopt.
8249
8250commit ccfdfceacb7e23d1479ed4cc91976c5ac6e23c56
8251Author: Darren Tucker <dtucker@zip.com.au>
8252Date: Fri May 10 16:28:55 2013 +1000
8253
8254 - (dtucker) [openbsd-compat/Makefile.in openbsd-compat/getopt.c
8255 openbsd-compat/getopt_long.c regress/modpipe.c] Remove getopt.c, add
8256 portability code to getopt_long.c and switch over Makefile and the ugly
8257 hack in modpipe.c. Fixes bz#1448.
8258
8259commit 39332020078aa8fd4fc28e00b336438dc64b0f5a
8260Author: Darren Tucker <dtucker@zip.com.au>
8261Date: Fri May 10 15:38:11 2013 +1000
8262
8263 - (dtucker) [openbsd-compat/getopt_long.c] Import from OpenBSD. No
8264 portability changes yet.
8265
8266commit 35b2fe99bee4f332d1c1efa49107cdb3c67da07a
8267Author: Darren Tucker <dtucker@zip.com.au>
8268Date: Fri May 10 15:35:26 2013 +1000
8269
8270 - (dtucker) [openbsd-compat/getopt.c] Factor out portibility changes to
8271 getopt.c. Preprocessed source is identical other than line numbers.
8272
8273commit abbc7a7c02e45787d023f50a30f62d7a3e14fe9e
8274Author: Darren Tucker <dtucker@zip.com.au>
8275Date: Fri May 10 13:54:23 2013 +1000
8276
8277 - (dtucker) [configure.ac] Enable -Wsizeof-pointer-memaccess if the compiler
8278 supports it. Mentioned by Colin Watson in bz#2100, ok djm.
8279
8280commit bc02f163f6e882d390abfb925b47b41e13ae523b
8281Author: Damien Miller <djm@mindrot.org>
8282Date: Tue Apr 23 19:25:49 2013 +1000
8283
8284 - dtucker@cvs.openbsd.org 2013/04/22 01:17:18
8285 [mux.c]
8286 typo in debug output: evitval->exitval
8287
8288commit f8b894e31dc3530c7eb6d0a378848260d54f74c4
8289Author: Damien Miller <djm@mindrot.org>
8290Date: Tue Apr 23 19:25:29 2013 +1000
8291
8292 - djm@cvs.openbsd.org 2013/04/19 12:07:08
8293 [kex.c]
8294 remove duplicated list entry pointed out by naddy@
8295
8296commit 34bd20a1e53b63ceb01f06c1654d9112e6784b0a
8297Author: Damien Miller <djm@mindrot.org>
8298Date: Tue Apr 23 19:25:00 2013 +1000
8299
8300 - djm@cvs.openbsd.org 2013/04/19 11:10:18
8301 [ssh.c]
8302 add -Q to usage; reminded by jmc@
8303
8304commit ea11119eee3c5e2429b1f5f8688b25b028fa991a
8305Author: Damien Miller <djm@mindrot.org>
8306Date: Tue Apr 23 19:24:32 2013 +1000
8307
8308 - djm@cvs.openbsd.org 2013/04/19 01:06:50
8309 [authfile.c cipher.c cipher.h kex.c kex.h kexecdh.c kexecdhc.c kexecdhs.c]
8310 [key.c key.h mac.c mac.h packet.c ssh.1 ssh.c]
8311 add the ability to query supported ciphers, MACs, key type and KEX
8312 algorithms to ssh. Includes some refactoring of KEX and key type handling
8313 to be table-driven; ok markus@
8314
8315commit a56086b9903b62c1c4fdedf01b68338fe4dc90e4
8316Author: Damien Miller <djm@mindrot.org>
8317Date: Tue Apr 23 15:24:18 2013 +1000
8318
8319 - djm@cvs.openbsd.org 2013/04/19 01:03:01
8320 [session.c]
8321 reintroduce 1.262 without the connection-killing bug:
8322 fatal() when ChrootDirectory specified by running without root privileges;
8323 ok markus@
8324
8325commit 0d6771b4648889ae5bc4235f9e3fc6cd82b710bd
8326Author: Damien Miller <djm@mindrot.org>
8327Date: Tue Apr 23 15:23:24 2013 +1000
8328
8329 - djm@cvs.openbsd.org 2013/04/19 01:01:00
8330 [ssh-keygen.c]
8331 fix some memory leaks; bz#2088 ok dtucker@
8332
8333commit 467b00c38ba244f9966466e57a89d003f3afb159
8334Author: Damien Miller <djm@mindrot.org>
8335Date: Tue Apr 23 15:23:07 2013 +1000
8336
8337 - djm@cvs.openbsd.org 2013/04/19 01:00:10
8338 [sshd_config.5]
8339 document the requirment that the AuthorizedKeysCommand be owned by root;
8340 ok dtucker@ markus@
8341
8342commit 9303e6527bb5ca7630c765f28624702c212bfd6c
8343Author: Damien Miller <djm@mindrot.org>
8344Date: Tue Apr 23 15:22:40 2013 +1000
8345
8346 - djm@cvs.openbsd.org 2013/04/18 02:16:07
8347 [sftp.c]
8348 make "sftp -q" do what it says on the sticker: hush everything but errors;
8349
8350commit f1a02aea35504e8bef2ed9eef6f9ddeab12bacb3
8351Author: Damien Miller <djm@mindrot.org>
8352Date: Tue Apr 23 15:22:13 2013 +1000
8353
8354 - dtucker@cvs.openbsd.org 2013/04/17 09:04:09
8355 [session.c]
8356 revert rev 1.262; it fails because uid is already set here. ok djm@
8357
8358commit d5edefd27a30768cc7a4817302e964b6cb2f9be7
8359Author: Damien Miller <djm@mindrot.org>
8360Date: Tue Apr 23 15:21:39 2013 +1000
8361
8362 - djm@cvs.openbsd.org 2013/04/11 02:27:50
8363 [packet.c]
8364 quiet disconnect notifications on the server from error() back to logit()
8365 if it is a normal client closure; bz#2057 ok+feedback dtucker@
8366
8367commit 6901032b05291fc5d2bd4067fc47904de3506fda
8368Author: Damien Miller <djm@mindrot.org>
8369Date: Tue Apr 23 15:21:24 2013 +1000
8370
8371 - dtucker@cvs.openbsd.org 2013/04/07 09:40:27
8372 [sshd.8]
8373 clarify -e text. suggested by & ok jmc@
8374
8375commit 03d4d7e60b16f913c75382e32e136ddfa8d6485f
8376Author: Damien Miller <djm@mindrot.org>
8377Date: Tue Apr 23 15:21:06 2013 +1000
8378
8379 - dtucker@cvs.openbsd.org 2013/04/07 02:10:33
8380 [log.c log.h ssh.1 ssh.c sshd.8 sshd.c]
8381 Add -E option to ssh and sshd to append debugging logs to a specified file
8382 instead of stderr or syslog. ok markus@, man page help jmc@
8383
8384commit 37f1c08473b1ef2a188ee178ce2e11e841f88563
8385Author: Damien Miller <djm@mindrot.org>
8386Date: Tue Apr 23 15:20:43 2013 +1000
8387
8388 - markus@cvs.openbsd.org 2013/04/06 16:07:00
8389 [channels.c sshd.c]
8390 handle ECONNABORTED for accept(); ok deraadt some time ago...
8391
8392commit 172859cff7df9fd8a29a1f0a4de568f644bbda50
8393Author: Damien Miller <djm@mindrot.org>
8394Date: Tue Apr 23 15:19:27 2013 +1000
8395
8396 - djm@cvs.openbsd.org 2013/04/05 00:58:51
8397 [mux.c]
8398 cleanup mux-created channels that are in SSH_CHANNEL_OPENING state too
8399 (in addition to ones already in OPEN); bz#2079, ok dtucker@
8400
8401commit 9f12b5dcd5f7772e633fb2786c63bfcbea1f1aea
8402Author: Damien Miller <djm@mindrot.org>
8403Date: Tue Apr 23 15:19:11 2013 +1000
8404
8405 - djm@cvs.openbsd.org 2013/04/05 00:31:49
8406 [pathnames.h]
8407 use the existing _PATH_SSH_USER_RC define to construct the other
8408 pathnames; bz#2077, ok dtucker@ (no binary change)
8409
8410commit d677ad14ff7efedf21745ee1694058350e758e18
8411Author: Damien Miller <djm@mindrot.org>
8412Date: Tue Apr 23 15:18:51 2013 +1000
8413
8414 - djm@cvs.openbsd.org 2013/04/05 00:14:00
8415 [auth2-gss.c krl.c sshconnect2.c]
8416 hush some {unused, printf type} warnings
8417
8418commit 508b6c3d3b95c8ec078fd4801368597ab29b2db9
8419Author: Damien Miller <djm@mindrot.org>
8420Date: Tue Apr 23 15:18:28 2013 +1000
8421
8422 - djm@cvs.openbsd.org 2013/03/08 06:32:58
8423 [ssh.c]
8424 allow "ssh -f none ..." ok markus@
8425
8426commit 91a55f28f35431f9000b95815c343b5a18fda712
8427Author: Damien Miller <djm@mindrot.org>
8428Date: Tue Apr 23 15:18:10 2013 +1000
8429
8430 - markus@cvs.openbsd.org 2013/03/07 19:27:25
8431 [auth.h auth2-chall.c auth2.c monitor.c sshd_config.5]
8432 add submethod support to AuthenticationMethods; ok and freedback djm@
8433
8434commit 4ce189d9108c62090a0dd5dea973d175328440db
8435Author: Damien Miller <djm@mindrot.org>
8436Date: Tue Apr 23 15:17:52 2013 +1000
8437
8438 - djm@cvs.openbsd.org 2013/03/07 00:19:59
8439 [auth2-pubkey.c monitor.c]
8440 reconstruct the original username that was sent by the client, which may
8441 have included a style (e.g. "root:skey") when checking public key
8442 signatures. Fixes public key and hostbased auth when the client specified
8443 a style; ok markus@
8444
8445commit 5cbec4c25954b184e43bf3d3ac09e65eb474f5f9
8446Author: Damien Miller <djm@mindrot.org>
8447Date: Tue Apr 23 15:17:12 2013 +1000
8448
8449 - djm@cvs.openbsd.org 2013/03/06 23:36:53
8450 [readconf.c]
8451 g/c unused variable (-Wunused)
8452
8453commit 998cc56b65682d490c9bbf5977dceb1aa84a0233
8454Author: Damien Miller <djm@mindrot.org>
8455Date: Tue Apr 23 15:16:43 2013 +1000
8456
8457 - djm@cvs.openbsd.org 2013/03/06 23:35:23
8458 [session.c]
8459 fatal() when ChrootDirectory specified by running without root privileges;
8460 ok markus@
8461
8462commit 62e9c4f9b6027620f9091a2f43328e057bdb33f1
8463Author: Damien Miller <djm@mindrot.org>
8464Date: Tue Apr 23 15:15:49 2013 +1000
8465
8466 - (djm) OpenBSD CVS Sync
8467 - markus@cvs.openbsd.org 2013/03/05 20:16:09
8468 [sshconnect2.c]
8469 reset pubkey order on partial success; ok djm@
8470
8471commit 6332da2ae88db623d7da8070dd807efa26d9dfe8
8472Author: Damien Miller <djm@mindrot.org>
8473Date: Tue Apr 23 14:25:52 2013 +1000
8474
8475 - (djm) [auth.c configure.ac misc.c monitor.c monitor_wrap.c] Support
8476 platforms, such as Android, that lack struct passwd.pw_gecos. Report
8477 and initial patch from Nathan Osman bz#2086; feedback tim@ ok dtucker@
8478
8479commit ce1c9574fcfaf753a062276867335c1e237f725c
8480Author: Darren Tucker <dtucker@zip.com.au>
8481Date: Thu Apr 18 21:36:19 2013 +1000
8482
8483 - (dtucker) [configure.ac] Use -Qunused-arguments to suppress warnings from
8484 unused argument warnings (in particular, -fno-builtin-memset) from clang.
8485
8486commit bc68f2451b836e6a3fa65df8774a8b1f10049ded
8487Author: Damien Miller <djm@mindrot.org>
8488Date: Thu Apr 18 11:26:25 2013 +1000
8489
8490 - (djm) [config.guess config.sub] Update to last versions before they switch
8491 to GPL3. ok dtucker@
8492
8493commit 15fd19c4c9943cf02bc6f462d52c86ee6a8f422e
8494Author: Darren Tucker <dtucker@zip.com.au>
8495Date: Fri Apr 5 11:22:26 2013 +1100
8496
8497 - djm@cvs.openbsd.org 2013/02/22 22:09:01
8498 [ssh.c]
8499 Allow IdenityFile=none; ok markus deraadt (and dtucker for an earlier
8500 version)
8501
8502commit 5d1d9541a7c83963cd887b6b36e25b46463a05d4
8503Author: Darren Tucker <dtucker@zip.com.au>
8504Date: Fri Apr 5 11:20:00 2013 +1100
8505
8506 - markus@cvs.openbsd.org 2013/02/22 19:13:56
8507 [sshconnect.c]
8508 support ProxyCommand=- (stdin/out already point to the proxy); ok djm@
8509
8510commit aefa3682431f59cf1ad9a0f624114b135135aa44
8511Author: Darren Tucker <dtucker@zip.com.au>
8512Date: Fri Apr 5 11:18:35 2013 +1100
8513
8514 - dtucker@cvs.openbsd.org 2013/02/22 04:45:09
8515 [ssh.c readconf.c readconf.h]
8516 Don't complain if IdentityFiles specified in system-wide configs are
8517 missing. ok djm, deraadt
8518
8519commit f3c38142435622d056582e851579d8647a233c7f
8520Author: Darren Tucker <dtucker@zip.com.au>
8521Date: Fri Apr 5 11:16:52 2013 +1100
8522
8523 - dtucker@cvs.openbsd.org 2013/02/19 02:12:47
8524 [krl.c]
8525 Remove bogus include. ok djm
8526 (id sync only)
8527
8528commit 1910478c2d2c3d0e1edacaeff21ed388d70759e9
8529Author: Darren Tucker <dtucker@zip.com.au>
8530Date: Fri Apr 5 11:13:08 2013 +1100
8531
8532 - dtucker@cvs.openbsd.org 2013/02/17 23:16:57
8533 [readconf.c ssh.c readconf.h sshconnect2.c]
8534 Keep track of which IndentityFile options were manually supplied and which
8535 were default options, and don't warn if the latter are missing.
8536 ok markus@
8537
8538commit c9627cdbc65b25da943f24e6a953da899f08eefc
8539Author: Darren Tucker <dtucker@zip.com.au>
8540Date: Mon Apr 1 12:40:48 2013 +1100
8541
8542 - (dtucker) [openbsd-compat/bsd-cygwin_util.{c,h}] Don't include windows.h
8543 to avoid conflicting definitions of __int64, adding the required bits.
8544 Patch from Corinna Vinschen.
8545
8546commit 75db01d2ce29a85f8e5a2aff2011446896cf3f8a
8547Author: Tim Rice <tim@multitalents.net>
8548Date: Fri Mar 22 10:14:32 2013 -0700
8549
8550 - (tim) [Makefile.in] remove some duplication introduced in 20130220 commit.
8551
8552commit 221b4b2436ac78a65c3b775c25ccd396a1fed208
8553Author: Darren Tucker <dtucker@zip.com.au>
8554Date: Fri Mar 22 12:51:09 2013 +1100
8555
8556 - (dtucker) [includes.h] Check if _GNU_SOURCE is already defined before
8557 defining it again. Prevents warnings if someone, eg, sets it in CFLAGS.
8558
8559commit c8a0f27c6d761d1335d13ed84d773e9ddf1d95c8
8560Author: Darren Tucker <dtucker@zip.com.au>
8561Date: Fri Mar 22 12:49:14 2013 +1100
8562
8563 - (dtucker) [configure.ac] Add stdlib.h to zlib check for exit() prototype.
8564
8565commit eed8dc261018aea4d6b8606ca3addc9f8cf9ed1e
8566Author: Damien Miller <djm@mindrot.org>
8567Date: Fri Mar 22 10:25:22 2013 +1100
8568
8569 - (djm) Release 6.2p1
8570
8571commit 83efe7c86168cc07b8e6cc6df6b54f7ace3b64a3
8572Author: Damien Miller <djm@mindrot.org>
8573Date: Fri Mar 22 10:17:36 2013 +1100
8574
8575 - (djm) [contrib/ssh-copy-id contrib/ssh-copy-id.1] Updated to Phil
8576 Hands' greatly revised version.
8577
8578commit 63b4bcd04e1c57b77eabb4e4d359508a4b2af685
8579Author: Damien Miller <djm@mindrot.org>
8580Date: Wed Mar 20 12:55:14 2013 +1100
8581
8582 - (djm) [configure.ac log.c scp.c sshconnect2.c openbsd-compat/vis.c]
8583 [openbsd-compat/vis.h] FreeBSD's strnvis isn't compatible with OpenBSD's
8584 so mark it as broken. Patch from des AT des.no
diff --git a/PROTOCOL b/PROTOCOL
index 91bfe270d..85641e650 100644
--- a/PROTOCOL
+++ b/PROTOCOL
@@ -175,7 +175,7 @@ whitelisted to receive this message upon request.
175 175
176OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com" 176OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com"
177channel type. This channel type supports forwarding of network packets 177channel type. This channel type supports forwarding of network packets
178with datagram boundaries intact between endpoints equipped with 178with datagram boundaries intact between endpoints equipped with
179interfaces like the BSD tun(4) device. Tunnel forwarding channels are 179interfaces like the BSD tun(4) device. Tunnel forwarding channels are
180requested by the client with the following packet: 180requested by the client with the following packet:
181 181
@@ -453,4 +453,4 @@ respond with a SSH_FXP_STATUS message.
453This extension is advertised in the SSH_FXP_VERSION hello with version 453This extension is advertised in the SSH_FXP_VERSION hello with version
454"1". 454"1".
455 455
456$OpenBSD: PROTOCOL,v 1.27 2015/02/20 22:17:21 djm Exp $ 456$OpenBSD: PROTOCOL,v 1.28 2015/05/08 03:56:51 djm Exp $
diff --git a/PROTOCOL.agent b/PROTOCOL.agent
index 3fcaa14d4..27ec0c1de 100644
--- a/PROTOCOL.agent
+++ b/PROTOCOL.agent
@@ -413,7 +413,7 @@ It may be requested using this message:
413 413
414"rsa_e" and "rsa_n" are used to identify which private key to use. 414"rsa_e" and "rsa_n" are used to identify which private key to use.
415"encrypted_challenge" is a challenge blob that has (presumably) 415"encrypted_challenge" is a challenge blob that has (presumably)
416been encrypted with the public key and must be in the range 416been encrypted with the public key and must be in the range
4171 <= encrypted_challenge < 2^256. "session_id" is the SSH protocol 1 4171 <= encrypted_challenge < 2^256. "session_id" is the SSH protocol 1
418session ID (computed from the server host key, the server semi-ephemeral 418session ID (computed from the server host key, the server semi-ephemeral
419key and the session cookie). 419key and the session cookie).
@@ -557,4 +557,4 @@ Locking and unlocking affects both protocol 1 and protocol 2 keys.
557 SSH_AGENT_CONSTRAIN_LIFETIME 1 557 SSH_AGENT_CONSTRAIN_LIFETIME 1
558 SSH_AGENT_CONSTRAIN_CONFIRM 2 558 SSH_AGENT_CONSTRAIN_CONFIRM 2
559 559
560$OpenBSD: PROTOCOL.agent,v 1.7 2013/01/02 00:33:49 djm Exp $ 560$OpenBSD: PROTOCOL.agent,v 1.8 2015/05/08 03:56:51 djm Exp $
diff --git a/README b/README
index f1f7e7fc0..0401d85ac 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
1See http://www.openssh.com/txt/release-6.8 for the release notes. 1See http://www.openssh.com/txt/release-6.9 for the release notes.
2 2
3- A Japanese translation of this document and of the OpenSSH FAQ is 3- A Japanese translation of this document and of the OpenSSH FAQ is
4- available at http://www.unixuser.org/~haruyama/security/openssh/index.html 4- available at http://www.unixuser.org/~haruyama/security/openssh/index.html
diff --git a/auth-chall.c b/auth-chall.c
index 5c26a403d..60c9f14ca 100644
--- a/auth-chall.c
+++ b/auth-chall.c
@@ -30,8 +30,6 @@
30#include <stdlib.h> 30#include <stdlib.h>
31#include <stdio.h> 31#include <stdio.h>
32 32
33#include <stdarg.h>
34
35#include "xmalloc.h" 33#include "xmalloc.h"
36#include "key.h" 34#include "key.h"
37#include "hostfile.h" 35#include "hostfile.h"
diff --git a/auth-options.c b/auth-options.c
index 4f0da9c04..facfc025b 100644
--- a/auth-options.c
+++ b/auth-options.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth-options.c,v 1.65 2015/01/14 10:30:34 markus Exp $ */ 1/* $OpenBSD: auth-options.c,v 1.67 2015/05/01 03:20:54 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -209,8 +209,7 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum)
209 goto next_option; 209 goto next_option;
210 } 210 }
211 cp = "environment=\""; 211 cp = "environment=\"";
212 if (options.permit_user_env && 212 if (strncasecmp(opts, cp, strlen(cp)) == 0) {
213 strncasecmp(opts, cp, strlen(cp)) == 0) {
214 char *s; 213 char *s;
215 struct envstring *new_envstring; 214 struct envstring *new_envstring;
216 215
@@ -236,13 +235,19 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum)
236 goto bad_option; 235 goto bad_option;
237 } 236 }
238 s[i] = '\0'; 237 s[i] = '\0';
239 auth_debug_add("Adding to environment: %.900s", s);
240 debug("Adding to environment: %.900s", s);
241 opts++; 238 opts++;
242 new_envstring = xcalloc(1, sizeof(struct envstring)); 239 if (options.permit_user_env) {
243 new_envstring->s = s; 240 auth_debug_add("Adding to environment: "
244 new_envstring->next = custom_environment; 241 "%.900s", s);
245 custom_environment = new_envstring; 242 debug("Adding to environment: %.900s", s);
243 new_envstring = xcalloc(1,
244 sizeof(*new_envstring));
245 new_envstring->s = s;
246 new_envstring->next = custom_environment;
247 custom_environment = new_envstring;
248 s = NULL;
249 }
250 free(s);
246 goto next_option; 251 goto next_option;
247 } 252 }
248 cp = "from=\""; 253 cp = "from=\"";
@@ -603,7 +608,7 @@ auth_cert_options(struct sshkey *k, struct passwd *pw)
603 &cert_source_address_done) == -1) 608 &cert_source_address_done) == -1)
604 return -1; 609 return -1;
605 if (parse_option_list(k->cert->extensions, pw, 610 if (parse_option_list(k->cert->extensions, pw,
606 OPTIONS_EXTENSIONS, 1, 611 OPTIONS_EXTENSIONS, 0,
607 &cert_no_port_forwarding_flag, 612 &cert_no_port_forwarding_flag,
608 &cert_no_agent_forwarding_flag, 613 &cert_no_agent_forwarding_flag,
609 &cert_no_x11_forwarding_flag, 614 &cert_no_x11_forwarding_flag,
diff --git a/auth-pam.c b/auth-pam.c
index d789bad7b..d94c8285b 100644
--- a/auth-pam.c
+++ b/auth-pam.c
@@ -738,7 +738,7 @@ sshpam_query(void *ctx, char **name, char **info,
738 case PAM_PROMPT_ECHO_OFF: 738 case PAM_PROMPT_ECHO_OFF:
739 *num = 1; 739 *num = 1;
740 len = plen + mlen + 1; 740 len = plen + mlen + 1;
741 **prompts = xrealloc(**prompts, 1, len); 741 **prompts = xreallocarray(**prompts, 1, len);
742 strlcpy(**prompts + plen, msg, len - plen); 742 strlcpy(**prompts + plen, msg, len - plen);
743 plen += mlen; 743 plen += mlen;
744 **echo_on = (type == PAM_PROMPT_ECHO_ON); 744 **echo_on = (type == PAM_PROMPT_ECHO_ON);
@@ -748,7 +748,7 @@ sshpam_query(void *ctx, char **name, char **info,
748 case PAM_TEXT_INFO: 748 case PAM_TEXT_INFO:
749 /* accumulate messages */ 749 /* accumulate messages */
750 len = plen + mlen + 2; 750 len = plen + mlen + 2;
751 **prompts = xrealloc(**prompts, 1, len); 751 **prompts = xreallocarray(**prompts, 1, len);
752 strlcpy(**prompts + plen, msg, len - plen); 752 strlcpy(**prompts + plen, msg, len - plen);
753 plen += mlen; 753 plen += mlen;
754 strlcat(**prompts + plen, "\n", len - plen); 754 strlcat(**prompts + plen, "\n", len - plen);
diff --git a/auth.c b/auth.c
index f9b767301..e6c094d1f 100644
--- a/auth.c
+++ b/auth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth.c,v 1.110 2015/02/25 17:29:38 djm Exp $ */ 1/* $OpenBSD: auth.c,v 1.111 2015/05/01 04:17:51 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -400,8 +400,7 @@ expand_authorized_keys(const char *filename, struct passwd *pw)
400char * 400char *
401authorized_principals_file(struct passwd *pw) 401authorized_principals_file(struct passwd *pw)
402{ 402{
403 if (options.authorized_principals_file == NULL || 403 if (options.authorized_principals_file == NULL)
404 strcasecmp(options.authorized_principals_file, "none") == 0)
405 return NULL; 404 return NULL;
406 return expand_authorized_keys(options.authorized_principals_file, pw); 405 return expand_authorized_keys(options.authorized_principals_file, pw);
407} 406}
diff --git a/auth.h b/auth.h
index db8603760..8b27575b0 100644
--- a/auth.h
+++ b/auth.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth.h,v 1.82 2015/02/16 22:13:32 djm Exp $ */ 1/* $OpenBSD: auth.h,v 1.84 2015/05/08 06:41:56 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
@@ -56,7 +56,7 @@ struct Authctxt {
56 int valid; /* user exists and is allowed to login */ 56 int valid; /* user exists and is allowed to login */
57 int attempt; 57 int attempt;
58 int failures; 58 int failures;
59 int server_caused_failure; 59 int server_caused_failure;
60 int force_pwchange; 60 int force_pwchange;
61 char *user; /* username sent by the client */ 61 char *user; /* username sent by the client */
62 char *service; 62 char *service;
@@ -126,7 +126,7 @@ int auth_rsa_key_allowed(struct passwd *, BIGNUM *, Key **);
126 126
127int auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, Key *); 127int auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, Key *);
128int hostbased_key_allowed(struct passwd *, const char *, char *, Key *); 128int hostbased_key_allowed(struct passwd *, const char *, char *, Key *);
129int user_key_allowed(struct passwd *, Key *); 129int user_key_allowed(struct passwd *, Key *, int);
130void pubkey_auth_info(Authctxt *, const Key *, const char *, ...) 130void pubkey_auth_info(Authctxt *, const Key *, const char *, ...)
131 __attribute__((__format__ (printf, 3, 4))); 131 __attribute__((__format__ (printf, 3, 4)));
132void auth2_record_userkey(Authctxt *, struct sshkey *); 132void auth2_record_userkey(Authctxt *, struct sshkey *);
diff --git a/auth2-hostbased.c b/auth2-hostbased.c
index eebfe8fc3..e2327cf77 100644
--- a/auth2-hostbased.c
+++ b/auth2-hostbased.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth2-hostbased.c,v 1.24 2015/01/28 22:36:00 djm Exp $ */ 1/* $OpenBSD: auth2-hostbased.c,v 1.25 2015/05/04 06:10:48 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -109,8 +109,7 @@ userauth_hostbased(Authctxt *authctxt)
109 goto done; 109 goto done;
110 } 110 }
111 if (match_pattern_list(sshkey_ssh_name(key), 111 if (match_pattern_list(sshkey_ssh_name(key),
112 options.hostbased_key_types, 112 options.hostbased_key_types, 0) != 1) {
113 strlen(options.hostbased_key_types), 0) != 1) {
114 logit("%s: key type %s not in HostbasedAcceptedKeyTypes", 113 logit("%s: key type %s not in HostbasedAcceptedKeyTypes",
115 __func__, sshkey_type(key)); 114 __func__, sshkey_type(key));
116 goto done; 115 goto done;
diff --git a/auth2-pubkey.c b/auth2-pubkey.c
index d943efa1e..5aa319ccc 100644
--- a/auth2-pubkey.c
+++ b/auth2-pubkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth2-pubkey.c,v 1.47 2015/02/17 00:14:05 djm Exp $ */ 1/* $OpenBSD: auth2-pubkey.c,v 1.53 2015/06/15 18:44:22 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -65,6 +65,9 @@
65#include "monitor_wrap.h" 65#include "monitor_wrap.h"
66#include "authfile.h" 66#include "authfile.h"
67#include "match.h" 67#include "match.h"
68#include "ssherr.h"
69#include "channels.h" /* XXX for session.h */
70#include "session.h" /* XXX for child_set_env(); refactor? */
68 71
69/* import */ 72/* import */
70extern ServerOptions options; 73extern ServerOptions options;
@@ -127,8 +130,8 @@ userauth_pubkey(Authctxt *authctxt)
127 logit("refusing previously-used %s key", key_type(key)); 130 logit("refusing previously-used %s key", key_type(key));
128 goto done; 131 goto done;
129 } 132 }
130 if (match_pattern_list(sshkey_ssh_name(key), options.pubkey_key_types, 133 if (match_pattern_list(sshkey_ssh_name(key),
131 strlen(options.pubkey_key_types), 0) != 1) { 134 options.pubkey_key_types, 0) != 1) {
132 logit("%s: key type %s not in PubkeyAcceptedKeyTypes", 135 logit("%s: key type %s not in PubkeyAcceptedKeyTypes",
133 __func__, sshkey_ssh_name(key)); 136 __func__, sshkey_ssh_name(key));
134 goto done; 137 goto done;
@@ -169,7 +172,7 @@ userauth_pubkey(Authctxt *authctxt)
169 172
170 /* test for correct signature */ 173 /* test for correct signature */
171 authenticated = 0; 174 authenticated = 0;
172 if (PRIVSEP(user_key_allowed(authctxt->pw, key)) && 175 if (PRIVSEP(user_key_allowed(authctxt->pw, key, 1)) &&
173 PRIVSEP(key_verify(key, sig, slen, buffer_ptr(&b), 176 PRIVSEP(key_verify(key, sig, slen, buffer_ptr(&b),
174 buffer_len(&b))) == 1) { 177 buffer_len(&b))) == 1) {
175 authenticated = 1; 178 authenticated = 1;
@@ -191,7 +194,7 @@ userauth_pubkey(Authctxt *authctxt)
191 * if a user is not allowed to login. is this an 194 * if a user is not allowed to login. is this an
192 * issue? -markus 195 * issue? -markus
193 */ 196 */
194 if (PRIVSEP(user_key_allowed(authctxt->pw, key))) { 197 if (PRIVSEP(user_key_allowed(authctxt->pw, key, 0))) {
195 packet_start(SSH2_MSG_USERAUTH_PK_OK); 198 packet_start(SSH2_MSG_USERAUTH_PK_OK);
196 packet_put_string(pkalg, alen); 199 packet_put_string(pkalg, alen);
197 packet_put_string(pkblob, blen); 200 packet_put_string(pkblob, blen);
@@ -248,6 +251,288 @@ pubkey_auth_info(Authctxt *authctxt, const Key *key, const char *fmt, ...)
248 free(extra); 251 free(extra);
249} 252}
250 253
254/*
255 * Splits 's' into an argument vector. Handles quoted string and basic
256 * escape characters (\\, \", \'). Caller must free the argument vector
257 * and its members.
258 */
259static int
260split_argv(const char *s, int *argcp, char ***argvp)
261{
262 int r = SSH_ERR_INTERNAL_ERROR;
263 int argc = 0, quote, i, j;
264 char *arg, **argv = xcalloc(1, sizeof(*argv));
265
266 *argvp = NULL;
267 *argcp = 0;
268
269 for (i = 0; s[i] != '\0'; i++) {
270 /* Skip leading whitespace */
271 if (s[i] == ' ' || s[i] == '\t')
272 continue;
273
274 /* Start of a token */
275 quote = 0;
276 if (s[i] == '\\' &&
277 (s[i + 1] == '\'' || s[i + 1] == '\"' || s[i + 1] == '\\'))
278 i++;
279 else if (s[i] == '\'' || s[i] == '"')
280 quote = s[i++];
281
282 argv = xreallocarray(argv, (argc + 2), sizeof(*argv));
283 arg = argv[argc++] = xcalloc(1, strlen(s + i) + 1);
284 argv[argc] = NULL;
285
286 /* Copy the token in, removing escapes */
287 for (j = 0; s[i] != '\0'; i++) {
288 if (s[i] == '\\') {
289 if (s[i + 1] == '\'' ||
290 s[i + 1] == '\"' ||
291 s[i + 1] == '\\') {
292 i++; /* Skip '\' */
293 arg[j++] = s[i];
294 } else {
295 /* Unrecognised escape */
296 arg[j++] = s[i];
297 }
298 } else if (quote == 0 && (s[i] == ' ' || s[i] == '\t'))
299 break; /* done */
300 else if (quote != 0 && s[i] == quote)
301 break; /* done */
302 else
303 arg[j++] = s[i];
304 }
305 if (s[i] == '\0') {
306 if (quote != 0) {
307 /* Ran out of string looking for close quote */
308 r = SSH_ERR_INVALID_FORMAT;
309 goto out;
310 }
311 break;
312 }
313 }
314 /* Success */
315 *argcp = argc;
316 *argvp = argv;
317 argc = 0;
318 argv = NULL;
319 r = 0;
320 out:
321 if (argc != 0 && argv != NULL) {
322 for (i = 0; i < argc; i++)
323 free(argv[i]);
324 free(argv);
325 }
326 return r;
327}
328
329/*
330 * Reassemble an argument vector into a string, quoting and escaping as
331 * necessary. Caller must free returned string.
332 */
333static char *
334assemble_argv(int argc, char **argv)
335{
336 int i, j, ws, r;
337 char c, *ret;
338 struct sshbuf *buf, *arg;
339
340 if ((buf = sshbuf_new()) == NULL || (arg = sshbuf_new()) == NULL)
341 fatal("%s: sshbuf_new failed", __func__);
342
343 for (i = 0; i < argc; i++) {
344 ws = 0;
345 sshbuf_reset(arg);
346 for (j = 0; argv[i][j] != '\0'; j++) {
347 r = 0;
348 c = argv[i][j];
349 switch (c) {
350 case ' ':
351 case '\t':
352 ws = 1;
353 r = sshbuf_put_u8(arg, c);
354 break;
355 case '\\':
356 case '\'':
357 case '"':
358 if ((r = sshbuf_put_u8(arg, '\\')) != 0)
359 break;
360 /* FALLTHROUGH */
361 default:
362 r = sshbuf_put_u8(arg, c);
363 break;
364 }
365 if (r != 0)
366 fatal("%s: sshbuf_put_u8: %s",
367 __func__, ssh_err(r));
368 }
369 if ((i != 0 && (r = sshbuf_put_u8(buf, ' ')) != 0) ||
370 (ws != 0 && (r = sshbuf_put_u8(buf, '"')) != 0) ||
371 (r = sshbuf_putb(buf, arg)) != 0 ||
372 (ws != 0 && (r = sshbuf_put_u8(buf, '"')) != 0))
373 fatal("%s: buffer error: %s", __func__, ssh_err(r));
374 }
375 if ((ret = malloc(sshbuf_len(buf) + 1)) == NULL)
376 fatal("%s: malloc failed", __func__);
377 memcpy(ret, sshbuf_ptr(buf), sshbuf_len(buf));
378 ret[sshbuf_len(buf)] = '\0';
379 sshbuf_free(buf);
380 sshbuf_free(arg);
381 return ret;
382}
383
384/*
385 * Runs command in a subprocess. Returns pid on success and a FILE* to the
386 * subprocess' stdout or 0 on failure.
387 * NB. "command" is only used for logging.
388 */
389static pid_t
390subprocess(const char *tag, struct passwd *pw, const char *command,
391 int ac, char **av, FILE **child)
392{
393 FILE *f;
394 struct stat st;
395 int devnull, p[2], i;
396 pid_t pid;
397 char *cp, errmsg[512];
398 u_int envsize;
399 char **child_env;
400
401 *child = NULL;
402
403 debug3("%s: %s command \"%s\" running as %s", __func__,
404 tag, command, pw->pw_name);
405
406 /* Verify the path exists and is safe-ish to execute */
407 if (*av[0] != '/') {
408 error("%s path is not absolute", tag);
409 return 0;
410 }
411 temporarily_use_uid(pw);
412 if (stat(av[0], &st) < 0) {
413 error("Could not stat %s \"%s\": %s", tag,
414 av[0], strerror(errno));
415 restore_uid();
416 return 0;
417 }
418 if (auth_secure_path(av[0], &st, NULL, 0,
419 errmsg, sizeof(errmsg)) != 0) {
420 error("Unsafe %s \"%s\": %s", tag, av[0], errmsg);
421 restore_uid();
422 return 0;
423 }
424
425 /*
426 * Run the command; stderr is left in place, stdout is the
427 * authorized_keys output.
428 */
429 if (pipe(p) != 0) {
430 error("%s: pipe: %s", tag, strerror(errno));
431 restore_uid();
432 return 0;
433 }
434
435 /*
436 * Don't want to call this in the child, where it can fatal() and
437 * run cleanup_exit() code.
438 */
439 restore_uid();
440
441 switch ((pid = fork())) {
442 case -1: /* error */
443 error("%s: fork: %s", tag, strerror(errno));
444 close(p[0]);
445 close(p[1]);
446 return 0;
447 case 0: /* child */
448 /* Prepare a minimal environment for the child. */
449 envsize = 5;
450 child_env = xcalloc(sizeof(*child_env), envsize);
451 child_set_env(&child_env, &envsize, "PATH", _PATH_STDPATH);
452 child_set_env(&child_env, &envsize, "USER", pw->pw_name);
453 child_set_env(&child_env, &envsize, "LOGNAME", pw->pw_name);
454 child_set_env(&child_env, &envsize, "HOME", pw->pw_dir);
455 if ((cp = getenv("LANG")) != NULL)
456 child_set_env(&child_env, &envsize, "LANG", cp);
457
458 for (i = 0; i < NSIG; i++)
459 signal(i, SIG_DFL);
460
461 if ((devnull = open(_PATH_DEVNULL, O_RDWR)) == -1) {
462 error("%s: open %s: %s", tag, _PATH_DEVNULL,
463 strerror(errno));
464 _exit(1);
465 }
466 /* Keep stderr around a while longer to catch errors */
467 if (dup2(devnull, STDIN_FILENO) == -1 ||
468 dup2(p[1], STDOUT_FILENO) == -1) {
469 error("%s: dup2: %s", tag, strerror(errno));
470 _exit(1);
471 }
472 closefrom(STDERR_FILENO + 1);
473
474 /* Don't use permanently_set_uid() here to avoid fatal() */
475 if (setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) != 0) {
476 error("%s: setresgid %u: %s", tag, (u_int)pw->pw_gid,
477 strerror(errno));
478 _exit(1);
479 }
480 if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) != 0) {
481 error("%s: setresuid %u: %s", tag, (u_int)pw->pw_uid,
482 strerror(errno));
483 _exit(1);
484 }
485 /* stdin is pointed to /dev/null at this point */
486 if (dup2(STDIN_FILENO, STDERR_FILENO) == -1) {
487 error("%s: dup2: %s", tag, strerror(errno));
488 _exit(1);
489 }
490
491 execve(av[0], av, child_env);
492 error("%s exec \"%s\": %s", tag, command, strerror(errno));
493 _exit(127);
494 default: /* parent */
495 break;
496 }
497
498 close(p[1]);
499 if ((f = fdopen(p[0], "r")) == NULL) {
500 error("%s: fdopen: %s", tag, strerror(errno));
501 close(p[0]);
502 /* Don't leave zombie child */
503 kill(pid, SIGTERM);
504 while (waitpid(pid, NULL, 0) == -1 && errno == EINTR)
505 ;
506 return 0;
507 }
508 /* Success */
509 debug3("%s: %s pid %ld", __func__, tag, (long)pid);
510 *child = f;
511 return pid;
512}
513
514/* Returns 0 if pid exited cleanly, non-zero otherwise */
515static int
516exited_cleanly(pid_t pid, const char *tag, const char *cmd)
517{
518 int status;
519
520 while (waitpid(pid, &status, 0) == -1) {
521 if (errno != EINTR) {
522 error("%s: waitpid: %s", tag, strerror(errno));
523 return -1;
524 }
525 }
526 if (WIFSIGNALED(status)) {
527 error("%s %s exited on signal %d", tag, cmd, WTERMSIG(status));
528 return -1;
529 } else if (WEXITSTATUS(status) != 0) {
530 error("%s %s failed, status %d", tag, cmd, WEXITSTATUS(status));
531 return -1;
532 }
533 return 0;
534}
535
251static int 536static int
252match_principals_option(const char *principal_list, struct sshkey_cert *cert) 537match_principals_option(const char *principal_list, struct sshkey_cert *cert)
253{ 538{
@@ -269,19 +554,13 @@ match_principals_option(const char *principal_list, struct sshkey_cert *cert)
269} 554}
270 555
271static int 556static int
272match_principals_file(char *file, struct passwd *pw, struct sshkey_cert *cert) 557process_principals(FILE *f, char *file, struct passwd *pw,
558 struct sshkey_cert *cert)
273{ 559{
274 FILE *f;
275 char line[SSH_MAX_PUBKEY_BYTES], *cp, *ep, *line_opts; 560 char line[SSH_MAX_PUBKEY_BYTES], *cp, *ep, *line_opts;
276 u_long linenum = 0; 561 u_long linenum = 0;
277 u_int i; 562 u_int i;
278 563
279 temporarily_use_uid(pw);
280 debug("trying authorized principals file %s", file);
281 if ((f = auth_openprincipals(file, pw, options.strict_modes)) == NULL) {
282 restore_uid();
283 return 0;
284 }
285 while (read_keyfile_line(f, file, line, sizeof(line), &linenum) != -1) { 564 while (read_keyfile_line(f, file, line, sizeof(line), &linenum) != -1) {
286 /* Skip leading whitespace. */ 565 /* Skip leading whitespace. */
287 for (cp = line; *cp == ' ' || *cp == '\t'; cp++) 566 for (cp = line; *cp == ' ' || *cp == '\t'; cp++)
@@ -309,24 +588,128 @@ match_principals_file(char *file, struct passwd *pw, struct sshkey_cert *cert)
309 } 588 }
310 for (i = 0; i < cert->nprincipals; i++) { 589 for (i = 0; i < cert->nprincipals; i++) {
311 if (strcmp(cp, cert->principals[i]) == 0) { 590 if (strcmp(cp, cert->principals[i]) == 0) {
312 debug3("matched principal \"%.100s\" " 591 debug3("%s:%lu: matched principal \"%.100s\"",
313 "from file \"%s\" on line %lu", 592 file == NULL ? "(command)" : file,
314 cert->principals[i], file, linenum); 593 linenum, cert->principals[i]);
315 if (auth_parse_options(pw, line_opts, 594 if (auth_parse_options(pw, line_opts,
316 file, linenum) != 1) 595 file, linenum) != 1)
317 continue; 596 continue;
318 fclose(f);
319 restore_uid();
320 return 1; 597 return 1;
321 } 598 }
322 } 599 }
323 } 600 }
601 return 0;
602}
603
604static int
605match_principals_file(char *file, struct passwd *pw, struct sshkey_cert *cert)
606{
607 FILE *f;
608 int success;
609
610 temporarily_use_uid(pw);
611 debug("trying authorized principals file %s", file);
612 if ((f = auth_openprincipals(file, pw, options.strict_modes)) == NULL) {
613 restore_uid();
614 return 0;
615 }
616 success = process_principals(f, file, pw, cert);
324 fclose(f); 617 fclose(f);
325 restore_uid(); 618 restore_uid();
326 return 0; 619 return success;
327} 620}
328 621
329/* 622/*
623 * Checks whether principal is allowed in output of command.
624 * returns 1 if the principal is allowed or 0 otherwise.
625 */
626static int
627match_principals_command(struct passwd *user_pw, struct sshkey_cert *cert)
628{
629 FILE *f = NULL;
630 int ok, found_principal = 0;
631 struct passwd *pw;
632 int i, ac = 0, uid_swapped = 0;
633 pid_t pid;
634 char *tmp, *username = NULL, *command = NULL, **av = NULL;
635 void (*osigchld)(int);
636
637 if (options.authorized_principals_command == NULL)
638 return 0;
639 if (options.authorized_principals_command_user == NULL) {
640 error("No user for AuthorizedPrincipalsCommand specified, "
641 "skipping");
642 return 0;
643 }
644
645 /*
646 * NB. all returns later this function should go via "out" to
647 * ensure the original SIGCHLD handler is restored properly.
648 */
649 osigchld = signal(SIGCHLD, SIG_DFL);
650
651 /* Prepare and verify the user for the command */
652 username = percent_expand(options.authorized_principals_command_user,
653 "u", user_pw->pw_name, (char *)NULL);
654 pw = getpwnam(username);
655 if (pw == NULL) {
656 error("AuthorizedPrincipalsCommandUser \"%s\" not found: %s",
657 username, strerror(errno));
658 goto out;
659 }
660
661 /* Turn the command into an argument vector */
662 if (split_argv(options.authorized_principals_command, &ac, &av) != 0) {
663 error("AuthorizedPrincipalsCommand \"%s\" contains "
664 "invalid quotes", command);
665 goto out;
666 }
667 if (ac == 0) {
668 error("AuthorizedPrincipalsCommand \"%s\" yielded no arguments",
669 command);
670 goto out;
671 }
672 for (i = 1; i < ac; i++) {
673 tmp = percent_expand(av[i],
674 "u", user_pw->pw_name,
675 "h", user_pw->pw_dir,
676 (char *)NULL);
677 if (tmp == NULL)
678 fatal("%s: percent_expand failed", __func__);
679 free(av[i]);
680 av[i] = tmp;
681 }
682 /* Prepare a printable command for logs, etc. */
683 command = assemble_argv(ac, av);
684
685 if ((pid = subprocess("AuthorizedPrincipalsCommand", pw, command,
686 ac, av, &f)) == 0)
687 goto out;
688
689 uid_swapped = 1;
690 temporarily_use_uid(pw);
691
692 ok = process_principals(f, NULL, pw, cert);
693
694 if (exited_cleanly(pid, "AuthorizedPrincipalsCommand", command) != 0)
695 goto out;
696
697 /* Read completed successfully */
698 found_principal = ok;
699 out:
700 if (f != NULL)
701 fclose(f);
702 signal(SIGCHLD, osigchld);
703 for (i = 0; i < ac; i++)
704 free(av[i]);
705 free(av);
706 if (uid_swapped)
707 restore_uid();
708 free(command);
709 free(username);
710 return found_principal;
711}
712/*
330 * Checks whether key is allowed in authorized_keys-format file, 713 * Checks whether key is allowed in authorized_keys-format file,
331 * returns 1 if the key is allowed or 0 otherwise. 714 * returns 1 if the key is allowed or 0 otherwise.
332 */ 715 */
@@ -448,7 +831,7 @@ user_cert_trusted_ca(struct passwd *pw, Key *key)
448{ 831{
449 char *ca_fp, *principals_file = NULL; 832 char *ca_fp, *principals_file = NULL;
450 const char *reason; 833 const char *reason;
451 int ret = 0; 834 int ret = 0, found_principal = 0, use_authorized_principals;
452 835
453 if (!key_is_cert(key) || options.trusted_user_ca_keys == NULL) 836 if (!key_is_cert(key) || options.trusted_user_ca_keys == NULL)
454 return 0; 837 return 0;
@@ -470,17 +853,24 @@ user_cert_trusted_ca(struct passwd *pw, Key *key)
470 * against the username. 853 * against the username.
471 */ 854 */
472 if ((principals_file = authorized_principals_file(pw)) != NULL) { 855 if ((principals_file = authorized_principals_file(pw)) != NULL) {
473 if (!match_principals_file(principals_file, pw, key->cert)) { 856 if (match_principals_file(principals_file, pw, key->cert))
474 reason = "Certificate does not contain an " 857 found_principal = 1;
475 "authorized principal"; 858 }
859 /* Try querying command if specified */
860 if (!found_principal && match_principals_command(pw, key->cert))
861 found_principal = 1;
862 /* If principals file or command is specified, then require a match */
863 use_authorized_principals = principals_file != NULL ||
864 options.authorized_principals_command != NULL;
865 if (!found_principal && use_authorized_principals) {
866 reason = "Certificate does not contain an authorized principal";
476 fail_reason: 867 fail_reason:
477 error("%s", reason); 868 error("%s", reason);
478 auth_debug_add("%s", reason); 869 auth_debug_add("%s", reason);
479 goto out; 870 goto out;
480 }
481 } 871 }
482 if (key_cert_check_authority(key, 0, 1, 872 if (key_cert_check_authority(key, 0, 1,
483 principals_file == NULL ? pw->pw_name : NULL, &reason) != 0) 873 use_authorized_principals ? NULL : pw->pw_name, &reason) != 0)
484 goto fail_reason; 874 goto fail_reason;
485 if (auth_cert_options(key, pw) != 0) 875 if (auth_cert_options(key, pw) != 0)
486 goto out; 876 goto out;
@@ -526,144 +916,117 @@ user_key_allowed2(struct passwd *pw, Key *key, char *file)
526static int 916static int
527user_key_command_allowed2(struct passwd *user_pw, Key *key) 917user_key_command_allowed2(struct passwd *user_pw, Key *key)
528{ 918{
529 FILE *f; 919 FILE *f = NULL;
530 int ok, found_key = 0; 920 int r, ok, found_key = 0;
531 struct passwd *pw; 921 struct passwd *pw;
532 struct stat st; 922 int i, uid_swapped = 0, ac = 0;
533 int status, devnull, p[2], i;
534 pid_t pid; 923 pid_t pid;
535 char *username, errmsg[512]; 924 char *username = NULL, *key_fp = NULL, *keytext = NULL;
925 char *tmp, *command = NULL, **av = NULL;
926 void (*osigchld)(int);
536 927
537 if (options.authorized_keys_command == NULL || 928 if (options.authorized_keys_command == NULL)
538 options.authorized_keys_command[0] != '/')
539 return 0; 929 return 0;
540
541 if (options.authorized_keys_command_user == NULL) { 930 if (options.authorized_keys_command_user == NULL) {
542 error("No user for AuthorizedKeysCommand specified, skipping"); 931 error("No user for AuthorizedKeysCommand specified, skipping");
543 return 0; 932 return 0;
544 } 933 }
545 934
935 /*
936 * NB. all returns later this function should go via "out" to
937 * ensure the original SIGCHLD handler is restored properly.
938 */
939 osigchld = signal(SIGCHLD, SIG_DFL);
940
941 /* Prepare and verify the user for the command */
546 username = percent_expand(options.authorized_keys_command_user, 942 username = percent_expand(options.authorized_keys_command_user,
547 "u", user_pw->pw_name, (char *)NULL); 943 "u", user_pw->pw_name, (char *)NULL);
548 pw = getpwnam(username); 944 pw = getpwnam(username);
549 if (pw == NULL) { 945 if (pw == NULL) {
550 error("AuthorizedKeysCommandUser \"%s\" not found: %s", 946 error("AuthorizedKeysCommandUser \"%s\" not found: %s",
551 username, strerror(errno)); 947 username, strerror(errno));
552 free(username); 948 goto out;
553 return 0;
554 } 949 }
555 free(username);
556
557 temporarily_use_uid(pw);
558 950
559 if (stat(options.authorized_keys_command, &st) < 0) { 951 /* Prepare AuthorizedKeysCommand */
560 error("Could not stat AuthorizedKeysCommand \"%s\": %s", 952 if ((key_fp = sshkey_fingerprint(key, options.fingerprint_hash,
561 options.authorized_keys_command, strerror(errno)); 953 SSH_FP_DEFAULT)) == NULL) {
954 error("%s: sshkey_fingerprint failed", __func__);
562 goto out; 955 goto out;
563 } 956 }
564 if (auth_secure_path(options.authorized_keys_command, &st, NULL, 0, 957 if ((r = sshkey_to_base64(key, &keytext)) != 0) {
565 errmsg, sizeof(errmsg)) != 0) { 958 error("%s: sshkey_to_base64 failed: %s", __func__, ssh_err(r));
566 error("Unsafe AuthorizedKeysCommand: %s", errmsg);
567 goto out; 959 goto out;
568 } 960 }
569 961
570 if (pipe(p) != 0) { 962 /* Turn the command into an argument vector */
571 error("%s: pipe: %s", __func__, strerror(errno)); 963 if (split_argv(options.authorized_keys_command, &ac, &av) != 0) {
964 error("AuthorizedKeysCommand \"%s\" contains invalid quotes",
965 command);
572 goto out; 966 goto out;
573 } 967 }
574 968 if (ac == 0) {
575 debug3("Running AuthorizedKeysCommand: \"%s %s\" as \"%s\"", 969 error("AuthorizedKeysCommand \"%s\" yielded no arguments",
576 options.authorized_keys_command, user_pw->pw_name, pw->pw_name); 970 command);
971 goto out;
972 }
973 for (i = 1; i < ac; i++) {
974 tmp = percent_expand(av[i],
975 "u", user_pw->pw_name,
976 "h", user_pw->pw_dir,
977 "t", sshkey_ssh_name(key),
978 "f", key_fp,
979 "k", keytext,
980 (char *)NULL);
981 if (tmp == NULL)
982 fatal("%s: percent_expand failed", __func__);
983 free(av[i]);
984 av[i] = tmp;
985 }
986 /* Prepare a printable command for logs, etc. */
987 command = assemble_argv(ac, av);
577 988
578 /* 989 /*
579 * Don't want to call this in the child, where it can fatal() and 990 * If AuthorizedKeysCommand was run without arguments
580 * run cleanup_exit() code. 991 * then fall back to the old behaviour of passing the
992 * target username as a single argument.
581 */ 993 */
582 restore_uid(); 994 if (ac == 1) {
583 995 av = xreallocarray(av, ac + 2, sizeof(*av));
584 switch ((pid = fork())) { 996 av[1] = xstrdup(user_pw->pw_name);
585 case -1: /* error */ 997 av[2] = NULL;
586 error("%s: fork: %s", __func__, strerror(errno)); 998 /* Fix up command too, since it is used in log messages */
587 close(p[0]); 999 free(command);
588 close(p[1]); 1000 xasprintf(&command, "%s %s", av[0], av[1]);
589 return 0;
590 case 0: /* child */
591 for (i = 0; i < NSIG; i++)
592 signal(i, SIG_DFL);
593
594 if ((devnull = open(_PATH_DEVNULL, O_RDWR)) == -1) {
595 error("%s: open %s: %s", __func__, _PATH_DEVNULL,
596 strerror(errno));
597 _exit(1);
598 }
599 /* Keep stderr around a while longer to catch errors */
600 if (dup2(devnull, STDIN_FILENO) == -1 ||
601 dup2(p[1], STDOUT_FILENO) == -1) {
602 error("%s: dup2: %s", __func__, strerror(errno));
603 _exit(1);
604 }
605 closefrom(STDERR_FILENO + 1);
606
607 /* Don't use permanently_set_uid() here to avoid fatal() */
608 if (setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) != 0) {
609 error("setresgid %u: %s", (u_int)pw->pw_gid,
610 strerror(errno));
611 _exit(1);
612 }
613 if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) != 0) {
614 error("setresuid %u: %s", (u_int)pw->pw_uid,
615 strerror(errno));
616 _exit(1);
617 }
618 /* stdin is pointed to /dev/null at this point */
619 if (dup2(STDIN_FILENO, STDERR_FILENO) == -1) {
620 error("%s: dup2: %s", __func__, strerror(errno));
621 _exit(1);
622 }
623
624 execl(options.authorized_keys_command,
625 options.authorized_keys_command, user_pw->pw_name, NULL);
626
627 error("AuthorizedKeysCommand %s exec failed: %s",
628 options.authorized_keys_command, strerror(errno));
629 _exit(127);
630 default: /* parent */
631 break;
632 } 1001 }
633 1002
1003 if ((pid = subprocess("AuthorizedKeysCommand", pw, command,
1004 ac, av, &f)) == 0)
1005 goto out;
1006
1007 uid_swapped = 1;
634 temporarily_use_uid(pw); 1008 temporarily_use_uid(pw);
635 1009
636 close(p[1]);
637 if ((f = fdopen(p[0], "r")) == NULL) {
638 error("%s: fdopen: %s", __func__, strerror(errno));
639 close(p[0]);
640 /* Don't leave zombie child */
641 kill(pid, SIGTERM);
642 while (waitpid(pid, NULL, 0) == -1 && errno == EINTR)
643 ;
644 goto out;
645 }
646 ok = check_authkeys_file(f, options.authorized_keys_command, key, pw); 1010 ok = check_authkeys_file(f, options.authorized_keys_command, key, pw);
647 fclose(f);
648 1011
649 while (waitpid(pid, &status, 0) == -1) { 1012 if (exited_cleanly(pid, "AuthorizedKeysCommand", command) != 0)
650 if (errno != EINTR) {
651 error("%s: waitpid: %s", __func__, strerror(errno));
652 goto out;
653 }
654 }
655 if (WIFSIGNALED(status)) {
656 error("AuthorizedKeysCommand %s exited on signal %d",
657 options.authorized_keys_command, WTERMSIG(status));
658 goto out; 1013 goto out;
659 } else if (WEXITSTATUS(status) != 0) { 1014
660 error("AuthorizedKeysCommand %s returned status %d", 1015 /* Read completed successfully */
661 options.authorized_keys_command, WEXITSTATUS(status));
662 goto out;
663 }
664 found_key = ok; 1016 found_key = ok;
665 out: 1017 out:
666 restore_uid(); 1018 if (f != NULL)
1019 fclose(f);
1020 signal(SIGCHLD, osigchld);
1021 for (i = 0; i < ac; i++)
1022 free(av[i]);
1023 free(av);
1024 if (uid_swapped)
1025 restore_uid();
1026 free(command);
1027 free(username);
1028 free(key_fp);
1029 free(keytext);
667 return found_key; 1030 return found_key;
668} 1031}
669 1032
@@ -671,7 +1034,7 @@ user_key_command_allowed2(struct passwd *user_pw, Key *key)
671 * Check whether key authenticates and authorises the user. 1034 * Check whether key authenticates and authorises the user.
672 */ 1035 */
673int 1036int
674user_key_allowed(struct passwd *pw, Key *key) 1037user_key_allowed(struct passwd *pw, Key *key, int auth_attempt)
675{ 1038{
676 u_int success, i; 1039 u_int success, i;
677 char *file; 1040 char *file;
diff --git a/authfd.c b/authfd.c
index 5d9414faf..82915a43d 100644
--- a/authfd.c
+++ b/authfd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: authfd.c,v 1.94 2015/01/14 20:05:27 djm Exp $ */ 1/* $OpenBSD: authfd.c,v 1.97 2015/03/26 19:32:19 markus Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -438,10 +438,8 @@ ssh_agent_sign(int sock, struct sshkey *key,
438 u_int flags = 0; 438 u_int flags = 0;
439 int r = SSH_ERR_INTERNAL_ERROR; 439 int r = SSH_ERR_INTERNAL_ERROR;
440 440
441 if (sigp != NULL) 441 *sigp = NULL;
442 *sigp = NULL; 442 *lenp = 0;
443 if (lenp != NULL)
444 *lenp = 0;
445 443
446 if (datalen > SSH_KEY_MAX_SIGN_DATA_SIZE) 444 if (datalen > SSH_KEY_MAX_SIGN_DATA_SIZE)
447 return SSH_ERR_INVALID_ARGUMENT; 445 return SSH_ERR_INVALID_ARGUMENT;
diff --git a/authfile.c b/authfile.c
index 3a81786c7..728b136a7 100644
--- a/authfile.c
+++ b/authfile.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: authfile.c,v 1.111 2015/02/23 16:55:51 djm Exp $ */ 1/* $OpenBSD: authfile.c,v 1.114 2015/04/17 13:32:09 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved.
4 * 4 *
@@ -186,7 +186,7 @@ sshkey_perm_ok(int fd, const char *filename)
186 error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); 186 error("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
187 error("Permissions 0%3.3o for '%s' are too open.", 187 error("Permissions 0%3.3o for '%s' are too open.",
188 (u_int)st.st_mode & 0777, filename); 188 (u_int)st.st_mode & 0777, filename);
189 error("It is recommended that your private key files are NOT accessible by others."); 189 error("It is required that your private key files are NOT accessible by others.");
190 error("This private key will be ignored."); 190 error("This private key will be ignored.");
191 return SSH_ERR_KEY_BAD_PERMISSIONS; 191 return SSH_ERR_KEY_BAD_PERMISSIONS;
192 } 192 }
@@ -359,6 +359,8 @@ sshkey_load_public(const char *filename, struct sshkey **keyp, char **commentp)
359 case 0: 359 case 0:
360 return r; 360 return r;
361 } 361 }
362#else /* WITH_SSH1 */
363 close(fd);
362#endif /* WITH_SSH1 */ 364#endif /* WITH_SSH1 */
363 365
364 /* try ssh2 public key */ 366 /* try ssh2 public key */
diff --git a/channels.c b/channels.c
index 9486c1cff..a84b487e5 100644
--- a/channels.c
+++ b/channels.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: channels.c,v 1.341 2015/02/06 23:21:59 millert Exp $ */ 1/* $OpenBSD: channels.c,v 1.347 2015/07/01 02:26:31 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -161,6 +161,9 @@ static char *x11_saved_proto = NULL;
161static char *x11_saved_data = NULL; 161static char *x11_saved_data = NULL;
162static u_int x11_saved_data_len = 0; 162static u_int x11_saved_data_len = 0;
163 163
164/* Deadline after which all X11 connections are refused */
165static u_int x11_refuse_time;
166
164/* 167/*
165 * Fake X11 authentication data. This is what the server will be sending us; 168 * Fake X11 authentication data. This is what the server will be sending us;
166 * we should replace any occurrences of this by the real data. 169 * we should replace any occurrences of this by the real data.
@@ -306,7 +309,7 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd,
306 if (channels_alloc > 10000) 309 if (channels_alloc > 10000)
307 fatal("channel_new: internal error: channels_alloc %d " 310 fatal("channel_new: internal error: channels_alloc %d "
308 "too big.", channels_alloc); 311 "too big.", channels_alloc);
309 channels = xrealloc(channels, channels_alloc + 10, 312 channels = xreallocarray(channels, channels_alloc + 10,
310 sizeof(Channel *)); 313 sizeof(Channel *));
311 channels_alloc += 10; 314 channels_alloc += 10;
312 debug2("channel: expanding %d", channels_alloc); 315 debug2("channel: expanding %d", channels_alloc);
@@ -912,6 +915,13 @@ x11_open_helper(Buffer *b)
912 u_char *ucp; 915 u_char *ucp;
913 u_int proto_len, data_len; 916 u_int proto_len, data_len;
914 917
918 /* Is this being called after the refusal deadline? */
919 if (x11_refuse_time != 0 && (u_int)monotime() >= x11_refuse_time) {
920 verbose("Rejected X11 connection after ForwardX11Timeout "
921 "expired");
922 return -1;
923 }
924
915 /* Check if the fixed size part of the packet is in buffer. */ 925 /* Check if the fixed size part of the packet is in buffer. */
916 if (buffer_len(b) < 12) 926 if (buffer_len(b) < 12)
917 return 0; 927 return 0;
@@ -1483,6 +1493,12 @@ channel_set_reuseaddr(int fd)
1483 error("setsockopt SO_REUSEADDR fd %d: %s", fd, strerror(errno)); 1493 error("setsockopt SO_REUSEADDR fd %d: %s", fd, strerror(errno));
1484} 1494}
1485 1495
1496void
1497channel_set_x11_refuse_time(u_int refuse_time)
1498{
1499 x11_refuse_time = refuse_time;
1500}
1501
1486/* 1502/*
1487 * This socket is listening for connections to a forwarded TCP/IP port. 1503 * This socket is listening for connections to a forwarded TCP/IP port.
1488 */ 1504 */
@@ -2192,8 +2208,8 @@ channel_prepare_select(fd_set **readsetp, fd_set **writesetp, int *maxfdp,
2192 2208
2193 /* perhaps check sz < nalloc/2 and shrink? */ 2209 /* perhaps check sz < nalloc/2 and shrink? */
2194 if (*readsetp == NULL || sz > *nallocp) { 2210 if (*readsetp == NULL || sz > *nallocp) {
2195 *readsetp = xrealloc(*readsetp, nfdset, sizeof(fd_mask)); 2211 *readsetp = xreallocarray(*readsetp, nfdset, sizeof(fd_mask));
2196 *writesetp = xrealloc(*writesetp, nfdset, sizeof(fd_mask)); 2212 *writesetp = xreallocarray(*writesetp, nfdset, sizeof(fd_mask));
2197 *nallocp = sz; 2213 *nallocp = sz;
2198 } 2214 }
2199 *maxfdp = n; 2215 *maxfdp = n;
@@ -2270,7 +2286,7 @@ channel_output_poll(void)
2270 packet_put_int(c->remote_id); 2286 packet_put_int(c->remote_id);
2271 packet_put_string(data, dlen); 2287 packet_put_string(data, dlen);
2272 packet_send(); 2288 packet_send();
2273 c->remote_window -= dlen + 4; 2289 c->remote_window -= dlen;
2274 free(data); 2290 free(data);
2275 } 2291 }
2276 continue; 2292 continue;
@@ -2641,7 +2657,7 @@ channel_input_window_adjust(int type, u_int32_t seq, void *ctxt)
2641{ 2657{
2642 Channel *c; 2658 Channel *c;
2643 int id; 2659 int id;
2644 u_int adjust; 2660 u_int adjust, tmp;
2645 2661
2646 if (!compat20) 2662 if (!compat20)
2647 return 0; 2663 return 0;
@@ -2657,7 +2673,10 @@ channel_input_window_adjust(int type, u_int32_t seq, void *ctxt)
2657 adjust = packet_get_int(); 2673 adjust = packet_get_int();
2658 packet_check_eom(); 2674 packet_check_eom();
2659 debug2("channel %d: rcvd adjust %u", id, adjust); 2675 debug2("channel %d: rcvd adjust %u", id, adjust);
2660 c->remote_window += adjust; 2676 if ((tmp = c->remote_window + adjust) < c->remote_window)
2677 fatal("channel %d: adjust %u overflows remote window %u",
2678 id, adjust, c->remote_window);
2679 c->remote_window = tmp;
2661 return 0; 2680 return 0;
2662} 2681}
2663 2682
@@ -2805,17 +2824,21 @@ channel_setup_fwd_listener_tcpip(int type, struct Forward *fwd,
2805 char ntop[NI_MAXHOST], strport[NI_MAXSERV]; 2824 char ntop[NI_MAXHOST], strport[NI_MAXSERV];
2806 in_port_t *lport_p; 2825 in_port_t *lport_p;
2807 2826
2808 host = (type == SSH_CHANNEL_RPORT_LISTENER) ?
2809 fwd->listen_host : fwd->connect_host;
2810 is_client = (type == SSH_CHANNEL_PORT_LISTENER); 2827 is_client = (type == SSH_CHANNEL_PORT_LISTENER);
2811 2828
2812 if (host == NULL) { 2829 if (is_client && fwd->connect_path != NULL) {
2813 error("No forward host name."); 2830 host = fwd->connect_path;
2814 return 0; 2831 } else {
2815 } 2832 host = (type == SSH_CHANNEL_RPORT_LISTENER) ?
2816 if (strlen(host) >= NI_MAXHOST) { 2833 fwd->listen_host : fwd->connect_host;
2817 error("Forward host name too long."); 2834 if (host == NULL) {
2818 return 0; 2835 error("No forward host name.");
2836 return 0;
2837 }
2838 if (strlen(host) >= NI_MAXHOST) {
2839 error("Forward host name too long.");
2840 return 0;
2841 }
2819 } 2842 }
2820 2843
2821 /* Determine the bind address, cf. channel_fwd_bind_addr() comment */ 2844 /* Determine the bind address, cf. channel_fwd_bind_addr() comment */
@@ -3237,7 +3260,7 @@ channel_request_remote_forwarding(struct Forward *fwd)
3237 } 3260 }
3238 if (success) { 3261 if (success) {
3239 /* Record that connection to this host/port is permitted. */ 3262 /* Record that connection to this host/port is permitted. */
3240 permitted_opens = xrealloc(permitted_opens, 3263 permitted_opens = xreallocarray(permitted_opens,
3241 num_permitted_opens + 1, sizeof(*permitted_opens)); 3264 num_permitted_opens + 1, sizeof(*permitted_opens));
3242 idx = num_permitted_opens++; 3265 idx = num_permitted_opens++;
3243 if (fwd->connect_path != NULL) { 3266 if (fwd->connect_path != NULL) {
@@ -3468,7 +3491,7 @@ channel_add_permitted_opens(char *host, int port)
3468{ 3491{
3469 debug("allow port forwarding to host %s port %d", host, port); 3492 debug("allow port forwarding to host %s port %d", host, port);
3470 3493
3471 permitted_opens = xrealloc(permitted_opens, 3494 permitted_opens = xreallocarray(permitted_opens,
3472 num_permitted_opens + 1, sizeof(*permitted_opens)); 3495 num_permitted_opens + 1, sizeof(*permitted_opens));
3473 permitted_opens[num_permitted_opens].host_to_connect = xstrdup(host); 3496 permitted_opens[num_permitted_opens].host_to_connect = xstrdup(host);
3474 permitted_opens[num_permitted_opens].port_to_connect = port; 3497 permitted_opens[num_permitted_opens].port_to_connect = port;
@@ -3518,7 +3541,7 @@ channel_add_adm_permitted_opens(char *host, int port)
3518{ 3541{
3519 debug("config allows port forwarding to host %s port %d", host, port); 3542 debug("config allows port forwarding to host %s port %d", host, port);
3520 3543
3521 permitted_adm_opens = xrealloc(permitted_adm_opens, 3544 permitted_adm_opens = xreallocarray(permitted_adm_opens,
3522 num_adm_permitted_opens + 1, sizeof(*permitted_adm_opens)); 3545 num_adm_permitted_opens + 1, sizeof(*permitted_adm_opens));
3523 permitted_adm_opens[num_adm_permitted_opens].host_to_connect 3546 permitted_adm_opens[num_adm_permitted_opens].host_to_connect
3524 = xstrdup(host); 3547 = xstrdup(host);
@@ -3533,7 +3556,7 @@ void
3533channel_disable_adm_local_opens(void) 3556channel_disable_adm_local_opens(void)
3534{ 3557{
3535 channel_clear_adm_permitted_opens(); 3558 channel_clear_adm_permitted_opens();
3536 permitted_adm_opens = xmalloc(sizeof(*permitted_adm_opens)); 3559 permitted_adm_opens = xcalloc(sizeof(*permitted_adm_opens), 1);
3537 permitted_adm_opens[num_adm_permitted_opens].host_to_connect = NULL; 3560 permitted_adm_opens[num_adm_permitted_opens].host_to_connect = NULL;
3538 num_adm_permitted_opens = 1; 3561 num_adm_permitted_opens = 1;
3539} 3562}
diff --git a/channels.h b/channels.h
index 5a672f22e..9d76c9d2a 100644
--- a/channels.h
+++ b/channels.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: channels.h,v 1.116 2015/01/19 20:07:45 markus Exp $ */ 1/* $OpenBSD: channels.h,v 1.118 2015/07/01 02:26:31 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -113,7 +113,7 @@ struct Channel {
113 time_t notbefore; /* Pause IO until deadline (time_t) */ 113 time_t notbefore; /* Pause IO until deadline (time_t) */
114 int delayed; /* post-select handlers for newly created 114 int delayed; /* post-select handlers for newly created
115 * channels are delayed until the first call 115 * channels are delayed until the first call
116 * to a matching pre-select handler. 116 * to a matching pre-select handler.
117 * this way post-select handlers are not 117 * this way post-select handlers are not
118 * accidentally called if a FD gets reused */ 118 * accidentally called if a FD gets reused */
119 Buffer input; /* data read from socket, to be sent over 119 Buffer input; /* data read from socket, to be sent over
@@ -284,6 +284,7 @@ int permitopen_port(const char *);
284 284
285/* x11 forwarding */ 285/* x11 forwarding */
286 286
287void channel_set_x11_refuse_time(u_int);
287int x11_connect_display(void); 288int x11_connect_display(void);
288int x11_create_display_inet(int, int, int, u_int *, int **); 289int x11_create_display_inet(int, int, int, u_int *, int **);
289int x11_input_open(int, u_int32_t, void *); 290int x11_input_open(int, u_int32_t, void *);
diff --git a/clientloop.c b/clientloop.c
index a9c8a90f0..dc0e557ad 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: clientloop.c,v 1.272 2015/02/25 19:54:02 djm Exp $ */ 1/* $OpenBSD: clientloop.c,v 1.274 2015/07/01 02:26:31 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -163,7 +163,7 @@ static int connection_in; /* Connection to server (input). */
163static int connection_out; /* Connection to server (output). */ 163static int connection_out; /* Connection to server (output). */
164static int need_rekeying; /* Set to non-zero if rekeying is requested. */ 164static int need_rekeying; /* Set to non-zero if rekeying is requested. */
165static int session_closed; /* In SSH2: login session closed. */ 165static int session_closed; /* In SSH2: login session closed. */
166static int x11_refuse_time; /* If >0, refuse x11 opens after this time. */ 166static u_int x11_refuse_time; /* If >0, refuse x11 opens after this time. */
167 167
168static void client_init_dispatch(void); 168static void client_init_dispatch(void);
169int session_ident = -1; 169int session_ident = -1;
@@ -298,7 +298,8 @@ client_x11_display_valid(const char *display)
298 return 1; 298 return 1;
299} 299}
300 300
301#define SSH_X11_PROTO "MIT-MAGIC-COOKIE-1" 301#define SSH_X11_PROTO "MIT-MAGIC-COOKIE-1"
302#define X11_TIMEOUT_SLACK 60
302void 303void
303client_x11_get_proto(const char *display, const char *xauth_path, 304client_x11_get_proto(const char *display, const char *xauth_path,
304 u_int trusted, u_int timeout, char **_proto, char **_data) 305 u_int trusted, u_int timeout, char **_proto, char **_data)
@@ -311,7 +312,7 @@ client_x11_get_proto(const char *display, const char *xauth_path,
311 int got_data = 0, generated = 0, do_unlink = 0, i; 312 int got_data = 0, generated = 0, do_unlink = 0, i;
312 char *xauthdir, *xauthfile; 313 char *xauthdir, *xauthfile;
313 struct stat st; 314 struct stat st;
314 u_int now; 315 u_int now, x11_timeout_real;
315 316
316 xauthdir = xauthfile = NULL; 317 xauthdir = xauthfile = NULL;
317 *_proto = proto; 318 *_proto = proto;
@@ -344,6 +345,15 @@ client_x11_get_proto(const char *display, const char *xauth_path,
344 xauthdir = xmalloc(PATH_MAX); 345 xauthdir = xmalloc(PATH_MAX);
345 xauthfile = xmalloc(PATH_MAX); 346 xauthfile = xmalloc(PATH_MAX);
346 mktemp_proto(xauthdir, PATH_MAX); 347 mktemp_proto(xauthdir, PATH_MAX);
348 /*
349 * The authentication cookie should briefly outlive
350 * ssh's willingness to forward X11 connections to
351 * avoid nasty fail-open behaviour in the X server.
352 */
353 if (timeout >= UINT_MAX - X11_TIMEOUT_SLACK)
354 x11_timeout_real = UINT_MAX;
355 else
356 x11_timeout_real = timeout + X11_TIMEOUT_SLACK;
347 if (mkdtemp(xauthdir) != NULL) { 357 if (mkdtemp(xauthdir) != NULL) {
348 do_unlink = 1; 358 do_unlink = 1;
349 snprintf(xauthfile, PATH_MAX, "%s/xauthfile", 359 snprintf(xauthfile, PATH_MAX, "%s/xauthfile",
@@ -351,17 +361,20 @@ client_x11_get_proto(const char *display, const char *xauth_path,
351 snprintf(cmd, sizeof(cmd), 361 snprintf(cmd, sizeof(cmd),
352 "%s -f %s generate %s " SSH_X11_PROTO 362 "%s -f %s generate %s " SSH_X11_PROTO
353 " untrusted timeout %u 2>" _PATH_DEVNULL, 363 " untrusted timeout %u 2>" _PATH_DEVNULL,
354 xauth_path, xauthfile, display, timeout); 364 xauth_path, xauthfile, display,
365 x11_timeout_real);
355 debug2("x11_get_proto: %s", cmd); 366 debug2("x11_get_proto: %s", cmd);
356 if (system(cmd) == 0)
357 generated = 1;
358 if (x11_refuse_time == 0) { 367 if (x11_refuse_time == 0) {
359 now = monotime() + 1; 368 now = monotime() + 1;
360 if (UINT_MAX - timeout < now) 369 if (UINT_MAX - timeout < now)
361 x11_refuse_time = UINT_MAX; 370 x11_refuse_time = UINT_MAX;
362 else 371 else
363 x11_refuse_time = now + timeout; 372 x11_refuse_time = now + timeout;
373 channel_set_x11_refuse_time(
374 x11_refuse_time);
364 } 375 }
376 if (system(cmd) == 0)
377 generated = 1;
365 } 378 }
366 } 379 }
367 380
@@ -1889,7 +1902,7 @@ client_request_x11(const char *request_type, int rchan)
1889 "malicious server."); 1902 "malicious server.");
1890 return NULL; 1903 return NULL;
1891 } 1904 }
1892 if (x11_refuse_time != 0 && monotime() >= x11_refuse_time) { 1905 if (x11_refuse_time != 0 && (u_int)monotime() >= x11_refuse_time) {
1893 verbose("Rejected X11 connection after ForwardX11Timeout " 1906 verbose("Rejected X11 connection after ForwardX11Timeout "
1894 "expired"); 1907 "expired");
1895 return NULL; 1908 return NULL;
@@ -2352,8 +2365,7 @@ client_input_hostkeys(void)
2352 /* Check that the key is accepted in HostkeyAlgorithms */ 2365 /* Check that the key is accepted in HostkeyAlgorithms */
2353 if (options.hostkeyalgorithms != NULL && 2366 if (options.hostkeyalgorithms != NULL &&
2354 match_pattern_list(sshkey_ssh_name(key), 2367 match_pattern_list(sshkey_ssh_name(key),
2355 options.hostkeyalgorithms, 2368 options.hostkeyalgorithms, 0) != 1) {
2356 strlen(options.hostkeyalgorithms), 0) != 1) {
2357 debug3("%s: %s key not permitted by HostkeyAlgorithms", 2369 debug3("%s: %s key not permitted by HostkeyAlgorithms",
2358 __func__, sshkey_ssh_name(key)); 2370 __func__, sshkey_ssh_name(key));
2359 continue; 2371 continue;
diff --git a/compat.c b/compat.c
index 4852fb709..0631024f0 100644
--- a/compat.c
+++ b/compat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.c,v 1.87 2015/01/19 20:20:20 markus Exp $ */ 1/* $OpenBSD: compat.c,v 1.94 2015/05/26 23:23:40 dtucker Exp $ */
2/* 2/*
3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. 3 * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved.
4 * 4 *
@@ -152,6 +152,7 @@ compat_datafellows(const char *version)
152 "1.2.22*", SSH_BUG_IGNOREMSG }, 152 "1.2.22*", SSH_BUG_IGNOREMSG },
153 { "1.3.2*", /* F-Secure */ 153 { "1.3.2*", /* F-Secure */
154 SSH_BUG_IGNOREMSG }, 154 SSH_BUG_IGNOREMSG },
155 { "Cisco-1.*", SSH_BUG_DHGEX_LARGE },
155 { "*SSH Compatible Server*", /* Netscreen */ 156 { "*SSH Compatible Server*", /* Netscreen */
156 SSH_BUG_PASSWORDPAD }, 157 SSH_BUG_PASSWORDPAD },
157 { "*OSU_0*," 158 { "*OSU_0*,"
@@ -165,15 +166,34 @@ compat_datafellows(const char *version)
165 "OSU_1.5alpha3*", SSH_BUG_PASSWORDPAD }, 166 "OSU_1.5alpha3*", SSH_BUG_PASSWORDPAD },
166 { "*SSH_Version_Mapper*", 167 { "*SSH_Version_Mapper*",
167 SSH_BUG_SCANNER }, 168 SSH_BUG_SCANNER },
169 { "PuTTY-Release-0.5*," /* 0.50-0.57, DH-GEX in >=0.52 */
170 "PuTTY_Release_0.5*," /* 0.58-0.59 */
171 "PuTTY_Release_0.60*,"
172 "PuTTY_Release_0.61*,"
173 "PuTTY_Release_0.62*,"
174 "PuTTY_Release_0.63*,"
175 "PuTTY_Release_0.64*",
176 SSH_OLD_DHGEX },
168 { "Probe-*", 177 { "Probe-*",
169 SSH_BUG_PROBE }, 178 SSH_BUG_PROBE },
179 { "TeraTerm SSH*,"
180 "TTSSH/1.5.*,"
181 "TTSSH/2.1*,"
182 "TTSSH/2.2*,"
183 "TTSSH/2.3*,"
184 "TTSSH/2.4*,"
185 "TTSSH/2.5*,"
186 "TTSSH/2.6*,"
187 "TTSSH/2.70*,"
188 "TTSSH/2.71*,"
189 "TTSSH/2.72*", SSH_BUG_HOSTKEYS },
190 { "WinSCP*", SSH_OLD_DHGEX },
170 { NULL, 0 } 191 { NULL, 0 }
171 }; 192 };
172 193
173 /* process table, return first match */ 194 /* process table, return first match */
174 for (i = 0; check[i].pat; i++) { 195 for (i = 0; check[i].pat; i++) {
175 if (match_pattern_list(version, check[i].pat, 196 if (match_pattern_list(version, check[i].pat, 0) == 1) {
176 strlen(check[i].pat), 0) == 1) {
177 debug("match: %s pat %s compat 0x%08x", 197 debug("match: %s pat %s compat 0x%08x",
178 version, check[i].pat, check[i].bugs); 198 version, check[i].pat, check[i].bugs);
179 datafellows = check[i].bugs; /* XXX for now */ 199 datafellows = check[i].bugs; /* XXX for now */
@@ -199,9 +219,11 @@ proto_spec(const char *spec)
199 for ((p = strsep(&q, SEP)); p && *p != '\0'; (p = strsep(&q, SEP))) { 219 for ((p = strsep(&q, SEP)); p && *p != '\0'; (p = strsep(&q, SEP))) {
200 switch (atoi(p)) { 220 switch (atoi(p)) {
201 case 1: 221 case 1:
222#ifdef WITH_SSH1
202 if (ret == SSH_PROTO_UNKNOWN) 223 if (ret == SSH_PROTO_UNKNOWN)
203 ret |= SSH_PROTO_1_PREFERRED; 224 ret |= SSH_PROTO_1_PREFERRED;
204 ret |= SSH_PROTO_1; 225 ret |= SSH_PROTO_1;
226#endif
205 break; 227 break;
206 case 2: 228 case 2:
207 ret |= SSH_PROTO_2; 229 ret |= SSH_PROTO_2;
@@ -229,7 +251,7 @@ filter_proposal(char *proposal, const char *filter)
229 buffer_init(&b); 251 buffer_init(&b);
230 tmp = orig_prop = xstrdup(proposal); 252 tmp = orig_prop = xstrdup(proposal);
231 while ((cp = strsep(&tmp, ",")) != NULL) { 253 while ((cp = strsep(&tmp, ",")) != NULL) {
232 if (match_pattern_list(cp, filter, strlen(cp), 0) != 1) { 254 if (match_pattern_list(cp, filter, 0) != 1) {
233 if (buffer_len(&b) > 0) 255 if (buffer_len(&b) > 0)
234 buffer_append(&b, ",", 1); 256 buffer_append(&b, ",", 1);
235 buffer_append(&b, cp, strlen(cp)); 257 buffer_append(&b, cp, strlen(cp));
@@ -271,15 +293,20 @@ compat_pkalg_proposal(char *pkalg_prop)
271} 293}
272 294
273char * 295char *
274compat_kex_proposal(char *kex_prop) 296compat_kex_proposal(char *p)
275{ 297{
276 if (!(datafellows & SSH_BUG_CURVE25519PAD)) 298 if ((datafellows & (SSH_BUG_CURVE25519PAD|SSH_OLD_DHGEX)) == 0)
277 return kex_prop; 299 return p;
278 debug2("%s: original KEX proposal: %s", __func__, kex_prop); 300 debug2("%s: original KEX proposal: %s", __func__, p);
279 kex_prop = filter_proposal(kex_prop, "curve25519-sha256@libssh.org"); 301 if ((datafellows & SSH_BUG_CURVE25519PAD) != 0)
280 debug2("%s: compat KEX proposal: %s", __func__, kex_prop); 302 p = filter_proposal(p, "curve25519-sha256@libssh.org");
281 if (*kex_prop == '\0') 303 if ((datafellows & SSH_OLD_DHGEX) != 0) {
304 p = filter_proposal(p, "diffie-hellman-group-exchange-sha256");
305 p = filter_proposal(p, "diffie-hellman-group-exchange-sha1");
306 }
307 debug2("%s: compat KEX proposal: %s", __func__, p);
308 if (*p == '\0')
282 fatal("No supported key exchange algorithms found"); 309 fatal("No supported key exchange algorithms found");
283 return kex_prop; 310 return p;
284} 311}
285 312
diff --git a/compat.h b/compat.h
index af2f0073f..2be290a8a 100644
--- a/compat.h
+++ b/compat.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: compat.h,v 1.46 2015/01/19 20:20:20 markus Exp $ */ 1/* $OpenBSD: compat.h,v 1.48 2015/05/26 23:23:40 dtucker Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved.
@@ -60,6 +60,8 @@
60#define SSH_NEW_OPENSSH 0x04000000 60#define SSH_NEW_OPENSSH 0x04000000
61#define SSH_BUG_DYNAMIC_RPORT 0x08000000 61#define SSH_BUG_DYNAMIC_RPORT 0x08000000
62#define SSH_BUG_CURVE25519PAD 0x10000000 62#define SSH_BUG_CURVE25519PAD 0x10000000
63#define SSH_BUG_HOSTKEYS 0x20000000
64#define SSH_BUG_DHGEX_LARGE 0x40000000
63 65
64void enable_compat13(void); 66void enable_compat13(void);
65void enable_compat20(void); 67void enable_compat20(void);
diff --git a/config.guess b/config.guess
index b94cde8ef..c5636280d 100755
--- a/config.guess
+++ b/config.guess
@@ -982,6 +982,12 @@ EOF
982 ppc:Linux:*:*) 982 ppc:Linux:*:*)
983 echo powerpc-unknown-linux-gnu 983 echo powerpc-unknown-linux-gnu
984 exit ;; 984 exit ;;
985 ppc64le:Linux:*:*)
986 echo powerpc64le-unknown-linux-gnu
987 exit ;;
988 ppcle:Linux:*:*)
989 echo powerpcle-unknown-linux-gnu
990 exit ;;
985 s390:Linux:*:* | s390x:Linux:*:*) 991 s390:Linux:*:* | s390x:Linux:*:*)
986 echo ${UNAME_MACHINE}-ibm-linux 992 echo ${UNAME_MACHINE}-ibm-linux
987 exit ;; 993 exit ;;
diff --git a/configure b/configure
index 10267f663..803c5bcde 100755
--- a/configure
+++ b/configure
@@ -677,6 +677,7 @@ INSTALL_PROGRAM
677INSTALL_SCRIPT 677INSTALL_SCRIPT
678INSTALL_DATA 678INSTALL_DATA
679AR 679AR
680ac_ct_AR
680CAT 681CAT
681KILL 682KILL
682PERL 683PERL
@@ -1319,7 +1320,7 @@ Optional Packages:
1319 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] 1320 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
1320 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) 1321 --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
1321 --without-openssl Disable use of OpenSSL; use only limited internal crypto **EXPERIMENTAL** 1322 --without-openssl Disable use of OpenSSL; use only limited internal crypto **EXPERIMENTAL**
1322 --without-ssh1 Disable support for SSH protocol 1 1323 --without-ssh1 Enable support for SSH protocol 1
1323 --without-stackprotect Don't use compiler's stack protection 1324 --without-stackprotect Don't use compiler's stack protection
1324 --without-hardening Don't use toolchain hardening flags 1325 --without-hardening Don't use toolchain hardening flags
1325 --without-rpath Disable auto-added -R linker paths 1326 --without-rpath Disable auto-added -R linker paths
@@ -1354,8 +1355,8 @@ Optional Packages:
1354 --with-mantype=man|cat|doc Set man page type 1355 --with-mantype=man|cat|doc Set man page type
1355 --with-md5-passwords Enable use of MD5 passwords 1356 --with-md5-passwords Enable use of MD5 passwords
1356 --without-shadow Disable shadow password support 1357 --without-shadow Disable shadow password support
1357 --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY 1358 --with-ipaddr-display Use ip address instead of hostname in $DISPLAY
1358 --with-default-path= Specify default \$PATH environment for server 1359 --with-default-path= Specify default $PATH environment for server
1359 --with-superuser-path= Specify different path for super-user 1360 --with-superuser-path= Specify different path for super-user
1360 --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses 1361 --with-4in6 Check for and convert IPv4 in IPv6 mapped addresses
1361 --with-bsd-auth Enable BSD auth support 1362 --with-bsd-auth Enable BSD auth support
@@ -4253,26 +4254,27 @@ echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
4253 EGREP="$ac_cv_path_EGREP" 4254 EGREP="$ac_cv_path_EGREP"
4254 4255
4255 4256
4256# Extract the first word of "ar", so it can be a program name with args. 4257if test -n "$ac_tool_prefix"; then
4257set dummy ar; ac_word=$2 4258 for ac_prog in ar
4259 do
4260 # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
4261set dummy $ac_tool_prefix$ac_prog; ac_word=$2
4258{ echo "$as_me:$LINENO: checking for $ac_word" >&5 4262{ echo "$as_me:$LINENO: checking for $ac_word" >&5
4259echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } 4263echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
4260if test "${ac_cv_path_AR+set}" = set; then 4264if test "${ac_cv_prog_AR+set}" = set; then
4261 echo $ECHO_N "(cached) $ECHO_C" >&6 4265 echo $ECHO_N "(cached) $ECHO_C" >&6
4262else 4266else
4263 case $AR in 4267 if test -n "$AR"; then
4264 [\\/]* | ?:[\\/]*) 4268 ac_cv_prog_AR="$AR" # Let the user override the test.
4265 ac_cv_path_AR="$AR" # Let the user override the test with a path. 4269else
4266 ;; 4270as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4267 *)
4268 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4269for as_dir in $PATH 4271for as_dir in $PATH
4270do 4272do
4271 IFS=$as_save_IFS 4273 IFS=$as_save_IFS
4272 test -z "$as_dir" && as_dir=. 4274 test -z "$as_dir" && as_dir=.
4273 for ac_exec_ext in '' $ac_executable_extensions; do 4275 for ac_exec_ext in '' $ac_executable_extensions; do
4274 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then 4276 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
4275 ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext" 4277 ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
4276 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 4278 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4277 break 2 4279 break 2
4278 fi 4280 fi
@@ -4280,10 +4282,9 @@ done
4280done 4282done
4281IFS=$as_save_IFS 4283IFS=$as_save_IFS
4282 4284
4283 ;;
4284esac
4285fi 4285fi
4286AR=$ac_cv_path_AR 4286fi
4287AR=$ac_cv_prog_AR
4287if test -n "$AR"; then 4288if test -n "$AR"; then
4288 { echo "$as_me:$LINENO: result: $AR" >&5 4289 { echo "$as_me:$LINENO: result: $AR" >&5
4289echo "${ECHO_T}$AR" >&6; } 4290echo "${ECHO_T}$AR" >&6; }
@@ -4293,6 +4294,70 @@ echo "${ECHO_T}no" >&6; }
4293fi 4294fi
4294 4295
4295 4296
4297 test -n "$AR" && break
4298 done
4299fi
4300if test -z "$AR"; then
4301 ac_ct_AR=$AR
4302 for ac_prog in ar
4303do
4304 # Extract the first word of "$ac_prog", so it can be a program name with args.
4305set dummy $ac_prog; ac_word=$2
4306{ echo "$as_me:$LINENO: checking for $ac_word" >&5
4307echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
4308if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
4309 echo $ECHO_N "(cached) $ECHO_C" >&6
4310else
4311 if test -n "$ac_ct_AR"; then
4312 ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
4313else
4314as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4315for as_dir in $PATH
4316do
4317 IFS=$as_save_IFS
4318 test -z "$as_dir" && as_dir=.
4319 for ac_exec_ext in '' $ac_executable_extensions; do
4320 if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
4321 ac_cv_prog_ac_ct_AR="$ac_prog"
4322 echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4323 break 2
4324 fi
4325done
4326done
4327IFS=$as_save_IFS
4328
4329fi
4330fi
4331ac_ct_AR=$ac_cv_prog_ac_ct_AR
4332if test -n "$ac_ct_AR"; then
4333 { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
4334echo "${ECHO_T}$ac_ct_AR" >&6; }
4335else
4336 { echo "$as_me:$LINENO: result: no" >&5
4337echo "${ECHO_T}no" >&6; }
4338fi
4339
4340
4341 test -n "$ac_ct_AR" && break
4342done
4343
4344 if test "x$ac_ct_AR" = x; then
4345 AR=""
4346 else
4347 case $cross_compiling:$ac_tool_warned in
4348yes:)
4349{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
4350whose name does not start with the host triplet. If you think this
4351configuration is useful to you, please write to autoconf@gnu.org." >&5
4352echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
4353whose name does not start with the host triplet. If you think this
4354configuration is useful to you, please write to autoconf@gnu.org." >&2;}
4355ac_tool_warned=yes ;;
4356esac
4357 AR=$ac_ct_AR
4358 fi
4359fi
4360
4296# Extract the first word of "cat", so it can be a program name with args. 4361# Extract the first word of "cat", so it can be a program name with args.
4297set dummy cat; ac_word=$2 4362set dummy cat; ac_word=$2
4298{ echo "$as_me:$LINENO: checking for $ac_word" >&5 4363{ echo "$as_me:$LINENO: checking for $ac_word" >&5
@@ -5737,12 +5802,19 @@ fi
5737# Check whether --with-ssh1 was given. 5802# Check whether --with-ssh1 was given.
5738if test "${with_ssh1+set}" = set; then 5803if test "${with_ssh1+set}" = set; then
5739 withval=$with_ssh1; 5804 withval=$with_ssh1;
5740 if test "x$withval" = "xno" ; then 5805 if test "x$withval" = "xyes" ; then
5741 ssh1=no 5806 if test "x$openssl" = "xno" ; then
5742 elif test "x$openssl" = "xno" ; then 5807 { { echo "$as_me:$LINENO: error: Cannot enable SSH protocol 1 with OpenSSL disabled" >&5
5743 { { echo "$as_me:$LINENO: error: Cannot enable SSH protocol 1 with OpenSSL disabled" >&5
5744echo "$as_me: error: Cannot enable SSH protocol 1 with OpenSSL disabled" >&2;} 5808echo "$as_me: error: Cannot enable SSH protocol 1 with OpenSSL disabled" >&2;}
5745 { (exit 1); exit 1; }; } 5809 { (exit 1); exit 1; }; }
5810 fi
5811 ssh1=yes
5812 elif test "x$withval" = "xno" ; then
5813 ssh1=no
5814 else
5815 { { echo "$as_me:$LINENO: error: unknown --with-ssh1 argument" >&5
5816echo "$as_me: error: unknown --with-ssh1 argument" >&2;}
5817 { (exit 1); exit 1; }; }
5746 fi 5818 fi
5747 5819
5748 5820
@@ -10218,9 +10290,12 @@ echo $ECHO_N "checking for seccomp architecture... $ECHO_C" >&6; }
10218 i*86-*) 10290 i*86-*)
10219 seccomp_audit_arch=AUDIT_ARCH_I386 10291 seccomp_audit_arch=AUDIT_ARCH_I386
10220 ;; 10292 ;;
10221 arm*-*) 10293 arm*-*)
10222 seccomp_audit_arch=AUDIT_ARCH_ARM 10294 seccomp_audit_arch=AUDIT_ARCH_ARM
10223 ;; 10295 ;;
10296 aarch64*-*)
10297 seccomp_audit_arch=AUDIT_ARCH_AARCH64
10298 ;;
10224 esac 10299 esac
10225 if test "x$seccomp_audit_arch" != "x" ; then 10300 if test "x$seccomp_audit_arch" != "x" ; then
10226 { echo "$as_me:$LINENO: result: \"$seccomp_audit_arch\"" >&5 10301 { echo "$as_me:$LINENO: result: \"$seccomp_audit_arch\"" >&5
@@ -36007,6 +36082,7 @@ INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
36007INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim 36082INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
36008INSTALL_DATA!$INSTALL_DATA$ac_delim 36083INSTALL_DATA!$INSTALL_DATA$ac_delim
36009AR!$AR$ac_delim 36084AR!$AR$ac_delim
36085ac_ct_AR!$ac_ct_AR$ac_delim
36010CAT!$CAT$ac_delim 36086CAT!$CAT$ac_delim
36011KILL!$KILL$ac_delim 36087KILL!$KILL$ac_delim
36012PERL!$PERL$ac_delim 36088PERL!$PERL$ac_delim
@@ -36042,7 +36118,6 @@ STRIP_OPT!$STRIP_OPT$ac_delim
36042XAUTH_PATH!$XAUTH_PATH$ac_delim 36118XAUTH_PATH!$XAUTH_PATH$ac_delim
36043MANTYPE!$MANTYPE$ac_delim 36119MANTYPE!$MANTYPE$ac_delim
36044mansubdir!$mansubdir$ac_delim 36120mansubdir!$mansubdir$ac_delim
36045user_path!$user_path$ac_delim
36046_ACEOF 36121_ACEOF
36047 36122
36048 if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then 36123 if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@@ -36084,6 +36159,7 @@ _ACEOF
36084ac_delim='%!_!# ' 36159ac_delim='%!_!# '
36085for ac_last_try in false false false false false :; do 36160for ac_last_try in false false false false false :; do
36086 cat >conf$$subs.sed <<_ACEOF 36161 cat >conf$$subs.sed <<_ACEOF
36162user_path!$user_path$ac_delim
36087piddir!$piddir$ac_delim 36163piddir!$piddir$ac_delim
36088TEST_SSH_IPV6!$TEST_SSH_IPV6$ac_delim 36164TEST_SSH_IPV6!$TEST_SSH_IPV6$ac_delim
36089TEST_MALLOC_OPTIONS!$TEST_MALLOC_OPTIONS$ac_delim 36165TEST_MALLOC_OPTIONS!$TEST_MALLOC_OPTIONS$ac_delim
@@ -36092,7 +36168,7 @@ LIBOBJS!$LIBOBJS$ac_delim
36092LTLIBOBJS!$LTLIBOBJS$ac_delim 36168LTLIBOBJS!$LTLIBOBJS$ac_delim
36093_ACEOF 36169_ACEOF
36094 36170
36095 if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 6; then 36171 if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 7; then
36096 break 36172 break
36097 elif $ac_last_try; then 36173 elif $ac_last_try; then
36098 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 36174 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/configure.ac b/configure.ac
index b4d6598d5..bb0095f64 100644
--- a/configure.ac
+++ b/configure.ac
@@ -30,7 +30,7 @@ AC_PROG_CPP
30AC_PROG_RANLIB 30AC_PROG_RANLIB
31AC_PROG_INSTALL 31AC_PROG_INSTALL
32AC_PROG_EGREP 32AC_PROG_EGREP
33AC_PATH_PROG([AR], [ar]) 33AC_CHECK_TOOLS([AR], [ar])
34AC_PATH_PROG([CAT], [cat]) 34AC_PATH_PROG([CAT], [cat])
35AC_PATH_PROG([KILL], [kill]) 35AC_PATH_PROG([KILL], [kill])
36AC_PATH_PROGS([PERL], [perl5 perl]) 36AC_PATH_PROGS([PERL], [perl5 perl])
@@ -140,12 +140,17 @@ else
140fi 140fi
141 141
142AC_ARG_WITH([ssh1], 142AC_ARG_WITH([ssh1],
143 [ --without-ssh1 Disable support for SSH protocol 1], 143 [ --without-ssh1 Enable support for SSH protocol 1],
144 [ 144 [
145 if test "x$withval" = "xno" ; then 145 if test "x$withval" = "xyes" ; then
146 if test "x$openssl" = "xno" ; then
147 AC_MSG_ERROR([Cannot enable SSH protocol 1 with OpenSSL disabled])
148 fi
149 ssh1=yes
150 elif test "x$withval" = "xno" ; then
146 ssh1=no 151 ssh1=no
147 elif test "x$openssl" = "xno" ; then 152 else
148 AC_MSG_ERROR([Cannot enable SSH protocol 1 with OpenSSL disabled]) 153 AC_MSG_ERROR([unknown --with-ssh1 argument])
149 fi 154 fi
150 ] 155 ]
151) 156)
@@ -776,14 +781,17 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
776 i*86-*) 781 i*86-*)
777 seccomp_audit_arch=AUDIT_ARCH_I386 782 seccomp_audit_arch=AUDIT_ARCH_I386
778 ;; 783 ;;
779 arm*-*) 784 arm*-*)
780 seccomp_audit_arch=AUDIT_ARCH_ARM 785 seccomp_audit_arch=AUDIT_ARCH_ARM
781 ;; 786 ;;
787 aarch64*-*)
788 seccomp_audit_arch=AUDIT_ARCH_AARCH64
789 ;;
782 esac 790 esac
783 if test "x$seccomp_audit_arch" != "x" ; then 791 if test "x$seccomp_audit_arch" != "x" ; then
784 AC_MSG_RESULT(["$seccomp_audit_arch"]) 792 AC_MSG_RESULT(["$seccomp_audit_arch"])
785 AC_DEFINE_UNQUOTED([SECCOMP_AUDIT_ARCH], [$seccomp_audit_arch], 793 AC_DEFINE_UNQUOTED([SECCOMP_AUDIT_ARCH], [$seccomp_audit_arch],
786 [Specify the system call convention in use]) 794 [Specify the system call convention in use])
787 else 795 else
788 AC_MSG_RESULT([architecture not supported]) 796 AC_MSG_RESULT([architecture not supported])
789 fi 797 fi
@@ -4351,7 +4359,7 @@ if test ! -z "$IPADDR_IN_DISPLAY" ; then
4351else 4359else
4352 DISPLAY_HACK_MSG="no" 4360 DISPLAY_HACK_MSG="no"
4353 AC_ARG_WITH([ipaddr-display], 4361 AC_ARG_WITH([ipaddr-display],
4354 [ --with-ipaddr-display Use ip address instead of hostname in \$DISPLAY], 4362 [ --with-ipaddr-display Use ip address instead of hostname in $DISPLAY],
4355 [ 4363 [
4356 if test "x$withval" != "xno" ; then 4364 if test "x$withval" != "xno" ; then
4357 AC_DEFINE([IPADDR_IN_DISPLAY]) 4365 AC_DEFINE([IPADDR_IN_DISPLAY])
@@ -4397,7 +4405,7 @@ fi
4397# Whether to mess with the default path 4405# Whether to mess with the default path
4398SERVER_PATH_MSG="(default)" 4406SERVER_PATH_MSG="(default)"
4399AC_ARG_WITH([default-path], 4407AC_ARG_WITH([default-path],
4400 [ --with-default-path= Specify default \$PATH environment for server], 4408 [ --with-default-path= Specify default $PATH environment for server],
4401 [ 4409 [
4402 if test "x$external_path_file" = "x/etc/login.conf" ; then 4410 if test "x$external_path_file" = "x/etc/login.conf" ; then
4403 AC_MSG_WARN([ 4411 AC_MSG_WARN([
diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec
index 7ac4ed0a5..b9aaca5b6 100644
--- a/contrib/redhat/openssh.spec
+++ b/contrib/redhat/openssh.spec
@@ -1,4 +1,4 @@
1%define ver 6.8p1 1%define ver 6.9p1
2%define rel 1 2%define rel 1
3 3
4# OpenSSH privilege separation requires a user & group ID 4# OpenSSH privilege separation requires a user & group ID
diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec
index 0eb779c9b..c29c3f71b 100644
--- a/contrib/suse/openssh.spec
+++ b/contrib/suse/openssh.spec
@@ -13,7 +13,7 @@
13 13
14Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation 14Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation
15Name: openssh 15Name: openssh
16Version: 6.8p1 16Version: 6.9p1
17URL: http://www.openssh.com/ 17URL: http://www.openssh.com/
18Release: 1 18Release: 1
19Source0: openssh-%{version}.tar.gz 19Source0: openssh-%{version}.tar.gz
diff --git a/dh.c b/dh.c
index a260240fd..4c639acc3 100644
--- a/dh.c
+++ b/dh.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dh.c,v 1.55 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: dh.c,v 1.57 2015/05/27 23:39:18 dtucker Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Niels Provos. All rights reserved. 3 * Copyright (c) 2000 Niels Provos. All rights reserved.
4 * 4 *
@@ -155,7 +155,7 @@ choose_dh(int min, int wantbits, int max)
155 (f = fopen(_PATH_DH_PRIMES, "r")) == NULL) { 155 (f = fopen(_PATH_DH_PRIMES, "r")) == NULL) {
156 logit("WARNING: %s does not exist, using fixed modulus", 156 logit("WARNING: %s does not exist, using fixed modulus",
157 _PATH_DH_MODULI); 157 _PATH_DH_MODULI);
158 return (dh_new_group14()); 158 return (dh_new_group_fallback(max));
159 } 159 }
160 160
161 linenum = 0; 161 linenum = 0;
@@ -183,7 +183,7 @@ choose_dh(int min, int wantbits, int max)
183 if (bestcount == 0) { 183 if (bestcount == 0) {
184 fclose(f); 184 fclose(f);
185 logit("WARNING: no suitable primes in %s", _PATH_DH_PRIMES); 185 logit("WARNING: no suitable primes in %s", _PATH_DH_PRIMES);
186 return (dh_new_group14()); 186 return (dh_new_group_fallback(max));
187 } 187 }
188 188
189 linenum = 0; 189 linenum = 0;
@@ -204,7 +204,7 @@ choose_dh(int min, int wantbits, int max)
204 if (linenum != which+1) { 204 if (linenum != which+1) {
205 logit("WARNING: line %d disappeared in %s, giving up", 205 logit("WARNING: line %d disappeared in %s, giving up",
206 which, _PATH_DH_PRIMES); 206 which, _PATH_DH_PRIMES);
207 return (dh_new_group14()); 207 return (dh_new_group_fallback(max));
208 } 208 }
209 209
210 return (dh_new_group(dhg.g, dhg.p)); 210 return (dh_new_group(dhg.g, dhg.p));
@@ -261,7 +261,7 @@ dh_gen_key(DH *dh, int need)
261 261
262 if (need < 0 || dh->p == NULL || 262 if (need < 0 || dh->p == NULL ||
263 (pbits = BN_num_bits(dh->p)) <= 0 || 263 (pbits = BN_num_bits(dh->p)) <= 0 ||
264 need > INT_MAX / 2 || 2 * need >= pbits) 264 need > INT_MAX / 2 || 2 * need > pbits)
265 return SSH_ERR_INVALID_ARGUMENT; 265 return SSH_ERR_INVALID_ARGUMENT;
266 dh->length = MIN(need * 2, pbits - 1); 266 dh->length = MIN(need * 2, pbits - 1);
267 if (DH_generate_key(dh) == 0 || 267 if (DH_generate_key(dh) == 0 ||
@@ -339,6 +339,45 @@ dh_new_group14(void)
339} 339}
340 340
341/* 341/*
342 * 4k bit fallback group used by DH-GEX if moduli file cannot be read.
343 * Source: MODP group 16 from RFC3526.
344 */
345DH *
346dh_new_group_fallback(int max)
347{
348 static char *gen = "2", *group16 =
349 "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1"
350 "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD"
351 "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245"
352 "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED"
353 "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE45B3D"
354 "C2007CB8" "A163BF05" "98DA4836" "1C55D39A" "69163FA8" "FD24CF5F"
355 "83655D23" "DCA3AD96" "1C62F356" "208552BB" "9ED52907" "7096966D"
356 "670C354E" "4ABC9804" "F1746C08" "CA18217C" "32905E46" "2E36CE3B"
357 "E39E772C" "180E8603" "9B2783A2" "EC07A28F" "B5C55DF0" "6F4C52C9"
358 "DE2BCBF6" "95581718" "3995497C" "EA956AE5" "15D22618" "98FA0510"
359 "15728E5A" "8AAAC42D" "AD33170D" "04507A33" "A85521AB" "DF1CBA64"
360 "ECFB8504" "58DBEF0A" "8AEA7157" "5D060C7D" "B3970F85" "A6E1E4C7"
361 "ABF5AE8C" "DB0933D7" "1E8C94E0" "4A25619D" "CEE3D226" "1AD2EE6B"
362 "F12FFA06" "D98A0864" "D8760273" "3EC86A64" "521F2B18" "177B200C"
363 "BBE11757" "7A615D6C" "770988C0" "BAD946E2" "08E24FA0" "74E5AB31"
364 "43DB5BFC" "E0FD108E" "4B82D120" "A9210801" "1A723C12" "A787E6D7"
365 "88719A10" "BDBA5B26" "99C32718" "6AF4E23C" "1A946834" "B6150BDA"
366 "2583E9CA" "2AD44CE8" "DBBBC2DB" "04DE8EF9" "2E8EFC14" "1FBECAA6"
367 "287C5947" "4E6BC05D" "99B2964F" "A090C3A2" "233BA186" "515BE7ED"
368 "1F612970" "CEE2D7AF" "B81BDD76" "2170481C" "D0069127" "D5B05AA9"
369 "93B4EA98" "8D8FDDC1" "86FFB7DC" "90A6C08F" "4DF435C9" "34063199"
370 "FFFFFFFF" "FFFFFFFF";
371
372 if (max < 4096) {
373 debug3("requested max size %d, using 2k bit group 14", max);
374 return dh_new_group14();
375 }
376 debug3("using 4k bit group 16");
377 return (dh_new_group_asc(gen, group16));
378}
379
380/*
342 * Estimates the group order for a Diffie-Hellman group that has an 381 * Estimates the group order for a Diffie-Hellman group that has an
343 * attack complexity approximately the same as O(2**bits). 382 * attack complexity approximately the same as O(2**bits).
344 * Values from NIST Special Publication 800-57: Recommendation for Key 383 * Values from NIST Special Publication 800-57: Recommendation for Key
diff --git a/dh.h b/dh.h
index 63a1b1477..654695315 100644
--- a/dh.h
+++ b/dh.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: dh.h,v 1.12 2015/01/19 20:16:15 markus Exp $ */ 1/* $OpenBSD: dh.h,v 1.13 2015/05/27 23:39:18 dtucker Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000 Niels Provos. All rights reserved. 4 * Copyright (c) 2000 Niels Provos. All rights reserved.
@@ -37,6 +37,7 @@ DH *dh_new_group_asc(const char *, const char *);
37DH *dh_new_group(BIGNUM *, BIGNUM *); 37DH *dh_new_group(BIGNUM *, BIGNUM *);
38DH *dh_new_group1(void); 38DH *dh_new_group1(void);
39DH *dh_new_group14(void); 39DH *dh_new_group14(void);
40DH *dh_new_group_fallback(int);
40 41
41int dh_gen_key(DH *, int); 42int dh_gen_key(DH *, int);
42int dh_pub_is_valid(DH *, BIGNUM *); 43int dh_pub_is_valid(DH *, BIGNUM *);
diff --git a/digest-libc.c b/digest-libc.c
index a216e784e..40db00274 100644
--- a/digest-libc.c
+++ b/digest-libc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: digest-libc.c,v 1.4 2014/12/21 22:27:56 djm Exp $ */ 1/* $OpenBSD: digest-libc.c,v 1.5 2015/05/05 02:48:17 jsg Exp $ */
2/* 2/*
3 * Copyright (c) 2013 Damien Miller <djm@mindrot.org> 3 * Copyright (c) 2013 Damien Miller <djm@mindrot.org>
4 * Copyright (c) 2014 Markus Friedl. All rights reserved. 4 * Copyright (c) 2014 Markus Friedl. All rights reserved.
@@ -172,7 +172,7 @@ ssh_digest_start(int alg)
172 const struct ssh_digest *digest = ssh_digest_by_alg(alg); 172 const struct ssh_digest *digest = ssh_digest_by_alg(alg);
173 struct ssh_digest_ctx *ret; 173 struct ssh_digest_ctx *ret;
174 174
175 if (digest == NULL || (ret = calloc(1, sizeof(ret))) == NULL) 175 if (digest == NULL || (ret = calloc(1, sizeof(*ret))) == NULL)
176 return NULL; 176 return NULL;
177 if ((ret->mdctx = calloc(1, digest->ctx_len)) == NULL) { 177 if ((ret->mdctx = calloc(1, digest->ctx_len)) == NULL) {
178 free(ret); 178 free(ret);
diff --git a/dispatch.c b/dispatch.c
index afe618221..aac933e0a 100644
--- a/dispatch.c
+++ b/dispatch.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: dispatch.c,v 1.26 2015/02/12 20:34:19 dtucker Exp $ */ 1/* $OpenBSD: dispatch.c,v 1.27 2015/05/01 07:10:01 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -137,22 +137,6 @@ ssh_dispatch_run_fatal(struct ssh *ssh, int mode, volatile sig_atomic_t *done,
137{ 137{
138 int r; 138 int r;
139 139
140 if ((r = ssh_dispatch_run(ssh, mode, done, ctxt)) != 0) { 140 if ((r = ssh_dispatch_run(ssh, mode, done, ctxt)) != 0)
141 switch (r) { 141 sshpkt_fatal(ssh, __func__, r);
142 case SSH_ERR_CONN_CLOSED:
143 logit("Connection closed by %.200s",
144 ssh_remote_ipaddr(ssh));
145 cleanup_exit(255);
146 case SSH_ERR_CONN_TIMEOUT:
147 logit("Connection to %.200s timed out while "
148 "waiting to read", ssh_remote_ipaddr(ssh));
149 cleanup_exit(255);
150 case SSH_ERR_DISCONNECTED:
151 logit("Disconnected from %.200s",
152 ssh_remote_ipaddr(ssh));
153 cleanup_exit(255);
154 default:
155 fatal("%s: %s", __func__, ssh_err(r));
156 }
157 }
158} 142}
diff --git a/dns.h b/dns.h
index 815f073a1..30e2b19b3 100644
--- a/dns.h
+++ b/dns.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: dns.h,v 1.14 2015/01/15 09:40:00 djm Exp $ */ 1/* $OpenBSD: dns.h,v 1.15 2015/05/08 06:45:13 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2003 Wesley Griffin. All rights reserved. 4 * Copyright (c) 2003 Wesley Griffin. All rights reserved.
@@ -33,7 +33,7 @@ enum sshfp_types {
33 SSHFP_KEY_RSA = 1, 33 SSHFP_KEY_RSA = 1,
34 SSHFP_KEY_DSA = 2, 34 SSHFP_KEY_DSA = 2,
35 SSHFP_KEY_ECDSA = 3, 35 SSHFP_KEY_ECDSA = 3,
36 SSHFP_KEY_ED25519 = 4 36 SSHFP_KEY_ED25519 = 4
37}; 37};
38 38
39enum sshfp_hashes { 39enum sshfp_hashes {
diff --git a/groupaccess.c b/groupaccess.c
index 4fca04471..2518c8487 100644
--- a/groupaccess.c
+++ b/groupaccess.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: groupaccess.c,v 1.15 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: groupaccess.c,v 1.16 2015/05/04 06:10:48 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Kevin Steves. All rights reserved. 3 * Copyright (c) 2001 Kevin Steves. All rights reserved.
4 * 4 *
@@ -97,11 +97,9 @@ int
97ga_match_pattern_list(const char *group_pattern) 97ga_match_pattern_list(const char *group_pattern)
98{ 98{
99 int i, found = 0; 99 int i, found = 0;
100 size_t len = strlen(group_pattern);
101 100
102 for (i = 0; i < ngroups; i++) { 101 for (i = 0; i < ngroups; i++) {
103 switch (match_pattern_list(groups_byname[i], 102 switch (match_pattern_list(groups_byname[i], group_pattern, 0)) {
104 group_pattern, len, 0)) {
105 case -1: 103 case -1:
106 return 0; /* Negated match wins */ 104 return 0; /* Negated match wins */
107 case 0: 105 case 0:
diff --git a/gss-genr.c b/gss-genr.c
index 60ac65f8d..d617d600a 100644
--- a/gss-genr.c
+++ b/gss-genr.c
@@ -34,6 +34,7 @@
34#include <limits.h> 34#include <limits.h>
35#include <stdarg.h> 35#include <stdarg.h>
36#include <string.h> 36#include <string.h>
37#include <signal.h>
37#include <unistd.h> 38#include <unistd.h>
38 39
39#include "xmalloc.h" 40#include "xmalloc.h"
diff --git a/gss-serv.c b/gss-serv.c
index e7b8c5223..53993d674 100644
--- a/gss-serv.c
+++ b/gss-serv.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: gss-serv.c,v 1.28 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: gss-serv.c,v 1.29 2015/05/22 03:50:02 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. 4 * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved.
@@ -44,9 +44,12 @@
44#include "channels.h" 44#include "channels.h"
45#include "session.h" 45#include "session.h"
46#include "misc.h" 46#include "misc.h"
47#include "servconf.h"
47 48
48#include "ssh-gss.h" 49#include "ssh-gss.h"
49 50
51extern ServerOptions options;
52
50static ssh_gssapi_client gssapi_client = 53static ssh_gssapi_client gssapi_client =
51 { GSS_C_EMPTY_BUFFER, GSS_C_EMPTY_BUFFER, 54 { GSS_C_EMPTY_BUFFER, GSS_C_EMPTY_BUFFER,
52 GSS_C_NO_CREDENTIAL, NULL, {NULL, NULL, NULL, NULL}}; 55 GSS_C_NO_CREDENTIAL, NULL, {NULL, NULL, NULL, NULL}};
@@ -99,25 +102,32 @@ ssh_gssapi_acquire_cred(Gssctxt *ctx)
99 char lname[NI_MAXHOST]; 102 char lname[NI_MAXHOST];
100 gss_OID_set oidset; 103 gss_OID_set oidset;
101 104
102 gss_create_empty_oid_set(&status, &oidset); 105 if (options.gss_strict_acceptor) {
103 gss_add_oid_set_member(&status, ctx->oid, &oidset); 106 gss_create_empty_oid_set(&status, &oidset);
107 gss_add_oid_set_member(&status, ctx->oid, &oidset);
104 108
105 if (gethostname(lname, sizeof(lname))) { 109 if (gethostname(lname, MAXHOSTNAMELEN)) {
106 gss_release_oid_set(&status, &oidset); 110 gss_release_oid_set(&status, &oidset);
107 return (-1); 111 return (-1);
108 } 112 }
113
114 if (GSS_ERROR(ssh_gssapi_import_name(ctx, lname))) {
115 gss_release_oid_set(&status, &oidset);
116 return (ctx->major);
117 }
118
119 if ((ctx->major = gss_acquire_cred(&ctx->minor,
120 ctx->name, 0, oidset, GSS_C_ACCEPT, &ctx->creds,
121 NULL, NULL)))
122 ssh_gssapi_error(ctx);
109 123
110 if (GSS_ERROR(ssh_gssapi_import_name(ctx, lname))) {
111 gss_release_oid_set(&status, &oidset); 124 gss_release_oid_set(&status, &oidset);
112 return (ctx->major); 125 return (ctx->major);
126 } else {
127 ctx->name = GSS_C_NO_NAME;
128 ctx->creds = GSS_C_NO_CREDENTIAL;
113 } 129 }
114 130 return GSS_S_COMPLETE;
115 if ((ctx->major = gss_acquire_cred(&ctx->minor,
116 ctx->name, 0, oidset, GSS_C_ACCEPT, &ctx->creds, NULL, NULL)))
117 ssh_gssapi_error(ctx);
118
119 gss_release_oid_set(&status, &oidset);
120 return (ctx->major);
121} 131}
122 132
123/* Privileged */ 133/* Privileged */
diff --git a/hmac.c b/hmac.c
index d1c12417e..1c879640c 100644
--- a/hmac.c
+++ b/hmac.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: hmac.c,v 1.11 2015/01/15 21:37:14 markus Exp $ */ 1/* $OpenBSD: hmac.c,v 1.12 2015/03/24 20:03:44 markus Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Markus Friedl. All rights reserved. 3 * Copyright (c) 2014 Markus Friedl. All rights reserved.
4 * 4 *
@@ -154,7 +154,7 @@ hmac_test(void *key, size_t klen, void *m, size_t mlen, u_char *e, size_t elen)
154 154
155 if (memcmp(e, digest, elen)) { 155 if (memcmp(e, digest, elen)) {
156 for (i = 0; i < elen; i++) 156 for (i = 0; i < elen; i++)
157 printf("[%zd] %2.2x %2.2x\n", i, e[i], digest[i]); 157 printf("[%zu] %2.2x %2.2x\n", i, e[i], digest[i]);
158 printf("mismatch\n"); 158 printf("mismatch\n");
159 } else 159 } else
160 printf("ok\n"); 160 printf("ok\n");
diff --git a/hostfile.c b/hostfile.c
index b235795e6..2850a4793 100644
--- a/hostfile.c
+++ b/hostfile.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: hostfile.c,v 1.64 2015/02/16 22:08:57 djm Exp $ */ 1/* $OpenBSD: hostfile.c,v 1.66 2015/05/04 06:10:48 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -242,7 +242,8 @@ record_hostkey(struct hostkey_foreach_line *l, void *_ctx)
242 struct hostkey_entry *tmp; 242 struct hostkey_entry *tmp;
243 243
244 if (l->status == HKF_STATUS_INVALID) { 244 if (l->status == HKF_STATUS_INVALID) {
245 error("%s:%ld: parse error in hostkeys file", 245 /* XXX make this verbose() in the future */
246 debug("%s:%ld: parse error in hostkeys file",
246 l->path, l->linenum); 247 l->path, l->linenum);
247 return 0; 248 return 0;
248 } 249 }
@@ -662,7 +663,7 @@ match_maybe_hashed(const char *host, const char *names, int *was_hashed)
662 return nlen == strlen(hashed_host) && 663 return nlen == strlen(hashed_host) &&
663 strncmp(hashed_host, names, nlen) == 0; 664 strncmp(hashed_host, names, nlen) == 0;
664 } 665 }
665 return match_hostname(host, names, nlen) == 1; 666 return match_hostname(host, names) == 1;
666} 667}
667 668
668int 669int
@@ -810,7 +811,7 @@ hostkeys_foreach(const char *path, hostkeys_foreach_fn *callback, void *ctx,
810 memcpy(ktype, lineinfo.rawkey, l); 811 memcpy(ktype, lineinfo.rawkey, l);
811 ktype[l] = '\0'; 812 ktype[l] = '\0';
812 lineinfo.keytype = sshkey_type_from_name(ktype); 813 lineinfo.keytype = sshkey_type_from_name(ktype);
813#ifdef WITH_SSH1 814
814 /* 815 /*
815 * Assume RSA1 if the first component is a short 816 * Assume RSA1 if the first component is a short
816 * decimal number. 817 * decimal number.
@@ -818,7 +819,7 @@ hostkeys_foreach(const char *path, hostkeys_foreach_fn *callback, void *ctx,
818 if (lineinfo.keytype == KEY_UNSPEC && l < 8 && 819 if (lineinfo.keytype == KEY_UNSPEC && l < 8 &&
819 strspn(ktype, "0123456789") == l) 820 strspn(ktype, "0123456789") == l)
820 lineinfo.keytype = KEY_RSA1; 821 lineinfo.keytype = KEY_RSA1;
821#endif 822
822 /* 823 /*
823 * Check that something other than whitespace follows 824 * Check that something other than whitespace follows
824 * the key type. This won't catch all corruption, but 825 * the key type. This won't catch all corruption, but
diff --git a/kex.c b/kex.c
index 8c2b00179..dbc55ef7e 100644
--- a/kex.c
+++ b/kex.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kex.c,v 1.105 2015/01/30 00:22:25 djm Exp $ */ 1/* $OpenBSD: kex.c,v 1.106 2015/04/17 13:25:52 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
4 * 4 *
@@ -229,6 +229,8 @@ kex_prop_free(char **proposal)
229{ 229{
230 u_int i; 230 u_int i;
231 231
232 if (proposal == NULL)
233 return;
232 for (i = 0; i < PROPOSAL_MAX; i++) 234 for (i = 0; i < PROPOSAL_MAX; i++)
233 free(proposal[i]); 235 free(proposal[i]);
234 free(proposal); 236 free(proposal);
diff --git a/kexc25519.c b/kexc25519.c
index b6e6c4010..8d8cd4a2b 100644
--- a/kexc25519.c
+++ b/kexc25519.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexc25519.c,v 1.8 2015/01/19 20:16:15 markus Exp $ */ 1/* $OpenBSD: kexc25519.c,v 1.9 2015/03/26 07:00:04 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2001, 2013 Markus Friedl. All rights reserved. 3 * Copyright (c) 2001, 2013 Markus Friedl. All rights reserved.
4 * Copyright (c) 2010 Damien Miller. All rights reserved. 4 * Copyright (c) 2010 Damien Miller. All rights reserved.
@@ -66,6 +66,11 @@ kexc25519_shared_key(const u_char key[CURVE25519_SIZE],
66 u_char shared_key[CURVE25519_SIZE]; 66 u_char shared_key[CURVE25519_SIZE];
67 int r; 67 int r;
68 68
69 /* Check for all-zero public key */
70 explicit_bzero(shared_key, CURVE25519_SIZE);
71 if (timingsafe_bcmp(pub, shared_key, CURVE25519_SIZE) == 0)
72 return SSH_ERR_KEY_INVALID_EC_VALUE;
73
69 crypto_scalarmult_curve25519(shared_key, key, pub); 74 crypto_scalarmult_curve25519(shared_key, key, pub);
70#ifdef DEBUG_KEXECDH 75#ifdef DEBUG_KEXECDH
71 dump_digest("shared secret", shared_key, CURVE25519_SIZE); 76 dump_digest("shared secret", shared_key, CURVE25519_SIZE);
diff --git a/kexc25519s.c b/kexc25519s.c
index b2d2c858f..240272533 100644
--- a/kexc25519s.c
+++ b/kexc25519s.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexc25519s.c,v 1.8 2015/01/26 06:10:03 djm Exp $ */ 1/* $OpenBSD: kexc25519s.c,v 1.9 2015/04/27 00:37:53 dtucker Exp $ */
2/* 2/*
3 * Copyright (c) 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2001 Markus Friedl. All rights reserved.
4 * Copyright (c) 2010 Damien Miller. All rights reserved. 4 * Copyright (c) 2010 Damien Miller. All rights reserved.
@@ -27,6 +27,7 @@
27#include "includes.h" 27#include "includes.h"
28 28
29#include <sys/types.h> 29#include <sys/types.h>
30#include <stdio.h>
30#include <string.h> 31#include <string.h>
31#include <signal.h> 32#include <signal.h>
32 33
diff --git a/kexgexc.c b/kexgexc.c
index e8e059a88..71ff13352 100644
--- a/kexgexc.c
+++ b/kexgexc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexgexc.c,v 1.20 2015/01/26 06:10:03 djm Exp $ */ 1/* $OpenBSD: kexgexc.c,v 1.22 2015/05/26 23:23:40 dtucker Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Niels Provos. All rights reserved. 3 * Copyright (c) 2000 Niels Provos. All rights reserved.
4 * Copyright (c) 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -28,6 +28,7 @@
28 28
29#ifdef WITH_OPENSSL 29#ifdef WITH_OPENSSL
30 30
31#include <sys/param.h>
31#include <sys/types.h> 32#include <sys/types.h>
32 33
33#include <openssl/dh.h> 34#include <openssl/dh.h>
@@ -65,25 +66,17 @@ kexgex_client(struct ssh *ssh)
65 kex->min = DH_GRP_MIN; 66 kex->min = DH_GRP_MIN;
66 kex->max = DH_GRP_MAX; 67 kex->max = DH_GRP_MAX;
67 kex->nbits = nbits; 68 kex->nbits = nbits;
68 if (ssh->compat & SSH_OLD_DHGEX) { 69 if (datafellows & SSH_BUG_DHGEX_LARGE)
69 /* Old GEX request */ 70 kex->nbits = MIN(kex->nbits, 4096);
70 if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST_OLD)) 71 /* New GEX request */
71 != 0 || 72 if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST)) != 0 ||
72 (r = sshpkt_put_u32(ssh, kex->nbits)) != 0 || 73 (r = sshpkt_put_u32(ssh, kex->min)) != 0 ||
73 (r = sshpkt_send(ssh)) != 0) 74 (r = sshpkt_put_u32(ssh, kex->nbits)) != 0 ||
74 goto out; 75 (r = sshpkt_put_u32(ssh, kex->max)) != 0 ||
75 debug("SSH2_MSG_KEX_DH_GEX_REQUEST_OLD(%u) sent", kex->nbits); 76 (r = sshpkt_send(ssh)) != 0)
76 } else { 77 goto out;
77 /* New GEX request */ 78 debug("SSH2_MSG_KEX_DH_GEX_REQUEST(%u<%u<%u) sent",
78 if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST)) != 0 || 79 kex->min, kex->nbits, kex->max);
79 (r = sshpkt_put_u32(ssh, kex->min)) != 0 ||
80 (r = sshpkt_put_u32(ssh, kex->nbits)) != 0 ||
81 (r = sshpkt_put_u32(ssh, kex->max)) != 0 ||
82 (r = sshpkt_send(ssh)) != 0)
83 goto out;
84 debug("SSH2_MSG_KEX_DH_GEX_REQUEST(%u<%u<%u) sent",
85 kex->min, kex->nbits, kex->max);
86 }
87#ifdef DEBUG_KEXDH 80#ifdef DEBUG_KEXDH
88 fprintf(stderr, "\nmin = %d, nbits = %d, max = %d\n", 81 fprintf(stderr, "\nmin = %d, nbits = %d, max = %d\n",
89 kex->min, kex->nbits, kex->max); 82 kex->min, kex->nbits, kex->max);
diff --git a/kexgexs.c b/kexgexs.c
index 9c281d288..ff6c6879e 100644
--- a/kexgexs.c
+++ b/kexgexs.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: kexgexs.c,v 1.24 2015/01/26 06:10:03 djm Exp $ */ 1/* $OpenBSD: kexgexs.c,v 1.25 2015/04/13 02:04:08 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Niels Provos. All rights reserved. 3 * Copyright (c) 2000 Niels Provos. All rights reserved.
4 * Copyright (c) 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -60,8 +60,6 @@ static int input_kex_dh_gex_init(int, u_int32_t, void *);
60int 60int
61kexgex_server(struct ssh *ssh) 61kexgex_server(struct ssh *ssh)
62{ 62{
63 ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST_OLD,
64 &input_kex_dh_gex_request);
65 ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST, 63 ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REQUEST,
66 &input_kex_dh_gex_request); 64 &input_kex_dh_gex_request);
67 debug("expecting SSH2_MSG_KEX_DH_GEX_REQUEST"); 65 debug("expecting SSH2_MSG_KEX_DH_GEX_REQUEST");
@@ -76,36 +74,19 @@ input_kex_dh_gex_request(int type, u_int32_t seq, void *ctxt)
76 int r; 74 int r;
77 u_int min = 0, max = 0, nbits = 0; 75 u_int min = 0, max = 0, nbits = 0;
78 76
79 switch (type) { 77 debug("SSH2_MSG_KEX_DH_GEX_REQUEST received");
80 case SSH2_MSG_KEX_DH_GEX_REQUEST: 78 if ((r = sshpkt_get_u32(ssh, &min)) != 0 ||
81 debug("SSH2_MSG_KEX_DH_GEX_REQUEST received"); 79 (r = sshpkt_get_u32(ssh, &nbits)) != 0 ||
82 if ((r = sshpkt_get_u32(ssh, &min)) != 0 || 80 (r = sshpkt_get_u32(ssh, &max)) != 0 ||
83 (r = sshpkt_get_u32(ssh, &nbits)) != 0 || 81 (r = sshpkt_get_end(ssh)) != 0)
84 (r = sshpkt_get_u32(ssh, &max)) != 0 ||
85 (r = sshpkt_get_end(ssh)) != 0)
86 goto out;
87 kex->nbits = nbits;
88 kex->min = min;
89 kex->max = max;
90 min = MAX(DH_GRP_MIN, min);
91 max = MIN(DH_GRP_MAX, max);
92 nbits = MAX(DH_GRP_MIN, nbits);
93 nbits = MIN(DH_GRP_MAX, nbits);
94 break;
95 case SSH2_MSG_KEX_DH_GEX_REQUEST_OLD:
96 debug("SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received");
97 if ((r = sshpkt_get_u32(ssh, &nbits)) != 0 ||
98 (r = sshpkt_get_end(ssh)) != 0)
99 goto out;
100 kex->nbits = nbits;
101 /* unused for old GEX */
102 kex->min = min = DH_GRP_MIN;
103 kex->max = max = DH_GRP_MAX;
104 break;
105 default:
106 r = SSH_ERR_INVALID_ARGUMENT;
107 goto out; 82 goto out;
108 } 83 kex->nbits = nbits;
84 kex->min = min;
85 kex->max = max;
86 min = MAX(DH_GRP_MIN, min);
87 max = MIN(DH_GRP_MAX, max);
88 nbits = MAX(DH_GRP_MIN, nbits);
89 nbits = MIN(DH_GRP_MAX, nbits);
109 90
110 if (kex->max < kex->min || kex->nbits < kex->min || 91 if (kex->max < kex->min || kex->nbits < kex->min ||
111 kex->max < kex->nbits) { 92 kex->max < kex->nbits) {
@@ -131,10 +112,6 @@ input_kex_dh_gex_request(int type, u_int32_t seq, void *ctxt)
131 if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0) 112 if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0)
132 goto out; 113 goto out;
133 114
134 /* old KEX does not use min/max in kexgex_hash() */
135 if (type == SSH2_MSG_KEX_DH_GEX_REQUEST_OLD)
136 kex->min = kex->max = -1;
137
138 debug("expecting SSH2_MSG_KEX_DH_GEX_INIT"); 115 debug("expecting SSH2_MSG_KEX_DH_GEX_INIT");
139 ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_INIT, &input_kex_dh_gex_init); 116 ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_INIT, &input_kex_dh_gex_init);
140 r = 0; 117 r = 0;
diff --git a/krl.c b/krl.c
index 4bbaa2080..a98252ef8 100644
--- a/krl.c
+++ b/krl.c
@@ -14,7 +14,7 @@
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */ 15 */
16 16
17/* $OpenBSD: krl.c,v 1.31 2015/01/30 01:10:33 djm Exp $ */ 17/* $OpenBSD: krl.c,v 1.32 2015/06/24 23:47:23 djm Exp $ */
18 18
19#include "includes.h" 19#include "includes.h"
20 20
@@ -772,7 +772,7 @@ ssh_krl_to_blob(struct ssh_krl *krl, struct sshbuf *buf,
772 goto out; 772 goto out;
773 773
774 if ((r = sshkey_sign(sign_keys[i], &sblob, &slen, 774 if ((r = sshkey_sign(sign_keys[i], &sblob, &slen,
775 sshbuf_ptr(buf), sshbuf_len(buf), 0)) == -1) 775 sshbuf_ptr(buf), sshbuf_len(buf), 0)) != 0)
776 goto out; 776 goto out;
777 KRL_DBG(("%s: signature sig len %zu", __func__, slen)); 777 KRL_DBG(("%s: signature sig len %zu", __func__, slen));
778 if ((r = sshbuf_put_string(buf, sblob, slen)) != 0) 778 if ((r = sshbuf_put_string(buf, sblob, slen)) != 0)
diff --git a/match.c b/match.c
index c35e32896..913b6bae0 100644
--- a/match.c
+++ b/match.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: match.c,v 1.29 2013/11/20 20:54:10 deraadt Exp $ */ 1/* $OpenBSD: match.c,v 1.30 2015/05/04 06:10:48 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -115,15 +115,13 @@ match_pattern(const char *s, const char *pattern)
115 * indicate negation). Returns -1 if negation matches, 1 if there is 115 * indicate negation). Returns -1 if negation matches, 1 if there is
116 * a positive match, 0 if there is no match at all. 116 * a positive match, 0 if there is no match at all.
117 */ 117 */
118
119int 118int
120match_pattern_list(const char *string, const char *pattern, u_int len, 119match_pattern_list(const char *string, const char *pattern, int dolower)
121 int dolower)
122{ 120{
123 char sub[1024]; 121 char sub[1024];
124 int negated; 122 int negated;
125 int got_positive; 123 int got_positive;
126 u_int i, subi; 124 u_int i, subi, len = strlen(pattern);
127 125
128 got_positive = 0; 126 got_positive = 0;
129 for (i = 0; i < len;) { 127 for (i = 0; i < len;) {
@@ -177,9 +175,9 @@ match_pattern_list(const char *string, const char *pattern, u_int len,
177 * a positive match, 0 if there is no match at all. 175 * a positive match, 0 if there is no match at all.
178 */ 176 */
179int 177int
180match_hostname(const char *host, const char *pattern, u_int len) 178match_hostname(const char *host, const char *pattern)
181{ 179{
182 return match_pattern_list(host, pattern, len, 1); 180 return match_pattern_list(host, pattern, 1);
183} 181}
184 182
185/* 183/*
@@ -200,7 +198,7 @@ match_host_and_ip(const char *host, const char *ipaddr,
200 return 0; 198 return 0;
201 199
202 /* negative hostname match */ 200 /* negative hostname match */
203 if ((mhost = match_hostname(host, patterns, strlen(patterns))) == -1) 201 if ((mhost = match_hostname(host, patterns)) == -1)
204 return 0; 202 return 0;
205 /* no match at all */ 203 /* no match at all */
206 if (mhost == 0 && mip == 0) 204 if (mhost == 0 && mip == 0)
diff --git a/match.h b/match.h
index 3d7f70fc0..db97ca8f7 100644
--- a/match.h
+++ b/match.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: match.h,v 1.15 2010/02/26 20:29:54 djm Exp $ */ 1/* $OpenBSD: match.h,v 1.16 2015/05/04 06:10:48 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -15,8 +15,8 @@
15#define MATCH_H 15#define MATCH_H
16 16
17int match_pattern(const char *, const char *); 17int match_pattern(const char *, const char *);
18int match_pattern_list(const char *, const char *, u_int, int); 18int match_pattern_list(const char *, const char *, int);
19int match_hostname(const char *, const char *, u_int); 19int match_hostname(const char *, const char *);
20int match_host_and_ip(const char *, const char *, const char *); 20int match_host_and_ip(const char *, const char *, const char *);
21int match_user(const char *, const char *, const char *, const char *); 21int match_user(const char *, const char *, const char *, const char *);
22char *match_list(const char *, const char *, u_int *); 22char *match_list(const char *, const char *, u_int *);
diff --git a/misc.c b/misc.c
index 38af3dfe3..ddd2b2db4 100644
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: misc.c,v 1.96 2015/01/16 06:40:12 deraadt Exp $ */ 1/* $OpenBSD: misc.c,v 1.97 2015/04/24 01:36:00 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * Copyright (c) 2005,2006 Damien Miller. All rights reserved. 4 * Copyright (c) 2005,2006 Damien Miller. All rights reserved.
@@ -472,7 +472,7 @@ addargs(arglist *args, char *fmt, ...)
472 } else if (args->num+2 >= nalloc) 472 } else if (args->num+2 >= nalloc)
473 nalloc *= 2; 473 nalloc *= 2;
474 474
475 args->list = xrealloc(args->list, nalloc, sizeof(char *)); 475 args->list = xreallocarray(args->list, nalloc, sizeof(char *));
476 args->nalloc = nalloc; 476 args->nalloc = nalloc;
477 args->list[args->num++] = cp; 477 args->list[args->num++] = cp;
478 args->list[args->num] = NULL; 478 args->list[args->num] = NULL;
diff --git a/moduli b/moduli
index 49f76ee98..6bb25c9bf 100644
--- a/moduli
+++ b/moduli
@@ -1,262 +1,247 @@
1# $OpenBSD: moduli,v 1.8 2012/08/29 05:06:54 dtucker Exp $ 1# $OpenBSD: moduli,v 1.13 2015/05/28 00:03:06 dtucker Exp $
2# Time Type Tests Tries Size Generator Modulus 2# Time Type Tests Tries Size Generator Modulus
320120821044040 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A770E2EC9F 320150520234251 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A740BE2123
420120821044046 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7711F2C6B 420150520234255 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A740D85877
520120821044047 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771225323 520150520234257 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A740E6494B
620120821044048 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7712507AB 620150520234301 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A741120F9B
720120821044050 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7712A2DB3 720150520234303 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7411EAC5B
820120821044051 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7712CACEF 820150520234304 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7412579DB
920120821044053 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7713959C3 920150520234311 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74167053B
1020120821044057 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7715BBA13 1020150520234312 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74169B303
1120120821044103 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A77191592F 1120150520234318 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A741A3D69F
1220120821044104 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771938E1F 1220150520234322 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A741C07E23
1320120821044106 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771A1E127 1320150520234330 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7420B48E3
1420120821044108 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771B3CDFB 1420150520234331 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74215059B
1520120821044109 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771B71913 1520150520234336 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74240BD03
1620120821044111 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771C2759F 1620150520234338 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7424D70BB
1720120821044113 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771CF8ABF 1720150520234341 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7425C6CE3
1820120821044114 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771D2B49B 1820150520234342 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74264FA9B
1920120821044116 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771DF6193 1920150520234343 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7426BB34B
2020120821044117 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771E67E33 2020150520234346 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74285D9E3
2120120821044120 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A771FA581B 2120150520234347 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A742878293
2220120821044121 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772027DDB 2220150520234348 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74288D143
2320120821044123 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772093F8B 2320150520234356 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A742D55BF3
2420120821044124 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7720EEF6F 2420150520234401 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A742FC8227
2520120821044125 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A77216CAD7 2520150520234410 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7436032EB
2620120821044126 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A77219A90B 2620150520234411 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74361377F
2720120821044129 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7722A0103 2720150520234415 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7437CCCFB
2820120821044130 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772343DBF 2820150520234418 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A743902C1F
2920120821044133 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772460C3F 2920150520234420 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7439EE5DB
3020120821044137 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7726A4E0F 3020150520234422 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A743AE19BF
3120120821044138 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772716D8B 3120150520234430 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7440152AB
3220120821044141 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A7728D719B 3220150520234432 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7440C2F63
3320120821044143 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A77297AA8B 3320150520234434 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7441FBDEB
3420120821044145 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772A8794B 3420150520234436 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7442C98DF
3520120821044147 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772B4D6AB 3520150520234437 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A744319703
3620120821044149 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772BD325F 3620150520234438 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A74433E927
3720120821044150 2 6 100 1023 5 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772BDAE07 3720150520234444 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A7446DF46F
3820120821044151 2 6 100 1023 2 D9277DAA27DB131C03B108D41A76B4DA8ACEECCCAE73D2E48CEDAAA70B09EF9F04FB020DCF36C51B8E485B26FABE0337E24232BE4F4E693548310244937433FB1A5758195DC73B84ADEF8237472C46747D79DC0A2CF8A57CE8DBD8F466A20F8551E7B1B824B2E4987A8816D9BC0741C2798F3EBAD3ADEBCC78FCE6A772C95CE3 3820150520234450 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A744A3488B
3920120821044502 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F96361507 3920150520234455 2 6 100 1535 2 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A744CDAACB
4020120821044515 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F965885BF 4020150520234459 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A744E9D8FF
4120120821044519 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F966006C7 4120150520234504 2 6 100 1535 5 F8F4A446A6C7196643612A6C5CC26A47E491FB737740D68BBEBF0130F7AAADC59075781FB1723B644C0ADCE548C02E726DE5233C484FB4481F3EF3ED0585A0D687B2E0A6987AD2BC910754FC1A1E06B87710CFF0BC2E9868BA15BA20C103D3DCA6B65D8D0182B277F7CAE61D83A785BDD0B3CE471B4B8FAB224438D7A6772130167110AFD1FF584861996117F67B41CF3D2D5FAB020F2EB7F53E299AACF98797AEB6BAC3F0BB892DB4E4F8CDDE28C112C73EB556D0C381C6B9CC78A745196237
4220120821044528 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9674A0EB 4220150520235007 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031E9A9C5F7
4320120821044539 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F969457F3 4320150520235015 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031E9CBB21F
4420120821044544 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F969BE79B 4420150520235039 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EA2E9623
4520120821044606 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F96E1E827 4520150520235043 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EA33E3DF
4620120821044623 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9714284B 4620150520235057 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EA68038B
4720120821044630 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97231CB7 4720150520235114 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EAAB0717
4820120821044636 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F972E01DF 4820150520235122 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EAC2A7FB
4920120821044647 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F974BCED3 4920150520235125 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EAC82DD3
5020120821044650 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F974C3A43 5020150520235154 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EB40583F
5120120821044653 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F974E8F73 5120150520235214 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EB94F247
5220120821044701 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9763403B 5220150520235218 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EB9DF49F
5320120821044705 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9767666B 5320150520235239 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EBF7BE27
5420120821044708 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9768D81F 5420150520235244 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC0B4F4F
5520120821044726 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F979FD437 5520150520235250 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC21070F
5620120821044729 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97A29BC7 5620150520235256 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC36541F
5720120821044732 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97A56447 5720150520235307 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC5FE22B
5820120821044737 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97AEDBDB 5820150520235322 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ECA1FB57
5920120821044740 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97B187F3 5920150520235331 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ECC3C823
6020120821044746 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97BC6EE3 6020150520235349 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED035187
6120120821044757 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F97DCCDEB 6120150520235400 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED2F07DB
6220120821044817 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F981975F7 6220150520235407 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED4620CF
6320120821044831 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F983EC267 6320150520235422 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED86D39F
6420120821044841 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F985A032F 6420150520235424 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED86E683
6520120821044846 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9863B0AB 6520150520235427 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED8C3073
6620120821044852 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F986E5C7F 6620150520235443 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDCB1F63
6720120821044911 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F98A8FF6B 6720150520235450 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDE00B77
6820120821044917 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F98B40E4B 6820150520235452 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDE42247
6920120821044924 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F98C5840F 6920150520235458 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDF8F493
7020120821044940 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F98F22CEB 7020150520235503 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE04D69F
7120120821044947 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99040FFF 7120150520235508 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE14B92B
7220120821044954 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99139AE3 7220150520235510 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE167933
7320120821045010 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9940BEFB 7320150520235517 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE2DC63B
7420120821045017 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9954379F 7420150520235527 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE52259F
7520120821045020 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99548C23 7520150520235539 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE829247
7620120821045023 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99562FC3 7620150520235557 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EED044BF
7720120821045028 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9960CDCF 7720150520235608 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EEFD34CF
7820120821045038 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F997AC0B3 7820150520235614 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF0F709F
7920120821045045 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F998D9B6B 7920150520235616 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF12110B
8020120821045050 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9994BB77 8020150520235622 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF25FE1F
8120120821045059 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99AC001B 8120150520235637 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF6BF4D3
8220120821045101 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99AC5547 8220150520235654 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFAF28BF
8320120821045107 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99B86567 8320150520235701 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFBFB8BB
8420120821045110 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99BA2677 8420150520235704 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFC7A62F
8520120821045128 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F99EF4523 8520150520235710 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFD79323
8620120821045154 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9A419DAB 8620150520235725 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0158F1F
8720120821045214 2 6 100 1535 5 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9A7D1E67 8720150520235728 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F01A9E6B
8820120821045218 2 6 100 1535 2 D1391174233D315398FE2830AC6B2B66BCCD01B0A634899F339B7879F1DB85712E9DC4E4B1C6C8355570C1D2DCB53493DF18175A9C53D1128B592B4C72D97136F5542FEB981CBFE8012FDD30361F288A42BD5EBB08BAB0A5640E1AC48763B2ABD1945FEE36B2D55E1D50A1C86CED9DD141C4E7BE2D32D9B562A0F8E2E927020E91F58B57EB9ACDDA106A59302D7E92AD5F6E851A45FA1CFE86029A0F727F65A8F475F33572E2FDAB6073F0C21B8B54C3823DB2EF068927E5D747498F9A826443 8820150520235743 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F055798B
8920120821045639 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293680B09D63 8920150520235752 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0730BC3
9020120821045830 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C6042936814C2FFB 9020150520235757 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F08283FF
9120120821050046 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C60429368214FC53 9120150520235825 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0F451E3
9220120821050054 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C60429368218E83F 9220150520235830 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0FDEFB7
9320120821050118 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293682361D5F 9320150520235901 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F1828ECF
9420120821050218 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C6042936828ADA17 9420150521000008 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F185D7BF
9520120821050243 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293682A8A7CB 9520150521000011 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F18C58FB
9620120821050427 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C60429368341AC87 9620150521000014 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F191F757
9720120821050515 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C6042936837F8657 9720150521000841 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CC7F06BB
9820120821050545 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293683A3DFD3 9820150521001025 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CD1057AB
9920120821050554 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293683A9635F 9920150521001131 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CD717D6F
10020120821050636 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293683DF582B 10020150521001248 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CDDA85F7
10120120821050648 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293683E86803 10120150521001453 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CE8959BF
10220120821050758 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293684495A13 10220150521001510 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CE98227B
10320120821050807 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C6042936844FAB5B 10320150521001623 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CEF967BF
10420120821050849 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C60429368486D99B 10420150521001651 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CF18156B
10520120821050916 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293684A776A7 10520150521001758 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CF717197
10620120821050942 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293684C4FF73 10620150521001924 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CFE1507B
10720120821051003 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293684DB980F 10720150521002244 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D0F75427
10820120821051010 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293684DD4FBF 10820150521002509 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D1BD2823
10920120821051158 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293685721537 10920150521002808 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D2B4950F
11020120821051206 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293685768253 11020150521002846 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D2E6D6D7
11120120821051231 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293685930F13 11120150521003203 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D3F5D0D3
11220120821051240 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293685987B0B 11220150521003322 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D45851E3
11320120821051324 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293685D5E36B 11320150521003430 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D4AEE517
11420120821051349 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293685F3AB7F 11420150521003629 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D5538E0B
11520120821051424 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293686206187 11520150521003714 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D58BAFCF
11620120821051516 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C60429368668EB4B 11620150521003722 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D5916FC7
11720120821051540 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C60429368686EB87 11720150521003739 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D5A378F7
11820120821051622 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293686BCCF13 11820150521004506 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D82B5113
11920120821051703 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293686F13B9F 11920150521004613 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D880CB43
12020120821051715 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293686FB2D4F 12020150521004753 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D909305B
12120120821051837 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C6042936876ED7DF 12120150521004802 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D90DBDC3
12220120821051843 2 6 100 2047 2 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C6042936876F05DB 12220150521005025 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D9CBF44F
12320120821051930 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293687AEDE8F 12320150521005051 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D9E89DA7
12420120821052131 2 6 100 2047 5 DD2047CBDBB6F8E919BC63DE885B34D0FD6E3DB2887D8B46FE249886ACED6B46DFCD5553168185FD376122171CD8927E60120FA8D01F01D03E58281FEA9A1ABE97631C828E41815F34FDCDF787419FE13A3137649AA93D2584230DF5F24B5C00C88B7D7DE4367693428C730376F218A53E853B0851BAB7C53C15DA7839CBE1285DB63F6FA45C1BB59FE1C5BB918F0F8459D7EF60ACFF5C0FA0F3FCAD1C5F4CE4416D4F4B36B05CDCEBE4FB879E95847EFBC6449CD190248843BC7EDB145FBFC4EDBB1A3C959298F08F3BA2CFBE231BBE204BE6F906209D28BD4820AB3E7BE96C26AE8A809ADD8D1A5A0B008E9570FA4C4697E116B8119892C604293688637CFF 12420150521005252 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DA8BA403
12520120821053137 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942284EA9F 12520150521005347 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DAD07F73
12620120821053209 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF94228B7F67 12620150521005825 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DC5CE5A3
12720120821053317 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9422A2B3C7 12720150521005858 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DC84A597
12820120821053841 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF94232DEF87 12820150521010014 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DCE62957
12920120821054039 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942359AB7B 12920150521010219 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DD9517D7
13020120821054334 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9423A371A7 13020150521011229 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F951FEB83
13120120821054455 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9423C1CEEF 13120150521011834 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F960399B7
13220120821054844 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9424273F1F 13220150521012438 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F96EE7973
13320120821055307 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9424987667 13320150521014010 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F99453213
13420120821055436 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9424B90BAB 13420150521015607 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9B549727
13520120821055700 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9424F6C7CF 13520150521015640 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9B600A7B
13620120821060224 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF94258ADCEF 13620150521020946 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9D5299DF
13720120821060334 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9425A1FCEB 13720150521021536 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9E2793D3
13820120821060420 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9425AEBF43 13820150521022706 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9FE131CB
13920120821060927 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942634C34F 13920150521023922 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA1BAC073
14020120821061829 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF94272F0D4F 14020150521025234 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA3BC9483
14120120821062020 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF94275B00B7 14120150521025424 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA3FB3513
14220120821062241 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9427941F5F 14220150521032445 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA87E0FAB
14320120821063416 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9428D5E367 14320150521032932 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA929F00F
14420120821063648 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942917E127 14420150521032947 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA92B272B
14520120821064052 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9429825A2B 14520150521033245 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA9953D0B
14620120821064951 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942A74C4EB 14620150521034828 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FABDD4AEF
14720120821065736 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942B4640D3 14720150521035044 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAC298C7F
14820120821071146 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942CCD6D1B 14820150521035111 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAC31F17B
14920120821071337 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942CF9321B 14920150521035749 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAD250357
15020120821072545 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF942E48654F 15020150521040009 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAD788A73
15120120821075022 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9430F1B6A3 15120150521040220 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FADC5F173
15220120821080229 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9432356F63 15220150521040316 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FADDFFC03
15320120821081230 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF94333D9363 15320150521041042 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAEEBDEB3
15420120821081746 2 6 100 3071 5 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9433C6A7A7 15420150521041443 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAF7AD7BB
15520120821081811 2 6 100 3071 2 DFAA35D35531E0F524F0099877A482D2AC8D589F374394A262A8E81A8A4FB2F65FADBAB395E05D147B29D486DFAA41F41597A256DA82A8B6F76401AED53D0253F956CEC610D417E42E3B287F7938FC24D8821B40BFA218A956EB7401BED6C96C68C7FD64F8170A8A76B953DD2F05420118F6B144D8FE48060A2BCB85056B478EDEF96DBC70427053ECD2958C074169E9550DD877779A3CF17C5AC850598C7586BEEA9DCFE9DD2A5FB62DF5F33EA7BC00CDA31B9D2DD721F979EA85B6E63F0C4E30BDDCD3A335522F9004C4ED50B15DC537F55324DD4FA119FB3F101467C6D7E1699DE4B3E3C478A8679B8EB3FA5C9B826B44530FD3BE9AD3063B240B0C853EBDDBD68DD940332D98F148D5D9E1DC977D60A0D23D0CA1198637FEAE4E7FAAC173AF2B84313A666CFB4EE6972811921D0AD867CE57F3BBC8D6CB057E3B66757BB46C9F72662624D44E14528327E3A7100E81A12C43C4E236118318CD90C8AA185BBB0C764826DAEAEE8DD245C5B451B4944E6122CC522D1C335C2EEF9433C94C93 15520150521041831 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB007D653
15620120821084945 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45B27D047 15620150521041928 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB025C91B
15720120821091240 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45C370A33 15720150521042301 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB0A4C143
15820120821092428 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45CBB9FBB 15820150521042631 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB12009F7
15920120821093047 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45D001E73 15920150521042740 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB145360F
16020120821095420 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45E104D6F 16020150521043358 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB22FAE93
16120120821095624 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45E21E2BF 16120150521044013 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB31527AF
16220120821102749 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA45F9B1B7B 16220150521044543 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB3DDFBB7
16320120821105854 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4610E205F 16320150521004745 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F52665F2B
16420120821110658 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA461631FBF 16420150521003352 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F57C7B577
16520120821110744 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA461635E3B 16520150521005557 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F591BBC57
16620120821115206 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4636E0DF7 16620150521014228 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5BDF5CE7
16720120821121256 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4645F38B3 16720150521015455 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5C9CFD1F
16820120821121421 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA46467609B 16820150521001701 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5CF6FF9B
16920120821122649 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA464F87D6B 16920150521002558 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5D7C4FE3
17020120821122854 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA46508F94B 17020150521003319 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5DE41DFB
17120120821125200 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4661CBC5B 17120150521003721 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5E1B5FAF
17220120821130613 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA466BC6B33 17220150521010943 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F600B866F
17320120821131115 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA466ED9CC7 17320150521014141 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F61F01EC3
17420120821132817 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA467B278B3 17420150521010312 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F65EAB753
17520120821135349 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA468D8351B 17520150521002914 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F69FD9357
17620120821141206 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA469A817A7 17620150521011058 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6C6B8513
17720120821144909 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA46B488EF7 17720150521013628 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6DE7D9EF
17820120821150021 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA46BC5D5E7 17820150521015040 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6EB0C897
17920120821153843 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA46D774723 17920150521001307 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6F15473B
18020120821162006 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA46F5488DB 18020150521012712 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7377044B
18120120821170404 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA47157A067 18120150521005218 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7767DEA3
18220120821173305 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA472A1E94B 18220150521003512 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7C5546F7
18320120821173936 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA472E0E57F 18320150521005420 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7D68EDC3
18420120821174533 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4731F7433 18420150521011347 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7E859CF3
18520120821180053 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA473C7CE3F 18520150521002429 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F819A93E7
18620120821180952 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4742A8237 18620150521004826 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F88D91A57
18720120821181124 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA474343C5B 18720150521010541 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F89D29B9F
18820120821183540 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4754D89DB 18820150521012418 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8ADC38F7
18920120821183852 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA47569B47F 18920150521015506 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8C91980B
19020120821184512 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA475AC57DB 19020150521004000 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8E369B97
19120120821184603 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA475AD78CB 19120150521005659 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8F2B1BEB
19220120821184701 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA475B0038F 19220150521010328 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8F7DD1D3
19320120821185939 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA4763BD72F 19320150521011152 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8FF052BB
19420120821190630 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA476853BB7 19420150521001457 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F92940463
19520120821190945 2 6 100 4095 2 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA476A47843 19520150521011129 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F95C47DCB
19620120821195501 2 6 100 4095 5 EF07B0F39662DC8600224E46AB8BE8CB72E552D52E88013D20EC039A0697ED9AAD018B16F0B910D4AD54437B8585AAA4EAE0CE216E31F50EDF0CD05DAF5E02A73D399C91B38220EC3B62C42D1CF6BF06378533A70C1F8F4F4416DD542213D3432412125FDBFF7B9473CE6F8812D860E66282C9F34C1774D1EA57D54DADDF7E37A12C4A6AD5B4A30128C29D27D03B6535C0F7A8AF857E18ECAB992984E6D546918AAACB971A2AC2C2E7AF79A9547979E6342DB7443985E5F7EDF6F9F22B600EEB42CB84A5F1ACD76E213C52E3052DAE1A9119801CFA28E6EFD4F6BC35FA06C8724D78A96AF054826C0BF865D0EC5F6F4D31C1D3F7CF2FE6F16AF267A7BA04753AEF420D4D8C36BCE8D9694814B9E9C3DF468064EB5636405C71CA9D8D50D36570B42639C9C2C02FB3A3D0C6B28DD200B0AF164C621D60B12E35E4D00129C8900F6EFDBB49FF34DD64CB13CD4087A7F84FEFD77D4E8099C2B804BA643EAFCA66D1F02BD09AE44AC83A5149F60711B7B108C01D53FF15FA59B36BE62A870F163F5063CEE103B377808343AFBD32271199E26D93734011BED2305EDE2E841EAD512E23B8C9B8CD4D398C7B4C8B76B355CC150B66B8EB7779E2CA519E10E45D0FB138676850C56F23DB135F546D364B92BC1C9423E089D30D4D57D27D7885EE14AE135A488C0542C3719FBEF46F4BB5FB53A28DA26DDF84C8BC55348A8AA478A96AEF 19620150521013515 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F9710A103
19720120705232031 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B241215BB 19720150521013841 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F9733A497
19820120705233800 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B246EC93B 19820150521041810 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7BE934407F
19920120706002709 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B2582B477 19920150521070624 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7BEEB1E407
20020120706013826 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B271419A3 20020150521051555 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7BF50EEEC3
20120120706014732 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B273FB1BB 20120150521061258 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C00AF225F
20220120706021008 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B27B7E59F 20220150521034225 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C058D5963
20320120705225552 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B29C4E81B 20320150521035956 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C0616723F
20420120705233754 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B2AB07037 20420150521054248 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C12F16C3F
20520120705234834 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B2AE25CBB 20520150521060112 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C1379EA23
20620120706024556 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B2EDFAA6F 20620150521023340 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C165F2773
20720120705233556 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B30EE83EB 20720150521043505 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C1A3EC717
20820120706002117 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B31E6F727 20820150521024626 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C202ABED3
20920120705233808 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B37267537 20920150521064303 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C27790087
21020120706001148 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B3DF98C1F 21020150521060604 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C2F9DF583
21120120706013155 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B3FBB98EB 21120150521062143 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C3003EEAB
21220120706025705 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B418898A7 21220150521044311 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C363D0A77
21320120706022948 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B4707179B 21320150521053731 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C37D6EFCF
21420120705233534 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B4F3D25C7 21420150521065640 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C3A20A2DF
21520120706014542 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B520205CB 21520150521044717 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C3F622E8B
21620120706030026 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B539518DB 21620150521065426 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C430ED7CB
21720120706003519 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B566E0243 21720150521023632 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C445E575B
21820120706032218 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B59E508EF 21820150521032945 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C45EEE643
21920120706033523 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B5A254F5F 21920150521054538 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C49FB77CB
22020120705235242 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B5B60C48F 22020150521024620 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C4D86D0FB
22120120706022615 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B646A1B3B 22120150521042108 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C505E524B
22220120706032540 2 6 100 6143 5 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B6594B14F 22220150521041835 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD3703FA7
22320120706001843 2 6 100 6143 2 EEBCAD36F686DDEB790C1EBDF6C6355A4EEB95435785FAC26C1DDBBD0D3C284AB5B4A1D5BA22131604AAE087D8B9431038CDA76DAA9E1C8D10793F53374FDF26489D38FF13188B6961B86E44A065D2FADEFC6C9496350AFA4129C9FD1B6B321E6053A6C645978C151D623C1106FE6669C220690B637F6259522F88250CC2B1B7F170706E9CE741F6E26BB4E86FB6822B13D8A7CE99FEF5CD66EF08310ECE5CC86648BD90E1DC59332505579116D3F3C8314065DC1319BEA133ED809903CA4949905C3D21619217816465E964768FFE76BC962AACBC8FF13477990A81C8759BBE95DFFA22E299F7C0F79A0EA7C44B28E8AB96149CC213E7C886E3D0A2230D7A4176749D6EDD6FCA2F5F3E2BD10392BC818CFB25C696C1EC14CE6F23CDB6C3DA2ED77E098A874799EB65F82A4EAF85CA0C9E68278381AF964AA5816B2CDA8E1ABB2954C02F641E1F374563B0F9DBF2F1B6D8168558BB971C8F48668A8034F82908D45D4D9A9072375D00AE0D5D442C6E6B6B2E7280C104C7675FDB0795DD0D3273E74BDC7B243B7604447502EB1572A273ABA0032CDB754345B1ACDF17B5AEDA45B661DBEFDA084B1427F94C8EA62BAB6A1E05DED8F2F706445879F15FB096996765238B6B546FDE5F219B5B85B31E804A989C4959600998A03572FB59DC150714BDB0C71A236497AE79871FBEFCAFFF34D2DF0142F2AF3C9C5D92F5FC7A61A27FF9AA1EADDF3552A2BED2CC4D19FB0F67DCC02744947A42FE10B338A3A8E634B413AE46C4E644DD5934D5820C9714656171A02BBCA25AED1CCD9EB9BEF9C63E7E966B0E2E47146191ECA452588FA2AFF50AF25FABAF83E143D47A651BD9B9C37CF5D6319FDCBC2F5D4B76D07B52D857FDE48FD983F06B531F7D316E2961E17D358FE6556C82C2E78C1D9CCF68760EFD8CC692E8912914781651D834C0C766B3D71C07C91AB93619E0C06385CFAC6FA18E1DEC7F3C5EE92C906CC49A4786D24CDB4F5656DE60F1F4412367B16BDA68DA368218C16E30C48366A8C0FDFA6E708E3353B8471402A42E594903774A65EA7AB5A83D08AD10D34DB38201B44B677C3593 22320150521051726 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD4CEF96F
22420120705054703 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234453518A0F7 22420150521074626 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD86439C3
22520120705060217 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445353B291F 22520150521082439 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD947F7F3
22620120705100916 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344537DF8F1B 22620150521012012 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CE0694343
22720120705112627 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344538AF7C7B 22720150521073153 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CE93D436F
22820120705121419 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445392BB61F 22820150521094433 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CEC4EE993
22920120705162623 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234453BD5FE03 22920150521074128 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CFA190CE3
23020120705171958 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234453C6257EF 23020150521014004 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D0235296F
23120120705222541 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234453FBF1073 23120150521014736 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D025961EB
23220120705120012 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344544BA2363 23220150521065737 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D0961218F
23320120705143238 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445464ED33B 23320150521043653 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D163706C7
23420120705175610 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445486B9E93 23420150521085322 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D1BC6858F
23520120705143839 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344551AEBB1B 23520150521093922 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D1CC27FE3
23620120705164833 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344553053057 23620150521120407 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D1FE2874F
23720120705195911 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344560200E33 23720150521124157 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D20A8A19B
23820120705051445 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445620DCB9B 23820150521035417 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D24E0665B
23920120705090103 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234456453E2C3 23920150521062806 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D2828F7AB
24020120705102457 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234456520F7B3 24020150521074218 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D29B42017
24120120705045958 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234456CC34FE7 24120150521114937 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D2F027D3F
24220120705064048 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234456DBB1643 24220150521073847 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D3905A9FF
24320120705100057 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234456FACFC3F 24320150521024512 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D41DB2FFB
24420120705130216 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445716EEFD3 24420150521024827 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D41E2852F
24520120705184211 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344574BD3B0F 24520150521042402 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D43D9B0E3
24620120705075506 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234457918ED6F 24620150521083756 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D491D852F
24720120705111016 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445857E1707 24720150521113241 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D4CAD7D8B
24820120705051124 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234458C6078E3
24920120705054255 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234458CA4E313
25020120705155949 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234459281E7B3
25120120705065517 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE2344597A57CB3
25220120705082307 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445987253DB
25320120705182442 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234459E124B2F
25420120705184956 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE234459E442F5B
25520120705071209 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445A1E0FD83
25620120705155527 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445A6BDA473
25720120705103912 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445ADCE429F
25820120705115451 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445AE75FB83
25920120705133531 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445AF5813A3
26020120705144902 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445AFF92FDF
26120120705160631 2 6 100 8191 5 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445B0A9AF9F
26220120705194100 2 6 100 8191 2 DA2167F01CB32874E032B38C40FEC5F2557C9C4411B3A4B3D38C889A8BEED4EB7EF08A9A1E1EAAEEC22C2A46891D3CA84517FDFCDFA2BACBCDE2FC8EA87182542F5C8D3897B6C8A6DB951256F3DDBA7C5D6E7060925AD1F3046F49D00B433770B412DAA2A74E539EB81E3266DDDA82781BB21B19695FB925FA8BB6D249B5C33401C5D9E5C6B1719A36F1EB36E7CCD28AD98AA74DFD453D343BD189C968EB8F459809E87F77C6BA985B82B960A46660C7A277970E016EBD183CE7D6232F56EB06ECC0931024B9333879EF063F976C3603649AB9DCBE9714753E0A865020C3EF22BABF2F473F771CFC70A7C43FE320640D6E2816E88B6CA501A85A34F88EFF26AD8FFA0D11B0A21CB1A4FC7F90DB97B11BD5367302CBB45A390D2CB28CE83D50156A161D0080FD5F3961872ABC56FBCB973C517F6D7205E6CCF44E22E5DF8793D5037A9E779A52628D258CEA6B45CA4AC604CD69875D51145EE4C3D8856E24F9DBCA0134D54A734320A46A0AF52E20DD604AD465508172D4185C0D5C720B325ABC1760B1680B7BDFBAA1AE845A84AC3C7BBC53CD01C000B2186DC3915A1879224DD703E817C58F5FFCFBDF0189BB4B5033769F49852F3C48A88B88FB659B4AC96EE9DFC1D7E1760194EE4E1B6A8052BA17C827BE8A74C9F3FA7EA3236171F3DF9ACF19C40636825F1C49EFAAB12CEAD24F4585FE7C466FDE7ACF7E1FC91C8D473A8AB12C652AF568227E7CE3421256F83084D8E82DC977309E5B8C73EB8D92B71B9DAF6A53D13539D55C1A67BAC646358352529958AA3599DF0D882B8640ABFF17031C3F246A3E07F86AEB29CEACACF3B3EB931C40D292D09F4B99E08E4C68D811F9425DA30AC456107454AAC470DBD627C3EE2132E7C6FCEB61C2BA1CBE4FE6F07A2A4E398FDFBECC0283E9CF440F9F8F6893D019A98EFE992BA7433951DF341A3B3A8E879B090FB0E11907382853FBD6FA79B5B3FFF4EBE286F92A99D24C548949209867B1116BDBE1F104230EE26CCA0A12602A328B9B7A86D18415881AEFC9527AD4BB563CC330F29DF51199E1E9F0317EE6F3768C0849351FC1F95D47A1DE90484BE923ADC004D8287A90168C1D1491AD9A9B3266A826F966AA964E814F171FF9F3BA755DF83961182D95317844D6064D8BDED2DDB9AB4D74C325C1748036103690D88D85B532B692B74ED199253CB77E3BA57A2369BD9DD3B4FE68A66A1EFE507BA1F1A0164B6EDF397DF550EAC7FA155F7DED564A34DA73BC1F72E2D56CBABADAF3ED6B03C56FE00CA51548604403757ACAE67C71C564D4F688BA44465C7D3FFC84DB2BA142E06A967181CA0806E732134D795AD6E936BB25C00A14FE0DA5A83A7095D0271B380E802CD9E6E601C582EAC20CB6AC0C670108376302BA364FFD30E78D0CAB72BADB15F282CD256BC3B365896D80DC170BE23445B296E223
diff --git a/monitor.c b/monitor.c
index bab6ce87e..b4109657e 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor.c,v 1.145 2015/02/20 22:17:21 djm Exp $ */ 1/* $OpenBSD: monitor.c,v 1.150 2015/06/22 23:42:16 djm Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -404,7 +404,7 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor)
404 if (ent->flags & (MON_AUTHDECIDE|MON_ALOG)) { 404 if (ent->flags & (MON_AUTHDECIDE|MON_ALOG)) {
405 auth_log(authctxt, authenticated, partial, 405 auth_log(authctxt, authenticated, partial,
406 auth_method, auth_submethod); 406 auth_method, auth_submethod);
407 if (!authenticated) 407 if (!partial && !authenticated)
408 authctxt->failures++; 408 authctxt->failures++;
409 } 409 }
410 } 410 }
@@ -1185,7 +1185,7 @@ mm_answer_keyallowed(int sock, Buffer *m)
1185 Key *key; 1185 Key *key;
1186 char *cuser, *chost; 1186 char *cuser, *chost;
1187 u_char *blob; 1187 u_char *blob;
1188 u_int bloblen; 1188 u_int bloblen, pubkey_auth_attempt;
1189 enum mm_keytype type = 0; 1189 enum mm_keytype type = 0;
1190 int allowed = 0; 1190 int allowed = 0;
1191 1191
@@ -1195,6 +1195,7 @@ mm_answer_keyallowed(int sock, Buffer *m)
1195 cuser = buffer_get_string(m, NULL); 1195 cuser = buffer_get_string(m, NULL);
1196 chost = buffer_get_string(m, NULL); 1196 chost = buffer_get_string(m, NULL);
1197 blob = buffer_get_string(m, &bloblen); 1197 blob = buffer_get_string(m, &bloblen);
1198 pubkey_auth_attempt = buffer_get_int(m);
1198 1199
1199 key = key_from_blob(blob, bloblen); 1200 key = key_from_blob(blob, bloblen);
1200 1201
@@ -1215,19 +1216,19 @@ mm_answer_keyallowed(int sock, Buffer *m)
1215 allowed = options.pubkey_authentication && 1216 allowed = options.pubkey_authentication &&
1216 !auth2_userkey_already_used(authctxt, key) && 1217 !auth2_userkey_already_used(authctxt, key) &&
1217 match_pattern_list(sshkey_ssh_name(key), 1218 match_pattern_list(sshkey_ssh_name(key),
1218 options.pubkey_key_types, 1219 options.pubkey_key_types, 0) == 1 &&
1219 strlen(options.pubkey_key_types), 0) == 1 && 1220 user_key_allowed(authctxt->pw, key,
1220 user_key_allowed(authctxt->pw, key); 1221 pubkey_auth_attempt);
1221 pubkey_auth_info(authctxt, key, NULL); 1222 pubkey_auth_info(authctxt, key, NULL);
1222 auth_method = "publickey"; 1223 auth_method = "publickey";
1223 if (options.pubkey_authentication && allowed != 1) 1224 if (options.pubkey_authentication &&
1225 (!pubkey_auth_attempt || allowed != 1))
1224 auth_clear_options(); 1226 auth_clear_options();
1225 break; 1227 break;
1226 case MM_HOSTKEY: 1228 case MM_HOSTKEY:
1227 allowed = options.hostbased_authentication && 1229 allowed = options.hostbased_authentication &&
1228 match_pattern_list(sshkey_ssh_name(key), 1230 match_pattern_list(sshkey_ssh_name(key),
1229 options.hostbased_key_types, 1231 options.hostbased_key_types, 0) == 1 &&
1230 strlen(options.hostbased_key_types), 0) == 1 &&
1231 hostbased_key_allowed(authctxt->pw, 1232 hostbased_key_allowed(authctxt->pw,
1232 cuser, chost, key); 1233 cuser, chost, key);
1233 pubkey_auth_info(authctxt, key, 1234 pubkey_auth_info(authctxt, key,
@@ -1474,6 +1475,9 @@ mm_record_login(Session *s, struct passwd *pw)
1474 socklen_t fromlen; 1475 socklen_t fromlen;
1475 struct sockaddr_storage from; 1476 struct sockaddr_storage from;
1476 1477
1478 if (options.use_login)
1479 return;
1480
1477 /* 1481 /*
1478 * Get IP address of client. If the connection is not a socket, let 1482 * Get IP address of client. If the connection is not a socket, let
1479 * the address be 0.0.0.0. 1483 * the address be 0.0.0.0.
diff --git a/monitor_wrap.c b/monitor_wrap.c
index b379f0555..e6217b3d4 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_wrap.c,v 1.84 2015/02/16 22:13:32 djm Exp $ */ 1/* $OpenBSD: monitor_wrap.c,v 1.85 2015/05/01 03:23:51 djm Exp $ */
2/* 2/*
3 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 3 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
4 * Copyright 2002 Markus Friedl <markus@openbsd.org> 4 * Copyright 2002 Markus Friedl <markus@openbsd.org>
@@ -153,10 +153,8 @@ mm_request_receive(int sock, Buffer *m)
153 debug3("%s entering", __func__); 153 debug3("%s entering", __func__);
154 154
155 if (atomicio(read, sock, buf, sizeof(buf)) != sizeof(buf)) { 155 if (atomicio(read, sock, buf, sizeof(buf)) != sizeof(buf)) {
156 if (errno == EPIPE) { 156 if (errno == EPIPE)
157 error("%s: socket closed", __func__);
158 cleanup_exit(255); 157 cleanup_exit(255);
159 }
160 fatal("%s: read: %s", __func__, strerror(errno)); 158 fatal("%s: read: %s", __func__, strerror(errno));
161 } 159 }
162 msg_len = get_u32(buf); 160 msg_len = get_u32(buf);
@@ -373,16 +371,17 @@ mm_auth_password(Authctxt *authctxt, char *password)
373} 371}
374 372
375int 373int
376mm_user_key_allowed(struct passwd *pw, Key *key) 374mm_user_key_allowed(struct passwd *pw, Key *key, int pubkey_auth_attempt)
377{ 375{
378 return (mm_key_allowed(MM_USERKEY, NULL, NULL, key)); 376 return (mm_key_allowed(MM_USERKEY, NULL, NULL, key,
377 pubkey_auth_attempt));
379} 378}
380 379
381int 380int
382mm_hostbased_key_allowed(struct passwd *pw, char *user, char *host, 381mm_hostbased_key_allowed(struct passwd *pw, char *user, char *host,
383 Key *key) 382 Key *key)
384{ 383{
385 return (mm_key_allowed(MM_HOSTKEY, user, host, key)); 384 return (mm_key_allowed(MM_HOSTKEY, user, host, key, 0));
386} 385}
387 386
388int 387int
@@ -392,13 +391,14 @@ mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, char *user,
392 int ret; 391 int ret;
393 392
394 key->type = KEY_RSA; /* XXX hack for key_to_blob */ 393 key->type = KEY_RSA; /* XXX hack for key_to_blob */
395 ret = mm_key_allowed(MM_RSAHOSTKEY, user, host, key); 394 ret = mm_key_allowed(MM_RSAHOSTKEY, user, host, key, 0);
396 key->type = KEY_RSA1; 395 key->type = KEY_RSA1;
397 return (ret); 396 return (ret);
398} 397}
399 398
400int 399int
401mm_key_allowed(enum mm_keytype type, char *user, char *host, Key *key) 400mm_key_allowed(enum mm_keytype type, char *user, char *host, Key *key,
401 int pubkey_auth_attempt)
402{ 402{
403 Buffer m; 403 Buffer m;
404 u_char *blob; 404 u_char *blob;
@@ -416,6 +416,7 @@ mm_key_allowed(enum mm_keytype type, char *user, char *host, Key *key)
416 buffer_put_cstring(&m, user ? user : ""); 416 buffer_put_cstring(&m, user ? user : "");
417 buffer_put_cstring(&m, host ? host : ""); 417 buffer_put_cstring(&m, host ? host : "");
418 buffer_put_string(&m, blob, len); 418 buffer_put_string(&m, blob, len);
419 buffer_put_int(&m, pubkey_auth_attempt);
419 free(blob); 420 free(blob);
420 421
421 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYALLOWED, &m); 422 mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_KEYALLOWED, &m);
diff --git a/monitor_wrap.h b/monitor_wrap.h
index e18784ac4..de4a08f99 100644
--- a/monitor_wrap.h
+++ b/monitor_wrap.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: monitor_wrap.h,v 1.26 2015/02/16 22:13:32 djm Exp $ */ 1/* $OpenBSD: monitor_wrap.h,v 1.27 2015/05/01 03:23:51 djm Exp $ */
2 2
3/* 3/*
4 * Copyright 2002 Niels Provos <provos@citi.umich.edu> 4 * Copyright 2002 Niels Provos <provos@citi.umich.edu>
@@ -45,8 +45,8 @@ void mm_inform_authserv(char *, char *);
45struct passwd *mm_getpwnamallow(const char *); 45struct passwd *mm_getpwnamallow(const char *);
46char *mm_auth2_read_banner(void); 46char *mm_auth2_read_banner(void);
47int mm_auth_password(struct Authctxt *, char *); 47int mm_auth_password(struct Authctxt *, char *);
48int mm_key_allowed(enum mm_keytype, char *, char *, Key *); 48int mm_key_allowed(enum mm_keytype, char *, char *, Key *, int);
49int mm_user_key_allowed(struct passwd *, Key *); 49int mm_user_key_allowed(struct passwd *, Key *, int);
50int mm_hostbased_key_allowed(struct passwd *, char *, char *, Key *); 50int mm_hostbased_key_allowed(struct passwd *, char *, char *, Key *);
51int mm_auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, Key *); 51int mm_auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, Key *);
52int mm_key_verify(Key *, u_char *, u_int, u_char *, u_int); 52int mm_key_verify(Key *, u_char *, u_int, u_char *, u_int);
diff --git a/mux.c b/mux.c
index f3faaeec9..cdc01bd4f 100644
--- a/mux.c
+++ b/mux.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: mux.c,v 1.50 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: mux.c,v 1.53 2015/05/01 04:03:20 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> 3 * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
4 * 4 *
@@ -350,7 +350,7 @@ process_mux_new_session(u_int rid, Channel *c, Buffer *m, Buffer *r)
350 free(cp); 350 free(cp);
351 continue; 351 continue;
352 } 352 }
353 cctx->env = xrealloc(cctx->env, env_len + 2, 353 cctx->env = xreallocarray(cctx->env, env_len + 2,
354 sizeof(*cctx->env)); 354 sizeof(*cctx->env));
355 cctx->env[env_len++] = cp; 355 cctx->env[env_len++] = cp;
356 cctx->env[env_len] = NULL; 356 cctx->env[env_len] = NULL;
@@ -593,7 +593,9 @@ mux_confirm_remote_forward(int type, u_int32_t seq, void *ctxt)
593 return; 593 return;
594 } 594 }
595 buffer_init(&out); 595 buffer_init(&out);
596 if (fctx->fid >= options.num_remote_forwards) { 596 if (fctx->fid >= options.num_remote_forwards ||
597 (options.remote_forwards[fctx->fid].connect_path == NULL &&
598 options.remote_forwards[fctx->fid].connect_host == NULL)) {
597 xasprintf(&failmsg, "unknown forwarding id %d", fctx->fid); 599 xasprintf(&failmsg, "unknown forwarding id %d", fctx->fid);
598 goto fail; 600 goto fail;
599 } 601 }
@@ -605,7 +607,7 @@ mux_confirm_remote_forward(int type, u_int32_t seq, void *ctxt)
605 if (type == SSH2_MSG_REQUEST_SUCCESS) { 607 if (type == SSH2_MSG_REQUEST_SUCCESS) {
606 if (rfwd->listen_port == 0) { 608 if (rfwd->listen_port == 0) {
607 rfwd->allocated_port = packet_get_int(); 609 rfwd->allocated_port = packet_get_int();
608 logit("Allocated port %u for mux remote forward" 610 debug("Allocated port %u for mux remote forward"
609 " to %s:%d", rfwd->allocated_port, 611 " to %s:%d", rfwd->allocated_port,
610 rfwd->connect_host, rfwd->connect_port); 612 rfwd->connect_host, rfwd->connect_port);
611 buffer_put_int(&out, MUX_S_REMOTE_PORT); 613 buffer_put_int(&out, MUX_S_REMOTE_PORT);
@@ -627,6 +629,17 @@ mux_confirm_remote_forward(int type, u_int32_t seq, void *ctxt)
627 else 629 else
628 xasprintf(&failmsg, "remote port forwarding failed for " 630 xasprintf(&failmsg, "remote port forwarding failed for "
629 "listen port %d", rfwd->listen_port); 631 "listen port %d", rfwd->listen_port);
632
633 debug2("%s: clearing registered forwarding for listen %d, "
634 "connect %s:%d", __func__, rfwd->listen_port,
635 rfwd->connect_path ? rfwd->connect_path :
636 rfwd->connect_host, rfwd->connect_port);
637
638 free(rfwd->listen_host);
639 free(rfwd->listen_path);
640 free(rfwd->connect_host);
641 free(rfwd->connect_path);
642 memset(rfwd, 0, sizeof(*rfwd));
630 } 643 }
631 fail: 644 fail:
632 error("%s: %s", __func__, failmsg); 645 error("%s: %s", __func__, failmsg);
@@ -1722,7 +1735,7 @@ mux_client_forward(int fd, int cancel_flag, u_int ftype, struct Forward *fwd)
1722 if (cancel_flag) 1735 if (cancel_flag)
1723 fatal("%s: got MUX_S_REMOTE_PORT for cancel", __func__); 1736 fatal("%s: got MUX_S_REMOTE_PORT for cancel", __func__);
1724 fwd->allocated_port = buffer_get_int(&m); 1737 fwd->allocated_port = buffer_get_int(&m);
1725 logit("Allocated port %u for remote forward to %s:%d", 1738 verbose("Allocated port %u for remote forward to %s:%d",
1726 fwd->allocated_port, 1739 fwd->allocated_port,
1727 fwd->connect_host ? fwd->connect_host : "", 1740 fwd->connect_host ? fwd->connect_host : "",
1728 fwd->connect_port); 1741 fwd->connect_port);
diff --git a/myproposal.h b/myproposal.h
index b35b2b8bd..84b63bcd5 100644
--- a/myproposal.h
+++ b/myproposal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: myproposal.h,v 1.41 2014/07/11 13:54:34 tedu Exp $ */ 1/* $OpenBSD: myproposal.h,v 1.44 2015/05/27 23:51:10 dtucker Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000 Markus Friedl. All rights reserved.
@@ -61,7 +61,7 @@
61 61
62#ifdef OPENSSL_HAVE_EVPGCM 62#ifdef OPENSSL_HAVE_EVPGCM
63# define AESGCM_CIPHER_MODES \ 63# define AESGCM_CIPHER_MODES \
64 "aes128-gcm@openssh.com,aes256-gcm@openssh.com," 64 ",aes128-gcm@openssh.com,aes256-gcm@openssh.com"
65#else 65#else
66# define AESGCM_CIPHER_MODES 66# define AESGCM_CIPHER_MODES
67#endif 67#endif
@@ -83,14 +83,17 @@
83# else 83# else
84# define KEX_CURVE25519_METHODS "" 84# define KEX_CURVE25519_METHODS ""
85# endif 85# endif
86#define KEX_SERVER_KEX \ 86#define KEX_COMMON_KEX \
87 KEX_CURVE25519_METHODS \ 87 KEX_CURVE25519_METHODS \
88 KEX_ECDH_METHODS \ 88 KEX_ECDH_METHODS \
89 KEX_SHA256_METHODS \ 89 KEX_SHA256_METHODS
90 "diffie-hellman-group14-sha1"
91 90
92#define KEX_CLIENT_KEX KEX_SERVER_KEX "," \ 91#define KEX_SERVER_KEX KEX_COMMON_KEX \
92 "diffie-hellman-group14-sha1" \
93
94#define KEX_CLIENT_KEX KEX_COMMON_KEX \
93 "diffie-hellman-group-exchange-sha1," \ 95 "diffie-hellman-group-exchange-sha1," \
96 "diffie-hellman-group14-sha1," \
94 "diffie-hellman-group1-sha1" 97 "diffie-hellman-group1-sha1"
95 98
96#define KEX_DEFAULT_PK_ALG \ 99#define KEX_DEFAULT_PK_ALG \
@@ -108,9 +111,9 @@
108/* the actual algorithms */ 111/* the actual algorithms */
109 112
110#define KEX_SERVER_ENCRYPT \ 113#define KEX_SERVER_ENCRYPT \
111 "aes128-ctr,aes192-ctr,aes256-ctr," \ 114 "chacha20-poly1305@openssh.com," \
112 AESGCM_CIPHER_MODES \ 115 "aes128-ctr,aes192-ctr,aes256-ctr" \
113 "chacha20-poly1305@openssh.com" 116 AESGCM_CIPHER_MODES
114 117
115#define KEX_CLIENT_ENCRYPT KEX_SERVER_ENCRYPT "," \ 118#define KEX_CLIENT_ENCRYPT KEX_SERVER_ENCRYPT "," \
116 "arcfour256,arcfour128," \ 119 "arcfour256,arcfour128," \
@@ -148,8 +151,8 @@
148 "ssh-ed25519-cert-v01@openssh.com," \ 151 "ssh-ed25519-cert-v01@openssh.com," \
149 "ssh-ed25519" 152 "ssh-ed25519"
150#define KEX_SERVER_ENCRYPT \ 153#define KEX_SERVER_ENCRYPT \
151 "aes128-ctr,aes192-ctr,aes256-ctr," \ 154 "chacha20-poly1305@openssh.com," \
152 "chacha20-poly1305@openssh.com" 155 "aes128-ctr,aes192-ctr,aes256-ctr"
153#define KEX_SERVER_MAC \ 156#define KEX_SERVER_MAC \
154 "umac-64-etm@openssh.com," \ 157 "umac-64-etm@openssh.com," \
155 "umac-128-etm@openssh.com," \ 158 "umac-128-etm@openssh.com," \
diff --git a/openbsd-compat/bcrypt_pbkdf.c b/openbsd-compat/bcrypt_pbkdf.c
index 16912575a..0a07f9a0f 100644
--- a/openbsd-compat/bcrypt_pbkdf.c
+++ b/openbsd-compat/bcrypt_pbkdf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bcrypt_pbkdf.c,v 1.9 2014/07/13 21:21:25 tedu Exp $ */ 1/* $OpenBSD: bcrypt_pbkdf.c,v 1.13 2015/01/12 03:20:04 tedu Exp $ */
2/* 2/*
3 * Copyright (c) 2013 Ted Unangst <tedu@openbsd.org> 3 * Copyright (c) 2013 Ted Unangst <tedu@openbsd.org>
4 * 4 *
@@ -37,6 +37,8 @@
37#endif 37#endif
38#define SHA512_DIGEST_LENGTH crypto_hash_sha512_BYTES 38#define SHA512_DIGEST_LENGTH crypto_hash_sha512_BYTES
39 39
40#define MINIMUM(a,b) (((a) < (b)) ? (a) : (b))
41
40/* 42/*
41 * pkcs #5 pbkdf2 implementation using the "bcrypt" hash 43 * pkcs #5 pbkdf2 implementation using the "bcrypt" hash
42 * 44 *
@@ -61,8 +63,8 @@
61 * wise caller could do; we just do it for you. 63 * wise caller could do; we just do it for you.
62 */ 64 */
63 65
64#define BCRYPT_BLOCKS 8 66#define BCRYPT_WORDS 8
65#define BCRYPT_HASHSIZE (BCRYPT_BLOCKS * 4) 67#define BCRYPT_HASHSIZE (BCRYPT_WORDS * 4)
66 68
67static void 69static void
68bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out) 70bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
@@ -70,7 +72,7 @@ bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
70 blf_ctx state; 72 blf_ctx state;
71 u_int8_t ciphertext[BCRYPT_HASHSIZE] = 73 u_int8_t ciphertext[BCRYPT_HASHSIZE] =
72 "OxychromaticBlowfishSwatDynamite"; 74 "OxychromaticBlowfishSwatDynamite";
73 uint32_t cdata[BCRYPT_BLOCKS]; 75 uint32_t cdata[BCRYPT_WORDS];
74 int i; 76 int i;
75 uint16_t j; 77 uint16_t j;
76 size_t shalen = SHA512_DIGEST_LENGTH; 78 size_t shalen = SHA512_DIGEST_LENGTH;
@@ -85,14 +87,14 @@ bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out)
85 87
86 /* encryption */ 88 /* encryption */
87 j = 0; 89 j = 0;
88 for (i = 0; i < BCRYPT_BLOCKS; i++) 90 for (i = 0; i < BCRYPT_WORDS; i++)
89 cdata[i] = Blowfish_stream2word(ciphertext, sizeof(ciphertext), 91 cdata[i] = Blowfish_stream2word(ciphertext, sizeof(ciphertext),
90 &j); 92 &j);
91 for (i = 0; i < 64; i++) 93 for (i = 0; i < 64; i++)
92 blf_enc(&state, cdata, sizeof(cdata) / sizeof(uint64_t)); 94 blf_enc(&state, cdata, sizeof(cdata) / sizeof(uint64_t));
93 95
94 /* copy out */ 96 /* copy out */
95 for (i = 0; i < BCRYPT_BLOCKS; i++) { 97 for (i = 0; i < BCRYPT_WORDS; i++) {
96 out[4 * i + 3] = (cdata[i] >> 24) & 0xff; 98 out[4 * i + 3] = (cdata[i] >> 24) & 0xff;
97 out[4 * i + 2] = (cdata[i] >> 16) & 0xff; 99 out[4 * i + 2] = (cdata[i] >> 16) & 0xff;
98 out[4 * i + 1] = (cdata[i] >> 8) & 0xff; 100 out[4 * i + 1] = (cdata[i] >> 8) & 0xff;
@@ -156,9 +158,9 @@ bcrypt_pbkdf(const char *pass, size_t passlen, const u_int8_t *salt, size_t salt
156 } 158 }
157 159
158 /* 160 /*
159 * pbkdf2 deviation: ouput the key material non-linearly. 161 * pbkdf2 deviation: output the key material non-linearly.
160 */ 162 */
161 amt = MIN(amt, keylen); 163 amt = MINIMUM(amt, keylen);
162 for (i = 0; i < amt; i++) { 164 for (i = 0; i < amt; i++) {
163 size_t dest = i * stride + (count - 1); 165 size_t dest = i * stride + (count - 1);
164 if (dest >= origkeylen) 166 if (dest >= origkeylen)
diff --git a/openbsd-compat/blowfish.c b/openbsd-compat/blowfish.c
index 6c419549e..e10f7e7d9 100644
--- a/openbsd-compat/blowfish.c
+++ b/openbsd-compat/blowfish.c
@@ -50,7 +50,9 @@
50#endif 50#endif
51 51
52#include <sys/types.h> 52#include <sys/types.h>
53#ifdef HAVE_BLF_H
53#include <blf.h> 54#include <blf.h>
55#endif
54 56
55#undef inline 57#undef inline
56#ifdef __GNUC__ 58#ifdef __GNUC__
diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c
index a2d82126d..8672ccf7f 100644
--- a/openbsd-compat/bsd-cygwin_util.c
+++ b/openbsd-compat/bsd-cygwin_util.c
@@ -68,7 +68,7 @@ cygwin_ssh_privsep_user()
68 if (cygwin_internal (CW_CYGNAME_FROM_WINNAME, "sshd", cyg_privsep_user, 68 if (cygwin_internal (CW_CYGNAME_FROM_WINNAME, "sshd", cyg_privsep_user,
69 sizeof cyg_privsep_user) != 0) 69 sizeof cyg_privsep_user) != 0)
70#endif 70#endif
71 strcpy (cyg_privsep_user, "sshd"); 71 strlcpy(cyg_privsep_user, "sshd", sizeof(cyg_privsep_user));
72 } 72 }
73 return cyg_privsep_user; 73 return cyg_privsep_user;
74} 74}
diff --git a/openbsd-compat/bsd-misc.h b/openbsd-compat/bsd-misc.h
index 65c18ec2f..ff347a24b 100644
--- a/openbsd-compat/bsd-misc.h
+++ b/openbsd-compat/bsd-misc.h
@@ -111,7 +111,7 @@ pid_t getpgid(pid_t);
111#endif 111#endif
112 112
113#ifndef HAVE_ENDGRENT 113#ifndef HAVE_ENDGRENT
114# define endgrent() {} 114# define endgrent() do { } while(0)
115#endif 115#endif
116 116
117#ifndef HAVE_KRB5_GET_ERROR_MESSAGE 117#ifndef HAVE_KRB5_GET_ERROR_MESSAGE
@@ -119,7 +119,7 @@ pid_t getpgid(pid_t);
119#endif 119#endif
120 120
121#ifndef HAVE_KRB5_FREE_ERROR_MESSAGE 121#ifndef HAVE_KRB5_FREE_ERROR_MESSAGE
122# define krb5_free_error_message(a,b) while(0) 122# define krb5_free_error_message(a,b) do { } while(0)
123#endif 123#endif
124 124
125#endif /* _BSD_MISC_H */ 125#endif /* _BSD_MISC_H */
diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h
index 1cffefe06..cb59ccd57 100644
--- a/openbsd-compat/openbsd-compat.h
+++ b/openbsd-compat/openbsd-compat.h
@@ -221,7 +221,7 @@ long long strtonum(const char *, long long, long long, const char **);
221 221
222/* multibyte character support */ 222/* multibyte character support */
223#ifndef HAVE_MBLEN 223#ifndef HAVE_MBLEN
224# define mblen(x, y) 1 224# define mblen(x, y) (1)
225#endif 225#endif
226 226
227#if !defined(HAVE_VASPRINTF) || !defined(HAVE_VSNPRINTF) 227#if !defined(HAVE_VASPRINTF) || !defined(HAVE_VSNPRINTF)
diff --git a/openbsd-compat/rmd160.c b/openbsd-compat/rmd160.c
index 2a14dd7b0..e915141a5 100644
--- a/openbsd-compat/rmd160.c
+++ b/openbsd-compat/rmd160.c
@@ -32,7 +32,9 @@
32#ifndef WITH_OPENSSL 32#ifndef WITH_OPENSSL
33 33
34#include <sys/types.h> 34#include <sys/types.h>
35#ifdef HAVE_ENDIAN_H
35#include <endian.h> 36#include <endian.h>
37#endif
36#include <string.h> 38#include <string.h>
37#include <rmd160.h> 39#include <rmd160.h>
38 40
diff --git a/packet.c b/packet.c
index b1219c85b..a7727ef65 100644
--- a/packet.c
+++ b/packet.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: packet.c,v 1.208 2015/02/13 18:57:00 markus Exp $ */ 1/* $OpenBSD: packet.c,v 1.212 2015/05/01 07:10:01 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -290,6 +290,7 @@ ssh_packet_set_connection(struct ssh *ssh, int fd_in, int fd_out)
290 (r = cipher_init(&state->receive_context, none, 290 (r = cipher_init(&state->receive_context, none,
291 (const u_char *)"", 0, NULL, 0, CIPHER_DECRYPT)) != 0) { 291 (const u_char *)"", 0, NULL, 0, CIPHER_DECRYPT)) != 0) {
292 error("%s: cipher_init failed: %s", __func__, ssh_err(r)); 292 error("%s: cipher_init failed: %s", __func__, ssh_err(r));
293 free(ssh);
293 return NULL; 294 return NULL;
294 } 295 }
295 state->newkeys[MODE_IN] = state->newkeys[MODE_OUT] = NULL; 296 state->newkeys[MODE_IN] = state->newkeys[MODE_OUT] = NULL;
@@ -791,7 +792,9 @@ ssh_packet_set_compress_hooks(struct ssh *ssh, void *ctx,
791void 792void
792ssh_packet_set_encryption_key(struct ssh *ssh, const u_char *key, u_int keylen, int number) 793ssh_packet_set_encryption_key(struct ssh *ssh, const u_char *key, u_int keylen, int number)
793{ 794{
794#ifdef WITH_SSH1 795#ifndef WITH_SSH1
796 fatal("no SSH protocol 1 support");
797#else /* WITH_SSH1 */
795 struct session_state *state = ssh->state; 798 struct session_state *state = ssh->state;
796 const struct sshcipher *cipher = cipher_by_number(number); 799 const struct sshcipher *cipher = cipher_by_number(number);
797 int r; 800 int r;
@@ -1279,7 +1282,7 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
1279 * been sent. 1282 * been sent.
1280 */ 1283 */
1281 if ((r = ssh_packet_write_wait(ssh)) != 0) 1284 if ((r = ssh_packet_write_wait(ssh)) != 0)
1282 return r; 1285 goto out;
1283 1286
1284 /* Stay in the loop until we have received a complete packet. */ 1287 /* Stay in the loop until we have received a complete packet. */
1285 for (;;) { 1288 for (;;) {
@@ -1337,15 +1340,20 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
1337 len = roaming_read(state->connection_in, buf, 1340 len = roaming_read(state->connection_in, buf,
1338 sizeof(buf), &cont); 1341 sizeof(buf), &cont);
1339 } while (len == 0 && cont); 1342 } while (len == 0 && cont);
1340 if (len == 0) 1343 if (len == 0) {
1341 return SSH_ERR_CONN_CLOSED; 1344 r = SSH_ERR_CONN_CLOSED;
1342 if (len < 0) 1345 goto out;
1343 return SSH_ERR_SYSTEM_ERROR; 1346 }
1347 if (len < 0) {
1348 r = SSH_ERR_SYSTEM_ERROR;
1349 goto out;
1350 }
1344 1351
1345 /* Append it to the buffer. */ 1352 /* Append it to the buffer. */
1346 if ((r = ssh_packet_process_incoming(ssh, buf, len)) != 0) 1353 if ((r = ssh_packet_process_incoming(ssh, buf, len)) != 0)
1347 return r; 1354 goto out;
1348 } 1355 }
1356 out:
1349 free(setp); 1357 free(setp);
1350 return r; 1358 return r;
1351} 1359}
@@ -1912,9 +1920,19 @@ sshpkt_fatal(struct ssh *ssh, const char *tag, int r)
1912 logit("Connection closed by %.200s", ssh_remote_ipaddr(ssh)); 1920 logit("Connection closed by %.200s", ssh_remote_ipaddr(ssh));
1913 cleanup_exit(255); 1921 cleanup_exit(255);
1914 case SSH_ERR_CONN_TIMEOUT: 1922 case SSH_ERR_CONN_TIMEOUT:
1915 logit("Connection to %.200s timed out while " 1923 logit("Connection to %.200s timed out", ssh_remote_ipaddr(ssh));
1916 "waiting to write", ssh_remote_ipaddr(ssh));
1917 cleanup_exit(255); 1924 cleanup_exit(255);
1925 case SSH_ERR_DISCONNECTED:
1926 logit("Disconnected from %.200s",
1927 ssh_remote_ipaddr(ssh));
1928 cleanup_exit(255);
1929 case SSH_ERR_SYSTEM_ERROR:
1930 if (errno == ECONNRESET) {
1931 logit("Connection reset by %.200s",
1932 ssh_remote_ipaddr(ssh));
1933 cleanup_exit(255);
1934 }
1935 /* FALLTHROUGH */
1918 default: 1936 default:
1919 fatal("%s%sConnection to %.200s: %s", 1937 fatal("%s%sConnection to %.200s: %s",
1920 tag != NULL ? tag : "", tag != NULL ? ": " : "", 1938 tag != NULL ? tag : "", tag != NULL ? ": " : "",
@@ -2727,13 +2745,14 @@ sshpkt_put_stringb(struct ssh *ssh, const struct sshbuf *v)
2727 return sshbuf_put_stringb(ssh->state->outgoing_packet, v); 2745 return sshbuf_put_stringb(ssh->state->outgoing_packet, v);
2728} 2746}
2729 2747
2730#if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) 2748#ifdef WITH_OPENSSL
2749#ifdef OPENSSL_HAS_ECC
2731int 2750int
2732sshpkt_put_ec(struct ssh *ssh, const EC_POINT *v, const EC_GROUP *g) 2751sshpkt_put_ec(struct ssh *ssh, const EC_POINT *v, const EC_GROUP *g)
2733{ 2752{
2734 return sshbuf_put_ec(ssh->state->outgoing_packet, v, g); 2753 return sshbuf_put_ec(ssh->state->outgoing_packet, v, g);
2735} 2754}
2736#endif /* WITH_OPENSSL && OPENSSL_HAS_ECC */ 2755#endif /* OPENSSL_HAS_ECC */
2737 2756
2738#ifdef WITH_SSH1 2757#ifdef WITH_SSH1
2739int 2758int
@@ -2743,7 +2762,6 @@ sshpkt_put_bignum1(struct ssh *ssh, const BIGNUM *v)
2743} 2762}
2744#endif /* WITH_SSH1 */ 2763#endif /* WITH_SSH1 */
2745 2764
2746#ifdef WITH_OPENSSL
2747int 2765int
2748sshpkt_put_bignum2(struct ssh *ssh, const BIGNUM *v) 2766sshpkt_put_bignum2(struct ssh *ssh, const BIGNUM *v)
2749{ 2767{
@@ -2795,13 +2813,14 @@ sshpkt_get_cstring(struct ssh *ssh, char **valp, size_t *lenp)
2795 return sshbuf_get_cstring(ssh->state->incoming_packet, valp, lenp); 2813 return sshbuf_get_cstring(ssh->state->incoming_packet, valp, lenp);
2796} 2814}
2797 2815
2798#if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) 2816#ifdef WITH_OPENSSL
2817#ifdef OPENSSL_HAS_ECC
2799int 2818int
2800sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g) 2819sshpkt_get_ec(struct ssh *ssh, EC_POINT *v, const EC_GROUP *g)
2801{ 2820{
2802 return sshbuf_get_ec(ssh->state->incoming_packet, v, g); 2821 return sshbuf_get_ec(ssh->state->incoming_packet, v, g);
2803} 2822}
2804#endif /* WITH_OPENSSL && OPENSSL_HAS_ECC */ 2823#endif /* OPENSSL_HAS_ECC */
2805 2824
2806#ifdef WITH_SSH1 2825#ifdef WITH_SSH1
2807int 2826int
@@ -2811,7 +2830,6 @@ sshpkt_get_bignum1(struct ssh *ssh, BIGNUM *v)
2811} 2830}
2812#endif /* WITH_SSH1 */ 2831#endif /* WITH_SSH1 */
2813 2832
2814#ifdef WITH_OPENSSL
2815int 2833int
2816sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v) 2834sshpkt_get_bignum2(struct ssh *ssh, BIGNUM *v)
2817{ 2835{
diff --git a/readconf.c b/readconf.c
index 42a2961fa..db7d0bbbf 100644
--- a/readconf.c
+++ b/readconf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: readconf.c,v 1.232 2015/02/16 22:13:32 djm Exp $ */ 1/* $OpenBSD: readconf.c,v 1.237 2015/06/26 05:13:20 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -295,7 +295,7 @@ add_local_forward(Options *options, const struct Forward *newfwd)
295 newfwd->listen_path == NULL) 295 newfwd->listen_path == NULL)
296 fatal("Privileged ports can only be forwarded by root."); 296 fatal("Privileged ports can only be forwarded by root.");
297#endif 297#endif
298 options->local_forwards = xrealloc(options->local_forwards, 298 options->local_forwards = xreallocarray(options->local_forwards,
299 options->num_local_forwards + 1, 299 options->num_local_forwards + 1,
300 sizeof(*options->local_forwards)); 300 sizeof(*options->local_forwards));
301 fwd = &options->local_forwards[options->num_local_forwards++]; 301 fwd = &options->local_forwards[options->num_local_forwards++];
@@ -318,7 +318,7 @@ add_remote_forward(Options *options, const struct Forward *newfwd)
318{ 318{
319 struct Forward *fwd; 319 struct Forward *fwd;
320 320
321 options->remote_forwards = xrealloc(options->remote_forwards, 321 options->remote_forwards = xreallocarray(options->remote_forwards,
322 options->num_remote_forwards + 1, 322 options->num_remote_forwards + 1,
323 sizeof(*options->remote_forwards)); 323 sizeof(*options->remote_forwards));
324 fwd = &options->remote_forwards[options->num_remote_forwards++]; 324 fwd = &options->remote_forwards[options->num_remote_forwards++];
@@ -492,7 +492,6 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw,
492 char *arg, *oattrib, *attrib, *cmd, *cp = *condition, *host, *criteria; 492 char *arg, *oattrib, *attrib, *cmd, *cp = *condition, *host, *criteria;
493 const char *ruser; 493 const char *ruser;
494 int r, port, this_result, result = 1, attributes = 0, negate; 494 int r, port, this_result, result = 1, attributes = 0, negate;
495 size_t len;
496 char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV]; 495 char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV];
497 496
498 /* 497 /*
@@ -545,25 +544,24 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw,
545 result = -1; 544 result = -1;
546 goto out; 545 goto out;
547 } 546 }
548 len = strlen(arg);
549 if (strcasecmp(attrib, "host") == 0) { 547 if (strcasecmp(attrib, "host") == 0) {
550 criteria = xstrdup(host); 548 criteria = xstrdup(host);
551 r = match_hostname(host, arg, len) == 1; 549 r = match_hostname(host, arg) == 1;
552 if (r == (negate ? 1 : 0)) 550 if (r == (negate ? 1 : 0))
553 this_result = result = 0; 551 this_result = result = 0;
554 } else if (strcasecmp(attrib, "originalhost") == 0) { 552 } else if (strcasecmp(attrib, "originalhost") == 0) {
555 criteria = xstrdup(original_host); 553 criteria = xstrdup(original_host);
556 r = match_hostname(original_host, arg, len) == 1; 554 r = match_hostname(original_host, arg) == 1;
557 if (r == (negate ? 1 : 0)) 555 if (r == (negate ? 1 : 0))
558 this_result = result = 0; 556 this_result = result = 0;
559 } else if (strcasecmp(attrib, "user") == 0) { 557 } else if (strcasecmp(attrib, "user") == 0) {
560 criteria = xstrdup(ruser); 558 criteria = xstrdup(ruser);
561 r = match_pattern_list(ruser, arg, len, 0) == 1; 559 r = match_pattern_list(ruser, arg, 0) == 1;
562 if (r == (negate ? 1 : 0)) 560 if (r == (negate ? 1 : 0))
563 this_result = result = 0; 561 this_result = result = 0;
564 } else if (strcasecmp(attrib, "localuser") == 0) { 562 } else if (strcasecmp(attrib, "localuser") == 0) {
565 criteria = xstrdup(pw->pw_name); 563 criteria = xstrdup(pw->pw_name);
566 r = match_pattern_list(pw->pw_name, arg, len, 0) == 1; 564 r = match_pattern_list(pw->pw_name, arg, 0) == 1;
567 if (r == (negate ? 1 : 0)) 565 if (r == (negate ? 1 : 0))
568 this_result = result = 0; 566 this_result = result = 0;
569 } else if (strcasecmp(attrib, "exec") == 0) { 567 } else if (strcasecmp(attrib, "exec") == 0) {
@@ -665,8 +663,8 @@ parse_token(const char *cp, const char *filename, int linenum,
665 for (i = 0; keywords[i].name; i++) 663 for (i = 0; keywords[i].name; i++)
666 if (strcmp(cp, keywords[i].name) == 0) 664 if (strcmp(cp, keywords[i].name) == 0)
667 return keywords[i].opcode; 665 return keywords[i].opcode;
668 if (ignored_unknown != NULL && match_pattern_list(cp, ignored_unknown, 666 if (ignored_unknown != NULL &&
669 strlen(ignored_unknown), 1) == 1) 667 match_pattern_list(cp, ignored_unknown, 1) == 1)
670 return oIgnoredUnknownOption; 668 return oIgnoredUnknownOption;
671 error("%s: line %d: Bad configuration option: %s", 669 error("%s: line %d: Bad configuration option: %s",
672 filename, linenum, cp); 670 filename, linenum, cp);
@@ -763,7 +761,9 @@ process_config_line(Options *options, struct passwd *pw, const char *host,
763 } 761 }
764 762
765 /* Strip trailing whitespace */ 763 /* Strip trailing whitespace */
766 for (len = strlen(line) - 1; len > 0; len--) { 764 if ((len = strlen(line)) == 0)
765 return 0;
766 for (len--; len > 0; len--) {
767 if (strchr(WHITESPACE, line[len]) == NULL) 767 if (strchr(WHITESPACE, line[len]) == NULL)
768 break; 768 break;
769 line[len] = '\0'; 769 line[len] = '\0';
@@ -1236,13 +1236,13 @@ parse_int:
1236 arg = strdelim(&s); 1236 arg = strdelim(&s);
1237 if (!arg || *arg == '\0') 1237 if (!arg || *arg == '\0')
1238 fatal("%.200s line %d: Missing argument.", filename, linenum); 1238 fatal("%.200s line %d: Missing argument.", filename, linenum);
1239 if (arg[0] == '^' && arg[2] == 0 && 1239 if (strcmp(arg, "none") == 0)
1240 value = SSH_ESCAPECHAR_NONE;
1241 else if (arg[1] == '\0')
1242 value = (u_char) arg[0];
1243 else if (arg[0] == '^' && arg[2] == 0 &&
1240 (u_char) arg[1] >= 64 && (u_char) arg[1] < 128) 1244 (u_char) arg[1] >= 64 && (u_char) arg[1] < 128)
1241 value = (u_char) arg[1] & 31; 1245 value = (u_char) arg[1] & 31;
1242 else if (strlen(arg) == 1)
1243 value = (u_char) arg[0];
1244 else if (strcmp(arg, "none") == 0)
1245 value = SSH_ESCAPECHAR_NONE;
1246 else { 1246 else {
1247 fatal("%.200s line %d: Bad escape character.", 1247 fatal("%.200s line %d: Bad escape character.",
1248 filename, linenum); 1248 filename, linenum);
@@ -1927,7 +1927,8 @@ parse_fwd_field(char **p, struct fwdarg *fwd)
1927 switch (*cp) { 1927 switch (*cp) {
1928 case '\\': 1928 case '\\':
1929 memmove(cp, cp + 1, strlen(cp + 1) + 1); 1929 memmove(cp, cp + 1, strlen(cp + 1) + 1);
1930 cp++; 1930 if (*cp == '\0')
1931 return -1;
1931 break; 1932 break;
1932 case '/': 1933 case '/':
1933 ispath = 1; 1934 ispath = 1;
diff --git a/regress/Makefile b/regress/Makefile
index 99a7d60f5..cba83f4d6 100644
--- a/regress/Makefile
+++ b/regress/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.78 2015/01/26 06:12:18 djm Exp $ 1# $OpenBSD: Makefile,v 1.81 2015/05/21 06:44:25 djm Exp $
2 2
3REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec 3REGRESS_TARGETS= unit t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t-exec
4tests: prep $(REGRESS_TARGETS) 4tests: prep $(REGRESS_TARGETS)
@@ -54,6 +54,7 @@ LTESTS= connect \
54 multiplex \ 54 multiplex \
55 reexec \ 55 reexec \
56 brokenkeys \ 56 brokenkeys \
57 cfgparse \
57 cfgmatch \ 58 cfgmatch \
58 addrmatch \ 59 addrmatch \
59 localcommand \ 60 localcommand \
@@ -72,7 +73,8 @@ LTESTS= connect \
72 limit-keytype \ 73 limit-keytype \
73 hostkey-agent \ 74 hostkey-agent \
74 keygen-knownhosts \ 75 keygen-knownhosts \
75 hostkey-rotate 76 hostkey-rotate \
77 principals-command
76 78
77 79
78# dhgex \ 80# dhgex \
@@ -180,10 +182,10 @@ t11:
180 ${TEST_SSH_SSHKEYGEN} -E sha256 -lf ${.CURDIR}/rsa_openssh.pub |\ 182 ${TEST_SSH_SSHKEYGEN} -E sha256 -lf ${.CURDIR}/rsa_openssh.pub |\
181 awk '{print $$2}' | diff - ${.CURDIR}/t11.ok 183 awk '{print $$2}' | diff - ${.CURDIR}/t11.ok
182 184
183t12.out: 185$(OBJ)/t12.out:
184 ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -C 'test-comment-1234' -f $(OBJ)/$@ 186 ${TEST_SSH_SSHKEYGEN} -q -t ed25519 -N '' -C 'test-comment-1234' -f $@
185 187
186t12: t12.out 188t12: $(OBJ)/t12.out
187 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t12.out.pub | grep test-comment-1234 >/dev/null 189 ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t12.out.pub | grep test-comment-1234 >/dev/null
188 190
189t-exec: ${LTESTS:=.sh} 191t-exec: ${LTESTS:=.sh}
diff --git a/regress/README.regress b/regress/README.regress
index 82e4cc751..9b99bdacb 100644
--- a/regress/README.regress
+++ b/regress/README.regress
@@ -31,7 +31,7 @@ TEST_SHELL: shell used for running the test scripts.
31TEST_SSH_PORT: TCP port to be used for the listening tests. 31TEST_SSH_PORT: TCP port to be used for the listening tests.
32TEST_SSH_SSH_CONFOPTS: Configuration directives to be added to ssh_config 32TEST_SSH_SSH_CONFOPTS: Configuration directives to be added to ssh_config
33 before running each test. 33 before running each test.
34TEST_SSH_SSHD_CONFOTPS: Configuration directives to be added to sshd_config 34TEST_SSH_SSHD_CONFOPTS: Configuration directives to be added to sshd_config
35 before running each test. 35 before running each test.
36 36
37 37
diff --git a/regress/cfgparse.sh b/regress/cfgparse.sh
new file mode 100644
index 000000000..736f38976
--- /dev/null
+++ b/regress/cfgparse.sh
@@ -0,0 +1,75 @@
1# $OpenBSD: cfgparse.sh,v 1.5 2015/05/29 03:05:13 djm Exp $
2# Placed in the Public Domain.
3
4tid="config parse"
5
6# This is a reasonable proxy for IPv6 support.
7if ! config_defined HAVE_STRUCT_IN6_ADDR ; then
8 SKIP_IPV6=yes
9fi
10
11# We need to use the keys generated for the regression test because sshd -T
12# will fail if we're not running with SUDO (no permissions for real keys) or
13# if we are # running tests on a system that has never had sshd installed
14# (keys won't exist).
15
16grep "HostKey " $OBJ/sshd_config > $OBJ/sshd_config_minimal
17SSHD_KEYS="`cat $OBJ/sshd_config_minimal`"
18
19verbose "reparse minimal config"
20($SUDO ${SSHD} -T -f $OBJ/sshd_config_minimal >$OBJ/sshd_config.1 &&
21 $SUDO ${SSHD} -T -f $OBJ/sshd_config.1 >$OBJ/sshd_config.2 &&
22 diff $OBJ/sshd_config.1 $OBJ/sshd_config.2) || fail "reparse minimal config"
23
24verbose "reparse regress config"
25($SUDO ${SSHD} -T -f $OBJ/sshd_config >$OBJ/sshd_config.1 &&
26 $SUDO ${SSHD} -T -f $OBJ/sshd_config.1 >$OBJ/sshd_config.2 &&
27 diff $OBJ/sshd_config.1 $OBJ/sshd_config.2) || fail "reparse regress config"
28
29verbose "listenaddress order"
30# expected output
31cat > $OBJ/sshd_config.0 <<EOD
32listenaddress 1.2.3.4:1234
33listenaddress 1.2.3.4:5678
34EOD
35[ X${SKIP_IPV6} = Xyes ] || cat >> $OBJ/sshd_config.0 <<EOD
36listenaddress [::1]:1234
37listenaddress [::1]:5678
38EOD
39
40# test input sets. should all result in the output above.
41# test 1: addressfamily and port first
42cat > $OBJ/sshd_config.1 <<EOD
43${SSHD_KEYS}
44addressfamily any
45port 1234
46port 5678
47listenaddress 1.2.3.4
48EOD
49[ X${SKIP_IPV6} = Xyes ] || cat >> $OBJ/sshd_config.1 <<EOD
50listenaddress ::1
51EOD
52
53($SUDO ${SSHD} -T -f $OBJ/sshd_config.1 | \
54 grep 'listenaddress ' >$OBJ/sshd_config.2 &&
55 diff $OBJ/sshd_config.0 $OBJ/sshd_config.2) || \
56 fail "listenaddress order 1"
57# test 2: listenaddress first
58cat > $OBJ/sshd_config.1 <<EOD
59${SSHD_KEYS}
60listenaddress 1.2.3.4
61port 1234
62port 5678
63addressfamily any
64EOD
65[ X${SKIP_IPV6} = Xyes ] || cat >> $OBJ/sshd_config.1 <<EOD
66listenaddress ::1
67EOD
68
69($SUDO ${SSHD} -T -f $OBJ/sshd_config.1 | \
70 grep 'listenaddress ' >$OBJ/sshd_config.2 &&
71 diff $OBJ/sshd_config.0 $OBJ/sshd_config.2) || \
72 fail "listenaddress order 2"
73
74# cleanup
75rm -f $OBJ/sshd_config.[012]
diff --git a/regress/cipher-speed.sh b/regress/cipher-speed.sh
index ad2f9b90b..575dc2341 100644
--- a/regress/cipher-speed.sh
+++ b/regress/cipher-speed.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: cipher-speed.sh,v 1.12 2015/03/03 22:35:19 markus Exp $ 1# $OpenBSD: cipher-speed.sh,v 1.13 2015/03/24 20:22:17 markus Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="cipher speed" 4tid="cipher speed"
@@ -25,7 +25,7 @@ for c in `${SSH} -Q cipher`; do n=0; for m in `${SSH} -Q mac`; do
25 fi 25 fi
26 done 26 done
27 # No point trying all MACs for AEAD ciphers since they are ignored. 27 # No point trying all MACs for AEAD ciphers since they are ignored.
28 if ssh -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then 28 if ${SSH} -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then
29 break 29 break
30 fi 30 fi
31 n=`expr $n + 1` 31 n=`expr $n + 1`
diff --git a/regress/hostkey-rotate.sh b/regress/hostkey-rotate.sh
index b5d542d12..cde6008f4 100644
--- a/regress/hostkey-rotate.sh
+++ b/regress/hostkey-rotate.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: hostkey-rotate.sh,v 1.2 2015/03/03 17:53:40 djm Exp $ 1# $OpenBSD: hostkey-rotate.sh,v 1.3 2015/03/24 20:22:17 markus Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="hostkey rotate" 4tid="hostkey rotate"
@@ -15,7 +15,7 @@ rm $OBJ/known_hosts
15trace "prepare hostkeys" 15trace "prepare hostkeys"
16nkeys=0 16nkeys=0
17all_algs="" 17all_algs=""
18for k in `ssh -Q key-plain` ; do 18for k in `${SSH} -Q key-plain` ; do
19 ${SSHKEYGEN} -qt $k -f $OBJ/hkr.$k -N '' || fatal "ssh-keygen $k" 19 ${SSHKEYGEN} -qt $k -f $OBJ/hkr.$k -N '' || fatal "ssh-keygen $k"
20 echo "Hostkey $OBJ/hkr.${k}" >> $OBJ/sshd_proxy.orig 20 echo "Hostkey $OBJ/hkr.${k}" >> $OBJ/sshd_proxy.orig
21 nkeys=`expr $nkeys + 1` 21 nkeys=`expr $nkeys + 1`
@@ -62,7 +62,7 @@ expect_nkeys $nkeys "learn hostkeys"
62check_key_present ssh-rsa || fail "didn't learn keys" 62check_key_present ssh-rsa || fail "didn't learn keys"
63 63
64# Check each key type 64# Check each key type
65for k in `ssh -Q key-plain` ; do 65for k in `${SSH} -Q key-plain` ; do
66 verbose "learn additional hostkeys, type=$k" 66 verbose "learn additional hostkeys, type=$k"
67 dossh -oStrictHostKeyChecking=yes -oHostKeyAlgorithms=$k,$all_algs 67 dossh -oStrictHostKeyChecking=yes -oHostKeyAlgorithms=$k,$all_algs
68 expect_nkeys $nkeys "learn hostkeys $k" 68 expect_nkeys $nkeys "learn hostkeys $k"
@@ -109,7 +109,7 @@ dossh -oStrictHostKeyChecking=yes -oHostKeyAlgorithms=ssh-rsa
109expect_nkeys 1 "learn hostkeys" 109expect_nkeys 1 "learn hostkeys"
110check_key_present ssh-rsa || fail "didn't learn changed key" 110check_key_present ssh-rsa || fail "didn't learn changed key"
111 111
112# $OpenBSD: hostkey-rotate.sh,v 1.2 2015/03/03 17:53:40 djm Exp $ 112# $OpenBSD: hostkey-rotate.sh,v 1.3 2015/03/24 20:22:17 markus Exp $
113# Placed in the Public Domain. 113# Placed in the Public Domain.
114 114
115tid="hostkey rotate" 115tid="hostkey rotate"
diff --git a/regress/integrity.sh b/regress/integrity.sh
index 2ff8b3f17..1d4976771 100644
--- a/regress/integrity.sh
+++ b/regress/integrity.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: integrity.sh,v 1.15 2015/01/19 20:42:31 markus Exp $ 1# $OpenBSD: integrity.sh,v 1.16 2015/03/24 20:22:17 markus Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="integrity" 4tid="integrity"
@@ -38,7 +38,7 @@ for m in $macs; do
38 cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy 38 cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy
39 # modify output from sshd at offset $off 39 # modify output from sshd at offset $off
40 pxy="proxycommand=$cmd | $OBJ/modpipe -wm xor:$off:1" 40 pxy="proxycommand=$cmd | $OBJ/modpipe -wm xor:$off:1"
41 if ssh -Q cipher-auth | grep "^${m}\$" >/dev/null 2>&1 ; then 41 if ${SSH} -Q cipher-auth | grep "^${m}\$" >/dev/null 2>&1 ; then
42 echo "Ciphers=$m" >> $OBJ/sshd_proxy 42 echo "Ciphers=$m" >> $OBJ/sshd_proxy
43 macopt="-c $m" 43 macopt="-c $m"
44 else 44 else
diff --git a/regress/kextype.sh b/regress/kextype.sh
index 6f952f4e4..e27189904 100644
--- a/regress/kextype.sh
+++ b/regress/kextype.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: kextype.sh,v 1.5 2014/04/21 22:15:37 djm Exp $ 1# $OpenBSD: kextype.sh,v 1.6 2015/03/24 20:19:15 markus Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="login with different key exchange algorithms" 4tid="login with different key exchange algorithms"
@@ -8,7 +8,7 @@ cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak
8cp $OBJ/ssh_proxy $OBJ/ssh_proxy_bak 8cp $OBJ/ssh_proxy $OBJ/ssh_proxy_bak
9 9
10# Make server accept all key exchanges. 10# Make server accept all key exchanges.
11ALLKEX=`ssh -Q kex` 11ALLKEX=`${SSH} -Q kex`
12KEXOPT=`echo $ALLKEX | tr ' ' ,` 12KEXOPT=`echo $ALLKEX | tr ' ' ,`
13echo "KexAlgorithms=$KEXOPT" >> $OBJ/sshd_proxy 13echo "KexAlgorithms=$KEXOPT" >> $OBJ/sshd_proxy
14 14
diff --git a/regress/keys-command.sh b/regress/keys-command.sh
index b595a434f..700273b66 100644
--- a/regress/keys-command.sh
+++ b/regress/keys-command.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: keys-command.sh,v 1.2 2012/12/06 06:06:54 dtucker Exp $ 1# $OpenBSD: keys-command.sh,v 1.3 2015/05/21 06:40:02 djm Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="authorized keys from command" 4tid="authorized keys from command"
@@ -9,26 +9,63 @@ if test -z "$SUDO" ; then
9 exit 0 9 exit 0
10fi 10fi
11 11
12rm -f $OBJ/keys-command-args
13
14touch $OBJ/keys-command-args
15chmod a+rw $OBJ/keys-command-args
16
17expected_key_text=`awk '{ print $2 }' < $OBJ/rsa.pub`
18expected_key_fp=`$SSHKEYGEN -lf $OBJ/rsa.pub | awk '{ print $2 }'`
19
12# Establish a AuthorizedKeysCommand in /var/run where it will have 20# Establish a AuthorizedKeysCommand in /var/run where it will have
13# acceptable directory permissions. 21# acceptable directory permissions.
14KEY_COMMAND="/var/run/keycommand_${LOGNAME}" 22KEY_COMMAND="/var/run/keycommand_${LOGNAME}"
15cat << _EOF | $SUDO sh -c "cat > '$KEY_COMMAND'" 23cat << _EOF | $SUDO sh -c "rm -f '$KEY_COMMAND' ; cat > '$KEY_COMMAND'"
16#!/bin/sh 24#!/bin/sh
25echo args: "\$@" >> $OBJ/keys-command-args
26echo "$PATH" | grep -q mekmitasdigoat && exit 7
17test "x\$1" != "x${LOGNAME}" && exit 1 27test "x\$1" != "x${LOGNAME}" && exit 1
28if test $# -eq 6 ; then
29 test "x\$2" != "xblah" && exit 2
30 test "x\$3" != "x${expected_key_text}" && exit 3
31 test "x\$4" != "xssh-rsa" && exit 4
32 test "x\$5" != "x${expected_key_fp}" && exit 5
33 test "x\$6" != "xblah" && exit 6
34fi
18exec cat "$OBJ/authorized_keys_${LOGNAME}" 35exec cat "$OBJ/authorized_keys_${LOGNAME}"
19_EOF 36_EOF
20$SUDO chmod 0755 "$KEY_COMMAND" 37$SUDO chmod 0755 "$KEY_COMMAND"
21 38
22cp $OBJ/sshd_proxy $OBJ/sshd_proxy.bak
23(
24 grep -vi AuthorizedKeysFile $OBJ/sshd_proxy.bak
25 echo AuthorizedKeysFile none
26 echo AuthorizedKeysCommand $KEY_COMMAND
27 echo AuthorizedKeysCommandUser ${LOGNAME}
28) > $OBJ/sshd_proxy
29
30if [ -x $KEY_COMMAND ]; then 39if [ -x $KEY_COMMAND ]; then
31 ${SSH} -F $OBJ/ssh_proxy somehost true 40 cp $OBJ/sshd_proxy $OBJ/sshd_proxy.bak
41
42 verbose "AuthorizedKeysCommand with arguments"
43 (
44 grep -vi AuthorizedKeysFile $OBJ/sshd_proxy.bak
45 echo AuthorizedKeysFile none
46 echo AuthorizedKeysCommand $KEY_COMMAND %u blah %k %t %f blah
47 echo AuthorizedKeysCommandUser ${LOGNAME}
48 ) > $OBJ/sshd_proxy
49
50 # Ensure that $PATH is sanitised in sshd
51 env PATH=$PATH:/sbin/mekmitasdigoat \
52 ${SSH} -F $OBJ/ssh_proxy somehost true
53 if [ $? -ne 0 ]; then
54 fail "connect failed"
55 fi
56
57 verbose "AuthorizedKeysCommand without arguments"
58 # Check legacy behavior of no-args resulting in username being passed.
59 (
60 grep -vi AuthorizedKeysFile $OBJ/sshd_proxy.bak
61 echo AuthorizedKeysFile none
62 echo AuthorizedKeysCommand $KEY_COMMAND
63 echo AuthorizedKeysCommandUser ${LOGNAME}
64 ) > $OBJ/sshd_proxy
65
66 # Ensure that $PATH is sanitised in sshd
67 env PATH=$PATH:/sbin/mekmitasdigoat \
68 ${SSH} -F $OBJ/ssh_proxy somehost true
32 if [ $? -ne 0 ]; then 69 if [ $? -ne 0 ]; then
33 fail "connect failed" 70 fail "connect failed"
34 fi 71 fi
diff --git a/regress/netcat.c b/regress/netcat.c
index 1a9fc8730..6234ba019 100644
--- a/regress/netcat.c
+++ b/regress/netcat.c
@@ -42,7 +42,6 @@
42#include <netinet/in.h> 42#include <netinet/in.h>
43#include <netinet/tcp.h> 43#include <netinet/tcp.h>
44#include <netinet/ip.h> 44#include <netinet/ip.h>
45#include <arpa/telnet.h>
46 45
47#include <errno.h> 46#include <errno.h>
48#include <netdb.h> 47#include <netdb.h>
@@ -63,6 +62,13 @@
63# endif 62# endif
64#endif 63#endif
65 64
65/* Telnet options from arpa/telnet.h */
66#define IAC 255
67#define DONT 254
68#define DO 253
69#define WONT 252
70#define WILL 251
71
66#ifndef SUN_LEN 72#ifndef SUN_LEN
67#define SUN_LEN(su) \ 73#define SUN_LEN(su) \
68 (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path)) 74 (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))
diff --git a/regress/principals-command.sh b/regress/principals-command.sh
new file mode 100644
index 000000000..90064373d
--- /dev/null
+++ b/regress/principals-command.sh
@@ -0,0 +1,141 @@
1# $OpenBSD: principals-command.sh,v 1.1 2015/05/21 06:44:25 djm Exp $
2# Placed in the Public Domain.
3
4tid="authorized principals command"
5
6rm -f $OBJ/user_ca_key* $OBJ/cert_user_key*
7cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak
8
9if test -z "$SUDO" ; then
10 echo "skipped (SUDO not set)"
11 echo "need SUDO to create file in /var/run, test won't work without"
12 exit 0
13fi
14
15# Establish a AuthorizedPrincipalsCommand in /var/run where it will have
16# acceptable directory permissions.
17PRINCIPALS_COMMAND="/var/run/principals_command_${LOGNAME}"
18cat << _EOF | $SUDO sh -c "cat > '$PRINCIPALS_COMMAND'"
19#!/bin/sh
20test "x\$1" != "x${LOGNAME}" && exit 1
21test -f "$OBJ/authorized_principals_${LOGNAME}" &&
22 exec cat "$OBJ/authorized_principals_${LOGNAME}"
23_EOF
24test $? -eq 0 || fatal "couldn't prepare principals command"
25$SUDO chmod 0755 "$PRINCIPALS_COMMAND"
26
27# Create a CA key and a user certificate.
28${SSHKEYGEN} -q -N '' -t ed25519 -f $OBJ/user_ca_key || \
29 fatal "ssh-keygen of user_ca_key failed"
30${SSHKEYGEN} -q -N '' -t ed25519 -f $OBJ/cert_user_key || \
31 fatal "ssh-keygen of cert_user_key failed"
32${SSHKEYGEN} -q -s $OBJ/user_ca_key -I "regress user key for $USER" \
33 -z $$ -n ${USER},mekmitasdigoat $OBJ/cert_user_key || \
34 fatal "couldn't sign cert_user_key"
35
36# Test explicitly-specified principals
37for privsep in yes no ; do
38 _prefix="privsep $privsep"
39
40 # Setup for AuthorizedPrincipalsCommand
41 rm -f $OBJ/authorized_keys_$USER
42 (
43 cat $OBJ/sshd_proxy_bak
44 echo "UsePrivilegeSeparation $privsep"
45 echo "AuthorizedKeysFile none"
46 echo "AuthorizedPrincipalsCommand $PRINCIPALS_COMMAND %u"
47 echo "AuthorizedPrincipalsCommandUser ${LOGNAME}"
48 echo "TrustedUserCAKeys $OBJ/user_ca_key.pub"
49 ) > $OBJ/sshd_proxy
50
51 # XXX test missing command
52 # XXX test failing command
53
54 # Empty authorized_principals
55 verbose "$tid: ${_prefix} empty authorized_principals"
56 echo > $OBJ/authorized_principals_$USER
57 ${SSH} -2i $OBJ/cert_user_key \
58 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
59 if [ $? -eq 0 ]; then
60 fail "ssh cert connect succeeded unexpectedly"
61 fi
62
63 # Wrong authorized_principals
64 verbose "$tid: ${_prefix} wrong authorized_principals"
65 echo gregorsamsa > $OBJ/authorized_principals_$USER
66 ${SSH} -2i $OBJ/cert_user_key \
67 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
68 if [ $? -eq 0 ]; then
69 fail "ssh cert connect succeeded unexpectedly"
70 fi
71
72 # Correct authorized_principals
73 verbose "$tid: ${_prefix} correct authorized_principals"
74 echo mekmitasdigoat > $OBJ/authorized_principals_$USER
75 ${SSH} -2i $OBJ/cert_user_key \
76 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
77 if [ $? -ne 0 ]; then
78 fail "ssh cert connect failed"
79 fi
80
81 # authorized_principals with bad key option
82 verbose "$tid: ${_prefix} authorized_principals bad key opt"
83 echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER
84 ${SSH} -2i $OBJ/cert_user_key \
85 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
86 if [ $? -eq 0 ]; then
87 fail "ssh cert connect succeeded unexpectedly"
88 fi
89
90 # authorized_principals with command=false
91 verbose "$tid: ${_prefix} authorized_principals command=false"
92 echo 'command="false" mekmitasdigoat' > \
93 $OBJ/authorized_principals_$USER
94 ${SSH} -2i $OBJ/cert_user_key \
95 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
96 if [ $? -eq 0 ]; then
97 fail "ssh cert connect succeeded unexpectedly"
98 fi
99
100
101 # authorized_principals with command=true
102 verbose "$tid: ${_prefix} authorized_principals command=true"
103 echo 'command="true" mekmitasdigoat' > \
104 $OBJ/authorized_principals_$USER
105 ${SSH} -2i $OBJ/cert_user_key \
106 -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1
107 if [ $? -ne 0 ]; then
108 fail "ssh cert connect failed"
109 fi
110
111 # Setup for principals= key option
112 rm -f $OBJ/authorized_principals_$USER
113 (
114 cat $OBJ/sshd_proxy_bak
115 echo "UsePrivilegeSeparation $privsep"
116 ) > $OBJ/sshd_proxy
117
118 # Wrong principals list
119 verbose "$tid: ${_prefix} wrong principals key option"
120 (
121 printf 'cert-authority,principals="gregorsamsa" '
122 cat $OBJ/user_ca_key.pub
123 ) > $OBJ/authorized_keys_$USER
124 ${SSH} -2i $OBJ/cert_user_key \
125 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
126 if [ $? -eq 0 ]; then
127 fail "ssh cert connect succeeded unexpectedly"
128 fi
129
130 # Correct principals list
131 verbose "$tid: ${_prefix} correct principals key option"
132 (
133 printf 'cert-authority,principals="mekmitasdigoat" '
134 cat $OBJ/user_ca_key.pub
135 ) > $OBJ/authorized_keys_$USER
136 ${SSH} -2i $OBJ/cert_user_key \
137 -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1
138 if [ $? -ne 0 ]; then
139 fail "ssh cert connect failed"
140 fi
141done
diff --git a/regress/ssh-com.sh b/regress/ssh-com.sh
index 6c5cfe888..4371d5279 100644
--- a/regress/ssh-com.sh
+++ b/regress/ssh-com.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: ssh-com.sh,v 1.8 2013/05/17 00:37:40 dtucker Exp $ 1# $OpenBSD: ssh-com.sh,v 1.9 2015/05/08 07:29:00 djm Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="connect to ssh.com server" 4tid="connect to ssh.com server"
@@ -44,14 +44,14 @@ cat << EOF > $OBJ/sshd2_config
44 HostKeyFile ${SRC}/dsa_ssh2.prv 44 HostKeyFile ${SRC}/dsa_ssh2.prv
45 PublicHostKeyFile ${SRC}/dsa_ssh2.pub 45 PublicHostKeyFile ${SRC}/dsa_ssh2.pub
46 RandomSeedFile ${OBJ}/random_seed 46 RandomSeedFile ${OBJ}/random_seed
47 MaxConnections 0 47 MaxConnections 0
48 PermitRootLogin yes 48 PermitRootLogin yes
49 VerboseMode no 49 VerboseMode no
50 CheckMail no 50 CheckMail no
51 Ssh1Compatibility no 51 Ssh1Compatibility no
52EOF 52EOF
53 53
54# create client config 54# create client config
55sed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \ 55sed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \
56 < $OBJ/ssh_config > $OBJ/ssh_config_com 56 < $OBJ/ssh_config > $OBJ/ssh_config_com
57 57
diff --git a/regress/ssh2putty.sh b/regress/ssh2putty.sh
index 691db1690..bcf83afe9 100755
--- a/regress/ssh2putty.sh
+++ b/regress/ssh2putty.sh
@@ -1,5 +1,5 @@
1#!/bin/sh 1#!/bin/sh
2# $OpenBSD: ssh2putty.sh,v 1.2 2009/10/06 23:51:49 dtucker Exp $ 2# $OpenBSD: ssh2putty.sh,v 1.3 2015/05/08 07:26:13 djm Exp $
3 3
4if test "x$1" = "x" -o "x$2" = "x" -o "x$3" = "x" ; then 4if test "x$1" = "x" -o "x$2" = "x" -o "x$3" = "x" ; then
5 echo "Usage: ssh2putty hostname port ssh-private-key" 5 echo "Usage: ssh2putty hostname port ssh-private-key"
@@ -19,13 +19,13 @@ else
19fi 19fi
20 20
21public_exponent=` 21public_exponent=`
22 openssl rsa -noout -text -in $KEYFILE | grep ^publicExponent | 22 openssl rsa -noout -text -in $KEYFILE | grep ^publicExponent |
23 sed 's/.*(//;s/).*//' 23 sed 's/.*(//;s/).*//'
24` 24`
25test $? -ne 0 && exit 1 25test $? -ne 0 && exit 1
26 26
27modulus=` 27modulus=`
28 openssl rsa -noout -modulus -in $KEYFILE | grep ^Modulus= | 28 openssl rsa -noout -modulus -in $KEYFILE | grep ^Modulus= |
29 sed 's/^Modulus=/0x/' | tr A-Z a-z 29 sed 's/^Modulus=/0x/' | tr A-Z a-z
30` 30`
31test $? -ne 0 && exit 1 31test $? -ne 0 && exit 1
diff --git a/regress/test-exec.sh b/regress/test-exec.sh
index 0f766620d..114e129f2 100644
--- a/regress/test-exec.sh
+++ b/regress/test-exec.sh
@@ -444,7 +444,7 @@ Host *
444EOF 444EOF
445 445
446if [ ! -z "$TEST_SSH_SSH_CONFOPTS" ]; then 446if [ ! -z "$TEST_SSH_SSH_CONFOPTS" ]; then
447 trace "adding ssh_config option $TEST_SSH_SSHD_CONFOPTS" 447 trace "adding ssh_config option $TEST_SSH_SSH_CONFOPTS"
448 echo "$TEST_SSH_SSH_CONFOPTS" >> $OBJ/ssh_config 448 echo "$TEST_SSH_SSH_CONFOPTS" >> $OBJ/ssh_config
449fi 449fi
450 450
diff --git a/regress/try-ciphers.sh b/regress/try-ciphers.sh
index 4165c7b88..889a735d2 100644
--- a/regress/try-ciphers.sh
+++ b/regress/try-ciphers.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: try-ciphers.sh,v 1.24 2015/03/03 22:35:19 markus Exp $ 1# $OpenBSD: try-ciphers.sh,v 1.25 2015/03/24 20:22:17 markus Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="try ciphers" 4tid="try ciphers"
@@ -19,7 +19,7 @@ for c in `${SSH} -Q cipher`; do
19 fi 19 fi
20 # No point trying all MACs for AEAD ciphers since they 20 # No point trying all MACs for AEAD ciphers since they
21 # are ignored. 21 # are ignored.
22 if ssh -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then 22 if ${SSH} -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then
23 break 23 break
24 fi 24 fi
25 n=`expr $n + 1` 25 n=`expr $n + 1`
diff --git a/regress/unittests/hostkeys/test_iterate.c b/regress/unittests/hostkeys/test_iterate.c
index d81291b68..2eaaf063a 100644
--- a/regress/unittests/hostkeys/test_iterate.c
+++ b/regress/unittests/hostkeys/test_iterate.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: test_iterate.c,v 1.3 2015/03/07 04:41:48 djm Exp $ */ 1/* $OpenBSD: test_iterate.c,v 1.4 2015/03/31 22:59:01 djm Exp $ */
2/* 2/*
3 * Regress test for hostfile.h hostkeys_foreach() 3 * Regress test for hostfile.h hostkeys_foreach()
4 * 4 *
@@ -91,8 +91,8 @@ check(struct hostkey_foreach_line *l, void *_ctx)
91 expected->l.keytype : expected->no_parse_keytype; 91 expected->l.keytype : expected->no_parse_keytype;
92 92
93#ifndef WITH_SSH1 93#ifndef WITH_SSH1
94 if (expected->l.keytype == KEY_RSA1 || 94 if (parse_key && (expected->l.keytype == KEY_RSA1 ||
95 expected->no_parse_keytype == KEY_RSA1) { 95 expected->no_parse_keytype == KEY_RSA1)) {
96 expected_status = HKF_STATUS_INVALID; 96 expected_status = HKF_STATUS_INVALID;
97 expected_keytype = KEY_UNSPEC; 97 expected_keytype = KEY_UNSPEC;
98 parse_key = 0; 98 parse_key = 0;
diff --git a/regress/unittests/sshkey/test_sshkey.c b/regress/unittests/sshkey/test_sshkey.c
index ad10c9be2..4453a8599 100644
--- a/regress/unittests/sshkey/test_sshkey.c
+++ b/regress/unittests/sshkey/test_sshkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: test_sshkey.c,v 1.3 2015/01/26 06:11:28 djm Exp $ */ 1/* $OpenBSD: test_sshkey.c,v 1.4 2015/04/22 01:38:36 djm Exp $ */
2/* 2/*
3 * Regress test for sshkey.h key management API 3 * Regress test for sshkey.h key management API
4 * 4 *
@@ -505,7 +505,7 @@ sshkey_tests(void)
505 ASSERT_INT_EQ(sshkey_load_cert(test_data_file("rsa_1"), &k1), 0); 505 ASSERT_INT_EQ(sshkey_load_cert(test_data_file("rsa_1"), &k1), 0);
506 ASSERT_INT_EQ(sshkey_load_public(test_data_file("rsa_1.pub"), &k2, 506 ASSERT_INT_EQ(sshkey_load_public(test_data_file("rsa_1.pub"), &k2,
507 NULL), 0); 507 NULL), 0);
508 k3 = get_private("ed25519_2"); 508 k3 = get_private("rsa_1");
509 build_cert(b, k2, "ssh-rsa-cert-v01@openssh.com", k3, k1); 509 build_cert(b, k2, "ssh-rsa-cert-v01@openssh.com", k3, k1);
510 ASSERT_INT_EQ(sshkey_from_blob(sshbuf_ptr(b), sshbuf_len(b), &k4), 510 ASSERT_INT_EQ(sshkey_from_blob(sshbuf_ptr(b), sshbuf_len(b), &k4),
511 SSH_ERR_KEY_CERT_INVALID_SIGN_KEY); 511 SSH_ERR_KEY_CERT_INVALID_SIGN_KEY);
diff --git a/rijndael.c b/rijndael.c
index b352a11e5..40ab7b1f5 100644
--- a/rijndael.c
+++ b/rijndael.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rijndael.c,v 1.19 2014/11/18 22:38:48 mikeb Exp $ */ 1/* $OpenBSD: rijndael.c,v 1.20 2015/03/16 11:09:52 djm Exp $ */
2 2
3/** 3/**
4 * rijndael-alg-fst.c 4 * rijndael-alg-fst.c
diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c
index b6f6258f2..2462bcc88 100644
--- a/sandbox-seccomp-filter.c
+++ b/sandbox-seccomp-filter.c
@@ -43,6 +43,7 @@
43#include <sys/resource.h> 43#include <sys/resource.h>
44#include <sys/prctl.h> 44#include <sys/prctl.h>
45 45
46#include <linux/net.h>
46#include <linux/audit.h> 47#include <linux/audit.h>
47#include <linux/filter.h> 48#include <linux/filter.h>
48#include <linux/seccomp.h> 49#include <linux/seccomp.h>
@@ -79,6 +80,16 @@
79#define SC_ALLOW(_nr) \ 80#define SC_ALLOW(_nr) \
80 BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_ ## _nr, 0, 1), \ 81 BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_ ## _nr, 0, 1), \
81 BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW) 82 BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW)
83#define SC_ALLOW_ARG(_nr, _arg_nr, _arg_val) \
84 BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_ ## _nr, 0, 4), \
85 /* load first syscall argument */ \
86 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, \
87 offsetof(struct seccomp_data, args[(_arg_nr)])), \
88 BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, (_arg_val), 0, 1), \
89 BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW), \
90 /* reload syscall number; all rules expect it in accumulator */ \
91 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, \
92 offsetof(struct seccomp_data, nr))
82 93
83/* Syscall filtering set for preauth. */ 94/* Syscall filtering set for preauth. */
84static const struct sock_filter preauth_insns[] = { 95static const struct sock_filter preauth_insns[] = {
@@ -90,45 +101,105 @@ static const struct sock_filter preauth_insns[] = {
90 /* Load the syscall number for checking. */ 101 /* Load the syscall number for checking. */
91 BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 102 BPF_STMT(BPF_LD+BPF_W+BPF_ABS,
92 offsetof(struct seccomp_data, nr)), 103 offsetof(struct seccomp_data, nr)),
104
105 /* Syscalls to non-fatally deny */
106#ifdef __NR_fstat
107 SC_DENY(fstat, EACCES),
108#endif
109#ifdef __NR_fstat64
110 SC_DENY(fstat64, EACCES),
111#endif
112#ifdef __NR_open
93 SC_DENY(open, EACCES), 113 SC_DENY(open, EACCES),
114#endif
115#ifdef __NR_openat
116 SC_DENY(openat, EACCES),
117#endif
118#ifdef __NR_newfstatat
119 SC_DENY(newfstatat, EACCES),
120#endif
121#ifdef __NR_stat
94 SC_DENY(stat, EACCES), 122 SC_DENY(stat, EACCES),
95 SC_ALLOW(getpid), 123#endif
96 SC_ALLOW(gettimeofday), 124#ifdef __NR_stat64
125 SC_DENY(stat64, EACCES),
126#endif
127
128 /* Syscalls to permit */
129#ifdef __NR_brk
130 SC_ALLOW(brk),
131#endif
132#ifdef __NR_clock_gettime
97 SC_ALLOW(clock_gettime), 133 SC_ALLOW(clock_gettime),
98#ifdef __NR_time /* not defined on EABI ARM */
99 SC_ALLOW(time),
100#endif 134#endif
101 SC_ALLOW(read), 135#ifdef __NR_close
102 SC_ALLOW(write),
103 SC_ALLOW(close), 136 SC_ALLOW(close),
104#ifdef __NR_shutdown /* not defined on archs that go via socketcall(2) */
105 SC_ALLOW(shutdown),
106#endif 137#endif
107 SC_ALLOW(brk), 138#ifdef __NR_exit
108 SC_ALLOW(poll), 139 SC_ALLOW(exit),
109#ifdef __NR__newselect 140#endif
110 SC_ALLOW(_newselect), 141#ifdef __NR_exit_group
111#else 142 SC_ALLOW(exit_group),
112 SC_ALLOW(select), 143#endif
144#ifdef __NR_getpgid
145 SC_ALLOW(getpgid),
146#endif
147#ifdef __NR_getpid
148 SC_ALLOW(getpid),
113#endif 149#endif
150#ifdef __NR_gettimeofday
151 SC_ALLOW(gettimeofday),
152#endif
153#ifdef __NR_madvise
114 SC_ALLOW(madvise), 154 SC_ALLOW(madvise),
115#ifdef __NR_mmap2 /* EABI ARM only has mmap2() */
116 SC_ALLOW(mmap2),
117#endif 155#endif
118#ifdef __NR_mmap 156#ifdef __NR_mmap
119 SC_ALLOW(mmap), 157 SC_ALLOW(mmap),
120#endif 158#endif
121#ifdef __dietlibc__ 159#ifdef __NR_mmap2
160 SC_ALLOW(mmap2),
161#endif
162#ifdef __NR_mremap
122 SC_ALLOW(mremap), 163 SC_ALLOW(mremap),
123 SC_ALLOW(exit),
124#endif 164#endif
165#ifdef __NR_munmap
125 SC_ALLOW(munmap), 166 SC_ALLOW(munmap),
126 SC_ALLOW(exit_group), 167#endif
168#ifdef __NR__newselect
169 SC_ALLOW(_newselect),
170#endif
171#ifdef __NR_poll
172 SC_ALLOW(poll),
173#endif
174#ifdef __NR_pselect6
175 SC_ALLOW(pselect6),
176#endif
177#ifdef __NR_read
178 SC_ALLOW(read),
179#endif
127#ifdef __NR_rt_sigprocmask 180#ifdef __NR_rt_sigprocmask
128 SC_ALLOW(rt_sigprocmask), 181 SC_ALLOW(rt_sigprocmask),
129#else 182#endif
183#ifdef __NR_select
184 SC_ALLOW(select),
185#endif
186#ifdef __NR_shutdown
187 SC_ALLOW(shutdown),
188#endif
189#ifdef __NR_sigprocmask
130 SC_ALLOW(sigprocmask), 190 SC_ALLOW(sigprocmask),
131#endif 191#endif
192#ifdef __NR_time
193 SC_ALLOW(time),
194#endif
195#ifdef __NR_write
196 SC_ALLOW(write),
197#endif
198#ifdef __NR_socketcall
199 SC_ALLOW_ARG(socketcall, 0, SYS_SHUTDOWN),
200#endif
201
202 /* Default deny */
132 BPF_STMT(BPF_RET+BPF_K, SECCOMP_FILTER_FAIL), 203 BPF_STMT(BPF_RET+BPF_K, SECCOMP_FILTER_FAIL),
133}; 204};
134 205
diff --git a/sandbox-systrace.c b/sandbox-systrace.c
index f30e70575..03b0d40cc 100644
--- a/sandbox-systrace.c
+++ b/sandbox-systrace.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sandbox-systrace.c,v 1.14 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: sandbox-systrace.c,v 1.16 2015/06/29 22:35:12 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2011 Damien Miller <djm@mindrot.org> 3 * Copyright (c) 2011 Damien Miller <djm@mindrot.org>
4 * 4 *
@@ -50,8 +50,9 @@ struct sandbox_policy {
50 50
51/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */ 51/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */
52static const struct sandbox_policy preauth_policy[] = { 52static const struct sandbox_policy preauth_policy[] = {
53 { SYS_open, SYSTR_POLICY_NEVER }, 53 { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
54 54 { SYS_close, SYSTR_POLICY_PERMIT },
55 { SYS_exit, SYSTR_POLICY_PERMIT },
55#ifdef SYS_getentropy 56#ifdef SYS_getentropy
56 /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */ 57 /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */
57 { SYS_getentropy, SYSTR_POLICY_PERMIT }, 58 { SYS_getentropy, SYSTR_POLICY_PERMIT },
@@ -59,23 +60,21 @@ static const struct sandbox_policy preauth_policy[] = {
59 /* Previous releases used sysctl(3)'s kern.arnd variable. */ 60 /* Previous releases used sysctl(3)'s kern.arnd variable. */
60 { SYS___sysctl, SYSTR_POLICY_PERMIT }, 61 { SYS___sysctl, SYSTR_POLICY_PERMIT },
61#endif 62#endif
62
63#ifdef SYS_sendsyslog
64 { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
65#endif
66 { SYS_close, SYSTR_POLICY_PERMIT },
67 { SYS_exit, SYSTR_POLICY_PERMIT },
68 { SYS_getpid, SYSTR_POLICY_PERMIT }, 63 { SYS_getpid, SYSTR_POLICY_PERMIT },
64 { SYS_getpgid, SYSTR_POLICY_PERMIT },
69 { SYS_gettimeofday, SYSTR_POLICY_PERMIT }, 65 { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
70 { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
71 { SYS_madvise, SYSTR_POLICY_PERMIT }, 66 { SYS_madvise, SYSTR_POLICY_PERMIT },
72 { SYS_mmap, SYSTR_POLICY_PERMIT }, 67 { SYS_mmap, SYSTR_POLICY_PERMIT },
73 { SYS_mprotect, SYSTR_POLICY_PERMIT }, 68 { SYS_mprotect, SYSTR_POLICY_PERMIT },
74 { SYS_mquery, SYSTR_POLICY_PERMIT }, 69 { SYS_mquery, SYSTR_POLICY_PERMIT },
75 { SYS_poll, SYSTR_POLICY_PERMIT },
76 { SYS_munmap, SYSTR_POLICY_PERMIT }, 70 { SYS_munmap, SYSTR_POLICY_PERMIT },
71 { SYS_open, SYSTR_POLICY_NEVER },
72 { SYS_poll, SYSTR_POLICY_PERMIT },
77 { SYS_read, SYSTR_POLICY_PERMIT }, 73 { SYS_read, SYSTR_POLICY_PERMIT },
78 { SYS_select, SYSTR_POLICY_PERMIT }, 74 { SYS_select, SYSTR_POLICY_PERMIT },
75#ifdef SYS_sendsyslog
76 { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
77#endif
79 { SYS_shutdown, SYSTR_POLICY_PERMIT }, 78 { SYS_shutdown, SYSTR_POLICY_PERMIT },
80 { SYS_sigprocmask, SYSTR_POLICY_PERMIT }, 79 { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
81 { SYS_write, SYSTR_POLICY_PERMIT }, 80 { SYS_write, SYSTR_POLICY_PERMIT },
diff --git a/scp.c b/scp.c
index 887b014b8..593fe89bd 100644
--- a/scp.c
+++ b/scp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: scp.c,v 1.181 2015/01/16 06:40:12 deraadt Exp $ */ 1/* $OpenBSD: scp.c,v 1.182 2015/04/24 01:36:00 deraadt Exp $ */
2/* 2/*
3 * scp - secure remote copy. This is basically patched BSD rcp which 3 * scp - secure remote copy. This is basically patched BSD rcp which
4 * uses ssh to do the data transfer (instead of using rcmd). 4 * uses ssh to do the data transfer (instead of using rcmd).
@@ -1333,7 +1333,7 @@ allocbuf(BUF *bp, int fd, int blksize)
1333 if (bp->buf == NULL) 1333 if (bp->buf == NULL)
1334 bp->buf = xmalloc(size); 1334 bp->buf = xmalloc(size);
1335 else 1335 else
1336 bp->buf = xrealloc(bp->buf, 1, size); 1336 bp->buf = xreallocarray(bp->buf, 1, size);
1337 memset(bp->buf, 0, size); 1337 memset(bp->buf, 0, size);
1338 bp->cnt = size; 1338 bp->cnt = size;
1339 return (bp); 1339 return (bp);
diff --git a/servconf.c b/servconf.c
index 318546290..df93fc450 100644
--- a/servconf.c
+++ b/servconf.c
@@ -1,5 +1,4 @@
1 1/* $OpenBSD: servconf.c,v 1.274 2015/07/01 02:32:17 djm Exp $ */
2/* $OpenBSD: servconf.c,v 1.260 2015/02/02 01:57:44 deraadt Exp $ */
3/* 2/*
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
5 * All rights reserved 4 * All rights reserved
@@ -78,6 +77,8 @@ initialize_server_options(ServerOptions *options)
78 /* Standard Options */ 77 /* Standard Options */
79 options->num_ports = 0; 78 options->num_ports = 0;
80 options->ports_from_cmdline = 0; 79 options->ports_from_cmdline = 0;
80 options->queued_listen_addrs = NULL;
81 options->num_queued_listens = 0;
81 options->listen_addrs = NULL; 82 options->listen_addrs = NULL;
82 options->address_family = -1; 83 options->address_family = -1;
83 options->num_host_key_files = 0; 84 options->num_host_key_files = 0;
@@ -115,6 +116,7 @@ initialize_server_options(ServerOptions *options)
115 options->kerberos_get_afs_token = -1; 116 options->kerberos_get_afs_token = -1;
116 options->gss_authentication=-1; 117 options->gss_authentication=-1;
117 options->gss_cleanup_creds = -1; 118 options->gss_cleanup_creds = -1;
119 options->gss_strict_acceptor = -1;
118 options->password_authentication = -1; 120 options->password_authentication = -1;
119 options->kbd_interactive_authentication = -1; 121 options->kbd_interactive_authentication = -1;
120 options->challenge_response_authentication = -1; 122 options->challenge_response_authentication = -1;
@@ -159,6 +161,8 @@ initialize_server_options(ServerOptions *options)
159 options->revoked_keys_file = NULL; 161 options->revoked_keys_file = NULL;
160 options->trusted_user_ca_keys = NULL; 162 options->trusted_user_ca_keys = NULL;
161 options->authorized_principals_file = NULL; 163 options->authorized_principals_file = NULL;
164 options->authorized_principals_command = NULL;
165 options->authorized_principals_command_user = NULL;
162 options->ip_qos_interactive = -1; 166 options->ip_qos_interactive = -1;
163 options->ip_qos_bulk = -1; 167 options->ip_qos_bulk = -1;
164 options->version_addendum = NULL; 168 options->version_addendum = NULL;
@@ -205,6 +209,8 @@ fill_default_server_options(ServerOptions *options)
205 /* No certificates by default */ 209 /* No certificates by default */
206 if (options->num_ports == 0) 210 if (options->num_ports == 0)
207 options->ports[options->num_ports++] = SSH_DEFAULT_PORT; 211 options->ports[options->num_ports++] = SSH_DEFAULT_PORT;
212 if (options->address_family == -1)
213 options->address_family = AF_UNSPEC;
208 if (options->listen_addrs == NULL) 214 if (options->listen_addrs == NULL)
209 add_listen_addr(options, NULL, 0); 215 add_listen_addr(options, NULL, 0);
210 if (options->pid_file == NULL) 216 if (options->pid_file == NULL)
@@ -271,6 +277,8 @@ fill_default_server_options(ServerOptions *options)
271 options->gss_authentication = 0; 277 options->gss_authentication = 0;
272 if (options->gss_cleanup_creds == -1) 278 if (options->gss_cleanup_creds == -1)
273 options->gss_cleanup_creds = 1; 279 options->gss_cleanup_creds = 1;
280 if (options->gss_strict_acceptor == -1)
281 options->gss_strict_acceptor = 0;
274 if (options->password_authentication == -1) 282 if (options->password_authentication == -1)
275 options->password_authentication = 1; 283 options->password_authentication = 1;
276 if (options->kbd_interactive_authentication == -1) 284 if (options->kbd_interactive_authentication == -1)
@@ -349,6 +357,7 @@ fill_default_server_options(ServerOptions *options)
349 CLEAR_ON_NONE(options->banner); 357 CLEAR_ON_NONE(options->banner);
350 CLEAR_ON_NONE(options->trusted_user_ca_keys); 358 CLEAR_ON_NONE(options->trusted_user_ca_keys);
351 CLEAR_ON_NONE(options->revoked_keys_file); 359 CLEAR_ON_NONE(options->revoked_keys_file);
360 CLEAR_ON_NONE(options->authorized_principals_file);
352 for (i = 0; i < options->num_host_key_files; i++) 361 for (i = 0; i < options->num_host_key_files; i++)
353 CLEAR_ON_NONE(options->host_key_files[i]); 362 CLEAR_ON_NONE(options->host_key_files[i]);
354 for (i = 0; i < options->num_host_cert_files; i++) 363 for (i = 0; i < options->num_host_cert_files; i++)
@@ -391,11 +400,13 @@ typedef enum {
391 sBanner, sUseDNS, sHostbasedAuthentication, 400 sBanner, sUseDNS, sHostbasedAuthentication,
392 sHostbasedUsesNameFromPacketOnly, sHostbasedAcceptedKeyTypes, 401 sHostbasedUsesNameFromPacketOnly, sHostbasedAcceptedKeyTypes,
393 sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile, 402 sClientAliveInterval, sClientAliveCountMax, sAuthorizedKeysFile,
394 sGssAuthentication, sGssCleanupCreds, sAcceptEnv, sPermitTunnel, 403 sGssAuthentication, sGssCleanupCreds, sGssStrictAcceptor,
404 sAcceptEnv, sPermitTunnel,
395 sMatch, sPermitOpen, sForceCommand, sChrootDirectory, 405 sMatch, sPermitOpen, sForceCommand, sChrootDirectory,
396 sUsePrivilegeSeparation, sAllowAgentForwarding, 406 sUsePrivilegeSeparation, sAllowAgentForwarding,
397 sHostCertificate, 407 sHostCertificate,
398 sRevokedKeys, sTrustedUserCAKeys, sAuthorizedPrincipalsFile, 408 sRevokedKeys, sTrustedUserCAKeys, sAuthorizedPrincipalsFile,
409 sAuthorizedPrincipalsCommand, sAuthorizedPrincipalsCommandUser,
399 sKexAlgorithms, sIPQoS, sVersionAddendum, 410 sKexAlgorithms, sIPQoS, sVersionAddendum,
400 sAuthorizedKeysCommand, sAuthorizedKeysCommandUser, 411 sAuthorizedKeysCommand, sAuthorizedKeysCommandUser,
401 sAuthenticationMethods, sHostKeyAgent, sPermitUserRC, 412 sAuthenticationMethods, sHostKeyAgent, sPermitUserRC,
@@ -462,9 +473,11 @@ static struct {
462#ifdef GSSAPI 473#ifdef GSSAPI
463 { "gssapiauthentication", sGssAuthentication, SSHCFG_ALL }, 474 { "gssapiauthentication", sGssAuthentication, SSHCFG_ALL },
464 { "gssapicleanupcredentials", sGssCleanupCreds, SSHCFG_GLOBAL }, 475 { "gssapicleanupcredentials", sGssCleanupCreds, SSHCFG_GLOBAL },
476 { "gssapistrictacceptorcheck", sGssStrictAcceptor, SSHCFG_GLOBAL },
465#else 477#else
466 { "gssapiauthentication", sUnsupported, SSHCFG_ALL }, 478 { "gssapiauthentication", sUnsupported, SSHCFG_ALL },
467 { "gssapicleanupcredentials", sUnsupported, SSHCFG_GLOBAL }, 479 { "gssapicleanupcredentials", sUnsupported, SSHCFG_GLOBAL },
480 { "gssapistrictacceptorcheck", sUnsupported, SSHCFG_GLOBAL },
468#endif 481#endif
469 { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL }, 482 { "passwordauthentication", sPasswordAuthentication, SSHCFG_ALL },
470 { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, 483 { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL },
@@ -528,6 +541,8 @@ static struct {
528 { "ipqos", sIPQoS, SSHCFG_ALL }, 541 { "ipqos", sIPQoS, SSHCFG_ALL },
529 { "authorizedkeyscommand", sAuthorizedKeysCommand, SSHCFG_ALL }, 542 { "authorizedkeyscommand", sAuthorizedKeysCommand, SSHCFG_ALL },
530 { "authorizedkeyscommanduser", sAuthorizedKeysCommandUser, SSHCFG_ALL }, 543 { "authorizedkeyscommanduser", sAuthorizedKeysCommandUser, SSHCFG_ALL },
544 { "authorizedprincipalscommand", sAuthorizedPrincipalsCommand, SSHCFG_ALL },
545 { "authorizedprincipalscommanduser", sAuthorizedPrincipalsCommandUser, SSHCFG_ALL },
531 { "versionaddendum", sVersionAddendum, SSHCFG_GLOBAL }, 546 { "versionaddendum", sVersionAddendum, SSHCFG_GLOBAL },
532 { "authenticationmethods", sAuthenticationMethods, SSHCFG_ALL }, 547 { "authenticationmethods", sAuthenticationMethods, SSHCFG_ALL },
533 { "streamlocalbindmask", sStreamLocalBindMask, SSHCFG_ALL }, 548 { "streamlocalbindmask", sStreamLocalBindMask, SSHCFG_ALL },
@@ -591,10 +606,6 @@ add_listen_addr(ServerOptions *options, char *addr, int port)
591{ 606{
592 u_int i; 607 u_int i;
593 608
594 if (options->num_ports == 0)
595 options->ports[options->num_ports++] = SSH_DEFAULT_PORT;
596 if (options->address_family == -1)
597 options->address_family = AF_UNSPEC;
598 if (port == 0) 609 if (port == 0)
599 for (i = 0; i < options->num_ports; i++) 610 for (i = 0; i < options->num_ports; i++)
600 add_one_listen_addr(options, addr, options->ports[i]); 611 add_one_listen_addr(options, addr, options->ports[i]);
@@ -624,6 +635,51 @@ add_one_listen_addr(ServerOptions *options, char *addr, int port)
624 options->listen_addrs = aitop; 635 options->listen_addrs = aitop;
625} 636}
626 637
638/*
639 * Queue a ListenAddress to be processed once we have all of the Ports
640 * and AddressFamily options.
641 */
642static void
643queue_listen_addr(ServerOptions *options, char *addr, int port)
644{
645 options->queued_listen_addrs = xreallocarray(
646 options->queued_listen_addrs, options->num_queued_listens + 1,
647 sizeof(addr));
648 options->queued_listen_ports = xreallocarray(
649 options->queued_listen_ports, options->num_queued_listens + 1,
650 sizeof(port));
651 options->queued_listen_addrs[options->num_queued_listens] =
652 xstrdup(addr);
653 options->queued_listen_ports[options->num_queued_listens] = port;
654 options->num_queued_listens++;
655}
656
657/*
658 * Process queued (text) ListenAddress entries.
659 */
660static void
661process_queued_listen_addrs(ServerOptions *options)
662{
663 u_int i;
664
665 if (options->num_ports == 0)
666 options->ports[options->num_ports++] = SSH_DEFAULT_PORT;
667 if (options->address_family == -1)
668 options->address_family = AF_UNSPEC;
669
670 for (i = 0; i < options->num_queued_listens; i++) {
671 add_listen_addr(options, options->queued_listen_addrs[i],
672 options->queued_listen_ports[i]);
673 free(options->queued_listen_addrs[i]);
674 options->queued_listen_addrs[i] = NULL;
675 }
676 free(options->queued_listen_addrs);
677 options->queued_listen_addrs = NULL;
678 free(options->queued_listen_ports);
679 options->queued_listen_ports = NULL;
680 options->num_queued_listens = 0;
681}
682
627struct connection_info * 683struct connection_info *
628get_connection_info(int populate, int use_dns) 684get_connection_info(int populate, int use_dns)
629{ 685{
@@ -709,7 +765,6 @@ match_cfg_line(char **condition, int line, struct connection_info *ci)
709{ 765{
710 int result = 1, attributes = 0, port; 766 int result = 1, attributes = 0, port;
711 char *arg, *attrib, *cp = *condition; 767 char *arg, *attrib, *cp = *condition;
712 size_t len;
713 768
714 if (ci == NULL) 769 if (ci == NULL)
715 debug3("checking syntax for 'Match %s'", cp); 770 debug3("checking syntax for 'Match %s'", cp);
@@ -736,13 +791,12 @@ match_cfg_line(char **condition, int line, struct connection_info *ci)
736 error("Missing Match criteria for %s", attrib); 791 error("Missing Match criteria for %s", attrib);
737 return -1; 792 return -1;
738 } 793 }
739 len = strlen(arg);
740 if (strcasecmp(attrib, "user") == 0) { 794 if (strcasecmp(attrib, "user") == 0) {
741 if (ci == NULL || ci->user == NULL) { 795 if (ci == NULL || ci->user == NULL) {
742 result = 0; 796 result = 0;
743 continue; 797 continue;
744 } 798 }
745 if (match_pattern_list(ci->user, arg, len, 0) != 1) 799 if (match_pattern_list(ci->user, arg, 0) != 1)
746 result = 0; 800 result = 0;
747 else 801 else
748 debug("user %.100s matched 'User %.100s' at " 802 debug("user %.100s matched 'User %.100s' at "
@@ -763,7 +817,7 @@ match_cfg_line(char **condition, int line, struct connection_info *ci)
763 result = 0; 817 result = 0;
764 continue; 818 continue;
765 } 819 }
766 if (match_hostname(ci->host, arg, len) != 1) 820 if (match_hostname(ci->host, arg) != 1)
767 result = 0; 821 result = 0;
768 else 822 else
769 debug("connection from %.100s matched 'Host " 823 debug("connection from %.100s matched 'Host "
@@ -940,9 +994,6 @@ process_server_config_line(ServerOptions *options, char *line,
940 /* ignore ports from configfile if cmdline specifies ports */ 994 /* ignore ports from configfile if cmdline specifies ports */
941 if (options->ports_from_cmdline) 995 if (options->ports_from_cmdline)
942 return 0; 996 return 0;
943 if (options->listen_addrs != NULL)
944 fatal("%s line %d: ports must be specified before "
945 "ListenAddress.", filename, linenum);
946 if (options->num_ports >= MAX_PORTS) 997 if (options->num_ports >= MAX_PORTS)
947 fatal("%s line %d: too many ports.", 998 fatal("%s line %d: too many ports.",
948 filename, linenum); 999 filename, linenum);
@@ -978,7 +1029,7 @@ process_server_config_line(ServerOptions *options, char *line,
978 if ((value = convtime(arg)) == -1) 1029 if ((value = convtime(arg)) == -1)
979 fatal("%s line %d: invalid time value.", 1030 fatal("%s line %d: invalid time value.",
980 filename, linenum); 1031 filename, linenum);
981 if (*intptr == -1) 1032 if (*activep && *intptr == -1)
982 *intptr = value; 1033 *intptr = value;
983 break; 1034 break;
984 1035
@@ -994,7 +1045,7 @@ process_server_config_line(ServerOptions *options, char *line,
994 /* check for bare IPv6 address: no "[]" and 2 or more ":" */ 1045 /* check for bare IPv6 address: no "[]" and 2 or more ":" */
995 if (strchr(arg, '[') == NULL && (p = strchr(arg, ':')) != NULL 1046 if (strchr(arg, '[') == NULL && (p = strchr(arg, ':')) != NULL
996 && strchr(p+1, ':') != NULL) { 1047 && strchr(p+1, ':') != NULL) {
997 add_listen_addr(options, arg, 0); 1048 queue_listen_addr(options, arg, 0);
998 break; 1049 break;
999 } 1050 }
1000 p = hpdelim(&arg); 1051 p = hpdelim(&arg);
@@ -1007,16 +1058,13 @@ process_server_config_line(ServerOptions *options, char *line,
1007 else if ((port = a2port(arg)) <= 0) 1058 else if ((port = a2port(arg)) <= 0)
1008 fatal("%s line %d: bad port number", filename, linenum); 1059 fatal("%s line %d: bad port number", filename, linenum);
1009 1060
1010 add_listen_addr(options, p, port); 1061 queue_listen_addr(options, p, port);
1011 1062
1012 break; 1063 break;
1013 1064
1014 case sAddressFamily: 1065 case sAddressFamily:
1015 intptr = &options->address_family; 1066 intptr = &options->address_family;
1016 multistate_ptr = multistate_addressfamily; 1067 multistate_ptr = multistate_addressfamily;
1017 if (options->listen_addrs != NULL)
1018 fatal("%s line %d: address family must be specified "
1019 "before ListenAddress.", filename, linenum);
1020 parse_multistate: 1068 parse_multistate:
1021 arg = strdelim(&cp); 1069 arg = strdelim(&cp);
1022 if (!arg || *arg == '\0') 1070 if (!arg || *arg == '\0')
@@ -1170,6 +1218,10 @@ process_server_config_line(ServerOptions *options, char *line,
1170 intptr = &options->gss_cleanup_creds; 1218 intptr = &options->gss_cleanup_creds;
1171 goto parse_flag; 1219 goto parse_flag;
1172 1220
1221 case sGssStrictAcceptor:
1222 intptr = &options->gss_strict_acceptor;
1223 goto parse_flag;
1224
1173 case sPasswordAuthentication: 1225 case sPasswordAuthentication:
1174 intptr = &options->password_authentication; 1226 intptr = &options->password_authentication;
1175 goto parse_flag; 1227 goto parse_flag;
@@ -1444,7 +1496,7 @@ process_server_config_line(ServerOptions *options, char *line,
1444 len = strlen(p) + 1; 1496 len = strlen(p) + 1;
1445 while ((arg = strdelim(&cp)) != NULL && *arg != '\0') { 1497 while ((arg = strdelim(&cp)) != NULL && *arg != '\0') {
1446 len += 1 + strlen(arg); 1498 len += 1 + strlen(arg);
1447 p = xrealloc(p, 1, len); 1499 p = xreallocarray(p, 1, len);
1448 strlcat(p, " ", len); 1500 strlcat(p, " ", len);
1449 strlcat(p, arg, len); 1501 strlcat(p, arg, len);
1450 } 1502 }
@@ -1559,7 +1611,7 @@ process_server_config_line(ServerOptions *options, char *line,
1559 if (value == -1) 1611 if (value == -1)
1560 fatal("%s line %d: Bad yes/point-to-point/ethernet/" 1612 fatal("%s line %d: Bad yes/point-to-point/ethernet/"
1561 "no argument: %s", filename, linenum, arg); 1613 "no argument: %s", filename, linenum, arg);
1562 if (*intptr == -1) 1614 if (*activep && *intptr == -1)
1563 *intptr = value; 1615 *intptr = value;
1564 break; 1616 break;
1565 1617
@@ -1612,7 +1664,7 @@ process_server_config_line(ServerOptions *options, char *line,
1612 break; 1664 break;
1613 1665
1614 case sForceCommand: 1666 case sForceCommand:
1615 if (cp == NULL) 1667 if (cp == NULL || *cp == '\0')
1616 fatal("%.200s line %d: Missing argument.", filename, 1668 fatal("%.200s line %d: Missing argument.", filename,
1617 linenum); 1669 linenum);
1618 len = strspn(cp, WHITESPACE); 1670 len = strspn(cp, WHITESPACE);
@@ -1657,7 +1709,7 @@ process_server_config_line(ServerOptions *options, char *line,
1657 break; 1709 break;
1658 1710
1659 case sVersionAddendum: 1711 case sVersionAddendum:
1660 if (cp == NULL) 1712 if (cp == NULL || *cp == '\0')
1661 fatal("%.200s line %d: Missing argument.", filename, 1713 fatal("%.200s line %d: Missing argument.", filename,
1662 linenum); 1714 linenum);
1663 len = strspn(cp, WHITESPACE); 1715 len = strspn(cp, WHITESPACE);
@@ -1697,8 +1749,36 @@ process_server_config_line(ServerOptions *options, char *line,
1697 *charptr = xstrdup(arg); 1749 *charptr = xstrdup(arg);
1698 break; 1750 break;
1699 1751
1752 case sAuthorizedPrincipalsCommand:
1753 if (cp == NULL)
1754 fatal("%.200s line %d: Missing argument.", filename,
1755 linenum);
1756 len = strspn(cp, WHITESPACE);
1757 if (*activep &&
1758 options->authorized_principals_command == NULL) {
1759 if (cp[len] != '/' && strcasecmp(cp + len, "none") != 0)
1760 fatal("%.200s line %d: "
1761 "AuthorizedPrincipalsCommand must be "
1762 "an absolute path", filename, linenum);
1763 options->authorized_principals_command =
1764 xstrdup(cp + len);
1765 }
1766 return 0;
1767
1768 case sAuthorizedPrincipalsCommandUser:
1769 charptr = &options->authorized_principals_command_user;
1770
1771 arg = strdelim(&cp);
1772 if (!arg || *arg == '\0')
1773 fatal("%s line %d: missing "
1774 "AuthorizedPrincipalsCommandUser argument.",
1775 filename, linenum);
1776 if (*activep && *charptr == NULL)
1777 *charptr = xstrdup(arg);
1778 break;
1779
1700 case sAuthenticationMethods: 1780 case sAuthenticationMethods:
1701 if (*activep && options->num_auth_methods == 0) { 1781 if (options->num_auth_methods == 0) {
1702 while ((arg = strdelim(&cp)) && *arg != '\0') { 1782 while ((arg = strdelim(&cp)) && *arg != '\0') {
1703 if (options->num_auth_methods >= 1783 if (options->num_auth_methods >=
1704 MAX_AUTH_METHODS) 1784 MAX_AUTH_METHODS)
@@ -1709,6 +1789,8 @@ process_server_config_line(ServerOptions *options, char *line,
1709 fatal("%s line %d: invalid " 1789 fatal("%s line %d: invalid "
1710 "authentication method list.", 1790 "authentication method list.",
1711 filename, linenum); 1791 filename, linenum);
1792 if (!*activep)
1793 continue;
1712 options->auth_methods[ 1794 options->auth_methods[
1713 options->num_auth_methods++] = xstrdup(arg); 1795 options->num_auth_methods++] = xstrdup(arg);
1714 } 1796 }
@@ -1718,13 +1800,14 @@ process_server_config_line(ServerOptions *options, char *line,
1718 case sStreamLocalBindMask: 1800 case sStreamLocalBindMask:
1719 arg = strdelim(&cp); 1801 arg = strdelim(&cp);
1720 if (!arg || *arg == '\0') 1802 if (!arg || *arg == '\0')
1721 fatal("%s line %d: missing StreamLocalBindMask argument.", 1803 fatal("%s line %d: missing StreamLocalBindMask "
1722 filename, linenum); 1804 "argument.", filename, linenum);
1723 /* Parse mode in octal format */ 1805 /* Parse mode in octal format */
1724 value = strtol(arg, &p, 8); 1806 value = strtol(arg, &p, 8);
1725 if (arg == p || value < 0 || value > 0777) 1807 if (arg == p || value < 0 || value > 0777)
1726 fatal("%s line %d: Bad mask.", filename, linenum); 1808 fatal("%s line %d: Bad mask.", filename, linenum);
1727 options->fwd_opts.streamlocal_bind_mask = (mode_t)value; 1809 if (*activep)
1810 options->fwd_opts.streamlocal_bind_mask = (mode_t)value;
1728 break; 1811 break;
1729 1812
1730 case sStreamLocalBindUnlink: 1813 case sStreamLocalBindUnlink:
@@ -1951,6 +2034,7 @@ parse_server_config(ServerOptions *options, const char *filename, Buffer *conf,
1951 if (bad_options > 0) 2034 if (bad_options > 0)
1952 fatal("%s: terminating, %d bad configuration options", 2035 fatal("%s: terminating, %d bad configuration options",
1953 filename, bad_options); 2036 filename, bad_options);
2037 process_queued_listen_addrs(options);
1954} 2038}
1955 2039
1956static const char * 2040static const char *
@@ -2028,6 +2112,12 @@ dump_cfg_int(ServerOpCodes code, int val)
2028} 2112}
2029 2113
2030static void 2114static void
2115dump_cfg_oct(ServerOpCodes code, int val)
2116{
2117 printf("%s 0%o\n", lookup_opcode_name(code), val);
2118}
2119
2120static void
2031dump_cfg_fmtint(ServerOpCodes code, int val) 2121dump_cfg_fmtint(ServerOpCodes code, int val)
2032{ 2122{
2033 printf("%s %s\n", lookup_opcode_name(code), fmt_intarg(code, val)); 2123 printf("%s %s\n", lookup_opcode_name(code), fmt_intarg(code, val));
@@ -2056,6 +2146,8 @@ dump_cfg_strarray_oneline(ServerOpCodes code, u_int count, char **vals)
2056{ 2146{
2057 u_int i; 2147 u_int i;
2058 2148
2149 if (count <= 0)
2150 return;
2059 printf("%s", lookup_opcode_name(code)); 2151 printf("%s", lookup_opcode_name(code));
2060 for (i = 0; i < count; i++) 2152 for (i = 0; i < count; i++)
2061 printf(" %s", vals[i]); 2153 printf(" %s", vals[i]);
@@ -2069,6 +2161,7 @@ dump_config(ServerOptions *o)
2069 int ret; 2161 int ret;
2070 struct addrinfo *ai; 2162 struct addrinfo *ai;
2071 char addr[NI_MAXHOST], port[NI_MAXSERV], *s = NULL; 2163 char addr[NI_MAXHOST], port[NI_MAXSERV], *s = NULL;
2164 char *laddr1 = xstrdup(""), *laddr2 = NULL;
2072 2165
2073 /* these are usually at the top of the config */ 2166 /* these are usually at the top of the config */
2074 for (i = 0; i < o->num_ports; i++) 2167 for (i = 0; i < o->num_ports; i++)
@@ -2076,7 +2169,11 @@ dump_config(ServerOptions *o)
2076 dump_cfg_fmtint(sProtocol, o->protocol); 2169 dump_cfg_fmtint(sProtocol, o->protocol);
2077 dump_cfg_fmtint(sAddressFamily, o->address_family); 2170 dump_cfg_fmtint(sAddressFamily, o->address_family);
2078 2171
2079 /* ListenAddress must be after Port */ 2172 /*
2173 * ListenAddress must be after Port. add_one_listen_addr pushes
2174 * addresses onto a stack, so to maintain ordering we need to
2175 * print these in reverse order.
2176 */
2080 for (ai = o->listen_addrs; ai; ai = ai->ai_next) { 2177 for (ai = o->listen_addrs; ai; ai = ai->ai_next) {
2081 if ((ret = getnameinfo(ai->ai_addr, ai->ai_addrlen, addr, 2178 if ((ret = getnameinfo(ai->ai_addr, ai->ai_addrlen, addr,
2082 sizeof(addr), port, sizeof(port), 2179 sizeof(addr), port, sizeof(port),
@@ -2085,16 +2182,22 @@ dump_config(ServerOptions *o)
2085 (ret != EAI_SYSTEM) ? gai_strerror(ret) : 2182 (ret != EAI_SYSTEM) ? gai_strerror(ret) :
2086 strerror(errno)); 2183 strerror(errno));
2087 } else { 2184 } else {
2185 laddr2 = laddr1;
2088 if (ai->ai_family == AF_INET6) 2186 if (ai->ai_family == AF_INET6)
2089 printf("listenaddress [%s]:%s\n", addr, port); 2187 xasprintf(&laddr1, "listenaddress [%s]:%s\n%s",
2188 addr, port, laddr2);
2090 else 2189 else
2091 printf("listenaddress %s:%s\n", addr, port); 2190 xasprintf(&laddr1, "listenaddress %s:%s\n%s",
2191 addr, port, laddr2);
2192 free(laddr2);
2092 } 2193 }
2093 } 2194 }
2195 printf("%s", laddr1);
2196 free(laddr1);
2094 2197
2095 /* integer arguments */ 2198 /* integer arguments */
2096#ifdef USE_PAM 2199#ifdef USE_PAM
2097 dump_cfg_int(sUsePAM, o->use_pam); 2200 dump_cfg_fmtint(sUsePAM, o->use_pam);
2098#endif 2201#endif
2099 dump_cfg_int(sServerKeyBits, o->server_key_bits); 2202 dump_cfg_int(sServerKeyBits, o->server_key_bits);
2100 dump_cfg_int(sLoginGraceTime, o->login_grace_time); 2203 dump_cfg_int(sLoginGraceTime, o->login_grace_time);
@@ -2104,6 +2207,7 @@ dump_config(ServerOptions *o)
2104 dump_cfg_int(sMaxSessions, o->max_sessions); 2207 dump_cfg_int(sMaxSessions, o->max_sessions);
2105 dump_cfg_int(sClientAliveInterval, o->client_alive_interval); 2208 dump_cfg_int(sClientAliveInterval, o->client_alive_interval);
2106 dump_cfg_int(sClientAliveCountMax, o->client_alive_count_max); 2209 dump_cfg_int(sClientAliveCountMax, o->client_alive_count_max);
2210 dump_cfg_oct(sStreamLocalBindMask, o->fwd_opts.streamlocal_bind_mask);
2107 2211
2108 /* formatted integer arguments */ 2212 /* formatted integer arguments */
2109 dump_cfg_fmtint(sPermitRootLogin, o->permit_root_login); 2213 dump_cfg_fmtint(sPermitRootLogin, o->permit_root_login);
@@ -2147,6 +2251,7 @@ dump_config(ServerOptions *o)
2147 dump_cfg_fmtint(sGatewayPorts, o->fwd_opts.gateway_ports); 2251 dump_cfg_fmtint(sGatewayPorts, o->fwd_opts.gateway_ports);
2148 dump_cfg_fmtint(sUseDNS, o->use_dns); 2252 dump_cfg_fmtint(sUseDNS, o->use_dns);
2149 dump_cfg_fmtint(sAllowTcpForwarding, o->allow_tcp_forwarding); 2253 dump_cfg_fmtint(sAllowTcpForwarding, o->allow_tcp_forwarding);
2254 dump_cfg_fmtint(sAllowAgentForwarding, o->allow_agent_forwarding);
2150 dump_cfg_fmtint(sAllowStreamLocalForwarding, o->allow_streamlocal_forwarding); 2255 dump_cfg_fmtint(sAllowStreamLocalForwarding, o->allow_streamlocal_forwarding);
2151 dump_cfg_fmtint(sUsePrivilegeSeparation, use_privsep); 2256 dump_cfg_fmtint(sUsePrivilegeSeparation, use_privsep);
2152 dump_cfg_fmtint(sFingerprintHash, o->fingerprint_hash); 2257 dump_cfg_fmtint(sFingerprintHash, o->fingerprint_hash);
@@ -2163,9 +2268,12 @@ dump_config(ServerOptions *o)
2163 dump_cfg_string(sRevokedKeys, o->revoked_keys_file); 2268 dump_cfg_string(sRevokedKeys, o->revoked_keys_file);
2164 dump_cfg_string(sAuthorizedPrincipalsFile, 2269 dump_cfg_string(sAuthorizedPrincipalsFile,
2165 o->authorized_principals_file); 2270 o->authorized_principals_file);
2166 dump_cfg_string(sVersionAddendum, o->version_addendum); 2271 dump_cfg_string(sVersionAddendum, *o->version_addendum == '\0'
2272 ? "none" : o->version_addendum);
2167 dump_cfg_string(sAuthorizedKeysCommand, o->authorized_keys_command); 2273 dump_cfg_string(sAuthorizedKeysCommand, o->authorized_keys_command);
2168 dump_cfg_string(sAuthorizedKeysCommandUser, o->authorized_keys_command_user); 2274 dump_cfg_string(sAuthorizedKeysCommandUser, o->authorized_keys_command_user);
2275 dump_cfg_string(sAuthorizedPrincipalsCommand, o->authorized_principals_command);
2276 dump_cfg_string(sAuthorizedPrincipalsCommandUser, o->authorized_principals_command_user);
2169 dump_cfg_string(sHostKeyAgent, o->host_key_agent); 2277 dump_cfg_string(sHostKeyAgent, o->host_key_agent);
2170 dump_cfg_string(sKexAlgorithms, 2278 dump_cfg_string(sKexAlgorithms,
2171 o->kex_algorithms ? o->kex_algorithms : KEX_SERVER_KEX); 2279 o->kex_algorithms ? o->kex_algorithms : KEX_SERVER_KEX);
@@ -2183,7 +2291,7 @@ dump_config(ServerOptions *o)
2183 o->authorized_keys_files); 2291 o->authorized_keys_files);
2184 dump_cfg_strarray(sHostKeyFile, o->num_host_key_files, 2292 dump_cfg_strarray(sHostKeyFile, o->num_host_key_files,
2185 o->host_key_files); 2293 o->host_key_files);
2186 dump_cfg_strarray(sHostKeyFile, o->num_host_cert_files, 2294 dump_cfg_strarray(sHostCertificate, o->num_host_cert_files,
2187 o->host_cert_files); 2295 o->host_cert_files);
2188 dump_cfg_strarray(sAllowUsers, o->num_allow_users, o->allow_users); 2296 dump_cfg_strarray(sAllowUsers, o->num_allow_users, o->allow_users);
2189 dump_cfg_strarray(sDenyUsers, o->num_deny_users, o->deny_users); 2297 dump_cfg_strarray(sDenyUsers, o->num_deny_users, o->deny_users);
diff --git a/servconf.h b/servconf.h
index 9922f0c8c..606d80c9d 100644
--- a/servconf.h
+++ b/servconf.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: servconf.h,v 1.116 2015/01/13 07:39:19 djm Exp $ */ 1/* $OpenBSD: servconf.h,v 1.119 2015/05/22 03:50:02 djm Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -58,7 +58,9 @@ typedef struct {
58 u_int num_ports; 58 u_int num_ports;
59 u_int ports_from_cmdline; 59 u_int ports_from_cmdline;
60 int ports[MAX_PORTS]; /* Port number to listen on. */ 60 int ports[MAX_PORTS]; /* Port number to listen on. */
61 char *listen_addr; /* Address on which the server listens. */ 61 u_int num_queued_listens;
62 char **queued_listen_addrs;
63 int *queued_listen_ports;
62 struct addrinfo *listen_addrs; /* Addresses on which the server listens. */ 64 struct addrinfo *listen_addrs; /* Addresses on which the server listens. */
63 int address_family; /* Address family used by the server. */ 65 int address_family; /* Address family used by the server. */
64 char *host_key_files[MAX_HOSTKEYS]; /* Files containing host keys. */ 66 char *host_key_files[MAX_HOSTKEYS]; /* Files containing host keys. */
@@ -116,6 +118,7 @@ typedef struct {
116 * authenticated with Kerberos. */ 118 * authenticated with Kerberos. */
117 int gss_authentication; /* If true, permit GSSAPI authentication */ 119 int gss_authentication; /* If true, permit GSSAPI authentication */
118 int gss_cleanup_creds; /* If true, destroy cred cache on logout */ 120 int gss_cleanup_creds; /* If true, destroy cred cache on logout */
121 int gss_strict_acceptor; /* If true, restrict the GSSAPI acceptor name */
119 int password_authentication; /* If true, permit password 122 int password_authentication; /* If true, permit password
120 * authentication. */ 123 * authentication. */
121 int kbd_interactive_authentication; /* If true, permit */ 124 int kbd_interactive_authentication; /* If true, permit */
@@ -176,9 +179,11 @@ typedef struct {
176 char *chroot_directory; 179 char *chroot_directory;
177 char *revoked_keys_file; 180 char *revoked_keys_file;
178 char *trusted_user_ca_keys; 181 char *trusted_user_ca_keys;
179 char *authorized_principals_file;
180 char *authorized_keys_command; 182 char *authorized_keys_command;
181 char *authorized_keys_command_user; 183 char *authorized_keys_command_user;
184 char *authorized_principals_file;
185 char *authorized_principals_command;
186 char *authorized_principals_command_user;
182 187
183 int64_t rekey_limit; 188 int64_t rekey_limit;
184 int rekey_interval; 189 int rekey_interval;
@@ -214,9 +219,11 @@ struct connection_info {
214 M_CP_STROPT(banner); \ 219 M_CP_STROPT(banner); \
215 M_CP_STROPT(trusted_user_ca_keys); \ 220 M_CP_STROPT(trusted_user_ca_keys); \
216 M_CP_STROPT(revoked_keys_file); \ 221 M_CP_STROPT(revoked_keys_file); \
217 M_CP_STROPT(authorized_principals_file); \
218 M_CP_STROPT(authorized_keys_command); \ 222 M_CP_STROPT(authorized_keys_command); \
219 M_CP_STROPT(authorized_keys_command_user); \ 223 M_CP_STROPT(authorized_keys_command_user); \
224 M_CP_STROPT(authorized_principals_file); \
225 M_CP_STROPT(authorized_principals_command); \
226 M_CP_STROPT(authorized_principals_command_user); \
220 M_CP_STROPT(hostbased_key_types); \ 227 M_CP_STROPT(hostbased_key_types); \
221 M_CP_STROPT(pubkey_key_types); \ 228 M_CP_STROPT(pubkey_key_types); \
222 M_CP_STRARRAYOPT(authorized_keys_files, num_authkeys_files); \ 229 M_CP_STRARRAYOPT(authorized_keys_files, num_authkeys_files); \
diff --git a/session.c b/session.c
index 54bac36a8..5a64715e2 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: session.c,v 1.277 2015/01/16 06:40:12 deraadt Exp $ */ 1/* $OpenBSD: session.c,v 1.278 2015/04/24 01:36:00 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 * All rights reserved 4 * All rights reserved
@@ -997,7 +997,7 @@ child_set_env(char ***envp, u_int *envsizep, const char *name,
997 if (envsize >= 1000) 997 if (envsize >= 1000)
998 fatal("child_set_env: too many env vars"); 998 fatal("child_set_env: too many env vars");
999 envsize += 50; 999 envsize += 50;
1000 env = (*envp) = xrealloc(env, envsize, sizeof(char *)); 1000 env = (*envp) = xreallocarray(env, envsize, sizeof(char *));
1001 *envsizep = envsize; 1001 *envsizep = envsize;
1002 } 1002 }
1003 /* Need to set the NULL pointer at end of array beyond the new slot. */ 1003 /* Need to set the NULL pointer at end of array beyond the new slot. */
@@ -1914,7 +1914,7 @@ session_new(void)
1914 return NULL; 1914 return NULL;
1915 debug2("%s: allocate (allocated %d max %d)", 1915 debug2("%s: allocate (allocated %d max %d)",
1916 __func__, sessions_nalloc, options.max_sessions); 1916 __func__, sessions_nalloc, options.max_sessions);
1917 tmp = xrealloc(sessions, sessions_nalloc + 1, 1917 tmp = xreallocarray(sessions, sessions_nalloc + 1,
1918 sizeof(*sessions)); 1918 sizeof(*sessions));
1919 if (tmp == NULL) { 1919 if (tmp == NULL) {
1920 error("%s: cannot allocate %d sessions", 1920 error("%s: cannot allocate %d sessions",
@@ -2241,7 +2241,7 @@ session_env_req(Session *s)
2241 for (i = 0; i < options.num_accept_env; i++) { 2241 for (i = 0; i < options.num_accept_env; i++) {
2242 if (match_pattern(name, options.accept_env[i])) { 2242 if (match_pattern(name, options.accept_env[i])) {
2243 debug2("Setting env %d: %s=%s", s->num_env, name, val); 2243 debug2("Setting env %d: %s=%s", s->num_env, name, val);
2244 s->env = xrealloc(s->env, s->num_env + 1, 2244 s->env = xreallocarray(s->env, s->num_env + 1,
2245 sizeof(*s->env)); 2245 sizeof(*s->env));
2246 s->env[s->num_env].name = name; 2246 s->env[s->num_env].name = name;
2247 s->env[s->num_env].val = val; 2247 s->env[s->num_env].val = val;
diff --git a/sftp-client.c b/sftp-client.c
index 80f4805cb..5dbeb47c0 100644
--- a/sftp-client.c
+++ b/sftp-client.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp-client.c,v 1.117 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: sftp-client.c,v 1.120 2015/05/28 04:50:53 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> 3 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
4 * 4 *
@@ -408,6 +408,7 @@ do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests,
408 error("Invalid packet back from SSH2_FXP_INIT (type %u)", 408 error("Invalid packet back from SSH2_FXP_INIT (type %u)",
409 type); 409 type);
410 sshbuf_free(msg); 410 sshbuf_free(msg);
411 free(ret);
411 return(NULL); 412 return(NULL);
412 } 413 }
413 if ((r = sshbuf_get_u32(msg, &ret->version)) != 0) 414 if ((r = sshbuf_get_u32(msg, &ret->version)) != 0)
@@ -621,7 +622,7 @@ do_lsreaddir(struct sftp_conn *conn, const char *path, int print_flag,
621 error("Server sent suspect path \"%s\" " 622 error("Server sent suspect path \"%s\" "
622 "during readdir of \"%s\"", filename, path); 623 "during readdir of \"%s\"", filename, path);
623 } else if (dir) { 624 } else if (dir) {
624 *dir = xrealloc(*dir, ents + 2, sizeof(**dir)); 625 *dir = xreallocarray(*dir, ents + 2, sizeof(**dir));
625 (*dir)[ents] = xcalloc(1, sizeof(***dir)); 626 (*dir)[ents] = xcalloc(1, sizeof(***dir));
626 (*dir)[ents]->filename = xstrdup(filename); 627 (*dir)[ents]->filename = xstrdup(filename);
627 (*dir)[ents]->longname = xstrdup(longname); 628 (*dir)[ents]->longname = xstrdup(longname);
@@ -1384,7 +1385,9 @@ do_download(struct sftp_conn *conn, const char *remote_path,
1384 "server reordered requests", local_path); 1385 "server reordered requests", local_path);
1385 } 1386 }
1386 debug("truncating at %llu", (unsigned long long)highwater); 1387 debug("truncating at %llu", (unsigned long long)highwater);
1387 ftruncate(local_fd, highwater); 1388 if (ftruncate(local_fd, highwater) == -1)
1389 error("ftruncate \"%s\": %s", local_path,
1390 strerror(errno));
1388 } 1391 }
1389 if (read_error) { 1392 if (read_error) {
1390 error("Couldn't read from remote file \"%s\" : %s", 1393 error("Couldn't read from remote file \"%s\" : %s",
diff --git a/sftp-client.h b/sftp-client.h
index 507d763ea..f814b07d6 100644
--- a/sftp-client.h
+++ b/sftp-client.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp-client.h,v 1.26 2015/01/14 13:54:13 djm Exp $ */ 1/* $OpenBSD: sftp-client.h,v 1.27 2015/05/08 06:45:13 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> 4 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
@@ -111,7 +111,7 @@ int do_download(struct sftp_conn *, const char *, const char *,
111 Attrib *, int, int, int); 111 Attrib *, int, int, int);
112 112
113/* 113/*
114 * Recursively download 'remote_directory' to 'local_directory'. Preserve 114 * Recursively download 'remote_directory' to 'local_directory'. Preserve
115 * times if 'pflag' is set 115 * times if 'pflag' is set
116 */ 116 */
117int download_dir(struct sftp_conn *, const char *, const char *, 117int download_dir(struct sftp_conn *, const char *, const char *,
@@ -124,7 +124,7 @@ int download_dir(struct sftp_conn *, const char *, const char *,
124int do_upload(struct sftp_conn *, const char *, const char *, int, int, int); 124int do_upload(struct sftp_conn *, const char *, const char *, int, int, int);
125 125
126/* 126/*
127 * Recursively upload 'local_directory' to 'remote_directory'. Preserve 127 * Recursively upload 'local_directory' to 'remote_directory'. Preserve
128 * times if 'pflag' is set 128 * times if 'pflag' is set
129 */ 129 */
130int upload_dir(struct sftp_conn *, const char *, const char *, int, int, int, 130int upload_dir(struct sftp_conn *, const char *, const char *, int, int, int,
diff --git a/sftp-server.c b/sftp-server.c
index 4f735cd93..d1831bf8d 100644
--- a/sftp-server.c
+++ b/sftp-server.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp-server.c,v 1.105 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: sftp-server.c,v 1.106 2015/04/24 01:36:01 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000-2004 Markus Friedl. All rights reserved.
4 * 4 *
@@ -40,7 +40,6 @@
40#include <stdlib.h> 40#include <stdlib.h>
41#include <stdio.h> 41#include <stdio.h>
42#include <string.h> 42#include <string.h>
43#include <pwd.h>
44#include <time.h> 43#include <time.h>
45#include <unistd.h> 44#include <unistd.h>
46#include <stdarg.h> 45#include <stdarg.h>
@@ -310,7 +309,7 @@ handle_new(int use, const char *name, int fd, int flags, DIR *dirp)
310 if (num_handles + 1 <= num_handles) 309 if (num_handles + 1 <= num_handles)
311 return -1; 310 return -1;
312 num_handles++; 311 num_handles++;
313 handles = xrealloc(handles, num_handles, sizeof(Handle)); 312 handles = xreallocarray(handles, num_handles, sizeof(Handle));
314 handle_unused(num_handles - 1); 313 handle_unused(num_handles - 1);
315 } 314 }
316 315
@@ -1063,7 +1062,7 @@ process_readdir(u_int32_t id)
1063 while ((dp = readdir(dirp)) != NULL) { 1062 while ((dp = readdir(dirp)) != NULL) {
1064 if (count >= nstats) { 1063 if (count >= nstats) {
1065 nstats *= 2; 1064 nstats *= 2;
1066 stats = xrealloc(stats, nstats, sizeof(Stat)); 1065 stats = xreallocarray(stats, nstats, sizeof(Stat));
1067 } 1066 }
1068/* XXX OVERFLOW ? */ 1067/* XXX OVERFLOW ? */
1069 snprintf(pathname, sizeof pathname, "%s%s%s", path, 1068 snprintf(pathname, sizeof pathname, "%s%s%s", path,
diff --git a/ssh-add.0 b/ssh-add.0
index 8ee39470a..66493f141 100644
--- a/ssh-add.0
+++ b/ssh-add.0
@@ -29,9 +29,9 @@ DESCRIPTION
29 29
30 -c Indicates that added identities should be subject to confirmation 30 -c Indicates that added identities should be subject to confirmation
31 before being used for authentication. Confirmation is performed 31 before being used for authentication. Confirmation is performed
32 by the SSH_ASKPASS program mentioned below. Successful 32 by ssh-askpass(1). Successful confirmation is signaled by a zero
33 confirmation is signaled by a zero exit status from the 33 exit status from ssh-askpass(1), rather than text entered into
34 SSH_ASKPASS program, rather than text entered into the requester. 34 the requester.
35 35
36 -D Deletes all identities from the agent. 36 -D Deletes all identities from the agent.
37 37
@@ -78,10 +78,11 @@ ENVIRONMENT
78 the current terminal if it was run from a terminal. If ssh-add 78 the current terminal if it was run from a terminal. If ssh-add
79 does not have a terminal associated with it but DISPLAY and 79 does not have a terminal associated with it but DISPLAY and
80 SSH_ASKPASS are set, it will execute the program specified by 80 SSH_ASKPASS are set, it will execute the program specified by
81 SSH_ASKPASS and open an X11 window to read the passphrase. This 81 SSH_ASKPASS (by default M-bM-^@M-^\ssh-askpassM-bM-^@M-^]) and open an X11 window to
82 is particularly useful when calling ssh-add from a .xsession or 82 read the passphrase. This is particularly useful when calling
83 related script. (Note that on some machines it may be necessary 83 ssh-add from a .xsession or related script. (Note that on some
84 to redirect the input from /dev/null to make this work.) 84 machines it may be necessary to redirect the input from /dev/null
85 to make this work.)
85 86
86 SSH_AUTH_SOCK 87 SSH_AUTH_SOCK
87 Identifies the path of a UNIX-domain socket used to communicate 88 Identifies the path of a UNIX-domain socket used to communicate
@@ -116,7 +117,7 @@ EXIT STATUS
116 ssh-add is unable to contact the authentication agent. 117 ssh-add is unable to contact the authentication agent.
117 118
118SEE ALSO 119SEE ALSO
119 ssh(1), ssh-agent(1), ssh-keygen(1), sshd(8) 120 ssh(1), ssh-agent(1), ssh-askpass(1), ssh-keygen(1), sshd(8)
120 121
121AUTHORS 122AUTHORS
122 OpenSSH is a derivative of the original and free ssh 1.2.12 release by 123 OpenSSH is a derivative of the original and free ssh 1.2.12 release by
@@ -125,4 +126,4 @@ AUTHORS
125 created OpenSSH. Markus Friedl contributed the support for SSH protocol 126 created OpenSSH. Markus Friedl contributed the support for SSH protocol
126 versions 1.5 and 2.0. 127 versions 1.5 and 2.0.
127 128
128OpenBSD 5.7 December 21, 2014 OpenBSD 5.7 129OpenBSD 5.7 March 30, 2015 OpenBSD 5.7
diff --git a/ssh-add.1 b/ssh-add.1
index 926456f0b..f02b595d5 100644
--- a/ssh-add.1
+++ b/ssh-add.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: ssh-add.1,v 1.61 2014/12/21 22:27:56 djm Exp $ 1.\" $OpenBSD: ssh-add.1,v 1.62 2015/03/30 18:28:37 jmc Exp $
2.\" 2.\"
3.\" Author: Tatu Ylonen <ylo@cs.hut.fi> 3.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -35,7 +35,7 @@
35.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 35.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
36.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37.\" 37.\"
38.Dd $Mdocdate: December 21 2014 $ 38.Dd $Mdocdate: March 30 2015 $
39.Dt SSH-ADD 1 39.Dt SSH-ADD 1
40.Os 40.Os
41.Sh NAME 41.Sh NAME
@@ -88,12 +88,11 @@ The options are as follows:
88.It Fl c 88.It Fl c
89Indicates that added identities should be subject to confirmation before 89Indicates that added identities should be subject to confirmation before
90being used for authentication. 90being used for authentication.
91Confirmation is performed by the 91Confirmation is performed by
92.Ev SSH_ASKPASS 92.Xr ssh-askpass 1 .
93program mentioned below. 93Successful confirmation is signaled by a zero exit status from
94Successful confirmation is signaled by a zero exit status from the 94.Xr ssh-askpass 1 ,
95.Ev SSH_ASKPASS 95rather than text entered into the requester.
96program, rather than text entered into the requester.
97.It Fl D 96.It Fl D
98Deletes all identities from the agent. 97Deletes all identities from the agent.
99.It Fl d 98.It Fl d
@@ -156,6 +155,8 @@ and
156.Ev SSH_ASKPASS 155.Ev SSH_ASKPASS
157are set, it will execute the program specified by 156are set, it will execute the program specified by
158.Ev SSH_ASKPASS 157.Ev SSH_ASKPASS
158(by default
159.Dq ssh-askpass )
159and open an X11 window to read the passphrase. 160and open an X11 window to read the passphrase.
160This is particularly useful when calling 161This is particularly useful when calling
161.Nm 162.Nm
@@ -197,6 +198,7 @@ is unable to contact the authentication agent.
197.Sh SEE ALSO 198.Sh SEE ALSO
198.Xr ssh 1 , 199.Xr ssh 1 ,
199.Xr ssh-agent 1 , 200.Xr ssh-agent 1 ,
201.Xr ssh-askpass 1 ,
200.Xr ssh-keygen 1 , 202.Xr ssh-keygen 1 ,
201.Xr sshd 8 203.Xr sshd 8
202.Sh AUTHORS 204.Sh AUTHORS
diff --git a/ssh-add.c b/ssh-add.c
index 98d46d3e5..9c8da5437 100644
--- a/ssh-add.c
+++ b/ssh-add.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-add.c,v 1.120 2015/02/21 21:46:57 halex Exp $ */ 1/* $OpenBSD: ssh-add.c,v 1.122 2015/03/26 12:32:38 naddy Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -79,7 +79,9 @@ static char *default_files[] = {
79#endif 79#endif
80#endif /* WITH_OPENSSL */ 80#endif /* WITH_OPENSSL */
81 _PATH_SSH_CLIENT_ID_ED25519, 81 _PATH_SSH_CLIENT_ID_ED25519,
82#ifdef WITH_SSH1
82 _PATH_SSH_CLIENT_IDENTITY, 83 _PATH_SSH_CLIENT_IDENTITY,
84#endif
83 NULL 85 NULL
84}; 86};
85 87
@@ -164,11 +166,10 @@ delete_all(int agent_fd)
164{ 166{
165 int ret = -1; 167 int ret = -1;
166 168
167 if (ssh_remove_all_identities(agent_fd, 1) == 0) 169 if (ssh_remove_all_identities(agent_fd, 2) == 0)
168 ret = 0; 170 ret = 0;
169 /* ignore error-code for ssh2 */ 171 /* ignore error-code for ssh1 */
170 /* XXX revisit */ 172 ssh_remove_all_identities(agent_fd, 1);
171 ssh_remove_all_identities(agent_fd, 2);
172 173
173 if (ret == 0) 174 if (ret == 0)
174 fprintf(stderr, "All identities removed.\n"); 175 fprintf(stderr, "All identities removed.\n");
@@ -364,11 +365,16 @@ static int
364list_identities(int agent_fd, int do_fp) 365list_identities(int agent_fd, int do_fp)
365{ 366{
366 char *fp; 367 char *fp;
367 int version, r, had_identities = 0; 368 int r, had_identities = 0;
368 struct ssh_identitylist *idlist; 369 struct ssh_identitylist *idlist;
369 size_t i; 370 size_t i;
371#ifdef WITH_SSH1
372 int version = 1;
373#else
374 int version = 2;
375#endif
370 376
371 for (version = 1; version <= 2; version++) { 377 for (; version <= 2; version++) {
372 if ((r = ssh_fetch_identitylist(agent_fd, version, 378 if ((r = ssh_fetch_identitylist(agent_fd, version,
373 &idlist)) != 0) { 379 &idlist)) != 0) {
374 if (r != SSH_ERR_AGENT_NO_IDENTITIES) 380 if (r != SSH_ERR_AGENT_NO_IDENTITIES)
diff --git a/ssh-agent.0 b/ssh-agent.0
index 30f4eb3bc..eb892811c 100644
--- a/ssh-agent.0
+++ b/ssh-agent.0
@@ -4,7 +4,7 @@ NAME
4 ssh-agent M-bM-^@M-^S authentication agent 4 ssh-agent M-bM-^@M-^S authentication agent
5 5
6SYNOPSIS 6SYNOPSIS
7 ssh-agent [-c | -s] [-d] [-a bind_address] [-E fingerprint_hash] 7 ssh-agent [-c | -s] [-Dd] [-a bind_address] [-E fingerprint_hash]
8 [-t life] [command [arg ...]] 8 [-t life] [command [arg ...]]
9 ssh-agent [-c | -s] -k 9 ssh-agent [-c | -s] -k
10 10
@@ -32,8 +32,11 @@ DESCRIPTION
32 -c Generate C-shell commands on stdout. This is the default if 32 -c Generate C-shell commands on stdout. This is the default if
33 SHELL looks like it's a csh style of shell. 33 SHELL looks like it's a csh style of shell.
34 34
35 -D Foreground mode. When this option is specified ssh-agent will
36 not fork.
37
35 -d Debug mode. When this option is specified ssh-agent will not 38 -d Debug mode. When this option is specified ssh-agent will not
36 fork. 39 fork and will write debug information to standard error.
37 40
38 -E fingerprint_hash 41 -E fingerprint_hash
39 Specifies the hash algorithm used when displaying key 42 Specifies the hash algorithm used when displaying key
@@ -106,4 +109,4 @@ AUTHORS
106 created OpenSSH. Markus Friedl contributed the support for SSH protocol 109 created OpenSSH. Markus Friedl contributed the support for SSH protocol
107 versions 1.5 and 2.0. 110 versions 1.5 and 2.0.
108 111
109OpenBSD 5.7 December 21, 2014 OpenBSD 5.7 112OpenBSD 5.7 April 24, 2015 OpenBSD 5.7
diff --git a/ssh-agent.1 b/ssh-agent.1
index 6759afec3..d0aa712f1 100644
--- a/ssh-agent.1
+++ b/ssh-agent.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: ssh-agent.1,v 1.57 2014/12/21 22:27:56 djm Exp $ 1.\" $OpenBSD: ssh-agent.1,v 1.59 2015/04/24 06:26:49 jmc Exp $
2.\" 2.\"
3.\" Author: Tatu Ylonen <ylo@cs.hut.fi> 3.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -34,7 +34,7 @@
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36.\" 36.\"
37.Dd $Mdocdate: December 21 2014 $ 37.Dd $Mdocdate: April 24 2015 $
38.Dt SSH-AGENT 1 38.Dt SSH-AGENT 1
39.Os 39.Os
40.Sh NAME 40.Sh NAME
@@ -43,7 +43,7 @@
43.Sh SYNOPSIS 43.Sh SYNOPSIS
44.Nm ssh-agent 44.Nm ssh-agent
45.Op Fl c | s 45.Op Fl c | s
46.Op Fl d 46.Op Fl Dd
47.Op Fl a Ar bind_address 47.Op Fl a Ar bind_address
48.Op Fl E Ar fingerprint_hash 48.Op Fl E Ar fingerprint_hash
49.Op Fl t Ar life 49.Op Fl t Ar life
@@ -92,11 +92,16 @@ Generate C-shell commands on
92This is the default if 92This is the default if
93.Ev SHELL 93.Ev SHELL
94looks like it's a csh style of shell. 94looks like it's a csh style of shell.
95.It Fl D
96Foreground mode.
97When this option is specified
98.Nm
99will not fork.
95.It Fl d 100.It Fl d
96Debug mode. 101Debug mode.
97When this option is specified 102When this option is specified
98.Nm 103.Nm
99will not fork. 104will not fork and will write debug information to standard error.
100.It Fl E Ar fingerprint_hash 105.It Fl E Ar fingerprint_hash
101Specifies the hash algorithm used when displaying key fingerprints. 106Specifies the hash algorithm used when displaying key fingerprints.
102Valid options are: 107Valid options are:
diff --git a/ssh-agent.c b/ssh-agent.c
index aeda656ac..34b19b754 100644
--- a/ssh-agent.c
+++ b/ssh-agent.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-agent.c,v 1.199 2015/03/04 21:12:59 djm Exp $ */ 1/* $OpenBSD: ssh-agent.c,v 1.203 2015/05/15 05:44:21 dtucker Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -68,6 +68,9 @@
68#include <time.h> 68#include <time.h>
69#include <string.h> 69#include <string.h>
70#include <unistd.h> 70#include <unistd.h>
71#ifdef HAVE_UTIL_H
72# include <util.h>
73#endif
71 74
72#include "key.h" /* XXX for typedef */ 75#include "key.h" /* XXX for typedef */
73#include "buffer.h" /* XXX for typedef */ 76#include "buffer.h" /* XXX for typedef */
@@ -140,8 +143,12 @@ char socket_name[PATH_MAX];
140char socket_dir[PATH_MAX]; 143char socket_dir[PATH_MAX];
141 144
142/* locking */ 145/* locking */
146#define LOCK_SIZE 32
147#define LOCK_SALT_SIZE 16
148#define LOCK_ROUNDS 1
143int locked = 0; 149int locked = 0;
144char *lock_passwd = NULL; 150char lock_passwd[LOCK_SIZE];
151char lock_salt[LOCK_SALT_SIZE];
145 152
146extern char *__progname; 153extern char *__progname;
147 154
@@ -660,23 +667,45 @@ send:
660static void 667static void
661process_lock_agent(SocketEntry *e, int lock) 668process_lock_agent(SocketEntry *e, int lock)
662{ 669{
663 int r, success = 0; 670 int r, success = 0, delay;
664 char *passwd; 671 char *passwd, passwdhash[LOCK_SIZE];
672 static u_int fail_count = 0;
673 size_t pwlen;
665 674
666 if ((r = sshbuf_get_cstring(e->request, &passwd, NULL)) != 0) 675 if ((r = sshbuf_get_cstring(e->request, &passwd, &pwlen)) != 0)
667 fatal("%s: buffer error: %s", __func__, ssh_err(r)); 676 fatal("%s: buffer error: %s", __func__, ssh_err(r));
668 if (locked && !lock && strcmp(passwd, lock_passwd) == 0) { 677 if (pwlen == 0) {
669 locked = 0; 678 debug("empty password not supported");
670 explicit_bzero(lock_passwd, strlen(lock_passwd)); 679 } else if (locked && !lock) {
671 free(lock_passwd); 680 if (bcrypt_pbkdf(passwd, pwlen, lock_salt, sizeof(lock_salt),
672 lock_passwd = NULL; 681 passwdhash, sizeof(passwdhash), LOCK_ROUNDS) < 0)
673 success = 1; 682 fatal("bcrypt_pbkdf");
683 if (timingsafe_bcmp(passwdhash, lock_passwd, LOCK_SIZE) == 0) {
684 debug("agent unlocked");
685 locked = 0;
686 fail_count = 0;
687 explicit_bzero(lock_passwd, sizeof(lock_passwd));
688 success = 1;
689 } else {
690 /* delay in 0.1s increments up to 10s */
691 if (fail_count < 100)
692 fail_count++;
693 delay = 100000 * fail_count;
694 debug("unlock failed, delaying %0.1lf seconds",
695 (double)delay/1000000);
696 usleep(delay);
697 }
698 explicit_bzero(passwdhash, sizeof(passwdhash));
674 } else if (!locked && lock) { 699 } else if (!locked && lock) {
700 debug("agent locked");
675 locked = 1; 701 locked = 1;
676 lock_passwd = xstrdup(passwd); 702 arc4random_buf(lock_salt, sizeof(lock_salt));
703 if (bcrypt_pbkdf(passwd, pwlen, lock_salt, sizeof(lock_salt),
704 lock_passwd, sizeof(lock_passwd), LOCK_ROUNDS) < 0)
705 fatal("bcrypt_pbkdf");
677 success = 1; 706 success = 1;
678 } 707 }
679 explicit_bzero(passwd, strlen(passwd)); 708 explicit_bzero(passwd, pwlen);
680 free(passwd); 709 free(passwd);
681 send_status(e, success); 710 send_status(e, success);
682} 711}
@@ -929,7 +958,7 @@ new_socket(sock_type type, int fd)
929 } 958 }
930 old_alloc = sockets_alloc; 959 old_alloc = sockets_alloc;
931 new_alloc = sockets_alloc + 10; 960 new_alloc = sockets_alloc + 10;
932 sockets = xrealloc(sockets, new_alloc, sizeof(sockets[0])); 961 sockets = xreallocarray(sockets, new_alloc, sizeof(sockets[0]));
933 for (i = old_alloc; i < new_alloc; i++) 962 for (i = old_alloc; i < new_alloc; i++)
934 sockets[i].type = AUTH_UNUSED; 963 sockets[i].type = AUTH_UNUSED;
935 sockets_alloc = new_alloc; 964 sockets_alloc = new_alloc;
@@ -1137,7 +1166,7 @@ static void
1137usage(void) 1166usage(void)
1138{ 1167{
1139 fprintf(stderr, 1168 fprintf(stderr,
1140 "usage: ssh-agent [-c | -s] [-d] [-a bind_address] [-E fingerprint_hash]\n" 1169 "usage: ssh-agent [-c | -s] [-Dd] [-a bind_address] [-E fingerprint_hash]\n"
1141 " [-t life] [command [arg ...]]\n" 1170 " [-t life] [command [arg ...]]\n"
1142 " ssh-agent [-c | -s] -k\n"); 1171 " ssh-agent [-c | -s] -k\n");
1143 exit(1); 1172 exit(1);
@@ -1146,7 +1175,7 @@ usage(void)
1146int 1175int
1147main(int ac, char **av) 1176main(int ac, char **av)
1148{ 1177{
1149 int c_flag = 0, d_flag = 0, k_flag = 0, s_flag = 0; 1178 int c_flag = 0, d_flag = 0, D_flag = 0, k_flag = 0, s_flag = 0;
1150 int sock, fd, ch, result, saved_errno; 1179 int sock, fd, ch, result, saved_errno;
1151 u_int nalloc; 1180 u_int nalloc;
1152 char *shell, *format, *pidstr, *agentsocket = NULL; 1181 char *shell, *format, *pidstr, *agentsocket = NULL;
@@ -1181,7 +1210,7 @@ main(int ac, char **av)
1181 __progname = ssh_get_progname(av[0]); 1210 __progname = ssh_get_progname(av[0]);
1182 seed_rng(); 1211 seed_rng();
1183 1212
1184 while ((ch = getopt(ac, av, "cdksE:a:t:")) != -1) { 1213 while ((ch = getopt(ac, av, "cDdksE:a:t:")) != -1) {
1185 switch (ch) { 1214 switch (ch) {
1186 case 'E': 1215 case 'E':
1187 fingerprint_hash = ssh_digest_alg_by_name(optarg); 1216 fingerprint_hash = ssh_digest_alg_by_name(optarg);
@@ -1202,10 +1231,15 @@ main(int ac, char **av)
1202 s_flag++; 1231 s_flag++;
1203 break; 1232 break;
1204 case 'd': 1233 case 'd':
1205 if (d_flag) 1234 if (d_flag || D_flag)
1206 usage(); 1235 usage();
1207 d_flag++; 1236 d_flag++;
1208 break; 1237 break;
1238 case 'D':
1239 if (d_flag || D_flag)
1240 usage();
1241 D_flag++;
1242 break;
1209 case 'a': 1243 case 'a':
1210 agentsocket = optarg; 1244 agentsocket = optarg;
1211 break; 1245 break;
@@ -1222,7 +1256,7 @@ main(int ac, char **av)
1222 ac -= optind; 1256 ac -= optind;
1223 av += optind; 1257 av += optind;
1224 1258
1225 if (ac > 0 && (c_flag || k_flag || s_flag || d_flag)) 1259 if (ac > 0 && (c_flag || k_flag || s_flag || d_flag || D_flag))
1226 usage(); 1260 usage();
1227 1261
1228 if (ac == 0 && !c_flag && !s_flag) { 1262 if (ac == 0 && !c_flag && !s_flag) {
@@ -1291,8 +1325,10 @@ main(int ac, char **av)
1291 * Fork, and have the parent execute the command, if any, or present 1325 * Fork, and have the parent execute the command, if any, or present
1292 * the socket data. The child continues as the authentication agent. 1326 * the socket data. The child continues as the authentication agent.
1293 */ 1327 */
1294 if (d_flag) { 1328 if (D_flag || d_flag) {
1295 log_init(__progname, SYSLOG_LEVEL_DEBUG1, SYSLOG_FACILITY_AUTH, 1); 1329 log_init(__progname,
1330 d_flag ? SYSLOG_LEVEL_DEBUG3 : SYSLOG_LEVEL_INFO,
1331 SYSLOG_FACILITY_AUTH, 1);
1296 format = c_flag ? "setenv %s %s;\n" : "%s=%s; export %s;\n"; 1332 format = c_flag ? "setenv %s %s;\n" : "%s=%s; export %s;\n";
1297 printf(format, SSH_AUTHSOCKET_ENV_NAME, socket_name, 1333 printf(format, SSH_AUTHSOCKET_ENV_NAME, socket_name,
1298 SSH_AUTHSOCKET_ENV_NAME); 1334 SSH_AUTHSOCKET_ENV_NAME);
@@ -1364,7 +1400,7 @@ skip:
1364 parent_alive_interval = 10; 1400 parent_alive_interval = 10;
1365 idtab_init(); 1401 idtab_init();
1366 signal(SIGPIPE, SIG_IGN); 1402 signal(SIGPIPE, SIG_IGN);
1367 signal(SIGINT, d_flag ? cleanup_handler : SIG_IGN); 1403 signal(SIGINT, (d_flag | D_flag) ? cleanup_handler : SIG_IGN);
1368 signal(SIGHUP, cleanup_handler); 1404 signal(SIGHUP, cleanup_handler);
1369 signal(SIGTERM, cleanup_handler); 1405 signal(SIGTERM, cleanup_handler);
1370 nalloc = 0; 1406 nalloc = 0;
diff --git a/ssh-keygen.c b/ssh-keygen.c
index a3c2362a2..8259d87e7 100644
--- a/ssh-keygen.c
+++ b/ssh-keygen.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keygen.c,v 1.266 2015/02/26 20:45:47 djm Exp $ */ 1/* $OpenBSD: ssh-keygen.c,v 1.274 2015/05/28 07:37:31 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1994 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -58,6 +58,12 @@
58#include "krl.h" 58#include "krl.h"
59#include "digest.h" 59#include "digest.h"
60 60
61#ifdef WITH_OPENSSL
62# define DEFAULT_KEY_TYPE_NAME "rsa"
63#else
64# define DEFAULT_KEY_TYPE_NAME "ed25519"
65#endif
66
61/* Number of bits in the RSA/DSA key. This value can be set on the command line. */ 67/* Number of bits in the RSA/DSA key. This value can be set on the command line. */
62#define DEFAULT_BITS 2048 68#define DEFAULT_BITS 2048
63#define DEFAULT_BITS_DSA 1024 69#define DEFAULT_BITS_DSA 1024
@@ -174,23 +180,22 @@ extern char *__progname;
174 180
175char hostname[NI_MAXHOST]; 181char hostname[NI_MAXHOST];
176 182
183#ifdef WITH_OPENSSL
177/* moduli.c */ 184/* moduli.c */
178int gen_candidates(FILE *, u_int32_t, u_int32_t, BIGNUM *); 185int gen_candidates(FILE *, u_int32_t, u_int32_t, BIGNUM *);
179int prime_test(FILE *, FILE *, u_int32_t, u_int32_t, char *, unsigned long, 186int prime_test(FILE *, FILE *, u_int32_t, u_int32_t, char *, unsigned long,
180 unsigned long); 187 unsigned long);
188#endif
181 189
182static void 190static void
183type_bits_valid(int type, const char *name, u_int32_t *bitsp) 191type_bits_valid(int type, const char *name, u_int32_t *bitsp)
184{ 192{
185#ifdef WITH_OPENSSL 193#ifdef WITH_OPENSSL
186 u_int maxbits; 194 u_int maxbits, nid;
187 int nid;
188#endif 195#endif
189 196
190 if (type == KEY_UNSPEC) { 197 if (type == KEY_UNSPEC)
191 fprintf(stderr, "unknown key type %s\n", key_type_name); 198 fatal("unknown key type %s", key_type_name);
192 exit(1);
193 }
194 if (*bitsp == 0) { 199 if (*bitsp == 0) {
195#ifdef WITH_OPENSSL 200#ifdef WITH_OPENSSL
196 if (type == KEY_DSA) 201 if (type == KEY_DSA)
@@ -208,10 +213,8 @@ type_bits_valid(int type, const char *name, u_int32_t *bitsp)
208#ifdef WITH_OPENSSL 213#ifdef WITH_OPENSSL
209 maxbits = (type == KEY_DSA) ? 214 maxbits = (type == KEY_DSA) ?
210 OPENSSL_DSA_MAX_MODULUS_BITS : OPENSSL_RSA_MAX_MODULUS_BITS; 215 OPENSSL_DSA_MAX_MODULUS_BITS : OPENSSL_RSA_MAX_MODULUS_BITS;
211 if (*bitsp > maxbits) { 216 if (*bitsp > maxbits)
212 fprintf(stderr, "key bits exceeds maximum %d\n", maxbits); 217 fatal("key bits exceeds maximum %d", maxbits);
213 exit(1);
214 }
215 if (type == KEY_DSA && *bitsp != 1024) 218 if (type == KEY_DSA && *bitsp != 1024)
216 fatal("DSA keys must be 1024 bits"); 219 fatal("DSA keys must be 1024 bits");
217 else if (type != KEY_ECDSA && type != KEY_ED25519 && *bitsp < 768) 220 else if (type != KEY_ECDSA && type != KEY_ED25519 && *bitsp < 768)
@@ -256,13 +259,13 @@ ask_filename(struct passwd *pw, const char *prompt)
256 name = _PATH_SSH_CLIENT_ID_ED25519; 259 name = _PATH_SSH_CLIENT_ID_ED25519;
257 break; 260 break;
258 default: 261 default:
259 fprintf(stderr, "bad key type\n"); 262 fatal("bad key type");
260 exit(1);
261 break;
262 } 263 }
263 } 264 }
264 snprintf(identity_file, sizeof(identity_file), "%s/%s", pw->pw_dir, name); 265 snprintf(identity_file, sizeof(identity_file),
265 fprintf(stderr, "%s (%s): ", prompt, identity_file); 266 "%s/%s", pw->pw_dir, name);
267 printf("%s (%s): ", prompt, identity_file);
268 fflush(stdout);
266 if (fgets(buf, sizeof(buf), stdin) == NULL) 269 if (fgets(buf, sizeof(buf), stdin) == NULL)
267 exit(1); 270 exit(1);
268 buf[strcspn(buf, "\n")] = '\0'; 271 buf[strcspn(buf, "\n")] = '\0';
@@ -308,14 +311,10 @@ do_convert_to_ssh2(struct passwd *pw, struct sshkey *k)
308 char comment[61]; 311 char comment[61];
309 int r; 312 int r;
310 313
311 if (k->type == KEY_RSA1) { 314 if (k->type == KEY_RSA1)
312 fprintf(stderr, "version 1 keys are not supported\n"); 315 fatal("version 1 keys are not supported");
313 exit(1); 316 if ((r = sshkey_to_blob(k, &blob, &len)) != 0)
314 } 317 fatal("key_to_blob failed: %s", ssh_err(r));
315 if ((r = sshkey_to_blob(k, &blob, &len)) != 0) {
316 fprintf(stderr, "key_to_blob failed: %s\n", ssh_err(r));
317 exit(1);
318 }
319 /* Comment + surrounds must fit into 72 chars (RFC 4716 sec 3.3) */ 318 /* Comment + surrounds must fit into 72 chars (RFC 4716 sec 3.3) */
320 snprintf(comment, sizeof(comment), 319 snprintf(comment, sizeof(comment),
321 "%u-bit %s, converted by %s@%s from OpenSSH", 320 "%u-bit %s, converted by %s@%s from OpenSSH",
@@ -544,17 +543,13 @@ get_line(FILE *fp, char *line, size_t len)
544 543
545 line[0] = '\0'; 544 line[0] = '\0';
546 while ((c = fgetc(fp)) != EOF) { 545 while ((c = fgetc(fp)) != EOF) {
547 if (pos >= len - 1) { 546 if (pos >= len - 1)
548 fprintf(stderr, "input line too long.\n"); 547 fatal("input line too long.");
549 exit(1);
550 }
551 switch (c) { 548 switch (c) {
552 case '\r': 549 case '\r':
553 c = fgetc(fp); 550 c = fgetc(fp);
554 if (c != EOF && c != '\n' && ungetc(c, fp) == EOF) { 551 if (c != EOF && c != '\n' && ungetc(c, fp) == EOF)
555 fprintf(stderr, "unget: %s\n", strerror(errno)); 552 fatal("unget: %s", strerror(errno));
556 exit(1);
557 }
558 return pos; 553 return pos;
559 case '\n': 554 case '\n':
560 return pos; 555 return pos;
@@ -606,16 +601,12 @@ do_convert_from_ssh2(struct passwd *pw, struct sshkey **k, int *private)
606 (encoded[len-3] == '=')) 601 (encoded[len-3] == '='))
607 encoded[len-3] = '\0'; 602 encoded[len-3] = '\0';
608 blen = uudecode(encoded, blob, sizeof(blob)); 603 blen = uudecode(encoded, blob, sizeof(blob));
609 if (blen < 0) { 604 if (blen < 0)
610 fprintf(stderr, "uudecode failed.\n"); 605 fatal("uudecode failed.");
611 exit(1);
612 }
613 if (*private) 606 if (*private)
614 *k = do_convert_private_ssh2_from_blob(blob, blen); 607 *k = do_convert_private_ssh2_from_blob(blob, blen);
615 else if ((r = sshkey_from_blob(blob, blen, k)) != 0) { 608 else if ((r = sshkey_from_blob(blob, blen, k)) != 0)
616 fprintf(stderr, "decode blob failed: %s\n", ssh_err(r)); 609 fatal("decode blob failed: %s", ssh_err(r));
617 exit(1);
618 }
619 fclose(fp); 610 fclose(fp);
620} 611}
621 612
@@ -749,10 +740,8 @@ do_convert_from(struct passwd *pw)
749 } 740 }
750 } 741 }
751 742
752 if (!ok) { 743 if (!ok)
753 fprintf(stderr, "key write failed\n"); 744 fatal("key write failed");
754 exit(1);
755 }
756 sshkey_free(k); 745 sshkey_free(k);
757 exit(0); 746 exit(0);
758} 747}
@@ -767,13 +756,11 @@ do_print_public(struct passwd *pw)
767 756
768 if (!have_identity) 757 if (!have_identity)
769 ask_filename(pw, "Enter file in which the key is"); 758 ask_filename(pw, "Enter file in which the key is");
770 if (stat(identity_file, &st) < 0) { 759 if (stat(identity_file, &st) < 0)
771 perror(identity_file); 760 fatal("%s: %s", identity_file, strerror(errno));
772 exit(1);
773 }
774 prv = load_identity(identity_file); 761 prv = load_identity(identity_file);
775 if ((r = sshkey_write(prv, stdout)) != 0) 762 if ((r = sshkey_write(prv, stdout)) != 0)
776 fprintf(stderr, "key_write failed: %s", ssh_err(r)); 763 error("key_write failed: %s", ssh_err(r));
777 sshkey_free(prv); 764 sshkey_free(prv);
778 fprintf(stdout, "\n"); 765 fprintf(stdout, "\n");
779 exit(0); 766 exit(0);
@@ -838,10 +825,8 @@ do_fingerprint(struct passwd *pw)
838 rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT; 825 rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT;
839 if (!have_identity) 826 if (!have_identity)
840 ask_filename(pw, "Enter file in which the key is"); 827 ask_filename(pw, "Enter file in which the key is");
841 if (stat(identity_file, &st) < 0) { 828 if (stat(identity_file, &st) < 0)
842 perror(identity_file); 829 fatal("%s: %s", identity_file, strerror(errno));
843 exit(1);
844 }
845 if ((r = sshkey_load_public(identity_file, &public, &comment)) != 0) 830 if ((r = sshkey_load_public(identity_file, &public, &comment)) != 0)
846 debug2("Error loading public key \"%s\": %s", 831 debug2("Error loading public key \"%s\": %s",
847 identity_file, ssh_err(r)); 832 identity_file, ssh_err(r));
@@ -933,10 +918,8 @@ do_fingerprint(struct passwd *pw)
933 } 918 }
934 fclose(f); 919 fclose(f);
935 920
936 if (invalid) { 921 if (invalid)
937 printf("%s is not a public key file.\n", identity_file); 922 fatal("%s is not a public key file.", identity_file);
938 exit(1);
939 }
940 exit(0); 923 exit(0);
941} 924}
942 925
@@ -948,12 +931,16 @@ do_gen_all_hostkeys(struct passwd *pw)
948 char *key_type_display; 931 char *key_type_display;
949 char *path; 932 char *path;
950 } key_types[] = { 933 } key_types[] = {
934#ifdef WITH_OPENSSL
935#ifdef WITH_SSH1
951 { "rsa1", "RSA1", _PATH_HOST_KEY_FILE }, 936 { "rsa1", "RSA1", _PATH_HOST_KEY_FILE },
937#endif /* WITH_SSH1 */
952 { "rsa", "RSA" ,_PATH_HOST_RSA_KEY_FILE }, 938 { "rsa", "RSA" ,_PATH_HOST_RSA_KEY_FILE },
953 { "dsa", "DSA", _PATH_HOST_DSA_KEY_FILE }, 939 { "dsa", "DSA", _PATH_HOST_DSA_KEY_FILE },
954#ifdef OPENSSL_HAS_ECC 940#ifdef OPENSSL_HAS_ECC
955 { "ecdsa", "ECDSA",_PATH_HOST_ECDSA_KEY_FILE }, 941 { "ecdsa", "ECDSA",_PATH_HOST_ECDSA_KEY_FILE },
956#endif 942#endif /* OPENSSL_HAS_ECC */
943#endif /* WITH_OPENSSL */
957 { "ed25519", "ED25519",_PATH_HOST_ED25519_KEY_FILE }, 944 { "ed25519", "ED25519",_PATH_HOST_ED25519_KEY_FILE },
958 { NULL, NULL, NULL } 945 { NULL, NULL, NULL }
959 }; 946 };
@@ -969,7 +956,7 @@ do_gen_all_hostkeys(struct passwd *pw)
969 if (stat(key_types[i].path, &st) == 0) 956 if (stat(key_types[i].path, &st) == 0)
970 continue; 957 continue;
971 if (errno != ENOENT) { 958 if (errno != ENOENT) {
972 printf("Could not stat %s: %s", key_types[i].path, 959 error("Could not stat %s: %s", key_types[i].path,
973 strerror(errno)); 960 strerror(errno));
974 first = 0; 961 first = 0;
975 continue; 962 continue;
@@ -986,8 +973,7 @@ do_gen_all_hostkeys(struct passwd *pw)
986 bits = 0; 973 bits = 0;
987 type_bits_valid(type, NULL, &bits); 974 type_bits_valid(type, NULL, &bits);
988 if ((r = sshkey_generate(type, bits, &private)) != 0) { 975 if ((r = sshkey_generate(type, bits, &private)) != 0) {
989 fprintf(stderr, "key_generate failed: %s\n", 976 error("key_generate failed: %s", ssh_err(r));
990 ssh_err(r));
991 first = 0; 977 first = 0;
992 continue; 978 continue;
993 } 979 }
@@ -997,8 +983,8 @@ do_gen_all_hostkeys(struct passwd *pw)
997 hostname); 983 hostname);
998 if ((r = sshkey_save_private(private, identity_file, "", 984 if ((r = sshkey_save_private(private, identity_file, "",
999 comment, use_new_format, new_format_cipher, rounds)) != 0) { 985 comment, use_new_format, new_format_cipher, rounds)) != 0) {
1000 printf("Saving key \"%s\" failed: %s\n", identity_file, 986 error("Saving key \"%s\" failed: %s",
1001 ssh_err(r)); 987 identity_file, ssh_err(r));
1002 sshkey_free(private); 988 sshkey_free(private);
1003 sshkey_free(public); 989 sshkey_free(public);
1004 first = 0; 990 first = 0;
@@ -1008,7 +994,7 @@ do_gen_all_hostkeys(struct passwd *pw)
1008 strlcat(identity_file, ".pub", sizeof(identity_file)); 994 strlcat(identity_file, ".pub", sizeof(identity_file));
1009 fd = open(identity_file, O_WRONLY | O_CREAT | O_TRUNC, 0644); 995 fd = open(identity_file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
1010 if (fd == -1) { 996 if (fd == -1) {
1011 printf("Could not save your public key in %s\n", 997 error("Could not save your public key in %s",
1012 identity_file); 998 identity_file);
1013 sshkey_free(public); 999 sshkey_free(public);
1014 first = 0; 1000 first = 0;
@@ -1016,14 +1002,14 @@ do_gen_all_hostkeys(struct passwd *pw)
1016 } 1002 }
1017 f = fdopen(fd, "w"); 1003 f = fdopen(fd, "w");
1018 if (f == NULL) { 1004 if (f == NULL) {
1019 printf("fdopen %s failed\n", identity_file); 1005 error("fdopen %s failed", identity_file);
1020 close(fd); 1006 close(fd);
1021 sshkey_free(public); 1007 sshkey_free(public);
1022 first = 0; 1008 first = 0;
1023 continue; 1009 continue;
1024 } 1010 }
1025 if ((r = sshkey_write(public, f)) != 0) { 1011 if ((r = sshkey_write(public, f)) != 0) {
1026 fprintf(stderr, "write key failed: %s\n", ssh_err(r)); 1012 error("write key failed: %s", ssh_err(r));
1027 fclose(f); 1013 fclose(f);
1028 sshkey_free(public); 1014 sshkey_free(public);
1029 first = 0; 1015 first = 0;
@@ -1064,8 +1050,8 @@ known_hosts_hash(struct hostkey_foreach_line *l, void *_ctx)
1064 has_wild || l->marker != MRK_NONE) { 1050 has_wild || l->marker != MRK_NONE) {
1065 fprintf(ctx->out, "%s\n", l->line); 1051 fprintf(ctx->out, "%s\n", l->line);
1066 if (has_wild && !find_host) { 1052 if (has_wild && !find_host) {
1067 fprintf(stderr, "%s:%ld: ignoring host name " 1053 logit("%s:%ld: ignoring host name "
1068 "with wildcard: %.64s\n", l->path, 1054 "with wildcard: %.64s", l->path,
1069 l->linenum, l->hosts); 1055 l->linenum, l->hosts);
1070 } 1056 }
1071 return 0; 1057 return 0;
@@ -1086,7 +1072,7 @@ known_hosts_hash(struct hostkey_foreach_line *l, void *_ctx)
1086 case HKF_STATUS_INVALID: 1072 case HKF_STATUS_INVALID:
1087 /* Retain invalid lines, but mark file as invalid. */ 1073 /* Retain invalid lines, but mark file as invalid. */
1088 ctx->invalid = 1; 1074 ctx->invalid = 1;
1089 fprintf(stderr, "%s:%ld: invalid line\n", l->path, l->linenum); 1075 logit("%s:%ld: invalid line", l->path, l->linenum);
1090 /* FALLTHROUGH */ 1076 /* FALLTHROUGH */
1091 default: 1077 default:
1092 fprintf(ctx->out, "%s\n", l->line); 1078 fprintf(ctx->out, "%s\n", l->line);
@@ -1100,6 +1086,12 @@ static int
1100known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx) 1086known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx)
1101{ 1087{
1102 struct known_hosts_ctx *ctx = (struct known_hosts_ctx *)_ctx; 1088 struct known_hosts_ctx *ctx = (struct known_hosts_ctx *)_ctx;
1089 enum sshkey_fp_rep rep;
1090 int fptype;
1091 char *fp;
1092
1093 fptype = print_bubblebabble ? SSH_DIGEST_SHA1 : fingerprint_hash;
1094 rep = print_bubblebabble ? SSH_FP_BUBBLEBABBLE : SSH_FP_DEFAULT;
1103 1095
1104 if (l->status == HKF_STATUS_MATCHED) { 1096 if (l->status == HKF_STATUS_MATCHED) {
1105 if (delete_host) { 1097 if (delete_host) {
@@ -1128,7 +1120,12 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx)
1128 } 1120 }
1129 if (hash_hosts) 1121 if (hash_hosts)
1130 known_hosts_hash(l, ctx); 1122 known_hosts_hash(l, ctx);
1131 else 1123 else if (print_fingerprint) {
1124 fp = sshkey_fingerprint(l->key, fptype, rep);
1125 printf("%s %s %s %s\n", ctx->host,
1126 sshkey_type(l->key), fp, l->comment);
1127 free(fp);
1128 } else
1132 fprintf(ctx->out, "%s\n", l->line); 1129 fprintf(ctx->out, "%s\n", l->line);
1133 return 0; 1130 return 0;
1134 } 1131 }
@@ -1136,8 +1133,7 @@ known_hosts_find_delete(struct hostkey_foreach_line *l, void *_ctx)
1136 /* Retain non-matching hosts when deleting */ 1133 /* Retain non-matching hosts when deleting */
1137 if (l->status == HKF_STATUS_INVALID) { 1134 if (l->status == HKF_STATUS_INVALID) {
1138 ctx->invalid = 1; 1135 ctx->invalid = 1;
1139 fprintf(stderr, "%s:%ld: invalid line\n", 1136 logit("%s:%ld: invalid line", l->path, l->linenum);
1140 l->path, l->linenum);
1141 } 1137 }
1142 fprintf(ctx->out, "%s\n", l->line); 1138 fprintf(ctx->out, "%s\n", l->line);
1143 } 1139 }
@@ -1150,6 +1146,7 @@ do_known_hosts(struct passwd *pw, const char *name)
1150 char *cp, tmp[PATH_MAX], old[PATH_MAX]; 1146 char *cp, tmp[PATH_MAX], old[PATH_MAX];
1151 int r, fd, oerrno, inplace = 0; 1147 int r, fd, oerrno, inplace = 0;
1152 struct known_hosts_ctx ctx; 1148 struct known_hosts_ctx ctx;
1149 u_int foreach_options;
1153 1150
1154 if (!have_identity) { 1151 if (!have_identity) {
1155 cp = tilde_expand_filename(_PATH_SSH_USER_HOSTFILE, pw->pw_uid); 1152 cp = tilde_expand_filename(_PATH_SSH_USER_HOSTFILE, pw->pw_uid);
@@ -1186,26 +1183,26 @@ do_known_hosts(struct passwd *pw, const char *name)
1186 } 1183 }
1187 1184
1188 /* XXX support identity_file == "-" for stdin */ 1185 /* XXX support identity_file == "-" for stdin */
1186 foreach_options = find_host ? HKF_WANT_MATCH : 0;
1187 foreach_options |= print_fingerprint ? HKF_WANT_PARSE_KEY : 0;
1189 if ((r = hostkeys_foreach(identity_file, 1188 if ((r = hostkeys_foreach(identity_file,
1190 hash_hosts ? known_hosts_hash : known_hosts_find_delete, &ctx, 1189 hash_hosts ? known_hosts_hash : known_hosts_find_delete, &ctx,
1191 name, NULL, find_host ? HKF_WANT_MATCH : 0)) != 0) 1190 name, NULL, foreach_options)) != 0)
1192 fatal("%s: hostkeys_foreach failed: %s", __func__, ssh_err(r)); 1191 fatal("%s: hostkeys_foreach failed: %s", __func__, ssh_err(r));
1193 1192
1194 if (inplace) 1193 if (inplace)
1195 fclose(ctx.out); 1194 fclose(ctx.out);
1196 1195
1197 if (ctx.invalid) { 1196 if (ctx.invalid) {
1198 fprintf(stderr, "%s is not a valid known_hosts file.\n", 1197 error("%s is not a valid known_hosts file.", identity_file);
1199 identity_file);
1200 if (inplace) { 1198 if (inplace) {
1201 fprintf(stderr, "Not replacing existing known_hosts " 1199 error("Not replacing existing known_hosts "
1202 "file because of errors\n"); 1200 "file because of errors");
1203 unlink(tmp); 1201 unlink(tmp);
1204 } 1202 }
1205 exit(1); 1203 exit(1);
1206 } else if (delete_host && !ctx.found_key) { 1204 } else if (delete_host && !ctx.found_key) {
1207 fprintf(stderr, "Host %s not found in %s\n", 1205 logit("Host %s not found in %s", name, identity_file);
1208 name, identity_file);
1209 unlink(tmp); 1206 unlink(tmp);
1210 } else if (inplace) { 1207 } else if (inplace) {
1211 /* Backup existing file */ 1208 /* Backup existing file */
@@ -1223,13 +1220,12 @@ do_known_hosts(struct passwd *pw, const char *name)
1223 exit(1); 1220 exit(1);
1224 } 1221 }
1225 1222
1226 fprintf(stderr, "%s updated.\n", identity_file); 1223 printf("%s updated.\n", identity_file);
1227 fprintf(stderr, "Original contents retained as %s\n", old); 1224 printf("Original contents retained as %s\n", old);
1228 if (ctx.has_unhashed) { 1225 if (ctx.has_unhashed) {
1229 fprintf(stderr, "WARNING: %s contains unhashed " 1226 logit("WARNING: %s contains unhashed entries", old);
1230 "entries\n", old); 1227 logit("Delete this file to ensure privacy "
1231 fprintf(stderr, "Delete this file to ensure privacy " 1228 "of hostnames");
1232 "of hostnames\n");
1233 } 1229 }
1234 } 1230 }
1235 1231
@@ -1251,10 +1247,8 @@ do_change_passphrase(struct passwd *pw)
1251 1247
1252 if (!have_identity) 1248 if (!have_identity)
1253 ask_filename(pw, "Enter file in which the key is"); 1249 ask_filename(pw, "Enter file in which the key is");
1254 if (stat(identity_file, &st) < 0) { 1250 if (stat(identity_file, &st) < 0)
1255 perror(identity_file); 1251 fatal("%s: %s", identity_file, strerror(errno));
1256 exit(1);
1257 }
1258 /* Try to load the file with empty passphrase. */ 1252 /* Try to load the file with empty passphrase. */
1259 r = sshkey_load_private(identity_file, "", &private, &comment); 1253 r = sshkey_load_private(identity_file, "", &private, &comment);
1260 if (r == SSH_ERR_KEY_WRONG_PASSPHRASE) { 1254 if (r == SSH_ERR_KEY_WRONG_PASSPHRASE) {
@@ -1272,9 +1266,7 @@ do_change_passphrase(struct passwd *pw)
1272 goto badkey; 1266 goto badkey;
1273 } else if (r != 0) { 1267 } else if (r != 0) {
1274 badkey: 1268 badkey:
1275 fprintf(stderr, "Failed to load key \"%s\": %s\n", 1269 fatal("Failed to load key %s: %s", identity_file, ssh_err(r));
1276 identity_file, ssh_err(r));
1277 exit(1);
1278 } 1270 }
1279 if (comment) 1271 if (comment)
1280 printf("Key has comment '%s'\n", comment); 1272 printf("Key has comment '%s'\n", comment);
@@ -1307,7 +1299,7 @@ do_change_passphrase(struct passwd *pw)
1307 /* Save the file using the new passphrase. */ 1299 /* Save the file using the new passphrase. */
1308 if ((r = sshkey_save_private(private, identity_file, passphrase1, 1300 if ((r = sshkey_save_private(private, identity_file, passphrase1,
1309 comment, use_new_format, new_format_cipher, rounds)) != 0) { 1301 comment, use_new_format, new_format_cipher, rounds)) != 0) {
1310 printf("Saving key \"%s\" failed: %s.\n", 1302 error("Saving key \"%s\" failed: %s.",
1311 identity_file, ssh_err(r)); 1303 identity_file, ssh_err(r));
1312 explicit_bzero(passphrase1, strlen(passphrase1)); 1304 explicit_bzero(passphrase1, strlen(passphrase1));
1313 free(passphrase1); 1305 free(passphrase1);
@@ -1341,14 +1333,11 @@ do_print_resource_record(struct passwd *pw, char *fname, char *hname)
1341 if (stat(fname, &st) < 0) { 1333 if (stat(fname, &st) < 0) {
1342 if (errno == ENOENT) 1334 if (errno == ENOENT)
1343 return 0; 1335 return 0;
1344 perror(fname); 1336 fatal("%s: %s", fname, strerror(errno));
1345 exit(1);
1346 } 1337 }
1347 if ((r = sshkey_load_public(fname, &public, &comment)) != 0) { 1338 if ((r = sshkey_load_public(fname, &public, &comment)) != 0)
1348 printf("Failed to read v2 public key from \"%s\": %s.\n", 1339 fatal("Failed to read v2 public key from \"%s\": %s.",
1349 fname, ssh_err(r)); 1340 fname, ssh_err(r));
1350 exit(1);
1351 }
1352 export_dns_rr(hname, public, stdout, print_generic); 1341 export_dns_rr(hname, public, stdout, print_generic);
1353 sshkey_free(public); 1342 sshkey_free(public);
1354 free(comment); 1343 free(comment);
@@ -1370,18 +1359,15 @@ do_change_comment(struct passwd *pw)
1370 1359
1371 if (!have_identity) 1360 if (!have_identity)
1372 ask_filename(pw, "Enter file in which the key is"); 1361 ask_filename(pw, "Enter file in which the key is");
1373 if (stat(identity_file, &st) < 0) { 1362 if (stat(identity_file, &st) < 0)
1374 perror(identity_file); 1363 fatal("%s: %s", identity_file, strerror(errno));
1375 exit(1);
1376 }
1377 if ((r = sshkey_load_private(identity_file, "", 1364 if ((r = sshkey_load_private(identity_file, "",
1378 &private, &comment)) == 0) 1365 &private, &comment)) == 0)
1379 passphrase = xstrdup(""); 1366 passphrase = xstrdup("");
1380 else if (r != SSH_ERR_KEY_WRONG_PASSPHRASE) { 1367 else if (r != SSH_ERR_KEY_WRONG_PASSPHRASE)
1381 printf("Cannot load private key \"%s\": %s.\n", 1368 fatal("Cannot load private key \"%s\": %s.",
1382 identity_file, ssh_err(r)); 1369 identity_file, ssh_err(r));
1383 exit(1); 1370 else {
1384 } else {
1385 if (identity_passphrase) 1371 if (identity_passphrase)
1386 passphrase = xstrdup(identity_passphrase); 1372 passphrase = xstrdup(identity_passphrase);
1387 else if (identity_new_passphrase) 1373 else if (identity_new_passphrase)
@@ -1394,13 +1380,14 @@ do_change_comment(struct passwd *pw)
1394 &private, &comment)) != 0) { 1380 &private, &comment)) != 0) {
1395 explicit_bzero(passphrase, strlen(passphrase)); 1381 explicit_bzero(passphrase, strlen(passphrase));
1396 free(passphrase); 1382 free(passphrase);
1397 printf("Cannot load private key \"%s\": %s.\n", 1383 fatal("Cannot load private key \"%s\": %s.",
1398 identity_file, ssh_err(r)); 1384 identity_file, ssh_err(r));
1399 exit(1);
1400 } 1385 }
1401 } 1386 }
1387 /* XXX what about new-format keys? */
1402 if (private->type != KEY_RSA1) { 1388 if (private->type != KEY_RSA1) {
1403 fprintf(stderr, "Comments are only supported for RSA1 keys.\n"); 1389 error("Comments are only supported for RSA1 keys.");
1390 explicit_bzero(passphrase, strlen(passphrase));
1404 sshkey_free(private); 1391 sshkey_free(private);
1405 exit(1); 1392 exit(1);
1406 } 1393 }
@@ -1422,7 +1409,7 @@ do_change_comment(struct passwd *pw)
1422 /* Save the file using the new passphrase. */ 1409 /* Save the file using the new passphrase. */
1423 if ((r = sshkey_save_private(private, identity_file, passphrase, 1410 if ((r = sshkey_save_private(private, identity_file, passphrase,
1424 new_comment, use_new_format, new_format_cipher, rounds)) != 0) { 1411 new_comment, use_new_format, new_format_cipher, rounds)) != 0) {
1425 printf("Saving key \"%s\" failed: %s\n", 1412 error("Saving key \"%s\" failed: %s",
1426 identity_file, ssh_err(r)); 1413 identity_file, ssh_err(r));
1427 explicit_bzero(passphrase, strlen(passphrase)); 1414 explicit_bzero(passphrase, strlen(passphrase));
1428 free(passphrase); 1415 free(passphrase);
@@ -1438,17 +1425,13 @@ do_change_comment(struct passwd *pw)
1438 1425
1439 strlcat(identity_file, ".pub", sizeof(identity_file)); 1426 strlcat(identity_file, ".pub", sizeof(identity_file));
1440 fd = open(identity_file, O_WRONLY | O_CREAT | O_TRUNC, 0644); 1427 fd = open(identity_file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
1441 if (fd == -1) { 1428 if (fd == -1)
1442 printf("Could not save your public key in %s\n", identity_file); 1429 fatal("Could not save your public key in %s", identity_file);
1443 exit(1);
1444 }
1445 f = fdopen(fd, "w"); 1430 f = fdopen(fd, "w");
1446 if (f == NULL) { 1431 if (f == NULL)
1447 printf("fdopen %s failed\n", identity_file); 1432 fatal("fdopen %s failed: %s", identity_file, strerror(errno));
1448 exit(1);
1449 }
1450 if ((r = sshkey_write(public, f)) != 0) 1433 if ((r = sshkey_write(public, f)) != 0)
1451 fprintf(stderr, "write key failed: %s\n", ssh_err(r)); 1434 fatal("write key failed: %s", ssh_err(r));
1452 sshkey_free(public); 1435 sshkey_free(public);
1453 fprintf(f, " %s\n", new_comment); 1436 fprintf(f, " %s\n", new_comment);
1454 fclose(f); 1437 fclose(f);
@@ -1608,8 +1591,7 @@ do_ca_sign(struct passwd *pw, int argc, char **argv)
1608 break; 1591 break;
1609 /* FALLTHROUGH */ 1592 /* FALLTHROUGH */
1610 default: 1593 default:
1611 fprintf(stderr, "unknown key type %s\n", key_type_name); 1594 fatal("unknown key type %s", key_type_name);
1612 exit(1);
1613 } 1595 }
1614 } 1596 }
1615 1597
@@ -1631,7 +1613,7 @@ do_ca_sign(struct passwd *pw, int argc, char **argv)
1631 otmp = tmp = xstrdup(cert_principals); 1613 otmp = tmp = xstrdup(cert_principals);
1632 plist = NULL; 1614 plist = NULL;
1633 for (; (cp = strsep(&tmp, ",")) != NULL; n++) { 1615 for (; (cp = strsep(&tmp, ",")) != NULL; n++) {
1634 plist = xrealloc(plist, n + 1, sizeof(*plist)); 1616 plist = xreallocarray(plist, n + 1, sizeof(*plist));
1635 if (*(plist[n] = xstrdup(cp)) == '\0') 1617 if (*(plist[n] = xstrdup(cp)) == '\0')
1636 fatal("Empty principal name"); 1618 fatal("Empty principal name");
1637 } 1619 }
@@ -2216,9 +2198,11 @@ usage(void)
2216 " ssh-keygen -H [-f known_hosts_file]\n" 2198 " ssh-keygen -H [-f known_hosts_file]\n"
2217 " ssh-keygen -R hostname [-f known_hosts_file]\n" 2199 " ssh-keygen -R hostname [-f known_hosts_file]\n"
2218 " ssh-keygen -r hostname [-f input_keyfile] [-g]\n" 2200 " ssh-keygen -r hostname [-f input_keyfile] [-g]\n"
2201#ifdef WITH_OPENSSL
2219 " ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]\n" 2202 " ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]\n"
2220 " ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]\n" 2203 " ssh-keygen -T output_file -f input_file [-v] [-a rounds] [-J num_lines]\n"
2221 " [-j start_line] [-K checkpt] [-W generator]\n" 2204 " [-j start_line] [-K checkpt] [-W generator]\n"
2205#endif
2222 " ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]\n" 2206 " ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]\n"
2223 " [-O option] [-V validity_interval] [-z serial_number] file ...\n" 2207 " [-O option] [-V validity_interval] [-z serial_number] file ...\n"
2224 " ssh-keygen -L [-f input_keyfile]\n" 2208 " ssh-keygen -L [-f input_keyfile]\n"
@@ -2236,19 +2220,22 @@ int
2236main(int argc, char **argv) 2220main(int argc, char **argv)
2237{ 2221{
2238 char dotsshdir[PATH_MAX], comment[1024], *passphrase1, *passphrase2; 2222 char dotsshdir[PATH_MAX], comment[1024], *passphrase1, *passphrase2;
2239 char *checkpoint = NULL; 2223 char *rr_hostname = NULL, *ep, *fp, *ra;
2240 char out_file[PATH_MAX], *rr_hostname = NULL, *ep, *fp, *ra;
2241 struct sshkey *private, *public; 2224 struct sshkey *private, *public;
2242 struct passwd *pw; 2225 struct passwd *pw;
2243 struct stat st; 2226 struct stat st;
2244 int r, opt, type, fd; 2227 int r, opt, type, fd;
2228 int gen_all_hostkeys = 0, gen_krl = 0, update_krl = 0, check_krl = 0;
2229 FILE *f;
2230 const char *errstr;
2231#ifdef WITH_OPENSSL
2232 /* Moduli generation/screening */
2233 char out_file[PATH_MAX], *checkpoint = NULL;
2245 u_int32_t memory = 0, generator_wanted = 0; 2234 u_int32_t memory = 0, generator_wanted = 0;
2246 int do_gen_candidates = 0, do_screen_candidates = 0; 2235 int do_gen_candidates = 0, do_screen_candidates = 0;
2247 int gen_all_hostkeys = 0, gen_krl = 0, update_krl = 0, check_krl = 0;
2248 unsigned long start_lineno = 0, lines_to_process = 0; 2236 unsigned long start_lineno = 0, lines_to_process = 0;
2249 BIGNUM *start = NULL; 2237 BIGNUM *start = NULL;
2250 FILE *f; 2238#endif
2251 const char *errstr;
2252 2239
2253 extern int optind; 2240 extern int optind;
2254 extern char *optarg; 2241 extern char *optarg;
@@ -2267,14 +2254,10 @@ main(int argc, char **argv)
2267 2254
2268 /* we need this for the home * directory. */ 2255 /* we need this for the home * directory. */
2269 pw = getpwuid(getuid()); 2256 pw = getpwuid(getuid());
2270 if (!pw) { 2257 if (!pw)
2271 printf("No user exists for uid %lu\n", (u_long)getuid()); 2258 fatal("No user exists for uid %lu", (u_long)getuid());
2272 exit(1); 2259 if (gethostname(hostname, sizeof(hostname)) < 0)
2273 } 2260 fatal("gethostname: %s", strerror(errno));
2274 if (gethostname(hostname, sizeof(hostname)) < 0) {
2275 perror("gethostname");
2276 exit(1);
2277 }
2278 2261
2279 /* Remaining characters: UYdw */ 2262 /* Remaining characters: UYdw */
2280 while ((opt = getopt(argc, argv, "ABHLQXceghiklopquvxy" 2263 while ((opt = getopt(argc, argv, "ABHLQXceghiklopquvxy"
@@ -2305,12 +2288,6 @@ main(int argc, char **argv)
2305 case 'I': 2288 case 'I':
2306 cert_key_id = optarg; 2289 cert_key_id = optarg;
2307 break; 2290 break;
2308 case 'J':
2309 lines_to_process = strtoul(optarg, NULL, 10);
2310 break;
2311 case 'j':
2312 start_lineno = strtoul(optarg, NULL, 10);
2313 break;
2314 case 'R': 2291 case 'R':
2315 delete_host = 1; 2292 delete_host = 1;
2316 rr_hostname = optarg; 2293 rr_hostname = optarg;
@@ -2352,8 +2329,8 @@ main(int argc, char **argv)
2352 change_comment = 1; 2329 change_comment = 1;
2353 break; 2330 break;
2354 case 'f': 2331 case 'f':
2355 if (strlcpy(identity_file, optarg, sizeof(identity_file)) >= 2332 if (strlcpy(identity_file, optarg,
2356 sizeof(identity_file)) 2333 sizeof(identity_file)) >= sizeof(identity_file))
2357 fatal("Identity filename too long"); 2334 fatal("Identity filename too long");
2358 have_identity = 1; 2335 have_identity = 1;
2359 break; 2336 break;
@@ -2425,20 +2402,31 @@ main(int argc, char **argv)
2425 case 'r': 2402 case 'r':
2426 rr_hostname = optarg; 2403 rr_hostname = optarg;
2427 break; 2404 break;
2428 case 'W':
2429 generator_wanted = (u_int32_t)strtonum(optarg, 1,
2430 UINT_MAX, &errstr);
2431 if (errstr)
2432 fatal("Desired generator has bad value: %s (%s)",
2433 optarg, errstr);
2434 break;
2435 case 'a': 2405 case 'a':
2436 rounds = (int)strtonum(optarg, 1, INT_MAX, &errstr); 2406 rounds = (int)strtonum(optarg, 1, INT_MAX, &errstr);
2437 if (errstr) 2407 if (errstr)
2438 fatal("Invalid number: %s (%s)", 2408 fatal("Invalid number: %s (%s)",
2439 optarg, errstr); 2409 optarg, errstr);
2440 break; 2410 break;
2411 case 'V':
2412 parse_cert_times(optarg);
2413 break;
2414 case 'z':
2415 errno = 0;
2416 cert_serial = strtoull(optarg, &ep, 10);
2417 if (*optarg < '0' || *optarg > '9' || *ep != '\0' ||
2418 (errno == ERANGE && cert_serial == ULLONG_MAX))
2419 fatal("Invalid serial number \"%s\"", optarg);
2420 break;
2441#ifdef WITH_OPENSSL 2421#ifdef WITH_OPENSSL
2422 /* Moduli generation/screening */
2423 case 'W':
2424 generator_wanted = (u_int32_t)strtonum(optarg, 1,
2425 UINT_MAX, &errstr);
2426 if (errstr)
2427 fatal("Desired generator has bad value: %s (%s)",
2428 optarg, errstr);
2429 break;
2442 case 'M': 2430 case 'M':
2443 memory = (u_int32_t)strtonum(optarg, 1, UINT_MAX, &errstr); 2431 memory = (u_int32_t)strtonum(optarg, 1, UINT_MAX, &errstr);
2444 if (errstr) 2432 if (errstr)
@@ -2467,16 +2455,6 @@ main(int argc, char **argv)
2467 fatal("Invalid start point."); 2455 fatal("Invalid start point.");
2468 break; 2456 break;
2469#endif /* WITH_OPENSSL */ 2457#endif /* WITH_OPENSSL */
2470 case 'V':
2471 parse_cert_times(optarg);
2472 break;
2473 case 'z':
2474 errno = 0;
2475 cert_serial = strtoull(optarg, &ep, 10);
2476 if (*optarg < '0' || *optarg > '9' || *ep != '\0' ||
2477 (errno == ERANGE && cert_serial == ULLONG_MAX))
2478 fatal("Invalid serial number \"%s\"", optarg);
2479 break;
2480 case '?': 2458 case '?':
2481 default: 2459 default:
2482 usage(); 2460 usage();
@@ -2491,19 +2469,19 @@ main(int argc, char **argv)
2491 2469
2492 if (ca_key_path != NULL) { 2470 if (ca_key_path != NULL) {
2493 if (argc < 1 && !gen_krl) { 2471 if (argc < 1 && !gen_krl) {
2494 printf("Too few arguments.\n"); 2472 error("Too few arguments.");
2495 usage(); 2473 usage();
2496 } 2474 }
2497 } else if (argc > 0 && !gen_krl && !check_krl) { 2475 } else if (argc > 0 && !gen_krl && !check_krl) {
2498 printf("Too many arguments.\n"); 2476 error("Too many arguments.");
2499 usage(); 2477 usage();
2500 } 2478 }
2501 if (change_passphrase && change_comment) { 2479 if (change_passphrase && change_comment) {
2502 printf("Can only have one of -p and -c.\n"); 2480 error("Can only have one of -p and -c.");
2503 usage(); 2481 usage();
2504 } 2482 }
2505 if (print_fingerprint && (delete_host || hash_hosts)) { 2483 if (print_fingerprint && (delete_host || hash_hosts)) {
2506 printf("Cannot use -l with -H or -R.\n"); 2484 error("Cannot use -l with -H or -R.");
2507 usage(); 2485 usage();
2508 } 2486 }
2509 if (gen_krl) { 2487 if (gen_krl) {
@@ -2545,10 +2523,8 @@ main(int argc, char **argv)
2545 if (have_identity) { 2523 if (have_identity) {
2546 n = do_print_resource_record(pw, 2524 n = do_print_resource_record(pw,
2547 identity_file, rr_hostname); 2525 identity_file, rr_hostname);
2548 if (n == 0) { 2526 if (n == 0)
2549 perror(identity_file); 2527 fatal("%s: %s", identity_file, strerror(errno));
2550 exit(1);
2551 }
2552 exit(0); 2528 exit(0);
2553 } else { 2529 } else {
2554 2530
@@ -2566,6 +2542,7 @@ main(int argc, char **argv)
2566 } 2542 }
2567 } 2543 }
2568 2544
2545#ifdef WITH_OPENSSL
2569 if (do_gen_candidates) { 2546 if (do_gen_candidates) {
2570 FILE *out = fopen(out_file, "w"); 2547 FILE *out = fopen(out_file, "w");
2571 2548
@@ -2605,6 +2582,7 @@ main(int argc, char **argv)
2605 fatal("modulus screening failed"); 2582 fatal("modulus screening failed");
2606 return (0); 2583 return (0);
2607 } 2584 }
2585#endif
2608 2586
2609 if (gen_all_hostkeys) { 2587 if (gen_all_hostkeys) {
2610 do_gen_all_hostkeys(pw); 2588 do_gen_all_hostkeys(pw);
@@ -2612,7 +2590,7 @@ main(int argc, char **argv)
2612 } 2590 }
2613 2591
2614 if (key_type_name == NULL) 2592 if (key_type_name == NULL)
2615 key_type_name = "rsa"; 2593 key_type_name = DEFAULT_KEY_TYPE_NAME;
2616 2594
2617 type = sshkey_type_from_name(key_type_name); 2595 type = sshkey_type_from_name(key_type_name);
2618 type_bits_valid(type, key_type_name, &bits); 2596 type_bits_valid(type, key_type_name, &bits);
@@ -2620,14 +2598,10 @@ main(int argc, char **argv)
2620 if (!quiet) 2598 if (!quiet)
2621 printf("Generating public/private %s key pair.\n", 2599 printf("Generating public/private %s key pair.\n",
2622 key_type_name); 2600 key_type_name);
2623 if ((r = sshkey_generate(type, bits, &private)) != 0) { 2601 if ((r = sshkey_generate(type, bits, &private)) != 0)
2624 fprintf(stderr, "key_generate failed\n"); 2602 fatal("key_generate failed");
2625 exit(1); 2603 if ((r = sshkey_from_private(private, &public)) != 0)
2626 } 2604 fatal("key_from_private failed: %s\n", ssh_err(r));
2627 if ((r = sshkey_from_private(private, &public)) != 0) {
2628 fprintf(stderr, "key_from_private failed: %s\n", ssh_err(r));
2629 exit(1);
2630 }
2631 2605
2632 if (!have_identity) 2606 if (!have_identity)
2633 ask_filename(pw, "Enter file in which to save the key"); 2607 ask_filename(pw, "Enter file in which to save the key");
@@ -2697,7 +2671,7 @@ passphrase_again:
2697 /* Save the key with the given passphrase and comment. */ 2671 /* Save the key with the given passphrase and comment. */
2698 if ((r = sshkey_save_private(private, identity_file, passphrase1, 2672 if ((r = sshkey_save_private(private, identity_file, passphrase1,
2699 comment, use_new_format, new_format_cipher, rounds)) != 0) { 2673 comment, use_new_format, new_format_cipher, rounds)) != 0) {
2700 printf("Saving key \"%s\" failed: %s\n", 2674 error("Saving key \"%s\" failed: %s",
2701 identity_file, ssh_err(r)); 2675 identity_file, ssh_err(r));
2702 explicit_bzero(passphrase1, strlen(passphrase1)); 2676 explicit_bzero(passphrase1, strlen(passphrase1));
2703 free(passphrase1); 2677 free(passphrase1);
@@ -2714,18 +2688,13 @@ passphrase_again:
2714 printf("Your identification has been saved in %s.\n", identity_file); 2688 printf("Your identification has been saved in %s.\n", identity_file);
2715 2689
2716 strlcat(identity_file, ".pub", sizeof(identity_file)); 2690 strlcat(identity_file, ".pub", sizeof(identity_file));
2717 fd = open(identity_file, O_WRONLY | O_CREAT | O_TRUNC, 0644); 2691 if ((fd = open(identity_file, O_WRONLY|O_CREAT|O_TRUNC, 0644)) == -1)
2718 if (fd == -1) { 2692 fatal("Unable to save public key to %s: %s",
2719 printf("Could not save your public key in %s\n", identity_file); 2693 identity_file, strerror(errno));
2720 exit(1); 2694 if ((f = fdopen(fd, "w")) == NULL)
2721 } 2695 fatal("fdopen %s failed: %s", identity_file, strerror(errno));
2722 f = fdopen(fd, "w");
2723 if (f == NULL) {
2724 printf("fdopen %s failed\n", identity_file);
2725 exit(1);
2726 }
2727 if ((r = sshkey_write(public, f)) != 0) 2696 if ((r = sshkey_write(public, f)) != 0)
2728 fprintf(stderr, "write key failed: %s\n", ssh_err(r)); 2697 error("write key failed: %s", ssh_err(r));
2729 fprintf(f, " %s\n", comment); 2698 fprintf(f, " %s\n", comment);
2730 fclose(f); 2699 fclose(f);
2731 2700
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index c5fb3b524..57d88429b 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keyscan.c,v 1.99 2015/01/30 10:44:49 djm Exp $ */ 1/* $OpenBSD: ssh-keyscan.c,v 1.101 2015/04/10 00:08:55 djm Exp $ */
2/* 2/*
3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>. 3 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
4 * 4 *
@@ -94,7 +94,7 @@ typedef struct Connection {
94 int c_len; /* Total bytes which must be read. */ 94 int c_len; /* Total bytes which must be read. */
95 int c_off; /* Length of data read so far. */ 95 int c_off; /* Length of data read so far. */
96 int c_keytype; /* Only one of KT_RSA1, KT_DSA, or KT_RSA */ 96 int c_keytype; /* Only one of KT_RSA1, KT_DSA, or KT_RSA */
97 int c_done; /* SSH2 done */ 97 sig_atomic_t c_done; /* SSH2 done */
98 char *c_namebase; /* Address to free for c_name and c_namelist */ 98 char *c_namebase; /* Address to free for c_name and c_namelist */
99 char *c_name; /* Hostname of connection for errors */ 99 char *c_name; /* Hostname of connection for errors */
100 char *c_namelist; /* Pointer to other possible addresses */ 100 char *c_namelist; /* Pointer to other possible addresses */
@@ -299,15 +299,18 @@ static void
299keyprint(con *c, struct sshkey *key) 299keyprint(con *c, struct sshkey *key)
300{ 300{
301 char *host = c->c_output_name ? c->c_output_name : c->c_name; 301 char *host = c->c_output_name ? c->c_output_name : c->c_name;
302 char *hostport = NULL;
302 303
303 if (!key) 304 if (!key)
304 return; 305 return;
305 if (hash_hosts && (host = host_hash(host, NULL, 0)) == NULL) 306 if (hash_hosts && (host = host_hash(host, NULL, 0)) == NULL)
306 fatal("host_hash failed"); 307 fatal("host_hash failed");
307 308
308 fprintf(stdout, "%s ", host); 309 hostport = put_host_port(host, ssh_port);
310 fprintf(stdout, "%s ", hostport);
309 sshkey_write(key, stdout); 311 sshkey_write(key, stdout);
310 fputs("\n", stdout); 312 fputs("\n", stdout);
313 free(hostport);
311} 314}
312 315
313static int 316static int
@@ -488,7 +491,7 @@ congreet(int s)
488 confree(s); 491 confree(s);
489 return; 492 return;
490 } 493 }
491 fprintf(stderr, "# %s %s\n", c->c_name, chop(buf)); 494 fprintf(stderr, "# %s:%d %s\n", c->c_name, ssh_port, chop(buf));
492 n = snprintf(buf, sizeof buf, "SSH-%d.%d-OpenSSH-keyscan\r\n", 495 n = snprintf(buf, sizeof buf, "SSH-%d.%d-OpenSSH-keyscan\r\n",
493 c->c_keytype == KT_RSA1? PROTOCOL_MAJOR_1 : PROTOCOL_MAJOR_2, 496 c->c_keytype == KT_RSA1? PROTOCOL_MAJOR_1 : PROTOCOL_MAJOR_2,
494 c->c_keytype == KT_RSA1? PROTOCOL_MINOR_1 : PROTOCOL_MINOR_2); 497 c->c_keytype == KT_RSA1? PROTOCOL_MINOR_1 : PROTOCOL_MINOR_2);
diff --git a/ssh-keysign.c b/ssh-keysign.c
index bcf897a05..56882027e 100644
--- a/ssh-keysign.c
+++ b/ssh-keysign.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-keysign.c,v 1.47 2015/01/28 22:36:00 djm Exp $ */ 1/* $OpenBSD: ssh-keysign.c,v 1.48 2015/03/24 20:09:11 markus Exp $ */
2/* 2/*
3 * Copyright (c) 2002 Markus Friedl. All rights reserved. 3 * Copyright (c) 2002 Markus Friedl. All rights reserved.
4 * 4 *
@@ -157,7 +157,7 @@ valid_request(struct passwd *pw, char *host, struct sshkey **ret,
157 157
158 if (fail && key != NULL) 158 if (fail && key != NULL)
159 sshkey_free(key); 159 sshkey_free(key);
160 else 160 else if (ret != NULL)
161 *ret = key; 161 *ret = key;
162 162
163 return (fail ? -1 : 0); 163 return (fail ? -1 : 0);
diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c
index c3a112fa1..e074175bb 100644
--- a/ssh-pkcs11.c
+++ b/ssh-pkcs11.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-pkcs11.c,v 1.17 2015/02/03 08:07:20 deraadt Exp $ */ 1/* $OpenBSD: ssh-pkcs11.c,v 1.19 2015/05/27 05:15:02 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2010 Markus Friedl. All rights reserved. 3 * Copyright (c) 2010 Markus Friedl. All rights reserved.
4 * 4 *
@@ -237,7 +237,7 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa,
237 {CKA_ID, NULL, 0}, 237 {CKA_ID, NULL, 0},
238 {CKA_SIGN, NULL, sizeof(true_val) } 238 {CKA_SIGN, NULL, sizeof(true_val) }
239 }; 239 };
240 char *pin, prompt[1024]; 240 char *pin = NULL, prompt[1024];
241 int rval = -1; 241 int rval = -1;
242 242
243 key_filter[0].pValue = &private_key_class; 243 key_filter[0].pValue = &private_key_class;
@@ -255,22 +255,30 @@ pkcs11_rsa_private_encrypt(int flen, const u_char *from, u_char *to, RSA *rsa,
255 si = &k11->provider->slotinfo[k11->slotidx]; 255 si = &k11->provider->slotinfo[k11->slotidx];
256 if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) { 256 if ((si->token.flags & CKF_LOGIN_REQUIRED) && !si->logged_in) {
257 if (!pkcs11_interactive) { 257 if (!pkcs11_interactive) {
258 error("need pin"); 258 error("need pin entry%s", (si->token.flags &
259 CKF_PROTECTED_AUTHENTICATION_PATH) ?
260 " on reader keypad" : "");
259 return (-1); 261 return (-1);
260 } 262 }
261 snprintf(prompt, sizeof(prompt), "Enter PIN for '%s': ", 263 if (si->token.flags & CKF_PROTECTED_AUTHENTICATION_PATH)
262 si->token.label); 264 verbose("Deferring PIN entry to reader keypad.");
263 pin = read_passphrase(prompt, RP_ALLOW_EOF); 265 else {
264 if (pin == NULL) 266 snprintf(prompt, sizeof(prompt),
265 return (-1); /* bail out */ 267 "Enter PIN for '%s': ", si->token.label);
266 rv = f->C_Login(si->session, CKU_USER, 268 pin = read_passphrase(prompt, RP_ALLOW_EOF);
267 (u_char *)pin, strlen(pin)); 269 if (pin == NULL)
268 if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) { 270 return (-1); /* bail out */
271 }
272 rv = f->C_Login(si->session, CKU_USER, (u_char *)pin,
273 (pin != NULL) ? strlen(pin) : 0);
274 if (pin != NULL) {
275 explicit_bzero(pin, strlen(pin));
269 free(pin); 276 free(pin);
277 }
278 if (rv != CKR_OK && rv != CKR_USER_ALREADY_LOGGED_IN) {
270 error("C_Login failed: %lu", rv); 279 error("C_Login failed: %lu", rv);
271 return (-1); 280 return (-1);
272 } 281 }
273 free(pin);
274 si->logged_in = 1; 282 si->logged_in = 1;
275 } 283 }
276 key_filter[1].pValue = k11->keyid; 284 key_filter[1].pValue = k11->keyid;
@@ -527,7 +535,7 @@ pkcs11_fetch_keys_filter(struct pkcs11_provider *p, CK_ULONG slotidx,
527 sshkey_free(key); 535 sshkey_free(key);
528 } else { 536 } else {
529 /* expand key array and add key */ 537 /* expand key array and add key */
530 *keysp = xrealloc(*keysp, *nkeys + 1, 538 *keysp = xreallocarray(*keysp, *nkeys + 1,
531 sizeof(struct sshkey *)); 539 sizeof(struct sshkey *));
532 (*keysp)[*nkeys] = key; 540 (*keysp)[*nkeys] = key;
533 *nkeys = *nkeys + 1; 541 *nkeys = *nkeys + 1;
diff --git a/ssh-rsa.c b/ssh-rsa.c
index aef798da6..cdc18a416 100644
--- a/ssh-rsa.c
+++ b/ssh-rsa.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh-rsa.c,v 1.52 2014/06/24 01:13:21 djm Exp $ */ 1/* $OpenBSD: ssh-rsa.c,v 1.53 2015/06/15 01:32:50 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org> 3 * Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org>
4 * 4 *
@@ -113,7 +113,7 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp,
113 } 113 }
114 if (b != NULL) 114 if (b != NULL)
115 sshbuf_free(b); 115 sshbuf_free(b);
116 return 0; 116 return ret;
117} 117}
118 118
119int 119int
diff --git a/ssh.0 b/ssh.0
index 5e5f3b5e9..5aaeb8d13 100644
--- a/ssh.0
+++ b/ssh.0
@@ -354,9 +354,9 @@ DESCRIPTION
354 applications (eg. sftp(1)). The subsystem is specified as the 354 applications (eg. sftp(1)). The subsystem is specified as the
355 remote command. 355 remote command.
356 356
357 -T Disable pseudo-tty allocation. 357 -T Disable pseudo-terminal allocation.
358 358
359 -t Force pseudo-tty allocation. This can be used to execute 359 -t Force pseudo-terminal allocation. This can be used to execute
360 arbitrary screen-based programs on a remote machine, which can be 360 arbitrary screen-based programs on a remote machine, which can be
361 very useful, e.g. when implementing menu services. Multiple -t 361 very useful, e.g. when implementing menu services. Multiple -t
362 options force tty allocation, even if ssh has no local tty. 362 options force tty allocation, even if ssh has no local tty.
@@ -510,17 +510,22 @@ AUTHENTICATION
510 whose host key is not known or has changed. 510 whose host key is not known or has changed.
511 511
512 When the user's identity has been accepted by the server, the server 512 When the user's identity has been accepted by the server, the server
513 either executes the given command, or logs into the machine and gives the 513 either executes the given command in a non-interactive session or, if no
514 user a normal shell on the remote machine. All communication with the 514 command has been specified, logs into the machine and gives the user a
515 normal shell as an interactive session. All communication with the
515 remote command or shell will be automatically encrypted. 516 remote command or shell will be automatically encrypted.
516 517
517 If a pseudo-terminal has been allocated (normal login session), the user 518 If an interactive session is requested ssh by default will only request a
518 may use the escape characters noted below. 519 pseudo-terminal (pty) for interactive sessions when the client has one.
520 The flags -T and -t can be used to override this behaviour.
519 521
520 If no pseudo-tty has been allocated, the session is transparent and can 522 If a pseudo-terminal has been allocated the user may use the escape
521 be used to reliably transfer binary data. On most systems, setting the 523 characters noted below.
522 escape character to M-bM-^@M-^\noneM-bM-^@M-^] will also make the session transparent even if 524
523 a tty is used. 525 If no pseudo-terminal has been allocated, the session is transparent and
526 can be used to reliably transfer binary data. On most systems, setting
527 the escape character to M-bM-^@M-^\noneM-bM-^@M-^] will also make the session transparent
528 even if a tty is used.
524 529
525 The session terminates when the command or shell on the remote machine 530 The session terminates when the command or shell on the remote machine
526 exits and all X11 and TCP connections have been closed. 531 exits and all X11 and TCP connections have been closed.
@@ -638,16 +643,20 @@ VERIFYING HOST KEYS
638 $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key 643 $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key
639 644
640 If the fingerprint is already known, it can be matched and the key can be 645 If the fingerprint is already known, it can be matched and the key can be
641 accepted or rejected. Because of the difficulty of comparing host keys 646 accepted or rejected. If only legacy (MD5) fingerprints for the server
642 just by looking at fingerprint strings, there is also support to compare 647 are available, the ssh-keygen(1) -E option may be used to downgrade the
643 host keys visually, using random art. By setting the VisualHostKey 648 fingerprint algorithm to match.
644 option to M-bM-^@M-^\yesM-bM-^@M-^], a small ASCII graphic gets displayed on every login to a 649
645 server, no matter if the session itself is interactive or not. By 650 Because of the difficulty of comparing host keys just by looking at
646 learning the pattern a known server produces, a user can easily find out 651 fingerprint strings, there is also support to compare host keys visually,
647 that the host key has changed when a completely different pattern is 652 using random art. By setting the VisualHostKey option to M-bM-^@M-^\yesM-bM-^@M-^], a small
648 displayed. Because these patterns are not unambiguous however, a pattern 653 ASCII graphic gets displayed on every login to a server, no matter if the
649 that looks similar to the pattern remembered only gives a good 654 session itself is interactive or not. By learning the pattern a known
650 probability that the host key is the same, not guaranteed proof. 655 server produces, a user can easily find out that the host key has changed
656 when a completely different pattern is displayed. Because these patterns
657 are not unambiguous however, a pattern that looks similar to the pattern
658 remembered only gives a good probability that the host key is the same,
659 not guaranteed proof.
651 660
652 To get a listing of the fingerprints along with their random art for all 661 To get a listing of the fingerprints along with their random art for all
653 known hosts, the following command line can be used: 662 known hosts, the following command line can be used:
@@ -948,4 +957,4 @@ AUTHORS
948 created OpenSSH. Markus Friedl contributed the support for SSH protocol 957 created OpenSSH. Markus Friedl contributed the support for SSH protocol
949 versions 1.5 and 2.0. 958 versions 1.5 and 2.0.
950 959
951OpenBSD 5.7 March 3, 2015 OpenBSD 5.7 960OpenBSD 5.7 May 22, 2015 OpenBSD 5.7
diff --git a/ssh.1 b/ssh.1
index da64b7198..df7ac86af 100644
--- a/ssh.1
+++ b/ssh.1
@@ -33,8 +33,8 @@
33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35.\" 35.\"
36.\" $OpenBSD: ssh.1,v 1.356 2015/03/03 06:48:58 djm Exp $ 36.\" $OpenBSD: ssh.1,v 1.358 2015/05/22 05:28:45 djm Exp $
37.Dd $Mdocdate: March 3 2015 $ 37.Dd $Mdocdate: May 22 2015 $
38.Dt SSH 1 38.Dt SSH 1
39.Os 39.Os
40.Sh NAME 40.Sh NAME
@@ -584,9 +584,9 @@ of SSH as a secure transport for other applications (eg.\&
584.Xr sftp 1 ) . 584.Xr sftp 1 ) .
585The subsystem is specified as the remote command. 585The subsystem is specified as the remote command.
586.It Fl T 586.It Fl T
587Disable pseudo-tty allocation. 587Disable pseudo-terminal allocation.
588.It Fl t 588.It Fl t
589Force pseudo-tty allocation. 589Force pseudo-terminal allocation.
590This can be used to execute arbitrary 590This can be used to execute arbitrary
591screen-based programs on a remote machine, which can be very useful, 591screen-based programs on a remote machine, which can be very useful,
592e.g. when implementing menu services. 592e.g. when implementing menu services.
@@ -876,15 +876,26 @@ option can be used to control logins to machines whose
876host key is not known or has changed. 876host key is not known or has changed.
877.Pp 877.Pp
878When the user's identity has been accepted by the server, the server 878When the user's identity has been accepted by the server, the server
879either executes the given command, or logs into the machine and gives 879either executes the given command in a non-interactive session or,
880the user a normal shell on the remote machine. 880if no command has been specified, logs into the machine and gives
881the user a normal shell as an interactive session.
881All communication with 882All communication with
882the remote command or shell will be automatically encrypted. 883the remote command or shell will be automatically encrypted.
883.Pp 884.Pp
884If a pseudo-terminal has been allocated (normal login session), the 885If an interactive session is requested
886.Nm
887by default will only request a pseudo-terminal (pty) for interactive
888sessions when the client has one.
889The flags
890.Fl T
891and
892.Fl t
893can be used to override this behaviour.
894.Pp
895If a pseudo-terminal has been allocated the
885user may use the escape characters noted below. 896user may use the escape characters noted below.
886.Pp 897.Pp
887If no pseudo-tty has been allocated, 898If no pseudo-terminal has been allocated,
888the session is transparent and can be used to reliably transfer binary data. 899the session is transparent and can be used to reliably transfer binary data.
889On most systems, setting the escape character to 900On most systems, setting the escape character to
890.Dq none 901.Dq none
@@ -1095,6 +1106,11 @@ Fingerprints can be determined using
1095.Pp 1106.Pp
1096If the fingerprint is already known, it can be matched 1107If the fingerprint is already known, it can be matched
1097and the key can be accepted or rejected. 1108and the key can be accepted or rejected.
1109If only legacy (MD5) fingerprints for the server are available, the
1110.Xr ssh-keygen 1
1111.Fl E
1112option may be used to downgrade the fingerprint algorithm to match.
1113.Pp
1098Because of the difficulty of comparing host keys 1114Because of the difficulty of comparing host keys
1099just by looking at fingerprint strings, 1115just by looking at fingerprint strings,
1100there is also support to compare host keys visually, 1116there is also support to compare host keys visually,
diff --git a/ssh.c b/ssh.c
index 0ad82f029..3fd5a941f 100644
--- a/ssh.c
+++ b/ssh.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssh.c,v 1.416 2015/03/03 06:48:58 djm Exp $ */ 1/* $OpenBSD: ssh.c,v 1.418 2015/05/04 06:10:48 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -356,10 +356,8 @@ check_follow_cname(char **namep, const char *cname)
356 debug3("%s: check \"%s\" CNAME \"%s\"", __func__, *namep, cname); 356 debug3("%s: check \"%s\" CNAME \"%s\"", __func__, *namep, cname);
357 for (i = 0; i < options.num_permitted_cnames; i++) { 357 for (i = 0; i < options.num_permitted_cnames; i++) {
358 rule = options.permitted_cnames + i; 358 rule = options.permitted_cnames + i;
359 if (match_pattern_list(*namep, rule->source_list, 359 if (match_pattern_list(*namep, rule->source_list, 1) != 1 ||
360 strlen(rule->source_list), 1) != 1 || 360 match_pattern_list(cname, rule->target_list, 1) != 1)
361 match_pattern_list(cname, rule->target_list,
362 strlen(rule->target_list), 1) != 1)
363 continue; 361 continue;
364 verbose("Canonicalized DNS aliased hostname " 362 verbose("Canonicalized DNS aliased hostname "
365 "\"%s\" => \"%s\"", *namep, cname); 363 "\"%s\" => \"%s\"", *namep, cname);
@@ -1673,6 +1671,8 @@ ssh_session(void)
1673 } 1671 }
1674 /* Request X11 forwarding if enabled and DISPLAY is set. */ 1672 /* Request X11 forwarding if enabled and DISPLAY is set. */
1675 display = getenv("DISPLAY"); 1673 display = getenv("DISPLAY");
1674 if (display == NULL && options.forward_x11)
1675 debug("X11 forwarding requested but DISPLAY not set");
1676 if (options.forward_x11 && display != NULL) { 1676 if (options.forward_x11 && display != NULL) {
1677 char *proto, *data; 1677 char *proto, *data;
1678 /* Get reasonable local authentication information. */ 1678 /* Get reasonable local authentication information. */
@@ -1774,6 +1774,8 @@ ssh_session2_setup(int id, int success, void *arg)
1774 return; /* No need for error message, channels code sens one */ 1774 return; /* No need for error message, channels code sens one */
1775 1775
1776 display = getenv("DISPLAY"); 1776 display = getenv("DISPLAY");
1777 if (display == NULL && options.forward_x11)
1778 debug("X11 forwarding requested but DISPLAY not set");
1777 if (options.forward_x11 && display != NULL) { 1779 if (options.forward_x11 && display != NULL) {
1778 char *proto, *data; 1780 char *proto, *data;
1779 /* Get reasonable local authentication information. */ 1781 /* Get reasonable local authentication information. */
diff --git a/ssh_config.0 b/ssh_config.0
index 3bdd75237..b0a614b8a 100644
--- a/ssh_config.0
+++ b/ssh_config.0
@@ -67,7 +67,7 @@ DESCRIPTION
67 require an argument. Criteria may be negated by prepending an 67 require an argument. Criteria may be negated by prepending an
68 exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y). 68 exclamation mark (M-bM-^@M-^X!M-bM-^@M-^Y).
69 69
70 The canonical keywork matches only when the configuration file is 70 The canonical keyword matches only when the configuration file is
71 being re-parsed after hostname canonicalization (see the 71 being re-parsed after hostname canonicalization (see the
72 CanonicalizeHostname option.) This may be useful to specify 72 CanonicalizeHostname option.) This may be useful to specify
73 conditions that work with canonical host names only. The exec 73 conditions that work with canonical host names only. The exec
@@ -165,9 +165,11 @@ DESCRIPTION
165 CheckHostIP 165 CheckHostIP
166 If this flag is set to M-bM-^@M-^\yesM-bM-^@M-^], ssh(1) will additionally check the 166 If this flag is set to M-bM-^@M-^\yesM-bM-^@M-^], ssh(1) will additionally check the
167 host IP address in the known_hosts file. This allows ssh to 167 host IP address in the known_hosts file. This allows ssh to
168 detect if a host key changed due to DNS spoofing. If the option 168 detect if a host key changed due to DNS spoofing and will add
169 is set to M-bM-^@M-^\noM-bM-^@M-^], the check will not be executed. The default is 169 addresses of destination hosts to ~/.ssh/known_hosts in the
170 M-bM-^@M-^\yesM-bM-^@M-^]. 170 process, regardless of the setting of StrictHostKeyChecking. If
171 the option is set to M-bM-^@M-^\noM-bM-^@M-^], the check will not be executed. The
172 default is M-bM-^@M-^\yesM-bM-^@M-^].
171 173
172 Cipher Specifies the cipher to use for encrypting the session in 174 Cipher Specifies the cipher to use for encrypting the session in
173 protocol version 1. Currently, M-bM-^@M-^\blowfishM-bM-^@M-^], M-bM-^@M-^\3desM-bM-^@M-^], and M-bM-^@M-^\desM-bM-^@M-^] are 175 protocol version 1. Currently, M-bM-^@M-^\blowfishM-bM-^@M-^], M-bM-^@M-^\3desM-bM-^@M-^], and M-bM-^@M-^\desM-bM-^@M-^] are
@@ -252,9 +254,8 @@ DESCRIPTION
252 or is not listening. 254 or is not listening.
253 255
254 Setting this to M-bM-^@M-^\askM-bM-^@M-^] will cause ssh to listen for control 256 Setting this to M-bM-^@M-^\askM-bM-^@M-^] will cause ssh to listen for control
255 connections, but require confirmation using the SSH_ASKPASS 257 connections, but require confirmation using ssh-askpass(1). If
256 program before they are accepted (see ssh-add(1) for details). 258 the ControlPath cannot be opened, ssh will continue without
257 If the ControlPath cannot be opened, ssh will continue without
258 connecting to a master instance. 259 connecting to a master instance.
259 260
260 X11 and ssh-agent(1) forwarding is supported over these 261 X11 and ssh-agent(1) forwarding is supported over these
@@ -552,8 +553,8 @@ DESCRIPTION
552 curve25519-sha256@libssh.org, 553 curve25519-sha256@libssh.org,
553 ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, 554 ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
554 diffie-hellman-group-exchange-sha256, 555 diffie-hellman-group-exchange-sha256,
555 diffie-hellman-group14-sha1,
556 diffie-hellman-group-exchange-sha1, 556 diffie-hellman-group-exchange-sha1,
557 diffie-hellman-group14-sha1,
557 diffie-hellman-group1-sha1 558 diffie-hellman-group1-sha1
558 559
559 The list of available key exchange algorithms may also be 560 The list of available key exchange algorithms may also be
@@ -768,12 +769,15 @@ DESCRIPTION
768 Specifies what variables from the local environ(7) should be sent 769 Specifies what variables from the local environ(7) should be sent
769 to the server. Note that environment passing is only supported 770 to the server. Note that environment passing is only supported
770 for protocol 2. The server must also support it, and the server 771 for protocol 2. The server must also support it, and the server
771 must be configured to accept these environment variables. Refer 772 must be configured to accept these environment variables. Note
772 to AcceptEnv in sshd_config(5) for how to configure the server. 773 that the TERM environment variable is always sent whenever a
773 Variables are specified by name, which may contain wildcard 774 pseudo-terminal is requested as it is required by the protocol.
774 characters. Multiple environment variables may be separated by 775 Refer to AcceptEnv in sshd_config(5) for how to configure the
775 whitespace or spread across multiple SendEnv directives. The 776 server. Variables are specified by name, which may contain
776 default is not to send any environment variables. 777 wildcard characters. Multiple environment variables may be
778 separated by whitespace or spread across multiple SendEnv
779 directives. The default is not to send any environment
780 variables.
777 781
778 See PATTERNS for more information on patterns. 782 See PATTERNS for more information on patterns.
779 783
@@ -978,4 +982,4 @@ AUTHORS
978 created OpenSSH. Markus Friedl contributed the support for SSH protocol 982 created OpenSSH. Markus Friedl contributed the support for SSH protocol
979 versions 1.5 and 2.0. 983 versions 1.5 and 2.0.
980 984
981OpenBSD 5.7 February 20, 2015 OpenBSD 5.7 985OpenBSD 5.7 June 2, 2015 OpenBSD 5.7
diff --git a/ssh_config.5 b/ssh_config.5
index 140d0ba98..268a627b2 100644
--- a/ssh_config.5
+++ b/ssh_config.5
@@ -33,8 +33,8 @@
33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35.\" 35.\"
36.\" $OpenBSD: ssh_config.5,v 1.205 2015/02/20 22:17:21 djm Exp $ 36.\" $OpenBSD: ssh_config.5,v 1.211 2015/06/02 09:10:40 djm Exp $
37.Dd $Mdocdate: February 20 2015 $ 37.Dd $Mdocdate: June 2 2015 $
38.Dt SSH_CONFIG 5 38.Dt SSH_CONFIG 5
39.Os 39.Os
40.Sh NAME 40.Sh NAME
@@ -166,7 +166,7 @@ Criteria may be negated by prepending an exclamation mark
166.Pp 166.Pp
167The 167The
168.Cm canonical 168.Cm canonical
169keywork matches only when the configuration file is being re-parsed 169keyword matches only when the configuration file is being re-parsed
170after hostname canonicalization (see the 170after hostname canonicalization (see the
171.Cm CanonicalizeHostname 171.Cm CanonicalizeHostname
172option.) 172option.)
@@ -340,7 +340,11 @@ If this flag is set to
340will additionally check the host IP address in the 340will additionally check the host IP address in the
341.Pa known_hosts 341.Pa known_hosts
342file. 342file.
343This allows ssh to detect if a host key changed due to DNS spoofing. 343This allows ssh to detect if a host key changed due to DNS spoofing
344and will add addresses of destination hosts to
345.Pa ~/.ssh/known_hosts
346in the process, regardless of the setting of
347.Cm StrictHostKeyChecking .
344If the option is set to 348If the option is set to
345.Dq no , 349.Dq no ,
346the check will not be executed. 350the check will not be executed.
@@ -484,11 +488,8 @@ if the control socket does not exist, or is not listening.
484Setting this to 488Setting this to
485.Dq ask 489.Dq ask
486will cause ssh 490will cause ssh
487to listen for control connections, but require confirmation using the 491to listen for control connections, but require confirmation using
488.Ev SSH_ASKPASS 492.Xr ssh-askpass 1 .
489program before they are accepted (see
490.Xr ssh-add 1
491for details).
492If the 493If the
493.Cm ControlPath 494.Cm ControlPath
494cannot be opened, 495cannot be opened,
@@ -978,8 +979,8 @@ The default is:
978curve25519-sha256@libssh.org, 979curve25519-sha256@libssh.org,
979ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, 980ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,
980diffie-hellman-group-exchange-sha256, 981diffie-hellman-group-exchange-sha256,
981diffie-hellman-group14-sha1,
982diffie-hellman-group-exchange-sha1, 982diffie-hellman-group-exchange-sha1,
983diffie-hellman-group14-sha1,
983diffie-hellman-group1-sha1 984diffie-hellman-group1-sha1
984.Ed 985.Ed
985.Pp 986.Pp
@@ -1336,6 +1337,10 @@ should be sent to the server.
1336Note that environment passing is only supported for protocol 2. 1337Note that environment passing is only supported for protocol 2.
1337The server must also support it, and the server must be configured to 1338The server must also support it, and the server must be configured to
1338accept these environment variables. 1339accept these environment variables.
1340Note that the
1341.Ev TERM
1342environment variable is always sent whenever a
1343pseudo-terminal is requested as it is required by the protocol.
1339Refer to 1344Refer to
1340.Cm AcceptEnv 1345.Cm AcceptEnv
1341in 1346in
diff --git a/sshbuf-misc.c b/sshbuf-misc.c
index f1c2d03c9..d022065f9 100644
--- a/sshbuf-misc.c
+++ b/sshbuf-misc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshbuf-misc.c,v 1.3 2015/02/05 12:59:57 millert Exp $ */ 1/* $OpenBSD: sshbuf-misc.c,v 1.4 2015/03/24 20:03:44 markus Exp $ */
2/* 2/*
3 * Copyright (c) 2011 Damien Miller 3 * Copyright (c) 2011 Damien Miller
4 * 4 *
@@ -42,7 +42,7 @@ sshbuf_dump_data(const void *s, size_t len, FILE *f)
42 const u_char *p = (const u_char *)s; 42 const u_char *p = (const u_char *)s;
43 43
44 for (i = 0; i < len; i += 16) { 44 for (i = 0; i < len; i += 16) {
45 fprintf(f, "%.4zd: ", i); 45 fprintf(f, "%.4zu: ", i);
46 for (j = i; j < i + 16; j++) { 46 for (j = i; j < i + 16; j++) {
47 if (j < len) 47 if (j < len)
48 fprintf(f, "%02x ", p[j]); 48 fprintf(f, "%02x ", p[j]);
diff --git a/sshconnect.c b/sshconnect.c
index 9e515066d..f41960c5d 100644
--- a/sshconnect.c
+++ b/sshconnect.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshconnect.c,v 1.259 2015/01/28 22:36:00 djm Exp $ */ 1/* $OpenBSD: sshconnect.c,v 1.262 2015/05/28 05:41:29 dtucker Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -912,7 +912,7 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port,
912 host_key, options.hash_known_hosts)) 912 host_key, options.hash_known_hosts))
913 logit("Failed to add the %s host key for IP " 913 logit("Failed to add the %s host key for IP "
914 "address '%.128s' to the list of known " 914 "address '%.128s' to the list of known "
915 "hosts (%.30s).", type, ip, 915 "hosts (%.500s).", type, ip,
916 user_hostfiles[0]); 916 user_hostfiles[0]);
917 else 917 else
918 logit("Warning: Permanently added the %s host " 918 logit("Warning: Permanently added the %s host "
@@ -1350,6 +1350,7 @@ ssh_login(Sensitive *sensitive, const char *orighost,
1350 1350
1351 /* key exchange */ 1351 /* key exchange */
1352 /* authenticate user */ 1352 /* authenticate user */
1353 debug("Authenticating to %s:%d as '%s'", host, port, server_user);
1353 if (compat20) { 1354 if (compat20) {
1354 ssh_kex2(host, hostaddr, port); 1355 ssh_kex2(host, hostaddr, port);
1355 ssh_userauth2(local_user, server_user, host, sensitive); 1356 ssh_userauth2(local_user, server_user, host, sensitive);
@@ -1358,7 +1359,7 @@ ssh_login(Sensitive *sensitive, const char *orighost,
1358 ssh_kex(host, hostaddr); 1359 ssh_kex(host, hostaddr);
1359 ssh_userauth1(local_user, server_user, host, sensitive); 1360 ssh_userauth1(local_user, server_user, host, sensitive);
1360#else 1361#else
1361 fatal("ssh1 is not unsupported"); 1362 fatal("ssh1 is not supported");
1362#endif 1363#endif
1363 } 1364 }
1364 free(local_user); 1365 free(local_user);
diff --git a/sshconnect2.c b/sshconnect2.c
index ba56f6433..fcaed6b01 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshconnect2.c,v 1.223 2015/01/30 11:43:14 djm Exp $ */ 1/* $OpenBSD: sshconnect2.c,v 1.224 2015/05/04 06:10:48 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * Copyright (c) 2008 Damien Miller. All rights reserved. 4 * Copyright (c) 2008 Damien Miller. All rights reserved.
@@ -1610,8 +1610,7 @@ userauth_hostbased(Authctxt *authctxt)
1610 continue; 1610 continue;
1611 if (match_pattern_list( 1611 if (match_pattern_list(
1612 sshkey_ssh_name(authctxt->sensitive->keys[i]), 1612 sshkey_ssh_name(authctxt->sensitive->keys[i]),
1613 authctxt->active_ktype, 1613 authctxt->active_ktype, 0) != 1)
1614 strlen(authctxt->active_ktype), 0) != 1)
1615 continue; 1614 continue;
1616 /* we take and free the key */ 1615 /* we take and free the key */
1617 private = authctxt->sensitive->keys[i]; 1616 private = authctxt->sensitive->keys[i];
diff --git a/sshd.0 b/sshd.0
index 442cd572f..33a9392f9 100644
--- a/sshd.0
+++ b/sshd.0
@@ -233,7 +233,9 @@ LOGIN PROCESS
233 authentication protocol and cookie in standard input. See 233 authentication protocol and cookie in standard input. See
234 SSHRC, below. 234 SSHRC, below.
235 235
236 9. Runs user's shell or command. 236 9. Runs user's shell or command. All commands are run under the
237 user's login shell as specified in the system password
238 database.
237 239
238SSHRC 240SSHRC
239 If the file ~/.ssh/rc exists, sh(1) runs it after reading the environment 241 If the file ~/.ssh/rc exists, sh(1) runs it after reading the environment
@@ -631,4 +633,4 @@ AUTHORS
631 versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support 633 versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
632 for privilege separation. 634 for privilege separation.
633 635
634OpenBSD 5.7 November 15, 2014 OpenBSD 5.7 636OpenBSD 5.7 May 1, 2015 OpenBSD 5.7
diff --git a/sshd.8 b/sshd.8
index 3c53f7cd6..dcf20f0ea 100644
--- a/sshd.8
+++ b/sshd.8
@@ -33,8 +33,8 @@
33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35.\" 35.\"
36.\" $OpenBSD: sshd.8,v 1.278 2014/11/15 14:41:03 bentley Exp $ 36.\" $OpenBSD: sshd.8,v 1.279 2015/05/01 07:11:47 djm Exp $
37.Dd $Mdocdate: November 15 2014 $ 37.Dd $Mdocdate: May 1 2015 $
38.Dt SSHD 8 38.Dt SSHD 8
39.Os 39.Os
40.Sh NAME 40.Sh NAME
@@ -424,6 +424,8 @@ See
424below. 424below.
425.It 425.It
426Runs user's shell or command. 426Runs user's shell or command.
427All commands are run under the user's login shell as specified in the
428system password database.
427.El 429.El
428.Sh SSHRC 430.Sh SSHRC
429If the file 431If the file
diff --git a/sshd.c b/sshd.c
index e1c767c14..6f8c6f2b1 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshd.c,v 1.444 2015/02/20 22:17:21 djm Exp $ */ 1/* $OpenBSD: sshd.c,v 1.450 2015/05/24 23:39:16 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -928,6 +928,10 @@ notify_hostkeys(struct ssh *ssh)
928 int i, nkeys, r; 928 int i, nkeys, r;
929 char *fp; 929 char *fp;
930 930
931 /* Some clients cannot cope with the hostkeys message, skip those. */
932 if (datafellows & SSH_BUG_HOSTKEYS)
933 return;
934
931 if ((buf = sshbuf_new()) == NULL) 935 if ((buf = sshbuf_new()) == NULL)
932 fatal("%s: sshbuf_new", __func__); 936 fatal("%s: sshbuf_new", __func__);
933 for (i = nkeys = 0; i < options.num_host_key_files; i++) { 937 for (i = nkeys = 0; i < options.num_host_key_files; i++) {
@@ -1092,8 +1096,6 @@ recv_rexec_state(int fd, Buffer *conf)
1092 sensitive_data.server_key->rsa) != 0) 1096 sensitive_data.server_key->rsa) != 0)
1093 fatal("%s: rsa_generate_additional_parameters " 1097 fatal("%s: rsa_generate_additional_parameters "
1094 "error", __func__); 1098 "error", __func__);
1095#else
1096 fatal("ssh1 not supported");
1097#endif 1099#endif
1098 } 1100 }
1099 1101
@@ -1453,7 +1455,7 @@ main(int ac, char **av)
1453 int sock_in = -1, sock_out = -1, newsock = -1; 1455 int sock_in = -1, sock_out = -1, newsock = -1;
1454 const char *remote_ip; 1456 const char *remote_ip;
1455 int remote_port; 1457 int remote_port;
1456 char *fp, *line, *logfile = NULL; 1458 char *fp, *line, *laddr, *logfile = NULL;
1457 int config_s[2] = { -1 , -1 }; 1459 int config_s[2] = { -1 , -1 };
1458 u_int n; 1460 u_int n;
1459 u_int64_t ibytes, obytes; 1461 u_int64_t ibytes, obytes;
@@ -1493,7 +1495,8 @@ main(int ac, char **av)
1493 initialize_server_options(&options); 1495 initialize_server_options(&options);
1494 1496
1495 /* Parse command-line arguments. */ 1497 /* Parse command-line arguments. */
1496 while ((opt = getopt(ac, av, "f:p:b:k:h:g:u:o:C:dDeE:iqrtQRT46")) != -1) { 1498 while ((opt = getopt(ac, av,
1499 "C:E:b:c:f:g:h:k:o:p:u:46DQRTdeiqrt")) != -1) {
1497 switch (opt) { 1500 switch (opt) {
1498 case '4': 1501 case '4':
1499 options.address_family = AF_INET; 1502 options.address_family = AF_INET;
@@ -1675,7 +1678,7 @@ main(int ac, char **av)
1675 buffer_init(&cfg); 1678 buffer_init(&cfg);
1676 if (rexeced_flag) 1679 if (rexeced_flag)
1677 recv_rexec_state(REEXEC_CONFIG_PASS_FD, &cfg); 1680 recv_rexec_state(REEXEC_CONFIG_PASS_FD, &cfg);
1678 else 1681 else if (strcasecmp(config_file_name, "none") != 0)
1679 load_server_config(config_file_name, &cfg); 1682 load_server_config(config_file_name, &cfg);
1680 1683
1681 parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name, 1684 parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name,
@@ -1696,6 +1699,11 @@ main(int ac, char **av)
1696 strcasecmp(options.authorized_keys_command, "none") != 0)) 1699 strcasecmp(options.authorized_keys_command, "none") != 0))
1697 fatal("AuthorizedKeysCommand set without " 1700 fatal("AuthorizedKeysCommand set without "
1698 "AuthorizedKeysCommandUser"); 1701 "AuthorizedKeysCommandUser");
1702 if (options.authorized_principals_command_user == NULL &&
1703 (options.authorized_principals_command != NULL &&
1704 strcasecmp(options.authorized_principals_command, "none") != 0))
1705 fatal("AuthorizedPrincipalsCommand set without "
1706 "AuthorizedPrincipalsCommandUser");
1699 1707
1700 /* 1708 /*
1701 * Check whether there is any path through configured auth methods. 1709 * Check whether there is any path through configured auth methods.
@@ -2128,9 +2136,10 @@ main(int ac, char **av)
2128#endif 2136#endif
2129 2137
2130 /* Log the connection. */ 2138 /* Log the connection. */
2139 laddr = get_local_ipaddr(sock_in);
2131 verbose("Connection from %s port %d on %s port %d", 2140 verbose("Connection from %s port %d on %s port %d",
2132 remote_ip, remote_port, 2141 remote_ip, remote_port, laddr, get_local_port());
2133 get_local_ipaddr(sock_in), get_local_port()); 2142 free(laddr);
2134 2143
2135 /* 2144 /*
2136 * We don't want to listen forever unless the other side 2145 * We don't want to listen forever unless the other side
diff --git a/sshd_config b/sshd_config
index c9042ac3c..cf7d8e1e8 100644
--- a/sshd_config
+++ b/sshd_config
@@ -1,4 +1,4 @@
1# $OpenBSD: sshd_config,v 1.94 2015/02/02 01:57:44 deraadt Exp $ 1# $OpenBSD: sshd_config,v 1.95 2015/04/27 21:42:48 djm Exp $
2 2
3# This is the sshd server system-wide configuration file. See 3# This is the sshd server system-wide configuration file. See
4# sshd_config(5) for more information. 4# sshd_config(5) for more information.
@@ -41,7 +41,7 @@
41# Authentication: 41# Authentication:
42 42
43#LoginGraceTime 2m 43#LoginGraceTime 2m
44#PermitRootLogin yes 44#PermitRootLogin no
45#StrictModes yes 45#StrictModes yes
46#MaxAuthTries 6 46#MaxAuthTries 6
47#MaxSessions 10 47#MaxSessions 10
diff --git a/sshd_config.0 b/sshd_config.0
index be48e1364..641041852 100644
--- a/sshd_config.0
+++ b/sshd_config.0
@@ -20,14 +20,16 @@ DESCRIPTION
20 Specifies what environment variables sent by the client will be 20 Specifies what environment variables sent by the client will be
21 copied into the session's environ(7). See SendEnv in 21 copied into the session's environ(7). See SendEnv in
22 ssh_config(5) for how to configure the client. Note that 22 ssh_config(5) for how to configure the client. Note that
23 environment passing is only supported for protocol 2. Variables 23 environment passing is only supported for protocol 2, and that
24 are specified by name, which may contain the wildcard characters 24 the TERM environment variable is always sent whenever the client
25 M-bM-^@M-^X*M-bM-^@M-^Y and M-bM-^@M-^X?M-bM-^@M-^Y. Multiple environment variables may be separated by 25 requests a pseudo-terminal as it is required by the protocol.
26 whitespace or spread across multiple AcceptEnv directives. Be 26 Variables are specified by name, which may contain the wildcard
27 warned that some environment variables could be used to bypass 27 characters M-bM-^@M-^X*M-bM-^@M-^Y and M-bM-^@M-^X?M-bM-^@M-^Y. Multiple environment variables may be
28 restricted user environments. For this reason, care should be 28 separated by whitespace or spread across multiple AcceptEnv
29 taken in the use of this directive. The default is not to accept 29 directives. Be warned that some environment variables could be
30 any environment variables. 30 used to bypass restricted user environments. For this reason,
31 care should be taken in the use of this directive. The default
32 is not to accept any environment variables.
31 33
32 AddressFamily 34 AddressFamily
33 Specifies which address family should be used by sshd(8). Valid 35 Specifies which address family should be used by sshd(8). Valid
@@ -122,15 +124,25 @@ DESCRIPTION
122 124
123 AuthorizedKeysCommand 125 AuthorizedKeysCommand
124 Specifies a program to be used to look up the user's public keys. 126 Specifies a program to be used to look up the user's public keys.
125 The program must be owned by root and not writable by group or 127 The program must be owned by root, not writable by group or
126 others. It will be invoked with a single argument of the 128 others and specified by an absolute path.
127 username being authenticated, and should produce on standard 129
128 output zero or more lines of authorized_keys output (see 130 Arguments to AuthorizedKeysCommand may be provided using the
129 AUTHORIZED_KEYS in sshd(8)). If a key supplied by 131 following tokens, which will be expanded at runtime: %% is
130 AuthorizedKeysCommand does not successfully authenticate and 132 replaced by a literal '%', %u is replaced by the username being
131 authorize the user then public key authentication continues using 133 authenticated, %h is replaced by the home directory of the user
132 the usual AuthorizedKeysFile files. By default, no 134 being authenticated, %t is replaced with the key type offered for
133 AuthorizedKeysCommand is run. 135 authentication, %f is replaced with the fingerprint of the key,
136 and %k is replaced with the key being offered for authentication.
137 If no arguments are specified then the username of the target
138 user will be supplied.
139
140 The program should produce on standard output zero or more lines
141 of authorized_keys output (see AUTHORIZED_KEYS in sshd(8)). If a
142 key supplied by AuthorizedKeysCommand does not successfully
143 authenticate and authorize the user then public key
144 authentication continues using the usual AuthorizedKeysFile
145 files. By default, no AuthorizedKeysCommand is run.
134 146
135 AuthorizedKeysCommandUser 147 AuthorizedKeysCommandUser
136 Specifies the user under whose account the AuthorizedKeysCommand 148 Specifies the user under whose account the AuthorizedKeysCommand
@@ -153,6 +165,33 @@ DESCRIPTION
153 listed, separated by whitespace. The default is 165 listed, separated by whitespace. The default is
154 M-bM-^@M-^\.ssh/authorized_keys .ssh/authorized_keys2M-bM-^@M-^]. 166 M-bM-^@M-^\.ssh/authorized_keys .ssh/authorized_keys2M-bM-^@M-^].
155 167
168 AuthorizedPrincipalsCommand
169 Specifies a program to be used to generate the list of allowed
170 certificate principals as per AuthorizedPrincipalsFile. The
171 program must be owned by root, not writable by group or others
172 and specified by an absolute path.
173
174 Arguments to AuthorizedPrincipalsCommand may be provided using
175 the following tokens, which will be expanded at runtime: %% is
176 replaced by a literal '%', %u is replaced by the username being
177 authenticated and %h is replaced by the home directory of the
178 user being authenticated.
179
180 The program should produce on standard output zero or more lines
181 of AuthorizedPrincipalsFile output. If either
182 AuthorizedPrincipalsCommand or AuthorizedPrincipalsFile is
183 specified, then certificates offered by the client for
184 authentication must contain a principal that is listed. By
185 default, no AuthorizedPrincipalsCommand is run.
186
187 AuthorizedPrincipalsCommandUser
188 Specifies the user under whose account the
189 AuthorizedPrincipalsCommand is run. It is recommended to use a
190 dedicated user that has no other role on the host than running
191 authorized principals commands. If AuthorizedPrincipalsCommand
192 is specified but AuthorizedPrincipalsCommandUser is not, then
193 sshd(8) will refuse to start.
194
156 AuthorizedPrincipalsFile 195 AuthorizedPrincipalsFile
157 Specifies a file that lists principal names that are accepted for 196 Specifies a file that lists principal names that are accepted for
158 certificate authentication. When using certificates signed by a 197 certificate authentication. When using certificates signed by a
@@ -344,6 +383,15 @@ DESCRIPTION
344 cache on logout. The default is M-bM-^@M-^\yesM-bM-^@M-^]. Note that this option 383 cache on logout. The default is M-bM-^@M-^\yesM-bM-^@M-^]. Note that this option
345 applies to protocol version 2 only. 384 applies to protocol version 2 only.
346 385
386 GSSAPIStrictAcceptorCheck
387 Determines whether to be strict about the identity of the GSSAPI
388 acceptor a client authenticates against. If set to M-bM-^@M-^\yesM-bM-^@M-^] then
389 the client must authenticate against the host service on the
390 current hostname. If set to M-bM-^@M-^\noM-bM-^@M-^] then the client may
391 authenticate against any service key stored in the machine's
392 default store. This facility is provided to assist with
393 operation on multi homed machines. The default is M-bM-^@M-^\yesM-bM-^@M-^].
394
347 HostbasedAcceptedKeyTypes 395 HostbasedAcceptedKeyTypes
348 Specifies the key types that will be accepted for hostbased 396 Specifies the key types that will be accepted for hostbased
349 authentication as a comma-separated pattern list. The default 397 authentication as a comma-separated pattern list. The default
@@ -484,10 +532,8 @@ DESCRIPTION
484 ListenAddress [host|IPv6_addr]:port 532 ListenAddress [host|IPv6_addr]:port
485 533
486 If port is not specified, sshd will listen on the address and all 534 If port is not specified, sshd will listen on the address and all
487 prior Port options specified. The default is to listen on all 535 Port options specified. The default is to listen on all local
488 local addresses. Multiple ListenAddress options are permitted. 536 addresses. Multiple ListenAddress options are permitted.
489 Additionally, any Port options must precede this option for non-
490 port qualified addresses.
491 537
492 LoginGraceTime 538 LoginGraceTime
493 The server disconnects after this time if the user has not 539 The server disconnects after this time if the user has not
@@ -628,7 +674,7 @@ DESCRIPTION
628 PermitRootLogin 674 PermitRootLogin
629 Specifies whether root can log in using ssh(1). The argument 675 Specifies whether root can log in using ssh(1). The argument
630 must be M-bM-^@M-^\yesM-bM-^@M-^], M-bM-^@M-^\without-passwordM-bM-^@M-^], M-bM-^@M-^\forced-commands-onlyM-bM-^@M-^], or 676 must be M-bM-^@M-^\yesM-bM-^@M-^], M-bM-^@M-^\without-passwordM-bM-^@M-^], M-bM-^@M-^\forced-commands-onlyM-bM-^@M-^], or
631 M-bM-^@M-^\noM-bM-^@M-^]. The default is M-bM-^@M-^\yesM-bM-^@M-^]. 677 M-bM-^@M-^\noM-bM-^@M-^]. The default is M-bM-^@M-^\noM-bM-^@M-^].
632 678
633 If this option is set to M-bM-^@M-^\without-passwordM-bM-^@M-^], password 679 If this option is set to M-bM-^@M-^\without-passwordM-bM-^@M-^], password
634 authentication is disabled for root. 680 authentication is disabled for root.
@@ -667,7 +713,8 @@ DESCRIPTION
667 713
668 PidFile 714 PidFile
669 Specifies the file that contains the process ID of the SSH 715 Specifies the file that contains the process ID of the SSH
670 daemon. The default is /var/run/sshd.pid. 716 daemon, or M-bM-^@M-^\noneM-bM-^@M-^] to not write one. The default is
717 /var/run/sshd.pid.
671 718
672 Port Specifies the port number that sshd(8) listens on. The default 719 Port Specifies the port number that sshd(8) listens on. The default
673 is 22. Multiple options of this type are permitted. See also 720 is 22. Multiple options of this type are permitted. See also
@@ -718,13 +765,14 @@ DESCRIPTION
718 applies to protocol version 2 only. 765 applies to protocol version 2 only.
719 766
720 RevokedKeys 767 RevokedKeys
721 Specifies revoked public keys. Keys listed in this file will be 768 Specifies revoked public keys file, or M-bM-^@M-^\noneM-bM-^@M-^] to not use one.
722 refused for public key authentication. Note that if this file is 769 Keys listed in this file will be refused for public key
723 not readable, then public key authentication will be refused for 770 authentication. Note that if this file is not readable, then
724 all users. Keys may be specified as a text file, listing one 771 public key authentication will be refused for all users. Keys
725 public key per line, or as an OpenSSH Key Revocation List (KRL) 772 may be specified as a text file, listing one public key per line,
726 as generated by ssh-keygen(1). For more information on KRLs, see 773 or as an OpenSSH Key Revocation List (KRL) as generated by
727 the KEY REVOCATION LISTS section in ssh-keygen(1). 774 ssh-keygen(1). For more information on KRLs, see the KEY
775 REVOCATION LISTS section in ssh-keygen(1).
728 776
729 RhostsRSAAuthentication 777 RhostsRSAAuthentication
730 Specifies whether rhosts or /etc/hosts.equiv authentication 778 Specifies whether rhosts or /etc/hosts.equiv authentication
@@ -810,14 +858,15 @@ DESCRIPTION
810 TrustedUserCAKeys 858 TrustedUserCAKeys
811 Specifies a file containing public keys of certificate 859 Specifies a file containing public keys of certificate
812 authorities that are trusted to sign user certificates for 860 authorities that are trusted to sign user certificates for
813 authentication. Keys are listed one per line; empty lines and 861 authentication, or M-bM-^@M-^\noneM-bM-^@M-^] to not use one. Keys are listed one
814 comments starting with M-bM-^@M-^X#M-bM-^@M-^Y are allowed. If a certificate is 862 per line; empty lines and comments starting with M-bM-^@M-^X#M-bM-^@M-^Y are allowed.
815 presented for authentication and has its signing CA key listed in 863 If a certificate is presented for authentication and has its
816 this file, then it may be used for authentication for any user 864 signing CA key listed in this file, then it may be used for
817 listed in the certificate's principals list. Note that 865 authentication for any user listed in the certificate's
818 certificates that lack a list of principals will not be permitted 866 principals list. Note that certificates that lack a list of
819 for authentication using TrustedUserCAKeys. For more details on 867 principals will not be permitted for authentication using
820 certificates, see the CERTIFICATES section in ssh-keygen(1). 868 TrustedUserCAKeys. For more details on certificates, see the
869 CERTIFICATES section in ssh-keygen(1).
821 870
822 UseDNS Specifies whether sshd(8) should look up the remote host name and 871 UseDNS Specifies whether sshd(8) should look up the remote host name and
823 check that the resolved host name for the remote IP address maps 872 check that the resolved host name for the remote IP address maps
@@ -901,8 +950,8 @@ DESCRIPTION
901 default is M-bM-^@M-^\yesM-bM-^@M-^]. 950 default is M-bM-^@M-^\yesM-bM-^@M-^].
902 951
903 XAuthLocation 952 XAuthLocation
904 Specifies the full pathname of the xauth(1) program. The default 953 Specifies the full pathname of the xauth(1) program, or M-bM-^@M-^\noneM-bM-^@M-^] to
905 is /usr/X11R6/bin/xauth. 954 not use one. The default is /usr/X11R6/bin/xauth.
906 955
907TIME FORMATS 956TIME FORMATS
908 sshd(8) command-line arguments and configuration file options that 957 sshd(8) command-line arguments and configuration file options that
@@ -943,4 +992,4 @@ AUTHORS
943 versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support 992 versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support
944 for privilege separation. 993 for privilege separation.
945 994
946OpenBSD 5.7 February 20, 2015 OpenBSD 5.7 995OpenBSD 5.7 June 5, 2015 OpenBSD 5.7
diff --git a/sshd_config.5 b/sshd_config.5
index 6dce0c70c..5ab431890 100644
--- a/sshd_config.5
+++ b/sshd_config.5
@@ -33,8 +33,8 @@
33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35.\" 35.\"
36.\" $OpenBSD: sshd_config.5,v 1.194 2015/02/20 23:46:01 djm Exp $ 36.\" $OpenBSD: sshd_config.5,v 1.204 2015/06/05 03:44:14 djm Exp $
37.Dd $Mdocdate: February 20 2015 $ 37.Dd $Mdocdate: June 5 2015 $
38.Dt SSHD_CONFIG 5 38.Dt SSHD_CONFIG 5
39.Os 39.Os
40.Sh NAME 40.Sh NAME
@@ -70,7 +70,11 @@ See
70in 70in
71.Xr ssh_config 5 71.Xr ssh_config 5
72for how to configure the client. 72for how to configure the client.
73Note that environment passing is only supported for protocol 2. 73Note that environment passing is only supported for protocol 2, and
74that the
75.Ev TERM
76environment variable is always sent whenever the client
77requests a pseudo-terminal as it is required by the protocol.
74Variables are specified by name, which may contain the wildcard characters 78Variables are specified by name, which may contain the wildcard characters
75.Ql * 79.Ql *
76and 80and
@@ -230,9 +234,21 @@ The default is not to require multiple authentication; successful completion
230of a single authentication method is sufficient. 234of a single authentication method is sufficient.
231.It Cm AuthorizedKeysCommand 235.It Cm AuthorizedKeysCommand
232Specifies a program to be used to look up the user's public keys. 236Specifies a program to be used to look up the user's public keys.
233The program must be owned by root and not writable by group or others. 237The program must be owned by root, not writable by group or others and
234It will be invoked with a single argument of the username 238specified by an absolute path.
235being authenticated, and should produce on standard output zero or 239.Pp
240Arguments to
241.Cm AuthorizedKeysCommand
242may be provided using the following tokens, which will be expanded
243at runtime: %% is replaced by a literal '%', %u is replaced by the
244username being authenticated, %h is replaced by the home directory
245of the user being authenticated, %t is replaced with the key type
246offered for authentication, %f is replaced with the fingerprint of
247the key, and %k is replaced with the key being offered for authentication.
248If no arguments are specified then the username of the target user
249will be supplied.
250.Pp
251The program should produce on standard output zero or
236more lines of authorized_keys output (see AUTHORIZED_KEYS in 252more lines of authorized_keys output (see AUTHORIZED_KEYS in
237.Xr sshd 8 ) . 253.Xr sshd 8 ) .
238If a key supplied by AuthorizedKeysCommand does not successfully authenticate 254If a key supplied by AuthorizedKeysCommand does not successfully authenticate
@@ -271,6 +287,42 @@ directory.
271Multiple files may be listed, separated by whitespace. 287Multiple files may be listed, separated by whitespace.
272The default is 288The default is
273.Dq .ssh/authorized_keys .ssh/authorized_keys2 . 289.Dq .ssh/authorized_keys .ssh/authorized_keys2 .
290.It Cm AuthorizedPrincipalsCommand
291Specifies a program to be used to generate the list of allowed
292certificate principals as per
293.Cm AuthorizedPrincipalsFile .
294The program must be owned by root, not writable by group or others and
295specified by an absolute path.
296.Pp
297Arguments to
298.Cm AuthorizedPrincipalsCommand
299may be provided using the following tokens, which will be expanded
300at runtime: %% is replaced by a literal '%', %u is replaced by the
301username being authenticated and %h is replaced by the home directory
302of the user being authenticated.
303.Pp
304The program should produce on standard output zero or
305more lines of
306.Cm AuthorizedPrincipalsFile
307output.
308If either
309.Cm AuthorizedPrincipalsCommand
310or
311.Cm AuthorizedPrincipalsFile
312is specified, then certificates offered by the client for authentication
313must contain a principal that is listed.
314By default, no AuthorizedPrincipalsCommand is run.
315.It Cm AuthorizedPrincipalsCommandUser
316Specifies the user under whose account the AuthorizedPrincipalsCommand is run.
317It is recommended to use a dedicated user that has no other role on the host
318than running authorized principals commands.
319If
320.Cm AuthorizedPrincipalsCommand
321is specified but
322.Cm AuthorizedPrincipalsCommandUser
323is not, then
324.Xr sshd 8
325will refuse to start.
274.It Cm AuthorizedPrincipalsFile 326.It Cm AuthorizedPrincipalsFile
275Specifies a file that lists principal names that are accepted for 327Specifies a file that lists principal names that are accepted for
276certificate authentication. 328certificate authentication.
@@ -570,6 +622,21 @@ on logout.
570The default is 622The default is
571.Dq yes . 623.Dq yes .
572Note that this option applies to protocol version 2 only. 624Note that this option applies to protocol version 2 only.
625.It Cm GSSAPIStrictAcceptorCheck
626Determines whether to be strict about the identity of the GSSAPI acceptor
627a client authenticates against.
628If set to
629.Dq yes
630then the client must authenticate against the
631.Pa host
632service on the current hostname.
633If set to
634.Dq no
635then the client may authenticate against any service key stored in the
636machine's default store.
637This facility is provided to assist with operation on multi homed machines.
638The default is
639.Dq yes .
573.It Cm HostbasedAcceptedKeyTypes 640.It Cm HostbasedAcceptedKeyTypes
574Specifies the key types that will be accepted for hostbased authentication 641Specifies the key types that will be accepted for hostbased authentication
575as a comma-separated pattern list. 642as a comma-separated pattern list.
@@ -826,16 +893,13 @@ The following forms may be used:
826If 893If
827.Ar port 894.Ar port
828is not specified, 895is not specified,
829sshd will listen on the address and all prior 896sshd will listen on the address and all
830.Cm Port 897.Cm Port
831options specified. 898options specified.
832The default is to listen on all local addresses. 899The default is to listen on all local addresses.
833Multiple 900Multiple
834.Cm ListenAddress 901.Cm ListenAddress
835options are permitted. 902options are permitted.
836Additionally, any
837.Cm Port
838options must precede this option for non-port qualified addresses.
839.It Cm LoginGraceTime 903.It Cm LoginGraceTime
840The server disconnects after this time if the user has not 904The server disconnects after this time if the user has not
841successfully logged in. 905successfully logged in.
@@ -1093,7 +1157,7 @@ The argument must be
1093or 1157or
1094.Dq no . 1158.Dq no .
1095The default is 1159The default is
1096.Dq yes . 1160.Dq no .
1097.Pp 1161.Pp
1098If this option is set to 1162If this option is set to
1099.Dq without-password , 1163.Dq without-password ,
@@ -1163,7 +1227,9 @@ The default is
1163.Dq yes . 1227.Dq yes .
1164.It Cm PidFile 1228.It Cm PidFile
1165Specifies the file that contains the process ID of the 1229Specifies the file that contains the process ID of the
1166SSH daemon. 1230SSH daemon, or
1231.Dq none
1232to not write one.
1167The default is 1233The default is
1168.Pa /var/run/sshd.pid . 1234.Pa /var/run/sshd.pid .
1169.It Cm Port 1235.It Cm Port
@@ -1253,7 +1319,9 @@ which means that rekeying is performed after the cipher's default amount
1253of data has been sent or received and no time based rekeying is done. 1319of data has been sent or received and no time based rekeying is done.
1254This option applies to protocol version 2 only. 1320This option applies to protocol version 2 only.
1255.It Cm RevokedKeys 1321.It Cm RevokedKeys
1256Specifies revoked public keys. 1322Specifies revoked public keys file, or
1323.Dq none
1324to not use one.
1257Keys listed in this file will be refused for public key authentication. 1325Keys listed in this file will be refused for public key authentication.
1258Note that if this file is not readable, then public key authentication will 1326Note that if this file is not readable, then public key authentication will
1259be refused for all users. 1327be refused for all users.
@@ -1366,7 +1434,9 @@ To disable TCP keepalive messages, the value should be set to
1366.Dq no . 1434.Dq no .
1367.It Cm TrustedUserCAKeys 1435.It Cm TrustedUserCAKeys
1368Specifies a file containing public keys of certificate authorities that are 1436Specifies a file containing public keys of certificate authorities that are
1369trusted to sign user certificates for authentication. 1437trusted to sign user certificates for authentication, or
1438.Dq none
1439to not use one.
1370Keys are listed one per line; empty lines and comments starting with 1440Keys are listed one per line; empty lines and comments starting with
1371.Ql # 1441.Ql #
1372are allowed. 1442are allowed.
@@ -1519,7 +1589,9 @@ The default is
1519.It Cm XAuthLocation 1589.It Cm XAuthLocation
1520Specifies the full pathname of the 1590Specifies the full pathname of the
1521.Xr xauth 1 1591.Xr xauth 1
1522program. 1592program, or
1593.Dq none
1594to not use one.
1523The default is 1595The default is
1524.Pa /usr/X11R6/bin/xauth . 1596.Pa /usr/X11R6/bin/xauth .
1525.El 1597.El
diff --git a/sshkey.c b/sshkey.c
index 476879033..cfe598080 100644
--- a/sshkey.c
+++ b/sshkey.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshkey.c,v 1.15 2015/03/06 01:40:56 djm Exp $ */ 1/* $OpenBSD: sshkey.c,v 1.19 2015/05/21 04:55:51 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
4 * Copyright (c) 2008 Alexander von Gernler. All rights reserved. 4 * Copyright (c) 2008 Alexander von Gernler. All rights reserved.
@@ -251,7 +251,7 @@ sshkey_names_valid2(const char *names, int allow_wildcard)
251 if (kt->type == KEY_RSA1) 251 if (kt->type == KEY_RSA1)
252 continue; 252 continue;
253 if (match_pattern_list(kt->name, 253 if (match_pattern_list(kt->name,
254 p, strlen(p), 0) != 0) 254 p, 0) != 0)
255 break; 255 break;
256 } 256 }
257 if (kt->type != -1) 257 if (kt->type != -1)
@@ -761,6 +761,12 @@ to_blob_buf(const struct sshkey *key, struct sshbuf *b, int force_plain)
761 if (key == NULL) 761 if (key == NULL)
762 return SSH_ERR_INVALID_ARGUMENT; 762 return SSH_ERR_INVALID_ARGUMENT;
763 763
764 if (sshkey_is_cert(key)) {
765 if (key->cert == NULL)
766 return SSH_ERR_EXPECTED_CERT;
767 if (sshbuf_len(key->cert->certblob) == 0)
768 return SSH_ERR_KEY_LACKS_CERTBLOB;
769 }
764 type = force_plain ? sshkey_type_plain(key->type) : key->type; 770 type = force_plain ? sshkey_type_plain(key->type) : key->type;
765 typename = sshkey_ssh_name_from_type_nid(type, key->ecdsa_nid); 771 typename = sshkey_ssh_name_from_type_nid(type, key->ecdsa_nid);
766 772
@@ -1409,98 +1415,116 @@ sshkey_read(struct sshkey *ret, char **cpp)
1409} 1415}
1410 1416
1411int 1417int
1412sshkey_write(const struct sshkey *key, FILE *f) 1418sshkey_to_base64(const struct sshkey *key, char **b64p)
1413{ 1419{
1414 int ret = SSH_ERR_INTERNAL_ERROR; 1420 int r = SSH_ERR_INTERNAL_ERROR;
1415 struct sshbuf *b = NULL, *bb = NULL; 1421 struct sshbuf *b = NULL;
1416 char *uu = NULL; 1422 char *uu = NULL;
1423
1424 if (b64p != NULL)
1425 *b64p = NULL;
1426 if ((b = sshbuf_new()) == NULL)
1427 return SSH_ERR_ALLOC_FAIL;
1428 if ((r = sshkey_putb(key, b)) != 0)
1429 goto out;
1430 if ((uu = sshbuf_dtob64(b)) == NULL) {
1431 r = SSH_ERR_ALLOC_FAIL;
1432 goto out;
1433 }
1434 /* Success */
1435 if (b64p != NULL) {
1436 *b64p = uu;
1437 uu = NULL;
1438 }
1439 r = 0;
1440 out:
1441 sshbuf_free(b);
1442 free(uu);
1443 return r;
1444}
1445
1446static int
1447sshkey_format_rsa1(const struct sshkey *key, struct sshbuf *b)
1448{
1449 int r = SSH_ERR_INTERNAL_ERROR;
1417#ifdef WITH_SSH1 1450#ifdef WITH_SSH1
1418 u_int bits = 0; 1451 u_int bits = 0;
1419 char *dec_e = NULL, *dec_n = NULL; 1452 char *dec_e = NULL, *dec_n = NULL;
1420#endif /* WITH_SSH1 */
1421 1453
1422 if (sshkey_is_cert(key)) { 1454 if (key->rsa == NULL || key->rsa->e == NULL ||
1423 if (key->cert == NULL) 1455 key->rsa->n == NULL) {
1424 return SSH_ERR_EXPECTED_CERT; 1456 r = SSH_ERR_INVALID_ARGUMENT;
1425 if (sshbuf_len(key->cert->certblob) == 0) 1457 goto out;
1426 return SSH_ERR_KEY_LACKS_CERTBLOB;
1427 } 1458 }
1428 if ((b = sshbuf_new()) == NULL) 1459 if ((dec_e = BN_bn2dec(key->rsa->e)) == NULL ||
1429 return SSH_ERR_ALLOC_FAIL; 1460 (dec_n = BN_bn2dec(key->rsa->n)) == NULL) {
1430 switch (key->type) { 1461 r = SSH_ERR_ALLOC_FAIL;
1431#ifdef WITH_SSH1 1462 goto out;
1432 case KEY_RSA1: 1463 }
1433 if (key->rsa == NULL || key->rsa->e == NULL || 1464 /* size of modulus 'n' */
1434 key->rsa->n == NULL) { 1465 if ((bits = BN_num_bits(key->rsa->n)) <= 0) {
1435 ret = SSH_ERR_INVALID_ARGUMENT; 1466 r = SSH_ERR_INVALID_ARGUMENT;
1436 goto out; 1467 goto out;
1437 } 1468 }
1438 if ((dec_e = BN_bn2dec(key->rsa->e)) == NULL || 1469 if ((r = sshbuf_putf(b, "%u %s %s", bits, dec_e, dec_n)) != 0)
1439 (dec_n = BN_bn2dec(key->rsa->n)) == NULL) { 1470 goto out;
1440 ret = SSH_ERR_ALLOC_FAIL; 1471
1441 goto out; 1472 /* Success */
1442 } 1473 r = 0;
1443 /* size of modulus 'n' */ 1474 out:
1444 if ((bits = BN_num_bits(key->rsa->n)) <= 0) { 1475 if (dec_e != NULL)
1445 ret = SSH_ERR_INVALID_ARGUMENT; 1476 OPENSSL_free(dec_e);
1446 goto out; 1477 if (dec_n != NULL)
1447 } 1478 OPENSSL_free(dec_n);
1448 if ((ret = sshbuf_putf(b, "%u %s %s", bits, dec_e, dec_n)) != 0)
1449 goto out;
1450#endif /* WITH_SSH1 */ 1479#endif /* WITH_SSH1 */
1451 break; 1480
1452#ifdef WITH_OPENSSL 1481 return r;
1453 case KEY_DSA: 1482}
1454 case KEY_DSA_CERT_V00: 1483
1455 case KEY_DSA_CERT: 1484static int
1456 case KEY_ECDSA: 1485sshkey_format_text(const struct sshkey *key, struct sshbuf *b)
1457 case KEY_ECDSA_CERT: 1486{
1458 case KEY_RSA: 1487 int r = SSH_ERR_INTERNAL_ERROR;
1459 case KEY_RSA_CERT_V00: 1488 char *uu = NULL;
1460 case KEY_RSA_CERT: 1489
1461#endif /* WITH_OPENSSL */ 1490 if (key->type == KEY_RSA1) {
1462 case KEY_ED25519: 1491 if ((r = sshkey_format_rsa1(key, b)) != 0)
1463 case KEY_ED25519_CERT:
1464 if ((bb = sshbuf_new()) == NULL) {
1465 ret = SSH_ERR_ALLOC_FAIL;
1466 goto out;
1467 }
1468 if ((ret = sshkey_putb(key, bb)) != 0)
1469 goto out;
1470 if ((uu = sshbuf_dtob64(bb)) == NULL) {
1471 ret = SSH_ERR_ALLOC_FAIL;
1472 goto out; 1492 goto out;
1473 } 1493 } else {
1474 if ((ret = sshbuf_putf(b, "%s ", sshkey_ssh_name(key))) != 0) 1494 /* Unsupported key types handled in sshkey_to_base64() */
1495 if ((r = sshkey_to_base64(key, &uu)) != 0)
1475 goto out; 1496 goto out;
1476 if ((ret = sshbuf_put(b, uu, strlen(uu))) != 0) 1497 if ((r = sshbuf_putf(b, "%s %s",
1498 sshkey_ssh_name(key), uu)) != 0)
1477 goto out; 1499 goto out;
1478 break;
1479 default:
1480 ret = SSH_ERR_KEY_TYPE_UNKNOWN;
1481 goto out;
1482 } 1500 }
1501 r = 0;
1502 out:
1503 free(uu);
1504 return r;
1505}
1506
1507int
1508sshkey_write(const struct sshkey *key, FILE *f)
1509{
1510 struct sshbuf *b = NULL;
1511 int r = SSH_ERR_INTERNAL_ERROR;
1512
1513 if ((b = sshbuf_new()) == NULL)
1514 return SSH_ERR_ALLOC_FAIL;
1515 if ((r = sshkey_format_text(key, b)) != 0)
1516 goto out;
1483 if (fwrite(sshbuf_ptr(b), sshbuf_len(b), 1, f) != 1) { 1517 if (fwrite(sshbuf_ptr(b), sshbuf_len(b), 1, f) != 1) {
1484 if (feof(f)) 1518 if (feof(f))
1485 errno = EPIPE; 1519 errno = EPIPE;
1486 ret = SSH_ERR_SYSTEM_ERROR; 1520 r = SSH_ERR_SYSTEM_ERROR;
1487 goto out; 1521 goto out;
1488 } 1522 }
1489 ret = 0; 1523 /* Success */
1524 r = 0;
1490 out: 1525 out:
1491 if (b != NULL) 1526 sshbuf_free(b);
1492 sshbuf_free(b); 1527 return r;
1493 if (bb != NULL)
1494 sshbuf_free(bb);
1495 if (uu != NULL)
1496 free(uu);
1497#ifdef WITH_SSH1
1498 if (dec_e != NULL)
1499 OPENSSL_free(dec_e);
1500 if (dec_n != NULL)
1501 OPENSSL_free(dec_n);
1502#endif /* WITH_SSH1 */
1503 return ret;
1504} 1528}
1505 1529
1506const char * 1530const char *
@@ -2013,8 +2037,8 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp,
2013 ret = SSH_ERR_ALLOC_FAIL; 2037 ret = SSH_ERR_ALLOC_FAIL;
2014 goto out; 2038 goto out;
2015 } 2039 }
2016 if (sshbuf_get_bignum2(b, key->rsa->e) == -1 || 2040 if (sshbuf_get_bignum2(b, key->rsa->e) != 0 ||
2017 sshbuf_get_bignum2(b, key->rsa->n) == -1) { 2041 sshbuf_get_bignum2(b, key->rsa->n) != 0) {
2018 ret = SSH_ERR_INVALID_FORMAT; 2042 ret = SSH_ERR_INVALID_FORMAT;
2019 goto out; 2043 goto out;
2020 } 2044 }
@@ -2035,10 +2059,10 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp,
2035 ret = SSH_ERR_ALLOC_FAIL; 2059 ret = SSH_ERR_ALLOC_FAIL;
2036 goto out; 2060 goto out;
2037 } 2061 }
2038 if (sshbuf_get_bignum2(b, key->dsa->p) == -1 || 2062 if (sshbuf_get_bignum2(b, key->dsa->p) != 0 ||
2039 sshbuf_get_bignum2(b, key->dsa->q) == -1 || 2063 sshbuf_get_bignum2(b, key->dsa->q) != 0 ||
2040 sshbuf_get_bignum2(b, key->dsa->g) == -1 || 2064 sshbuf_get_bignum2(b, key->dsa->g) != 0 ||
2041 sshbuf_get_bignum2(b, key->dsa->pub_key) == -1) { 2065 sshbuf_get_bignum2(b, key->dsa->pub_key) != 0) {
2042 ret = SSH_ERR_INVALID_FORMAT; 2066 ret = SSH_ERR_INVALID_FORMAT;
2043 goto out; 2067 goto out;
2044 } 2068 }
@@ -3201,7 +3225,7 @@ sshkey_parse_private2(struct sshbuf *blob, int type, const char *passphrase,
3201 const u_char *cp; 3225 const u_char *cp;
3202 int r = SSH_ERR_INTERNAL_ERROR; 3226 int r = SSH_ERR_INTERNAL_ERROR;
3203 size_t encoded_len; 3227 size_t encoded_len;
3204 size_t i, keylen = 0, ivlen = 0, slen = 0; 3228 size_t i, keylen = 0, ivlen = 0, authlen = 0, slen = 0;
3205 struct sshbuf *encoded = NULL, *decoded = NULL; 3229 struct sshbuf *encoded = NULL, *decoded = NULL;
3206 struct sshbuf *kdf = NULL, *decrypted = NULL; 3230 struct sshbuf *kdf = NULL, *decrypted = NULL;
3207 struct sshcipher_ctx ciphercontext; 3231 struct sshcipher_ctx ciphercontext;
@@ -3311,6 +3335,7 @@ sshkey_parse_private2(struct sshbuf *blob, int type, const char *passphrase,
3311 /* setup key */ 3335 /* setup key */
3312 keylen = cipher_keylen(cipher); 3336 keylen = cipher_keylen(cipher);
3313 ivlen = cipher_ivlen(cipher); 3337 ivlen = cipher_ivlen(cipher);
3338 authlen = cipher_authlen(cipher);
3314 if ((key = calloc(1, keylen + ivlen)) == NULL) { 3339 if ((key = calloc(1, keylen + ivlen)) == NULL) {
3315 r = SSH_ERR_ALLOC_FAIL; 3340 r = SSH_ERR_ALLOC_FAIL;
3316 goto out; 3341 goto out;
@@ -3326,19 +3351,25 @@ sshkey_parse_private2(struct sshbuf *blob, int type, const char *passphrase,
3326 } 3351 }
3327 } 3352 }
3328 3353
3354 /* check that an appropriate amount of auth data is present */
3355 if (sshbuf_len(decoded) < encrypted_len + authlen) {
3356 r = SSH_ERR_INVALID_FORMAT;
3357 goto out;
3358 }
3359
3329 /* decrypt private portion of key */ 3360 /* decrypt private portion of key */
3330 if ((r = sshbuf_reserve(decrypted, encrypted_len, &dp)) != 0 || 3361 if ((r = sshbuf_reserve(decrypted, encrypted_len, &dp)) != 0 ||
3331 (r = cipher_init(&ciphercontext, cipher, key, keylen, 3362 (r = cipher_init(&ciphercontext, cipher, key, keylen,
3332 key + keylen, ivlen, 0)) != 0) 3363 key + keylen, ivlen, 0)) != 0)
3333 goto out; 3364 goto out;
3334 if ((r = cipher_crypt(&ciphercontext, 0, dp, sshbuf_ptr(decoded), 3365 if ((r = cipher_crypt(&ciphercontext, 0, dp, sshbuf_ptr(decoded),
3335 sshbuf_len(decoded), 0, cipher_authlen(cipher))) != 0) { 3366 encrypted_len, 0, authlen)) != 0) {
3336 /* an integrity error here indicates an incorrect passphrase */ 3367 /* an integrity error here indicates an incorrect passphrase */
3337 if (r == SSH_ERR_MAC_INVALID) 3368 if (r == SSH_ERR_MAC_INVALID)
3338 r = SSH_ERR_KEY_WRONG_PASSPHRASE; 3369 r = SSH_ERR_KEY_WRONG_PASSPHRASE;
3339 goto out; 3370 goto out;
3340 } 3371 }
3341 if ((r = sshbuf_consume(decoded, encrypted_len)) != 0) 3372 if ((r = sshbuf_consume(decoded, encrypted_len + authlen)) != 0)
3342 goto out; 3373 goto out;
3343 /* there should be no trailing data */ 3374 /* there should be no trailing data */
3344 if (sshbuf_len(decoded) != 0) { 3375 if (sshbuf_len(decoded) != 0) {
diff --git a/sshkey.h b/sshkey.h
index 62c1c3e2f..cdac0e255 100644
--- a/sshkey.h
+++ b/sshkey.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshkey.h,v 1.5 2015/01/26 02:59:11 djm Exp $ */ 1/* $OpenBSD: sshkey.h,v 1.6 2015/05/21 04:55:51 djm Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. 4 * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved.
@@ -163,6 +163,7 @@ int sshkey_from_blob(const u_char *, size_t, struct sshkey **);
163int sshkey_fromb(struct sshbuf *, struct sshkey **); 163int sshkey_fromb(struct sshbuf *, struct sshkey **);
164int sshkey_froms(struct sshbuf *, struct sshkey **); 164int sshkey_froms(struct sshbuf *, struct sshkey **);
165int sshkey_to_blob(const struct sshkey *, u_char **, size_t *); 165int sshkey_to_blob(const struct sshkey *, u_char **, size_t *);
166int sshkey_to_base64(const struct sshkey *, char **);
166int sshkey_putb(const struct sshkey *, struct sshbuf *); 167int sshkey_putb(const struct sshkey *, struct sshbuf *);
167int sshkey_puts(const struct sshkey *, struct sshbuf *); 168int sshkey_puts(const struct sshkey *, struct sshbuf *);
168int sshkey_plain_to_blob(const struct sshkey *, u_char **, size_t *); 169int sshkey_plain_to_blob(const struct sshkey *, u_char **, size_t *);
diff --git a/sshpty.c b/sshpty.c
index d2ff8c16a..7bb764163 100644
--- a/sshpty.c
+++ b/sshpty.c
@@ -85,12 +85,12 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen)
85void 85void
86pty_release(const char *tty) 86pty_release(const char *tty)
87{ 87{
88#ifndef __APPLE_PRIVPTY__ 88#if !defined(__APPLE_PRIVPTY__) && !defined(HAVE_OPENPTY)
89 if (chown(tty, (uid_t) 0, (gid_t) 0) < 0) 89 if (chown(tty, (uid_t) 0, (gid_t) 0) < 0)
90 error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno)); 90 error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno));
91 if (chmod(tty, (mode_t) 0666) < 0) 91 if (chmod(tty, (mode_t) 0666) < 0)
92 error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno)); 92 error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno));
93#endif /* __APPLE_PRIVPTY__ */ 93#endif /* !__APPLE_PRIVPTY__ && !HAVE_OPENPTY */
94} 94}
95 95
96/* Makes the tty the process's controlling tty and sets it to sane modes. */ 96/* Makes the tty the process's controlling tty and sets it to sane modes. */
diff --git a/uidswap.c b/uidswap.c
index c339283af..0702e1d9e 100644
--- a/uidswap.c
+++ b/uidswap.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: uidswap.c,v 1.37 2015/01/16 06:40:12 deraadt Exp $ */ 1/* $OpenBSD: uidswap.c,v 1.39 2015/06/24 01:49:19 dtucker Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -86,7 +86,7 @@ temporarily_use_uid(struct passwd *pw)
86 if (saved_egroupslen < 0) 86 if (saved_egroupslen < 0)
87 fatal("getgroups: %.100s", strerror(errno)); 87 fatal("getgroups: %.100s", strerror(errno));
88 if (saved_egroupslen > 0) { 88 if (saved_egroupslen > 0) {
89 saved_egroups = xrealloc(saved_egroups, 89 saved_egroups = xreallocarray(saved_egroups,
90 saved_egroupslen, sizeof(gid_t)); 90 saved_egroupslen, sizeof(gid_t));
91 if (getgroups(saved_egroupslen, saved_egroups) < 0) 91 if (getgroups(saved_egroupslen, saved_egroups) < 0)
92 fatal("getgroups: %.100s", strerror(errno)); 92 fatal("getgroups: %.100s", strerror(errno));
@@ -104,7 +104,7 @@ temporarily_use_uid(struct passwd *pw)
104 if (user_groupslen < 0) 104 if (user_groupslen < 0)
105 fatal("getgroups: %.100s", strerror(errno)); 105 fatal("getgroups: %.100s", strerror(errno));
106 if (user_groupslen > 0) { 106 if (user_groupslen > 0) {
107 user_groups = xrealloc(user_groups, 107 user_groups = xreallocarray(user_groups,
108 user_groupslen, sizeof(gid_t)); 108 user_groupslen, sizeof(gid_t));
109 if (getgroups(user_groupslen, user_groups) < 0) 109 if (getgroups(user_groupslen, user_groups) < 0)
110 fatal("getgroups: %.100s", strerror(errno)); 110 fatal("getgroups: %.100s", strerror(errno));
diff --git a/uuencode.c b/uuencode.c
index 294c74304..7fc867a11 100644
--- a/uuencode.c
+++ b/uuencode.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: uuencode.c,v 1.27 2013/05/17 00:13:14 djm Exp $ */ 1/* $OpenBSD: uuencode.c,v 1.28 2015/04/24 01:36:24 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -82,7 +82,7 @@ dump_base64(FILE *fp, const u_char *data, u_int len)
82 fprintf(fp, "dump_base64: len > 65536\n"); 82 fprintf(fp, "dump_base64: len > 65536\n");
83 return; 83 return;
84 } 84 }
85 buf = xmalloc(2*len); 85 buf = xreallocarray(NULL, 2, len);
86 n = uuencode(data, len, buf, 2*len); 86 n = uuencode(data, len, buf, 2*len);
87 for (i = 0; i < n; i++) { 87 for (i = 0; i < n; i++) {
88 fprintf(fp, "%c", buf[i]); 88 fprintf(fp, "%c", buf[i]);
diff --git a/version.h b/version.h
index dfe3ee996..b58fbe1eb 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
1/* $OpenBSD: version.h,v 1.72 2015/03/04 18:53:53 djm Exp $ */ 1/* $OpenBSD: version.h,v 1.73 2015/07/01 01:55:13 djm Exp $ */
2 2
3#define SSH_VERSION "OpenSSH_6.8" 3#define SSH_VERSION "OpenSSH_6.9"
4 4
5#define SSH_PORTABLE "p1" 5#define SSH_PORTABLE "p1"
6#define SSH_RELEASE SSH_VERSION SSH_PORTABLE 6#define SSH_RELEASE SSH_VERSION SSH_PORTABLE
diff --git a/xmalloc.c b/xmalloc.c
index cd59dc2e5..98cbf8776 100644
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: xmalloc.c,v 1.31 2015/02/06 23:21:59 millert Exp $ */ 1/* $OpenBSD: xmalloc.c,v 1.32 2015/04/24 01:36:01 deraadt Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -56,22 +56,14 @@ xcalloc(size_t nmemb, size_t size)
56} 56}
57 57
58void * 58void *
59xrealloc(void *ptr, size_t nmemb, size_t size) 59xreallocarray(void *ptr, size_t nmemb, size_t size)
60{ 60{
61 void *new_ptr; 61 void *new_ptr;
62 size_t new_size = nmemb * size;
63 62
64 if (new_size == 0) 63 new_ptr = reallocarray(ptr, nmemb, size);
65 fatal("xrealloc: zero size");
66 if (SIZE_MAX / nmemb < size)
67 fatal("xrealloc: nmemb * size > SIZE_MAX");
68 if (ptr == NULL)
69 new_ptr = malloc(new_size);
70 else
71 new_ptr = realloc(ptr, new_size);
72 if (new_ptr == NULL) 64 if (new_ptr == NULL)
73 fatal("xrealloc: out of memory (new_size %zu bytes)", 65 fatal("xreallocarray: out of memory (%zu elements of %zu bytes)",
74 new_size); 66 nmemb, size);
75 return new_ptr; 67 return new_ptr;
76} 68}
77 69
diff --git a/xmalloc.h b/xmalloc.h
index 261dfd612..2bec77ba8 100644
--- a/xmalloc.h
+++ b/xmalloc.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: xmalloc.h,v 1.14 2013/05/17 00:13:14 djm Exp $ */ 1/* $OpenBSD: xmalloc.h,v 1.15 2015/04/24 01:36:01 deraadt Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -18,7 +18,7 @@
18 18
19void *xmalloc(size_t); 19void *xmalloc(size_t);
20void *xcalloc(size_t, size_t); 20void *xcalloc(size_t, size_t);
21void *xrealloc(void *, size_t, size_t); 21void *xreallocarray(void *, size_t, size_t);
22char *xstrdup(const char *); 22char *xstrdup(const char *);
23int xasprintf(char **, const char *, ...) 23int xasprintf(char **, const char *, ...)
24 __attribute__((__format__ (printf, 2, 3))) 24 __attribute__((__format__ (printf, 2, 3)))