nicolas / debian.moreutils (public) (License: GPL-2, GPL-2+, Expat, BSD-2-Clause, Public Domain) (since 2018-09-25) (hash sha1)
Debian packaging of joeyh's moreutils
List of commits:
Subject Hash Author Date (UTC)
Merge is_utf8 from https://github.com/julienpalard/is_utf8. 089fa36ad806246278b43df8dadb9a7882d39e54 Julien Palard 2016-07-18 22:48:55
changelog ccf04c19111b1a2ccae7a16bb07a38a528a34a64 Joey Hess 2016-07-15 20:20:10
cygwin support dee9b5042951795cd7abc415f1c4f4becc6363d3 StalkR 2016-07-15 08:48:35
releasing package moreutils version 0.59 f891e8d7aafa336b89d0252e31bf52e1510de6b8 Joey Hess 2016-04-02 19:23:51
style cleanup 411d6d3c6a8912c83cfc8a77747d4e68ed66cb4f Joey Hess 2016-04-02 19:22:55
stderr trigger and verbose mode 5394ef715c4550a627bb2b212de55008f58302b1 Tomas Mudrunka 2016-03-31 15:01:35
changelog 166ba94a0ead7e6cda383fe77ddfe2f682521e7d Joey Hess 2016-03-23 15:48:58
parallel: include signal.h to fix warning when building with clang 181124dc64d3bb3eb5f6bbf8529a147d5e7db45b Kevin Bullock 2016-03-22 16:10:30
allow specifying alternate path to docbook-xsl stylesheets 6d8329a424db3f8f3251a58fe581c94f33aa0fd6 Kevin Bullock 2016-03-22 16:10:29
releasing package moreutils version 0.58 415a2fecc251895b12351b5d21288ecb41516ca6 Joey Hess 2016-02-23 21:12:58
ts: disable utf8 warnings 43996b2796d942bcd9b4bc9c8a06f18a735decda Nicolas Schier 2016-02-05 21:01:10
changelog 2909df57e0f714806752fd9b3dedf20fd20f4518 Joey Hess 2016-01-07 22:28:32
ifdata.c: Fix compilation on OpenBSD 2929eeaf06c42e1f3a3fc07831d585e637432ad3 Michael Reed 2016-01-06 20:24:30
releasing package moreutils version 0.57 b92196912d363683f24e71b0b2351324d50f5375 Joey Hess 2015-07-13 22:29:11
Avoid using non-portable error() in ifdata, a portability reversion introduced in 0.56. 081bc9d2ffcd4356ab4ad2ae7ca9499452d1bbee Joey Hess 2015-07-13 20:33:32
releasing package moreutils version 0.56 7be6572532be02c03653f33dbf87c03b01e2bb26 Joey Hess 2015-06-03 16:04:42
changelog 503f59be52c424a41b548a1460fb0e03beb5692c Joey Hess 2015-06-03 16:01:52
vidir: Create missing target directories (Closes: #728688) 22203bef0b52f44cae45958ac57cb93d7edb9a13 Nicolas Schier 2015-04-08 06:05:35
errno.docbook: Fix typo. Closes: #749399 754c0a6cbae5cfd3f647f8a7a3b9300587b9f34e Joey Hess 2015-03-30 15:42:44
ifdata: Fix error messages when a non-existent network interface is queried. Closes: #386754 Thanks, Nicolas Schier d2d1bcf8f7179f7d2b286e06f5516d7d9d47054b Joey Hess 2015-03-30 15:42:14
Commit 089fa36ad806246278b43df8dadb9a7882d39e54 - Merge is_utf8 from https://github.com/julienpalard/is_utf8.
isutf8 was replaced by this new one for the following reasons:

- noncharacters (ending with 0xFFFF and 0xFFFE) were considered
invalid when encoded in utf8, according to the unicode standard
they are valid: "However, they are not illegal in interchange, nor
does their presence cause Unicode text to be ill-formed."
- \xf4\xbf\xbf\xbf was considered valid UTF8, which is not: after
0xF4 the following byte should be between 80 and 8F.
- this implementation does not try to decode the stream, so it checks
it faster.
Author: Julien Palard
Author date (UTC): 2016-07-18 22:48
Committer name: Julien Palard
Committer date (UTC): 2016-07-18 22:48
Parent(s): ccf04c19111b1a2ccae7a16bb07a38a528a34a64
Signing key:
Tree: 9fc83c7635f9bf7fc60aba58432d22d35d48bae4
File Lines added Lines deleted
Makefile 6 2
check-isutf8 0 46
debian/copyright 3 3
is_utf8/Makefile 55 0
is_utf8/README.md 85 0
is_utf8/is_utf8.c 290 0
is_utf8/is_utf8.h 33 0
is_utf8/main.c 287 0
is_utf8/test.sh 1111 0
isutf8.c 0 280
isutf8.docbook 45 11
File Makefile changed (mode: 100644) (index 6aa0dde..12383ce)
... ... all: $(BINS) $(MANS)
18 18 clean: clean:
19 19 rm -f $(BINS) $(MANS) dump.c errnos.h errno.o rm -f $(BINS) $(MANS) dump.c errnos.h errno.o
20 20
21 isutf8:
22 $(MAKE) -C is_utf8/
23 cp is_utf8/isutf8 .
24
21 25 install: install:
22 26 mkdir -p $(DESTDIR)$(PREFIX)/bin mkdir -p $(DESTDIR)$(PREFIX)/bin
23 27 $(INSTALL_BIN) $(BINS) $(DESTDIR)$(PREFIX)/bin $(INSTALL_BIN) $(BINS) $(DESTDIR)$(PREFIX)/bin
24 28 install $(PERLSCRIPTS) $(DESTDIR)$(PREFIX)/bin install $(PERLSCRIPTS) $(DESTDIR)$(PREFIX)/bin
25
29
26 30 mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1 mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
27 31 install $(MANS) $(DESTDIR)$(PREFIX)/share/man/man1 install $(MANS) $(DESTDIR)$(PREFIX)/share/man/man1
28 32
29 33 check: isutf8 check: isutf8
30 ./check-isutf8
34 ./is_utf8/test.sh
31 35
32 36 %.1: %.docbook %.1: %.docbook
33 37 xmllint --noout --valid $< xmllint --noout --valid $<
File check-isutf8 deleted (index 83a4eed..0000000)
1 #!/bin/bash
2 # Bash needed for the character encodings below.
3 #
4 # Run checks for ./isutf8.
5 #
6 # Lars Wirzenius <liw@iki.fi>
7
8 failed=0
9
10 check() {
11 printf "$2" | ./isutf8 -q
12 ret=$?
13 if [ $ret != $1 ]; then
14 echo "Failure:"
15 echo " input: $2"
16 echo " expected: $1"
17 echo " got: $ret"
18 failed=1
19 fi
20 printf "$2" > check-isutf8.tmp.$$
21 ./isutf8 -q check-isutf8.tmp.$$
22 ret=$?
23 rm -f check-isutf8.tmp.$$
24 if [ $ret != $1 ]; then
25 echo "Failure (from file):"
26 echo " input: $2"
27 echo " expected: $1"
28 echo " got: $ret"
29 failed=1
30 fi
31 }
32
33 check 0 ''
34 check 0 'a'
35 check 0 'ab'
36 check 0 '\xc2\xa9'
37
38 check 1 '\xc2'
39 check 1 '\xc2\x20'
40 check 1 '\x20\xc2'
41 check 1 '\300\200'
42 check 1 '\xed\xa0\x88\xed\xbd\x85' # UTF-16 surrogates
43 check 1 '\xef\xbf\xbe' # 0xFFFE
44 check 1 '\xef\xbf\xbf' # 0xFFFF
45
46 exit $failed
File debian/copyright changed (mode: 100644) (index 7ba0318..9c5432a)
... ... Files: *
5 5 Copyright: 2006-2015 Joey Hess <id@joeyh.name> Copyright: 2006-2015 Joey Hess <id@joeyh.name>
6 6 License: GPL-2+ License: GPL-2+
7 7
8 Files: isutf8.*
9 Copyright: 2005 Lars Wirzenius
10 License: GPL-2+
8 Files: is_utf8/*
9 Copyright: 2016 Julien Palard
10 License: FreeBSD License
11 11
12 12 Files: sponge.* Files: sponge.*
13 13 Copyright: 2006 Tollef Fog Heen Copyright: 2006 Tollef Fog Heen
File is_utf8/Makefile added (mode: 100644) (index 0000000..4ebf8be)
1 ##
2 ## Copyright (c) 2016 Julien Palard.
3 ## All rights reserved.
4 ##
5 ## Redistribution and use in source and binary forms, with or without
6 ## modification, are permitted provided that the following conditions
7 ## are met:
8 ## 1. Redistributions of source code must retain the above copyright
9 ## notice, this list of conditions and the following disclaimer.
10 ## 2. Redistributions in binary form must reproduce the above copyright
11 ## notice, this list of conditions and the following disclaimer in the
12 ## documentation and/or other materials provided with the distribution.
13 ##
14 ## THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 ## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 ## OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 ## IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 ## INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 ## NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 ## THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 ##
25
26 NAME = isutf8
27 SRC = main.c is_utf8.c
28 OBJ = $(SRC:.c=.o)
29
30 VERSION = 0
31 MINOR = 0
32 RELEASE = 0
33
34 LIB_SRC = is_utf8.c
35
36 LINKERNAME = lib$(NAME).so
37 SONAME = $(LINKERNAME).$(VERSION)
38 REALNAME = $(SONAME).$(MINOR).$(RELEASE)
39
40 CC = gcc
41 CFLAGS = -O3 -Wextra -Wall -ansi -Wstrict-prototypes
42
43 $(NAME): $(OBJ)
44 $(CC) $(CFLAGS) -o $(NAME) $(OBJ)
45
46 IS_UTF8_LIB:
47 $(CC) --shared -fPIC $(CFLAGS) $(LIB_SRC) -o $(LINKERNAME)
48
49 all:
50 @make $(NAME)
51
52 clean:
53 rm -f $(NAME) $(LINKERNAME) $(OBJ) $(LIB_OBJ)
54
55 re: clean all
File is_utf8/README.md added (mode: 100644) (index 0000000..dc69654)
1 isutf8 is a program and a c library to check if a given file (or stdin) contains only
2 valid utf-8 sequences.
3
4 # Compiling
5
6 $ make
7
8 # Demo
9
10 $ isutf8 * -v
11 isutf8: line 1, char 97, byte 96: Expecting bytes in the following ranges: 00..7F C2..F4.
12 40 00 40 00 00 00 00 00 C0 01 00 00 00 00 00 00 | @.@.............
13 ^^ | ^
14
15 is_utf8.o: line 1, char 66, byte 65: Expecting bytes in the following ranges: 00..7F C2..F4.
16 00 40 00 0E 00 0B 00 48 85 F6 48 C7 02 00 00 00 | .@.....H..H.....
17 ^^ | ^
18
19 libisutf8.so: line 1, char 153, byte 152: After a first byte of F0, expecting 2nd byte between 90 and BF.
20 68 12 20 00 00 00 00 00 F0 01 00 00 00 00 00 00 | h. .............
21 ^^^^^ | ^^
22
23 main.o: line 1, char 76, byte 75: Expecting bytes in the following ranges: 00..7F C2..F4.
24 56 41 55 41 54 55 53 48 83 EC 18 48 8B 5C 24 58 | VAUATUSH...H.\$X
25 ^^ | ^
26
27 # Test a file
28
29 `isutf8` returns 0 if the file is correctly encoded:
30
31 $ isutf8 main.c
32 $ echo $?
33 0
34
35 Some files here only contain ASCII or correctly encoded UTF8:
36
37 $ isutf8 README.md
38 $ isutf8 test.sh
39
40 But an ELF is clearly not UTF8, a verbose error is printed:
41
42 $ isutf8 isutf8
43 isutf8: line 1, char 97, byte 96: Expecting bytes in the following ranges: 00..7F C2..F4.
44
45 `-v` adds some context:
46
47 $ isutf8 -v isutf8
48 isutf8: line 1, char 97, byte 96: Expecting bytes in the following ranges: 00..7F C2..F4.
49 40 00 40 00 00 00 00 00 C0 01 00 00 00 00 00 00 | @.@.............
50 ^^ | ^
51
52 # Test stdin
53
54 `isutf8` reads on stdin if no file are given, also note that `bash`
55 helps a lot with the `$''` syntax allowing you to write and test hexadecimal:
56
57 $ echo $'\xe9' | isutf8
58 (standard input): line 1, char 0, byte 0: After a first byte between E1 and EC, expecting two following bytes.
59
60 $ echo "Hellö world" | iconv -f utf8 -t latin1 | isutf8
61 (standard input): line 1, char 4, byte 4: Expecting bytes in the following ranges: 00..7F C2..F4.
62
63 # Find UTF8 or non-UTF8 files
64
65 As `isutf8` can take multiple arguments it's easy classify
66 UTF8-compatible versus non UTF8-compatible files:
67
68 List non-UTF8 compatible files:
69
70 $ isutf8 --list *
71 isutf8
72 is_utf8.o
73 libisutf8.so
74 main.o
75
76 List UTF8-compatible files:
77
78 $ isutf8 --list --invert *
79 COPYRIGHT
80 is_utf8.c
81 is_utf8.h
82 main.c
83 Makefile
84 README.md
85 test.sh
File is_utf8/is_utf8.c added (mode: 100644) (index 0000000..0f84eae)
1 /*
2 * Copyright (c) 2016 Julien Palard.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 #include "is_utf8.h"
27
28 /*
29 Check if the given unsigned char * is a valid utf-8 sequence.
30
31 Return value :
32 If the string is valid utf-8, 0 is returned.
33 Else the position, starting from 1, is returned.
34
35 Source:
36 http://www.unicode.org/versions/Unicode7.0.0/UnicodeStandard-7.0.pdf
37 page 124, 3.9 "Unicode Encoding Forms", "UTF-8"
38
39
40 Table 3-7. Well-Formed UTF-8 Byte Sequences
41 -----------------------------------------------------------------------------
42 | Code Points | First Byte | Second Byte | Third Byte | Fourth Byte |
43 | U+0000..U+007F | 00..7F | | | |
44 | U+0080..U+07FF | C2..DF | 80..BF | | |
45 | U+0800..U+0FFF | E0 | A0..BF | 80..BF | |
46 | U+1000..U+CFFF | E1..EC | 80..BF | 80..BF | |
47 | U+D000..U+D7FF | ED | 80..9F | 80..BF | |
48 | U+E000..U+FFFF | EE..EF | 80..BF | 80..BF | |
49 | U+10000..U+3FFFF | F0 | 90..BF | 80..BF | 80..BF |
50 | U+40000..U+FFFFF | F1..F3 | 80..BF | 80..BF | 80..BF |
51 | U+100000..U+10FFFF | F4 | 80..8F | 80..BF | 80..BF |
52 -----------------------------------------------------------------------------
53
54 Returns the first erroneous byte position, and give in
55 `faulty_bytes` the number of actually existing bytes taking part in this error.
56 */
57 int is_utf8(unsigned char *str, size_t len, char **message, int *faulty_bytes)
58 {
59 size_t i = 0;
60
61 *message = NULL;
62 *faulty_bytes = 0;
63 while (i < len)
64 {
65 if (str[i] <= 0x7F) /* 00..7F */
66 {
67 i += 1;
68 }
69 else if (str[i] >= 0xC2 && str[i] <= 0xDF) /* C2..DF 80..BF */
70 {
71 if (i + 1 < len) /* Expect a 2nd byte */
72 {
73 if (str[i + 1] < 0x80 || str[i + 1] > 0xBF)
74 {
75 *message = "After a first byte between C2 and DF, expecting a 2nd byte between 80 and BF";
76 *faulty_bytes = 2;
77 return i;
78 }
79 }
80 else
81 {
82 *message = "After a first byte between C2 and DF, expecting a 2nd byte.";
83 *faulty_bytes = 1;
84 return i;
85 }
86 i += 2;
87 }
88 else if (str[i] == 0xE0) /* E0 A0..BF 80..BF */
89 {
90 if (i + 2 < len) /* Expect a 2nd and 3rd byte */
91 {
92 if (str[i + 1] < 0xA0 || str[i + 1] > 0xBF)
93 {
94 *message = "After a first byte of E0, expecting a 2nd byte between A0 and BF.";
95 *faulty_bytes = 2;
96 return i;
97 }
98 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
99 {
100 *message = "After a first byte of E0, expecting a 3nd byte between 80 and BF.";
101 *faulty_bytes = 3;
102 return i;
103 }
104 }
105 else
106 {
107 *message = "After a first byte of E0, expecting two following bytes.";
108 *faulty_bytes = 1;
109 return i;
110 }
111 i += 3;
112 }
113 else if (str[i] >= 0xE1 && str[i] <= 0xEC) /* E1..EC 80..BF 80..BF */
114 {
115 if (i + 2 < len) /* Expect a 2nd and 3rd byte */
116 {
117 if (str[i + 1] < 0x80 || str[i + 1] > 0xBF)
118 {
119 *message = "After a first byte between E1 and EC, expecting the 2nd byte between 80 and BF.";
120 *faulty_bytes = 2;
121 return i;
122 }
123 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
124 {
125 *message = "After a first byte between E1 and EC, expecting the 3rd byte between 80 and BF.";
126 *faulty_bytes = 3;
127 return i;
128 }
129 }
130 else
131 {
132 *message = "After a first byte between E1 and EC, expecting two following bytes.";
133 *faulty_bytes = 1;
134 return i;
135 }
136 i += 3;
137 }
138 else if (str[i] == 0xED) /* ED 80..9F 80..BF */
139 {
140 if (i + 2 < len) /* Expect a 2nd and 3rd byte */
141 {
142 if (str[i + 1] < 0x80 || str[i + 1] > 0x9F)
143 {
144 *message = "After a first byte of ED, expecting 2nd byte between 80 and 9F.";
145 *faulty_bytes = 2;
146 return i;
147 }
148 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
149 {
150 *message = "After a first byte of ED, expecting 3rd byte between 80 and BF.";
151 *faulty_bytes = 3;
152 return i;
153 }
154 }
155 else
156 {
157 *message = "After a first byte of ED, expecting two following bytes.";
158 *faulty_bytes = 1;
159 return i;
160 }
161 i += 3;
162 }
163 else if (str[i] >= 0xEE && str[i] <= 0xEF) /* EE..EF 80..BF 80..BF */
164 {
165 if (i + 2 < len) /* Expect a 2nd and 3rd byte */
166 {
167 if (str[i + 1] < 0x80 || str[i + 1] > 0xBF)
168 {
169 *message = "After a first byte between EE and EF, expecting 2nd byte between 80 and BF.";
170 *faulty_bytes = 2;
171 return i;
172 }
173 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
174 {
175 *message = "After a first byte between EE and EF, expecting 3rd byte between 80 and BF.";
176 *faulty_bytes = 3;
177 return i;
178 }
179 }
180 else
181 {
182 *message = "After a first byte between EE and EF, two following bytes.";
183 *faulty_bytes = 1;
184 return i;
185 }
186 i += 3;
187 }
188 else if (str[i] == 0xF0) /* F0 90..BF 80..BF 80..BF */
189 {
190 if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */
191 {
192 if (str[i + 1] < 0x90 || str[i + 1] > 0xBF)
193 {
194 *message = "After a first byte of F0, expecting 2nd byte between 90 and BF.";
195 *faulty_bytes = 2;
196 return i;
197 }
198 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
199 {
200 *message = "After a first byte of F0, expecting 3rd byte between 80 and BF.";
201 *faulty_bytes = 3;
202 return i;
203 }
204 if (str[i + 3] < 0x80 || str[i + 3] > 0xBF)
205 {
206 *message = "After a first byte of F0, expecting 4th byte between 80 and BF.";
207 *faulty_bytes = 4;
208 return i;
209 }
210 }
211 else
212 {
213 *message = "After a first byte of F0, expecting three following bytes.";
214 *faulty_bytes = 1;
215 return i;
216 }
217 i += 4;
218 }
219 else if (str[i] >= 0xF1 && str[i] <= 0xF3) /* F1..F3 80..BF 80..BF 80..BF */
220 {
221 if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */
222 {
223 if (str[i + 1] < 0x80 || str[i + 1] > 0xBF)
224 {
225 *message = "After a first byte of F1, F2, or F3, expecting a 2nd byte between 80 and BF.";
226 *faulty_bytes = 2;
227 return i;
228 }
229 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
230 {
231 *message = "After a first byte of F1, F2, or F3, expecting a 3rd byte between 80 and BF.";
232 *faulty_bytes = 3;
233 return i;
234 }
235 if (str[i + 3] < 0x80 || str[i + 3] > 0xBF)
236 {
237 *message = "After a first byte of F1, F2, or F3, expecting a 4th byte between 80 and BF.";
238 *faulty_bytes = 4;
239 return i;
240 }
241 }
242 else
243 {
244 *message = "After a first byte of F1, F2, or F3, expecting three following bytes.";
245 *faulty_bytes = 1;
246 return i;
247 }
248 i += 4;
249 }
250 else if (str[i] == 0xF4) /* F4 80..8F 80..BF 80..BF */
251 {
252 if (i + 3 < len) /* Expect a 2nd, 3rd 3th byte */
253 {
254 if (str[i + 1] < 0x80 || str[i + 1] > 0x8F)
255 {
256 *message = "After a first byte of F4, expecting 2nd byte between 80 and 8F.";
257 *faulty_bytes = 2;
258 return i;
259 }
260 if (str[i + 2] < 0x80 || str[i + 2] > 0xBF)
261 {
262 *message = "After a first byte of F4, expecting 3rd byte between 80 and BF.";
263 *faulty_bytes = 3;
264 return i;
265 }
266 if (str[i + 3] < 0x80 || str[i + 3] > 0xBF)
267 {
268 *message = "After a first byte of F4, expecting 4th byte between 80 and BF.";
269 *faulty_bytes = 4;
270 return i;
271 }
272 }
273 else
274 {
275 *message = "After a first byte of F4, expecting three following bytes.";
276 *faulty_bytes = 1;
277 return i;
278 }
279 i += 4;
280 }
281 else
282 {
283 *message = "Expecting bytes in the following ranges: 00..7F C2..F4.";
284 *faulty_bytes = 1;
285 return i;
286 }
287 }
288 message = NULL;
289 return 0;
290 }
File is_utf8/is_utf8.h added (mode: 100644) (index 0000000..4a26b8c)
1 /*
2 * Copyright (c) 2016 Julien Palard.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 #ifndef _IS_UTF8_H
27 #define _IS_UTF8_H
28
29 #include <stdlib.h>
30
31 int is_utf8(unsigned char *str, size_t len, char **message, int *faulty_bytes);
32
33 #endif /* _IS_UTF8_H */
File is_utf8/main.c added (mode: 100644) (index 0000000..e0730cd)
1 /*
2 * Copyright (c) 2016 Julien Palard.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 #define _POSIX_C_SOURCE 200809L
27 #include <sys/types.h>
28 #include <sys/stat.h>
29 #include <fcntl.h>
30 #include <stdio.h>
31 #include <stdlib.h>
32 #include <string.h>
33 #include <unistd.h>
34 #include <getopt.h>
35 #include <sys/mman.h>
36
37 #include "is_utf8.h"
38
39 #define VERSION "1.2"
40 #define MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
41
42
43 static int show_str(const char *str, unsigned int max_length)
44 {
45 int printed = 0;
46
47 while (max_length-- > 0)
48 {
49 printed += printf("%c", (*str >= ' ' && *str <= '~') ? (unsigned char)*str: '.');
50 str += 1;
51 }
52 return printed;
53 }
54
55 static int show_hex_str(const char *str, unsigned int max_length)
56 {
57 int printed = 0;
58
59 while (max_length-- > 0)
60 printed += printf("%.2X ", (unsigned char)*str++);
61 return printed;
62 }
63
64 /*show_context(, 5, 279, 2, chars_before_error: 8, chars_after_error: -274)
65 **/
66 static void show_context(char *str, int str_length, int err_pos_in_str, int faulty_bytes)
67 {
68 int chars_before_error = MIN(err_pos_in_str, 8);
69 int chars_after_error = MIN(str_length - err_pos_in_str, 8);
70 int printed = 0;
71
72 printed = show_hex_str(str + err_pos_in_str - chars_before_error, chars_before_error + chars_after_error); /* Print up to error. */
73 printf("%*s | ", 3 * 16 - printed, "");
74 show_str(str + err_pos_in_str - chars_before_error, chars_before_error + chars_after_error); /* Print up to error. */
75 printf("\n");
76 printed = printf("%*s", (3 * chars_before_error), "");
77 printed += printf("%.*s", faulty_bytes * 2 + faulty_bytes - 1, "^^^^^^^^^^^^^^^^");
78 printf("%*s | ", 3 * 16 - printed, "");
79 printf("%*s", (chars_before_error), "");
80 printf("%.*s", faulty_bytes, "^^^^");
81 printf("\n\n");
82 }
83
84 static void print_utf8_error(
85 const char* file_path,
86 int error_line, int error_column, int byte_no,
87 char *str, int str_length, int err_pos_in_str,
88 const char *message, int faulty_bytes,
89 int quiet, int verbose,
90 int list_only, int invert)
91 {
92 if (quiet)
93 return;
94 if (message && !invert)
95 {
96 if (list_only)
97 printf("%s\n", file_path);
98 else
99 printf("%s: line %d, char %d, byte %d: %s\n",
100 file_path, error_line, error_column, byte_no,
101 message);
102 if (verbose && !list_only)
103 {
104 show_context(str, str_length, err_pos_in_str, faulty_bytes);
105 }
106 }
107 if (!message && invert)
108 {
109 printf("%s\n", file_path);
110 }
111 }
112
113 #define handle_error(msg, target) \
114 do {retval = EXIT_FAILURE; perror(msg); goto target;} while (0)
115
116 static int is_utf8_readline(FILE *stream, const char *file_path,
117 int quiet, int verbose, int list_only, int invert)
118 {
119 char *string = NULL;
120 size_t size = 0;
121 ssize_t str_length;
122 char *message = NULL;
123 int lineno = 1;
124 int pos = 0;
125 int offset = 0;
126 int faulty_bytes = 0;
127
128 while ((str_length = getline(&string, &size, stream)) != -1)
129 {
130 pos = is_utf8((unsigned char*)string, str_length, &message, &faulty_bytes);
131 if (message != NULL)
132 {
133 offset += pos;
134 print_utf8_error(file_path, lineno, pos, offset,
135 string, str_length, pos, message, faulty_bytes,
136 quiet, verbose, list_only, invert);
137 break;
138 }
139 offset += str_length;
140 lineno += 1;
141 }
142 if (string != NULL)
143 free(string);
144 return message == NULL ? EXIT_SUCCESS : EXIT_FAILURE;
145 }
146
147 static void count_lines(const char *string, int length, int up_to, int *line, int *column)
148 {
149 int pos = 0;
150 int line_start_at = 0;
151
152 *line = 1;
153 while (pos < length && pos < up_to)
154 {
155 if (string[pos] == '\n')
156 {
157 line_start_at = pos + 1;
158 *line += 1;
159 }
160 pos += 1;
161 }
162 *column = 1 + up_to - line_start_at;
163 }
164
165 static int is_utf8_mmap(const char *file_path, int quiet, int verbose,
166 int list_only, int invert)
167 {
168 char *addr;
169 struct stat sb;
170 int fd;
171 int pos = 0;
172 char *message;
173 int retval = EXIT_SUCCESS;
174 int error_column = 1;
175 int error_line = 0;
176 int faulty_bytes = 0;
177
178 fd = open(file_path, O_RDONLY);
179 if (fd == -1)
180 handle_error("open", err_open);
181 if (fstat(fd, &sb) == -1) /* To obtain file size */
182 handle_error("fstat", err_fstat);
183 addr = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
184 if (addr == MAP_FAILED)
185 {
186 /* Can't nmap, maybe a pipe or whatever, let's try readline. */
187 close(fd);
188 return is_utf8_readline(fopen(file_path, "r"), file_path,
189 quiet, verbose, list_only, invert);
190 }
191 pos = is_utf8((unsigned char*)addr, sb.st_size, &message, &faulty_bytes);
192 if (message != NULL)
193 count_lines(addr, sb.st_size, pos, &error_line, &error_column);
194 print_utf8_error(file_path, error_line, error_column, pos,
195 addr, sb.st_size, pos, message, faulty_bytes,
196 quiet, verbose, list_only, invert);
197 if (message != NULL)
198 retval = EXIT_FAILURE;
199 munmap(addr, sb.st_size);
200 err_fstat:
201 close(fd);
202 err_open:
203 return retval;
204 }
205
206 static void usage(const char *program_name) {
207 printf("Usage: %s [OPTION]... [FILE]...\n"
208 "Check whether input files are valid UTF-8.\n"
209 "\n"
210 " -h, --help display this help text and exit\n"
211 " -q, --quiet suppress all normal output\n"
212 " -l, --list print only names of FILEs containing invalid UTF-8\n"
213 " -i, --invert list valid UTF-8 files instead of invalid ones\n"
214 " -v, --verbose print detailed error (multiple lines)\n"
215 "\n"
216 "This is version %s.\n",
217 program_name, VERSION);
218 }
219
220 int main(int ac, char **av)
221 {
222 int quiet = 0;
223 int exit_value = EXIT_SUCCESS;
224 int i;
225 int list_only = 0;
226 int invert = 0;
227 int verbose = 0;
228 int opt;
229 struct option options[] = {
230 { "help", no_argument, NULL, 'h' },
231 { "quiet", no_argument, &quiet, 1 },
232 { "list-only", no_argument, &list_only, 1 },
233 { "invert", no_argument, &invert, 1 },
234 { "verbose", no_argument, &verbose, 1 },
235 { 0, 0, 0, 0 }
236 };
237
238 while ((opt = getopt_long(ac, av, "hqliv", options, NULL)) != -1) {
239 switch (opt) {
240 case 0:
241 break;
242
243 case 'h':
244 usage(av[0]);
245 return EXIT_SUCCESS;
246
247 case 'q':
248 quiet = 1;
249 break;
250
251 case 'l':
252 list_only = 1;
253 break;
254
255 case 'i':
256 invert = 1;
257 break;
258
259 case 'v':
260 verbose = 1;
261 break;
262
263 case '?':
264 usage(av[0]);
265 return EXIT_FAILURE;
266
267 default:
268 usage(av[0]);
269 return EXIT_FAILURE;
270 }
271 }
272 if (optind == ac)
273 {
274 return is_utf8_readline(stdin, "(standard input)", quiet, verbose,
275 list_only, invert);
276 }
277 else
278 {
279 for (i = optind; i < ac; ++i)
280 {
281 if (is_utf8_mmap(av[i], quiet, verbose,
282 list_only, invert) == EXIT_FAILURE)
283 exit_value = EXIT_FAILURE;
284 }
285 return exit_value;
286 }
287 }
File is_utf8/test.sh added (mode: 100755) (index 0000000..681154e)
1 #!/bin/bash
2
3 # Copyright (c) 2016 Julien Palard.
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 #
15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
26 utf8_test_file()
27 {
28 printf "."
29 to_test="$1"
30 should_return="$2"
31 ./isutf8 <(printf "%s" "$to_test") 2>/dev/null >/dev/null
32 error_number=$?
33 if ! [ z"$error_number" == z"$should_return" ]
34 then
35 [ $should_return == 1 ] &&
36 printf "\nThis one should have failed:\n" ||
37 printf "\nThis one should succeed:\n"
38 printf "%s" "$to_test" | hexdump -C
39 printf "%s" "$to_test" | ./isutf8 <(printf "%s" "$to_test")
40 exit 1
41 fi
42 }
43
44 utf8_test_pipe()
45 {
46 printf "."
47 to_test="$1"
48 should_return="$2"
49 printf "%s" "$to_test" | ./isutf8 2>/dev/null >/dev/null
50 error_number=$?
51 if ! [ z"$error_number" == z"$should_return" ]
52 then
53 [ $should_return == 1 ] &&
54 printf "\nThis one should have failed:\n" ||
55 printf "\nThis one should succeed:\n"
56 printf "%s" "$to_test" | hexdump -C
57 printf "%s" "$to_test" | ./isutf8 -
58 exit 1
59 fi
60 }
61
62 utf8_test()
63 {
64 utf8_test_pipe "$@"
65 utf8_test_file "$@"
66 }
67
68 should_pass()
69 {
70 while [ -n "$1" ]
71 do
72 utf8_test "$1" 0
73 shift
74 done
75 }
76
77 should_fail()
78 {
79 while [ -n "$1" ]
80 do
81 utf8_test "$1" 1
82 shift
83 done
84 }
85
86 should_pass "Léa" "Maïté" "Pauline" "Élise"
87 should_fail $'\xc9lise' $'Elis\xc9'
88
89 # Tests from :
90 # Table 3-7. Well-Formed UTF-8 Byte Sequences
91 # -----------------------------------------------------------------------------
92 # | Code Points | First Byte | Second Byte | Third Byte | Fourth Byte |
93 # | U+0000..U+007F | 00..7F | | | |
94 should_pass $'\01' $'\02' q w e r t y "~" "foo" "bar" "baz" "123" 1 2 3 "," $'\n' $'\x0E' $'\x0F' $'\x7F'
95 should_fail $'\x80' $'\x82' $'\x83' $'\xC0' $'\xC1'
96 should_fail $'|\x80' $'|\x82' $'|\x83' $'|\xC0' $'|\xC1'
97 should_fail $'\x80|' $'\x82|' $'\x83|' $'\xC0|' $'\xC1|'
98 # | U+0080..U+07FF | C2..DF | 80..BF | | |
99 should_pass $'\xC2\x80' $'\xC2\xBF' $'\xDF\x80' $'\xDF\xBF'
100 should_fail $'\xC2\x79' $'\xC2\xC0' $'\xC2\xC3'
101 should_pass $'---\xC2\x80' $'---\xC2\xBF' $'---\xDF\x80' $'---\xDF\xBF'
102 should_fail $'\xC2\x79---' $'\xC2\xC0---' $'\xC2\xC3---'
103 # | U+0800..U+0FFF | E0 | A0..BF | 80..BF | |
104 should_pass $'\xE0\xA0\x80' $'\xE0\xA0\xBF' $'\xE0\xBF\x80' $'\xE0\xBF\xBF'
105 should_fail $'\xE0\x99\x80' $'\xE0\xC5\xBF' $'\xE0\xBF\x78' $'\xE0\xBF\xEE'
106 should_pass $'~~~~\xE0\xA0\x80' $'~~~~\xE0\xA0\xBF' $'~~~~\xE0\xBF\x80' $'~~~~\xE0\xBF\xBF'
107 should_fail $'\xE0\x99\x80~~~~' $'\xE0\xC5\xBF~~~~' $'\xE0\xBF\x78~~~~' $'\xE0\xBF\xEE~~~~'
108 # | U+1000..U+CFFF | E1..EC | 80..BF | 80..BF | |
109 should_pass $'\xE1\x80\x80' $'\xE1\xBF\x80' $'\xE1\x80\xBF' $'\xE1\xBF\xBF'
110 should_pass $'\xEC\x80\x80' $'\xEC\xBF\x80' $'\xEC\x80\xBF' $'\xEC\xBF\xBF'
111 should_fail $'\xE1\x41\x80' $'\xE1\xC0\x80' $'\xE1\xC8\xBF' $'\xE1\xBF\xFE'
112 # | U+D000..U+D7FF | ED | 80..9F | 80..BF | |
113 should_pass $'\xED\x80\x80' $'\xED\x80\xBF' $'\xED\x9F\x80' $'\xED\x9F\xBF'
114 should_fail $'\xED\x80\x50' $'\xED\x80\xC1' $'\xED\xBF\x80' $'\xED\xBF\xBF'
115 # | U+E000..U+FFFF | EE..EF | 80..BF | 80..BF | |
116 should_pass $'\xEE\x80\x80' $'\xEE\x80\xBF' $'\xEE\xBF\x80' $'\xEE\xBF\xBF'
117 should_fail $'\xEE\x70\x80' $'\xEE\x80\x70' $'\xEE\xCF\x80' $'\xEE\xCF\xCF'
118 # | U+10000..U+3FFFF | F0 | 90..BF | 80..BF | 80..BF |
119 should_pass $'\xF0\x90\x80\x80' $'\xF0\xBF\x80\x80' $'\xF0\x90\x80\xBF' $'\xF0\xBF\xBF\xBF'
120 should_fail $'\xF0\x70\x80\x80' $'\xF0\xCF\x70\x80' $'\xF0\xCF\x80\xCE' $'\xF0\xCF\xCF\xDF'
121 should_fail $'\xF0\x80\x80\x80'
122 # | U+40000..U+FFFFF | F1..F3 | 80..BF | 80..BF | 80..BF |
123 should_pass $'\xF1\x80\x80\x80' $'\xF1\xBF\xBF\xBF'
124 should_pass $'\xF2\x80\x80\x80' $'\xF2\xBF\xBF\xBF'
125 should_pass $'\xF3\x80\x80\x80' $'\xF3\xBF\xBF\xBF'
126 # | U+100000..U+10FFFF | F4 | 80..8F | 80..BF | 80..BF |
127 should_pass $'\xF4\x80\x80\x80' $'\xF4\x8F\xBF\xBF'
128 should_fail $'\xF4\x80\x80\x79' $'\xF4\xBF\xBF\xBF'
129 # -----------------------------------------------------------------------------
130
131 should_fail $'\xf0-' $'\xf1-' $'\xf2-' $'\xf3-' $'\xE1-' $'\xEE-' $'\xED-' $'\xEF-'
132
133
134 # Auto generated using:
135 # #!/usr/bin/env python3
136 #
137 # import random
138 #
139 # def random_byte_sequence(seq_len=32):
140 # return bytes([random.randint(0x01, 0xff) for _ in range(seq_len)])
141 #
142 # should_pass = b''
143 # for i in range(1000000):
144 # some_bytes = random_byte_sequence(10)
145 # try:
146 # some_bytes.decode('utf-8')
147 # should_pass += some_bytes
148 # if len(should_pass) >= 50:
149 # print("should_pass ${}".format(repr(should_pass)[1:]))
150 # should_pass = b''
151 # except UnicodeDecodeError:
152 # print("should_fail ${}".format(repr(some_bytes)[1:]))
153 #
154
155 should_pass $'F~\x15(\x13i.h\tYyn{V\x7f+KVs2\tpNujT\x17\x0eP\x17\x06bX83|-b[+8d@|\x11N\x0e|?!'
156 should_pass $'\x03\x15\x067L!AW\x08x\xc2\x8eeNH\x11W0frpF\x12m\xec\x94\x859m\x18RP1FK\x0fs\x04Fj\xe3\xb3\x93+\xca\x81\xc4\x94KN'
157 should_pass $'S\xda\xa2\x0c\x0c\x01\xda\xa7it%V\x7f\xdd\xb6\xe3\x86\xb5E\x13\x02\x1bJ\x02*a\x13C#@\x1c\x18V9b\xd1\x94Bu\x1b\xdd\x9a\x16xa\xd2\x89s\x02I'
158 should_pass $' -\xc6\xa1\x13O2@1H\xd6\x98b\xdd\xb8\x06\x0f\x04|6ZOWOW7wOmqJ\xdc\x93\x05\xc2\x80\x05e\x13,\xc5\xb1s\xe0\xaf\x91{9r%'
159 should_pass $'_\t\x1ea;5w\xef\xb9\xae\xc6\x8dT^C\x0c\x08\x15I-O58\x16X\x029F4$e)\x14\x1aO\xcd\x8e\x1dq\x10J\\\xd1\xaaw$\x17,\x7f0'
160 should_pass $'3G\x19\x17JzG\tq(k\x029-QPN#ju\\\xcd\xbc>\x1b\x1fw\x7f\x10BbU)w\x13A\xc7\x85!-\\+B\x7fg@\xc8\x90f\x1f'
161 should_pass $'Et\x010;ox\x19\x17\x13:\xd2\x92H-K\x194!\x15*:Q\x0c`\x15\x12%&\x0c\x1e"" g\r3L\xd3\x97CQ]\x0fb9qsp\n'
162 should_pass $'\xc7\xbbdl\x02@\x7f\x18\xcb\xbd\xc6\xa2\xd8\xacpN3eY:\xcb\xa3x\x0b@\x12h*\xcb\x85\xc4\xb6O\x123xbf\x0e|V\xde\x8c\x01-O\xd1\xb2(z'
163 should_pass $'-\xd7\x88Y\x1e5y<WyR\xd0\x84\x03J\x1d d\xc9\x89ZEP\x1et\xc8\xb0\xc6\xa7.%o8\x12kKDK\xdc\x8cU\x11l#~0a;;t'
164 should_pass $'\x06imvK%*=\x1a\x0fF>\xed\x99\x97<\ni\xd5\xa2\x026V`1\xc2\x82N\x1b\x15jvq(6U\xdb\xaf&K\xc5\x92.%DPKF\x02z'
165 should_pass $'\x0cfpkhj<\x7f^\x15\x14\r~Dn~\x1d\x19}xZ#B\x08D^%tW&1\xd4\x92\x153XFx\xd1\xb1Z&\x1c\x0b~\r\xce\xbejY'
166 should_pass $'\x1ffHI&9\rd\x17\x12\\7ob\xd1\x99}[\x0ff\x10D\xc7\xab\x1cz\x02\x1a\x17D\x0c\x13j\xdc\x91\n/<ZB\x12\x08\x01*\x0bR\x14-\x18\x12'
167 should_pass $'a;6&\xed\x98\x9d1\xd1\x83\xcf\x8f}\xc4\x9c\xd6\x82\xcc\xaf\x19$9\x16fi~\x11x%uZoN\xce\xbblB\x167\x05\x17Dy"\x18-s \x0eY'
168 should_pass $'<\xd8\xbcK\x19!3\x06^D\x03y\r[4\\\xdd\xacW"gy\x04\x1aN-\x05-\nHc\r8\x1fqo\x13N>\x10D7Nja`= C='
169 should_pass $'\x17S\x11u3y\x0b(CC7\trO\xc5\xb0yA\nR\r6?u\xde\xa7H$;rUt\x07s\x1e\x1eBr\x06Q~\x15.\xde\xa8{\xd5\xa9sp'
170 should_pass $'+\x08\x1fL#\x121\xc5\x9a-sG\xdb\x82T+\tH\x14\n(i\xc3\x9c\xd1\x80\x02\x0fJa\x1a!\x12\xd9\x8ac\x05&Y1a\x0bjR\tuH[\xc2\xb8'
171 should_pass $'"& Q\x7f\x0e\x17\x0clQ\xe9\x9e\x9f}?;]8x\x0c \x19\xd3\xbf>+(~\xce\x9bXI\x06\t/z\x193S:\x11\x04"$\xdd\xa4?Aw.'
172 should_pass $'\xe9\x97\x94|\xcd\xa7VGQl\x04%I)J{\xd7\xae\\GA<\x12">2\x13\x02\xc5\x9c\xdb\x9e\\\\Qn\r\xd1\x80oof)[D:\x01.U#'
173 should_pass $'Bu\x1c\x1f\x0e\xee\x99\xb3b?_\x044Vh<\xc9\xaaC\x1b7\x1e\x1e5\xd7\x81R\x18c<\x10\x1f4==D,\x16\x13W\xf0\xa4\x8b\xa6\x18uwn\nb'
174 should_pass $'\xd2\x99=v\x14[\x17\x05\x08\x18\xcc\x86Q\\\x1d\xd7\x84$\x1e{\xc6\x94\xd4\xa2\xc7\xaaE\xef\xad\xa8Qrta\x12$\x02:.\x0e%pJY\x14\x7fN=AO'
175 should_pass $'\\3>\x05=gc\x171\x1cd{\xd7\xbe\x18\x1b6MX$\x1bY{\x1f\nc](+\x01nx\x04\x19|:\x1c4/Aih8\tD\xed\x8e\x8a\x0f]'
176 should_pass $'\x1ek\x19%\x0ff\xd1\xb3\xc3\xbd\x18\x0b~c6d+Hu\x0e{\t1\xdf\xbcX\\pZ|8Hq\xd0\xa7.\x03\x11mH\x0eqPF\x13?VW*e'
177 should_pass $'9f^:\x04r\xda\xbd!u;7{+\x07:\xd8\xb7G0Pq\x07`.B\xc2\xa9\xc3\xa1\x03cuh\x05-TqE"#y~s\x7fA.{6|'
178 should_pass $'E\x0f/jnlI;%0lWk\x02ZG\x0b{8\x07Km\x0b@~D[z\xc3\x81h\x1aM\x11)\x1e=\x1f\x14LzW27Y\t4 7p'
179 should_pass $'5\x11?w`i>;vg3\xd3\x8d\\\xca\xa8\x13Y-\n*3q}v&\xcf\x98P\r\n\x0e\x19\xe1\xa1\x84{\x0bGK\x08Q\x0cgw^1\x16<N'
180 should_pass $'\x03\xe9\xb5\xa1,;}&VG\\[R\x1b\x05\x04OH\x14GF\x0fh}Ta]Dt*k>UT&hL*H\x1f\xd8\x99\x01\x15\x1b\xdd\xa3SD\t'
181 should_pass $'MCqAVJ\x14\x7f>#_8aQ\x14m\xc4\xa7H\x1b\x07\xda\x9fK9uTQ7Q9Ub\x07*\xcd\x96\x1c\xc9\x87}zS\xdb\x84\x11\x7fh(e'
182 should_pass $'a4Av\x06/{)wd\xdd\x9fe\xc3\x8e%\x0b7\xd7\x9a\x13\xe4\xb9\x9avK\xc5\x8dzB\xcf\xab\x16\xd4\x91M\x0b=i+o\xd3\xaefdKF\x0b>j'
183 should_pass $'{\x1dNF\r\xef\x8b\xafW`WgfxjK$\tvm5k73\x7f\x1d\xdf\xb4J !\x19\x1aAE\x17$0\xd1\x9ds\x0e\x03{!E\xd4\x82\x0fc'
184 should_pass $'\x7fz\xd8\xbd \xdb\xbe\x12?\t\x10\x12gI/\nA\xde\xad@R,hH>_\x10\xe4\xaf\xaf[3\xe5\x8a\x9e\nTP/G\xd7\xad`43\r\xd0\xb8WV'
185 should_pass $'tq\\F\x1cA\x06\x01/ej\x16#2TO`}f\x1d\x03:Dq=\x05X\x1f}gF\x0c3\x0eQ\x0ei\x03P\r>]\x011%W\x1dE(\x15'
186 should_pass $'nz\xdf\x81\x16\x06u\x03\x1e*;\x02\x1e\x060R1AsBF\x044\x05}4pR\x1cdFRt\xdc\xbe-mcen\x16[\x11\n\xc9\x9c@v\x0cj'
187 should_pass $'V_SW<\x0f\x03\xec\x9f\x82^\x11P0(\x18\x13\xc3\xa5kM\x1f2f\xce\x9bS\xc8\xb1;\xce\xa2\x1fq>\x06u%^}Hde4\x0b\x18\x0b(\xd0\x97'
188 should_pass $'0\'\xd7\xa4>-\xe2\x8e\xb3w7\xc5\xb9cL)"&\xd9\x96Ceg{\x04D&V^q`K\x14\xc8\xb5I\x0e$N/x\xea\xac\x88x;/0\xcf\xb7'
189 should_pass $'p+\x04h\x16\x1d\x01\x15\x17~\xd7\xb8MnP/R&?O|l@>\xd2\x85Tx\x11!\x134\xe3\xaa\xb6\xc2\x8c\ni(\x1a\xd1\x8d\x03)(>JI1'
190 should_pass $'TWqf\x11\x01\x14f/\x06]\xde\xa0P#*w\xd3\x88#x}\x11a\x0bH\x19L\x1f8iod%Sv\x18o\xd0\x8fTI9f\x139y]R\x0b'
191 should_pass $'\x06\r/,%\x1fw\xca\xa4\x05\x0e\x1c\\F\xda\x9d\x11*\x1f7>t$ \x1a\x155\xdc\xa9^|U#(\x7f\xcb\x8b+\x0cBp\x0f\xc7\xb9@n`K|\x1a'
192 should_pass $'`U/\x04\x07N6uCV\x173\t\xc7\xbc #,oq\xe1\xb7\x82y&8y\\\x11qC$O?X\x01\x04\xd4\x81C=\\ \x12U\xe5\xb6\x80\xd5\x9a'
193 should_pass $'4YED$0Y\xd2\x88$)Xd\r\xd9\xa06\x0b\nS;\x14a+\x1fx7\x02V\x1eHsW\x12\xcb\x94\xe5\x87\x8c)Cae`L\xc7\x9a\xe4\xbf\x8d'
194 should_pass $'`\x04\x1d\x1b@XVM!04\x13j`\n\xda\xbe\x07\x10d\xe5\xa1\xb3\xca\xb6x\twtPC^\xd5\x82:\xd2\xb9/\xdb\xa3\tV[#Z?6^\r\x04'
195 should_pass $'\x7f\x0fa2*KqhC!\xdf\xab&\x1c,t= \x1c\x0c[6p\x19\x03\x01[<~t\xd8\xa2\x19S\x16\x01.\x11[J\x022ku4?h7zT'
196 should_pass $'\xd5\xab3[%\x1fL2` \xd1\xb2D%Q\x02X\x154!g \x1dUx\x1c#~&Dt\x03\xd8\xa1jWdk\x0f7R\x07-\x15/qQx N'
197 should_pass $'\x1c\x19\x7fp"\x0c}\x188\x17\x07b\x16\xd9\xa4\x12b\xd4\x81)\x06\xf1\x88\x8b\xa6LM<\x1fM`\x11\xd1\xaa8C\xd4\x87\x1c\x1fi\xe7\x9b\xb8lT@\xd7\x86r'
198 should_pass $'\xde\xb0\x07\x1f\x10\xc2\x84|oLm.?-_ "scb7G5\xd7\x8a;-8\x1c\x15$$\xd3\xab_\xca\xb7\x02nF\x19B,7-\xde\xafhM\x08'
199 should_pass $'<e<\x08\x07FKCAX\x1dB}Y\x01"\xc2\xb4#h_Pj\x18(=2\x0c\x1an!n\x1bbKm9qV\x1c\x0cA_:\x18"\x18q>W'
200 should_pass $'\xc2\x8c,)/m\x04b\x1f\x01E5\x04?J\xd8\xa3\x02\x160Njt\x15\r(t&0nrQ2T\x1e\xd1\x85\x17\x0cko\x12,\x16\x12\xc6\x91\x1c$E'
201 should_pass $'Cm(zJ\x1d\xc4\x9aw=4dZL\x19\x19`\x12\x17*\x030\xdd\x9ef\x05NJ\x10Ed6<o\x1b\x7f0CZ\x12FWL\x1a3{9\xee\xad\x81'
202 should_pass $'<@H6"2$SZcP\xda\xaa`dczx@L2\xdf\x8dq?\x08U\xc9\xa7<}\x12\n\x0e|6~s\\\x03\x17\x01I\xc2\x84\x05}sJ+'
203 should_pass $'@Nc\x14\\!\x07/7ZnL\xf2\x9c\x95\xaaX<\xcd\xa4:\x10!D_u\x026g4\x7fG6\x07N\x1b23"C\x7f& \x08\x17:\x02\x1dI\n'
204 should_pass $'`$\xd1\xb9\x19V\xd7\xa4TE!X\x02W\xd5\x84N#\x02\x10.%\xdc\x9a\x15:m.*D{a#&\r\x13\x18@\t(\x17\xc6\x89\x0e\xc4\x98\xda\xbc\x1e\n'
205 should_pass $'D(\x12\x0cp\xd3\x87,|e\x03J\xd0\xbf\x1bh\xdd\x98y\n\xd2\x87H4\xdc\xb8)\xd6\x9aNG`]\xd9\xbb;%\x01L\x17\xd8\xb8C{\xce\x8c}\xc4\xbb<'
206 should_pass $'\xdd\x9d\x0e\xc7\xb2\x11}\xc6\x82|\xd2\x96W\x0b\x10\x04\x06A8?\x07\x19\x0c^6\xd2\x92\x03\xcf\x9c"\x05VJJ\xd5\xa5e+v}^Q$t\x1ae[w\x17'
207 should_pass $'\x12h\xce\xbb^\xdc\x9b\x17ytM\x02\x19S7R\xdf\xa1\x11\x12}9\x16LZu|atBo\xd9\x81RL*]\xc8\x9c\n(^\rE\xda\xbd\x06\x1f<F'
208 should_pass $'\xc6\x97+<\xe3\xb4\x9b;>\x1c+ \x0b!\xda\x84uuq2\x07\rJ\xdc\xaf\x1dB>>@X:W\xd0\xaa\x0f/+Yvl\r^(\x189\x10<1\x1d'
209 should_pass $'\x07\x0c\x16\xd5\x8f>i\x165{\x04!\'\x03}\x19=UU\x0e8P4TdVj\x14Y\x1ft\xc3\xb6_\xd2\xb2{\xc6\x9c&58Fv u-W"\x10'
210 should_pass $'M}\x18i9\xd6\xa7k\x17*/x}R~]+\xd2\x8e\x18\x104*_H\rn\x0e\xd3\xa0dc\xc5\xacp\xdc\xba\xe0\xae\xa7O\xea\xa5\x8e \xe8\xb0\xa5eO'
211 should_pass $',)\\\xd7\x83\xc4\xacQ\x15;\x19\r\x1ag_\x1d\xde\xacP\x11K\x13\x0b;qNF:\t3@q}\xd2\xac\xef\xa3\xb8\x13\x14\x174L5\x01% 5F-'
212 should_pass $'A\x07+&\x1eh\xdd\xbaaR\x1fbe\xe2\xa0\x9a\x0b\x07n\x7f\x7fL\x0c\x06=i\x0eLr6A\x086\x10=\x1e/\xcf\xabIG\x1f)$\xce\xbaYG\x11\x0b'
213 should_pass $'Y\r.[\x05\rj$ez\':\x7f\x13&EELMR@m\x11\xd4\xa3\x06\xd1\x9f!N&5-8:yN{L\x05#"}o_\xd3\xa6\x05gN'
214 should_pass $'\x05|RS\xf1\xa4\x9c\x82vGxq(\xcf\xa8\x08Z\x05id1Ot)\x1e0\xeb\xac\xb2/B}2\x1b=\x01\xc5\xb4AQ>a\xda\x9ed\xc5\x8d&\x0e\x1a'
215 should_pass $'%pb\x14e@\xdc\xa1cV$;\x03\x02\xe9\x93\xbcB\tL\xd1\x8cYW\x1bp\x0c\xc3\xa4M^z\x15\rP\xcd\xa7i\x18\\,4\xdb\x86\xcd\x82aG]\x07'
216 should_pass $'IX60\x0f\x1fDv\x01e6\x13\xd7\x98\xcb\x81\xdf\xb4:~\xe1\x96\x95cr\x05_@\xc5\xa0\x10iL%Lqxv\rW-!i\x1cv\xc9\x9d?BF'
217 should_pass $'\x06Dwe6\n\x11h#QIdAW\xde\xa1\x18~9d=+u7M\x02`\x12Ym]\x15D\x1c\xcd\xa6nX \x16R\nBP]N\x10\xc5\x82\x0c'
218 should_pass $'\x1b+\xd7\xa8[\x1dp\x05f\x1fu+W|yT\x1f\x04\x1b??9M\x05|S\xda\xb55+\x15%\x08!f\x03]2\x04\x12\t~3>!\xd5\xb5\x1e\xd5\x9e'
219 should_pass $'*}6JtAi4|0{ia\xdb\x857\x17u#\x0fA#bS\t\xe0\xb4\x80%\x04\x1b\x03\xdc\xb1-[_H\x10nt\x19~c\x0be\x14\x03m('
220 should_pass $'\x1bV\x16\tOo\x13\xc3\x91\x1c%aT\xc6\x816\x13E^\x12otW\x0cfs\x11\xdd\xa6\x13\x19:?"{r01&W<<\xf1\x80\x99\x85\n\x1a \\'
221 should_pass $'\xdd\x80u9\xc5\x88S.~v\xc2\x87D\xe2\x81\x8dWM\x01}Ks9A\x04w*\x11\x03\x1eT\x07\xc3\xb9\x0e?W>7\x0bKpq\x1cWQ@\x0e1^'
222 should_pass $'r\t\xcd\xa2*P\x7f\x15kqaY_$"\xc2\xb9\x11\x169|hi\x02:\tl\xc5\x98Q\xe6\x93\x97\x10 k\x0b\xc5\x836\x0541\x1d\x02\x1c\x1e\x18"n'
223 should_pass $'s\x1cG\x1a7`*(W\x18Ou\x13\x13\x7f>\x13D\xd1\xa23n\x0esW\xc9\x92`\x7f0o\xce\xbbiK95i4l\x14\x02{\x10ej:\x03\x03d'
224 should_pass $'<\xd4\xb6\xc4\x95]*EZ<$\x06C/\x14Yu%\x0fih~jDeU\'=\x16jwbY*\x13HxQg\x10qH/\x07\x14+6%p"'
225 should_pass $'!?\nS/uS\xe4\xa0\x8b.>J\x1bl(\x0f|\xc2\xaeo\x0e@\tXp\x1f>\xc9\x8cO\xd9\x8d`KMFRy\x1b\xc4\x88RCS>UWu '
226 should_pass $'k&\x01(VN-b\x0b\x0cBpx3r|Z"\xd0\xa2\x04\x02\xd1\x8ai7\x1a\xc8\x94F&=KU2O"\x17v/\x1d\xcb\xb4VL<mq1C'
227 should_pass $'-`G7(8JHCU\ng\x0e%@\xdb\x89\x03\x02n\x1f-"dV=Y\xda\xa1B.C3@\x03{\xd3\x86\xcb\x94r\x04%\\N\xdb\xba\rq\\'
228 should_pass $'G4[I\x02pu\x18\x0ebg?\x12\x0ed.2sS\x16\xeb\xa7\x80\xe0\xa9\xa9ic\x0fI]z\xd2\x99\xcb\xa8\xe4\x86\xacO\x06\xd2\x82)/^s/}\x13'
229 should_pass $'\x1a\x17\x14#\x06\x1e\x0e\t\xd9\xa0\x1c\x0c\x7f\x06_G\x1fD\x10^,p*8w\x17\x17f[A=<F\x08@R\x0b\x08\x0c\x1ay\x07\x12Wk\x19\xde\x8dH\x08'
230 should_pass $'\x04p&\x1aY\xd5\x882}\x15@@q\x05_uB\nb\x14\xcc\x90U\ny\x16z>r_a\xec\xa3\xbc^E58\x04@\x7f<`C\x18\xd1\x9dju%'
231 should_pass $'3Z\xdf\x86)%\x10->?I\x16rp\xd1\xb1\x1aC"\x14d\xc8\x9f\x19\xc8\xbd"=o\x12\xdd\xbb0>Bs\x0e<{aU~V\x10A[6\\8\x1f'
232 should_pass $'\x01H\x1bJ%ik-|t;%9)\xe9\x84\xb5];\x06!\x1a{\x14txP\x04\x172\xce\xaa?+_Pj;M\x0bT|\x1aQ?\x1a\x07E1d'
233 should_pass $'\xe1\xae\x9b{>(:z\xd0\x9f(\tGnuQ[9B@7\x0c4qriA!T2{^P\x13r@\x1c\n\x04`\x08kmv\x1e=E\x12\x13y'
234 should_pass $'P87.E$BauB\x12\t%QU\xd6\xa11\xc4\xb9u+df_a#&CU\x0e\x12\x10~p\x138#8`3\x1dv?t\xcb\xb45Tw'
235 should_pass $'\xc2\xb5\x198[>?zSJ<\xe8\x9f\xa1v\x02BT3hz\xea\x8b\xa7=~0}\re=\x07S9Hi\xc2\xb2+K\x15?""Y\x1d*\x13|G'
236 should_pass $'Z\x1a"\xe8\x85\xbd6a\xc6\x9bZ\x07\xd8\xacGD\xc8\xaa,P^"X\x16~z5\xda\x8dz\x0c\x03\x15B\x0c||d\x14j\x0f\xe5\x99\xb3|T#\x03(e'
237 should_pass $'\x04$Zu\x7f\x7f[7\x16w?^\n>\'\x1ePzy"\x06kO8n\x03\x1ce\x04\x1c\xcb\xb9Mzrx\x180l\x17\x1f\x19\x7fEmL\x05u\x1e2'
238 should_pass $'\'110K::zL)9i.\x18f4p>\xcb\x97b\x18\x10K\xe7\x98\x9e"8)\xe4\x92\x9cd\x19f\tV*K#@DJ\x131\x1cr7j'
239 should_pass $'*\x0fn~\xe4\x84\x89I3AX\x106\t\x103\x0c/.\'l H/YU\x18C"&s?\x11x\xe9\x81\x93A]Y7JU\x1a\xda\xbcz\x07\x01A'
240 should_pass $'UWv\x1a>?\xdc\xa2\x10b(\x0b\x1cMo\x16bG\xc8\xbc\xde\x83/\x1e1p\xce\xa0,o\x17^<A}y\x03(,\x10\xcd\x87[5N_\x7ff2s'
241 should_pass $'3T\x08\x05#\x1eZu{@-7T\xd4\xafKc\xef\xa3\x89Z\n\']b.\x1dR\xd3\xa7>\x17@\xcc\xbdZ("b\x19m@f\x10s?d~\xcd\x8c'
242 should_pass $'\x085\xc5\x89r!~~gb!zj\x16\xdf\x8c\x01_\x17\x0f1?\x19(an)G\x11^J$IMW{b@W\x0f@\x07,M+/c@k\x04'
243 should_pass $'f\xd6\xa7dX;6u\xda\xa2b\xc4\x8d\xcc\xb1v\x1d^\x10\t~m?\x1fHf5\x11qD(g\xd3\xaf~K\xd6\xba\x18Yr\x15I\x05\x10\xc5\xa5x\r<'
244 should_pass $'JiwQ4A\xc4\xb0\x15\x1b\x06\x0euJ\xe9\xad\x86\x02aZyM\\9\x0f4*GW?k\x1c\xea\x81\x9cXY\n-ePW\x0br9u\x05^\xc4\xac'
245 should_pass $'\x155A \xe3\xbb\xa3\x08!9\x08X\t\x7f\xe8\xb7\xbf\x08\xcf\x93\x01M!A]}\x07"\x1f\x18ac\x06d\x03\\dp\x13-g_IZ]m)\x12s<'
246 should_pass $']T\x1cOh\x13~\x1dl\x02Vdj\x10\x113\x1dH\x19\x7fW_En<\x08=*JUyb\x1c)N\x1b\x04\x15+!\x05%\xc9\xa7k\xdb\xb3\x1a\x17Y'
247 should_pass $' nGP\x16itv\n`(q:``\x06E\x14\x123d9!!w"\xc5\xa4wo$Q\xda\x80i`o\xc5\x9c:\x18-pO\xde\x8d\xe9\xbd\x9dJ'
248 should_pass $'^\x05xG%/\xec\x86\xb5D\xc4\x91$11yeU<FFVU\n\x1d=\x02\x0c\x0eN(\n.mVs/qwK\x11Es\x13aQU\x1603'
249 should_pass $'#q8\x1b=z\xc4\xb5\x04{\x0b<M}\x18#9\r\xd0\x9c<>4_]\x08RZ\tU]\xea\x93\x9f<"]q<m`Rt\x18Rk~\xd8\x8a\x07'
250 should_pass $'*5$\x19\xda\xa6 |]\x7f:\x17\x06\x1d\xdb\x94}Q|D\nMY?P=r/>Y\\\x7f\xca\xbf\xe1\x93\x83\xc7\x93$M\xc4\x91\x0f\x1f`:c*('
251 should_pass $'M%C\x07GW\xc5\x9ft>$-\xc4\x88\x07DrX\x19&\xe9\x9a\xbd\xc5\xa8P)}{Whk/\xc5\x9b\xcd\xa7q\x11!\\-N ,T1:o\x02'
252 should_pass $'xa\x07\t\xeb\x8d\xa1\x19@\x07\x7f0e\x0e\xd0\x90\x0cV\x08n/\x11\xdc\x8ebF\x0c\x18{T7"J\xc3\x9e\x056q<\x1d(>/\x19$M0{qX'
253 should_pass $'\xd4\x89\xcd\xa7HY\xdb\xbd\x15~f?K7(z\xdf\x90\x18.\x01\x19\x12Q\xe2\xb1\xbe}_(92 L8\xc4\xab\x1bjS/C7J\x10T\rZ7h'
254 should_pass $'-*v\\.\x11v9\x0e\x1aj{Zoe,\x18gfu3[3\xc9\xb2\x1c\xc6\xae\x05*1P,P9\xcf\x8e\x15z\x031\x1f\x0e(\x1by:4~>'
255 should_pass $'1-\x1c\xc5\xb9\xdf\xbd\xd5\x89<\x10e|/L\xdc\xa7b\xc3\xb4\xe5\x9e\xa2\xc9\x9bIG$:mL2=wek@B%\x1c\xdc\x8c\x1c\xc6\xaf&\x07XV\x1d'
256 should_pass $':nN\x15\x10\x0fN])[=u9\x1f?1LCEyz@5\x1cc\xcd\xb8RG\x18;q6J\x0c\x02m46M=hfh\x16r@DWQ'
257 should_pass $'b\x10sFE\xc9\xa6+)WX\'3u~j*\x16h\x1a\xef\xaf\x81\xd3\x9eG";\xd3\x8d3x (DitI>qA+\x1a\x05\x03,9\x17a\x12'
258 should_pass $'\x0caOb/^S ke.\xc9\xaf=M\x07{\xc8\x971?y|E7\x15\x11!:\x1c!T)`w\x11/b\x03_oL\\\xc9\xb5mu)_m'
259 should_pass $']8u4OZR:\x17^j>\xc2\xa2?y\xc6\xb8%\x10RE6Ek\n\x19UPFd*7Z,?G@-&q%\xda\x96\t8@5oY'
260 should_pass $'JI\x12TY\xce\xa1\n\x02\x13S\xec\xbe\xbe"\x1eT\x01r\x7f\x10<e\xce\xaaz\nX\x1d:\xdf\xbfkdxTW5sA8\x03\xcb\x8fxb\xcd\x90\\:'
261 should_pass $'I\x1dG\x01J\\.aH-.w\xf2\x83\x8e\xb7p\x1a\x11p{T`%\xde\x9bp\xee\x9a\x92Kv\xda\x8cgv\x1b\x1bw\x07\xd3\x82X\t9\xe0\xb3\x9e\x1b\x18'
262 should_pass $'\x16\x1f\xca\x9a~r5m0K\x19\x12hX\xc5\x8cW;55eeB\r\xd0\xa7@\x04h|k\x0f 1Sj&`m\x07$\xda\x99B#\x1c%\x03\x0c\x0b'
263 should_pass $'I\xd4\x87}]!\x1a9I2Md\xdd\x9du\x15PO4\x11\x1a9H9QvpJv\x15s\x1c4\x07Ug\xdd\xa8Ck%C\nn@%@i\xdc\x8d'
264 should_pass $'\xdd\xa4(>"}p]\x15? =]w\x1bc;\xc3\x99s\\\xea\x93\x83f\x15QL\x1c\\\xcc\xb3\x03s0\x0eQ\\Y\x11FM\x1e5y@.:\xc2\x92'
265 should_pass $'OvWY\x04\x0f):x#\x16jO\x1bW\x06\xd3\x82Gs\x18\x1fNv\x16T?Y+[\xc2\x9b\xde\xa2=\x1c,c\tUo\x19\x1fGev\x16fJe'
266 should_pass $'fP-p\th\n\x10?=]\x10F\t\xc9\x86\xd3\xbbX6URf?A\x11@\x19bw\x7f\x03G\xd3\xb8? j\x03[G\t\x16\x1e4\x1fX\x0b]('
267 should_pass $'Un.t&\xe5\x94\xa0 \x06\nC\x17\x06Wu[mb\x1cLN&)<\xd5\xa8%5U\x0f~$l\x11J\xc9\x84\x07Fq\xcd\xaccO-/9\x17\x0b'
268 should_pass $'OBG\t\xdc\xa5+E(q\xc8\x8d[)*4&|\x16A*NVY\xc9\xbb&J#bQE)\x0b"n8GPg3\xcd\xb1\x1ck\xc8\xacc\xcc\xa5'
269 should_pass $'l2@\x10pjO%)\x1c\x1d@\t7U;x\xd7\x95\x168s\xd1\xb3o\x17\t\xc7\x9bGgo\x16|4eN\x0b\x193\x1939R:I@d=i'
270 should_pass $'\x7f26v*F\x08N7>y\xd8\x8fG\x10!\x13Z\xcc\x87AM;\xe3\x8f\xa1x\x08C07\xf1\x88\xa2\xbb~\x0bn\xc7\x97\r\r\x1de\x13/o\x07;d'
271 should_pass $'\ny,;en@\xdb\xb4xJZm=B\x03\xdc\xa2\x1aO\xeb\x94\xa2V\x0eKl*j#m\xeb\x8b\xb3l\x05@\n\\\\%S(N\xde\xb6\x1cOV3'
272 should_pass $'\x06\x1cd:\x08h\x1c[,d\x1f`!a\x11\xdb\x9b*\x12\x1a\xcd\x84.#4sG4D\x05\x0bd\x14$\xdb\x80\x16\xe7\x91\xb17s\x15 JHH/\xcf\x81'
273 should_pass $':\x14.liD\x18bF\t\xd3\xa1\x17\x15ykAx\xd3\xb4h4y6Xx\xe9\xa3\x8ecgR\x18\xcb\x981e\x1c\r\x0bD\x7fM2\xc4\xbb2$pF'
274 should_pass $')(rgVR8>4B\x1b\x01<\xea\xaf\xaaN-\xc9\xb2ES-*}\x07&CX\x07\x12C\xda\x97CPtRj]7B\x18t\x14x\x16\x0emz'
275 should_pass $'R\x11\xc3\xa2_k\xc2\xa1\x10q\x12zN$K:P\'\x10\x0f\x19N\xc9\xb7"9fX*Vc\xe6\x8a\xbew\x06\x1aD{+4\xd9\x9e~\xce\xb9\x04\xc4\x94-'
276 should_pass $'"]\x15%\x02&\x06\\E[\xc6\x84C\x07VR\xc4\x83\x04hv.7\x19Is\xc8\xa7"|C,).A7\x05{W\r\x0bH?\xde\x9aV\x0eh\xc5\x98'
277 should_pass $'y\xdf\xbb\\b}HHh\x05Q\x11\x03\x1e\t\x1a\x0e\x1cxb#\x18:JPS\x11\xc2\xa50:3k$\xf2\x81\x9c\x8f7x\x10Y50H~\xe7\x80\x82,'
278 should_pass $'\x18\xd5\x8c\x0c)z8(HVo_pZY&+\x19\xcb\xb0r?\r\x7f\x0bD:^)zQv6$#\x0fHT\xc8\x8f*\x7f8\x12^2\tZ?l'
279 should_pass $'=r}\n]n\x13T\x11H.R/\x0evP6*HE\xd2\x82CwXpB\xd9\x88EE\xe5\xb7\xb2M\x0c3\x03a\n6\x1el,\xe5\xb6\xbd*m0'
280 should_pass $']d\xca\xb5s\xcb\xb1Mfw\x0fc4/X\nAG9+r\x0c\x0f3*\xd7\x84op"\x03pNw49\x07%\x02\x06Q\xd1\xbe\x01>ha\xc4\xa8l'
281 should_pass $'N\xe4\x86\x9aeV\x15p\x16u\xd6\xa1\x16\xd2\xb5bo B/9q\xdf\x90\xd3\x9ai\xca\xaa1|zs[3k\x01E9\x1bo\nc$<sr$w>'
282 should_pass $'\x14wO|:<\xd6\x9d\x7fOg;\x17\\DQ\x13L\x05)0\xde\x91"W7 21\x0cM\xd8\xa05~w=\x06EE\xcd\x8b\xc3\xb3\xc9\x8ar\xd7\xa3h'
283 should_pass $'\\$an$Vg^Sg%\xc8\x90hE\x06P4P\x06P\x19"H\x06\x1d_w`\x0bs\xeb\xbf\x94\xd2\x91l~\x0cxYAd]+\x07LMxE'
284 should_pass $'y\x0bl\x10YI;4\xd0\x92\xcb\xab\xcb\x9b\xc3\x8e&\x12uIHKt+\x0e\x1a&&\x0e\x02\x04=k*)O\x01%)m\nW%\xc4\x89B\xc8\x8a\x0c\x0e'
285 should_pass $'E\x1a@\xc7\xaaNxot\x1b\x1dD\x15>8\x0b)\t>~\x1cZz\n\xe4\xb8\xa1\xd7\x94}W\x0eeo0g6\rW\t\xc6\x8d\x1f\xcf\x8aKjx_['
286 should_pass $'prPeSu"g\rPn,\x0e\xcb\xbcy&}\xc5\xae\xd5\xbbt++\xcc\xba\xc7\xbbK\x050\x1e\x7f$\x18"\x1ee\x03\xd0\x98!\x18<\\y\xcd\x83&'
287 should_pass $'f;4m\xcb\x9fJ#j,kawNxE\x0eGx\x05\x07C\xc3\xaa]v\xc2\x86JS~s!\x08=b\x12;\x02\x16k\xea\xa5\x82Z\x14+f\x14V'
288 should_pass $'<\x15\x0b[\x1e1Tg\x18:8nnz{T%\xd7\xb5\x14`pfoP\xcd\x86^[[Q_t\xc5\xb1\xe2\xa7\xbc\x07\x1b\x12+:\x04\xcd\xa2\x10@[8'
289 should_pass $'>vGh){L8K:\xd8\x8bSD&nZ\x1626\xc9\xbaz\x17\x07>cq\x17?\x07W!{\xe6\xa9\xb1L?6\xe5\xb8\x99\x12\x7f5\x18x\x12j'
290 should_pass $'FF\xcc\x8ddI^\xca\xa4z\x02Rz3<xW9uKL\x19\tF\x11Y\xe3\x86\xadU\xda\xbe0\xdf\x80Qs_i<l\x06\x135A\r\x1c\x04F\x1c'
291 should_pass $'X\x1eeg\xc2\x9c\xd1\xa9\x08!1f\x102B\x1arVqCY\x12c\tm\x02q\x08i r\x0e(+t\xe4\x8b\x9b\xd0\xaa\xd8\xa8q<\x1b%\x0ej]8'
292 should_pass $'J\x1fH$3\xda\x817uwp\xcb\xb0J\t(\x06Q\xde\xa5+\n\xc2\xb2"\x1b?ih=3lf\xd9\x820qq\x05cSa4`:x\x1a`!y'
293 should_pass $' \xd0\x8cYw\xe8\x92\x88N\x087M\r$>X$*!$yB\xc7\x9cq\x18\xd2\x83\x12\x7fU-\xc7\x85k\xc4\x88G\x03/\x11\x18VM0#%L\xcb\xb4'
294 should_pass $'(Q:a\x1f\rfS[Sd8\xd5\x88oj\x16 Ia\xe6\x98\x9bH\x0e\x06b!5@E<\xd3\x8b\n\xce\x8a7V\x1fvXYw*B8VyR'
295 should_pass $'\x03j\xce\xac\x1f\xeb\x85\x89V\x12\xe7\xb3\x9c\x1ez\x1c7\x1cR\x17jr\xc4\x92\xc9\xa1}\xe6\xaa\xb7e\x07\x03L\x1d\x02\xd0\x80kThNxj0\x7fNGg\x11'
296 should_pass $'x}RU0exDd\x10\xeb\xb0\x8cel\x18P{(\x08\n\xda\x86Ih\x06h\x18(GdtcbFY7~\x0f+\xc3\xacx\x1e\r\x0f5\x013;'
297 should_pass $'\xd6\xbf5\xc5\xb4T\xe2\x86\x901S0p$@\x15{;c\x1bN\xd6\x9f\x05q \x13\xc4\xab,j0/{4\x07!Z\xca\x93\x13"[p\t\x14Q#Zx'
298 should_pass $'\x04\xcd\x99d;\xd1\xa2\x06uJroY7$0Lx#X\x16Tax!\xe4\xbf\x932)\xc4\xa5\x0eo\xdf\xbb8O\x02\x04u\x04\x01\x1e\x17&\x08;\x05w'
299 should_pass $'n-)\x1d\x7f\xce\x95\x1c\x01`+Dwb!4[\xee\xb0\x97\x1c+)(\x1e\x0b1_\x13S?]\\?\x021\xcb\x9a\x12%Icg\xc9\x84\x14~}@\x18'
300 should_pass $'!%m\x1f.\x04G\x1c\x1eg>\x1e[\x11i\x06\x7fC<\x10`\x13zpI\x0e=2\x08e7 \x19;H\x13r7\x11\x04Ne\x0b\xd3\x9aG\x15b *'
301 should_pass $'\\dux(r\x04\xd8\xb8w\'\x05Vm,|\xcf\xab\xcb\xb6TVW$\xcb\xb1\xd7\x93\x0f^Y`\trFH].TB\x1c\xd0\xae|nQK"\x0eC'
302 should_pass $'n\x1f\x03K4~mQMK|\xdf\x8b\x03\x1aUUNJ>\x10\x13]q\xdd\x8f,^\n_\x0cc\x10b(H"_H+\x0e\xd7\x8d)O+H\x15E_'
303 should_pass $'c\xc6\x9f\n\x1e\x01I~\xd6\xabNXi5H\\C\x162x\x05\x02\x1cit\xdd\x9e\x13L<D_=R\x16}/<T}HE4jM\x7fT}\x15e'
304 should_pass $'\x07=\x1f\x17,erPI[\x079\x13=.\x01\x143\x1am}\x10\x19!+\n\xe4\xac\xb1/\x1eW\x07\x0c\n4\x1bDm?Hd`5(Y\xce\xb1Q!'
305 should_pass $'ctGa\x07\x1eX@\x06;M\x1a\x18\x06\x1c<YNp1\xe4\x9c\xb0\x06rk\r\x7f;\x11]3+D#\xc6\x86c{K\xdb\x95C.~8\x1a\x16\ro'
306 should_pass $'\x0c1m\xdb\x8d&C\x12c9g\\B\x08-?>fSLi!a\xc8\x87w\x0fWIR4AA-\x18DPU3\x0c\xd6\x9b\x18\x1aT~:a+4'
307 should_pass $'g6NzUljV`l\x05\x0e\x0e\xe2\x82\xa1\x0ep%W\x0czM\x01jMdQi\x12g^.zd\x1b\r5i8U\n\x1d~\xdc\x8c\xf3\x91\x84\x8b'
308 should_pass $'<\t\x1c[k\x04\x15,\xd2\xaa25c\x10]\xde\x88`UJx\xf4\x80\x84\xbeZ~}w\x0en\t\x0f\xda\x97\xea\x9e\xb2\x18\x15@\x07U\x1fkRk\xe6\xb9\xaa'
309 should_pass $'\x023!\xce\x90\\"\xd7\xba<alQ\x02Gf4\x18i\x02\x1e\xee\xb9\xb6f\xc5\x85a <A\xd8\x91\x1fl\x1bYluSY+UrM\xca\xa5\x0bVE'
310 should_pass $'\x01:\x1cJBi\x15=P\x08]\x08\x06}%fr\xc8\xa5Gf\xe9\x82\xad\x16\x05|B2\x18mx\x13\x0f\xc5\x81o\\T{\xd4\x88;\x1a\x0btzE\xde\xb4'
311 should_pass $'{"_\xdf\xae\xe6\x8e\xa14Y\xeb\xab\xb0\xe1\xbc\x9f\x0eH;\x1c,kh1\xe0\xa3\x8f!\xdc\x87CoJ;\xeb\xb5\xa3Sf\x1ee\x17\xc2\x8d\xeb\x80\x98qg\x16'
312 should_pass $'{g\xd4\x96M[yd\xc3\xbaD-\x1d\nT?x\xc5\xac~Y]&!?\xcf\x8a\x1f\xd8\x86\xef\x88\x84\x05&83\xc5\x9b\x08Kof6\x1c\x19Q>|E'
313 should_pass $'\x13kl4`\xc5\xbbw5,<+W\x08\xc7\x89ef\x0cz> \x1bD*\\gbRPMv@J\x08G \xc6\x82|p\x16\xdf\x84\xc4\x90j42`'
314 should_pass $'hbJe\xe7\x86\x9cmBE\xdc\xbc.W\x16A\xd0\xad3Z\x12aIR6\x0fm\x16!m I\x05\xd2\xa7C\xf3\xa1\x87\x94Y\xd2\x86y\xf1\xb6\xa8\xaf\n\x1c'
315 should_pass $'E\xeb\x80\xaeho!c\x1f\x19\xd2\x85\xca\x8cw\xcc\xb1u\xc4\x9c.\x13\x07>ta\xdc\xa2%\x18S)\xed\x9f\xad~W:j.?5wPw\x1cv\x0eG:'
316 should_pass $'\xca\xaa uu9l\x06<!_7\x1f\x13Z<: \x1bqo[Bi\\W\x1d=slu<9n3\x16Q\xd5\x91\n\xde\xaa\x18DAjh\x06\x17\x1f'
317 should_pass $'5\xd2\x819\x05\x10\xc8\x91\x7ff^hU\xd3\x97uKg?\x19x\xda\x96S\xe7\xa1\x89Mj01\xcf\xbf\x1b \xda\x85\xc9\xa7M\xc6\xa9f]\x199\x04KsH'
318 should_pass $'Z/\x1a\xca\x84_\xd3\xbeD|>yL\\~v\x0c\r66\x13V\x0f"\\\x16~\xc3\xbc09]-f\x06=Lz5t*~2H\x15p)t\xce\x8a'
319 should_pass $'\xe2\x92\x91R2\x05\xd7\xad\x05\x06M\x1e\x18\x12\xe1\x93\x8akFK4B\x1ep4\x13D\x07\x1c\x07\x12\xe5\x98\xa7\r+\xdb\xa2^sl1PsI\x1a\xcc\xaerj'
320 should_pass $'\xdc\x8eF\x1c\x0eihc~\x01l\x1a6/j\xc3\x8c=SF\x19\x1b &\xd5\x96\xd1\xb4[c!\x1bgo\xc3\x9d\x1alZXJ\xe7\xa3\xba>+F9Ay'
321 should_pass $'@<o@f\x0c=9C?KWI\x1c8:\xe6\x80\xbe&\x1a>\x01J+0\xd1\x9dR`\x1fJ/{qPD\x1fEA\xe9\xab\x8bw\x17Y\xd9\xa9,8'
322 should_pass $'Q*>{\xdb\xbfKb[i\x15#\x109h\xd2\xaf`V8.\xc9\xaff\xd3\x8b\xca\xa5\t\x0caV\xee\xb7\xa0M\x1bZ\xcf\xb0\x1d-\x1d\x13\xd7\x80D\x04\x1cV'
323 should_pass $'>\x0ch\xea\xbe\x91w\x13B\x0cCDxc f\x16w<m\xc6\x94\xd3\x9aY-I\x1f\x1aubs#z\x070\xcc\xa0\x04L\x06%\x02p\x0eqs\x1d"f'
324 should_pass $'\xde\x80>_FGk\xc4\xa78^\x19\xd7\xa9q\x0b\x0b\xd6\x87ki-7\xea\xb7\x9d\xd1\x82z\x1b6?^>(\rv\x06=\x1c5\x11:\xd1\x82\x01\x03smI'
325 should_pass $'dgP\xdb\x88:&#\xd8\xb3\x1amJ&w`7\tQc#0K\x07wqM3W-_"d\xdb\xa7(#\xee\xb5\x8et\x19\xd6\xa4\x1eC>T},'
326 should_pass $'N\x05^.\xd3\x96*7\x0cBA\xd5\x87;\t!#\x1cm\t3P\\tG\x7f~Q}A\x1avo\xde\xbcBV\x10 \x15`NOK\\992%W'
327 should_pass $'E"\xc8\x99O]\x13f4JB&\x1ap=\xd0\xa4\\q%,f(1O\x1c\x1c?<o|>`[O\x0f/\x11\\$y-_\r/#\x13\x19[:'
328 should_pass $'L\x1e\xc7\x82lI\xcf\xb4I\x10-{H\x7f9\xc7\x8d\xc5\x8c@G?\xca\x9f\xe5\x89\x8f\x05p\x0b\xe9\x94\xaa[P4%B\x02#OcRc\x01E%O!"'
329 should_pass $'Hz=s\x1bD"\xef\xa1\x98Gs\x16u\x1b\xc3\x82\t=k\x1bp\x06\x1fu}"@h_\xcb\xa1VA`+\x0ca}f9$.ba\x1a\x14J K'
330 should_pass $'~}*5\x1b*y$p* nB\xe2\x81\xafRi@y$\r\xdd\xb7Q\xcc\xa2z-/j/dD{a\n2S\x7f]\x11\x18jw\x03D>M.'
331 should_pass $'#z\x7f\xcd\x91n[^ItFA\x0cmIl)^H\x1dmG\'\x11Q\xdd\x9e!}{%\x02\'}9s\xed\x91\xbe\x1dF"HM,\r\xce\xa7_\x1d'
332 should_pass $'d+}+ZI\x0f\x1c2O--r4y\xc2\xacl\x10eC\xd5\xa4bA\x16\xe8\xb8\x8e\x17\x1em\xde\x84db\x1b>\xc8\x8d W\x046pgj\x10s/'
333 should_pass $'?N7\x1fv\x104t\x19\x14B)px\x14.G\xee\xa1\x8f"2Xl\xc7\xad\xd8\x85\x0f\x08TX.\x0e\x15RK\x04<J#rzy[r\x04\x19\xd1\x83'
334 should_pass $'br\x05\x1e\x07\xce\xbc- 0\x1d?o\'4)h\\"\x0fU\r\x177\x03c|)9\x1bPf+Z\xc8\xb2]qoR\xe1\x80\xbcJ\xcc\x8aF\x02Qx'
335 should_pass $'lX7LJc\x03R{[_\t@W6eF*\xda\xb9\x1eN\x01\xce\xbeCdJ\x1cO\tC\xdc\xb1A/W\xd4\xb3:\xd1\x8b,?e\x17\xd9\xa4\xdf\xa3'
336 should_pass $'o-\x0c\'Pc\x17Yzr\x1e\xda\x80\xe9\xab\x9e\xcd\x842m\x10F15VlJ5\x10V^.\n\xc9\xb8\x17e&\t\x152gE_c"\x01eNR'
337 should_pass $'\xde\xb6mK\xd7\xa0Y>pjj\x07\x0bPT\x1f8\xe6\xa3\xbe\x7f1Q\xd5\xbd?P[sj\x7f=rLtI\r\xe7\xab\xb2>q\x0c\x05n*\x1a\x1d[Z'
338 should_pass $'\x06J\x10r\xc3\x9b&{gE7\x05>"\xd3\x88W(\t+F\xd6\xbc<dw\xda\xb4\n\x1a6<3v[b\x07U?/({x9\xde\xa4qK\x1el'
339 should_pass $'"\x10x?P/w\x01qAr\xdc\xbc,n3\xd3\xb6\x087xDY}{\xcb\x8ea2\x08z\xd5\x9a\xee\x9b\x82?E\rd1\xc8\x8b\xec\xb4\x89*j\xc6\x94'
340 should_pass $'`\x12oJr\xd4\x9f\x05\x1d\x13\xe4\xaf\xa23\x12JqtP3\xef\xa4\xb9\x04Jy8\xd8\x9bS&D\x1a\x1a\xc2\x84^\x05| \xc8\xbc\xeb\xbf\x90`In@K'
341 should_pass $'\x1e5f\x10\x13\xd2\x8b\xd0\x8fg#4\xd9\x98\x1f+fZO\x14w.\xe4\x8f\x87\x11\xc9\x83!\x1c-D\x18\x05\x07\x1dt^8n\x0elL\x03_\xe1\xb2\xb2lp'
342 should_pass $'Dqlcy\\GO</[1g\x10\x07\x08ZN\x0eb\xe3\x95\x94gJN?\xef\xaa\xb0(\x14/,i\x1f\x16&f\x04KC@sqc\xe1\xb6\xbd@'
343 should_pass $'\x13\x18\x15G\x1eg6r\x1es3i\xd0\x98m\xdb\xb9!1EkR\x0cR\x01\x07HBi\x1b\x01XE33\x08r\x18\x14t\x1c\x13:L\xee\x92\xb6a6V'
344 should_pass $'abll\x17-&\x15\xcb\xacP\xeb\xb9\x9f\xe4\x91\xa9!\x7f2B%C?w\x1c\xc9\x97+Zl!{5\x1bs"*|\x13\n4\x18(\x19\x07=\xee\x91\x8b'
345 should_pass $'Mi\x1fmwnb\t\x03P/DR\xcb\xbbN^FZ\x07U\x1f-+Nl\x1b\xc9\xb4\x10Fe\x13f6\xcf\xb9"nqc\xc3\xa4\x06\xc9\xa2~s\xd3\xb0'
346 should_pass $']I\xcb\x8a\xd7\xb3}D\xd5\xbf&^icZidS\xc6\x91\\\x1ek\xdc\xa4\xd9\xb4\x17\xd1\xa5=[\x1f#u!\x17?#%H1q\x04-BbF\x12P'
347 should_pass $'\x10N\xe0\xaa\xbc:l\x7f$tq\\,<xhQ\xe3\x89\x8cgMH\'>\xd3\xa8^\x16\x12nV\x10BKn~6}\x0e<|Xv\\|\x19"\xc8\x8d'
348 should_pass $'\x0f\x1e\x0b^k{w#nP4\x1c\xd8\xa6NIjjVK\\\\~\x04Y)<yC<iLL(_>\x02V\xc6\x8d,\x0fhLt\x13gu\x12\x06'
349 should_pass $'r\x7f\x0erZ\xd2\xb9\t>2RA\xc8\xbePg:1\x11b\x04tx-Q>-,\t\x01;\xc4\xbe\n9\xcd\x83\xcb\x95}W"\x03\x15Li\x19<\x18s'
350 should_pass $'\xd0\xadd\xd5\x98\xd2\xa3}Dv\x17u\x1d!OD\x17+e\nLZ>\x0b,o5\x10}J$W|\xdf\xbe``55\\$aAj$\xdb\xa32-\x18'
351 should_pass $':\xd4\xb0\x1dOj\x16\xc3\xb1<\x0eo\x11\x0cC\x18PF%/\x1eLe*dYBKsVy+j:\x14\x1b\xdc\xae\xdb\x8e7\x06zAI}|D\x1al'
352 should_pass $'\xc3\x94$3>XnKtCn!]\\Z@\x03]9\x0cO\\dx<X=;f[\\&\xdc\x8b\xdf\x97t\xdf\x99r\xe1\xa6\xb7O4W;iN\\'
353 should_pass $'kBDL_!R\x05\x12FdgV~f(kWF9\xcf\x96\xd7\x8aT):\x03D\x1dE?bT8\xd8\xa22+\x06\x0b:Vq{j5reT'
354 should_pass $'\x153\xd9\xac\x0b}g\x14xkBr\xd4\xb43CKMmF*\x01\n\x11\x025s\x13\x1ch\x0f\x18\xd0\x8dPL\x10+\x1c\x02\x07NAZ\tg\x1d;i&'
355 should_pass $'s\x03?\x7fVOn\x11s\x01&\x11e>\xef\xa5\x85CT\x18\xed\x9a\xadg<R\x1dOtSI<";h\xda\x82v8@T\x11[+\\9\xdb\xacx\x7f'
356 should_pass $'s8gi/ew3d%*gO\x19\x1fz_\x17r\x15\x1d\x11F\x051$\xdd\xa53!{\t;\x10!il61W\xe3\x99\xa2V\xdf\xac\x1a?\\_'
357 should_pass $'\x068?s\xc4\x88\x11)k\x1e\x17\x16.0\xdc\xa2\xf3\xbc\x97\x96c~E\x1b\x7f\x08k\x10\x1f\x19\x10\x19\xe3\xb8\xb7\xde\xa8<\x07\t@\x1e\xcb\x8f\xd1\xa5Cl\xc5\x99'
358 should_pass $'o\x1dq\xd0\xbcz!\x10\x12\x10N)\x075\x06\xcf\x920\xc5\x89\xc7\x91\x08@\xcd\x93\x1a\x1c"\x0c"f\'dY\xcd\x83.\xcb\xb5;\x0f\xdd\x92StF@bq'
359 should_pass $'+MZBvx\xc5\x8dR\x7f!D+E3\xd3\x9a\nOI\x07e]X<rGsuy\x14k\x16Nw;B1S6quJ\xc5\xb5~,<8\x16'
360 should_pass $'|U{\x07 O\x0ci\x186\tOpFJ>.\x1aFs\x0cJ5\xe8\xa1\xb5<y\x07\x13s,xe]gGu)M27\x1eJ\x16\xdf\x87\x06``'
361 should_pass $'=kF#%\xde\xbemv\x17\xcb\x81^; hR7<\x05n\x17j\x172\x05c\xec\x93\xa8:d\x1e\\f(\xcf\x95\x01\x16g\x18\x0bk\x0b^Z{*\x06'
362 should_pass $'wA]W\x07\x14\xc4\xa6g\x05Q6"8\x0bF:\x17N\x0ec`/\x01\x0c;g\x19\x05V$D648/\x11\x13\xcd\x8fX&\x1dP\x19\xc2\xa0\x07\xd4\x88'
363 should_pass $'\\</\x0e\x175\x1fKl\x1c*C\xe8\xad\xa3\t\x08p\x1f\x19-#\x15X{=9W\xd6\xacP2\x0euX\x01mg\x18+G\xd7\xb20;*"t?s'
364 should_pass $'"=\x1ck\x11AJfpH\xe3\xb5\x8en\xe1\x85\x86C&D\x1c~YB\n\x13\xdd\xadq\x13<\xec\xb5\xb6\x14\x14\xda\x88mTr\x0cWl%/\x02\x02\x08A'
365 should_pass $'#W\x0cg\r="\xc6\x8f\x03Bg*\x0cFC\x1f\x17%h;mG~)\xf3\x82\x90\x96^x*~OL~W\xd3\x8eNS\xca\xb8\xe2\x86\x84F7\x0e-'
366 should_pass $'gf\x19.\x1fR\x01U\xcb\x81K\xd6\xad\x05J\xcc\x98\xc8\xbdM?V`\x17uQx({TW7\x10uO\x17\x1b\xcc\x8dD@\xc4\x99s\x05\xca\xb9\xd0\xb7\x15'
367 should_pass $'Z\t\xe7\xa3\xacv\xe0\xa0\x9f\x03%UIw|uuQ\x02m5\x06\x0bp7~\x1e\xd4\x88Q\tf.\x17\x7fh\x1b\x1axA\x05\x11C `\xc3\xa5\x08{7'
368 should_pass $'m\x16i\x11L\xd4\x85\xca\xb17r7GhF\xd4\x9b\x7f6\x05\x18G$\xd9\x97M\x0c\x032>8CW\x01Q\x16\x03>\xc4\x930yb:\x15+\xcf\xb8N]'
369 should_pass $'t|\xf0\xad\xa7\x8d{n\x01\x19\x17\x7fW\x1cG\x13\rA\x14UQ%<\x1aln\\r!7\x1f\x08=&\xcb\x88;:N_NKxA!b\\}\xd3\xab'
370 should_pass $'\xdb\x81GvB\xd2\xa9hZ,[\x07w\x7f;d.\x0ccY8&2^h\x10vk\x07D\xdf\x8a+\xd2\xa7\x17\x1b\xc5\xa4@<\x19P/~\x0fEmOy'
371 should_pass $'\xd5\x8aCN\x19\x08h#l4\x0e\x1dH\x1b\x16!\xcf\xa9_FK\x030\x10{\x03wr\x0f\x05iB\x15JF#;\x04\x19;6\x115RLl\x0c<Eo'
372 should_pass $'!L\xdb\xb6"gd\x10p)a/wSH\x16}Dd\x06\x0b\x07|pjP7}V/5Gf/u>\x17}HUjO>|Q\xd3\xbe\x0c>\x08'
373 should_pass $'!2%\x12\x1d&ud/\x01\x0fZh~\x1d\x13j\x18qlq"t5\x06\xd9\xb0\xcb\x9a8\xd7\x84\xcb\x93\xd3\x9c@\x17\n\x12\x1e\x04\xc4\x87\x0eWj\x07\x0e#'
374 should_pass $'\n{\x1f\x1a\xcd\x90$G\x0fl<\x1f*\xde\xa7]}\x15|7\x04Q\xe7\xa0\xb7\x146#N\x17N8&"\x120\xc2\x829\x14?H\x1b`gDjhRr'
375 should_pass $'W$\x1b0J\xdc\x82\x0f4u}K\xe9\x97\xaf\xe8\xa3\x97&J\x14\x0b\x05zii\x19+\x06^v\'}\x15e|aN\x02\x1b\xdd\xaa.;_1"P\x0cN'
376 should_pass $'},\x0c<\xc6\xbaqwGQx\'\x0f{q\r6[C#"tV,R\r\xd8\x83nit>\xdf\x9a\x0eKS\x0f\xcf\xb6\x04&{/d\xd6\x95iH>'
377 should_pass $'\xc8\x95P|b\xd0\xa79R\x0cF\x03[\x16E?o\xd7\x97Sb\x17\xca\x85\x13\tR<H6D\x01M\r<g\t@+4\x1b\xc4\x97\x06e\x05\x02a\x1ee'
378 should_pass $'\x7f]p\xf2\x96\xb9\xa8\x19\x14|\x01}_\x0ez\x14]{\xc9\x8a\x01\xda\x8fPlo\x1a\x01{Nx\x11u*`\xd5\xaf\n\x0e)?\x0ba\x183Et\xd2\xa6\x0f'
379 should_pass $'C\x18W\x0f\xd7\x9d6\xd6\x82lP7gB\xd4\xa9\x7f$\x06e\tk\xe2\xb7\x9b)!\x08;\x1c\x0fp5\xee\xb7\x8bE\x01[\r\x03\xf0\xa0\x9d\xb2Z\xdd\xa6EA'
380 should_pass $'SSFu-=;2^\\\xc7\xb3\x0fa\xd1\xb8\x06\x10@{nOI\x15OKW@p\x0egS4\x7f#\xd7\xb6_\x1b1F\xd8\xbdf\x18\x1cwi\\S'
381 should_pass $'6,\xcc\xb9\x0e\x03\x11BS\x1f1 g\xd6\xa2Zel}?\x1e,\x02h7%\xee\x8d\x987f)\xe0\xab\xb6\x19NT\x13Y\x1eXQ\xd1\xa4lVhBP'
382 should_pass $'dKWN\x17Ba\x06\xde\xa4s).S\x10b\x07\xc6\xa8Cu\x1e=jT}\tV\x02k\xdb\x9doHl\xdd\xae\x13iM\x1b*\x1e+o<\x06}Me'
383 should_pass $'\xdb\x9b\x18A\xdf\x87J\x01`N\x0c@xm\xd4\xab=eI\x1f>9\xe6\x9a\x86\x02s\tw`9j]p\x10\'P\x03!o\x19~O\'\xc6\xa2"dJ,'
384 should_pass $'`RsB)ImZ%\x13QP\xc5\x9b\xca\x99dw\x12\x10\x7f\x19j\x05@m\x1f\x05y{p\x15[iU\x17~2Ye\x15)#n=\x1bya -'
385 should_pass $'\x06\xcd\xbf\xce\x83\x13d\x17R\x06T#\x11Li47\\\x14<Uq\xd1\x9c\xce\xaeDtHVu~9fg;;\x05D6l\xd8\xbf\n}0S\xe1\xb2\xb4'
386 should_pass $'w_[7R2\xdd\xab*J1Us\xd3\xbf\x1fRR,.0&O6\xcd\xb9\xc7\x9c\x1a1P,E_f\x12|2vQS*\x0e\xe2\xaf\xaaJZh\t'
387 should_pass $',VWbpfR\x04(#\x11\x073\xd6\xad<^\x12gu)J4\x0fr\x0e(S3E6[ru\x11\x06\x1fEc[V#"\x7fc\x01\x1a\x19\x01V'
388 should_pass $'N\xf1\xb4\xb6\xaf/\nzi+:~:.\xeb\x9f\xb9\x11\x7f|\x1c\x0f\x01|\xc5\xb3$H2ze\r\x15\x13lQ67Y}In]etE~R\xcc\xa0'
389 should_pass $'\xc6\x88\xdb\x8bm&\tEh\x18\x08\x1e\x1cn21:a\xcc\xbct`\x14%u[U\x10KP_\xd5\x84~\x04WZ*\xdf\x88\x1e%\nx\x156\xd8\x9bPF'
390 should_pass $'-@to\xde\xb9[w\x18\x17\x07\x11c\x1d\x0f2)]"i4B\x01\x08>n[\'hl\xd7\xbb/\x14\nd9~b\x14q`\x0e\r\x17{>%.v'
391 should_pass $',y\x0fE\x13N\x0eB\x12qD8tQk\x1dpgg#\x14\x0c\x12\x14|cRHrI<\x1eZ\xc4\x94C!\x0ewV5[F"Z\xd3\x92=\xd2\x93'
392 should_pass $' \x1c\x1e\x02\x1a K?[}\x02\x13/!\x18\xd4\xa26 \x16Hn` \x19&\x7f\x10_6-IwPH\x0bt\x19\x1c\x05\x13\xdd\xb4\x13om\xc6\xa3\x7f\x04'
393 should_pass $'lv/\xd4\x98\x12@\x1c\x16<&u\xec\xbe\xb9j@A.XZ&d\x1cR%%\x05zI_[tW\x10\x1f\xd9\xa2@m7\xe3\xb9\x99\x08(z<>i'
394 should_pass $'\xe6\x80\x87FbK$)`x\x0b\x02hyS\x11_g\xd3\x9eJmy8U\xd4\x8dR\xdb\xa9\x01&\xdd\x89G+\xd5\x91wqyw*\x117C[v!s'
395 should_pass $'6G\xc2\x8e]$"\x08nX\x0b\xd4\xb2\x1cvL5fu.]%\xd1\xbcyR\x1d,\x0c"\xc5\x80(O\xe4\xa5\x92\xda\x909c\x05SP!\x01\x06\xc4\x90I'
396 should_pass $'^\xc4\x9cY@\x14<g;Fa\x1dvRz\n\x1a\xeb\xb8\xb8\xd1\x80-\xc8\x97\tckRM\x18O\x19\x7fH0s\x0c\xcf\xb7\x13\x15\xd1\xad\x7f\xe2\x95\x95uF'
397 should_pass $'\x0eE\x17\x1a\xc8\x84JZ\x05W\xdc\xbf\x10&m&\x13m\x14Q\x13\x7f\xed\x9b\xb1xZ~:\x10*\x03>\x0bR\\{fz6\\PtjJ[\x1b\x06\xc7\xb5'
398 should_pass $'\xc2\x93tT[KhT5\x1cX\x02\xe5\x9f\xb5\x18\x0c5/xQ&\x0cXg%v_@\x17*"\x15\xde\xb3m\xde\x92Gs\x7fkq{\t?O;\nP'
399 should_pass $' hZ-\xc2\xb1TvG4h$*-Vs\x13/\x18\rGC)\x03;)\x7frR|\x1aD\x1cJu9;\xce\xa7\x1e+$j\x1c\xe7\xa0\xb4FQP'
400 should_pass $'9\x10aAp^_D$<NdI9\x11R"a}:\x1a\x04\x16BaE\xea\xb8\xa0\x1a*5zk\xc9\x8aL!eWkPt\x1d,\x7f\x02=N\x7f'
401 should_pass $'s+`N`PCb|o\x12iAQ\x01L\x1a<i,\x0c,@\x12\x05[\x07\xca\x9c)oGK$gS]EH\x16\xca\xa3\x1bG\t*v\x02kC'
402 should_pass $';\x1d[\x19:1at\n\x0fy\xe5\xaa\xb2c\xc6\xbbc\x1c\x01[\r\xe5\xa0\xa0C\x16\x17\xcd\x8d]\xea\x9e\xb7$j\xd5\xa5\\k+\x0eo\x173\x1c\x08c$\n'
403 should_pass $',&\x176\x1bG4`vhxg\xd5\xabZdK.\x19|Qq\xda\xbdV-1\xd9\x94mO\n\x03BqG`\xd4\x88\x10\x7fl\xdd\x89n\x1e\x1b\xdf\xabp'
404 should_pass $'yR_>JR7:]\x1duJVBWd7C\n)]0T\x01(2>qdp\xd8\x91\xcc\x9f\xdf\x91Gj9aXZ\x07\xce\x8bF\xd6\x98ad'
405 should_pass $'\x08\x1d,\x1bM\x0b`a=wMZ\xc8\x9eiZPd\x03\nA\xce\xb4\x03\x1b[)X]KoL\xdb\xaf"NM|i8E\x13\x06S|k\x15#&n'
406 should_pass $'nH$\xe5\x87\xb4]\xcc\x9e\x1b\x05]v\x07\x1cC3Qf\x1eYf\xc5\x8b\x04uQ\x1a\x05\x04Pq\xd7\xa39\x1bRysAmb\x0f\xf1\x83\x90\xb9\x0b\x02o'
407 should_pass $'9{_\xd1\xb1\x1f>GDINmfRP&W\x08\x1bm[/q\xd6\x87\x05"a(j\\QW\x08Dgz;:zxE\x1d\xca\xb2Pn\xc6\xa4c'
408 should_pass $'9\xcf\x9cU.\x11\x0ey\x1e\x04\x08\xdb\xb1iNO2kwQ[\x1d=?m(\x1f=\x15^\x13}D\x01Y\xcd\x96?u#{eF"\xf1\x98\x9a\xa2S\x19'
409 should_pass $'w\x13\t|shdh\xd3\xbc8\t\t\x1dq\x18Nn#92#\x0f*e\x17l\x03Ts\x15$\xcb\xb8\x02&\xe0\xb9\xa6x\n\xeb\xa8\x80\x02>k\x050\x18'
410 should_pass $'-\xe1\xab\x8f>\x0f{\x0c\x7fnM\xef\xb9\xb5V5\n\x01&7\x08|v \xce\xa2\x19r`k\xcc\xb0\xc8\x9fr\x7f(zE\x0ee\x19%a0P0\xd3\xb6+'
411 should_pass $'4\x04\x04:\xca\xa5k\xd1\xb6.\xd8\xb4N\x03\x11-I"\xca\xbdSA\x18/2i&ukr\x1a\x04\x1awf\'[\xd4\xae\x12EPJ!m+ToG\x17'
412 should_pass $'ME}-DMp\x05:g\xdc\xb6S&:DK\x14An\xd0\x98\xd8\x96\x0eo\\\x13Jfc\x03\x7f)AJWQc<P,hu\xc7\xb44f\x07\x06'
413 should_pass $'{a\x16+%*I%Xc\x17|\xe4\xb3\x82z\x1fd y!\x14,KU!4Z\xc4\x99|nag\x16\x07QN""/\x15/Skr\xea\x91\x9dK'
414 should_pass $'S.\x0bQM,\x7f\xc6\x8d}7\x17D\xc7\xa90\xdc\x83\xc3\xb6\x10\x13\xcd\x90\xc5\x96^x+i\x10\xdb\x80H/\r}M#\x1d\xee\xbf\xbf\x1e\tOb\x1aui'
415 should_pass $'gc\x1f\n(njK3{(}p\x16U\xd2\x80A@.ZkZZ@6\xcf\xbd\x17E\xe9\x9e\xbc,!DkAeJb\x17\xc2\x8e\x17\x10s\x11QJ'
416 should_pass $'tiH\nq\n{\x10Uy5n[\x05\xc5\xafXdXr10\x18/\xee\x95\xafMFT\x17\x0e\x1e75\x01V\xcf\x97v\xeb\x9c\xa1\xcd\xa01qK\x08X'
417 should_pass $'OB\xdb\xb2\x05p8YBS\x14:\xd6\xa8\x0e\xd5\xb4D\x1c\x1dPP\n\x0bF^\r\xd6\x8cn-p\x14\r\x1aOQH`9/\x12.\xcb\xbfO\xd2\x8a\xd3\xaf'
418 should_pass $'\x11\x03\\M<<Z>\xc3\x9e\x17\x04<qUKD\x16\xd5\xb7x\xd4\xb4R93\x12o~9tpV\xdf\x8dO\xda\x80*\x06U\x070\x0cEV"A3O'
419 should_pass $'|\xeb\xbf\xa1\x02\xcb\x9f[MP\xcf\xae^\xdb\x84\xce\xa2\x108\x05>B%\x0fs2Sq\x1cQ|\x1b\x19,~iE\xe5\xb5\x84M\x1c,Y\x11\\\x0e\xdb\x85X'
420 should_pass $'e\x08v.~(>\x1bp\x07W\xdd\x97pAvF\\{)\xdd\x96\xc9\xbb\xf0\x9a\xb1\x96\x1d,8\x13lF\x0bN?n+Uj6=eJ%\x14\xd7\xa77'
421 should_pass $'Q\x059cQ\\\x05|R\x19i\t#<M0.\x7f.a>]\xc6\xbf\x1d_`dPd\x1bo</\x10\x1a\xd9\xba\xd7\xb4L\x08z\xcd\x8cd\x08c-x'
422 should_pass $'i\x06\x04\x1dJ\x19pn\x03N\'gV\x1cf\x11yd]M\'\'>\xdb\x9ea\x1f"\x06\x11\xf0\xa1\xbc\x8a\xdb\xb6\x1d\xe9\x9f\x9d0l9_\xc5\x95PMv^'
423 should_pass $')}Fgn\x1c\x0f\x0eGY9\xd8\xb53Wko\x04\x1b\x1ePa%\x0c\x1c\x10h=:5%=\x13\xd3\xb6J\x0e\x12-\rj^D\n\xe3\xb6\x8bp\x0bG'
424 should_pass $'%\xd9\x80E):j~c=^^\xcf\x91\x16\xc3\xb9\x1d)R\x07\x1fL\x17b3K}\xd4\x828/WYk\x10R\xcc\x82to\xc3\x86] Q.!5Y'
425 should_pass $'\xc8\xab"\xee\x8c\xafwvx;sRtmv3.G\x04-$x\x17\ni\x14\xc7\x83u)^h;\xc4\xb4\xc5\x93\xc9\xa7DE%4j 2\x0crHd'
426 should_pass $'\r]\r\x01A\x0bS\xdb\x95Iph\x05\xcb\xb8\x05:@r<\x0bkL:\xc6\xa9\x7f7\xc9\xae bvK:\x05TzKVgdiu\x18?\x086\x15w'
427 should_pass $'o>{\xc5\xb1f&4rfrS\x14`\'rD"qJ\xc6\x87Q4\xe8\x8a\xae\x07"`gU\xc3\x834\x04Z!PA\r\x12\x0e\x0bzC)\xcf\x9eo'
428 should_pass $'(\x13hpX\x06{I$hx^g|i\x02s\xd7\xbfy*\x1au\x0fVi\xce\xbdF5=r8\xc8\xb3\xc8\xa4\x04n\x17\x03\x10X\xc9\xba;}y9h'
429 should_pass $'b#\x1e\xe5\xb3\x89\xc3\x9d~\rsZ\x10ky\x12\x17E\xd8\x9c4\xd6\xb0Z`11\xe3\xa7\xb8\xd9\x95\xd4\x9ca\x03\xd7\x8e\xcc\x90eH=\x0b\xdf\x81z=\xd8\xb8'
430 should_pass $'\xd9\x8axv|\x13},1$\x1e"\xd2\x94\xe5\x93\xbd\xd9\x90TV/.\xd3\x94\rAH\x1cy\xee\x94\x98f\x15\x1djY\xd8\x87\xdc\x8b\xce\x9cg7|7T^'
431 should_pass $'_5\x07}T\x017 2\x18\x15\x0b\x7f\x0f\'\xc9\xb58/D:HVi\x03\xef\x99\xb3\x1d\x0cMjO\x7f9N\xc8\x98$"\x17:\x0f\\\x0f\n%f\xc6\xb3'
432 should_pass $'v\x11\x13"\x10\x17ur6d\x19%O\xcf\x8814d\xce\x88>p\x7f\xcf\x99Q\xcc\x9d\x18Re-{V\t@X\xe8\xa3\x9f\t\xd4\xa8\x08\x07]\xc4\x8d/N'
433 should_pass $'So}\xe6\xa5\x90\xed\x8b\x91%2*8b\x14Zo\x1b:\x1aV=3R;\xd5\x95\x1c\x16M=jM9E"P^P\x15S\n!\x18|\x11Gy\x14\x13'
434 should_pass $'tp[L\x0f;1\r$$\x18#\x0eU\x0b22X\x08\x04S\x16St|#BY\x05\x0f\n1HD>\xcc\x8eV*N\x01To~\xc6\x90{]3\x16'
435 should_pass $'W\x10\r_"\\\x13\x1ag\x17|\x06R\r\n\x19\x0b+\')\x16t:st4^d\'/K2y8S\'=\xcf\xae(\x07\x05Cx\xd7\xbf\x02H/N'
436 should_pass $'O\xdd\xba\x07\x0b\x12\xc7\xbdN!b|.Hr1\xcd\xaa\xd3\x8dkB7yLI\xd4\xa7*piv\x0eS\x0c@bR\xdd\x8frOr\x1cEH\x1b\x05Z='
437 should_pass $'eQ\xc4\x95\x04\x01\x11.6\\\x05a\xd1\xba|\x0bNz\x14t\x15\xe8\xa0\x85mx\x03g\x03p$\x11Bp2\x02,]!O\xcd\x80M\x07:X\x1cc\x15#'
438 should_pass $'\x16Z\x18Of*\x1a;\x07\x03\xef\x9a\xa2\r]\xc3\x98^jH+GE\xdb\x9cb1\x1b?\x1b\xd7\x92?\x03Z_\x049\xce\x9c\x1f\xe2\xa1\xb4\x10\xda\xa1\x17*,'
439 should_pass $'aMX<V.<*\x16D/0|*\x19\x14\x0b7q\x7fV$\x15\\b\x16=\x7f\x1fj\r\x0c \x12\x16\x13/y\xda\xa7_\x19|q\xdc\x9cw\xc6\x99\x14'
440 should_pass $'9\xf1\xb8\x98\xa5)3m\x1dUR1\x18\xd9\xa0i=\xd3\x8d8[\xc4\x98@G\x06\xc9\x89\xd2\x96\x1aG\xdf\xb4lw8\x17"HqZlJy-Gu$G'
441 should_pass $'k\\\x13Rv\x19!#\x1ej\xde\x91\xea\x93\xb0Y=x@KQ\x1aum\xd4\x96/~_.\xc5\xb9=QjsVGql\xc4\xabTT3\xd7\x85m2]'
442 should_pass $'-if*1ZhK1R\x1f\x11T:\x1cFOo;+Vz\x19&\xd2\xacQ\xeb\xa0\xb1p([}t\x07\xd7\xbf,:PS\x1e}\xe7\xac\xb7V5I'
443 should_pass $'6\t\'+hq3\xea\x83\xaf\xc2\xabw3\' \x0b){W;\xcf\xb9v\r\x19mq>\x0e"_H\xd1\x96\'\x02W\x7flopB\xe3\xae\x99JGM}'
444 should_pass $'2={j\r\t\x16-)\x1bCZ\xd6\x98\xe4\xa0\x9c\x17.OY\x04M/\x1f=)\xed\x91\xac!n\x1bk\x1fi}#vbJY\xdc\x89hvG\t0\n'
445 should_pass $'znW6Nm\xcc\x8d\x02{$\x14\xce\x93T-[\xe4\xa3\xa4Cm?>\x1fo\x04c(X_\x07J\x1b\xe2\xb9\xb78\x04\x1c<u\xc9\xb5\x1e*eD>b'
446 should_pass $'\x10\x11Y\x16p\xdd\x91\x19\x15q<6ZD\x1bX.\xd2\xa1"QmyAJ\x03\x0e/\x18\x13rXd(\x18G\x1b\xc8\xbaPG\x0b)1\x05Es;\x0bl'
447 should_pass $'\x1f\r!IM\xc7\xbdydf\x12\xd3\x81C$z\x02\x12^2\x02x\xc5\xa31\n\x17\xdf\xae\x08\t$vd\x0e\x0b\x06xQ./r#\xea\xa9\xa5;ff?'
448 should_pass $'\x1f\x17KV*\x05;%\xdd\x98\x06R\r[\x1c+n\xd6\x95cx\xec\x9d\x9d\xe6\x84\x94\x10+R>\xc7\x93\x7f\x7fIE]A\x1a#?\x15\x15`\x0e1\x02\x18\x18'
449 should_pass $'\x08<nunp\x1e\x13*Q\x13\x11G\x1d\x18<4>\xd9\x85\xc8\xb8\x13S2|s\x1e\nl.?\nHq-\x01U"RoEnL\x19l\xc7\x85\xd3\x99'
450 should_pass $'Sfu\xd3\xba\x05l\x05Hm__^PfI\x04a\n.\xdd\x8dml\xcd\x96Bp\x16O,1\xd0\x83)ZF\x04\x03&\xd3\x8d>*\x1d/2\x17y%'
451 should_pass $'\x031f\x17h\x14$B.7K\xc2\x96*xk^\x02s.N?\xea\x97\x94\x0bl\xe5\x84\x98^i\x06>\xd3\xa9}a8\\Q@S\x0f\x15\x1fI&;Q'
452 should_pass $'\xf1\x9e\xad\xab`\xc8\xa1\x04F;\x7f`X\x17\x1d8&L-\x01"J4r\x11\xc7\x99\xdd\xb4x|o\t\x106"G4ef\xd0\x94XG9\xec\xae\xb3\x17+'
453 should_pass $'CXYT\xc5\x85A\xd7\xb8\x06"\x1e\x1f(\xd6\xb0U\xcf\xb1tg\xc9\x87\x1bC\x03uW\x14\x1a\x17\x04^.\xc2\x87V\x14\xde\x97\x01\x08J|e\xdf\xbd\xd0\x97;'
454 should_pass $'\'\x06`O^x""b!S\xca\xa3TE\x07\x06O7<USJ\xda\xb6\'W\x08kk\x07\x07j;"8E}GM\xdf\xb5Q:$~^\xef\xb6\x95'
455 should_pass $'%\x1b>gR\x7f6B\x06Uw\x1e\x0c7 \x0cCl9\x0e\x06+\x1ah2b\x02\x04t:0\x17F\x03x%Ct\x1bq4\x0bsFFL\x15Y\xcc\xb8'
456 should_pass $' \xc7\x85 G?H\x017\r\x1aepp|9p}S\x11Q\x14JMm<\\\x7f\x7f?=\xda\xbd\x11\x7fI,\x07\x0csH,\xe5\xb5\xa9:A^\x0cR'
457 should_pass $'jdYi\x11Y\xee\x8d\xb6`_#yq\x16U1\x1dHk\x11*u\x1bP\x0fl;<J\x1e-%/gr\x102\x12YnGE\xcf\xb4]\x0e{W\x0c'
458 should_pass $'c\x04\x14HE CY<_05%?c-WAQ\x13f(x\x051a\x07\x12=*a~\xd8\xa6\xc2\xa4dUYJ#S\x15hBcGl\x04U'
459 should_pass $'\x10)P|\xda\xb1\x7fz\xc6\x94\x11H=f\x1e\xc8\x862w(i]|_a\x15\x15f\x06\x11,NMi-9xZ4tl!\x078\x066\x183`]'
460 should_pass $'\x1aCKiIG\xd4\xb8@rQ:\x19\x12QYV2?{uRvN:)\x08\n&\x18\x10M\x7f1wPS\x19PF */\xcd\x92\x1092!6'
461 should_pass $'z\xef\xa1\x89+=c.P\x0b/\x1e\x13GI/\n$\xd3\x86U@_\x127\n}\xd4\x91x>{Cx4\x0elY9\x06\x17I\xc5\x80<X[\x0e\x02W'
462 should_pass $'M\xd1\x95\x1b\x7f!\x1c\x0bCr:WD\x07|\xe4\xb4\x87k\x1d\x051<NjM\x0477;Z{j=\xef\x83\xba"SDi\x07-]\n-8\xcd\xa2:'
463 should_pass $'Hwf\x7f\x1eIr.\x0b\tkS\xe4\x94\xab\x13\xd3\xb1O4\x11\nb&\x11\xe9\x95\xb0,N|!t!>Un\t\x1b;b\x08\xcb\xbce=_\x19{k'
464 should_pass $'M\x0c\x1dDLFwA_L\xe1\x99\x93\x04K\x1b<6\x7f\x16\x0c\x15|Q\x12@\x0b0+M\xc3\xa2\x1a!\xcc\x95S\x18}l\x13\xdf\xab\xce\x8bF4:8M'
465 should_pass $':\x1eZ\xc7\xa1aB6(g4\xd1\xbaR\xd8\x8fV q\x10;. }2\x05n\xd0\xb8}\x19xmo?\xca\xbf5y\x1et4w\x0fp\xcb\x94\xe6\xa0\xa7'
466 should_pass $'o\x13Fqd\xd6\x94\x07\x11\x0eu6n\xf4\x85\xb4\x88Zm\x15++\\\xe5\x9e\x81m\x173?\xdd\xbb\xdd\xb8h\xd5\x80%Y& \x0f\xcf\xb5\x01*\x02\xe2\xaa\xb3'
467 should_pass $'\xc4\x84\xde\xb2\x0b\tkY\xdb\x8b>\xe1\xa2\x93uj\xd4\x90RZ\xdb\x85\t\x1e\n\x07$W^?}O\x14rr0%eX*I\x121.^VmBin'
468 should_pass $'`?Gq\xd1\x88C|\x0e\x02\x1d\x11~A\xc7\xaeg6,`BeM\x1dd\x11|)\x18\nU"\xd5\xbeu\x7fr^lT<}.,\x0f\xf3\x92\x85\x8a8'
469 should_pass $'\x0c8d\t=16\\B3Ca"vW6\xd7\x9baE\x1e\x19-\x1ba574\x11Tlco\xcc\xa54[zA`7\xcf\xb9^mL<#N\x18'
470 should_pass $'c\xdf\x92W\x17WJG%Jh\xdd\x9aK?^b\x1e.:h~%B\x0bZ5\tY\x0b:1\x01=z#;ddh\x02\x0cKaG/5FR$'
471 should_pass $'o{tK[9\x02h=xs\xdd\xb2Qs`HCT!E\x07bE~\xd8\x84\xce\xa1,Bt)\x7fv\xe6\x88\x98\x1d\x10m|p5;WWm\x0c\x18'
472 should_pass $'\x1c\x01w=#\x1b(7.\x0e\xe8\xa2\x97I\x11\x7f\x1a\x0bW{\x0f.\x1e-h/\x11EJ\x02<:F8\xdd\xb7\x1d.\x19\x01\x1buW*#rH\xc8\xb5x'
473 should_pass $'F&\x17o\x15~PQ]U\xf3\xbb\x99\xa9\xe6\x9f\xa2>_86`\x02#\x0e\x03\xd9\xbe\xcc\x863c\xd2\x93\x1b\xc4\x97"\x16\n\x11+e\xd4\x9dh-\x7fE;'
474 should_pass $'<*W?B\xd4\xa18B\x13\x063[\xd9\x8eW4\xee\x9b\x83H0_$\x15i\x03\x1a\x188X\xe2\x9e\xbf\x1e\x16T\xee\x88\xa6\x1d3H\x15e-& at'
475 should_pass $'"n]\xda\x9c)-QVU\xcc\x94zr)<\tB\x18\x14[\xc5\x82\xd1\x9d=~0\xd1\x9b\x1d\t,\x16\x11\xd0\x9dP\x10f\x1d \xcf\x96zI>\xe4\x99\x98'
476 should_pass $'\x1370\x08c\x06\x7f\x1aV~EgJy?\x0e]zl!oD\x11\xd3\xbeC\x7f\r\x04m:\x1bs"}\x17p]J#CDI\x0c\x17#\x03\x10Dj'
477 should_pass $'%h\x0e\x19u?\x0bjKfO\xe7\x91\x97YM\xf0\x95\xb8\xab\xde\xa3!c\xe1\xaa\x8a\x1aX+\xd1\x9a\xd2\x84\xdb\xaaj>88z\x17K\x01\x15{5{(m'
478 should_pass $'\xde\xacz)\xd5\xb6o\x10JQI!v1LnDA\x1aTDL5c}\x15\x10>9t"r\xdf\x83N+uh!\x118l_\x02z,\x17\x12I\x04'
479 should_pass $'{\rk3P~\xee\x86\xbewK\xed\x97\xba\x05T[ S)v\x1e\x18\x1aN/\xc4\xbdB\x0b?`@$]\x19\xc3\x94\xc6\xa5we\x0efx\xc6\x84p4V'
480 should_pass $'\te\x0fx\x0e\x01\x05]\x1fx\x17k\xe8\x9c\xa6a\x1erP\x1euqkn\x0b\x1b\x07}&hk\x08]RS\t\xdc\xad\xdc\xba\x1dx\x1b=\x01\x0c0\xd4\xa5\x05'
481 should_pass $'\r\x0e\xdf\xbe)S\t/\x18\x0b7I?1#H?\xde\x96\r>\x7ffTIAT9!H\x01\x1ffCoe;\x7f=\t<rDO\x18\x17 a\t]'
482 should_pass $'|fKd\x01v:3,#\x07+\xc4\xb2$HyW+p1*\x0f\xd6\x87F38z<w)\x0c0\x16K\x0e\x0fE\x05b"\xea\x93\x9e\xc3\x96ixm'
483 should_pass $'\x18\x1d77Go49p\tK\x0c"\xcb\x99r0\x12#Y;#\xca\xaec5Zw\xc7\xab"qZ,7\x0eY\'<&T\x08\t5ZX\xdb\x8bN~'
484 should_pass $'(TC~sd2JhK9\x17\xd7\xb0j!\xe4\x9f\x8bh\na68\xcd\x88]F62 $)z?8\x126oTCg*@\x0c\xca\x93&xf'
485 should_pass $'CU!`T\x02\x1c[,\x04J=}^DV\r\x1c8w\xce\x9a4s;br^Xi6\xd7\xa8;1c@:.O\x1a\x17_\xe6\xb3\xbek\x02t7'
486 should_pass $'\x1a"iG\xc8\xbfK\xdb\xbfa\x11aB"\xc6\x8c\x11SL7QA~|\x02\x12\xc4\x88/\nu\r\x1391.dKGi\'7<x\x1c\xd9\xb1JuO'
487 should_pass $'r\t\x1d\xda\x8cqA~\x0cBKT\x025\x06\xe5\x8c\xa6\x1bWm"T;\t9r\x01\x03xe\x06f}\xdf\x93?/V\x13\x1e5\x12)\r{_n<)'
488 should_pass $'NU\x7fU\x03\x01\xdf\xb0\x14bM\xda\xb7T\'j\xd8\x85b\x04`|UQ|\xc3\x8c\x03Cp\xcc\x9ahN\tuJ\xe8\x91\xba5".\x01oc"P\x19\''
489 should_pass $']\xc8\xbc!\x1fMD\'\xd2\xbcY-[bP"\xdf\x85\x13V\xc9\xbdL\xec\xad\x97q\x1bu(xZ\x03\x02;\xd0\xaf}\xdb\xafi\\&\xd8\xa1^\x0fzT\x12'
490 should_pass $'\x01:PGEL0\xd2\x9cU\x11`\xda\xad\x1e}yD\xd3\xadvM\xe9\xae\x97\x10%\xd6\xbeF!x\xc9\xa0\x08c&\x19\xdd\xab<\x7f3O\x14#N\x05Bh'
491 should_pass $'\x12l\xd6\x8enl6)\xc4\xa6BbDhR\xe7\x91\x81\x13}\x0b]\t]1/\x7f\x07pB(\xc5\x8ff]h+\xd3\x8f\x0f\xc4\xb6,MHa&j\xc5\xb7'
492 should_pass $'9\xde\x96\x13&h\x02\x12\nw34\x08IpGK\xd1\xa47\xc3\xaa\x7f(Yt~;\x07\x1827)\x15\xd3\x9b)\x08\xd5\xb2@\x1dt\xcd\xa0\xc6\x8b\xd5\x9bv'
493 should_pass $'F\t.-|5\x1cz6mW\x154\x110s{)\x1cB\x1df\xe2\xb0\x95Ji}y\tyMRvj\x18\x7fmSF\xc5\x83\n{\x15\xe7\x97\xb7U\x0c'
494 should_pass $'Ax\xc2\x90j\xd5\xa6SMd\nN%d1Qs\x0e\'T\x15Gz\x12MG\x7f3\xd1\xa7zX\x7f\x12+%\x7f>\x1c\x1e\to3"9\x1d:\x07\x1d\x12'
495 should_pass $'.\x12\x1d{`q\x7f\x1fR_B3\x0cT}\x10[;vRp/L\x01u`#SX99-\xd1\x96}IM\x15N\x1ehd\x1b)l\x15\xd3\xbba}'
496 should_pass $'>j-\xdb\x9eP\'\xda\xba"vI\x16$1&\x19-SKK\x1e~0\xd5\x8f(j\x17HX4\x15_T9"&bCR^\xd5\xaf\x0cE=\xe8\xb2\x94'
497 should_pass $'\x1d\xce\x8a7w0\xe2\x94\xbbD>\xd2\xbc.\xdf\xba$N\xc9\xa2\\oR&3\x1f/W\xd3\x82[\xe5\x80\xbdT\x08\x13ZHe\x0b\x05!^\xc6\xb85u\x03O'
498 should_pass $'\x03\xd9\x87(r.\x04\x02-F\xdd\xa2]\x03\xd1\x8ea@\xd4\xa5h5;:Y\x1e\x0c35\x07\xdf\xa6#\x1fNC\x15K9mNzO\x0e\x08\xc3\x9f2:Z'
499 should_pass $'^#\x7f;\xd4\xa5eb)\x19%f\x04\x1c%\t\xdb\x991\x04S\x08`0\xdb\x89aCfDpiN\x036Ua8/E&\x16&*b\x1f\x08ub<'
500 should_pass $'9AB\xd7\x95>Je\xdc\xbe\x13\x19f|bj@$\x1fQFM\xec\x83\xaeY\x1f\x11C81|OU:U\xd0\x97\\-\x1bD?Z@[\x12\xdc\x9bO'
501 should_pass $'\x12iqn~\x1fuWVQvr\x7fS=_0~^>Y\xd0\xbe/SqQ\\X "H\x06AQ\x01\x12| ezR\x11\x1f8\xd3\x9e\x1fC<'
502 should_pass $'u\xc7\xb9\x19o\xee\xa1\x81N.\x0eD\x17,;a\x16T\x1eh]"\x0f\x0e2w\'\x07\xd0\x82:L\x12\x13][\xd1\xb6dwh\x01O\x1d>0\xd6\x97~\x17'
503 should_pass $'"|\x12l5\x10)j0\x16!*J\x19#\x017b*^2cI&W\x1b\xe8\xa8\xb59(\x0bG<Cp/ Q3g%6/.]\x0fLE\x13'
504 should_pass $'@\xd1\xadU\xcf\xa61N,EqX/5Ts~\x17fiFN\x13~S\xc9\x93rg\\O\x0e\x08db}w\x01\x0f\x07&Y\x15nL0Ta\x08E'
505 should_pass $'u!\x078y#\xc5\x96=\x02\t\xde\xb6\xcd\x8b;\x1fzAg\xd6\x86XMVc%\xe9\xa2\x89\xeb\xa8\x872,$w\xce\xa5,o)c\x07)2F\x1dZy'
506 should_pass $'\xeb\xa9\x8a\x11<e\x7fXFplY!\xd9\xa0\xc2\xa25YH\xdb\xb7\x1f\xdb\x84a\xe4\x8c\xbe"6!2~5\x0e\x0ecd!{\'rg\x1e\xd1\x98M2S'
507 should_pass $'\x07&\t\xcb\x92mL\x03J\x149#r\x05@R\x04.\xcc\xa4AZ\xcc\x8b\x10,\x15iUE0re\x1e~MVl\xd3\x88\x0e\xc5\xa6f\rWTznI'
508 should_pass $',\x14\x08al\xdd\xb5]#\x04@DKY?A\x0e\xd0\xb1y\x05\x1c\x1f`A\x11Xp\x0fr\x1bV\x1e\xc4\x8f\x1b?#\x7f%`{sg\r`\x7f&U&'
509 should_pass $'y4\x19\x1f\x13}\x12\xca\xb97Q_P\x1d\xce\xbf\\90\x19\x05\x1dX{\x15m\xd1\xb8\x1eV\xe6\xad\xb6Um)\x16\x0e_gC\xd3\xaa@\x7f6C%\x1d3'
510 should_pass $'\xde\xbaS\xdf\x97UwG\x15Ke_I(an\x02J+]VZ\x1f\xd2\xbbW\x19S@0\x07\xe6\xba\xb3(OiaR\x0b%D\x1cu\x04`\x08\x03v\x16'
511 should_pass $'\x0e\r3M<\x01tR\x11\x10xY\x16U=\xe2\x98\xb6L}j\xe5\x99\x88joJv\x11A\x1dW}\x14\x10IEF[ \xc9\xa0\x0e5e\x13\x18\xd2\x8a4'
512 should_pass $'r*:Ua\x141nt\x02%\xda\x9a;\x0c\xcd\x8c\x14\x04\x16\xde\xa4j(\x12vaq{g\xd7\xaf$\x12"N\x03#t<7y\x10\x0b7\'\xcb\x80PN'
513 should_pass $'"O\x03=\xe9\x91\x84I`)_g{5\x1d\x7fN.\t^|3\x18\xc9\xbcU?\xc4\x9dw>$8^i<\x03_\x07{FZF}\xd1\x8asr}o'
514 should_pass $'\xca\xbcRB\x0cx\xc8\xa0\th5\x04\x02\xeb\x8a\xa2\xd2\x8f1Cu\t\xe4\x86\x84z7zp(\xd0\x95G+\x03?8h\xc4\xb4\x07_8Q\xdc\x87\xe8\xba\xbf\\'
515 should_pass $'Q.7v\x04?\x0cu4\x1eT\x01FE\x0b\x05O\x1d\xc7\xb5n\x1ad-J\x1cwI4EZ\n\xcc\xbf\x14p*o5"n\x08Y3>m\x161R8'
516 should_pass $'\\R\x05/RU0\xcf\x9826?\nxOX5\xca\xbb2fc\x0e\x129xnM\x10;\x12\x1cgN\n-m\n\x19!rK$\xc2\xbdh\x17\x1b \x1a'
517 should_pass $'$=\x16\x1c\'s\x7fn\x1d\rb"r\x13\x0b,A\x06\x12\x182f*Y(\x1c%#`l\x1e`\x15,v.\x19\x13\x11#2V\'O6#Rq=D'
518 should_pass $'g\xd6\x8d9B>\x07\\\x1dF<:\x08\x10\xd2\xae@b\xda\xbd=\x01+\x03^ \xd8\x8eP\x10twK\x06\xc7\x97sV\x14\x133\x16\x15qy@P\nW\x02'
519 should_pass $'mx`k04l\x1a`\x08\x05\x17*=3`/7\x1e\x1eeMA%l9Pb"y\x15\x1c$\x11bps(Sx\xcb\x9f|\x0er}+\xdb\x89\x14'
520 should_pass $'s@.\x1c\n\x07o\n\x19[aB\xd1\x83j|\x0ecUnTi$\xce\x80\xe4\x82\xa2\xd3\xa8\x012)j4\x04^%\xd0\x81t`~>Bc\x02-z\x04'
521 should_pass $'`\x10\x04\x0b\xd8\x96^O\x7f~Z=\x05"\tqA.\xdc\x8f\x1b\x1eR\x1b7\x01YFh\r71\xd6\x99\x08tPl$1\x02\x11]L\x0c|"\xd7\xbfO'
522 should_pass $'E\xcf\xbfS~eREol9Br<!C\x08<\x03S\x08_r QT\x1452\x0e#~[\xce\xbeAgK\xca\x8c\x03c\xd6\xa7Hsg\x01^G'
523 should_pass $'J6Tq!Y\x10KVy]#89\x1a\x12.\xd5\xb1\\?\x1c\x0c\x17\x10~4\x07\x044@\xe9\xac\xa56Lo\xd2\x916\xdc\x89o1BI\x17\xdb\x8d$'
524 should_pass $'6F~\x03Tl/\xdf\x878\x14G]\x0fzY,Cs~\x1bm@-y\x7fUe"\x1a\x1e\x02\x1f4\xd6\xa1=2.es\xc2\xba$]oT[Y\x19'
525 should_pass $'M(\x1a`D^\xcf\x879:{N.i\x1emx1<UX"mH9+\x1a\x15H\x1aWiyCk\x16_\xd9\x9f+V\xdf\xba\\.g\x1c=nq'
526 should_pass $'\x19\x1b6\xd4\xb0r\x08\x06YA\xdd\xb6\rJtG\xd1\xb8{\x03X;.\x1dw+86\xc9\xb0\x04q|\xc4\xa5\xdd\x8e\xda\x8ca\xd7\xab\xc3\xa9\t*VM/m'
527 should_pass $'T\xca\xa6uO\x02)\xcd\x970KV\x0c\\P+F1V\x01\x7fL\x0e\xf2\x93\xb0\xaf\xdc\x9a3.\x7f\x16n?}Ah\r4#j\x01]C\x036\x02dj'
528 should_pass $'btjdfc\x1fX\x10\x18H/\x04%z\x07\xc6\x89\x06\x14\r\x1cOV?\x061&f\x1ekl\x1ew\x1ei+\x01@P)t\r\xc2\x9d\x04Di*\x17'
529 should_pass $'\x12>-kbYf4\x12\x1cc\x1ej>Da4\x13\xd8\xba\x06;g\x14\x1c\xc5\x91%\xd9\xb4-_{#H\x1aQ\xcc\xa4\x18\x03xocnm3CL\n'
530 should_pass $'ZHj("w\x0b\'R$fi\xe5\x91\xa5SE\r\x01\x1dNa`Rod>:"\x1b\xc8\x9c\x04&\xec\xbc\x94q?&\x12\xd9\x81\x0bS\x08 \xd0\x8a\x07'
531 should_pass $'T9FM\xdb\x9c\x1a\x07D>\x18\x02+k.mq5\x15F2i)d%,\x1dI\x0e{|\x08\x01,B\x02h\x15\xc4\x9a2\x14*\x0c\xd2\x9fwm&3'
532 should_pass $'tMmJ[\x05<$s\x04<(\x0fs\x1dD?%7;G\x0fY\xc2\x8f27e\x12\x10\x1d5t[R8hGO]\x19\xdd\xae[C0.a\xdd\xa6'
533 should_pass $'Q]!C\xef\x8b\xb5Y\r|O\x02=\xdb\x9f[\x0e\x1e(:_z\x108dk"\x12*A\x0cK\x02\xdc\xa8T\xc9\xa5[\x191]]%PUB!^('
534 should_pass $'wa9X\x0b-HY]#\x1br\xe2\xae\x9aq[]/Z!.#>\xe9\xb2\xafK\xc3\xa5V\x1c-4\x0bu(:-\x7f\xcb\x99M\x7fV\xcc\x89\xd7\x9f2'
535 should_pass $'$<=tS\x12\xe0\xae\x8d<ydST|\x08D\xd2\x8e\x1e35@I\r\xd7\xbcp~8(0\x01\x0e9@i@JA+\\zX\x026ENJ\x10'
536 should_pass $'M_1H\x1c`[\r\xd8\xa9]Uc[\x1cNNz\x1b}`f(\x15l\x10Y\xdf\x8bK\xd2\x97\xc9\xaaV\x03i\xe6\x91\x9a\r\xd4\x83fR|eXS\r'
537 should_pass $'j>\x07Zia\x18k\xcd\xba<\x0f0\tk\x11"~KE]~qI\nF\x0b\x7f\x14"\xcd\xa3_\x05v4(\x10\xdb\x84FPJ\x125]\x17^\xc6\x89'
538 should_pass $'\x0e\xd2\xb7L*2\x7f \xdc\xbc\xd9\xb4n,\x1d\xde\xac?\t \x1f,&HgBOPN@\\MU\x14s\xcf\x9cR\xdb\x85ec\x102`\n\\)\x1aN'
539 should_pass $'\xdf\xaa3oqh\xc5\xb3B\x04Sg\xeb\xa2\xadQ#K\x1f,$I2Wdl\x0b&\x0b)\x7f\x13O=4\x0b=vj/N*K5\xda\x8e\x1f(5h'
540 should_pass $'#t\xe9\xa5\xa7Ue\nDR\x10\xd1\xa3[,t:;E\x06~\x05re\x1d2T-&j`c1!&,(\x01\xcd\x9afM(g\x15"c0@L'
541 should_pass $'p4F(a2\x03&_\x127\x1f=ul\xda\xa1r S<(=\xc7\xb6\xe8\x9e\x80\x160^d$\x1ed>r|<YY\xec\x8a\x84"n5\x03_\x04'
542 should_pass $'\xf3\x85\xa4\xbex*\xcd\x94hz\x06I)\x1f!}.I{~\x1f6wPCn\x0c;w,<\x16\x0eQF\x16\xe1\xa1\x9fua94\xc6\xa3\xe7\x9b\xb2\xc3\xa5'
543 should_pass $'\xef\x90\x86\x01a<\xdb\x8e)\x1b\r\x04mUh-#dUs\x1d~\x7f_\x12\x15w\r\x01\n\x06j\x10\xde\x80k\xdc\x86oZ/2n03V\x03T_\x1e'
544 should_pass $'\xce\xbaE,\x0eFbwBnd\xe9\x87\xa8\xd4\xac\xd6\x82\xd8\x91}`\x1cH` b\t\x08W\tfcwQ6:\xcb\x8e7[\x0f!^\x06{\x0f9\r\x18'
545 should_pass $'\x10\x089r\xc6\x9e\xd4\x9bs=COV<\xca\xbb4o%>\x14\x1e&r\xc2\xa9\xd5\xba#\x1bM\x1bGP\xc2\xb3Gb<\x17\tB\rY*G/7\xd6\x80'
546 should_pass $'\x7f\x10FDn0<\x0c\xdd\x94/8FT(~#\xe5\x94\x9d,A\xea\xb3\x9d?S\x04s\x13{\xc4\x97k\xd7\x9e\xc4\x88D2c\xc6\x9aQ\x1f<j4\xcb\xa0'
547 should_pass $'Lk~K;F\t\xcb\x8a)|$[\x072\x15Xg\t\x07>>1R\x11\xcd\xbd\x10B_le:0[\x0e&:,x$M\xea\xbc\x85B).\x0b:'
548 should_pass $',\xee\xa3\x92r@g\n\t(&{\xc8\x87q\x04\x04TxA\x05\x04)7\x05+ux*\x0b\rJ`#\x01La\x17\x0f\x03y%U\x11\xd1\xa9\x049e9'
549 should_pass $'\x06\x01*F\x14D\xef\x93\xabI\x0f=C{?3j\x02\x15eUL\x0bA\x1b{d\xc5\xbeMn..0\x04\x15\x0fUh\x0e@{S\xc2\xad\x14\x02\x05R`'
550 should_pass $'c\x05\t*|iKr\x10jbH\xd1\x93g\x1ch.\x1c@nFzm\x18i\x11/dW\xd5\xbb3\xd7\x86>Awc|R\x02\x12^br\xee\x8d\xba\x1b'
551 should_pass $'U<C\x08\x0c4\xea\xbc\x83x`md\x031\x1a]\xe3\xb8\xb46\x0c#\x14h\x0fH\xed\x8b\xbc\x10E\xdb\xa4|e/I\t\x10M\x0cc\x08!h\x06(Z('
552 should_pass $'Gr\x19R\xda\x97 ^2%jL\x01"\x14\x12\xdc\x8c#L2,Fct:3WoM\xd3\xa6n|,/\x19x\xce\x9eZ\x0cQ~R\xc7\x93\x15?\x0e'
553 should_pass $'S"\x7f\xe3\x98\x88?^\xc4\x92%~\xd9\x9d\x128^\x18b\x07)GR.j)\x04B>}.\\w\x19O3\x0c:,\x11\'ked&S<\xc9\xb9+'
554 should_pass $'mV\xd6\xa7J\x03F*U@g\xe7\x9b\x8fq.U\x1e\x02\x11rN\x15\x15/\x03hgIS\x13\xc3\x98<\x0e\xeb\xb5\x96#U;\xdc\xba\t\x0c>\xc8\x81\x0bG'
555 should_pass $'=\x02md\x163<\x04FU&\x18AfR\xdf\xb0L`\x14\xde\x96o7N$3L" \xc4\xa7h\xcc\xa7Cx\x13M\t\xe3\xb6\x88+[h6:\x1c\x08'
556 should_pass $'\x1b?\x16\xe9\xa9\xb5GE\x18i%P}\xdb\xb9S\\^\x04KP\xe6\x89\xb1va;<%dq6\x0e\x15\xc7\x8cp\xd3\x90<\xe1\xaa\x92L49\xf2\xb8\x94\xbc'
557 should_pass $'\xd0\x991\xcc\xbb6?\x12s_5B\n\x0f\xcd\xafm\xd1\xa1@z\xce\x9a\x19\x0bt71p@\x0c\x13\x12]<\xd6\xab\xd1\xbb1}\x1cFyV\x0bv_R['
558 should_pass $'n_Y+\\\x19\xd6\xb4R\x0cs\xef\x97\x9aBX\x1c\x18BV8_\x165\x14$\x13\xd1\xb0:J\x19%M\rr\nl]>]K$\x0fQY?\x01c<'
559 should_pass $'>m\xd2\xa5cn\xc4\x84/,3\x13v\x088;wR\xdb\xbeX16R\x0b\xda\xa8ogdC\x1eyng\x1az\x03\x14\x0e!r<4p\xf1\xb6\x90\xbe@'
560 should_pass $'M67\x0cg\xd0\x89\x03#h\xce\xab0-aj\x08\xd5\x87k\x17g\x080#l~6\xd8\x89DH\xec\x91\xb8\xca\x96\xd9\x94S\x0b\xd0\xb93Q>(\xd1\x986'
561 should_pass $'~\x0fW\x1b\x05P,-i!`*Sns$\xc5\xbd^=\xc4\xb4(\n\x10|\xc7\x8f7h{fa:\x06x_H^is<\x053s0~\x12{H'
562 should_pass $'m\xd5\x91C\x18&\xcd\xa9"Q\x0cStG`\xc4\xa2\x1b\xd7\x9f_[\\c\xcf\x86jMij\x05JB\x01\x17IG\x12#\x10i\xef\xb6\xa4UT-=N`'
563 should_pass $'\x1buxi\xd3\xa2s\x02\xc2\x86e-ny?\x08+\x0bDwM\xce\x943)"\x10|\x11\n[fM1\x0b#}\x0e%3\'\x1d\x18yk\x12{\x0b\x7f6'
564 should_pass $'qdF+r\x0c\x1cv\x10T+o8<T\xcf\x82\x01\x04o|?ld!ZcJ8rz\x7fy\x1f\xcf\xbb6\x12X=\x1c\x0cc\x03 \xe2\xbb\x96WZ'
565 should_pass $'\xec\xb7\xbb?\x10\x0b~\x14*`\xca\xa9\xc2\x80zL\x07"\x0cZ\x12n\tVk\x1aHB\x03e\x1b\xdf\xb6z\xdc\x89L\x05i\x7f\'\xc3\xb5\x14\x17D/% h'
566 should_pass $'$4j\x02j{\xc4\xbe\nInxp\x1c\x7fv!5h\x07\x16]{\x03\x12\x15\x0bv5RghO\x06\x04\x14\nLUi\xd6\xab\xd8\x85V,\\ \x06\x03'
567 should_pass $'%\x0c,d\xdd\xa2\xe7\x87\xa4}{WG\xd3\x97\xe9\x81\xace*v9\x17\x06S\xce\xab"\t\x7f\x05{ |fS>\xca\x94f8\x7f\rr~O\xd9\x9c\x10_'
568 should_pass $'J2r0oo0:PB\r:/<\xee\x9c\x91\x1dC)\x19Z\xc8\x89sg\x08}=-;87\x1be\x0b,@>lT\x04+j9bp>t!'
569 should_pass $'jv\x02[dV\xc4\xb1Ocu]\xcd\x86~`9"%9#\xcb\x95\xda\xba}\x17%D\x0cBWUYB\x7f\x1eSeFJW*x\x0c+09t\x1e'
570 should_pass $'P5\n`-2;{\x1e\r}m-\x13\x0b\'\xcf\x82?,\x161\x04\x1a\x05>}6wm"\x10J5\xdb\x89\x0c\x1crBS?-939J\t\x02\x7f'
571 should_pass $'@~5\xe7\xbf\xb1|\xeb\xb0\xb8.\x04\x1e6q\x1b\xdd\x96]%\xc5\x86\x08\x1dvX"o+0%\x02N_vr1{pji\x06\x12\x1ai.e<|\x1d'
572 should_pass $'\x11t\xf2\xa4\xa3\x98\x03# ~C{PdCn\x17WgXz4\x07\xc8\xa9&{Sse\x0c\x0ce]{|\xc9\x8ckp3\xd7\xb4@c%\x19 \x18&'
573 should_pass $'q.\x05\x02\'\xdc\xbf~3Pc@\x0b\x1a\x14\x1d\x1by63\x06*AcA\x0cq\x1dTC\xd7\xac\xde\xac6sQ"\xde\x8d\rf6\xdd\x90\x1b\x05\x11\x05+'
574 should_pass $'u\xdd\x8aI\x7fd\x0cL{<Z\x12\x19\xc6\x8f\'\xf1\x93\x96\xa3`\x19Y2n\x12-$x"s:\x17\xd9\x89\x11\r)AnG(^R\xc4\x9d%G\x16z'
575 should_pass $';K"\xd4\xb0d\x16\x031j^\x1f<iWwC\xd1\x9c)FXL"k4-U5t\xde\x9e\x06\x1cX\x022LuEC\x1b\xd0\xab\xc6\x9cK|N\x0f'
576 should_pass $'\xe0\xa5\xb7\xd8\x83\x0b0\x0f\xcb\x9a\x07\\e,,\x17V7M\x1dqu\rK\xd7\x83\rIHd\xe3\xa8\x8ai0`]s\x06\x1bp+Mr\x03q\x06_H9'
577 should_pass $'W\x04}3z09=\x1a"{\xda\xab\x16\xde\xb6#4:\x1fF\xc3\x82\x02\x1a&\xdb\xb3H}\x03ref\xc5\x98!\x17tx"#5$\x12|[\xe2\xa7\x8c'
578 should_pass $'\xe7\x8c\xb4\xc3\x82\x07F6cks\xdf\x99&FC$9uO\ts"\x1d;b\x0bZh\x03b\n[`\\2$W*Q/-?O_[*-:c'
579 should_pass $'\xde\x8b\xc2\xa5"M\\V,#d\x08\x1c~=)KS4]\x17\xc3\xb7V7fB\t&3k;Hh*W\x18}P1\x02\x07+#h1\x17I!V'
580 should_pass $'\xcd\xa8 0\xe9\xb1\x9b\x17\x1a=\x0c\xda\xba4\xd9\x9f?z\x1e\x1csm\xc2\x81zlI0e\x1b\x073l&\x16\x03"\nj9cO~c5\x1b\x1f\t\x02\x1c'
581 should_pass $'\xdb\x81]\x0cS6INw\x04H5,lFN\x05\x1e\x1ddTU\x16w`\x06q-(Z6K!n%p\xc6\xa7K)2kT#RN\x03H5F'
582 should_pass $'V\r}6\xdc\x9f\xdb\xa1\xd8\x99I\x10\x0cP(\x02E\x15~cTf\x11\x1a_\x13\x1e%\x12_\xc2\xa9\x06XO\xe9\xa7\xac\x12"\x06%\x1dW\x06\x06\x02`\x01o'
583 should_pass $'ng)\x06\x1aJ3~`,m_Q\x0e8\x13\x1f4G%=\x03*\xc7\xb4\x1apCa{Q9}xkU+\x12fAp2dv\x0f\x14\x14j\x07:'
584 should_pass $'\x7f66\xd8\x85e3\\`"E.\x19MFW~\xdd\x97\x1bFu6X9\x0b\x15IE:\x11\xd7\x9fZ2X5\x01Drt\x11C$\xe8\xbb\xa0\x0b\xc7\xa7'
585 should_pass $'Y\r:i\x04-\xda\x8fo\r]&\x10\xd2\x9e\xdc\xac+D\x06Ahe[W]6\xd0\x8f\x12\xc7\xafVT\xce\x92\'FL"v\xd6\xba*H\tMY\x13;'
586 should_pass $'~]1,$.\x19\x18b\x1f8{\x1c\x1dD\xd0\xbdE92\xc4\xa7O\n\x1df-KL\x16z1t\x16\xda\xb5\x0e<JyV\xce\x96\xcc\x93\xd2\xb9\t%\x0f'
587 should_pass $'\xec\x96\x93\x16ld\xc5\xb4\x0b\x03RF\x13Qba8vb0\x18n$N\x11N\xd5\xbbJ<]^\xc7\x91G"\n\x03PW@\x167Ar~!2]='
588 should_pass $'\x04\xc9\x9ac\xdf\x97@8\x04^\x06j\x0ffLtk\xd1\xbb{xJNl\xd2\x9an1\x08\x04E\xc7\x85\xcb\x851.:\xc9\xa4D\xe7\x80\x81X>{mM+'
589 should_pass $'x i=o\x10\xd5\x84\x07>f+E!\xe4\xab\xaba\x12\x04\xc3\xbbE;1DxeK/\xd2\x8c.\x12\x142C,q$tu\xd1\x8a(\x1d|\x14&6'
590 should_pass $'uW!\xe0\xa2\xa6G>P%\x1b\x0c\xc5\x8cXM\x02\x07o`\xd0\x99!u\x1bv\x15i<Ef\xd5\xb3\x10\x1e= n.VsX%|,\xc5\x89{P.'
591 should_pass $'.^g%pQG\x0bH\x1845$@+fuY92(\xc5\x88NP3e\x15%Jmd\x1d2\x08;\x0f)\x03Tq@t/+wF,u\x02'
592 should_pass $'\x1fTO\x014M{NrU(K\x08vOy(\x18>\\\x1c)-C\x18\x1a<-y~Gx.CO>\xc3\xa5\\*SUwG#\xd7\xa7pme'
593 should_pass $'=r$\x0e~Weq\x13\x13dMH\x13SD5/\x02$7fl\x1a5|_H\xc4\xa4\x0fYq1ap7\x0f+]:\x131\x1ed:0\x0c\x0e-'
594 should_pass $'VV\x17\x08=4b\x15iC\x08Y_sG[\xdd\x950QH\xea\xad\x91b\\\x1cZfr\x1e\x141:1F/\x1eN7g{Nv\x0c\x17>a|\x15'
595 should_pass $'Td\x05A\x16A>f\r{\x04ni4BR2\xec\x8a\x9bA["\x16OgjC\x7f\r\na\\\x19\xc2\x8f\xdc\x9b\x018N!\xcd\x86y\xce\x84\x12T\x11'
596 should_pass $'\x16\x07\r\x1b\xca\x82 &sW\x13\x1fX"&IP\x1d&YLiES2\x19-[^]\x17H\x049%\xf3\x8b\xb7\xa0q?\xd2\xbaz.bj\xee\xb0\x83'
597 should_pass $'W@emy\xc2\xb8cM~\x7f9\x037<U\x07\x0e@tA\x06H\x130\xcb\xb9p,\x1fK\xe8\x98\xb7\xd4\x98\x17\xde\xbeo)\xcb\xa5\x1d\x15\xd9\xb9Z!$'
598 should_pass $'\x05\x0e*\x08>\xe3\x85\x97jq$8\x17\rv\xd3\xb9brI_/0C^[\x02\x05\'_Yf\x040:\xcd\x95R9*"u\xc7\x8aau(\x10|"'
599 should_pass $'oTj\x1b>\x13i\xd1\xb1\x03Ll\xca\xa3n\x105p\x13i\x15\ncv\\*\xef\x9c\x9e\x0b4Ob{\x10;h\xdb\xa7\x7f`0\x19na\x0e\xd4\xb5\xc8\x8d'
600 should_pass $'\xe2\xb5\xb8"0[\xd7\xa1Y\x06+\x7f\x7f\x1ew\xf2\xb3\xaf\x9c}2%\r\x7fZd\rZVq\x05e\x0e\\\x05\x02wiz^a]\xdc\x88V\xe7\xbf\x83]Y'
601 should_pass $'$ 43:\x02\xe7\xa3\x8a\x0e[?\x07\x1aH4\n-;V3\x1e\xde\xb37\xcd\xba\xd7\x91=sZ\xf3\x81\x92\x92:*l5\x7f\n\x14\x05\rPK p2'
602 should_pass $'GF<:h`g\xe2\xa1\x8aT\x0b!\x06;\xd8\x95\x0bhz\xcc\xbdlFx\x0fz\xe4\xaf\xaer{ybo=dI\xd5\x9f\x18|v\xc5\xa0Q\xea\x86\xa6]'
603 should_pass $'e\xc9\xa0Y4\x02\x05(\x1c6*\xcf\x843l|D\x05cuIHj\xdf\xb44;a\x06s2\x7fl\xdb\x8bot>\nGA[iFD\xde\x808\x1az'
604 should_pass $'\x03|E^\x19\xd1\x95\x17}CrF]\xce\x98!E0\xd5\xac\x03\x12F5_\x07G7bUJz\x18dQ\x1f?\xd0\xbex\t\x06H}I`kD\x1eA'
605 should_pass $'Q\x1a\x0f\xd7\x80\xd9\xa2%nB\x0fEmY\x1a\xd6\xa8\x05\x06T/Dv\xd4\x9a\x1b8\x1b5\x08\xdd\x8f\x02<\x06H\x104=L\xe6\xbb\xb9iT?Y\xd0\xb5>'
606 should_pass $' S\x0b\x0eq)\x18tyx\x0b}UV-\xcd\xb4\x1f\n\xf2\xbf\x97\xa4#Z\x1eM5Cq]\x18s5\t.\x07:j\xc5\xaf\x1dJK\xce\xaa\x0b\x18S'
607 should_pass $'\t)\x14s\xcf\xa1e\x08=xtiD\xe2\xac\x8d-(6s\nP".m\x05P(Sg\x1cA/AT\x15\x18~\x1f\x1f^M\x036e?7;*X'
608 should_pass $'\x05?>\x1cM":\x0f\xc9\xa8;3\x143:xe\x17(u[\x13;$!Pc}kj \x06#I\x03R\x13\x10\x1b"i\x10=r\xd0\x94ypO'
609
610 should_fail $'n\x84\xaf\xe7\xa3\xb3\x15<\x0c\x9a'
611 should_fail $'D\x05\x8eQ\x1b\nr\x92\xd0\xd7'
612 should_fail $'\xca\xff\x12\xdd\xa7(\x902\x0c\x19'
613 should_fail $'\xadcX\xef\x84\xbd\xdfb\x9en'
614 should_fail $'\x9f\x8b\xbcS\xc2\xe3O\x12i\xce'
615 should_fail $'K\x16;\x13\xe1\x9bA\xdd\xa5\x99'
616 should_fail $'>C\xfc\x9c\xcf\xb2k\x87\nU'
617 should_fail $'\xd0\x1e\x93_\x13g\x90\xaes6'
618 should_fail $'\x86\xbe\xb2\xf9\xeb5\xc7\xfeH*'
619 should_fail $'\x96E\x07\xa6*\xe9\xb6r\x11R'
620 should_fail $'\x08\xf3\xa1bg\xb5\xbe\xd0\x92K'
621 should_fail $'w\xb4\xc2\xcf\xec\xd90\xf4\x1c\x08'
622 should_fail $'\xda\xe8\xa4\x16\x8a\xccr\xb0\xc7\x9e'
623 should_fail $'\x03\xfa\xf5\xdbwI/\x9092'
624 should_fail $'\x9c\xf1\xcdkw\x1a\xc8\xc3*\xb8'
625 should_fail $'5\xbax\x8b\x1e\x85\x10\xc0\xf42'
626 should_fail $'i\xa2\xbazG\xc8l\xd1R\x17'
627 should_fail $'\x97\xc2x\x95\xd1H\x9c%\xca\x98'
628 should_fail $'\xa1\xea\x81^\xf3\xc3qE\xfc\xa1'
629 should_fail $'\xed>\xcc$\xf3\r\xd6\x14\x18\xa5'
630 should_fail $'\xb1%4H\x18.\x92\x80[\xa2'
631 should_fail $'\x05\x80\xa8r\xf3\xf0\xa0z:\xc1'
632 should_fail $'+\rGQ#x\x9d\xd3\xd8\x97'
633 should_fail $'N\x16[\xf7\xbc\x7f\xafn\xf5M'
634 should_fail $'\x19\x9a\xe4\x12\xc1\xd2Wq)w'
635 should_fail $'\x91\xaaP\xa3[\xe5C\xfbR\xf0'
636 should_fail $'\x1c*\x18|60\x8ec\xe4\xb9'
637 should_fail $'\xee\x88\xcd\xe2\xcc\x9a]\xecb\xb8'
638 should_fail $'zJF\xcfr"z?T\xd3'
639 should_fail $'t\xa5\x7f\xe4\xdaiU\x94\xd0z'
640 should_fail $'\xf3\xfeF\xe0\xe4\xf17\xe0\x1a\xd3'
641 should_fail $'\x9e\xb5k~\xefTB\xbep\xfd'
642 should_fail $'\xe17IY\xcd\x93\rl\xb9\xcf'
643 should_fail $'Z\x12,\x04\xbbq\xcfz_@'
644 should_fail $'O^p\xa7)P\x06f"\xea'
645 should_fail $'\xee\x7fW\xb6p\xf4\x80\r)\xee'
646 should_fail $'\x0b\xb4g\xda\x87\x91\x10\xacP\xe5'
647 should_fail $'\x9c\x161\xd1\xb3%\xf8_\t\x9f'
648 should_fail $'\x10&\xd1\x90\xd9m\x13\xcbA\xe5'
649 should_fail $'B\x05?\xba\x08\xc7\x10)\xc5\x10'
650 should_fail $'Dj\xa5\xf2X\xe8\xc2\xf4ij'
651 should_fail $'\xf04\xbf*%\t\x94\xe6\x85\x0c'
652 should_fail $'\xd5\x94\x9c\x17\xc6\x8aH[\xc8\xb5'
653 should_fail $'I\x80w\xf24sz&\x9f\x1f'
654 should_fail $'O\xc6\x06LS\xb5\xd8oEn'
655 should_fail $'\xae\xf06\xeaGi\x81\xceF2'
656 should_fail $'\xcb~\x8c\r\xf6t>\xce\xcd\xb8'
657 should_fail $'\xbd{\xa6\xe2\xaf&7hCe'
658 should_fail $'\x16f\xeb\xfe\xabP<t\xf1\xc7'
659 should_fail $'O\t4<6\xe7y\x12\xc62'
660 should_fail $'lW\xc7\x93\x06{@\x06u\x80'
661 should_fail $'\x04\xfa2\xf2\x87\xde\x91\xdb\xd4X'
662 should_fail $'\xbd\x99\x8c\xd3\xd5\xe6\xe6O\xd3\xe0'
663 should_fail $'\xf62b\xc7\x8dG\xb2q+\xda'
664 should_fail $'J\x8cs\x15\x06g\x0e;\x8c\xc9'
665 should_fail $'WjpZ.\t+\xd9\x0c\x11'
666 should_fail $'\xe2\x8e\x1a\xb9\xd7>\xebyXd'
667 should_fail $'\x1e\xeb\xcb\xefB\x15.y:!'
668 should_fail $'0\xdf\x8b\x02\xee\xa9\x0b\xccb\xe9'
669 should_fail $'B\xbe\x1d\x99\xf4O.\x87\x9b\xa6'
670 should_fail $'o$\xf3\x12\x7f\x01=\xd6\xdc\xd6'
671 should_fail $'r\xf2\x8c\xa7e\xfc\xe0=\xc0Z'
672 should_fail $'$O\x9a2\x1a\x08]\xcbV\x93'
673 should_fail $'H\x0e\xfb\xaf(\x98\x17v\xe7\xd6'
674 should_fail $'\xc2L4\x0eF\xed,x\x93p'
675 should_fail $'\x8e\xc8\xd3\x8baVq\xe3\rG'
676 should_fail $'\xc8]K\x17\xbfMg\xe0KW'
677 should_fail $'jm+\x9b3\xf7\x03\x0e\x82\xff'
678 should_fail $'g{\xa7L\x12]\x01\xd1j\x0f'
679 should_fail $'\xed\xa0\xaap\x0c$\xb3\xb8*\xb1'
680 should_fail $'\xb3\x8b\x95\xb6\x14\xc6\xc9Cy\xcd'
681 should_fail $'\x1f{|\x9a\xf3q\x08%u\xaf'
682 should_fail $'\x1a\\\xbc\xc2\x82^ Ml&'
683 should_fail $'\xe9\xf1r\xef\x83\xcd\xd6\x8ep\xc6'
684 should_fail $'s\xf6"G\x88M5\x9fo\xae'
685 should_fail $'g\xa5\xc2"q\xcc\xe1\x88\xc5\x9f'
686 should_fail $'\xa47\xf3#\x15+\xf6.\xd7\xef'
687 should_fail $'\xac\xd8\x06\xa2\xcd|\r\xca\x0f|'
688 should_fail $'sr\x8e9,:\xc8E\x80m'
689 should_fail $'\xb8\xd5\xc8\x1d\xcfkyP_$'
690 should_fail $'<:a\x94\xaf\x85A,\xcf\xfb'
691 should_fail $'\x1e\xa1\x0e\x18\xe4)\xd97\xd8\x90'
692 should_fail $'\x02\x1d \xd3C\x05\xf2.\xd8\x1f'
693 should_fail $'0\x90G\x98\x88\xee\xe8\x88\xf8\n'
694 should_fail $'\x19)n$\xf4\xb8Rr{\x11'
695 should_fail $'\xf9\x867\xff"\xc4\xc4\xceq\x9a'
696 should_fail $'es\xf0o\xdd\xf2\xf2$\xebr'
697 should_fail $'\xe6\x17\x08\xe6\x06\xa0q\x81\xb1\x81'
698 should_fail $'\xc8\x9e\xdf\xe0w_\x1bG\xceb'
699 should_fail $'M\x8d\xefx\xe2\xf3\x1f\x99,"'
700 should_fail $'x\x9e\xebp\xf1,I\xfc\x02\xf1'
701 should_fail $'\xf6\xd9_\xa6\x8bn\xbaZ|\xc0'
702 should_fail $'4E\xdb\x082\x95C\xb9\xc0^'
703 should_fail $'V\xa0\x04\xdf*K\x8dp\xe1\xbb'
704 should_fail $'\te\xe7v\x045uk\x1c\xf4'
705 should_fail $'?\xb5E\x03\xac\xcb\x8e|\xc6\xc1'
706 should_fail $'\xe7\x16\xd5\x0e\x8f\x83`j\x02\x9e'
707 should_fail $'\xa8\x13\xc8D\x03\xd4\x9e\x93l\xdd'
708 should_fail $'\xd2 \x82\x0c\x17\xff\xab\x8fy3'
709 should_fail $'\x199\x87\xc7\xd7Hy>5\xa6'
710 should_fail $'\xeb\x7ff\xb7\x07@\x12"R6'
711 should_fail $'\x7f\xc3H`\xec2,\xa7\xf2\xc6'
712 should_fail $'\xe6\x13\xf1\x98\x19jm\x8e\x8fE'
713 should_fail $'\xe3\xa9\xd6\xe9\xcf\xbbSEh\xed'
714 should_fail $'\xbbl?=\x11\xa8\x7fS\x97\xc7'
715 should_fail $'y\r\xc49\xb4\x1d9\xef\xff\x9b'
716 should_fail $'F\xca\x04\x91\xb81\\U\x8f '
717 should_fail $'\xe8\xba1g)\xe8~\xbcIF'
718 should_fail $'\xdf7\xbcPX\x1f\nj\xb7\xfb'
719 should_fail $'\xb6\x16\xb6\x8f\n\xeaC\xc0\n!'
720 should_fail $'\x98\x0b\xc0\x11\x03I,\x05\x81\xa6'
721 should_fail $'\xb3\xeb\xa9\xc8\xfc\xdf\xae\x18Z\xfb'
722 should_fail $'X\xf7a\xdcgQv+Z\xf1'
723 should_fail $'G\x83\xc0w\xb3&C\xbf\x8a\xea'
724 should_fail $'\x1d\x13\xd8Y\xd1\xacz[\xa04'
725 should_fail $'\x15\x1e6\x96\x9f\xca?\xd1\xb6\xd8'
726 should_fail $';\x0bT\xcf\xe4\xe8\xa2\x8e{\x9a'
727 should_fail $'\xb5\x9f\x1b\x13\r\xe3\xe4\xbfWd'
728 should_fail $'\x0b=z#>\xa9\x92\xc0\xe5\xc9'
729 should_fail $'\xce\xad\x7fz\x8f\xa3\xb4\xcc\xdeg'
730 should_fail $'V\x19CCSn\xce\x86\xdea'
731 should_fail $'\xe4#tG\xc74hOT\xe7'
732 should_fail $'09n\x19n\x1c\xb1C\xf8['
733 should_fail $'\xf0\x8c\xab\xb6+\xe8\xa9\x03\xb2S'
734 should_fail $'2\xcem\xe1\xad\xbf\xca\xdf\xe46'
735 should_fail $'\x8a\x81\xb5*\n:\xa2\x9d[\x9a'
736 should_fail $'\xb0\xd3\xf5YK\x8a\xbbaa '
737 should_fail $'\x05\xc5\x14\xbf\xf7@_\xea\xf8\xc5'
738 should_fail $'\x82NY\x87\xd66\x1f}=\xe0'
739 should_fail $'\x83\xb7\x99\x11\xc1\xc0T\xb2V\xf4'
740 should_fail $'\xb7\xb2\x16\xa4w\x93\xb3$x\x8b'
741 should_fail $'y\x0b\xd0R\xb1+\xc1ZA\xeb'
742 should_fail $'\xcaK\x17B\xc7\x15\xce\xd0Q\xff'
743 should_fail $'\xb8\x89\x14d\xd2V\xd3w4k'
744 should_fail $'\xa5O\x1e|\xe3Q\xbevR\xc7'
745 should_fail $'\x9fYZ"\xa3t\x81y\xb9\x1f'
746 should_fail $'_\xaf\xdf\x9d\xb3\x94\x13%\x01\xb8'
747 should_fail $'\xeb\xea1\xe8\xff\xe4\xc6n*\x92'
748 should_fail $'P\x19Qw\xcb\tx6\xe5\xdf'
749 should_fail $'\xf1\x80w\xad5Y\x07\xd4\x92\xbc'
750 should_fail $'\xfe\x8b\xa2d\x9c\xa9\xab\\\xc3\x97'
751 should_fail $'\x1a\xe2)\xf6A)\x8a\x9c\xde$'
752 should_fail $'RI1\x89A{g\xcb8\xdb'
753 should_fail $'\x0e\x9b\xdd\xd9vv\xb0~B\x02'
754 should_fail $'\x99\x89y\xb0\xdb\xa3\xe8\xb3[\x9c'
755 should_fail $'\xfa\x82\x86\x88P\xd7\x90\xac\xd1`'
756 should_fail $'\x0c\xb32v\x18mm\x1d\xc7\x90'
757 should_fail $'\x80\x14H\x0fN\x17X\xe2\x14_'
758 should_fail $';\xb5\x9c|\xd7p\xce:\xd7n'
759 should_fail $'\r\xe8\xaap\xad\xf0r\xb6\x0e\xad'
760 should_fail $'\xfc\xcc\x82\xb0\xd73T\xf0u\xa1'
761 should_fail $'!\x90\xd1j7Ob\x1c\x84H'
762 should_fail $'\xae\xd2*\xbc\xbc\x0cY\x9c\xe4+'
763 should_fail $'N\xc2\x83pH\xa2m\x8a<\x98'
764 should_fail $'\xf0~W2BSN\x81\x84\xc5'
765 should_fail $'\xe8\xdb\xdc6\xa62",M\xc4'
766 should_fail $'\xc7)\xf1`\x9c#/\x9d\x8e\x07'
767 should_fail $'\xbc\x0f\xcec\xf5\x99\xd7\xf3\xd5\xc9'
768 should_fail $'\xd1\xe5\x83\x84o-\xbfa\xda2'
769 should_fail $'\xcd\xa2"x\xcdK[\xc2\x95\xa9'
770 should_fail $'\xb3-\t\x13\xdc\xf3\xfb\x1b3\xb4'
771 should_fail $'\xc4\xd4\xe5\x07Jr\xd2#\xe1\xe9'
772 should_fail $'p\x7f\x7fK3\x82`{a\xd9'
773 should_fail $'e\x0b\xfe!\xf0\xff\x06h\xbb\x80'
774 should_fail $'\xec\xfdUt\x8a\x02\xea\xca\xa1\x0c'
775 should_fail $'\xb5\xe0\x01\xd2i\xa5\xe5d\x9bM'
776 should_fail $'D\x0f\xa8\x90\xda\x1d\xa6\xe5\xd9\x9b'
777 should_fail $'\xdc`\x9bG7\xf3\xc2\xeaf\xb3'
778 should_fail $'\x1c\xbd\xc5e\x92\xef$\xb9\x01\x05'
779 should_fail $'(\x8f\x05!b9\nK\xc6\x90'
780 should_fail $'\xf5x\xff\x9e\xb9\xbdN ^\x8a'
781 should_fail $'\xd6\xc5=j\x99\x85b#\xd6\x02'
782 should_fail $'\xd7\xec\rm\xc9 \xbd\x9cp\x91'
783 should_fail $'+m\xf3\x07D\xd8\x01\xf5\xad\xa8'
784 should_fail $'\x9ak\xa4\x9c~\x065E\x1b\xdf'
785 should_fail $'p\x14\xc6\xd3gW\x14\x17\xc4\xbe'
786 should_fail $'\xf0x\x8b\xdel\x98\xdbg\xe3\x95'
787 should_fail $'\xa0\x0b0#\x98\xb2\xebZ\x9eC'
788 should_fail $'\x04M\x85\x96GFO)\xab\xa3'
789 should_fail $'{\xea\xdc\xaaj\xf6\xda\xb8\xae\xad'
790 should_fail $'X\x1c\x15H\xff\xfc\xf9s\xd7a'
791 should_fail $'\xc9\x9e\xbc\xfe\xb3K})\x14K'
792 should_fail $'\x90\x15\x8cMR7\xeb-+\x11'
793 should_fail $'\xeb\x8dq\x8ek3v<C\xce'
794 should_fail $'T\xb48\x8a\x01\xd7\xfe$\xe0\x8d'
795 should_fail $'9\xa6\xe2\x90\x81\x85\x83\x8aA\xa6'
796 should_fail $'\xa0>T\xd4q\xd8\xf5D\x12\x9f'
797 should_fail $'\x88\xd1\xb2\xbd\x08d\xf7\x03\x94\xd9'
798 should_fail $'\xda\x19\xf5\xd8\x80AN\xf0\xfb\xd2'
799 should_fail $'\xe0\xd5\x18\x99h`U+\xd7f'
800 should_fail $'\x15^G\xb39\x0cK\x9b\xb8y'
801 should_fail $'\xce\xf7\x87\x86\\\n>\xbeJe'
802 should_fail $'\xf0\xd0j\xdd\xaf\x1a&y&z'
803 should_fail $'\xd5: M\x01\xd9\xbf\x12Qm'
804 should_fail $'j]\x86\x80\xe2\xf4+\xa5O\xa8'
805 should_fail $'[\xb18\xafx+\xbck\x8e\x8d'
806 should_fail $'\xd4R\xe4\xccF\xdep\x13>\x0f'
807 should_fail $'\xbd\x07\x1d\x96%\n\xc8p\xfew'
808 should_fail $'\xb8?\xd3q\x8c\xd3Y5G\xf0'
809 should_fail $'D\x9f\xff\x8b\xc9f\x8aHn\x81'
810 should_fail $' \xb0\xcfr\xb6\x89\xa3\xbd\xed%'
811 should_fail $'A\xf1\xcc\x06\x08i]\xb5hJ'
812 should_fail $'\x11\xb7\xb2\x10\xf8\xac\xbe\xe6O?'
813 should_fail $'s\xd9HA\xd0\xf6N\x8c\xa9\x11'
814 should_fail $'\x972\xc0\xa9,fM\x19\x82\x97'
815 should_fail $'\xd0\xcb\xe0*\x19\x10\x08\xb7\x02-'
816 should_fail $'\xb4\xc9\xdc\xdd$\xaao\x89(c'
817 should_fail $'\x10\xca\x96\x9eN\x07<\xc74r'
818 should_fail $'2\x8e\x17d\x06\xf6\x044\xf6\\'
819 should_fail $'\xa0Z\xf9)\xa3\xcan\x9f\x1c\xf4'
820 should_fail $'f\xc8DLWd\xfe\x1a\xbd\x81'
821 should_fail $'\x93\x0f8z\xa4\x0f\x86\xcd\xff;'
822 should_fail $'\xee\x8b8`\xceS\xf6\x10\xb4\xd8'
823 should_fail $'[DEB\xde\x9c\xc1\xb3R\xf1'
824 should_fail $'<\x10p\x89\xaaR\x1cW,j'
825 should_fail $']\x06\xe0\x81\xd1\tk\xcf\x18\xd9'
826 should_fail $'\xcd\x1a\xca\xe0,8\xfa\x9d\xb0S'
827 should_fail $'N\x82\xc2\x96|B\xec\xa6\xe4\xbe'
828 should_fail $'\x96\x0c\x17\xc8\xd5\x1b+\xf7Zx'
829 should_fail $'\x8f2G;\xaa\x10_F\xccc'
830 should_fail $'\x92\x8d\x06\xbca\x0e\xd9TY\xa1'
831 should_fail $'\x9ar0\x95^>\xc9\x98}P'
832 should_fail $'\x03jE\xea\xe8\x1e\xe8\xad+c'
833 should_fail $'\xc4\xfa\xf3\xe4\x97|\xff)\x04\x0b'
834 should_fail $'\x94`}+,\x02Z\x94-\x19'
835 should_fail $'\xca\x0e\xc2(T\x17\x15\xab%\x95'
836 should_fail $'&\xfc/D\xe0\\\xd0\xd7\xcf\xed'
837 should_fail $'\x1eL\xd3\xde\x9a{\x02hy\xf0'
838 should_fail $'v\xd6\xc8=Q\n\x07(\xf8E'
839 should_fail $'\xf3\xca\xc1\xc5\xe9\x1a%im\xed'
840 should_fail $';\xf8N\xc0U#\x84C`;'
841 should_fail $')\xa9X\x8c\x82\x07Y`4\xbd'
842 should_fail $'O\xba\xfb\x1f\xddc\x8e\xe7\x8f6'
843 should_fail $'\xa1\xd2\r8\xaf\xec\xb9\x03\xc4*'
844 should_fail $'x\xc8nR\x0c\xb0qT\xd2l'
845 should_fail $'/\xcc\xffb\x98o}\x07\xfb%'
846 should_fail $'\x15\x158w+\xa4\xd7\x0c6@'
847 should_fail $'\x90\x8b\xf8\xc1\xb4\xb7\xc4\xdb=\x13'
848 should_fail $'\xdb\x8a\xb3a\xd7.\xc4\xff\xdaA'
849 should_fail $'l\xec\x11\x8b,>\xf4\xf2\xb8]'
850 should_fail $'\x1a\x92CW\xad\xda\xed\xcb$\xaa'
851 should_fail $'2\xf6\xb8\xba\xc8\xde\x0e\xf0\x8f\xa1'
852 should_fail $'\x9f/\xf3\x1d\xd8Q\x10\xcbg\x07'
853 should_fail $'\xbe\x97\x9az\xd7\r\x14U\x8f\x86'
854 should_fail $'\xa9\xb1\x19\xe1h\x0f\xfc\xaa\xa9u'
855 should_fail $'\xb5s{:\xc22\xab\x81\xa4\xc8'
856 should_fail $'d\x85=\xcd+\x8b\xb8/\xae '
857 should_fail $'\xcd\x96\x08)<D;B\xc1\x9a'
858 should_fail $'8\xb4,G\xa6\xba\x13\xce/M'
859 should_fail $'r?Z\xab"\xc9\xd0\x0fE2'
860 should_fail $'A\x84@\x82d\t\x02\x9fv\xac'
861 should_fail $'\x88l\xd2!$\x17c\xacTn'
862 should_fail $'\x8f\xbf\t\xdf\x87\xd9\xa6\xe8\xedk'
863 should_fail $'\xbda\xbd\xf8\xbc\xa1\xa6\xba\xd0q'
864 should_fail $'(\xc6R\x17\xd29M\xf2\xa7p'
865 should_fail $'\xb8i\x1c\x98^\x9d\x9c\x865\xb9'
866 should_fail $'\x9e{\xfc\x8a\xd7\xb5\x8e:\x80\x07'
867 should_fail $'e\x1d\xfd\x89\xad\x1e\x9b\xc6L\xb2'
868 should_fail $'\\v.\xa6{d\x93\xd4\x8b\x0f'
869 should_fail $'\x88%j\xe9\xea\x04\x85\xc2\xb4\xd6'
870 should_fail $'\x9f\xaef\xdc*\xad\xd2\x7fO\xf8'
871 should_fail $'En\xc1\xfe\xe7a\xcd\xf8\xd2g'
872 should_fail $'Mv"\xc8\xba\x9a\x01\xc4\xc1K'
873 should_fail $'\x10\x87x{\xc28\r\x82@\xd0'
874 should_fail $'\xac\xaa\x8e\xa4l\x8d#\x80~S'
875 should_fail $'\xe9\x81+m\t\xd5\x12\x03\x91\x94'
876 should_fail $'P`\xa5\xb4\x08H7;\xf6\xd1'
877 should_fail $'4\x04\xd8F\xf97*\x05^\x1b'
878 should_fail $'\x9d\xbb\xaf\x91S\xf7mDZ\x8d'
879 should_fail $'\xbe\x91\xcc\xc3\xabP<\xf0\xa3\xe9'
880 should_fail $'\x98\xc5\xaf\xee\xfb\xba\x8b\x9f\x9b\x05'
881 should_fail $'<\xa1z`\x0e\x02\xf9\xa0\xb8q'
882 should_fail $'io\xbe\xab"iUm\xb3X'
883 should_fail $'\xaa$\xe1\x17\xec\xfa\xfe\xbb\xadr'
884 should_fail $'\r\xc2\xef\x99\xe66u\xe5\xfc\xf5'
885 should_fail $'\xac\x8a\xf0\x8f\x17R\xa3i?;'
886 should_fail $'8\x93\xea\x08RMw\xd2\x8f\x19'
887 should_fail $'v\xa0!\xef\xc3\xc4\xf4\xef^\xb4'
888 should_fail $'\xa3\x033\rz\xdc\x17\xad\x12k'
889 should_fail $'\r\x020\xdc\x9d;\x9d\xee\xfe_'
890 should_fail $'\xc5C\x1d\x16\xe2\xf1\xd0\xfbX\xab'
891 should_fail $'u\x82\x1a\x86xk\xc5\xa77,'
892 should_fail $'\x88\xe6e\xdd(\x94\xb41!\x02'
893 should_fail $'\xc3\x11\xb8\t\x14\x96!7\x13&'
894 should_fail $'\xe5\xe2\xd1N0\x9d2Xf\xcb'
895 should_fail $'2Y\xef\xfb\xf76\x95\x92e\xcf'
896 should_fail $'\xb8\x18\x8b\xe0E\xbe\xaeM^:'
897 should_fail $'"4\xde\x0c \xc1z\x91\xe6\xc0'
898 should_fail $'\x17\x81O\xd9\x06\xb6\xcc\x8c\xa9\xba'
899 should_fail $'\x7f\xf8&\xd3\xad\x0e\xf6\xbf\xc9\xfd'
900 should_fail $'L\x9e\xae\xf6<\xe5\xffW\x90U'
901 should_fail $'/\xb6\x94\xf5\xeaW\x9eKWb'
902 should_fail $'wA]\x0b(\xd6\x19\xa9a%'
903 should_fail $'j/\xa7\x1c\x1d)2!\xaad'
904 should_fail $'\xa5\xa9\x86\x04\xacb\x92\xda<='
905 should_fail $'\x0f-\x88Q\x8e\x8c\xc2\x1d\x18\r'
906 should_fail $'H\x03\x03\xb1j\xb7\x9c\xf2\xcd\xf4'
907 should_fail $'\xb5\x8bO(\xd8\x04\xfaV\r\xf0'
908 should_fail $'\x0c\x14\xd9Ez\xe4@\xd0?\xb9'
909 should_fail $'T\xdc\\\xffH\x94\xfcZ\x16\xb3'
910 should_fail $'s\xfb\xd5\xdf-\xfc\xb2y(J'
911 should_fail $'\xd8\xb5\xee\xf1\x04\x85\x10\xb7\xe0\xee'
912 should_fail $'\xb7\xc5\xcaq9\x94$y\x15\xd2'
913 should_fail $'\x97\xc8X\x85\xf41_\xe7:K'
914 should_fail $'%K]C\x17\xe6\xa1KD&'
915 should_fail $'Y\xaa\\dMn\xc3\x95\xab\xbd'
916 should_fail $'\xacX\xa6\x94>]\xa5\x1f\xceK'
917 should_fail $'\xe6XhSR;\xe45OV'
918 should_fail $'g\xcc{\xd2\xb10gZ\xd4$'
919 should_fail $'\xf3\xe8\xac\xe5\x12Z\xfdd\xe7\xe2'
920 should_fail $'E\x10\xef(,\x0b\x02C9\x8a'
921 should_fail $'i\xd6\xf3\xb6\xe9\xca\x12\xcf\x87\x86'
922 should_fail $'Ikx@h\xe4\x90\xec\tC'
923 should_fail $'\xda\xf1\xf7\xd3\xf0\r\x85/\\)'
924 should_fail $'\x9cz\x90\xbcI\x9c\xc0\xaa\x96\xc4'
925 should_fail $'m\xe0\x95j9,U\x05\t\xe8'
926 should_fail $'3\xbc\xff\x91@\x11\x0e\xd9u\x19'
927 should_fail $'\x9a\xbeg\xd8\x8b\xeeY\xb0\xf2\x8f'
928 should_fail $'\xa7\x01t\x99;\x0euL\xa9\x88'
929 should_fail $'\x86\x04{&nL\xb4\x86\x1e\x1f'
930 should_fail $'\x12\x8f\xd3l\xdc\xcc@\x95\xdb.'
931 should_fail $'$)\xb6C\x0e\xf6}\xb0F>'
932 should_fail $'i\xbf\x9a1\xbb\xd54\xff\xfc\x90'
933 should_fail $'D\x16\x10\x05\xdc\xbe\xda?\xe1\xbe'
934 should_fail $'`\xa2\xbe\x1eP\x1a6\xb4\xc0<'
935 should_fail $'}\xbbC\x0c\xc1j\x84$&\xe7'
936 should_fail $'D\xf0*\x8aZ&\x89\x81y\xbe'
937 should_fail $'kK=&\x1c$\xa3\xa6\x05\xe7'
938 should_fail $'\xd7dR\x18\xbbc\x1c@:\x86'
939 should_fail $'\xa2gb\xeaK,q\xd4\xf2\n'
940 should_fail $'b\xbe\xbcCiT\xc4\x11Jp'
941 should_fail $'P\xfem\x18\xce(\xf4\xa2\xf6\xbe'
942 should_fail $'\xda\xd1\x86\xd0?wM\xaa9\\'
943 should_fail $'\xbc#[&\xb2\x81\xe3\xa3\xa6\xd0'
944 should_fail $'\x91\x17\xbf\xc2\x83\xe5i\x15\x07_'
945 should_fail $'Qz8\xb7\t\x87\xed0\x14\xd6'
946 should_fail $'\x90\xd7\x01&y\xb3\x88\xf9\x07\x96'
947 should_fail $'\x99\xa4T\xb3\xe7\xe0Bw\xe9\x18'
948 should_fail $'\x8d\xb6\x83\xedw:dtM\x14'
949 should_fail $'\xb7\x91M\x94\x8d\xdc\x85Z\xf0\xae'
950 should_fail $'9\xa0\xa8$\xce:W\xd5<\xc2'
951 should_fail $',O\xc5\xd8\xfe\t\xcb\xdc\x1e5'
952 should_fail $'\xc7\xd56:\xf7`h\xa1\x95#'
953 should_fail $'\x1c\xcdfP\xcc>\x98*\xf8H'
954 should_fail $'\xfc\x0f\xdb\xc5Ag\n%O\xab'
955 should_fail $'\xb0t>\xfc3M\xf7\x05 c'
956 should_fail $'\xc5\x7f\x99P\xb0\xa4\xa9@O\xca'
957 should_fail $'`T\xc5qB@\x88\x83\xc8\xd4'
958 should_fail $'\xb1\xd0\xa3I0r\xfa3\x0e\xed'
959 should_fail $'\x184\xfd\xb5"\xc4\x14\xbb{/'
960 should_fail $'\x8a\x7fsv\x97\xc3\xd2&`\x1f'
961 should_fail $'\x8a\xf2\xdb\xd3r\xe1&gg*'
962 should_fail $'nR\xcbJM\x18#6L\xfa'
963 should_fail $'\x96G\x0b\x83\xf2\xfaU7\x18\xf5'
964 should_fail $'\xfc\x80|]\xfd3\x86\xc9\x1aQ'
965 should_fail $'\xd1>\xe3@\xb7\x14\xa9\x87P~'
966 should_fail $'\xc6\xa5V\x02:2sD\x0f\xa2'
967 should_fail $'7(\xd6?\xe9\xe4y#\x9f\xbd'
968 should_fail $'=\xf5\x11\xa1(\xba!\xa3\xbb\xa5'
969 should_fail $'\n/\x9a\xff1\x9f\xe2\xed\xc5\xe9'
970 should_fail $'\x19L-\xa8\xe3;P^\xbf\xab'
971 should_fail $'3\x9d\xfb\x0eqM,-\xfaP'
972 should_fail $'\x14m\xee+9F\x99\xb3\xe7\xcd'
973 should_fail $'T\r\xe2\xf6i4\x1a\xadiG'
974 should_fail $'\x14\x84\xa5q\xd4\x94&\x86\x9e\x04'
975 should_fail $'\xc9b\xa1\x84i)\xfdd\xa3\x99'
976 should_fail $'\x1a&\xfc\x81\x1a<\x87\x14\x84\xb5'
977 should_fail $'\\/t\xb3\xcd\x8f,=0u'
978 should_fail $'\xf8\xe0Z\x12\xba\xa9\x99\xd2kK'
979 should_fail $'0\xab~TDg\xe50\x9d5'
980 should_fail $'\xcb\x82\x11\xaf;\xa6i?[('
981 should_fail $'\xed$\xda\x15h|/\x13\x8e\n'
982 should_fail $'\\+\x11I\xa3u\xbbA\xb7*'
983 should_fail $'\xa1\x87q\xfe\xb7\xf0%\x80\x8d4'
984 should_fail $'7\x83\xa3H2p\xbf\xc2\x0b\x9b'
985 should_fail $'\x10\xf1|\xcda\xf9\xa2NFB'
986 should_fail $'\x01\x9b?\xe7\x1aQ\xf8\xae\xf4\x08'
987 should_fail $'\xd8\xe9\xfb\x91X;kL\xd8T'
988 should_fail $'\xc7\x99\\\xc51\x86\xd4&\xb8\x81'
989 should_fail $'g\xfa\x12\x886\x8e\xdb\x08\xe3\xbe'
990 should_fail $'\xfa\x96\x95\x918\x87\xaeqGv'
991 should_fail $'\xba\x9a\xe3\xdd\xeceD\xbf\xdd\xec'
992 should_fail $'p\\\x83\xfd\xba\t\xb6o\x02\x90'
993 should_fail $'\x0c)\xe4\x94\x96q\x17\xf6\xafX'
994 should_fail $'\xc7w\xb4,\x01\xc7\xe5\xc0\xbb\xa7'
995 should_fail $'\x06\x17T=\xd5\x91\xa3c\xcb\x8b'
996 should_fail $'\x03\xa1m\x14\x863\xd4\xcb\x88\xe7'
997 should_fail $'\x924\xb7,P\x8b\xa6\xbc\xaa\xf4'
998 should_fail $'\xc1\xec\xf5\xf1<\xb5\x15\x0f&\x94'
999 should_fail $'3\xb6\x7f:\x11\x12Gz\x06o'
1000 should_fail $'\xbe[\xe8u\x17\xa5\xd0\x0b\x7fN'
1001 should_fail $'\x0e\x06\x02n\x1d\xd9\xad!\xa8\x1c'
1002 should_fail $'q.:\xd9SpB\xa7\x0e\xbd'
1003 should_fail $'\xcfK\xbe\xad\x05|\x01d\xf0\xde'
1004 should_fail $'D\xba\xffq\x83uM\x05!B'
1005 should_fail $'\xbd~-+\x85\x12\xe8a\x9a6'
1006 should_fail $'"G\xb5\xda\xd65T\xb8\xe0\xeb'
1007 should_fail $'@\xc4\xce\xfa\x8b\x01\rO\x8c\xe8'
1008 should_fail $'}$\x81D"\x86\xcdt\xf8\x89'
1009 should_fail $'X\x0f\xe4\x05Sl\xad\xf5P\x1e'
1010 should_fail $'\x1a\xb8Qa(\x95\x85#\xb7\xf5'
1011 should_fail $'Fq"\xc4\xfaQ\r\x03\x1d\x05'
1012 should_fail $'\x1b\x15\xe4nF{\xedm}\x9e'
1013 should_fail $'E\x1co\x03\x8b\xfa\x86\x0fA?'
1014 should_fail $'\x1c\xa4Kn\xc2D\xd0X\x12\x90'
1015 should_fail $'}\xc3A=\x87\xa8&\xcf*\xa8'
1016 should_fail $'\xf5F/\t\xe6\xf8\xcbT\x91\xe8'
1017 should_fail $'2\xd5\x8fV\x19\xa2$rC+'
1018 should_fail $'\x96\x8c\x88\xa0Nv\x95\xac\xe3\xb7'
1019 should_fail $'{.\xffG%3\x9dpuV'
1020 should_fail $'\x85f\x9bj\xec\xa1o\n]\x99'
1021 should_fail $'A\xf8S\x8dk\xc6\xe3\x84\xa3j'
1022 should_fail $'&\xe0\x10,*\x97\xeb\x1dW\xb1'
1023 should_fail $'Z\xa6\x05Q\xf5\xc0\xf1\xa5GF'
1024 should_fail $'\xd1{t\xab\x81\xcd\x8b\x9c\xf1\xef'
1025 should_fail $',\x80\xb4\xa29`Z\xf7U\xc7'
1026 should_fail $'X\xa9~\xa2B\x1e\xe3\x1b~ '
1027 should_fail $'\xce.a7\xe1\x04\xf7\xb7\xe2\xef'
1028 should_fail $'U\xc8\x8eTr\x86\x01\x9e\r\x82'
1029 should_fail $'\x0b\x9f\xda\xe6\x1d\xb2\xdbh\xb2\xbb'
1030 should_fail $'\x18\xb4\xe1H\xbd\xd8+9\xe6\x95'
1031 should_fail $'dV\xc0\xbene\xbc\xca\xb7\xc1'
1032 should_fail $'f\xd8H\xcd=\xc9&Fb\x1c'
1033 should_fail $'\xfc\xe9\xf8\xe3\xd6\xd9\xb2h\xdb\xb4'
1034 should_fail $'\xe1``\x03\x1dt\x8c\x04\x8e\x90'
1035 should_fail $'\xbd\xd1P}+\x1d\xb5<cQ'
1036 should_fail $'\xc2E?\xb83\xe7\xc4/\x04='
1037 should_fail $'\x9f0\xdf-\x1b\xaa\x8b\xbe\xf2\\'
1038 should_fail $'\x9eI\xd06\xa8\x02\xe8\x8a\xf0\\'
1039 should_fail $'\n\x97<\xb1\xcf\x9b\x87\x04\xc57'
1040 should_fail $'o\xd6\xaf\xa4S\xf4,\xe4\xa5$'
1041 should_fail $';X\xd9\xa9\x85\xf1W\xc9\x8b\xd6'
1042 should_fail $'O?\xaf\x95\x07\x10"UY\xf0'
1043 should_fail $'CASq\x87\x12\xa2\xf4!C'
1044 should_fail $'zR}\x10g\x92\x10\xd0\x91D'
1045 should_fail $'\xfb8Vwvg\x80P\xdf\xc7'
1046 should_fail $'+\x1dR\xebr\x10\x82 M\xaa'
1047 should_fail $'U\x91\xd2\x86\xecV\x82@2\xe7'
1048 should_fail $'2\xb7\xf3mpY\xf9H\xe0\xef'
1049 should_fail $'\xfckA_\xb5D\xf8S+\x05'
1050 should_fail $'\x92\xdc\x80\xa8\x14*\x05\x19\xfd\xdb'
1051 should_fail $'\xa4\x86P\xbdd\xc2a\xe0V\xec'
1052 should_fail $'({(\xabf;\xa2\x12\xcb\x03'
1053 should_fail $'\xf7\t\xb9\xaa$w\x82.\xe0\xc9'
1054 should_fail $'.>Z\xa8H\xab\xcb\xecy#'
1055 should_fail $'\xec\xec\x95?\x1d\x18mE\x06\x95'
1056 should_fail $'\xd24mI\xe4!D\xcfX\xff'
1057 should_fail $'qRi\xe5y\xfe\x01\xdfU\xf5'
1058 should_fail $'\xa2h\xd2\xc8\x81\xe5R_\x97\xb0'
1059 should_fail $'\xf4\x1b\x85<\x81e\xf6m\xc8g'
1060 should_fail $'4\x90\xb8J\x98\n\xe0\xe5\xa56'
1061 should_fail $'AO\xee\xd6\x0f\xb4\xb1=\xc9\x92'
1062 should_fail $'\xec\x06)a\x15.\xb99,\x14'
1063 should_fail $'SG\xc5f\xeb\xb8\xe1O\xe5\r'
1064 should_fail $'\xfb\xf5\xf4\x88f\x9e\x8d\x08\x19\xea'
1065 should_fail $'\xb1(\xd75\x02\x1a\xa3\xcc_\x94'
1066 should_fail $'\x90\xfbrI-5\x87\xc1\xed\x02'
1067 should_fail $'\xcc\x04\x8b,\x15\xec"\xa2\xc1\x9d'
1068 should_fail $'\x97\xefO\x8f\x16[qV\x192'
1069 should_fail $'B\x17\xf6\xf7\x95\xf6\x1b\xe6\x9ah'
1070 should_fail $'2\x14\x96\xf5+`\xa1\xce\xa4\x10'
1071 should_fail $'.E\xcd\xday\r\n\xd8,\\'
1072 should_fail $'\x12eb\x8eQ\xebhtI\xf1'
1073 should_fail $'R\xf2\x97\x8e\xe6\xa4\xe3\xb2\xb0l'
1074 should_fail $'\xaa\x8f\xd6\xf8uvO7\xa2\x9d'
1075 should_fail $'\xfc\xcb\xe9\xda\x1eI\xd5#\x97l'
1076 should_fail $'\xd9i\x9c\rx\xf7\xb6\xe1\x11\xb2'
1077 should_fail $'\x82\x8d#o?A\x19\xdf\xa3\xf3'
1078 should_fail $'\xf9\xb1,\x15\x89\x1dy\xb6\xd9\x89'
1079 should_fail $'\x07L\x08\x0b\xcb\x02\xb9(0q'
1080 should_fail $'\xe1\xa2W\xa1 \x82\xdc\xdc.\xb7'
1081 should_fail $'\xbc\x97\xa6=\x84\xd8\xf1\xe8\xd5k'
1082 should_fail $'\xde\x1e\xfa\xb7,\x1d\xbb\xb4\xb7\xf8'
1083 should_fail $'uS\x83jL\xb1\x08c\xdb\xa3'
1084 should_fail $'\xb6\x85Y\xb8\xf8w\xaaK\xe4@'
1085 should_fail $'\xa6]\x10f\xae^\x91\x1a\x85+'
1086 should_fail $'c\xb7\xc4d\xd5\x98\xfb\x17KQ'
1087 should_fail $'\xa7\x89J=\xe0\xe5S\x8bGK'
1088 should_fail $'#\xbf3\xc2\xf2\x08N\x17\x9b\xbc'
1089 should_fail $'\xfbY\xcd\x01\x97PJ{N\xfa'
1090 should_fail $'Qa\x80\xf9\x93\xea\xba\xb6\x86\x93'
1091 should_fail $'\x08\x8b$\x8c\xcbhk\xfcY\xbd'
1092 should_fail $'\xf6\xdc\x1e\xd4\x9a\xc7\xa7\xbc\x81;'
1093 should_fail $'\xd3\x86\xe8\xe8\xb6\n\xe1\xa2\x18\x1c'
1094 should_fail $'\x97As\xe7\xdex\xba\x7f\xf8\x08'
1095 should_fail $' \xb6qk\xa0\xdc\xbd\x12u\x16'
1096 should_fail $'\x0f\x1eu\x06\xf8S\xab\xadk_'
1097 should_fail $'\xc7\xd2\xc4C\x80Um\x0e\xc2\x0c'
1098 should_fail $'m,\x13a\xf8\x01d\x9f\xa3\x9e'
1099 should_fail $'c\xeeD\x93\x1e\x95k\xbbD]'
1100 should_fail $'!\x9f\x8bw\xdb\xef\xa5\x9d\x94('
1101 should_fail $'=\x94\xf0\xad\xc6%\x93]v\n'
1102 should_fail $'~\x89h\xb6o\x1e\xb82\x13\xe5'
1103 should_fail $'a\xb6\x18J\xe5\x9a\xf4\x80\xc0G'
1104 should_fail $'0\x90K\x01A\xc0C\x98\xa1S'
1105 should_fail $'\xcd\xd1F\x12\x1f\xcb\xe0\x854\xfe'
1106 should_fail $'M\x8dKt\x15\xfb!\xa9!j'
1107 should_fail $'k\x0b\x8a\xda:k\x84\xf8\xff\xf8'
1108 should_fail $'J\x10\xd8\x1aq\xed\x96\r\xd2\xfe'
1109 should_fail $'v\xef\x8f\x8d\xd1\x87:l\xb8E'
1110
1111 printf "\nAll tests are OK.\n"
File isutf8.c deleted (index 9711124..0000000)
1 /*
2 * isutf8.c - do the input files look like valid utf-8 byte streams?
3 *
4 * Copyright (C) 2005 Lars Wirzenius
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #include <assert.h>
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <errno.h>
25 #include <string.h>
26 #include <getopt.h>
27
28
29 #define VERSION "1.1"
30
31
32 /*
33 * Code to indicate an invalid UTF8 character.
34 */
35 enum { INVALID_CHAR = 0xffffffff };
36
37
38 /*
39 * Produce shortest UTF8 encoding of a 31-bit value in 'u', returning it
40 * in the array 'buf'. Return the number of bytes in the encoded value.
41 * If the value is too large (more than 32 bits or would take more than
42 * 'maxbytes' bytes), return -1.
43 */
44 static int encodeutf8(unsigned long u, unsigned char *buf, size_t maxbytes)
45 {
46 static const struct {
47 int nbytes;
48 unsigned long max;
49 } tab[] = {
50 { 1, 0x0000007F },
51 { 2, 0x000007FF },
52 { 3, 0x0000FFFF },
53 { 4, 0x001FFFFF },
54 { 5, 0x03FFFFFF },
55 { 6, 0x7FFFFFFF },
56 };
57 static const int ntab = sizeof(tab) / sizeof(tab[0]);
58 int i, j;
59
60 if (u > tab[ntab-1].max)
61 return -1;
62
63 for (i = 0; i < ntab; ++i) {
64 if (u <= tab[i].max)
65 break;
66 }
67 assert(i < ntab);
68
69 if (tab[i].nbytes > maxbytes)
70 return -1;
71
72 if (tab[i].nbytes == 1) { /* Special case */
73 buf[0] = u;
74 } else {
75 for (j = tab[i].nbytes-1; j > 0; --j) {
76 buf[j] = 0x80 | (u & 0x3f);
77 u >>= 6;
78 }
79
80 unsigned char mask = ~(0xFF >> tab[i].nbytes);
81 buf[0] = mask | u;
82 }
83
84 return tab[i].nbytes;
85 }
86
87
88 /*
89 * Return number of ones at the top of a byte.
90 *
91 * I'm pretty sure there is a fancy trick to do this without a loop,
92 * but I'm too tired to figure it out now. --liw
93 */
94 static int high_ones(int c) {
95 int n;
96
97 for (n = 0; (c & 0x80) == 0x80; c <<= 1)
98 ++n;
99 return n;
100 }
101
102
103 /*
104 * Decode a UTF8 character from an array of bytes. Return character code.
105 * Upon error, return INVALID_CHAR.
106 */
107 static unsigned long decodeutf8(unsigned char *buf, int nbytes)
108 {
109 unsigned long u;
110 int i, j;
111
112 if (nbytes <= 0)
113 return INVALID_CHAR;
114
115 if (nbytes == 1) {
116 if (buf[0] >= 0x80)
117 return INVALID_CHAR;
118 return buf[0];
119 }
120
121 i = high_ones(buf[0]);
122 if (i != nbytes)
123 return INVALID_CHAR;
124 u = buf[0] & (0xff >> i);
125 for (j = 1; j < nbytes; ++j) {
126 if ((buf[j] & 0xC0) != 0x80)
127 return INVALID_CHAR;
128 u = (u << 6) | (buf[j] & 0x3f);
129 }
130
131 /* Conforming UTF-8 cannot contain codes 0xd800–0xdfff (UTF-16
132 surrogates) as well as 0xfffe and 0xffff. */
133 if (u >= 0xD800 && u <= 0xDFFF)
134 return INVALID_CHAR;
135 if (u == 0xFFFE || u == 0xFFFF)
136 return INVALID_CHAR;
137
138 return u;
139 }
140
141
142 /*
143 * Determine if the contents of an open file form a valid UTF8 byte stream.
144 * Do this by collecting bytes for a character into a buffer and then
145 * decode the bytes and re-encode them and compare that they are identical
146 * to the original bytes. If any step fails, return 0 for error. If EOF
147 * is reached, return 1 for OK.
148 */
149 static int is_utf8_byte_stream(FILE *file, char *filename, int quiet) {
150 enum { MAX_UTF8_BYTES = 6 };
151 unsigned char buf[MAX_UTF8_BYTES];
152 unsigned char buf2[MAX_UTF8_BYTES];
153 int nbytes, nbytes2;
154 int c;
155 unsigned long code;
156 unsigned long line, col, byteoff;
157
158 nbytes = 0;
159 line = 1;
160 col = 1;
161 byteoff = 0;
162
163 for (;;) {
164 c = getc(file);
165
166 if (c == EOF || c < 0x80 || (c & 0xC0) != 0x80) {
167 /* New char starts, deal with previous one. */
168 if (nbytes > 0) {
169 code = decodeutf8(buf, nbytes);
170 if (code == INVALID_CHAR)
171 goto error;
172 nbytes2 = encodeutf8(code, buf2,
173 MAX_UTF8_BYTES);
174 if (nbytes != nbytes2 ||
175 memcmp(buf, buf2, nbytes) != 0)
176 goto error;
177 ++col;
178 }
179 nbytes = 0;
180 /* If it's UTF8, start collecting again. */
181 if (c != EOF && c >= 0x80)
182 buf[nbytes++] = c;
183 } else {
184 /* This is a continuation byte, append to buffer. */
185 if (nbytes == MAX_UTF8_BYTES)
186 goto error;
187 buf[nbytes++] = c;
188 }
189
190 if (c == EOF)
191 break;
192 else if (c == '\n') {
193 ++line;
194 byteoff = 0;
195 col = 1;
196 } else
197 ++byteoff;
198 }
199
200 if (nbytes != 0)
201 goto error;
202
203 return 1;
204
205 error:
206 if (!quiet) {
207 printf("%s: line %lu, char %lu, byte offset %lu: "
208 "invalid UTF-8 code\n", filename, line, col, byteoff);
209 }
210 return 0;
211 }
212
213
214 static void usage(const char *program_name) {
215 printf("Usage: %s [-hq] [--help] [--quiet] [file ...]\n",
216 program_name);
217 printf("Check whether input files are valid UTF-8.\n");
218 printf("This is version %s.\n", VERSION);
219 }
220
221
222 int main(int argc, char **argv) {
223 int i, ok;
224 FILE *file;
225
226 int quiet;
227 struct option options[] = {
228 { "help", no_argument, NULL, 'h' },
229 { "quiet", no_argument, &quiet, 1 },
230 { 0, 0, 0, 0 }
231 };
232 int opt;
233
234 quiet = 0;
235
236 while ((opt = getopt_long(argc, argv, "hq", options, NULL)) != -1) {
237 switch (opt) {
238 case 0:
239 break;
240
241 case 'h':
242 usage(argv[0]);
243 exit(0);
244 break;
245
246 case 'q':
247 quiet = 1;
248 break;
249
250 case '?':
251 exit(EXIT_FAILURE);
252
253 default:
254 abort();
255 }
256 }
257
258 if (optind == argc)
259 ok = is_utf8_byte_stream(stdin, "stdin", quiet);
260 else {
261 ok = 1;
262 for (i = optind; i < argc; ++i) {
263 file = fopen(argv[i], "r");
264 if (file == NULL) {
265 fprintf(stderr, "isutf8: %s: error %d: %s\n",
266 argv[i], errno,
267 strerror(errno));
268 ok = 0;
269 } else {
270 if (! is_utf8_byte_stream(file, argv[i], quiet))
271 ok = 0;
272 (void) fclose(file);
273 }
274 }
275 }
276
277 if (ok)
278 exit(0);
279 exit(EXIT_FAILURE);
280 }
File isutf8.docbook changed (mode: 100644) (index f0d0dbe..f4631b2)
... ... with this program; if not, write to the Free Software Foundation, Inc.,
26 26
27 27 <refentry> <refentry>
28 28 <refentryinfo> <refentryinfo>
29 <address>
30 <email>liw@iki.fi</email>
31 </address>
32 <author>
33 <firstname>Lars</firstname>
34 <surname>Wirzenius</surname>
35 </author>
36 <date>2006-02-19</date>
29 <authorgroup>
30 <author>
31 <firstname>Lars</firstname>
32 <surname>Wirzenius</surname>
33 <email>liw@iki.fi</email>
34 </author>
35 <author>
36 <firstname>Julien</firstname>
37 <surname>Palard</surname>
38 <email>julien@palard.fr</email>
39 </author>
40 </authorgroup>
37 41 </refentryinfo> </refentryinfo>
38 42
39 43 <refmeta> <refmeta>
 
... ... with this program; if not, write to the Free Software Foundation, Inc.,
51 55 <refsynopsisdiv> <refsynopsisdiv>
52 56 <cmdsynopsis> <cmdsynopsis>
53 57 <command>isutf8</command> <command>isutf8</command>
54 <arg><option>-hq</option></arg>
58 <arg><option>-hqliv</option></arg>
55 59 <arg><option>--help</option></arg> <arg><option>--help</option></arg>
56 60 <arg><option>--quiet</option></arg> <arg><option>--quiet</option></arg>
61 <arg><option>--list</option></arg>
62 <arg><option>--invert</option></arg>
63 <arg><option>--verbose</option></arg>
57 64 <group choice="opt"> <group choice="opt">
58 65 <arg rep="repeat"><replaceable>file</replaceable></arg> <arg rep="repeat"><replaceable>file</replaceable></arg>
59 66 </group> </group>
 
... ... with this program; if not, write to the Free Software Foundation, Inc.,
92 99 status.</para> status.</para>
93 100 </listitem> </listitem>
94 101 </varlistentry> </varlistentry>
95
102
103 <varlistentry>
104 <term><option>-l</option></term>
105 <term><option>--list</option></term>
106 <listitem>
107 <para>Print only the names of files containing invalid
108 UTF-8.</para>
109 </listitem>
110 </varlistentry>
111
112 <varlistentry>
113 <term><option>-i</option></term>
114 <term><option>--invert</option></term>
115 <listitem>
116 <para>Invert the selection: list UTF-8 compatible
117 files.</para>
118 </listitem>
119 </varlistentry>
120
121 <varlistentry>
122 <term><option>-v</option></term>
123 <term><option>--verbose</option></term>
124 <listitem>
125 <para>Also print an hexdump-like view of the error and some
126 context.</para>
127 </listitem>
128 </varlistentry>
129
96 130 </variablelist> </variablelist>
97 131
98 132 </refsect1> </refsect1>
 
... ... with this program; if not, write to the Free Software Foundation, Inc.,
110 144 <title>AUTHOR</title> <title>AUTHOR</title>
111 145
112 146 <para> <para>
113 Lars Wirzenius
147 Lars Wirzenius, Julien Palard
114 148 </para> </para>
115 149 </refsect1> </refsect1>
116 150
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/nicolas/debian.moreutils

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/nicolas/debian.moreutils

Clone this repository using git:
git clone git://git.rocketgit.com/user/nicolas/debian.moreutils

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main