diff options
author | Mark Wielaard <mark@klomp.org> | 2019-07-21 17:09:25 +0200 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2019-07-21 17:09:25 +0200 |
commit | 8d9410ce881e43ec8ea82ec7a3b0541c0ffbc3dd (patch) | |
tree | 68699c2fc3392afef7f54b51ea705f58ea0189e4 /bzip2.1 | |
parent | 6a8690fc8d26c815e798c588f796eabe9d684cf0 (diff) | |
download | bzip2-8d9410ce881e43ec8ea82ec7a3b0541c0ffbc3dd.tar.gz bzip2-8d9410ce881e43ec8ea82ec7a3b0541c0ffbc3dd.tar.bz2 bzip2-8d9410ce881e43ec8ea82ec7a3b0541c0ffbc3dd.zip |
bzip2.1: remove blank spaces in man page and drop the .PU macro.
Author: Bjarni Ingi Gislason
Bug-Debian: https://bugs.debian.org/675380
Diffstat (limited to 'bzip2.1')
-rw-r--r-- | bzip2.1 | 138 |
1 files changed, 68 insertions, 70 deletions
@@ -1,4 +1,3 @@ | |||
1 | .PU | ||
2 | .TH bzip2 1 | 1 | .TH bzip2 1 |
3 | .SH NAME | 2 | .SH NAME |
4 | bzip2, bunzip2 \- a block-sorting file compressor, v1.0.8 | 3 | bzip2, bunzip2 \- a block-sorting file compressor, v1.0.8 |
@@ -18,13 +17,13 @@ bzip2recover \- recovers data from damaged bzip2 files | |||
18 | .br | 17 | .br |
19 | .B bunzip2 | 18 | .B bunzip2 |
20 | .RB [ " \-fkvsVL " ] | 19 | .RB [ " \-fkvsVL " ] |
21 | [ | 20 | [ |
22 | .I "filenames \&..." | 21 | .I "filenames \&..." |
23 | ] | 22 | ] |
24 | .br | 23 | .br |
25 | .B bzcat | 24 | .B bzcat |
26 | .RB [ " \-s " ] | 25 | .RB [ " \-s " ] |
27 | [ | 26 | [ |
28 | .I "filenames \&..." | 27 | .I "filenames \&..." |
29 | ] | 28 | ] |
30 | .br | 29 | .br |
@@ -39,15 +38,15 @@ generally considerably better than that achieved by more conventional | |||
39 | LZ77/LZ78-based compressors, and approaches the performance of the PPM | 38 | LZ77/LZ78-based compressors, and approaches the performance of the PPM |
40 | family of statistical compressors. | 39 | family of statistical compressors. |
41 | 40 | ||
42 | The command-line options are deliberately very similar to | 41 | The command-line options are deliberately very similar to |
43 | those of | 42 | those of |
44 | .I GNU gzip, | 43 | .I GNU gzip, |
45 | but they are not identical. | 44 | but they are not identical. |
46 | 45 | ||
47 | .I bzip2 | 46 | .I bzip2 |
48 | expects a list of file names to accompany the | 47 | expects a list of file names to accompany the |
49 | command-line flags. Each file is replaced by a compressed version of | 48 | command-line flags. Each file is replaced by a compressed version of |
50 | itself, with the name "original_name.bz2". | 49 | itself, with the name "original_name.bz2". |
51 | Each compressed file | 50 | Each compressed file |
52 | has the same modification date, permissions, and, when possible, | 51 | has the same modification date, permissions, and, when possible, |
53 | ownership as the corresponding original, so that these properties can | 52 | ownership as the corresponding original, so that these properties can |
@@ -74,13 +73,13 @@ incomprehensible and therefore pointless. | |||
74 | 73 | ||
75 | .I bunzip2 | 74 | .I bunzip2 |
76 | (or | 75 | (or |
77 | .I bzip2 \-d) | 76 | .I bzip2 \-d) |
78 | decompresses all | 77 | decompresses all |
79 | specified files. Files which were not created by | 78 | specified files. Files which were not created by |
80 | .I bzip2 | 79 | .I bzip2 |
81 | will be detected and ignored, and a warning issued. | 80 | will be detected and ignored, and a warning issued. |
82 | .I bzip2 | 81 | .I bzip2 |
83 | attempts to guess the filename for the decompressed file | 82 | attempts to guess the filename for the decompressed file |
84 | from that of the compressed file as follows: | 83 | from that of the compressed file as follows: |
85 | 84 | ||
86 | filename.bz2 becomes filename | 85 | filename.bz2 becomes filename |
@@ -89,13 +88,13 @@ from that of the compressed file as follows: | |||
89 | filename.tbz becomes filename.tar | 88 | filename.tbz becomes filename.tar |
90 | anyothername becomes anyothername.out | 89 | anyothername becomes anyothername.out |
91 | 90 | ||
92 | If the file does not end in one of the recognised endings, | 91 | If the file does not end in one of the recognised endings, |
93 | .I .bz2, | 92 | .I .bz2, |
94 | .I .bz, | 93 | .I .bz, |
95 | .I .tbz2 | 94 | .I .tbz2 |
96 | or | 95 | or |
97 | .I .tbz, | 96 | .I .tbz, |
98 | .I bzip2 | 97 | .I bzip2 |
99 | complains that it cannot | 98 | complains that it cannot |
100 | guess the name of the original file, and uses the original name | 99 | guess the name of the original file, and uses the original name |
101 | with | 100 | with |
@@ -103,25 +102,25 @@ with | |||
103 | appended. | 102 | appended. |
104 | 103 | ||
105 | As with compression, supplying no | 104 | As with compression, supplying no |
106 | filenames causes decompression from | 105 | filenames causes decompression from |
107 | standard input to standard output. | 106 | standard input to standard output. |
108 | 107 | ||
109 | .I bunzip2 | 108 | .I bunzip2 |
110 | will correctly decompress a file which is the | 109 | will correctly decompress a file which is the |
111 | concatenation of two or more compressed files. The result is the | 110 | concatenation of two or more compressed files. The result is the |
112 | concatenation of the corresponding uncompressed files. Integrity | 111 | concatenation of the corresponding uncompressed files. Integrity |
113 | testing (\-t) | 112 | testing (\-t) |
114 | of concatenated | 113 | of concatenated |
115 | compressed files is also supported. | 114 | compressed files is also supported. |
116 | 115 | ||
117 | You can also compress or decompress files to the standard output by | 116 | You can also compress or decompress files to the standard output by |
118 | giving the \-c flag. Multiple files may be compressed and | 117 | giving the \-c flag. Multiple files may be compressed and |
119 | decompressed like this. The resulting outputs are fed sequentially to | 118 | decompressed like this. The resulting outputs are fed sequentially to |
120 | stdout. Compression of multiple files | 119 | stdout. Compression of multiple files |
121 | in this manner generates a stream | 120 | in this manner generates a stream |
122 | containing multiple compressed file representations. Such a stream | 121 | containing multiple compressed file representations. Such a stream |
123 | can be decompressed correctly only by | 122 | can be decompressed correctly only by |
124 | .I bzip2 | 123 | .I bzip2 |
125 | version 0.9.0 or | 124 | version 0.9.0 or |
126 | later. Earlier versions of | 125 | later. Earlier versions of |
127 | .I bzip2 | 126 | .I bzip2 |
@@ -130,7 +129,7 @@ the first file in the stream. | |||
130 | 129 | ||
131 | .I bzcat | 130 | .I bzcat |
132 | (or | 131 | (or |
133 | .I bzip2 -dc) | 132 | .I bzip2 -dc) |
134 | decompresses all specified files to | 133 | decompresses all specified files to |
135 | the standard output. | 134 | the standard output. |
136 | 135 | ||
@@ -140,10 +139,10 @@ will read arguments from the environment variables | |||
140 | and | 139 | and |
141 | .I BZIP, | 140 | .I BZIP, |
142 | in that order, and will process them | 141 | in that order, and will process them |
143 | before any arguments read from the command line. This gives a | 142 | before any arguments read from the command line. This gives a |
144 | convenient way to supply default arguments. | 143 | convenient way to supply default arguments. |
145 | 144 | ||
146 | Compression is always performed, even if the compressed | 145 | Compression is always performed, even if the compressed |
147 | file is slightly | 146 | file is slightly |
148 | larger than the original. Files of less than about one hundred bytes | 147 | larger than the original. Files of less than about one hundred bytes |
149 | tend to get larger, since the compression mechanism has a constant | 148 | tend to get larger, since the compression mechanism has a constant |
@@ -151,9 +150,8 @@ overhead in the region of 50 bytes. Random data (including the output | |||
151 | of most file compressors) is coded at about 8.05 bits per byte, giving | 150 | of most file compressors) is coded at about 8.05 bits per byte, giving |
152 | an expansion of around 0.5%. | 151 | an expansion of around 0.5%. |
153 | 152 | ||
154 | As a self-check for your protection, | 153 | As a self-check for your protection, |
155 | .I | 154 | .I bzip2 |
156 | bzip2 | ||
157 | uses 32-bit CRCs to | 155 | uses 32-bit CRCs to |
158 | make sure that the decompressed version of a file is identical to the | 156 | make sure that the decompressed version of a file is identical to the |
159 | original. This guards against corruption of the compressed data, and | 157 | original. This guards against corruption of the compressed data, and |
@@ -163,9 +161,9 @@ against undetected bugs in | |||
163 | chances of data corruption going undetected is microscopic, about one | 161 | chances of data corruption going undetected is microscopic, about one |
164 | chance in four billion for each file processed. Be aware, though, that | 162 | chance in four billion for each file processed. Be aware, though, that |
165 | the check occurs upon decompression, so it can only tell you that | 163 | the check occurs upon decompression, so it can only tell you that |
166 | something is wrong. It can't help you | 164 | something is wrong. It can't help you |
167 | recover the original uncompressed | 165 | recover the original uncompressed |
168 | data. You can use | 166 | data. You can use |
169 | .I bzip2recover | 167 | .I bzip2recover |
170 | to try to recover data from | 168 | to try to recover data from |
171 | damaged files. | 169 | damaged files. |
@@ -183,15 +181,15 @@ to panic. | |||
183 | Compress or decompress to standard output. | 181 | Compress or decompress to standard output. |
184 | .TP | 182 | .TP |
185 | .B \-d --decompress | 183 | .B \-d --decompress |
186 | Force decompression. | 184 | Force decompression. |
187 | .I bzip2, | 185 | .I bzip2, |
188 | .I bunzip2 | 186 | .I bunzip2 |
189 | and | 187 | and |
190 | .I bzcat | 188 | .I bzcat |
191 | are | 189 | are |
192 | really the same program, and the decision about what actions to take is | 190 | really the same program, and the decision about what actions to take is |
193 | done on the basis of which name is used. This flag overrides that | 191 | done on the basis of which name is used. This flag overrides that |
194 | mechanism, and forces | 192 | mechanism, and forces |
195 | .I bzip2 | 193 | .I bzip2 |
196 | to decompress. | 194 | to decompress. |
197 | .TP | 195 | .TP |
@@ -205,10 +203,10 @@ This really performs a trial decompression and throws away the result. | |||
205 | .TP | 203 | .TP |
206 | .B \-f --force | 204 | .B \-f --force |
207 | Force overwrite of output files. Normally, | 205 | Force overwrite of output files. Normally, |
208 | .I bzip2 | 206 | .I bzip2 |
209 | will not overwrite | 207 | will not overwrite |
210 | existing output files. Also forces | 208 | existing output files. Also forces |
211 | .I bzip2 | 209 | .I bzip2 |
212 | to break hard links | 210 | to break hard links |
213 | to files, which it otherwise wouldn't do. | 211 | to files, which it otherwise wouldn't do. |
214 | 212 | ||
@@ -224,9 +222,9 @@ or decompression. | |||
224 | Reduce memory usage, for compression, decompression and testing. Files | 222 | Reduce memory usage, for compression, decompression and testing. Files |
225 | are decompressed and tested using a modified algorithm which only | 223 | are decompressed and tested using a modified algorithm which only |
226 | requires 2.5 bytes per block byte. This means any file can be | 224 | requires 2.5 bytes per block byte. This means any file can be |
227 | decompressed in 2300k of memory, albeit at about half the normal speed. | 225 | decompressed in 2300\ k of memory, albeit at about half the normal speed. |
228 | 226 | ||
229 | During compression, \-s selects a block size of 200k, which limits | 227 | During compression, \-s selects a block size of 200\ k, which limits |
230 | memory use to around the same figure, at the expense of your compression | 228 | memory use to around the same figure, at the expense of your compression |
231 | ratio. In short, if your machine is low on memory (8 megabytes or | 229 | ratio. In short, if your machine is low on memory (8 megabytes or |
232 | less), use \-s for everything. See MEMORY MANAGEMENT below. | 230 | less), use \-s for everything. See MEMORY MANAGEMENT below. |
@@ -244,11 +242,11 @@ information which is primarily of interest for diagnostic purposes. | |||
244 | Display the software version, license terms and conditions. | 242 | Display the software version, license terms and conditions. |
245 | .TP | 243 | .TP |
246 | .B \-1 (or \-\-fast) to \-9 (or \-\-best) | 244 | .B \-1 (or \-\-fast) to \-9 (or \-\-best) |
247 | Set the block size to 100 k, 200 k .. 900 k when compressing. Has no | 245 | Set the block size to 100 k, 200 k ... 900 k when compressing. Has no |
248 | effect when decompressing. See MEMORY MANAGEMENT below. | 246 | effect when decompressing. See MEMORY MANAGEMENT below. |
249 | The \-\-fast and \-\-best aliases are primarily for GNU gzip | 247 | The \-\-fast and \-\-best aliases are primarily for GNU gzip |
250 | compatibility. In particular, \-\-fast doesn't make things | 248 | compatibility. In particular, \-\-fast doesn't make things |
251 | significantly faster. | 249 | significantly faster. |
252 | And \-\-best merely selects the default behaviour. | 250 | And \-\-best merely selects the default behaviour. |
253 | .TP | 251 | .TP |
254 | .B \-- | 252 | .B \-- |
@@ -263,7 +261,7 @@ earlier versions, which was sometimes useful. 0.9.5 and above have an | |||
263 | improved algorithm which renders these flags irrelevant. | 261 | improved algorithm which renders these flags irrelevant. |
264 | 262 | ||
265 | .SH MEMORY MANAGEMENT | 263 | .SH MEMORY MANAGEMENT |
266 | .I bzip2 | 264 | .I bzip2 |
267 | compresses large files in blocks. The block size affects | 265 | compresses large files in blocks. The block size affects |
268 | both the compression ratio achieved, and the amount of memory needed for | 266 | both the compression ratio achieved, and the amount of memory needed for |
269 | compression and decompression. The flags \-1 through \-9 | 267 | compression and decompression. The flags \-1 through \-9 |
@@ -276,13 +274,13 @@ the file. Since block sizes are stored in compressed files, it follows | |||
276 | that the flags \-1 to \-9 are irrelevant to and so ignored | 274 | that the flags \-1 to \-9 are irrelevant to and so ignored |
277 | during decompression. | 275 | during decompression. |
278 | 276 | ||
279 | Compression and decompression requirements, | 277 | Compression and decompression requirements, |
280 | in bytes, can be estimated as: | 278 | in bytes, can be estimated as: |
281 | 279 | ||
282 | Compression: 400k + ( 8 x block size ) | 280 | Compression: 400\ k + ( 8 x block size ) |
283 | 281 | ||
284 | Decompression: 100k + ( 4 x block size ), or | 282 | Decompression: 100\ k + ( 4 x block size ), or |
285 | 100k + ( 2.5 x block size ) | 283 | 100\ k + ( 2.5 x block size ) |
286 | 284 | ||
287 | Larger block sizes give rapidly diminishing marginal returns. Most of | 285 | Larger block sizes give rapidly diminishing marginal returns. Most of |
288 | the compression comes from the first two or three hundred k of block | 286 | the compression comes from the first two or three hundred k of block |
@@ -292,10 +290,10 @@ on small machines. | |||
292 | It is also important to appreciate that the decompression memory | 290 | It is also important to appreciate that the decompression memory |
293 | requirement is set at compression time by the choice of block size. | 291 | requirement is set at compression time by the choice of block size. |
294 | 292 | ||
295 | For files compressed with the default 900k block size, | 293 | For files compressed with the default 900\ k block size, |
296 | .I bunzip2 | 294 | .I bunzip2 |
297 | will require about 3700 kbytes to decompress. To support decompression | 295 | will require about 3700 kbytes to decompress. To support decompression |
298 | of any file on a 4 megabyte machine, | 296 | of any file on a 4 megabyte machine, |
299 | .I bunzip2 | 297 | .I bunzip2 |
300 | has an option to | 298 | has an option to |
301 | decompress using approximately half this amount of memory, about 2300 | 299 | decompress using approximately half this amount of memory, about 2300 |
@@ -311,9 +309,9 @@ Another significant point applies to files which fit in a single block | |||
311 | amount of real memory touched is proportional to the size of the file, | 309 | amount of real memory touched is proportional to the size of the file, |
312 | since the file is smaller than a block. For example, compressing a file | 310 | since the file is smaller than a block. For example, compressing a file |
313 | 20,000 bytes long with the flag -9 will cause the compressor to | 311 | 20,000 bytes long with the flag -9 will cause the compressor to |
314 | allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560 | 312 | allocate around 7600\ k of memory, but only touch 400\ k + 20000 * 8 = 560 |
315 | kbytes of it. Similarly, the decompressor will allocate 3700k but only | 313 | kbytes of it. Similarly, the decompressor will allocate 3700\ k but only |
316 | touch 100k + 20000 * 4 = 180 kbytes. | 314 | touch 100\ k + 20000 * 4 = 180 kbytes. |
317 | 315 | ||
318 | Here is a table which summarises the maximum memory usage for different | 316 | Here is a table which summarises the maximum memory usage for different |
319 | block sizes. Also recorded is the total compressed size for 14 files of | 317 | block sizes. Also recorded is the total compressed size for 14 files of |
@@ -337,7 +335,7 @@ larger files, since the Corpus is dominated by smaller files. | |||
337 | 335 | ||
338 | .SH RECOVERING DATA FROM DAMAGED FILES | 336 | .SH RECOVERING DATA FROM DAMAGED FILES |
339 | .I bzip2 | 337 | .I bzip2 |
340 | compresses files in blocks, usually 900kbytes long. Each | 338 | compresses files in blocks, usually 900\ kbytes long. Each |
341 | block is handled independently. If a media or transmission error causes | 339 | block is handled independently. If a media or transmission error causes |
342 | a multi-block .bz2 | 340 | a multi-block .bz2 |
343 | file to become damaged, it may be possible to | 341 | file to become damaged, it may be possible to |
@@ -350,36 +348,36 @@ damaged blocks can be distinguished from undamaged ones. | |||
350 | 348 | ||
351 | .I bzip2recover | 349 | .I bzip2recover |
352 | is a simple program whose purpose is to search for | 350 | is a simple program whose purpose is to search for |
353 | blocks in .bz2 files, and write each block out into its own .bz2 | 351 | blocks in .bz2 files, and write each block out into its own .bz2 |
354 | file. You can then use | 352 | file. You can then use |
355 | .I bzip2 | 353 | .I bzip2 |
356 | \-t | 354 | \-t |
357 | to test the | 355 | to test the |
358 | integrity of the resulting files, and decompress those which are | 356 | integrity of the resulting files, and decompress those which are |
359 | undamaged. | 357 | undamaged. |
360 | 358 | ||
361 | .I bzip2recover | 359 | .I bzip2recover |
362 | takes a single argument, the name of the damaged file, | 360 | takes a single argument, the name of the damaged file, |
363 | and writes a number of files "rec00001file.bz2", | 361 | and writes a number of files "rec00001file.bz2", |
364 | "rec00002file.bz2", etc, containing the extracted blocks. | 362 | "rec00002file.bz2", etc., containing the extracted blocks. |
365 | The output filenames are designed so that the use of | 363 | The output filenames are designed so that the use of |
366 | wildcards in subsequent processing -- for example, | 364 | wildcards in subsequent processing -- for example, |
367 | "bzip2 -dc rec*file.bz2 > recovered_data" -- processes the files in | 365 | "bzip2 -dc rec*file.bz2 > recovered_data" -- processes the files in |
368 | the correct order. | 366 | the correct order. |
369 | 367 | ||
370 | .I bzip2recover | 368 | .I bzip2recover |
371 | should be of most use dealing with large .bz2 | 369 | should be of most use dealing with large .bz2 |
372 | files, as these will contain many blocks. It is clearly | 370 | files, as these will contain many blocks. It is clearly |
373 | futile to use it on damaged single-block files, since a | 371 | futile to use it on damaged single-block files, since a |
374 | damaged block cannot be recovered. If you wish to minimise | 372 | damaged block cannot be recovered. If you wish to minimise |
375 | any potential data loss through media or transmission errors, | 373 | any potential data loss through media or transmission errors, |
376 | you might consider compressing with a smaller | 374 | you might consider compressing with a smaller |
377 | block size. | 375 | block size. |
378 | 376 | ||
379 | .SH PERFORMANCE NOTES | 377 | .SH PERFORMANCE NOTES |
380 | The sorting phase of compression gathers together similar strings in the | 378 | The sorting phase of compression gathers together similar strings in the |
381 | file. Because of this, files containing very long runs of repeated | 379 | file. Because of this, files containing very long runs of repeated |
382 | symbols, like "aabaabaabaab ..." (repeated several hundred times) may | 380 | symbols, like "aabaabaabaab ...\&" (repeated several hundred times) may |
383 | compress more slowly than normal. Versions 0.9.5 and above fare much | 381 | compress more slowly than normal. Versions 0.9.5 and above fare much |
384 | better than previous versions in this respect. The ratio between | 382 | better than previous versions in this respect. The ratio between |
385 | worst-case and average-case compression time is in the region of 10:1. | 383 | worst-case and average-case compression time is in the region of 10:1. |
@@ -395,7 +393,7 @@ that performance, both for compressing and decompressing, is largely | |||
395 | determined by the speed at which your machine can service cache misses. | 393 | determined by the speed at which your machine can service cache misses. |
396 | Because of this, small changes to the code to reduce the miss rate have | 394 | Because of this, small changes to the code to reduce the miss rate have |
397 | been observed to give disproportionately large performance improvements. | 395 | been observed to give disproportionately large performance improvements. |
398 | I imagine | 396 | I imagine |
399 | .I bzip2 | 397 | .I bzip2 |
400 | will perform best on machines with very large caches. | 398 | will perform best on machines with very large caches. |
401 | 399 | ||
@@ -406,7 +404,7 @@ tries hard to detect I/O errors and exit cleanly, but the details of | |||
406 | what the problem is sometimes seem rather misleading. | 404 | what the problem is sometimes seem rather misleading. |
407 | 405 | ||
408 | This manual page pertains to version 1.0.8 of | 406 | This manual page pertains to version 1.0.8 of |
409 | .I bzip2. | 407 | .I bzip2. |
410 | Compressed data created by this version is entirely forwards and | 408 | Compressed data created by this version is entirely forwards and |
411 | backwards compatible with the previous public releases, versions | 409 | backwards compatible with the previous public releases, versions |
412 | 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and above, but with the following | 410 | 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and above, but with the following |
@@ -440,13 +438,13 @@ Fenwick (for the structured coding model in the original | |||
440 | .I bzip, | 438 | .I bzip, |
441 | and many refinements), and Alistair Moffat, Radford Neal and Ian Witten | 439 | and many refinements), and Alistair Moffat, Radford Neal and Ian Witten |
442 | (for the arithmetic coder in the original | 440 | (for the arithmetic coder in the original |
443 | .I bzip). | 441 | .I bzip). |
444 | I am much | 442 | I am much |
445 | indebted for their help, support and advice. See the manual in the | 443 | indebted for their help, support and advice. See the manual in the |
446 | source distribution for pointers to sources of documentation. Christian | 444 | source distribution for pointers to sources of documentation. Christian |
447 | von Roques encouraged me to look for faster sorting algorithms, so as to | 445 | von Roques encouraged me to look for faster sorting algorithms, so as to |
448 | speed up compression. Bela Lubkin encouraged me to improve the | 446 | speed up compression. Bela Lubkin encouraged me to improve the |
449 | worst-case compression performance. | 447 | worst-case compression performance. |
450 | Donna Robinson XMLised the documentation. | 448 | Donna Robinson XMLised the documentation. |
451 | The bz* scripts are derived from those of GNU gzip. | 449 | The bz* scripts are derived from those of GNU gzip. |
452 | Many people sent patches, helped | 450 | Many people sent patches, helped |