ofs | hex dump | ascii |
---|
0000 | 62 30 56 49 4d 20 38 2e 30 00 00 00 00 10 00 00 20 b1 8f 5d d7 34 0c 00 b2 6f 00 00 6a 69 6d 00 | b0VIM.8.0..........].4...o..jim. |
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0040 | 00 00 00 00 78 70 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....xps......................... |
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 2f 73 72 63 2f 67 69 74 2f 64 68 74 2f 74 6f 72 72 65 6e 74 | ............/src/git/dht/torrent |
0080 | 2d 74 79 70 65 73 2f 73 72 63 2f 44 61 74 61 2f 54 6f 72 72 65 6e 74 2e 68 73 00 00 00 00 00 00 | -types/src/Data/Torrent.hs...... |
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03e0 | 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 | .........utf-8..3210....#"!...U. |
0400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
04a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
04c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
04e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
05e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
08a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
08c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
08e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1000 | 74 70 0c 00 7f 00 00 00 02 00 00 00 00 00 00 00 98 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 | tp.............................. |
1020 | 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 86 00 00 00 00 00 00 00 99 00 00 00 00 00 00 00 | ................................ |
1040 | 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 72 00 00 00 00 00 00 00 1f 01 00 00 00 00 00 00 | ................r............... |
1060 | 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 91 01 00 00 00 00 00 00 | ................................ |
1080 | 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 11 02 00 00 00 00 00 00 | ................c............... |
10a0 | 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 7a 00 00 00 00 00 00 00 74 02 00 00 00 00 00 00 | ................z.......t....... |
10c0 | 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 6b 00 00 00 00 00 00 00 ee 02 00 00 00 00 00 00 | ................k............... |
10e0 | 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 00 59 03 00 00 00 00 00 00 | ................n.......Y....... |
1100 | 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 6e 00 00 00 00 00 00 00 c7 03 00 00 00 00 00 00 | ................n............... |
1120 | 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 6d 00 00 00 00 00 00 00 35 04 00 00 00 00 00 00 | ................m.......5....... |
1140 | 01 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 71 00 00 00 00 00 00 00 a2 04 00 00 00 00 00 00 | ................q............... |
1160 | 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00 13 05 00 00 00 00 00 00 | ................B............... |
1180 | 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
18a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
18c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
18e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
19a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
19c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
19e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2000 | 61 64 00 00 12 00 00 00 8e 02 00 00 00 10 00 00 98 00 00 00 00 00 00 00 fb 0f 00 00 d2 0f 00 00 | ad.............................. |
2020 | b9 0f 00 00 92 0f 00 00 71 0f 00 00 54 0f 00 00 51 0f 00 00 0d 0f 00 00 ca 0e 00 00 8f 0e 00 00 | ........q...T...Q............... |
2040 | 8c 0e 00 00 45 0e 00 00 34 0e 00 00 31 0e 00 00 19 0e 00 00 d5 0d 00 00 86 0d 00 00 83 0d 00 00 | ....E...4...1................... |
2060 | 57 0d 00 00 2b 0d 00 00 ff 0c 00 00 d3 0c 00 00 a7 0c 00 00 7b 0c 00 00 4f 0c 00 00 23 0c 00 00 | W...+...............{...O...#... |
2080 | f7 0b 00 00 cb 0b 00 00 9f 0b 00 00 73 0b 00 00 47 0b 00 00 1b 0b 00 00 ef 0a 00 00 db 0a 00 00 | ............s...G............... |
20a0 | c4 0a 00 00 ae 0a 00 00 98 0a 00 00 80 0a 00 00 6f 0a 00 00 5d 0a 00 00 5c 0a 00 00 42 0a 00 00 | ................o...]...\...B... |
20c0 | 2a 0a 00 00 16 0a 00 00 04 0a 00 00 ed 09 00 00 dd 09 00 00 c9 09 00 00 b7 09 00 00 a3 09 00 00 | *............................... |
20e0 | 9c 09 00 00 9b 09 00 00 80 09 00 00 67 09 00 00 57 09 00 00 43 09 00 00 30 09 00 00 1b 09 00 00 | ............g...W...C...0....... |
2100 | 14 09 00 00 fe 08 00 00 e8 08 00 00 d3 08 00 00 bc 08 00 00 a5 08 00 00 92 08 00 00 7e 08 00 00 | ............................~... |
2120 | 7d 08 00 00 5d 08 00 00 49 08 00 00 35 08 00 00 1d 08 00 00 09 08 00 00 08 08 00 00 f0 07 00 00 | }...]...I...5................... |
2140 | dc 07 00 00 db 07 00 00 c6 07 00 00 ac 07 00 00 9b 07 00 00 87 07 00 00 74 07 00 00 5e 07 00 00 | ........................t...^... |
2160 | 48 07 00 00 2e 07 00 00 1b 07 00 00 1a 07 00 00 00 07 00 00 ec 06 00 00 d9 06 00 00 c6 06 00 00 | H............................... |
2180 | c5 06 00 00 a8 06 00 00 91 06 00 00 79 06 00 00 69 06 00 00 54 06 00 00 3f 06 00 00 38 06 00 00 | ............y...i...T...?...8... |
21a0 | 24 06 00 00 23 06 00 00 09 06 00 00 f6 05 00 00 de 05 00 00 dd 05 00 00 bf 05 00 00 a8 05 00 00 | $...#........................... |
21c0 | 98 05 00 00 86 05 00 00 72 05 00 00 5f 05 00 00 4c 05 00 00 45 05 00 00 2c 05 00 00 14 05 00 00 | ........r..._...L...E...,....... |
21e0 | 0d 05 00 00 0c 05 00 00 f1 04 00 00 dc 04 00 00 db 04 00 00 cb 04 00 00 b5 04 00 00 a3 04 00 00 | ................................ |
2200 | 8d 04 00 00 7c 04 00 00 69 04 00 00 53 04 00 00 41 04 00 00 2f 04 00 00 1c 04 00 00 06 04 00 00 | ....|...i...S...A.../........... |
2220 | f3 03 00 00 ec 03 00 00 eb 03 00 00 d6 03 00 00 c1 03 00 00 ac 03 00 00 98 03 00 00 81 03 00 00 | ................................ |
2240 | 68 03 00 00 56 03 00 00 46 03 00 00 3f 03 00 00 3e 03 00 00 29 03 00 00 10 03 00 00 fc 02 00 00 | h...V...F...?...>...)........... |
2260 | e8 02 00 00 d2 02 00 00 ba 02 00 00 a5 02 00 00 8f 02 00 00 8e 02 00 00 8d 02 00 00 00 00 00 00 | ................................ |
2280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 2c 20 72 65 6e 64 65 72 4d 61 | ......................,.renderMa |
22a0 | 67 6e 65 74 00 20 20 20 20 20 20 20 2c 20 70 61 72 73 65 4d 61 67 6e 65 74 00 20 20 20 20 20 20 | gnet........,.parseMagnet....... |
22c0 | 20 2c 20 64 65 74 61 69 6c 65 64 4d 61 67 6e 65 74 00 20 20 20 20 20 20 20 2c 20 73 69 6d 70 6c | .,.detailedMagnet........,.simpl |
22e0 | 65 4d 61 67 6e 65 74 00 20 20 20 20 20 20 20 2c 20 6e 75 6c 6c 4d 61 67 6e 65 74 00 20 20 20 20 | eMagnet........,.nullMagnet..... |
2300 | 20 20 20 2c 20 4d 61 67 6e 65 74 28 2e 2e 29 00 20 20 20 20 20 20 20 20 20 2d 2d 20 24 6d 61 67 | ...,.Magnet(..)..........--.$mag |
2320 | 6e 65 74 2d 6c 69 6e 6b 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 20 4d 61 67 6e 65 74 00 00 23 | net-link..........--.*.Magnet..# |
2340 | 65 6e 64 69 66 00 20 20 20 20 20 20 20 2c 20 74 6f 46 69 6c 65 00 20 20 20 20 20 20 20 2c 20 66 | endif........,.toFile........,.f |
2360 | 72 6f 6d 46 69 6c 65 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 | romFile.#ifdef.VERSION_bencoding |
2380 | 00 20 20 20 20 20 20 20 2c 20 69 73 54 6f 72 72 65 6e 74 50 61 74 68 00 20 20 20 20 20 20 20 2c | ........,.isTorrentPath........, |
23a0 | 20 74 6f 72 72 65 6e 74 45 78 74 00 20 20 20 20 20 20 20 2c 20 74 79 70 65 54 6f 72 72 65 6e 74 | .torrentExt........,.typeTorrent |
23c0 | 00 20 20 20 20 20 20 20 2c 20 6e 75 6c 6c 54 6f 72 72 65 6e 74 00 20 20 20 20 20 20 20 20 20 2d | ........,.nullTorrent..........- |
23e0 | 2d 20 2a 2a 20 55 74 69 6c 73 00 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 20 2c 20 73 69 67 6e | -.**.Utils..#endif........,.sign |
2400 | 61 74 75 72 65 00 20 20 20 20 20 20 20 2c 20 70 75 62 6c 69 73 68 65 72 55 52 4c 00 20 20 20 20 | ature........,.publisherURL..... |
2420 | 20 20 20 2c 20 70 75 62 6c 69 73 68 65 72 00 20 20 20 20 20 20 20 2c 20 69 6e 66 6f 44 69 63 74 | ...,.publisher........,.infoDict |
2440 | 00 20 20 20 20 20 20 20 2c 20 65 6e 63 6f 64 69 6e 67 00 20 20 20 20 20 20 20 2c 20 63 72 65 61 | ........,.encoding........,.crea |
2460 | 74 69 6f 6e 44 61 74 65 00 20 20 20 20 20 20 20 2c 20 63 72 65 61 74 65 64 42 79 00 20 20 20 20 | tionDate........,.createdBy..... |
2480 | 20 20 20 2c 20 63 6f 6d 6d 65 6e 74 00 20 20 20 20 20 20 20 2c 20 61 6e 6e 6f 75 6e 63 65 4c 69 | ...,.comment........,.announceLi |
24a0 | 73 74 00 20 20 20 20 20 20 20 2c 20 61 6e 6e 6f 75 6e 63 65 00 20 20 20 20 20 20 20 20 20 2d 2d | st........,.announce..........-- |
24c0 | 20 2a 2a 20 4c 65 6e 73 65 73 00 23 69 66 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 00 20 20 20 20 | .**.Lenses.#ifdef.USE_lens...... |
24e0 | 20 20 20 2c 20 54 6f 72 72 65 6e 74 28 2e 2e 29 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 20 54 | ...,.Torrent(..)..........--.*.T |
2500 | 6f 72 72 65 6e 74 20 66 69 6c 65 00 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 20 2c 20 69 6e 66 | orrent.file..#endif........,.inf |
2520 | 6f 44 69 63 74 69 6f 6e 61 72 79 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f | oDictionary.#ifdef.VERSION_benco |
2540 | 64 69 6e 67 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 20 2c 20 69 73 50 72 69 76 61 74 65 00 20 | ding.#endif........,.isPrivate.. |
2560 | 20 20 20 20 20 20 2c 20 70 69 65 63 65 49 6e 66 6f 00 20 20 20 20 20 20 20 2c 20 6c 61 79 6f 75 | ......,.pieceInfo........,.layou |
2580 | 74 49 6e 66 6f 00 20 20 20 20 20 20 20 2c 20 69 6e 66 6f 68 61 73 68 00 23 69 66 64 65 66 20 55 | tInfo........,.infohash.#ifdef.U |
25a0 | 53 45 5f 6c 65 6e 73 00 20 20 20 20 20 20 20 2c 20 49 6e 66 6f 44 69 63 74 20 28 2e 2e 29 00 20 | SE_lens........,.InfoDict.(..).. |
25c0 | 20 20 20 20 20 20 20 20 2d 2d 20 2a 20 49 6e 66 6f 20 64 69 63 74 69 6f 6e 61 72 79 00 00 20 20 | ........--.*.Info.dictionary.... |
25e0 | 20 20 20 20 20 2c 20 63 68 65 63 6b 50 69 65 63 65 4c 61 7a 79 00 20 20 20 20 20 20 20 2c 20 70 | .....,.checkPieceLazy........,.p |
2600 | 69 65 63 65 48 61 73 68 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 56 61 6c 69 64 61 74 69 | ieceHash..........--.**.Validati |
2620 | 6f 6e 00 00 20 20 20 20 20 20 20 2c 20 70 69 65 63 65 43 6f 75 6e 74 00 23 65 6e 64 69 66 00 20 | on.........,.pieceCount.#endif.. |
2640 | 20 20 20 20 20 20 2c 20 70 69 65 63 65 48 61 73 68 65 73 00 20 20 20 20 20 20 20 2c 20 70 69 65 | ......,.pieceHashes........,.pie |
2660 | 63 65 4c 65 6e 67 74 68 00 23 69 66 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 20 20 20 20 20 20 20 | ceLength.#ifdef.USE_lens........ |
2680 | 2c 20 50 69 65 63 65 49 6e 66 6f 20 28 2e 2e 29 00 20 20 20 20 20 20 20 2c 20 48 61 73 68 4c 69 | ,.PieceInfo.(..)........,.HashLi |
26a0 | 73 74 20 28 2e 2e 29 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 50 69 65 63 65 20 63 6f 6e | st.(..)..........--.**.Piece.con |
26c0 | 74 72 6f 6c 00 00 20 20 20 20 20 20 20 2c 20 68 61 73 68 50 69 65 63 65 00 20 20 20 20 20 20 20 | trol.........,.hashPiece........ |
26e0 | 2c 20 70 69 65 63 65 53 69 7a 65 00 20 20 20 20 20 20 20 2c 20 50 69 65 63 65 20 28 2e 2e 29 00 | ,.pieceSize........,.Piece.(..). |
2700 | 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 50 69 65 63 65 20 64 61 74 61 00 00 20 20 20 20 20 | .........--.**.Piece.data....... |
2720 | 20 20 2c 20 50 69 65 63 65 48 61 73 68 00 20 20 20 20 20 20 20 2c 20 64 65 66 61 75 6c 74 50 69 | ..,.PieceHash........,.defaultPi |
2740 | 65 63 65 53 69 7a 65 00 20 20 20 20 20 20 20 2c 20 6d 61 78 50 69 65 63 65 53 69 7a 65 00 20 20 | eceSize........,.maxPieceSize... |
2760 | 20 20 20 20 20 2c 20 6d 69 6e 50 69 65 63 65 53 69 7a 65 00 20 20 20 20 20 20 20 2c 20 50 69 65 | .....,.minPieceSize........,.Pie |
2780 | 63 65 53 69 7a 65 00 20 20 20 20 20 20 20 2c 20 50 69 65 63 65 43 6f 75 6e 74 00 20 20 20 20 20 | ceSize........,.PieceCount...... |
27a0 | 20 20 2c 20 50 69 65 63 65 49 78 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 41 74 74 72 69 | ..,.PieceIx..........--.**.Attri |
27c0 | 62 75 74 65 73 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 20 50 69 65 63 65 73 00 00 20 20 20 20 | butes..........--.*.Pieces...... |
27e0 | 20 20 20 2c 20 73 69 7a 65 49 6e 42 61 73 65 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 49 | ...,.sizeInBase..........--.**.I |
2800 | 6e 74 65 72 6e 61 6c 00 00 20 20 20 20 20 20 20 2c 20 66 69 6c 65 4f 66 66 73 65 74 00 20 20 20 | nternal.........,.fileOffset.... |
2820 | 20 20 20 20 2c 20 61 63 63 75 6d 50 6f 73 69 74 69 6f 6e 73 00 20 20 20 20 20 20 20 2c 20 66 6c | ....,.accumPositions........,.fl |
2840 | 61 74 4c 61 79 6f 75 74 00 20 20 20 20 20 20 20 2c 20 46 69 6c 65 4c 61 79 6f 75 74 00 20 20 20 | atLayout........,.FileLayout.... |
2860 | 20 20 20 20 20 20 2d 2d 20 2a 2a 20 46 6c 61 74 20 6c 61 79 6f 75 74 20 69 6e 66 6f 00 00 20 20 | ......--.**.Flat.layout.info.... |
2880 | 20 20 20 20 20 2c 20 62 6c 6f 63 6b 43 6f 75 6e 74 00 20 20 20 20 20 20 20 2c 20 66 69 6c 65 43 | .....,.blockCount........,.fileC |
28a0 | 6f 75 6e 74 00 20 20 20 20 20 20 20 2c 20 63 6f 6e 74 65 6e 74 4c 65 6e 67 74 68 00 20 20 20 20 | ount........,.contentLength..... |
28c0 | 20 20 20 2c 20 73 75 67 67 65 73 74 65 64 4e 61 6d 65 00 20 20 20 20 20 20 20 2c 20 69 73 4d 75 | ...,.suggestedName........,.isMu |
28e0 | 6c 74 69 46 69 6c 65 00 20 20 20 20 20 20 20 2c 20 69 73 53 69 6e 67 6c 65 46 69 6c 65 00 20 20 | ltiFile........,.isSingleFile... |
2900 | 20 20 20 20 20 2c 20 6a 6f 69 6e 46 69 6c 65 50 61 74 68 00 23 65 6e 64 69 66 00 20 20 20 20 20 | .....,.joinFilePath.#endif...... |
2920 | 20 20 2c 20 72 6f 6f 74 44 69 72 4e 61 6d 65 00 20 20 20 20 20 20 20 2c 20 6d 75 6c 74 69 46 69 | ..,.rootDirName........,.multiFi |
2940 | 6c 65 00 20 20 20 20 20 20 20 2c 20 73 69 6e 67 6c 65 46 69 6c 65 00 23 69 66 64 65 66 20 55 53 | le........,.singleFile.#ifdef.US |
2960 | 45 5f 6c 65 6e 73 00 20 20 20 20 20 20 20 2c 20 4c 61 79 6f 75 74 49 6e 66 6f 20 28 2e 2e 29 00 | E_lens........,.LayoutInfo.(..). |
2980 | 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 4c 61 79 6f 75 74 20 69 6e 66 6f 00 00 23 65 6e 64 | .........--.**.Layout.info..#end |
29a0 | 69 66 00 20 20 20 20 20 20 20 2c 20 66 69 6c 65 4d 44 35 53 75 6d 00 20 20 20 20 20 20 20 2c 20 | if........,.fileMD5Sum........,. |
29c0 | 66 69 6c 65 50 61 74 68 00 20 20 20 20 20 20 20 2c 20 66 69 6c 65 4c 65 6e 67 74 68 00 23 69 66 | filePath........,.fileLength.#if |
29e0 | 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 20 20 20 20 20 20 20 2c 20 46 69 6c 65 49 6e 66 6f 20 28 | def.USE_lens........,.FileInfo.( |
2a00 | 2e 2e 29 00 20 20 20 20 20 20 20 2c 20 46 69 6c 65 53 69 7a 65 00 20 20 20 20 20 20 20 2c 20 46 | ..)........,.FileSize........,.F |
2a20 | 69 6c 65 4f 66 66 73 65 74 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 46 69 6c 65 49 6e 66 | ileOffset..........--.**.FileInf |
2a40 | 6f 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 20 46 69 6c 65 20 6c 61 79 6f 75 74 00 00 20 20 20 | o..........--.*.File.layout..... |
2a60 | 20 20 20 20 2c 20 73 68 6f 72 74 48 65 78 00 20 20 20 20 20 20 20 2c 20 6c 6f 6e 67 48 65 78 00 | ....,.shortHex........,.longHex. |
2a80 | 20 20 20 20 20 20 20 2c 20 74 65 78 74 54 6f 49 6e 66 6f 48 61 73 68 00 20 20 20 20 20 20 20 20 | .......,.textToInfoHash......... |
2aa0 | 20 49 6e 66 6f 48 61 73 68 28 2e 2e 29 00 20 20 20 20 20 20 20 20 20 2d 2d 20 24 69 6e 66 6f 68 | .InfoHash(..)..........--.$infoh |
2ac0 | 61 73 68 00 20 20 20 20 20 20 20 28 20 2d 2d 20 2a 20 49 6e 66 6f 48 61 73 68 00 6d 6f 64 75 6c | ash........(.--.*.InfoHash.modul |
2ae0 | 65 20 44 61 74 61 2e 54 6f 72 72 65 6e 74 00 7b 2d 23 20 4f 50 54 49 4f 4e 53 20 2d 66 6e 6f 2d | e.Data.Torrent.{-#.OPTIONS.-fno- |
2b00 | 77 61 72 6e 2d 6f 72 70 68 61 6e 73 20 20 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c | warn-orphans...........#-}.{-#.L |
2b20 | 41 4e 47 55 41 47 45 20 4f 76 65 72 6c 6f 61 64 65 64 53 74 72 69 6e 67 73 20 20 20 20 20 20 20 | ANGUAGE.OverloadedStrings....... |
2b40 | 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 52 65 63 6f 72 64 57 69 6c 64 43 61 | ...#-}.{-#.LANGUAGE.RecordWildCa |
2b60 | 72 64 73 20 20 20 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 | rds............#-}.{-#.LANGUAGE. |
2b80 | 54 65 6d 70 6c 61 74 65 48 61 73 6b 65 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b | TemplateHaskell............#-}.{ |
2ba0 | 2d 23 20 4c 41 4e 47 55 41 47 45 20 44 65 72 69 76 65 54 72 61 76 65 72 73 61 62 6c 65 20 20 20 | -#.LANGUAGE.DeriveTraversable... |
2bc0 | 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 44 65 72 69 76 65 46 6f | .......#-}.{-#.LANGUAGE.DeriveFo |
2be0 | 6c 64 61 62 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 | ldable.............#-}.{-#.LANGU |
2c00 | 41 47 45 20 44 65 72 69 76 65 46 75 6e 63 74 6f 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 | AGE.DeriveFunctor..............# |
2c20 | 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 44 65 72 69 76 65 44 61 74 61 54 79 70 65 61 62 | -}.{-#.LANGUAGE.DeriveDataTypeab |
2c40 | 6c 65 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 53 74 61 6e | le.........#-}.{-#.LANGUAGE.Stan |
2c60 | 64 61 6c 6f 6e 65 44 65 72 69 76 69 6e 67 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c | daloneDeriving.........#-}.{-#.L |
2c80 | 41 4e 47 55 41 47 45 20 47 65 6e 65 72 61 6c 69 7a 65 64 4e 65 77 74 79 70 65 44 65 72 69 76 69 | ANGUAGE.GeneralizedNewtypeDerivi |
2ca0 | 6e 67 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 42 61 6e 67 50 61 74 74 65 72 6e 73 | ng.#-}.{-#.LANGUAGE.BangPatterns |
2cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 | ...............#-}.{-#.LANGUAGE. |
2ce0 | 4d 75 6c 74 69 50 61 72 61 6d 54 79 70 65 43 6c 61 73 73 65 73 20 20 20 20 20 20 23 2d 7d 00 7b | MultiParamTypeClasses......#-}.{ |
2d00 | 2d 23 20 4c 41 4e 47 55 41 47 45 20 46 6c 65 78 69 62 6c 65 49 6e 73 74 61 6e 63 65 73 20 20 20 | -#.LANGUAGE.FlexibleInstances... |
2d20 | 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 41 47 45 20 4e 61 6d 65 64 46 69 65 | .......#-}.{-#.LANGUAGE.NamedFie |
2d40 | 6c 64 50 75 6e 73 20 20 20 20 20 20 20 20 20 20 20 20 20 23 2d 7d 00 7b 2d 23 20 4c 41 4e 47 55 | ldPuns.............#-}.{-#.LANGU |
2d60 | 41 47 45 20 43 50 50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 | AGE.CPP........................# |
2d80 | 2d 7d 00 2d 2d 00 2d 2d 20 20 20 3c 68 74 74 70 73 3a 2f 2f 77 69 6b 69 2e 74 68 65 6f 72 79 2e | -}.--.--...<https://wiki.theory. |
2da0 | 6f 72 67 2f 42 69 74 54 6f 72 72 65 6e 74 53 70 65 63 69 66 69 63 61 74 69 6f 6e 23 4d 65 74 61 | org/BitTorrentSpecification#Meta |
2dc0 | 69 6e 66 6f 5f 46 69 6c 65 5f 53 74 72 75 63 74 75 72 65 3e 00 2d 2d 20 20 20 3c 68 74 74 70 3a | info_File_Structure>.--...<http: |
2de0 | 2f 2f 77 77 77 2e 62 69 74 74 6f 72 72 65 6e 74 2e 6f 72 67 2f 62 65 70 73 2f 62 65 70 5f 30 30 | //www.bittorrent.org/beps/bep_00 |
2e00 | 30 33 2e 68 74 6d 6c 23 6d 65 74 61 69 6e 66 6f 2d 66 69 6c 65 73 3e 2c 00 2d 2d 20 20 20 46 6f | 03.html#metainfo-files>,.--...Fo |
2e20 | 72 20 6d 6f 72 65 20 69 6e 66 6f 20 73 65 65 3a 00 2d 2d 00 2d 2d 20 20 20 65 78 74 72 61 63 74 | r.more.info.see:.--.--...extract |
2e40 | 69 6f 6e 2e 00 2d 2d 20 20 20 54 68 69 73 20 6d 6f 64 75 6c 65 20 70 72 6f 76 69 64 65 73 20 74 | ion..--...This.module.provides.t |
2e60 | 6f 72 72 65 6e 74 20 6d 65 74 61 69 6e 66 6f 20 73 65 72 69 61 6c 69 7a 61 74 69 6f 6e 20 61 6e | orrent.metainfo.serialization.an |
2e80 | 64 20 69 6e 66 6f 20 68 61 73 68 00 2d 2d 00 2d 2d 20 20 20 61 6c 73 6f 20 6f 74 68 65 72 20 69 | d.info.hash.--.--...also.other.i |
2ea0 | 6e 66 6f 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 6f 20 68 65 6c 70 20 6a 6f 69 6e 20 74 | nfo.which.is.used.to.help.join.t |
2ec0 | 68 65 20 73 77 61 72 6d 2e 00 2d 2d 20 20 20 63 6f 6e 74 65 6e 74 20 69 74 73 65 6c 66 2e 20 54 | he.swarm..--...content.itself..T |
2ee0 | 68 65 20 66 69 6c 65 73 20 61 72 65 20 62 65 6e 63 6f 64 65 64 20 64 69 63 74 69 6f 6e 61 72 69 | he.files.are.bencoded.dictionari |
2f00 | 65 73 2e 20 54 68 65 72 65 20 69 73 00 2d 2d 20 20 20 54 6f 72 72 65 6e 74 20 66 69 6c 65 20 63 | es..There.is.--...Torrent.file.c |
2f20 | 6f 6e 74 61 69 6e 73 20 6d 65 74 61 64 61 74 61 20 61 62 6f 75 74 20 66 69 6c 65 73 20 61 6e 64 | ontains.metadata.about.files.and |
2f40 | 20 66 6f 6c 64 65 72 73 20 62 75 74 20 6e 6f 74 00 2d 2d 00 2d 2d 20 20 20 50 6f 72 74 61 62 69 | .folders.but.not.--.--...Portabi |
2f60 | 6c 69 74 79 20 3a 20 20 70 6f 72 74 61 62 6c 65 00 2d 2d 20 20 20 53 74 61 62 69 6c 69 74 79 20 | lity.:..portable.--...Stability. |
2f80 | 20 20 3a 20 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 00 2d 2d 20 20 20 4d 61 69 6e 74 61 69 6e 65 | ..:..experimental.--...Maintaine |
2fa0 | 72 20 20 3a 20 20 70 78 71 72 2e 73 74 61 40 67 6d 61 69 6c 2e 63 6f 6d 00 2d 2d 20 20 20 4c 69 | r..:..pxqr.sta@gmail.com.--...Li |
2fc0 | 63 65 6e 73 65 20 20 20 20 20 3a 20 20 42 53 44 33 00 2d 2d 20 20 20 43 6f 70 79 72 69 67 68 74 | cense.....:..BSD3.--...Copyright |
2fe0 | 20 20 20 3a 20 20 28 63 29 20 53 61 6d 20 54 72 75 7a 6a 61 6e 20 32 30 31 33 00 2d 2d 20 7c 00 | ...:..(c).Sam.Truzjan.2013.--.|. |
3000 | 61 64 00 00 4f 07 00 00 73 08 00 00 00 10 00 00 42 00 00 00 00 00 00 00 e9 0f 00 00 cc 0f 00 00 | ad..O...s.......B............... |
3020 | af 0f 00 00 92 0f 00 00 75 0f 00 00 54 0f 00 00 33 0f 00 00 18 0f 00 00 fd 0e 00 00 f7 0e 00 00 | ........u...T...3............... |
3040 | f6 0e 00 00 b2 0e 00 00 90 0e 00 00 5f 0e 00 00 43 0e 00 00 fe 0d 00 00 f8 0d 00 00 f7 0d 00 00 | ............_...C............... |
3060 | ae 0d 00 00 93 0d 00 00 90 0d 00 00 6c 0d 00 00 2a 0d 00 00 15 0d 00 00 d0 0c 00 00 b2 0c 00 00 | ............l...*............... |
3080 | ac 0c 00 00 ab 0c 00 00 63 0c 00 00 62 0c 00 00 39 0c 00 00 fe 0b 00 00 fd 0b 00 00 d9 0b 00 00 | ........c...b...9............... |
30a0 | a5 0b 00 00 a4 0b 00 00 87 0b 00 00 62 0b 00 00 61 0b 00 00 46 0b 00 00 2d 0b 00 00 17 0b 00 00 | ............b...a...F...-....... |
30c0 | 16 0b 00 00 fb 0a 00 00 ea 0a 00 00 b6 0a 00 00 9f 0a 00 00 95 0a 00 00 6c 0a 00 00 6b 0a 00 00 | ........................l...k... |
30e0 | 4c 0a 00 00 0e 0a 00 00 04 0a 00 00 d6 09 00 00 d5 09 00 00 9b 09 00 00 6e 09 00 00 6b 09 00 00 | L.......................n...k... |
3100 | 47 09 00 00 1f 09 00 00 04 09 00 00 03 09 00 00 d6 08 00 00 b7 08 00 00 8f 08 00 00 73 08 00 00 | G...........................s... |
3120 | 72 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | r............................... |
3140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
31a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
31c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
31e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
32a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
32c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
32e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
33a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
33c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
33e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
34a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
34c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
34e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
35a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
35c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
35e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
36a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
36c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
36e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
37a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
37c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
37e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
3860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 72 65 | ...................{-#.INLINE.re |
3880 | 6e 64 65 72 4d 61 67 6e 65 74 20 23 2d 7d 00 72 65 6e 64 65 72 4d 61 67 6e 65 74 20 3d 20 54 2e | nderMagnet.#-}.renderMagnet.=.T. |
38a0 | 70 61 63 6b 20 2e 20 72 65 6e 64 65 72 4d 61 67 6e 65 74 53 74 72 00 72 65 6e 64 65 72 4d 61 67 | pack...renderMagnetStr.renderMag |
38c0 | 6e 65 74 20 3a 3a 20 4d 61 67 6e 65 74 20 2d 3e 20 54 65 78 74 00 2d 2d 20 7c 20 52 65 6e 64 65 | net.::.Magnet.->.Text.--.|.Rende |
38e0 | 72 20 6d 61 67 6e 65 74 20 6c 69 6e 6b 20 74 6f 20 75 72 6c 65 6e 63 6f 64 65 64 20 73 74 72 69 | r.magnet.link.to.urlencoded.stri |
3900 | 6e 67 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 70 61 72 73 65 4d 61 67 6e 65 74 20 23 2d 7d 00 70 | ng..{-#.INLINE.parseMagnet.#-}.p |
3920 | 61 72 73 65 4d 61 67 6e 65 74 20 3d 20 70 61 72 73 65 4d 61 67 6e 65 74 53 74 72 20 2e 20 54 2e | arseMagnet.=.parseMagnetStr...T. |
3940 | 75 6e 70 61 63 6b 00 70 61 72 73 65 4d 61 67 6e 65 74 20 3a 3a 20 54 65 78 74 20 2d 3e 20 4d 61 | unpack.parseMagnet.::.Text.->.Ma |
3960 | 79 62 65 20 4d 61 67 6e 65 74 00 2d 2d 00 2d 2d 20 27 73 61 66 65 43 6f 6e 76 65 72 74 27 20 74 | ybe.Magnet.--.--.'safeConvert'.t |
3980 | 6f 20 66 69 6e 64 20 6f 75 74 20 65 72 72 6f 72 20 6c 6f 63 61 74 69 6f 6e 2e 00 2d 2d 20 7c 20 | o.find.out.error.location..--.|. |
39a0 | 54 72 79 20 74 6f 20 70 61 72 73 65 20 6d 61 67 6e 65 74 20 6c 69 6e 6b 20 66 72 6f 6d 20 75 72 | Try.to.parse.magnet.link.from.ur |
39c0 | 6c 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 2e 20 55 73 65 00 00 20 20 20 20 20 20 6d 73 67 20 | lencoded.string..Use........msg. |
39e0 | 3d 20 22 75 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 6d 61 67 6e 65 74 3a 20 22 20 2b 2b 20 | =."unable.to.parse.magnet:.".++. |
3a00 | 73 74 72 00 20 20 20 20 77 68 65 72 65 00 20 20 66 72 6f 6d 53 74 72 69 6e 67 20 73 74 72 20 3d | str.....where...fromString.str.= |
3a20 | 20 66 72 6f 6d 4d 61 79 62 65 20 28 65 72 72 6f 72 20 6d 73 67 29 20 24 20 70 61 72 73 65 4d 61 | .fromMaybe.(error.msg).$.parseMa |
3a40 | 67 6e 65 74 53 74 72 20 73 74 72 00 69 6e 73 74 61 6e 63 65 20 49 73 53 74 72 69 6e 67 20 4d 61 | gnetStr.str.instance.IsString.Ma |
3a60 | 67 6e 65 74 20 77 68 65 72 65 00 00 20 20 20 20 20 20 28 6d 73 74 72 2c 20 72 65 73 74 29 20 3d | gnet.where........(mstr,.rest).= |
3a80 | 20 4c 2e 62 72 65 61 6b 20 28 3d 3d 20 27 20 27 29 20 78 73 00 20 20 20 20 77 68 65 72 65 00 20 | .L.break.(==.'.').xs.....where.. |
3aa0 | 20 20 20 20 20 7c 20 6f 74 68 65 72 77 69 73 65 20 3d 20 5b 5d 00 20 20 20 20 20 20 7c 20 4a 75 | .....|.otherwise.=.[].......|.Ju |
3ac0 | 73 74 20 6d 20 3c 2d 20 70 61 72 73 65 4d 61 67 6e 65 74 53 74 72 20 6d 73 74 72 20 3d 20 5b 28 | st.m.<-.parseMagnetStr.mstr.=.[( |
3ae0 | 6d 2c 20 72 65 73 74 29 5d 00 20 20 72 65 61 64 73 50 72 65 63 20 5f 20 78 73 00 69 6e 73 74 61 | m,.rest)]...readsPrec._.xs.insta |
3b00 | 6e 63 65 20 52 65 61 64 20 4d 61 67 6e 65 74 20 77 68 65 72 65 00 00 20 20 7b 2d 23 20 49 4e 4c | nce.Read.Magnet.where....{-#.INL |
3b20 | 49 4e 45 20 73 68 6f 77 20 23 2d 7d 00 20 20 73 68 6f 77 20 3d 20 72 65 6e 64 65 72 4d 61 67 6e | INE.show.#-}...show.=.renderMagn |
3b40 | 65 74 53 74 72 00 69 6e 73 74 61 6e 63 65 20 53 68 6f 77 20 4d 61 67 6e 65 74 20 77 68 65 72 65 | etStr.instance.Show.Magnet.where |
3b60 | 00 00 20 20 70 50 72 69 6e 74 20 3d 20 50 50 2e 74 65 78 74 20 2e 20 72 65 6e 64 65 72 4d 61 67 | ....pPrint.=.PP.text...renderMag |
3b80 | 6e 65 74 53 74 72 00 69 6e 73 74 61 6e 63 65 20 50 72 65 74 74 79 20 4d 61 67 6e 65 74 20 77 68 | netStr.instance.Pretty.Magnet.wh |
3ba0 | 65 72 65 00 00 72 65 6e 64 65 72 4d 61 67 6e 65 74 53 74 72 20 3d 20 73 68 6f 77 20 2e 20 28 63 | ere..renderMagnetStr.=.show...(c |
3bc0 | 6f 6e 76 65 72 74 20 3a 3a 20 4d 61 67 6e 65 74 20 2d 3e 20 55 52 49 29 00 72 65 6e 64 65 72 4d | onvert.::.Magnet.->.URI).renderM |
3be0 | 61 67 6e 65 74 53 74 72 20 3a 3a 20 4d 61 67 6e 65 74 20 2d 3e 20 53 74 72 69 6e 67 00 00 70 61 | agnetStr.::.Magnet.->.String..pa |
3c00 | 72 73 65 4d 61 67 6e 65 74 53 74 72 20 3d 20 65 69 74 68 65 72 20 28 63 6f 6e 73 74 20 4e 6f 74 | rseMagnetStr.=.either.(const.Not |
3c20 | 68 69 6e 67 29 20 4a 75 73 74 20 2e 20 73 61 66 65 43 6f 6e 76 65 72 74 00 70 61 72 73 65 4d 61 | hing).Just...safeConvert.parseMa |
3c40 | 67 6e 65 74 53 74 72 20 3a 3a 20 53 74 72 69 6e 67 20 2d 3e 20 4d 61 79 62 65 20 4d 61 67 6e 65 | gnetStr.::.String.->.Maybe.Magne |
3c60 | 74 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | t..----------------------------- |
3c80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
3ca0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 20 20 7d 00 20 20 20 20 2c 20 74 72 61 63 6b 65 72 20 | ----------......}.....,.tracker. |
3cc0 | 20 20 20 20 3d 20 74 41 6e 6e 6f 75 6e 63 65 00 20 20 20 20 7b 20 65 78 61 63 74 4c 65 6e 67 74 | ....=.tAnnounce.....{.exactLengt |
3ce0 | 68 20 3d 20 4a 75 73 74 20 24 20 66 72 6f 6d 49 6e 74 65 67 72 61 6c 20 24 20 63 6f 6e 74 65 6e | h.=.Just.$.fromIntegral.$.conten |
3d00 | 74 4c 65 6e 67 74 68 20 69 64 4c 61 79 6f 75 74 49 6e 66 6f 00 20 20 3d 20 28 73 69 6d 70 6c 65 | tLength.idLayoutInfo...=.(simple |
3d20 | 4d 61 67 6e 65 74 20 74 29 00 64 65 74 61 69 6c 65 64 4d 61 67 6e 65 74 20 74 20 40 20 54 6f 72 | Magnet.t).detailedMagnet.t.@.Tor |
3d40 | 72 65 6e 74 20 7b 74 49 6e 66 6f 44 69 63 74 20 3d 20 49 6e 66 6f 44 69 63 74 20 7b 2e 2e 7d 2c | rent.{tInfoDict.=.InfoDict.{..}, |
3d60 | 20 74 41 6e 6e 6f 75 6e 63 65 7d 00 64 65 74 61 69 6c 65 64 4d 61 67 6e 65 74 20 3a 3a 20 54 6f | .tAnnounce}.detailedMagnet.::.To |
3d80 | 72 72 65 6e 74 20 2d 3e 20 4d 61 67 6e 65 74 00 2d 2d 00 2d 2d 20 27 74 72 61 63 6b 65 72 27 20 | rrent.->.Magnet.--.--.'tracker'. |
3da0 | 28 27 74 72 27 20 70 61 72 61 6d 29 2e 00 2d 2d 20 7c 20 4c 69 6b 65 20 27 73 69 6d 70 6c 65 4d | ('tr'.param)..--.|.Like.'simpleM |
3dc0 | 61 67 6e 65 74 27 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 6c 75 64 65 20 27 65 78 61 63 74 4c 65 | agnet'.but.also.include.'exactLe |
3de0 | 6e 67 74 68 27 20 28 27 78 6c 27 20 70 61 72 61 6d 29 20 61 6e 64 00 00 20 20 20 20 7d 00 20 20 | ngth'.('xl'.param).and......}... |
3e00 | 20 20 7b 20 64 69 73 70 6c 61 79 4e 61 6d 65 20 3d 20 4a 75 73 74 20 24 20 54 2e 64 65 63 6f 64 | ..{.displayName.=.Just.$.T.decod |
3e20 | 65 55 74 66 38 20 24 20 73 75 67 67 65 73 74 65 64 4e 61 6d 65 20 69 64 4c 61 79 6f 75 74 49 6e | eUtf8.$.suggestedName.idLayoutIn |
3e40 | 66 6f 00 20 20 3d 20 28 6e 75 6c 6c 4d 61 67 6e 65 74 20 69 64 49 6e 66 6f 48 61 73 68 29 00 73 | fo...=.(nullMagnet.idInfoHash).s |
3e60 | 69 6d 70 6c 65 4d 61 67 6e 65 74 20 54 6f 72 72 65 6e 74 20 7b 74 49 6e 66 6f 44 69 63 74 20 3d | impleMagnet.Torrent.{tInfoDict.= |
3e80 | 20 49 6e 66 6f 44 69 63 74 20 7b 2e 2e 7d 7d 00 73 69 6d 70 6c 65 4d 61 67 6e 65 74 20 3a 3a 20 | .InfoDict.{..}}.simpleMagnet.::. |
3ea0 | 54 6f 72 72 65 6e 74 20 2d 3e 20 4d 61 67 6e 65 74 00 2d 2d 20 7c 20 4c 69 6b 65 20 27 6e 75 6c | Torrent.->.Magnet.--.|.Like.'nul |
3ec0 | 6c 4d 61 67 6e 65 74 27 20 62 75 74 20 61 6c 73 6f 20 69 6e 63 6c 75 64 65 20 27 64 69 73 70 6c | lMagnet'.but.also.include.'displ |
3ee0 | 61 79 4e 61 6d 65 27 20 28 27 64 6e 27 20 70 61 72 61 6d 29 2e 00 00 20 20 20 20 7d 00 20 20 20 | ayName'.('dn'.param).......}.... |
3f00 | 20 2c 20 73 75 70 70 6c 65 6d 65 6e 74 20 3d 20 4d 2e 65 6d 70 74 79 00 20 20 20 20 2c 20 74 72 | .,.supplement.=.M.empty.....,.tr |
3f20 | 61 63 6b 65 72 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 65 78 61 63 74 53 6f | acker....=.Nothing.....,.exactSo |
3f40 | 75 72 63 65 20 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 61 63 63 65 70 74 | urce......=.Nothing.....,.accept |
3f60 | 61 62 6c 65 53 6f 75 72 63 65 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 6b 65 79 77 6f | ableSource.=.Nothing.....,.keywo |
3f80 | 72 64 54 6f 70 69 63 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 6d 61 6e 69 66 65 73 74 | rdTopic.=.Nothing.....,.manifest |
3fa0 | 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 65 78 61 63 74 4c 65 6e 67 74 68 | .....=.Nothing.....,.exactLength |
3fc0 | 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 64 69 73 70 6c 61 79 4e 61 6d 65 20 20 3d | ..=.Nothing.....,.displayName..= |
3fe0 | 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 7b 20 65 78 61 63 74 54 6f 70 69 63 20 20 20 3d 20 75 00 | .Nothing.....{.exactTopic...=.u. |
4000 | 61 64 00 00 18 00 00 00 e0 01 00 00 00 10 00 00 6b 00 00 00 00 00 00 00 c9 0f 00 00 9a 0f 00 00 | ad..............k............... |
4020 | 44 0f 00 00 43 0f 00 00 00 0f 00 00 c8 0e 00 00 a2 0e 00 00 51 0e 00 00 50 0e 00 00 1c 0e 00 00 | D...C...............Q...P....... |
4040 | f0 0d 00 00 c5 0d 00 00 c4 0d 00 00 9c 0d 00 00 61 0d 00 00 30 0d 00 00 f7 0c 00 00 d1 0c 00 00 | ................a...0........... |
4060 | 7c 0c 00 00 7b 0c 00 00 32 0c 00 00 1e 0c 00 00 d5 0b 00 00 d4 0b 00 00 a1 0b 00 00 60 0b 00 00 | |...{...2...................`... |
4080 | 5d 0b 00 00 5c 0b 00 00 12 0b 00 00 f9 0a 00 00 d9 0a 00 00 a4 0a 00 00 a3 0a 00 00 81 0a 00 00 | ]...\........................... |
40a0 | 4d 0a 00 00 4c 0a 00 00 2b 0a 00 00 02 0a 00 00 01 0a 00 00 e5 09 00 00 a3 09 00 00 65 09 00 00 | M...L...+...................e... |
40c0 | 4f 09 00 00 48 09 00 00 08 09 00 00 e0 08 00 00 df 08 00 00 cf 08 00 00 c1 08 00 00 9e 08 00 00 | O...H........................... |
40e0 | 7b 08 00 00 58 08 00 00 35 08 00 00 31 08 00 00 24 08 00 00 1d 08 00 00 1c 08 00 00 fd 07 00 00 | {...X...5...1...$............... |
4100 | d6 07 00 00 d5 07 00 00 b4 07 00 00 85 07 00 00 67 07 00 00 66 07 00 00 36 07 00 00 0e 07 00 00 | ................g...f...6....... |
4120 | 98 06 00 00 90 06 00 00 4c 06 00 00 4b 06 00 00 32 06 00 00 fd 05 00 00 dd 05 00 00 b8 05 00 00 | ........L...K...2............... |
4140 | b7 05 00 00 7b 05 00 00 3d 05 00 00 fe 04 00 00 f6 04 00 00 b6 04 00 00 b5 04 00 00 9b 04 00 00 | ....{...=....................... |
4160 | 70 04 00 00 6f 04 00 00 4a 04 00 00 34 04 00 00 fc 03 00 00 fb 03 00 00 db 03 00 00 b6 03 00 00 | p...o...J...4................... |
4180 | 91 03 00 00 6c 03 00 00 47 03 00 00 39 03 00 00 38 03 00 00 0c 03 00 00 e8 02 00 00 c5 02 00 00 | ....l...G...9...8............... |
41a0 | a4 02 00 00 9a 02 00 00 73 02 00 00 6c 02 00 00 6b 02 00 00 52 02 00 00 07 02 00 00 06 02 00 00 | ........s...l...k...R........... |
41c0 | e0 01 00 00 db 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d 2d 70 70 | ............................--pp |
41e0 | 2d 2d 70 70 41 64 64 69 74 69 6f 6e 61 6c 49 6e 66 6f 20 3a 3a 20 49 6e 66 6f 44 69 63 74 20 2d | --ppAdditionalInfo.::.InfoDict.- |
4200 | 3e 20 44 6f 63 00 00 70 70 50 72 69 76 61 63 79 20 70 72 69 76 61 63 79 20 3d 20 22 50 72 69 76 | >.Doc..ppPrivacy.privacy.=."Priv |
4220 | 61 63 79 3a 20 22 20 3c 3e 20 69 66 20 70 72 69 76 61 63 79 20 74 68 65 6e 20 22 70 72 69 76 61 | acy:.".<>.if.privacy.then."priva |
4240 | 74 65 22 20 65 6c 73 65 20 22 70 75 62 6c 69 63 22 00 70 70 50 72 69 76 61 63 79 20 3a 3a 20 42 | te".else."public".ppPrivacy.::.B |
4260 | 6f 6f 6c 20 2d 3e 20 44 6f 63 00 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 69 68 20 3d 20 68 61 | ool.->.Doc..#endif.......ih.=.ha |
4280 | 73 68 4c 61 7a 79 49 48 20 28 42 45 2e 65 6e 63 6f 64 65 20 64 69 63 74 29 00 20 20 20 20 77 68 | shLazyIH.(BE.encode.dict).....wh |
42a0 | 65 72 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 20 67 65 74 50 72 69 | ere...................<*>.getPri |
42c0 | 76 61 74 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 20 67 65 74 50 69 | vate...................<*>.getPi |
42e0 | 65 63 65 49 6e 66 6f 00 20 20 20 20 20 20 49 6e 66 6f 44 69 63 74 20 69 68 20 3c 24 3e 20 67 65 | eceInfo.......InfoDict.ih.<$>.ge |
4300 | 74 4c 61 79 6f 75 74 49 6e 66 6f 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 64 69 63 74 20 3d | tLayoutInfo...fromBEncode.dict.= |
4320 | 20 28 60 66 72 6f 6d 44 69 63 74 60 20 64 69 63 74 29 20 24 20 64 6f 00 00 20 20 20 20 20 20 65 | .(`fromDict`.dict).$.do........e |
4340 | 6e 64 44 69 63 74 00 20 20 20 20 20 20 70 75 74 50 72 69 76 61 74 65 20 20 20 20 69 64 50 72 69 | ndDict.......putPrivate....idPri |
4360 | 76 61 74 65 20 20 20 20 20 20 24 00 20 20 20 20 20 20 70 75 74 50 69 65 63 65 49 6e 66 6f 20 20 | vate......$.......putPieceInfo.. |
4380 | 69 64 50 69 65 63 65 49 6e 66 6f 20 20 20 20 24 00 20 20 20 20 20 20 70 75 74 4c 61 79 6f 75 74 | idPieceInfo....$.......putLayout |
43a0 | 49 6e 66 6f 20 69 64 4c 61 79 6f 75 74 49 6e 66 6f 20 20 20 24 00 20 20 74 6f 42 45 6e 63 6f 64 | Info.idLayoutInfo...$...toBEncod |
43c0 | 65 20 49 6e 66 6f 44 69 63 74 20 7b 2e 2e 7d 20 3d 20 74 6f 44 69 63 74 20 24 00 69 6e 73 74 61 | e.InfoDict.{..}.=.toDict.$.insta |
43e0 | 6e 63 65 20 42 45 6e 63 6f 64 65 20 49 6e 66 6f 44 69 63 74 20 77 68 65 72 65 00 00 70 75 74 50 | nce.BEncode.InfoDict.where..putP |
4400 | 72 69 76 61 74 65 20 54 72 75 65 20 20 3d 20 5c 20 63 6f 6e 74 20 2d 3e 20 22 70 72 69 76 61 74 | rivate.True..=.\.cont.->."privat |
4420 | 65 22 20 2e 3d 21 20 54 72 75 65 20 2e 3a 20 63 6f 6e 74 00 70 75 74 50 72 69 76 61 74 65 20 46 | e"..=!.True..:.cont.putPrivate.F |
4440 | 61 6c 73 65 20 3d 20 69 64 00 70 75 74 50 72 69 76 61 74 65 20 3a 3a 20 42 6f 6f 6c 20 2d 3e 20 | alse.=.id.putPrivate.::.Bool.->. |
4460 | 42 44 69 63 74 20 2d 3e 20 42 44 69 63 74 00 00 67 65 74 50 72 69 76 61 74 65 20 3d 20 28 4a 75 | BDict.->.BDict..getPrivate.=.(Ju |
4480 | 73 74 20 54 72 75 65 20 3d 3d 29 20 3c 24 3e 3f 20 22 70 72 69 76 61 74 65 22 00 67 65 74 50 72 | st.True.==).<$>?."private".getPr |
44a0 | 69 76 61 74 65 20 3a 3a 20 42 45 2e 47 65 74 20 42 6f 6f 6c 00 00 20 20 20 20 69 68 20 3d 20 68 | ivate.::.BE.Get.Bool......ih.=.h |
44c0 | 61 73 68 4c 61 7a 79 49 48 20 24 20 42 45 2e 65 6e 63 6f 64 65 20 24 20 49 6e 66 6f 44 69 63 74 | ashLazyIH.$.BE.encode.$.InfoDict |
44e0 | 20 64 65 66 20 6c 69 20 70 69 6e 66 6f 20 70 72 69 76 61 74 65 00 20 20 77 68 65 72 65 00 69 6e | .def.li.pinfo.private...where.in |
4500 | 66 6f 44 69 63 74 69 6f 6e 61 72 79 20 6c 69 20 70 69 6e 66 6f 20 70 72 69 76 61 74 65 20 3d 20 | foDictionary.li.pinfo.private.=. |
4520 | 49 6e 66 6f 44 69 63 74 20 69 68 20 6c 69 20 70 69 6e 66 6f 20 70 72 69 76 61 74 65 00 69 6e 66 | InfoDict.ih.li.pinfo.private.inf |
4540 | 6f 44 69 63 74 69 6f 6e 61 72 79 20 3a 3a 20 4c 61 79 6f 75 74 49 6e 66 6f 20 2d 3e 20 50 69 65 | oDictionary.::.LayoutInfo.->.Pie |
4560 | 63 65 49 6e 66 6f 20 2d 3e 20 42 6f 6f 6c 20 2d 3e 20 49 6e 66 6f 44 69 63 74 00 2d 2d 20 7c 20 | ceInfo.->.Bool.->.InfoDict.--.|. |
4580 | 53 6d 61 72 74 20 63 6f 6e 73 74 72 75 63 74 6f 72 3a 20 61 64 64 20 61 20 69 6e 66 6f 20 68 61 | Smart.constructor:.add.a.info.ha |
45a0 | 73 68 20 74 6f 20 69 6e 66 6f 20 64 69 63 74 69 6f 6e 61 72 79 2e 00 00 20 20 64 65 66 20 3d 20 | sh.to.info.dictionary.....def.=. |
45c0 | 69 6e 66 6f 44 69 63 74 69 6f 6e 61 72 79 20 64 65 66 20 64 65 66 20 46 61 6c 73 65 00 69 6e 73 | infoDictionary.def.def.False.ins |
45e0 | 74 61 6e 63 65 20 44 65 66 61 75 6c 74 20 49 6e 66 6f 44 69 63 74 20 77 68 65 72 65 00 2d 2d 20 | tance.Default.InfoDict.where.--. |
4600 | 7c 20 45 6d 70 74 79 20 69 6e 66 6f 20 64 69 63 74 69 6f 6e 61 72 79 20 77 69 74 68 20 7a 65 72 | |.Empty.info.dictionary.with.zer |
4620 | 6f 2d 6c 65 6e 67 74 68 20 63 6f 6e 74 65 6e 74 2e 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e | o-length.content..#ifdef.VERSION |
4640 | 5f 62 65 6e 63 6f 64 69 6e 67 00 00 20 20 20 20 6d 73 67 20 3d 20 22 49 6e 66 6f 68 61 73 68 2e | _bencoding......msg.=."Infohash. |
4660 | 68 61 73 68 3a 20 69 6d 70 6f 73 73 69 62 6c 65 3a 20 53 48 41 31 20 69 73 20 61 6c 77 61 79 73 | hash:.impossible:.SHA1.is.always |
4680 | 20 32 30 20 62 79 74 65 73 20 6c 6f 6e 67 22 00 20 20 77 68 65 72 65 00 68 61 73 68 4c 61 7a 79 | .20.bytes.long"...where.hashLazy |
46a0 | 49 48 20 3d 20 65 69 74 68 65 72 20 28 63 6f 6e 73 74 20 28 65 72 72 6f 72 20 6d 73 67 29 29 20 | IH.=.either.(const.(error.msg)). |
46c0 | 69 64 20 2e 20 73 61 66 65 43 6f 6e 76 65 72 74 20 2e 20 28 42 79 74 65 73 2e 63 6f 6e 76 65 72 | id...safeConvert...(Bytes.conver |
46e0 | 74 20 3a 3a 20 44 69 67 65 73 74 20 53 48 41 31 20 2d 3e 20 42 53 2e 42 79 74 65 53 74 72 69 6e | t.::.Digest.SHA1.->.BS.ByteStrin |
4700 | 67 29 20 2e 20 68 61 73 68 6c 61 7a 79 00 68 61 73 68 4c 61 7a 79 49 48 20 3a 3a 20 42 4c 2e 42 | g)...hashlazy.hashLazyIH.::.BL.B |
4720 | 79 74 65 53 74 72 69 6e 67 20 2d 3e 20 49 6e 66 6f 48 61 73 68 00 2d 2d 20 7c 20 48 61 73 68 20 | yteString.->.InfoHash.--.|.Hash. |
4740 | 6c 61 7a 79 20 62 79 74 65 73 74 72 69 6e 67 20 75 73 69 6e 67 20 53 48 41 31 20 61 6c 67 6f 72 | lazy.bytestring.using.SHA1.algor |
4760 | 69 74 68 6d 2e 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 68 61 73 68 57 69 74 68 53 61 6c 74 | ithm.....{-#.INLINE.hashWithSalt |
4780 | 20 23 2d 7d 00 20 20 68 61 73 68 57 69 74 68 53 61 6c 74 20 3d 20 48 61 73 68 61 62 6c 65 2e 68 | .#-}...hashWithSalt.=.Hashable.h |
47a0 | 61 73 68 55 73 69 6e 67 20 69 64 49 6e 66 6f 48 61 73 68 00 69 6e 73 74 61 6e 63 65 20 48 61 73 | ashUsing.idInfoHash.instance.Has |
47c0 | 68 61 62 6c 65 20 49 6e 66 6f 44 69 63 74 20 77 68 65 72 65 00 00 20 20 72 6e 66 20 49 6e 66 6f | hable.InfoDict.where....rnf.Info |
47e0 | 44 69 63 74 20 7b 2e 2e 7d 20 3d 20 72 6e 66 20 69 64 4c 61 79 6f 75 74 49 6e 66 6f 00 69 6e 73 | Dict.{..}.=.rnf.idLayoutInfo.ins |
4800 | 74 61 6e 63 65 20 4e 46 44 61 74 61 20 49 6e 66 6f 44 69 63 74 20 77 68 65 72 65 00 00 23 65 6e | tance.NFData.InfoDict.where..#en |
4820 | 64 69 66 00 20 20 27 27 49 6e 66 6f 44 69 63 74 00 20 20 5d 00 20 20 2c 20 28 22 69 64 50 72 69 | dif...''InfoDict...]...,.("idPri |
4840 | 76 61 74 65 22 20 20 20 2c 20 22 69 73 50 72 69 76 61 74 65 22 20 29 00 20 20 2c 20 28 22 69 64 | vate"...,."isPrivate".)...,.("id |
4860 | 50 69 65 63 65 49 6e 66 6f 22 20 2c 20 22 70 69 65 63 65 49 6e 66 6f 22 20 29 00 20 20 2c 20 28 | PieceInfo".,."pieceInfo".)...,.( |
4880 | 22 69 64 4c 61 79 6f 75 74 49 6e 66 6f 22 2c 20 22 6c 61 79 6f 75 74 49 6e 66 6f 22 29 00 20 20 | "idLayoutInfo",."layoutInfo")... |
48a0 | 5b 20 28 22 69 64 49 6e 66 6f 48 61 73 68 22 20 20 2c 20 22 69 6e 66 6f 68 61 73 68 22 20 20 29 | [.("idInfoHash"..,."infohash"..) |
48c0 | 00 6d 61 6b 65 4c 65 6e 73 65 73 46 6f 72 00 23 69 66 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 00 | .makeLensesFor.#ifdef.USE_lens.. |
48e0 | 20 20 7d 20 64 65 72 69 76 69 6e 67 20 28 53 68 6f 77 2c 20 52 65 61 64 2c 20 45 71 2c 20 54 79 | ..}.deriving.(Show,.Read,.Eq,.Ty |
4900 | 70 65 61 62 6c 65 29 00 20 20 20 20 2d 2d 20 20 20 42 45 50 20 32 37 3a 20 3c 68 74 74 70 3a 2f | peable).....--...BEP.27:.<http:/ |
4920 | 2f 77 77 77 2e 62 69 74 74 6f 72 72 65 6e 74 2e 6f 72 67 2f 62 65 70 73 2f 62 65 70 5f 30 30 32 | /www.bittorrent.org/beps/bep_002 |
4940 | 37 2e 68 74 6d 6c 3e 00 20 20 20 20 2d 2d 00 20 20 20 20 2d 2d 20 6d 65 74 61 69 6e 66 6f 20 66 | 7.html>.....--.....--.metainfo.f |
4960 | 69 6c 65 2e 00 20 20 20 20 2d 2d 20 70 65 65 72 73 20 4f 4e 4c 59 20 76 69 61 20 74 68 65 20 74 | ile......--.peers.ONLY.via.the.t |
4980 | 72 61 63 6b 65 72 73 20 65 78 70 6c 69 63 69 74 79 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 | rackers.explicity.described.in.t |
49a0 | 68 65 00 20 20 20 20 2d 2d 20 5e 20 49 66 20 73 65 74 20 74 68 65 20 63 6c 69 65 6e 74 20 4d 55 | he.....--.^.If.set.the.client.MU |
49c0 | 53 54 20 70 75 62 6c 69 73 68 20 69 74 73 20 70 72 65 73 65 6e 63 65 20 74 6f 20 67 65 74 20 6f | ST.publish.its.presence.to.get.o |
49e0 | 74 68 65 72 00 20 20 2c 20 69 64 50 72 69 76 61 74 65 20 20 20 20 20 20 3a 3a 20 21 42 6f 6f 6c | ther...,.idPrivate......::.!Bool |
4a00 | 00 00 20 20 20 20 2d 2d 20 5e 20 43 6f 6e 74 65 6e 74 20 76 61 6c 69 64 61 74 69 6f 6e 20 69 6e | ......--.^.Content.validation.in |
4a20 | 66 6f 72 6d 61 74 69 6f 6e 2e 00 20 20 2c 20 69 64 50 69 65 63 65 49 6e 66 6f 20 20 20 20 3a 3a | formation....,.idPieceInfo....:: |
4a40 | 20 21 50 69 65 63 65 49 6e 66 6f 00 00 20 20 20 20 2d 2d 20 5e 20 46 69 6c 65 20 6c 61 79 6f 75 | .!PieceInfo......--.^.File.layou |
4a60 | 74 20 28 6e 61 6d 65 2c 20 73 69 7a 65 2c 20 65 74 63 29 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e | t.(name,.size,.etc).information. |
4a80 | 00 20 20 2c 20 69 64 4c 61 79 6f 75 74 49 6e 66 6f 20 20 20 3a 3a 20 21 4c 61 79 6f 75 74 49 6e | ...,.idLayoutInfo...::.!LayoutIn |
4aa0 | 66 6f 00 00 20 20 20 20 2d 2d 20 5e 20 53 48 41 31 20 68 61 73 68 20 6f 66 20 74 68 65 20 28 6f | fo......--.^.SHA1.hash.of.the.(o |
4ac0 | 74 68 65 72 29 20 27 44 69 63 74 49 6e 66 6f 27 20 66 69 65 6c 64 73 2e 00 20 20 7b 20 69 64 49 | ther).'DictInfo'.fields....{.idI |
4ae0 | 6e 66 6f 48 61 73 68 20 20 20 20 20 3a 3a 20 21 49 6e 66 6f 48 61 73 68 00 64 61 74 61 20 49 6e | nfoHash.....::.!InfoHash.data.In |
4b00 | 66 6f 44 69 63 74 20 3d 20 49 6e 66 6f 44 69 63 74 00 2d 2d 20 7c 20 49 6e 66 6f 20 70 61 72 74 | foDict.=.InfoDict.--.|.Info.part |
4b20 | 20 6f 66 20 74 68 65 20 2e 74 6f 72 72 65 6e 74 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 20 69 6e | .of.the..torrent.file.contain.in |
4b40 | 66 6f 20 61 62 6f 75 74 20 65 61 63 68 20 63 6f 6e 74 65 6e 74 20 66 69 6c 65 2e 00 00 2d 7d 00 | fo.about.each.content.file...-}. |
4b60 | 20 20 20 62 75 74 20 69 74 27 73 20 62 65 74 74 65 72 20 74 6f 20 6b 65 65 70 20 69 74 20 68 65 | ...but.it's.better.to.keep.it.he |
4b80 | 72 65 20 74 6f 20 61 76 6f 69 64 20 68 65 61 76 79 20 72 65 63 6f 6d 70 75 74 61 74 69 6f 6e 73 | re.to.avoid.heavy.recomputations |
4ba0 | 00 7b 2d 20 6e 6f 74 65 20 74 68 61 74 20 69 6e 66 6f 20 68 61 73 68 20 69 73 20 61 63 74 75 61 | .{-.note.that.info.hash.is.actua |
4bc0 | 6c 6c 79 20 72 65 64 75 6e 74 61 6e 74 20 66 69 65 6c 64 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | lly.reduntant.field..----------- |
4be0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
4c00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d 2d | ----------------------------}.-- |
4c20 | 20 20 49 6e 66 6f 20 64 69 63 74 69 6f 6e 61 72 79 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ..Info.dictionary.{------------- |
4c40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
4c60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 26 26 | --------------------------....&& |
4c80 | 20 42 79 74 65 73 2e 63 6f 6e 76 65 72 74 20 28 68 61 73 68 6c 61 7a 79 20 70 69 65 63 65 44 61 | .Bytes.convert.(hashlazy.pieceDa |
4ca0 | 74 61 20 3a 3a 20 44 69 67 65 73 74 20 53 48 41 31 29 20 3d 3d 20 70 69 65 63 65 48 61 73 68 20 | ta.::.Digest.SHA1).==.pieceHash. |
4cc0 | 70 69 6e 66 6f 20 70 69 65 63 65 49 6e 64 65 78 00 20 20 20 20 20 7c 7c 20 69 73 4c 61 73 74 50 | pinfo.pieceIndex......||.isLastP |
4ce0 | 69 65 63 65 20 70 69 6e 66 6f 20 70 69 65 63 65 49 6e 64 65 78 29 00 20 20 3d 20 28 66 72 6f 6d | iece.pinfo.pieceIndex)...=.(from |
4d00 | 49 6e 74 65 67 72 61 6c 20 28 42 4c 2e 6c 65 6e 67 74 68 20 70 69 65 63 65 44 61 74 61 29 20 3d | Integral.(BL.length.pieceData).= |
4d20 | 3d 20 70 69 50 69 65 63 65 4c 65 6e 67 74 68 00 63 68 65 63 6b 50 69 65 63 65 4c 61 7a 79 20 70 | =.piPieceLength.checkPieceLazy.p |
4d40 | 69 6e 66 6f 20 40 20 50 69 65 63 65 49 6e 66 6f 20 7b 2e 2e 7d 20 50 69 65 63 65 20 7b 2e 2e 7d | info.@.PieceInfo.{..}.Piece.{..} |
4d60 | 00 63 68 65 63 6b 50 69 65 63 65 4c 61 7a 79 20 3a 3a 20 50 69 65 63 65 49 6e 66 6f 20 2d 3e 20 | .checkPieceLazy.::.PieceInfo.->. |
4d80 | 50 69 65 63 65 20 42 4c 2e 42 79 74 65 53 74 72 69 6e 67 20 2d 3e 20 42 6f 6f 6c 00 2d 2d 20 7c | Piece.BL.ByteString.->.Bool.--.| |
4da0 | 20 56 61 6c 69 64 61 74 65 20 70 69 65 63 65 20 77 69 74 68 20 6d 65 74 61 69 6e 66 6f 20 68 61 | .Validate.piece.with.metainfo.ha |
4dc0 | 73 68 2e 00 00 69 73 4c 61 73 74 50 69 65 63 65 20 63 69 20 69 20 3d 20 70 69 65 63 65 43 6f 75 | sh...isLastPiece.ci.i.=.pieceCou |
4de0 | 6e 74 20 63 69 20 3d 3d 20 73 75 63 63 20 69 00 69 73 4c 61 73 74 50 69 65 63 65 20 3a 3a 20 50 | nt.ci.==.succ.i.isLastPiece.::.P |
4e00 | 69 65 63 65 49 6e 66 6f 20 2d 3e 20 50 69 65 63 65 49 78 20 2d 3e 20 42 6f 6f 6c 00 2d 2d 20 7c | ieceInfo.->.PieceIx.->.Bool.--.| |
4e20 | 20 54 65 73 74 20 69 66 20 74 68 69 73 20 69 73 20 6c 61 73 74 20 70 69 65 63 65 20 69 6e 20 74 | .Test.if.this.is.last.piece.in.t |
4e40 | 6f 72 72 65 6e 74 20 63 6f 6e 74 65 6e 74 2e 00 00 70 69 65 63 65 43 6f 75 6e 74 20 50 69 65 63 | orrent.content...pieceCount.Piec |
4e60 | 65 49 6e 66 6f 20 7b 2e 2e 7d 20 3d 20 42 53 2e 6c 65 6e 67 74 68 20 28 75 6e 48 61 73 68 4c 69 | eInfo.{..}.=.BS.length.(unHashLi |
4e80 | 73 74 20 70 69 50 69 65 63 65 48 61 73 68 65 73 29 20 60 71 75 6f 74 60 20 68 61 73 68 73 69 7a | st.piPieceHashes).`quot`.hashsiz |
4ea0 | 65 00 70 69 65 63 65 43 6f 75 6e 74 20 3a 3a 20 50 69 65 63 65 49 6e 66 6f 20 2d 3e 20 50 69 65 | e.pieceCount.::.PieceInfo.->.Pie |
4ec0 | 63 65 43 6f 75 6e 74 00 2d 2d 20 6d 75 6c 74 69 70 6c 65 20 6f 66 20 70 69 65 63 65 20 73 69 7a | ceCount.--.multiple.of.piece.siz |
4ee0 | 65 20 74 68 65 6e 20 74 68 65 20 63 6f 75 6e 74 20 69 73 20 72 6f 75 6e 64 65 64 20 75 70 2e 00 | e.then.the.count.is.rounded.up.. |
4f00 | 2d 2d 20 7c 20 46 69 6e 64 20 63 6f 75 6e 74 20 6f 66 20 70 69 65 63 65 73 20 69 6e 20 74 68 65 | --.|.Find.count.of.pieces.in.the |
4f20 | 20 74 6f 72 72 65 6e 74 2e 20 49 66 20 74 6f 72 72 65 6e 74 20 73 69 7a 65 20 69 73 20 6e 6f 74 | .torrent..If.torrent.size.is.not |
4f40 | 20 61 00 00 70 69 65 63 65 48 61 73 68 20 50 69 65 63 65 49 6e 66 6f 20 7b 2e 2e 7d 20 69 20 3d | .a..pieceHash.PieceInfo.{..}.i.= |
4f60 | 20 73 6c 69 63 65 20 28 68 61 73 68 73 69 7a 65 20 2a 20 69 29 20 68 61 73 68 73 69 7a 65 20 28 | .slice.(hashsize.*.i).hashsize.( |
4f80 | 75 6e 48 61 73 68 4c 69 73 74 20 70 69 50 69 65 63 65 48 61 73 68 65 73 29 00 70 69 65 63 65 48 | unHashList.piPieceHashes).pieceH |
4fa0 | 61 73 68 20 3a 3a 20 50 69 65 63 65 49 6e 66 6f 20 2d 3e 20 50 69 65 63 65 49 78 20 2d 3e 20 50 | ash.::.PieceInfo.->.PieceIx.->.P |
4fc0 | 69 65 63 65 48 61 73 68 00 2d 2d 20 7c 20 45 78 74 72 61 63 74 20 76 61 6c 69 64 61 74 69 6f 6e | ieceHash.--.|.Extract.validation |
4fe0 | 20 68 61 73 68 20 62 79 20 73 70 65 63 69 66 69 65 64 20 70 69 65 63 65 20 69 6e 64 65 78 2e 00 | .hash.by.specified.piece.index.. |
5000 | 61 64 00 00 1b 00 00 00 4f 02 00 00 00 10 00 00 86 00 00 00 00 00 00 00 ed 0f 00 00 db 0f 00 00 | ad......O....................... |
5020 | c6 0f 00 00 b8 0f 00 00 a3 0f 00 00 91 0f 00 00 7e 0f 00 00 6f 0f 00 00 6e 0f 00 00 51 0f 00 00 | ................~...o...n...Q... |
5040 | 36 0f 00 00 1f 0f 00 00 06 0f 00 00 ef 0e 00 00 da 0e 00 00 c7 0e 00 00 ae 0e 00 00 94 0e 00 00 | 6............................... |
5060 | 74 0e 00 00 6d 0e 00 00 5c 0e 00 00 41 0e 00 00 29 0e 00 00 22 0e 00 00 f9 0d 00 00 dc 0d 00 00 | t...m...\...A...)..."........... |
5080 | b4 0d 00 00 8c 0d 00 00 64 0d 00 00 32 0d 00 00 0f 0d 00 00 fe 0c 00 00 e6 0c 00 00 d2 0c 00 00 | ........d...2................... |
50a0 | af 0c 00 00 9f 0c 00 00 89 0c 00 00 74 0c 00 00 62 0c 00 00 47 0c 00 00 34 0c 00 00 1e 0c 00 00 | ............t...b...G...4....... |
50c0 | ff 0b 00 00 e9 0b 00 00 cc 0b 00 00 b7 0b 00 00 9d 0b 00 00 79 0b 00 00 5b 0b 00 00 48 0b 00 00 | ....................y...[...H... |
50e0 | 1f 0b 00 00 01 0b 00 00 c8 0a 00 00 b1 0a 00 00 97 0a 00 00 87 0a 00 00 73 0a 00 00 5c 0a 00 00 | ........................s...\... |
5100 | 38 0a 00 00 23 0a 00 00 fd 09 00 00 e7 09 00 00 e0 09 00 00 d9 09 00 00 d8 09 00 00 c1 09 00 00 | 8...#........................... |
5120 | c0 09 00 00 bf 09 00 00 76 09 00 00 68 09 00 00 1f 09 00 00 17 09 00 00 14 09 00 00 e3 08 00 00 | ........v...h................... |
5140 | b2 08 00 00 81 08 00 00 7e 08 00 00 57 08 00 00 54 08 00 00 01 08 00 00 00 08 00 00 f3 07 00 00 | ........~...W...T............... |
5160 | f0 07 00 00 c1 07 00 00 c0 07 00 00 79 07 00 00 3c 07 00 00 1d 07 00 00 1c 07 00 00 09 07 00 00 | ............y...<............... |
5180 | f8 06 00 00 f7 06 00 00 d3 06 00 00 b3 06 00 00 80 06 00 00 7f 06 00 00 5c 06 00 00 3b 06 00 00 | ........................\...;... |
51a0 | 08 06 00 00 ea 05 00 00 e9 05 00 00 d0 05 00 00 97 05 00 00 77 05 00 00 51 05 00 00 22 05 00 00 | ....................w...Q..."... |
51c0 | 1b 05 00 00 1a 05 00 00 14 05 00 00 e8 04 00 00 af 04 00 00 8e 04 00 00 6b 04 00 00 64 04 00 00 | ........................k...d... |
51e0 | 63 04 00 00 62 04 00 00 2e 04 00 00 0c 04 00 00 e5 03 00 00 d0 03 00 00 cf 03 00 00 a5 03 00 00 | c...b........................... |
5200 | 90 03 00 00 8f 03 00 00 60 03 00 00 39 03 00 00 12 03 00 00 f4 02 00 00 f3 02 00 00 cc 02 00 00 | ........`...9................... |
5220 | af 02 00 00 7b 02 00 00 7a 02 00 00 4f 02 00 00 4e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ....{...z...O...N............... |
5240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2d 2d 20 7c 20 43 6f 6e 76 65 72 74 20 74 6f 20 62 | ...............--.|.Convert.to.b |
5260 | 61 73 65 31 36 20 65 6e 63 6f 64 65 64 20 44 6f 63 20 73 74 72 69 6e 67 2e 00 00 20 20 73 68 6f | ase16.encoded.Doc.string.....sho |
5280 | 77 20 28 49 6e 66 6f 48 61 73 68 20 69 68 29 20 3d 20 42 43 2e 75 6e 70 61 63 6b 20 28 42 61 73 | w.(InfoHash.ih).=.BC.unpack.(Bas |
52a0 | 65 31 36 2e 65 6e 63 6f 64 65 20 69 68 29 00 69 6e 73 74 61 6e 63 65 20 53 68 6f 77 20 49 6e 66 | e16.encode.ih).instance.Show.Inf |
52c0 | 6f 48 61 73 68 20 77 68 65 72 65 00 2d 2d 20 7c 20 43 6f 6e 76 65 72 74 20 74 6f 20 62 61 73 65 | oHash.where.--.|.Convert.to.base |
52e0 | 31 36 20 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 2e 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 | 16.encoded.string.....{-#.INLINE |
5300 | 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 23 2d 7d 00 20 20 74 6f 51 75 65 72 79 56 61 6c 75 65 | .toQueryValue.#-}...toQueryValue |
5320 | 20 28 49 6e 66 6f 48 61 73 68 20 69 68 29 20 3d 20 4a 75 73 74 20 69 68 00 69 6e 73 74 61 6e 63 | .(InfoHash.ih).=.Just.ih.instanc |
5340 | 65 20 51 75 65 72 79 56 61 6c 75 65 4c 69 6b 65 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 | e.QueryValueLike.InfoHash.where. |
5360 | 2d 2d 20 7c 20 43 6f 6e 76 65 72 74 20 74 6f 20 72 61 77 20 71 75 65 72 79 20 76 61 6c 75 65 2e | --.|.Convert.to.raw.query.value. |
5380 | 20 28 6e 6f 20 65 6e 63 6f 64 69 6e 67 29 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 67 65 74 | .(no.encoding)....{-#.INLINE.get |
53a0 | 20 23 2d 7d 00 20 20 67 65 74 20 3d 20 49 6e 66 6f 48 61 73 68 20 3c 24 3e 20 67 65 74 42 79 74 | .#-}...get.=.InfoHash.<$>.getByt |
53c0 | 65 73 20 69 6e 66 6f 48 61 73 68 4c 65 6e 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 70 75 74 | es.infoHashLen....{-#.INLINE.put |
53e0 | 20 23 2d 7d 00 20 20 70 75 74 20 28 49 6e 66 6f 48 61 73 68 20 69 68 29 20 3d 20 70 75 74 42 79 | .#-}...put.(InfoHash.ih).=.putBy |
5400 | 74 65 53 74 72 69 6e 67 20 69 68 00 69 6e 73 74 61 6e 63 65 20 53 65 72 69 61 6c 69 7a 65 20 49 | teString.ih.instance.Serialize.I |
5420 | 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 2d 2d 20 7c 20 43 6f 6e 76 65 72 74 20 74 6f 5c 2f 66 | nfoHash.where.--.|.Convert.to\/f |
5440 | 72 6f 6d 20 72 61 77 20 62 79 74 65 73 74 72 69 6e 67 2e 20 28 6e 6f 20 65 6e 63 6f 64 69 6e 67 | rom.raw.bytestring..(no.encoding |
5460 | 29 00 00 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 6d 73 67 20 3d 20 22 74 61 62 6c 65 4b 65 79 | )...#endif.......msg.=."tableKey |
5480 | 3a 20 69 6d 70 6f 73 73 69 62 6c 65 22 00 20 20 20 20 77 68 65 72 65 20 2d 2d 20 54 4f 44 4f 20 | :.impossible".....where.--.TODO. |
54a0 | 75 6e 73 61 66 65 20 63 6f 65 72 73 65 3f 00 20 20 74 6f 4e 6f 64 65 49 64 20 3d 20 65 69 74 68 | unsafe.coerse?...toNodeId.=.eith |
54c0 | 65 72 20 28 65 72 72 6f 72 20 6d 73 67 29 20 69 64 20 2e 20 53 2e 64 65 63 6f 64 65 20 2e 20 53 | er.(error.msg).id...S.decode...S |
54e0 | 2e 65 6e 63 6f 64 65 00 69 6e 73 74 61 6e 63 65 20 54 61 62 6c 65 4b 65 79 20 4b 4d 65 73 73 61 | .encode.instance.TableKey.KMessa |
5500 | 67 65 4f 66 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 23 69 66 20 30 00 00 23 65 6e 64 69 | geOf.InfoHash.where.#if.0..#endi |
5520 | 66 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 62 65 20 3d 20 49 6e 66 6f 48 61 73 68 20 3c 24 | f...fromBEncode.be.=.InfoHash.<$ |
5540 | 3e 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 62 65 00 20 20 74 6f 42 45 6e 63 6f 64 65 20 3d 20 74 | >.fromBEncode.be...toBEncode.=.t |
5560 | 6f 42 45 6e 63 6f 64 65 20 2e 20 67 65 74 49 6e 66 6f 48 61 73 68 00 69 6e 73 74 61 6e 63 65 20 | oBEncode...getInfoHash.instance. |
5580 | 42 45 6e 63 6f 64 65 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 2d 2d 20 7c 20 43 6f 6e 76 | BEncode.InfoHash.where.--.|.Conv |
55a0 | 65 72 74 20 74 6f 5c 2f 66 72 6f 6d 20 72 61 77 20 62 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 | ert.to\/from.raw.bencoded.string |
55c0 | 2e 20 28 6e 6f 20 65 6e 63 6f 64 69 6e 67 29 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 | ..(no.encoding).#ifdef.VERSION_b |
55e0 | 65 6e 63 6f 64 69 6e 67 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 68 61 73 68 57 69 74 68 53 | encoding....{-#.INLINE.hashWithS |
5600 | 61 6c 74 20 23 2d 7d 00 20 20 68 61 73 68 57 69 74 68 53 61 6c 74 20 73 20 28 49 6e 66 6f 48 61 | alt.#-}...hashWithSalt.s.(InfoHa |
5620 | 73 68 20 69 68 29 20 3d 20 68 61 73 68 57 69 74 68 53 61 6c 74 20 73 20 69 68 00 69 6e 73 74 61 | sh.ih).=.hashWithSalt.s.ih.insta |
5640 | 6e 63 65 20 48 61 73 68 61 62 6c 65 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 2d 2d 20 7c | nce.Hashable.InfoHash.where.--.| |
5660 | 20 48 61 73 68 20 72 61 77 20 62 79 74 65 73 2e 20 28 6e 6f 20 65 6e 63 6f 64 69 6e 67 29 00 00 | .Hash.raw.bytes..(no.encoding).. |
5680 | 20 20 64 65 66 20 3d 20 22 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 | ..def.=."01234567890123456789012 |
56a0 | 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 22 00 69 6e 73 74 61 6e 63 65 20 44 65 66 61 | 34567890123456789".instance.Defa |
56c0 | 75 6c 74 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 2d 2d 20 7c 20 4d 65 61 6e 69 6e 67 6c | ult.InfoHash.where.--.|.Meaningl |
56e0 | 65 73 73 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 76 61 6c 75 65 2e 00 00 69 6e 66 6f 48 61 73 68 | ess.placeholder.value...infoHash |
5700 | 4c 65 6e 20 3d 20 32 30 00 69 6e 66 6f 48 61 73 68 4c 65 6e 20 3a 3a 20 49 6e 74 00 00 20 20 64 | Len.=.20.infoHashLen.::.Int....d |
5720 | 65 72 69 76 69 6e 67 20 28 45 71 2c 20 4f 72 64 2c 20 54 79 70 65 61 62 6c 65 29 00 6e 65 77 74 | eriving.(Eq,.Ord,.Typeable).newt |
5740 | 79 70 65 20 49 6e 66 6f 48 61 73 68 20 3d 20 49 6e 66 6f 48 61 73 68 20 7b 20 67 65 74 49 6e 66 | ype.InfoHash.=.InfoHash.{.getInf |
5760 | 6f 48 61 73 68 20 3a 3a 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 20 7d 00 2d 2d 20 7c 20 45 78 | oHash.::.BS.ByteString.}.--.|.Ex |
5780 | 61 63 74 6c 79 20 32 30 20 62 79 74 65 73 20 6c 6f 6e 67 20 53 48 41 31 20 68 61 73 68 20 6f 66 | actly.20.bytes.long.SHA1.hash.of |
57a0 | 20 74 68 65 20 69 6e 66 6f 20 70 61 72 74 20 6f 66 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 2e 00 | .the.info.part.of.torrent.file.. |
57c0 | 00 2d 2d 20 49 6e 66 6f 68 61 73 68 20 69 73 20 61 20 75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 | .--.Infohash.is.a.unique.identif |
57e0 | 69 65 72 20 6f 66 20 74 6f 72 72 65 6e 74 2e 00 2d 2d 00 2d 2d 20 24 69 6e 66 6f 68 61 73 68 00 | ier.of.torrent..--.--.$infohash. |
5800 | 00 2d 2d 20 72 65 61 73 6f 6e 3a 20 62 79 74 65 73 74 72 69 6e 67 20 68 61 76 65 20 6f 76 65 72 | .--.reason:.bytestring.have.over |
5820 | 68 65 61 64 20 3d 20 38 20 77 6f 72 64 73 2c 20 77 68 69 6c 65 20 69 6e 66 6f 68 61 73 68 20 68 | head.=.8.words,.while.infohash.h |
5840 | 61 76 65 20 6c 65 6e 67 74 68 20 32 30 20 62 79 74 65 73 00 2d 2d 00 2d 2d 20 6e 65 77 74 79 70 | ave.length.20.bytes.--.--.newtyp |
5860 | 65 20 49 6e 66 6f 48 61 73 68 20 3d 20 49 6e 66 6f 48 61 73 68 20 57 6f 72 64 31 36 30 00 2d 2d | e.InfoHash.=.InfoHash.Word160.-- |
5880 | 00 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 23 20 55 | .--........................{-#.U |
58a0 | 4e 50 41 43 4b 20 23 2d 7d 20 21 57 6f 72 64 33 32 00 2d 2d 20 20 20 20 20 20 20 20 20 20 20 20 | NPACK.#-}.!Word32.--............ |
58c0 | 20 20 20 20 20 20 20 20 20 20 20 20 7b 2d 23 20 55 4e 50 41 43 4b 20 23 2d 7d 20 21 57 6f 72 64 | ............{-#.UNPACK.#-}.!Word |
58e0 | 36 34 00 2d 2d 20 64 61 74 61 20 57 6f 72 64 31 36 30 20 3d 20 57 6f 72 64 31 36 30 20 7b 2d 23 | 64.--.data.Word160.=.Word160.{-# |
5900 | 20 55 4e 50 41 43 4b 20 23 2d 7d 20 21 57 6f 72 64 36 34 00 2d 2d 00 2d 2d 20 54 4f 44 4f 00 2d | .UNPACK.#-}.!Word64.--.--.TODO.- |
5920 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
5940 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
5960 | 2d 2d 2d 2d 2d 2d 7d 00 2d 2d 20 20 49 6e 66 6f 20 68 61 73 68 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------}.--..Info.hash.{--------- |
5980 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
59a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 | ------------------------------.. |
59c0 | 00 69 6d 70 6f 72 74 20 4e 65 74 77 6f 72 6b 2e 41 64 64 72 65 73 73 00 00 23 65 6e 64 69 66 00 | .import.Network.Address..#endif. |
59e0 | 23 65 6e 64 69 66 00 69 6d 70 6f 72 74 20 4c 65 6e 73 2e 46 61 6d 69 6c 79 2e 54 48 00 23 65 6c | #endif.import.Lens.Family.TH.#el |
5a00 | 69 66 20 64 65 66 69 6e 65 64 28 56 45 52 53 49 4f 4e 5f 6c 65 6e 73 5f 66 61 6d 69 6c 79 5f 74 | if.defined(VERSION_lens_family_t |
5a20 | 68 29 00 69 6d 70 6f 72 74 20 4c 65 6e 73 2e 4d 69 63 72 6f 2e 54 48 00 23 65 6c 69 66 20 64 65 | h).import.Lens.Micro.TH.#elif.de |
5a40 | 66 69 6e 65 64 28 56 45 52 53 49 4f 4e 5f 6d 69 63 72 6f 6c 65 6e 73 5f 74 68 29 00 69 6d 70 6f | fined(VERSION_microlens_th).impo |
5a60 | 72 74 20 43 6f 6e 74 72 6f 6c 2e 4c 65 6e 73 2e 54 48 00 23 69 66 64 65 66 20 56 45 52 53 49 4f | rt.Control.Lens.TH.#ifdef.VERSIO |
5a80 | 4e 5f 6c 65 6e 73 00 23 69 66 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 69 6d 70 6f 72 74 20 53 79 | N_lens.#ifdef.USE_lens.import.Sy |
5aa0 | 73 74 65 6d 2e 50 6f 73 69 78 2e 54 79 70 65 73 00 69 6d 70 6f 72 74 20 53 79 73 74 65 6d 2e 46 | stem.Posix.Types.import.System.F |
5ac0 | 69 6c 65 50 61 74 68 00 69 6d 70 6f 72 74 20 54 65 78 74 2e 50 72 65 74 74 79 50 72 69 6e 74 2e | ilePath.import.Text.PrettyPrint. |
5ae0 | 48 75 67 68 65 73 50 4a 43 6c 61 73 73 20 68 69 64 69 6e 67 20 28 28 3c 3e 29 2c 28 24 24 29 29 | HughesPJClass.hiding.((<>),($$)) |
5b00 | 00 69 6d 70 6f 72 74 20 54 65 78 74 2e 50 72 65 74 74 79 50 72 69 6e 74 20 61 73 20 50 50 00 69 | .import.Text.PrettyPrint.as.PP.i |
5b20 | 6d 70 6f 72 74 20 54 65 78 74 2e 50 61 72 73 65 72 43 6f 6d 62 69 6e 61 74 6f 72 73 2e 52 65 61 | mport.Text.ParserCombinators.Rea |
5b40 | 64 50 20 61 73 20 50 00 69 6d 70 6f 72 74 20 4e 65 74 77 6f 72 6b 2e 55 52 49 00 69 6d 70 6f 72 | dP.as.P.import.Network.URI.impor |
5b60 | 74 20 4e 65 74 77 6f 72 6b 2e 48 54 54 50 2e 54 79 70 65 73 2e 55 52 49 00 69 6d 70 6f 72 74 20 | t.Network.HTTP.Types.URI.import. |
5b80 | 4e 65 74 77 6f 72 6b 2e 48 54 54 50 2e 54 79 70 65 73 2e 51 75 65 72 79 4c 69 6b 65 00 69 6d 70 | Network.HTTP.Types.QueryLike.imp |
5ba0 | 6f 72 74 20 4e 65 74 77 6f 72 6b 20 28 48 6f 73 74 4e 61 6d 65 29 00 69 6d 70 6f 72 74 20 44 61 | ort.Network.(HostName).import.Da |
5bc0 | 74 61 2e 54 79 70 65 61 62 6c 65 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 54 69 6d 65 2e 43 6c 6f | ta.Typeable.import.Data.Time.Clo |
5be0 | 63 6b 2e 50 4f 53 49 58 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 54 65 78 74 2e 52 65 61 64 00 69 | ck.POSIX.import.Data.Text.Read.i |
5c00 | 6d 70 6f 72 74 20 44 61 74 61 2e 54 65 78 74 2e 45 6e 63 6f 64 69 6e 67 20 61 73 20 54 00 69 6d | mport.Data.Text.Encoding.as.T.im |
5c20 | 70 6f 72 74 20 44 61 74 61 2e 54 65 78 74 20 61 73 20 54 00 69 6d 70 6f 72 74 20 44 61 74 61 2e | port.Data.Text.as.T.import.Data. |
5c40 | 53 74 72 69 6e 67 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 53 65 72 69 61 6c 69 7a 65 20 61 73 20 | String.import.Data.Serialize.as. |
5c60 | 53 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 4d 61 79 62 65 00 69 6d 70 6f 72 74 20 44 61 74 61 2e | S.import.Data.Maybe.import.Data. |
5c80 | 4d 61 70 20 61 73 20 4d 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 4c 69 73 74 20 61 73 20 4c 00 69 | Map.as.M.import.Data.List.as.L.i |
5ca0 | 6d 70 6f 72 74 20 44 61 74 61 2e 49 6e 74 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 48 61 73 68 61 | mport.Data.Int.import.Data.Hasha |
5cc0 | 62 6c 65 20 20 20 61 73 20 48 61 73 68 61 62 6c 65 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 44 65 | ble...as.Hashable.import.Data.De |
5ce0 | 66 61 75 6c 74 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 43 6f 6e 76 65 72 74 69 62 6c 65 00 69 6d | fault.import.Data.Convertible.im |
5d00 | 70 6f 72 74 20 44 61 74 61 2e 43 68 61 72 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 42 79 74 65 53 | port.Data.Char.import.Data.ByteS |
5d20 | 74 72 69 6e 67 2e 4c 61 7a 79 20 20 61 73 20 42 4c 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 42 79 | tring.Lazy..as.BL.import.Data.By |
5d40 | 74 65 53 74 72 69 6e 67 2e 43 68 61 72 38 20 61 73 20 42 43 20 28 70 61 63 6b 2c 20 75 6e 70 61 | teString.Char8.as.BC.(pack,.unpa |
5d60 | 63 6b 29 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 42 79 74 65 53 74 72 69 6e 67 2e 42 61 73 65 36 | ck).import.Data.ByteString.Base6 |
5d80 | 34 20 61 73 20 42 61 73 65 36 34 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 42 79 74 65 53 74 72 69 | 4.as.Base64.import.Data.ByteStri |
5da0 | 6e 67 2e 42 61 73 65 33 32 20 61 73 20 42 61 73 65 33 32 00 69 6d 70 6f 72 74 20 44 61 74 61 2e | ng.Base32.as.Base32.import.Data. |
5dc0 | 42 79 74 65 53 74 72 69 6e 67 2e 42 61 73 65 31 36 20 61 73 20 42 61 73 65 31 36 00 69 6d 70 6f | ByteString.Base16.as.Base16.impo |
5de0 | 72 74 20 44 61 74 61 2e 42 79 74 65 53 74 72 69 6e 67 20 61 73 20 42 53 00 69 6d 70 6f 72 74 20 | rt.Data.ByteString.as.BS.import. |
5e00 | 71 75 61 6c 69 66 69 65 64 20 44 61 74 61 2e 42 79 74 65 41 72 72 61 79 20 61 73 20 42 79 74 65 | qualified.Data.ByteArray.as.Byte |
5e20 | 73 00 23 65 6e 64 69 66 00 69 6d 70 6f 72 74 20 44 61 74 61 2e 42 69 74 73 2e 45 78 74 72 61 73 | s.#endif.import.Data.Bits.Extras |
5e40 | 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 69 74 73 5f 65 78 74 72 61 73 00 69 6d 70 6f | .#ifdef.VERSION_bits_extras.impo |
5e60 | 72 74 20 44 61 74 61 2e 42 69 74 73 00 23 65 6e 64 69 66 00 69 6d 70 6f 72 74 20 44 61 74 61 2e | rt.Data.Bits.#endif.import.Data. |
5e80 | 42 45 6e 63 6f 64 65 2e 54 79 70 65 73 20 61 73 20 42 45 00 69 6d 70 6f 72 74 20 44 61 74 61 2e | BEncode.Types.as.BE.import.Data. |
5ea0 | 42 45 6e 63 6f 64 65 20 61 73 20 42 45 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e | BEncode.as.BE.#ifdef.VERSION_ben |
5ec0 | 63 6f 64 69 6e 67 00 69 6d 70 6f 72 74 20 43 72 79 70 74 6f 2e 48 61 73 68 00 69 6d 70 6f 72 74 | coding.import.Crypto.Hash.import |
5ee0 | 20 43 6f 6e 74 72 6f 6c 2e 4d 6f 6e 61 64 00 2d 2d 20 69 6d 70 6f 72 74 20 43 6f 6e 74 72 6f 6c | .Control.Monad.--.import.Control |
5f00 | 2e 4c 65 6e 73 00 69 6d 70 6f 72 74 20 43 6f 6e 74 72 6f 6c 2e 45 78 63 65 70 74 69 6f 6e 00 69 | .Lens.import.Control.Exception.i |
5f20 | 6d 70 6f 72 74 20 43 6f 6e 74 72 6f 6c 2e 44 65 65 70 53 65 71 00 69 6d 70 6f 72 74 20 43 6f 6e | mport.Control.DeepSeq.import.Con |
5f40 | 74 72 6f 6c 2e 41 70 70 6c 69 63 61 74 69 76 65 00 69 6d 70 6f 72 74 20 50 72 65 6c 75 64 65 20 | trol.Applicative.import.Prelude. |
5f60 | 68 69 64 69 6e 67 20 28 28 3c 3e 29 29 00 00 20 20 20 20 20 20 20 29 20 77 68 65 72 65 00 20 20 | hiding.((<>)).........).where... |
5f80 | 20 20 20 20 20 2c 20 72 65 6e 64 65 72 55 52 4e 00 20 20 20 20 20 20 20 2c 20 70 61 72 73 65 55 | .....,.renderURN........,.parseU |
5fa0 | 52 4e 00 20 20 20 20 20 20 20 2c 20 69 6e 66 6f 68 61 73 68 55 52 4e 00 20 20 20 20 20 20 20 2c | RN........,.infohashURN........, |
5fc0 | 20 62 74 69 68 00 20 20 20 20 20 20 20 2c 20 4e 61 6d 65 73 70 61 63 65 49 64 00 20 20 20 20 20 | .btih........,.NamespaceId...... |
5fe0 | 20 20 2c 20 55 52 4e 20 28 2e 2e 29 00 20 20 20 20 20 20 20 20 20 2d 2d 20 2a 2a 20 55 52 4e 00 | ..,.URN.(..)..........--.**.URN. |
6000 | 61 64 00 00 2f 00 00 00 13 02 00 00 00 10 00 00 72 00 00 00 00 00 00 00 e1 0f 00 00 ca 0f 00 00 | ad../...........r............... |
6020 | c9 0f 00 00 a8 0f 00 00 8b 0f 00 00 6b 0f 00 00 2c 0f 00 00 05 0f 00 00 fb 0e 00 00 c5 0e 00 00 | ............k...,............... |
6040 | 90 0e 00 00 8f 0e 00 00 64 0e 00 00 47 0e 00 00 46 0e 00 00 21 0e 00 00 ef 0d 00 00 de 0d 00 00 | ........d...G...F...!........... |
6060 | a7 0d 00 00 65 0d 00 00 64 0d 00 00 24 0d 00 00 fb 0c 00 00 eb 0c 00 00 bb 0c 00 00 92 0c 00 00 | ....e...d...$................... |
6080 | 6c 0c 00 00 23 0c 00 00 f8 0b 00 00 f7 0b 00 00 d8 0b 00 00 b2 0b 00 00 89 0b 00 00 5e 0b 00 00 | l...#.......................^... |
60a0 | 5d 0b 00 00 3e 0b 00 00 0d 0b 00 00 ec 0a 00 00 b6 0a 00 00 94 0a 00 00 93 0a 00 00 57 0a 00 00 | ]...>.......................W... |
60c0 | 4d 0a 00 00 2b 0a 00 00 0c 0a 00 00 0b 0a 00 00 d3 09 00 00 b2 09 00 00 65 09 00 00 64 09 00 00 | M...+...................e...d... |
60e0 | 3c 09 00 00 0f 09 00 00 0e 09 00 00 d2 08 00 00 cf 08 00 00 9c 08 00 00 99 08 00 00 70 08 00 00 | <...........................p... |
6100 | 42 08 00 00 41 08 00 00 12 08 00 00 f6 07 00 00 c1 07 00 00 c0 07 00 00 87 07 00 00 6a 07 00 00 | B...A.......................j... |
6120 | 4c 07 00 00 4b 07 00 00 02 07 00 00 f4 06 00 00 ab 06 00 00 aa 06 00 00 8c 06 00 00 71 06 00 00 | L...K.......................q... |
6140 | 70 06 00 00 57 06 00 00 31 06 00 00 2a 06 00 00 29 06 00 00 fc 05 00 00 df 05 00 00 af 05 00 00 | p...W...1...*...)............... |
6160 | 87 05 00 00 86 05 00 00 67 05 00 00 39 05 00 00 f2 04 00 00 bf 04 00 00 be 04 00 00 a4 04 00 00 | ........g...9................... |
6180 | 61 04 00 00 1d 04 00 00 d7 03 00 00 a8 03 00 00 9f 03 00 00 7d 03 00 00 74 03 00 00 41 03 00 00 | a...................}...t...A... |
61a0 | 38 03 00 00 0e 03 00 00 05 03 00 00 dc 02 00 00 b9 02 00 00 a8 02 00 00 a7 02 00 00 97 02 00 00 | 8............................... |
61c0 | 89 02 00 00 6a 02 00 00 4b 02 00 00 2c 02 00 00 28 02 00 00 1b 02 00 00 14 02 00 00 13 02 00 00 | ....j...K...,...(............... |
61e0 | 12 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 65 6e 64 69 66 00 20 20 27 27 46 | ....................#endif...''F |
6220 | 69 6c 65 49 6e 66 6f 00 20 20 5d 00 20 20 2c 20 28 22 66 69 4e 61 6d 65 22 20 20 2c 20 22 66 69 | ileInfo...]...,.("fiName"..,."fi |
6240 | 6c 65 50 61 74 68 22 20 20 29 00 20 20 2c 20 28 22 66 69 4d 44 35 53 75 6d 22 2c 20 22 66 69 6c | lePath"..)...,.("fiMD5Sum",."fil |
6260 | 65 4d 44 35 53 75 6d 22 29 00 20 20 5b 20 28 22 66 69 4c 65 6e 67 74 68 22 2c 20 22 66 69 6c 65 | eMD5Sum")...[.("fiLength",."file |
6280 | 4c 65 6e 67 74 68 22 29 00 6d 61 6b 65 4c 65 6e 73 65 73 46 6f 72 00 23 69 66 64 65 66 20 55 53 | Length").makeLensesFor.#ifdef.US |
62a0 | 45 5f 6c 65 6e 73 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 00 20 20 20 20 20 20 20 | E_lens.................)........ |
62c0 | 20 20 20 20 20 20 20 20 2c 20 46 75 6e 63 74 6f 72 2c 20 46 6f 6c 64 61 62 6c 65 00 20 20 20 20 | ........,.Functor,.Foldable..... |
62e0 | 7d 20 64 65 72 69 76 69 6e 67 20 28 53 68 6f 77 2c 20 52 65 61 64 2c 20 45 71 2c 20 54 79 70 65 | }.deriving.(Show,.Read,.Eq,.Type |
6300 | 61 62 6c 65 00 20 20 20 20 20 20 2d 2d 00 20 20 20 20 20 20 2d 2d 20 20 20 3e 20 5b 22 64 69 72 | able.......--.......--...>.["dir |
6320 | 31 22 2c 20 22 64 69 72 32 22 2c 20 22 66 69 6c 65 2e 65 78 74 22 5d 00 20 20 20 20 20 20 2d 2d | 1",."dir2",."file.ext"].......-- |
6340 | 00 20 20 20 20 20 20 2d 2d 20 20 20 77 6f 75 6c 64 20 63 6f 6e 73 69 73 74 20 6f 66 20 74 68 72 | .......--...would.consist.of.thr |
6360 | 65 65 20 73 74 72 69 6e 67 20 65 6c 65 6d 65 6e 74 73 3a 00 20 20 20 20 20 20 2d 2d 00 20 20 20 | ee.string.elements:.......--.... |
6380 | 20 20 20 2d 2d 20 20 20 3e 20 22 64 69 72 31 2f 64 69 72 32 2f 66 69 6c 65 2e 65 78 74 22 00 20 | ...--...>."dir1/dir2/file.ext".. |
63a0 | 20 20 20 20 20 2d 2d 00 20 20 20 20 20 20 2d 2d 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 2e 20 20 | .....--.......--.the.filename... |
63c0 | 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 69 6c 65 3a 00 20 20 20 20 20 20 2d 2d 20 | For.example,.the.file:.......--. |
63e0 | 65 69 74 68 65 72 20 61 20 64 69 72 65 63 74 6f 72 79 20 6e 61 6d 65 20 6f 72 20 28 69 6e 20 74 | either.a.directory.name.or.(in.t |
6400 | 68 65 20 63 61 73 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 29 00 20 20 20 | he.case.of.the.last.element).... |
6420 | 20 20 20 2d 2d 20 70 61 74 68 20 61 6e 64 20 66 69 6c 65 6e 61 6d 65 2e 20 45 61 63 68 20 65 6c | ...--.path.and.filename..Each.el |
6440 | 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 6c 69 73 74 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f | ement.in.the.list.corresponds.to |
6460 | 00 20 20 20 20 20 20 2d 2d 20 5e 20 4f 6e 65 20 6f 72 20 6d 6f 72 65 20 73 74 72 69 6e 67 20 65 | .......--.^.One.or.more.string.e |
6480 | 6c 65 6d 65 6e 74 73 20 74 68 61 74 20 74 6f 67 65 74 68 65 72 20 72 65 70 72 65 73 65 6e 74 20 | lements.that.together.represent. |
64a0 | 74 68 65 00 20 20 20 20 2c 20 66 69 4e 61 6d 65 20 20 20 20 20 20 20 20 3a 3a 20 21 61 00 00 20 | the.....,.fiName........::.!a... |
64c0 | 20 20 20 20 20 2d 2d 20 74 6f 6f 6c 73 2c 20 6e 6f 74 20 62 79 20 62 69 74 74 6f 72 72 65 6e 74 | .....--.tools,.not.by.bittorrent |
64e0 | 20 70 72 6f 74 6f 63 6f 6c 20 69 74 73 65 6c 66 2e 00 20 20 20 20 20 20 2d 2d 20 5e 20 33 32 20 | .protocol.itself........--.^.32. |
6500 | 63 68 61 72 61 63 74 65 72 20 6c 6f 6e 67 20 4d 44 35 20 73 75 6d 20 6f 66 20 74 68 65 20 66 69 | character.long.MD5.sum.of.the.fi |
6520 | 6c 65 2e 20 20 55 73 65 64 20 62 79 20 74 68 69 72 64 2d 70 61 72 74 79 00 20 20 20 20 2c 20 66 | le...Used.by.third-party.....,.f |
6540 | 69 4d 44 35 53 75 6d 20 20 20 20 20 20 3a 3a 20 21 28 4d 61 79 62 65 20 42 53 2e 42 79 74 65 53 | iMD5Sum......::.!(Maybe.BS.ByteS |
6560 | 74 72 69 6e 67 29 00 20 20 20 20 20 20 2d 2d 20 54 4f 44 4f 20 75 6e 70 61 63 6b 65 64 20 4d 44 | tring).......--.TODO.unpacked.MD |
6580 | 35 20 73 75 6d 00 00 20 20 20 20 20 20 2d 2d 20 5e 20 4c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 | 5.sum........--.^.Length.of.the. |
65a0 | 66 69 6c 65 20 69 6e 20 62 79 74 65 73 2e 00 20 20 20 20 20 20 66 69 4c 65 6e 67 74 68 20 20 20 | file.in.bytes........fiLength... |
65c0 | 20 20 20 3a 3a 20 7b 2d 23 20 55 4e 50 41 43 4b 20 23 2d 7d 20 21 46 69 6c 65 53 69 7a 65 00 64 | ...::.{-#.UNPACK.#-}.!FileSize.d |
65e0 | 61 74 61 20 46 69 6c 65 49 6e 66 6f 20 61 20 3d 20 46 69 6c 65 49 6e 66 6f 20 7b 00 2d 2d 20 7c | ata.FileInfo.a.=.FileInfo.{.--.| |
6600 | 20 43 6f 6e 74 61 69 6e 20 6d 65 74 61 69 6e 66 6f 20 61 62 6f 75 74 20 6f 6e 65 20 73 69 6e 67 | .Contain.metainfo.about.one.sing |
6620 | 6c 65 20 66 69 6c 65 2e 00 00 23 65 6e 64 69 66 00 64 65 72 69 76 69 6e 67 20 69 6e 73 74 61 6e | le.file...#endif.deriving.instan |
6640 | 63 65 20 42 45 6e 63 6f 64 65 20 20 46 69 6c 65 4f 66 66 73 65 74 00 23 69 66 64 65 66 20 56 45 | ce.BEncode..FileOffset.#ifdef.VE |
6660 | 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 00 74 79 70 65 20 46 69 6c 65 53 69 7a 65 20 3d | RSION_bencoding..type.FileSize.= |
6680 | 20 46 69 6c 65 4f 66 66 73 65 74 00 2d 2d 20 7c 20 53 69 7a 65 20 6f 66 20 61 20 66 69 6c 65 20 | .FileOffset.--.|.Size.of.a.file. |
66a0 | 69 6e 20 62 79 74 65 73 2e 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | in.bytes...--------------------- |
66c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
66e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d 2d 20 20 46 69 6c 65 20 69 6e 66 | ------------------}.--..File.inf |
6700 | 6f 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | o.{----------------------------- |
6720 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
6740 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 73 68 6f 72 74 48 65 78 20 3d 20 54 2e 74 61 6b 65 20 37 20 | ----------..shortHex.=.T.take.7. |
6760 | 2e 20 6c 6f 6e 67 48 65 78 00 73 68 6f 72 74 48 65 78 20 3a 3a 20 49 6e 66 6f 48 61 73 68 20 2d | ..longHex.shortHex.::.InfoHash.- |
6780 | 3e 20 54 65 78 74 00 2d 2d 20 7c 20 54 68 65 20 73 61 6d 65 20 61 73 20 27 6c 6f 6e 67 48 65 78 | >.Text.--.|.The.same.as.'longHex |
67a0 | 27 2c 20 62 75 74 20 6f 6e 6c 79 20 66 69 72 73 74 20 37 20 63 68 61 72 61 63 74 65 72 73 2e 00 | ',.but.only.first.7.characters.. |
67c0 | 00 6c 6f 6e 67 48 65 78 20 3d 20 54 2e 64 65 63 6f 64 65 55 74 66 38 20 2e 20 42 61 73 65 31 36 | .longHex.=.T.decodeUtf8...Base16 |
67e0 | 2e 65 6e 63 6f 64 65 20 2e 20 67 65 74 49 6e 66 6f 48 61 73 68 00 6c 6f 6e 67 48 65 78 20 3a 3a | .encode...getInfoHash.longHex.:: |
6800 | 20 49 6e 66 6f 48 61 73 68 20 2d 3e 20 54 65 78 74 00 2d 2d 20 7c 20 48 65 78 20 65 6e 63 6f 64 | .InfoHash.->.Text.--.|.Hex.encod |
6820 | 65 20 69 6e 66 6f 68 61 73 68 20 74 6f 20 74 65 78 74 2c 20 66 75 6c 6c 20 6c 65 6e 67 74 68 2e | e.infohash.to.text,.full.length. |
6840 | 00 00 74 65 78 74 54 6f 49 6e 66 6f 48 61 73 68 20 3d 20 69 67 6e 6f 72 65 45 72 72 6f 72 4d 73 | ..textToInfoHash.=.ignoreErrorMs |
6860 | 67 20 2e 20 73 61 66 65 43 6f 6e 76 65 72 74 00 74 65 78 74 54 6f 49 6e 66 6f 48 61 73 68 20 3a | g...safeConvert.textToInfoHash.: |
6880 | 3a 20 54 65 78 74 20 2d 3e 20 4d 61 79 62 65 20 49 6e 66 6f 48 61 73 68 00 2d 2d 00 2d 2d 20 20 | :.Text.->.Maybe.InfoHash.--.--.. |
68a0 | 55 73 65 20 27 73 61 66 65 43 6f 6e 76 65 72 74 27 20 66 6f 72 20 64 65 74 61 69 6c 65 64 20 65 | Use.'safeConvert'.for.detailed.e |
68c0 | 72 72 6f 72 20 6d 65 73 73 61 67 65 73 2e 00 2d 2d 00 2d 2d 20 7c 20 54 72 69 65 73 20 62 6f 74 | rror.messages..--.--.|.Tries.bot |
68e0 | 68 20 62 61 73 65 31 36 20 61 6e 64 20 62 61 73 65 33 32 20 77 68 69 6c 65 20 64 65 63 6f 64 69 | h.base16.and.base32.while.decodi |
6900 | 6e 67 20 69 6e 66 6f 20 68 61 73 68 2e 00 00 69 67 6e 6f 72 65 45 72 72 6f 72 4d 73 67 20 3d 20 | ng.info.hash...ignoreErrorMsg.=. |
6920 | 65 69 74 68 65 72 20 28 63 6f 6e 73 74 20 4e 6f 74 68 69 6e 67 29 20 4a 75 73 74 00 69 67 6e 6f | either.(const.Nothing).Just.igno |
6940 | 72 65 45 72 72 6f 72 4d 73 67 20 3a 3a 20 45 69 74 68 65 72 20 61 20 62 20 2d 3e 20 4d 61 79 62 | reErrorMsg.::.Either.a.b.->.Mayb |
6960 | 65 20 62 00 00 20 20 66 72 6f 6d 53 74 72 69 6e 67 20 3d 20 65 69 74 68 65 72 20 28 65 72 72 6f | e.b....fromString.=.either.(erro |
6980 | 72 20 2e 20 70 72 65 74 74 79 43 6f 6e 76 65 72 74 45 72 72 6f 72 29 20 69 64 20 2e 20 73 61 66 | r...prettyConvertError).id...saf |
69a0 | 65 43 6f 6e 76 65 72 74 20 2e 20 54 2e 70 61 63 6b 00 69 6e 73 74 61 6e 63 65 20 49 73 53 74 72 | eConvert...T.pack.instance.IsStr |
69c0 | 69 6e 67 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 2d 2d 20 7c 20 44 65 63 6f 64 65 20 66 | ing.InfoHash.where.--.|.Decode.f |
69e0 | 72 6f 6d 20 62 61 73 65 31 36 5c 2f 62 61 73 65 33 32 5c 2f 62 61 73 65 36 34 20 65 6e 63 6f 64 | rom.base16\/base32\/base64.encod |
6a00 | 65 64 20 73 74 72 69 6e 67 2e 00 00 20 20 20 20 20 20 68 61 73 68 53 74 72 20 3d 20 54 2e 65 6e | ed.string.........hashStr.=.T.en |
6a20 | 63 6f 64 65 55 74 66 38 20 74 00 20 20 20 20 20 20 68 61 73 68 4c 65 6e 20 3d 20 42 53 2e 6c 65 | codeUtf8.t.......hashLen.=.BS.le |
6a40 | 6e 67 74 68 20 68 61 73 68 53 74 72 00 20 20 20 20 77 68 65 72 65 00 20 20 20 20 20 20 7c 20 20 | ngth.hashStr.....where.......|.. |
6a60 | 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 20 20 20 20 3d 20 63 6f 6e 76 45 72 72 6f 72 20 | ......otherwise.....=.convError. |
6a80 | 22 69 6e 76 61 6c 69 64 20 6c 65 6e 67 74 68 22 20 74 00 00 20 20 20 20 20 20 20 20 20 20 20 65 | "invalid.length".t.............e |
6aa0 | 6c 73 65 20 73 61 66 65 43 6f 6e 76 65 72 74 20 69 68 53 74 72 00 20 20 20 20 20 20 20 20 20 20 | lse.safeConvert.ihStr........... |
6ac0 | 20 74 68 65 6e 20 63 6f 6e 76 45 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 62 61 73 65 31 36 20 | .then.convError."invalid.base16. |
6ae0 | 65 6e 63 6f 64 69 6e 67 22 20 74 00 20 20 20 20 20 20 20 20 69 6e 20 69 66 20 42 53 2e 6c 65 6e | encoding".t.........in.if.BS.len |
6b00 | 67 74 68 20 69 6e 76 20 2f 3d 20 30 00 20 20 20 20 20 20 20 20 6c 65 74 20 28 69 68 53 74 72 2c | gth.inv./=.0.........let.(ihStr, |
6b20 | 20 69 6e 76 29 20 3d 20 42 61 73 65 31 36 2e 64 65 63 6f 64 65 20 68 61 73 68 53 74 72 00 20 20 | .inv).=.Base16.decode.hashStr... |
6b40 | 20 20 20 20 7c 20 20 20 20 20 20 68 61 73 68 4c 65 6e 20 3d 3d 20 34 30 20 20 20 3d 00 00 20 20 | ....|......hashLen.==.40...=.... |
6b60 | 20 20 20 20 20 20 20 20 52 69 67 68 74 20 69 68 53 74 72 20 2d 3e 20 73 61 66 65 43 6f 6e 76 65 | ........Right.ihStr.->.safeConve |
6b80 | 72 74 20 69 68 53 74 72 00 20 20 20 20 20 20 20 20 20 20 4c 65 66 74 20 20 6d 73 67 20 20 20 2d | rt.ihStr...........Left..msg...- |
6ba0 | 3e 20 63 6f 6e 76 45 72 72 6f 72 20 6d 73 67 20 74 00 20 20 20 20 20 20 20 20 63 61 73 65 20 42 | >.convError.msg.t.........case.B |
6bc0 | 61 73 65 33 32 2e 64 65 63 6f 64 65 20 68 61 73 68 53 74 72 20 6f 66 00 20 20 20 20 20 20 7c 20 | ase32.decode.hashStr.of.......|. |
6be0 | 20 20 20 20 20 68 61 73 68 4c 65 6e 20 3d 3d 20 33 32 20 20 20 3d 00 00 20 20 20 20 20 20 20 20 | .....hashLen.==.32...=.......... |
6c00 | 20 20 52 69 67 68 74 20 69 68 53 74 72 20 2d 3e 20 73 61 66 65 43 6f 6e 76 65 72 74 20 69 68 53 | ..Right.ihStr.->.safeConvert.ihS |
6c20 | 74 72 00 20 20 20 20 20 20 20 20 20 20 4c 65 66 74 20 20 6d 73 67 20 20 20 2d 3e 20 63 6f 6e 76 | tr...........Left..msg...->.conv |
6c40 | 45 72 72 6f 72 20 28 22 69 6e 76 61 6c 69 64 20 62 61 73 65 36 34 20 65 6e 63 6f 64 69 6e 67 20 | Error.("invalid.base64.encoding. |
6c60 | 22 20 2b 2b 20 6d 73 67 29 20 74 00 20 20 20 20 20 20 20 20 63 61 73 65 20 42 61 73 65 36 34 2e | ".++.msg).t.........case.Base64. |
6c80 | 64 65 63 6f 64 65 20 68 61 73 68 53 74 72 20 6f 66 00 20 20 20 20 20 20 7c 20 32 36 20 3c 3d 20 | decode.hashStr.of.......|.26.<=. |
6ca0 | 68 61 73 68 4c 65 6e 20 26 26 20 68 61 73 68 4c 65 6e 20 3c 3d 20 32 38 20 3d 00 20 20 20 20 20 | hashLen.&&.hashLen.<=.28.=...... |
6cc0 | 20 7c 20 32 30 20 3d 3d 20 68 61 73 68 4c 65 6e 20 3d 20 70 75 72 65 20 28 49 6e 66 6f 48 61 73 | .|.20.==.hashLen.=.pure.(InfoHas |
6ce0 | 68 20 68 61 73 68 53 74 72 29 00 20 20 73 61 66 65 43 6f 6e 76 65 72 74 20 74 00 69 6e 73 74 61 | h.hashStr)...safeConvert.t.insta |
6d00 | 6e 63 65 20 43 6f 6e 76 65 72 74 69 62 6c 65 20 54 65 78 74 20 49 6e 66 6f 48 61 73 68 20 77 68 | nce.Convertible.Text.InfoHash.wh |
6d20 | 65 72 65 00 2d 2d 20 7c 20 50 61 72 73 65 20 69 6e 66 6f 68 61 73 68 20 66 72 6f 6d 20 62 61 73 | ere.--.|.Parse.infohash.from.bas |
6d40 | 65 31 36 5c 2f 62 61 73 65 33 32 5c 2f 62 61 73 65 36 34 20 65 6e 63 6f 64 65 64 20 73 74 72 69 | e16\/base32\/base64.encoded.stri |
6d60 | 6e 67 2e 00 00 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 73 65 20 20 20 | ng.......|..........otherwise... |
6d80 | 20 20 20 20 20 20 20 3d 20 63 6f 6e 76 45 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 6c 65 6e 67 | .......=.convError."invalid.leng |
6da0 | 74 68 22 20 62 73 00 20 20 20 20 7c 20 42 53 2e 6c 65 6e 67 74 68 20 62 73 20 3d 3d 20 69 6e 66 | th".bs.....|.BS.length.bs.==.inf |
6dc0 | 6f 48 61 73 68 4c 65 6e 20 3d 20 70 75 72 65 20 28 49 6e 66 6f 48 61 73 68 20 62 73 29 00 20 20 | oHashLen.=.pure.(InfoHash.bs)... |
6de0 | 73 61 66 65 43 6f 6e 76 65 72 74 20 62 73 00 69 6e 73 74 61 6e 63 65 20 43 6f 6e 76 65 72 74 69 | safeConvert.bs.instance.Converti |
6e00 | 62 6c 65 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 | ble.BS.ByteString.InfoHash.where |
6e20 | 00 2d 2d 20 7c 20 43 6f 6e 76 65 72 74 20 72 61 77 20 62 79 74 65 73 20 74 6f 20 69 6e 66 6f 20 | .--.|.Convert.raw.bytes.to.info. |
6e40 | 68 61 73 68 2e 00 00 20 20 20 20 20 20 70 61 69 72 20 5f 20 20 20 20 20 20 20 20 20 20 20 20 3d | hash.........pair._............= |
6e60 | 20 5b 5d 00 20 20 20 20 20 20 70 61 69 72 20 28 61 20 3a 20 62 20 3a 20 78 73 29 20 3d 20 28 61 | .[].......pair.(a.:.b.:.xs).=.(a |
6e80 | 2c 20 62 29 20 3a 20 70 61 69 72 20 78 73 00 00 20 20 20 20 20 20 66 72 6f 6d 48 65 78 20 28 61 | ,.b).:.pair.xs........fromHex.(a |
6ea0 | 2c 20 62 29 20 3d 20 72 65 61 64 20 24 20 27 30 27 20 3a 20 27 78 27 20 3a 20 61 20 3a 20 62 20 | ,.b).=.read.$.'0'.:.'x'.:.a.:.b. |
6ec0 | 3a 20 5b 5d 00 20 20 20 20 20 20 64 65 63 6f 64 65 49 48 20 20 20 20 20 20 20 3d 20 42 53 2e 70 | :.[].......decodeIH.......=.BS.p |
6ee0 | 61 63 6b 20 2e 20 4c 2e 6d 61 70 20 66 72 6f 6d 48 65 78 20 2e 20 70 61 69 72 00 20 20 20 20 77 | ack...L.map.fromHex...pair.....w |
6f00 | 68 65 72 65 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 20 49 6e 66 6f 48 61 73 68 20 24 20 64 | here.......return.$.InfoHash.$.d |
6f20 | 65 63 6f 64 65 49 48 20 73 74 72 00 20 20 20 20 20 20 73 74 72 20 3c 2d 20 72 65 70 6c 69 63 61 | ecodeIH.str.......str.<-.replica |
6f40 | 74 65 4d 20 28 69 6e 66 6f 48 61 73 68 4c 65 6e 20 2a 20 32 29 20 28 73 61 74 69 73 66 79 20 69 | teM.(infoHashLen.*.2).(satisfy.i |
6f60 | 73 48 65 78 44 69 67 69 74 29 00 20 20 72 65 61 64 73 50 72 65 63 20 5f 20 3d 20 72 65 61 64 50 | sHexDigit)...readsPrec._.=.readP |
6f80 | 5f 74 6f 5f 53 20 24 20 64 6f 00 69 6e 73 74 61 6e 63 65 20 52 65 61 64 20 49 6e 66 6f 48 61 73 | _to_S.$.do.instance.Read.InfoHas |
6fa0 | 68 20 77 68 65 72 65 00 2d 2d 20 7c 20 52 65 61 64 20 62 61 73 65 31 36 20 65 6e 63 6f 64 65 64 | h.where.--.|.Read.base16.encoded |
6fc0 | 20 73 74 72 69 6e 67 2e 00 00 20 20 70 50 72 69 6e 74 20 3d 20 74 65 78 74 20 2e 20 73 68 6f 77 | .string.....pPrint.=.text...show |
6fe0 | 00 69 6e 73 74 61 6e 63 65 20 50 72 65 74 74 79 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 | .instance.Pretty.InfoHash.where. |
7000 | 61 64 00 00 20 00 00 00 3c 02 00 00 00 10 00 00 80 00 00 00 00 00 00 00 d1 0f 00 00 b0 0f 00 00 | ad......<....................... |
7020 | 9b 0f 00 00 9a 0f 00 00 81 0f 00 00 4f 0f 00 00 2a 0f 00 00 0d 0f 00 00 f0 0e 00 00 d5 0e 00 00 | ............O...*............... |
7040 | c6 0e 00 00 ab 0e 00 00 aa 0e 00 00 8c 0e 00 00 71 0e 00 00 56 0e 00 00 3d 0e 00 00 20 0e 00 00 | ................q...V...=....... |
7060 | 1f 0e 00 00 fe 0d 00 00 f7 0d 00 00 f6 0d 00 00 dd 0d 00 00 9e 0d 00 00 77 0d 00 00 5a 0d 00 00 | ........................w...Z... |
7080 | 3d 0d 00 00 22 0d 00 00 16 0d 00 00 15 0d 00 00 e0 0c 00 00 c9 0c 00 00 ae 0c 00 00 93 0c 00 00 | =..."........................... |
70a0 | 7a 0c 00 00 79 0c 00 00 49 0c 00 00 14 0c 00 00 f9 0b 00 00 f8 0b 00 00 cd 0b 00 00 b0 0b 00 00 | z...y...I....................... |
70c0 | a9 0b 00 00 a8 0b 00 00 79 0b 00 00 60 0b 00 00 27 0b 00 00 ff 0a 00 00 da 0a 00 00 d1 0a 00 00 | ........y...`...'............... |
70e0 | 95 0a 00 00 94 0a 00 00 7f 0a 00 00 3c 0a 00 00 13 0a 00 00 12 0a 00 00 c9 09 00 00 b9 09 00 00 | ............<................... |
7100 | 70 09 00 00 6f 09 00 00 32 09 00 00 2f 09 00 00 09 09 00 00 06 09 00 00 ce 08 00 00 cb 08 00 00 | p...o...2.../................... |
7120 | bb 08 00 00 ac 08 00 00 8f 08 00 00 61 08 00 00 5b 08 00 00 4d 08 00 00 15 08 00 00 e5 07 00 00 | ............a...[...M........... |
7140 | e4 07 00 00 a2 07 00 00 84 07 00 00 61 07 00 00 37 07 00 00 36 07 00 00 26 07 00 00 18 07 00 00 | ............a...7...6...&....... |
7160 | f7 06 00 00 d6 06 00 00 b5 06 00 00 b1 06 00 00 a2 06 00 00 9b 06 00 00 9a 06 00 00 79 06 00 00 | ............................y... |
7180 | 5e 06 00 00 3a 06 00 00 39 06 00 00 1c 06 00 00 fa 05 00 00 e2 05 00 00 e1 05 00 00 c8 05 00 00 | ^...:...9....................... |
71a0 | a5 05 00 00 84 05 00 00 7c 05 00 00 4d 05 00 00 1c 05 00 00 1b 05 00 00 ee 04 00 00 b5 04 00 00 | ........|...M................... |
71c0 | 8b 04 00 00 72 04 00 00 57 04 00 00 4d 04 00 00 4c 04 00 00 2a 04 00 00 f7 03 00 00 d0 03 00 00 | ....r...W...M...L...*........... |
71e0 | c9 03 00 00 c8 03 00 00 a7 03 00 00 7e 03 00 00 36 03 00 00 35 03 00 00 0b 03 00 00 e8 02 00 00 | ............~...6...5........... |
7200 | c6 02 00 00 a3 02 00 00 87 02 00 00 86 02 00 00 5e 02 00 00 3c 02 00 00 3b 02 00 00 00 00 00 00 | ................^...<...;....... |
7220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 73 4d 75 | ............................isMu |
7240 | 6c 74 69 46 69 6c 65 20 3a 3a 20 4c 61 79 6f 75 74 49 6e 66 6f 20 2d 3e 20 42 6f 6f 6c 00 2d 2d | ltiFile.::.LayoutInfo.->.Bool.-- |
7260 | 20 7c 20 54 65 73 74 20 69 66 20 74 68 69 73 20 69 73 20 6d 75 6c 74 69 66 69 6c 65 20 74 6f 72 | .|.Test.if.this.is.multifile.tor |
7280 | 72 65 6e 74 2e 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 69 73 53 69 6e 67 6c 65 46 69 6c 65 20 23 | rent...{-#.INLINE.isSingleFile.# |
72a0 | 2d 7d 00 69 73 53 69 6e 67 6c 65 46 69 6c 65 20 5f 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 | -}.isSingleFile._.............=. |
72c0 | 46 61 6c 73 65 00 69 73 53 69 6e 67 6c 65 46 69 6c 65 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 7d | False.isSingleFile.SingleFile.{} |
72e0 | 20 3d 20 54 72 75 65 00 69 73 53 69 6e 67 6c 65 46 69 6c 65 20 3a 3a 20 4c 61 79 6f 75 74 49 6e | .=.True.isSingleFile.::.LayoutIn |
7300 | 66 6f 20 2d 3e 20 42 6f 6f 6c 00 2d 2d 20 7c 20 54 65 73 74 20 69 66 20 74 68 69 73 20 69 73 20 | fo.->.Bool.--.|.Test.if.this.is. |
7320 | 73 69 6e 67 6c 65 20 66 69 6c 65 20 74 6f 72 72 65 6e 74 2e 00 00 20 20 70 50 72 69 6e 74 20 4d | single.file.torrent.....pPrint.M |
7340 | 75 6c 74 69 46 69 6c 65 20 20 7b 2e 2e 7d 20 3d 20 76 63 61 74 20 24 20 4c 2e 6d 61 70 20 28 70 | ultiFile..{..}.=.vcat.$.L.map.(p |
7360 | 50 72 69 6e 74 20 2e 20 6a 6f 69 6e 46 69 6c 65 50 61 74 68 29 20 6c 69 46 69 6c 65 73 00 20 20 | Print...joinFilePath).liFiles... |
7380 | 70 50 72 69 6e 74 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 2e 2e 7d 20 3d 20 70 50 72 69 6e 74 20 | pPrint.SingleFile.{..}.=.pPrint. |
73a0 | 6c 69 46 69 6c 65 00 69 6e 73 74 61 6e 63 65 20 50 72 65 74 74 79 20 4c 61 79 6f 75 74 49 6e 66 | liFile.instance.Pretty.LayoutInf |
73c0 | 6f 20 77 68 65 72 65 00 00 23 65 6e 64 69 66 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 3d 20 | o.where..#endif...fromBEncode.=. |
73e0 | 66 72 6f 6d 44 69 63 74 20 67 65 74 4c 61 79 6f 75 74 49 6e 66 6f 00 20 20 74 6f 42 45 6e 63 6f | fromDict.getLayoutInfo...toBEnco |
7400 | 64 65 20 20 20 3d 20 74 6f 44 69 63 74 20 2e 20 28 60 70 75 74 4c 61 79 6f 75 74 49 6e 66 6f 60 | de...=.toDict...(`putLayoutInfo` |
7420 | 20 65 6e 64 44 69 63 74 29 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 65 20 4c 61 79 6f 75 | .endDict).instance.BEncode.Layou |
7440 | 74 49 6e 66 6f 20 77 68 65 72 65 00 00 20 20 2e 3a 20 63 6f 6e 74 00 20 20 2e 3a 20 22 6e 61 6d | tInfo.where.....:.cont....:."nam |
7460 | 65 22 20 20 2e 3d 21 20 6c 69 44 69 72 4e 61 6d 65 00 20 20 20 20 20 22 66 69 6c 65 73 22 20 2e | e"...=!.liDirName......"files".. |
7480 | 3d 21 20 6c 69 46 69 6c 65 73 00 70 75 74 4c 61 79 6f 75 74 49 6e 66 6f 20 4d 75 6c 74 69 46 69 | =!.liFiles.putLayoutInfo.MultiFi |
74a0 | 6c 65 20 20 7b 2e 2e 7d 20 3d 20 5c 20 63 6f 6e 74 20 2d 3e 00 70 75 74 4c 61 79 6f 75 74 49 6e | le..{..}.=.\.cont.->.putLayoutIn |
74c0 | 66 6f 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 2e 2e 7d 20 3d 20 70 75 74 46 69 6c 65 49 6e 66 6f | fo.SingleFile.{..}.=.putFileInfo |
74e0 | 53 69 6e 67 6c 65 20 6c 69 46 69 6c 65 00 70 75 74 4c 61 79 6f 75 74 49 6e 66 6f 20 3a 3a 20 44 | Single.liFile.putLayoutInfo.::.D |
7500 | 61 74 61 2e 54 6f 72 72 65 6e 74 2e 50 75 74 20 4c 61 79 6f 75 74 49 6e 66 6f 00 00 20 20 20 20 | ata.Torrent.Put.LayoutInfo...... |
7520 | 6d 75 6c 74 69 20 20 3d 20 4d 75 6c 74 69 46 69 6c 65 20 20 3c 24 3e 21 20 22 66 69 6c 65 73 22 | multi..=.MultiFile..<$>!."files" |
7540 | 20 3c 2a 3e 21 20 22 6e 61 6d 65 22 00 20 20 20 20 73 69 6e 67 6c 65 20 3d 20 53 69 6e 67 6c 65 | .<*>!."name".....single.=.Single |
7560 | 46 69 6c 65 20 3c 24 3e 20 20 67 65 74 46 69 6c 65 49 6e 66 6f 53 69 6e 67 6c 65 00 20 20 77 68 | File.<$>..getFileInfoSingle...wh |
7580 | 65 72 65 00 67 65 74 4c 61 79 6f 75 74 49 6e 66 6f 20 3d 20 73 69 6e 67 6c 65 20 3c 7c 3e 20 6d | ere.getLayoutInfo.=.single.<|>.m |
75a0 | 75 6c 74 69 00 67 65 74 4c 61 79 6f 75 74 49 6e 66 6f 20 3a 3a 20 42 45 2e 47 65 74 20 4c 61 79 | ulti.getLayoutInfo.::.BE.Get.Lay |
75c0 | 6f 75 74 49 6e 66 6f 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 | outInfo.#ifdef.VERSION_bencoding |
75e0 | 00 00 20 20 64 65 66 20 3d 20 4d 75 6c 74 69 46 69 6c 65 20 5b 5d 20 22 22 00 69 6e 73 74 61 6e | ....def.=.MultiFile.[]."".instan |
7600 | 63 65 20 44 65 66 61 75 6c 74 20 4c 61 79 6f 75 74 49 6e 66 6f 20 77 68 65 72 65 00 2d 2d 20 7c | ce.Default.LayoutInfo.where.--.| |
7620 | 20 45 6d 70 74 79 20 6d 75 6c 74 69 66 69 6c 65 20 6c 61 79 6f 75 74 2e 00 00 20 20 72 6e 66 20 | .Empty.multifile.layout.....rnf. |
7640 | 4d 75 6c 74 69 46 69 6c 65 20 20 7b 2e 2e 7d 20 3d 20 72 6e 66 20 6c 69 46 69 6c 65 73 00 20 20 | MultiFile..{..}.=.rnf.liFiles... |
7660 | 72 6e 66 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 2e 2e 7d 20 3d 20 28 29 00 69 6e 73 74 61 6e 63 | rnf.SingleFile.{..}.=.().instanc |
7680 | 65 20 4e 46 44 61 74 61 20 4c 61 79 6f 75 74 49 6e 66 6f 20 77 68 65 72 65 00 00 23 65 6e 64 69 | e.NFData.LayoutInfo.where..#endi |
76a0 | 66 00 20 20 27 27 4c 61 79 6f 75 74 49 6e 66 6f 00 20 20 5d 00 20 20 2c 20 28 22 6c 69 44 69 72 | f...''LayoutInfo...]...,.("liDir |
76c0 | 4e 61 6d 65 22 2c 20 22 72 6f 6f 74 44 69 72 4e 61 6d 65 22 29 00 20 20 2c 20 28 22 6c 69 46 69 | Name",."rootDirName")...,.("liFi |
76e0 | 6c 65 73 22 20 20 2c 20 22 6d 75 6c 74 69 46 69 6c 65 22 20 20 29 00 20 20 5b 20 28 22 6c 69 46 | les"..,."multiFile"..)...[.("liF |
7700 | 69 6c 65 22 20 20 20 2c 20 22 73 69 6e 67 6c 65 46 69 6c 65 22 20 29 00 6d 61 6b 65 4c 65 6e 73 | ile"...,."singleFile".).makeLens |
7720 | 65 73 46 6f 72 00 23 69 66 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 00 20 20 20 20 7d 20 64 65 72 | esFor.#ifdef.USE_lens......}.der |
7740 | 69 76 69 6e 67 20 28 53 68 6f 77 2c 20 52 65 61 64 2c 20 45 71 2c 20 54 79 70 65 61 62 6c 65 29 | iving.(Show,.Read,.Eq,.Typeable) |
7760 | 00 20 20 20 20 2c 20 6c 69 44 69 72 4e 61 6d 65 20 20 3a 3a 20 21 42 53 2e 42 79 74 65 53 74 72 | .....,.liDirName..::.!BS.ByteStr |
7780 | 69 6e 67 00 20 20 20 20 20 20 2d 2d 20 73 74 6f 72 65 20 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 | ing.......--.store.all.the.files |
77a0 | 2e 00 20 20 20 20 20 20 2d 2d 20 7c 20 54 68 65 20 2f 73 75 67 67 65 73 74 65 64 2f 20 6e 61 6d | ........--.|.The./suggested/.nam |
77c0 | 65 20 6f 66 20 74 68 65 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 79 20 69 6e 20 77 68 69 63 68 | e.of.the.root.directory.in.which |
77e0 | 20 74 6f 00 00 20 20 20 20 20 20 6c 69 46 69 6c 65 73 20 20 20 20 3a 3a 20 21 5b 46 69 6c 65 49 | .to........liFiles....::.![FileI |
7800 | 6e 66 6f 20 5b 42 53 2e 42 79 74 65 53 74 72 69 6e 67 5d 5d 00 20 20 20 20 7b 20 2d 2d 20 7c 20 | nfo.[BS.ByteString]].....{.--.|. |
7820 | 4c 69 73 74 20 6f 66 20 74 68 65 20 61 6c 6c 20 66 69 6c 65 73 20 74 68 61 74 20 74 6f 72 72 65 | List.of.the.all.files.that.torre |
7840 | 6e 74 20 63 6f 6e 74 61 69 6e 73 2e 00 20 20 7c 20 4d 75 6c 74 69 46 69 6c 65 00 20 20 20 20 7d | nt.contains....|.MultiFile.....} |
7860 | 00 20 20 20 20 20 20 6c 69 46 69 6c 65 20 20 20 20 20 3a 3a 20 21 28 46 69 6c 65 49 6e 66 6f 20 | .......liFile.....::.!(FileInfo. |
7880 | 42 53 2e 42 79 74 65 53 74 72 69 6e 67 29 00 20 20 20 20 7b 20 2d 2d 20 7c 20 53 69 6e 67 6c 65 | BS.ByteString).....{.--.|.Single |
78a0 | 20 66 69 6c 65 20 69 6e 66 6f 2e 00 20 20 3d 20 53 69 6e 67 6c 65 46 69 6c 65 00 64 61 74 61 20 | .file.info....=.SingleFile.data. |
78c0 | 4c 61 79 6f 75 74 49 6e 66 6f 00 2d 2d 00 2d 2d 20 20 20 20 20 2a 20 4d 75 6c 74 69 70 6c 65 20 | LayoutInfo.--.--.....*.Multiple. |
78e0 | 66 69 6c 65 73 20 77 69 74 68 20 69 74 73 20 72 65 6c 61 74 69 76 65 20 66 69 6c 65 20 2f 70 61 | files.with.its.relative.file./pa |
7900 | 74 68 73 2f 2e 00 2d 2d 00 2d 2d 20 20 20 20 20 2a 20 53 69 6e 67 6c 65 20 66 69 6c 65 20 77 69 | ths/..--.--.....*.Single.file.wi |
7920 | 74 68 20 69 74 73 20 2f 6e 61 6d 65 2f 2e 00 2d 2d 00 2d 2d 20 7c 20 4f 72 69 67 69 6e 61 6c 20 | th.its./name/..--.--.|.Original. |
7940 | 28 66 6f 75 6e 64 20 69 6e 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 29 20 6c 61 79 6f 75 74 20 69 | (found.in.torrent.file).layout.i |
7960 | 6e 66 6f 20 69 73 20 65 69 74 68 65 72 3a 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | nfo.is.either:..---------------- |
7980 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
79a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d 2d 20 20 4c 61 79 | -----------------------}.--..Lay |
79c0 | 6f 75 74 20 69 6e 66 6f 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | out.info.{---------------------- |
79e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
7a00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 6a 6f 69 6e 46 69 6c 65 50 61 74 68 20 | -----------------..joinFilePath. |
7a20 | 3d 20 66 6d 61 70 20 28 42 53 2e 69 6e 74 65 72 63 61 6c 61 74 65 20 22 2f 22 29 00 6a 6f 69 6e | =.fmap.(BS.intercalate."/").join |
7a40 | 46 69 6c 65 50 61 74 68 20 3a 3a 20 46 69 6c 65 49 6e 66 6f 20 5b 42 53 2e 42 79 74 65 53 74 72 | FilePath.::.FileInfo.[BS.ByteStr |
7a60 | 69 6e 67 5d 20 2d 3e 20 46 69 6c 65 49 6e 66 6f 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 00 2d | ing].->.FileInfo.BS.ByteString.- |
7a80 | 2d 20 7c 20 4a 6f 69 6e 20 66 69 6c 65 20 70 61 74 68 2e 00 00 20 20 20 20 70 70 4d 44 35 20 6d | -.|.Join.file.path.......ppMD5.m |
7aa0 | 64 35 20 3d 20 22 4d 44 35 20 3a 20 22 20 3c 3e 20 74 65 78 74 20 28 73 68 6f 77 20 28 42 61 73 | d5.=."MD5.:.".<>.text.(show.(Bas |
7ac0 | 65 31 36 2e 65 6e 63 6f 64 65 20 6d 64 35 29 29 00 20 20 20 77 68 65 72 65 00 20 20 20 20 24 24 | e16.encode.md5))....where.....$$ |
7ae0 | 20 6d 61 79 62 65 20 50 50 2e 65 6d 70 74 79 20 70 70 4d 44 35 20 66 69 4d 44 35 53 75 6d 00 20 | .maybe.PP.empty.ppMD5.fiMD5Sum.. |
7b00 | 20 20 20 24 24 20 22 53 69 7a 65 3a 20 22 20 3c 3e 20 74 65 78 74 20 28 73 68 6f 77 20 66 69 4c | ...$$."Size:.".<>.text.(show.fiL |
7b20 | 65 6e 67 74 68 29 00 20 20 20 20 20 20 20 22 50 61 74 68 3a 20 22 20 3c 3e 20 74 65 78 74 20 28 | ength)........"Path:.".<>.text.( |
7b40 | 54 2e 75 6e 70 61 63 6b 20 28 54 2e 64 65 63 6f 64 65 55 74 66 38 20 66 69 4e 61 6d 65 29 29 00 | T.unpack.(T.decodeUtf8.fiName)). |
7b60 | 20 20 70 50 72 69 6e 74 20 46 69 6c 65 49 6e 66 6f 20 7b 2e 2e 7d 20 3d 00 69 6e 73 74 61 6e 63 | ..pPrint.FileInfo.{..}.=.instanc |
7b80 | 65 20 50 72 65 74 74 79 20 28 46 69 6c 65 49 6e 66 6f 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 | e.Pretty.(FileInfo.BS.ByteString |
7ba0 | 29 20 77 68 65 72 65 00 00 23 65 6e 64 69 66 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 66 72 6f | ).where..#endif...{-#.INLINE.fro |
7bc0 | 6d 42 45 6e 63 6f 64 65 20 23 2d 7d 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 3d 20 66 72 6f | mBEncode.#-}...fromBEncode.=.fro |
7be0 | 6d 44 69 63 74 20 67 65 74 46 69 6c 65 49 6e 66 6f 53 69 6e 67 6c 65 00 00 20 20 7b 2d 23 20 49 | mDict.getFileInfoSingle....{-#.I |
7c00 | 4e 4c 49 4e 45 20 74 6f 42 45 6e 63 6f 64 65 20 23 2d 7d 00 20 20 74 6f 42 45 6e 63 6f 64 65 20 | NLINE.toBEncode.#-}...toBEncode. |
7c20 | 3d 20 74 6f 44 69 63 74 20 2e 20 28 60 70 75 74 46 69 6c 65 49 6e 66 6f 53 69 6e 67 6c 65 60 20 | =.toDict...(`putFileInfoSingle`. |
7c40 | 65 6e 64 44 69 63 74 29 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 65 20 28 46 69 6c 65 49 | endDict).instance.BEncode.(FileI |
7c60 | 6e 66 6f 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 29 20 77 68 65 72 65 00 00 20 20 20 20 20 20 | nfo.BS.ByteString).where........ |
7c80 | 20 20 20 20 20 20 20 3c 2a 3e 21 20 22 6e 61 6d 65 22 00 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......<*>!."name".............. |
7ca0 | 3c 2a 3e 3f 20 22 6d 64 35 73 75 6d 22 00 20 20 20 20 46 69 6c 65 49 6e 66 6f 20 3c 24 3e 21 20 | <*>?."md5sum".....FileInfo.<$>!. |
7cc0 | 22 6c 65 6e 67 74 68 22 00 67 65 74 46 69 6c 65 49 6e 66 6f 53 69 6e 67 6c 65 20 3d 20 64 6f 00 | "length".getFileInfoSingle.=.do. |
7ce0 | 67 65 74 46 69 6c 65 49 6e 66 6f 53 69 6e 67 6c 65 20 3a 3a 20 42 45 2e 47 65 74 20 28 46 69 6c | getFileInfoSingle.::.BE.Get.(Fil |
7d00 | 65 49 6e 66 6f 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 29 00 00 20 20 20 20 2e 3a 20 63 6f 6e | eInfo.BS.ByteString).......:.con |
7d20 | 74 00 20 20 20 20 2e 3a 20 22 6e 61 6d 65 22 20 20 20 2e 3d 21 20 66 69 4e 61 6d 65 00 20 20 20 | t......:."name"....=!.fiName.... |
7d40 | 20 2e 3a 20 22 6d 64 35 73 75 6d 22 20 2e 3d 3f 20 66 69 4d 44 35 53 75 6d 00 20 20 20 20 20 20 | ..:."md5sum"..=?.fiMD5Sum....... |
7d60 | 20 22 6c 65 6e 67 74 68 22 20 2e 3d 21 20 66 69 4c 65 6e 67 74 68 00 70 75 74 46 69 6c 65 49 6e | ."length"..=!.fiLength.putFileIn |
7d80 | 66 6f 53 69 6e 67 6c 65 20 46 69 6c 65 49 6e 66 6f 20 7b 2e 2e 7d 20 63 6f 6e 74 20 3d 00 70 75 | foSingle.FileInfo.{..}.cont.=.pu |
7da0 | 74 46 69 6c 65 49 6e 66 6f 53 69 6e 67 6c 65 20 3a 3a 20 44 61 74 61 2e 54 6f 72 72 65 6e 74 2e | tFileInfoSingle.::.Data.Torrent. |
7dc0 | 50 75 74 20 28 46 69 6c 65 49 6e 66 6f 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 29 00 23 69 66 | Put.(FileInfo.BS.ByteString).#if |
7de0 | 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 00 23 65 6e 64 69 66 00 74 79 | def.VERSION_bencoding..#endif.ty |
7e00 | 70 65 20 50 75 74 20 61 20 3d 20 61 20 2d 3e 20 42 44 69 63 74 20 2d 3e 20 42 44 69 63 74 00 00 | pe.Put.a.=.a.->.BDict.->.BDict.. |
7e20 | 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 23 2d 7d 00 20 20 20 | ..{-#.INLINE.fromBEncode.#-}.... |
7e40 | 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 21 20 22 70 61 74 68 22 00 20 20 20 20 20 20 20 20 20 20 | ..........<*>!."path"........... |
7e60 | 20 20 20 3c 2a 3e 3f 20 22 6d 64 35 73 75 6d 22 00 20 20 20 20 46 69 6c 65 49 6e 66 6f 20 3c 24 | ...<*>?."md5sum".....FileInfo.<$ |
7e80 | 3e 21 20 22 6c 65 6e 67 74 68 22 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 3d 20 66 72 6f 6d | >!."length"...fromBEncode.=.from |
7ea0 | 44 69 63 74 20 24 20 64 6f 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 74 6f 42 45 6e 63 6f 64 | Dict.$.do....{-#.INLINE.toBEncod |
7ec0 | 65 20 23 2d 7d 00 20 20 20 20 2e 3a 20 65 6e 64 44 69 63 74 00 20 20 20 20 2e 3a 20 22 70 61 74 | e.#-}......:.endDict......:."pat |
7ee0 | 68 22 20 20 20 2e 3d 21 20 66 69 4e 61 6d 65 00 20 20 20 20 2e 3a 20 22 6d 64 35 73 75 6d 22 20 | h"....=!.fiName......:."md5sum". |
7f00 | 2e 3d 3f 20 66 69 4d 44 35 53 75 6d 00 20 20 20 20 20 20 20 22 6c 65 6e 67 74 68 22 20 2e 3d 21 | .=?.fiMD5Sum........"length"..=! |
7f20 | 20 66 69 4c 65 6e 67 74 68 00 20 20 74 6f 42 45 6e 63 6f 64 65 20 46 69 6c 65 49 6e 66 6f 20 7b | .fiLength...toBEncode.FileInfo.{ |
7f40 | 2e 2e 7d 20 3d 20 74 6f 44 69 63 74 20 24 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 65 20 | ..}.=.toDict.$.instance.BEncode. |
7f60 | 28 46 69 6c 65 49 6e 66 6f 20 5b 42 53 2e 42 79 74 65 53 74 72 69 6e 67 5d 29 20 77 68 65 72 65 | (FileInfo.[BS.ByteString]).where |
7f80 | 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 00 20 20 7b 2d 23 | .#ifdef.VERSION_bencoding....{-# |
7fa0 | 20 49 4e 4c 49 4e 45 20 72 6e 66 20 23 2d 7d 00 20 20 72 6e 66 20 46 69 6c 65 49 6e 66 6f 20 7b | .INLINE.rnf.#-}...rnf.FileInfo.{ |
7fc0 | 2e 2e 7d 20 3d 20 72 6e 66 20 66 69 4e 61 6d 65 00 69 6e 73 74 61 6e 63 65 20 4e 46 44 61 74 61 | ..}.=.rnf.fiName.instance.NFData |
7fe0 | 20 61 20 3d 3e 20 4e 46 44 61 74 61 20 28 46 69 6c 65 49 6e 66 6f 20 61 29 20 77 68 65 72 65 00 | .a.=>.NFData.(FileInfo.a).where. |
8000 | 61 64 00 00 1c 00 00 00 c4 01 00 00 00 10 00 00 63 00 00 00 00 00 00 00 e0 0f 00 00 bf 0f 00 00 | ad..............c............... |
8020 | a4 0f 00 00 a3 0f 00 00 68 0f 00 00 3b 0f 00 00 09 0f 00 00 d4 0e 00 00 b7 0e 00 00 b6 0e 00 00 | ........h...;................... |
8040 | 85 0e 00 00 5d 0e 00 00 1d 0e 00 00 cb 0d 00 00 ca 0d 00 00 a1 0d 00 00 82 0d 00 00 64 0d 00 00 | ....].......................d... |
8060 | 37 0d 00 00 36 0d 00 00 f1 0c 00 00 b3 0c 00 00 8c 0c 00 00 4e 0c 00 00 4d 0c 00 00 04 0c 00 00 | 7...6...............N...M....... |
8080 | 03 0c 00 00 bd 0b 00 00 79 0b 00 00 32 0b 00 00 1e 0b 00 00 1b 0b 00 00 f7 0a 00 00 f6 0a 00 00 | ........y...2................... |
80a0 | b0 0a 00 00 a5 0a 00 00 62 0a 00 00 27 0a 00 00 d8 09 00 00 9c 09 00 00 68 09 00 00 27 09 00 00 | ........b...'...........h...'... |
80c0 | fb 08 00 00 ce 08 00 00 c2 08 00 00 8f 08 00 00 5e 08 00 00 5d 08 00 00 16 08 00 00 cb 07 00 00 | ................^...]........... |
80e0 | b5 07 00 00 ad 07 00 00 9b 07 00 00 56 07 00 00 55 07 00 00 13 07 00 00 cf 06 00 00 b9 06 00 00 | ............V...U............... |
8100 | 9f 06 00 00 9e 06 00 00 55 06 00 00 54 06 00 00 3a 06 00 00 0e 06 00 00 cf 05 00 00 c7 05 00 00 | ........U...T...:............... |
8120 | 8e 05 00 00 5b 05 00 00 24 05 00 00 23 05 00 00 da 04 00 00 c6 04 00 00 7d 04 00 00 7c 04 00 00 | ....[...$...#...........}...|... |
8140 | 49 04 00 00 34 04 00 00 33 04 00 00 fe 03 00 00 fb 03 00 00 c1 03 00 00 7a 03 00 00 52 03 00 00 | I...4...3...............z...R... |
8160 | 4f 03 00 00 3a 03 00 00 39 03 00 00 02 03 00 00 ec 02 00 00 eb 02 00 00 d3 02 00 00 b6 02 00 00 | O...:...9....................... |
8180 | b5 02 00 00 8b 02 00 00 6b 02 00 00 52 02 00 00 31 02 00 00 30 02 00 00 fc 01 00 00 e8 01 00 00 | ........k...R...1...0........... |
81a0 | c4 01 00 00 c3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81c0 | 00 00 00 00 6d 69 6e 50 69 65 63 65 53 69 7a 65 20 3d 20 64 65 66 61 75 6c 74 42 6c 6f 63 6b 53 | ....minPieceSize.=.defaultBlockS |
81e0 | 69 7a 65 20 2a 20 34 00 6d 69 6e 50 69 65 63 65 53 69 7a 65 20 3a 3a 20 49 6e 74 00 2d 2d 20 7c | ize.*.4.minPieceSize.::.Int.--.| |
8200 | 20 50 69 65 63 65 20 73 69 7a 65 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 65 73 73 20 74 | .Piece.size.should.not.be.less.t |
8220 | 68 61 6e 20 74 68 69 73 20 76 61 6c 75 65 2e 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 6f 70 74 69 | han.this.value...{-#.INLINE.opti |
8240 | 6d 61 6c 50 69 65 63 65 43 6f 75 6e 74 20 23 2d 7d 00 6f 70 74 69 6d 61 6c 50 69 65 63 65 43 6f | malPieceCount.#-}.optimalPieceCo |
8260 | 75 6e 74 20 3d 20 31 30 30 30 00 6f 70 74 69 6d 61 6c 50 69 65 63 65 43 6f 75 6e 74 20 3a 3a 20 | unt.=.1000.optimalPieceCount.::. |
8280 | 50 69 65 63 65 43 6f 75 6e 74 00 2d 2d 20 7c 20 4f 70 74 69 6d 61 6c 20 6e 75 6d 62 65 72 20 6f | PieceCount.--.|.Optimal.number.o |
82a0 | 66 20 70 69 65 63 65 73 20 69 6e 20 74 6f 72 72 65 6e 74 2e 00 00 64 65 66 61 75 6c 74 42 6c 6f | f.pieces.in.torrent...defaultBlo |
82c0 | 63 6b 53 69 7a 65 20 3d 20 31 36 20 2a 20 31 30 32 34 00 64 65 66 61 75 6c 74 42 6c 6f 63 6b 53 | ckSize.=.16.*.1024.defaultBlockS |
82e0 | 69 7a 65 20 3a 3a 20 49 6e 74 00 00 74 79 70 65 20 50 69 65 63 65 43 6f 75 6e 74 20 3d 20 49 6e | ize.::.Int..type.PieceCount.=.In |
8300 | 74 00 2d 2d 20 7c 20 4e 75 6d 62 65 72 20 6f 66 20 70 69 65 63 65 73 20 69 6e 20 74 6f 72 72 65 | t.--.|.Number.of.pieces.in.torre |
8320 | 6e 74 20 6f 72 20 61 20 70 61 72 74 20 6f 66 20 74 6f 72 72 65 6e 74 2e 00 00 74 79 70 65 20 50 | nt.or.a.part.of.torrent...type.P |
8340 | 69 65 63 65 53 69 7a 65 20 3d 20 49 6e 74 00 2d 2d 00 2d 2d 20 20 20 61 62 6f 75 74 20 70 69 65 | ieceSize.=.Int.--.--...about.pie |
8360 | 63 65 20 73 69 7a 65 20 66 6f 72 20 6e 65 77 20 74 6f 72 72 65 6e 74 73 2e 00 2d 2d 20 20 20 73 | ce.size.for.new.torrents..--...s |
8380 | 65 6d 69 2d 73 74 61 6e 64 61 72 64 20 76 61 6c 75 65 73 2e 20 54 68 69 73 20 62 6f 75 6e 64 73 | emi-standard.values..This.bounds |
83a0 | 20 73 68 6f 75 6c 64 20 62 65 20 75 73 65 64 20 74 6f 20 6d 61 6b 65 20 64 65 63 69 73 69 6f 6e | .should.be.used.to.make.decision |
83c0 | 00 2d 2d 20 20 20 4e 4f 54 45 3a 20 48 61 76 65 20 6d 61 78 20 61 6e 64 20 6d 69 6e 20 73 69 7a | .--...NOTE:.Have.max.and.min.siz |
83e0 | 65 20 63 6f 6e 73 74 72 61 69 6e 65 64 20 74 6f 20 77 69 64 65 20 75 73 65 64 00 2d 2d 00 2d 2d | e.constrained.to.wide.used.--.-- |
8400 | 20 7c 20 53 69 7a 65 20 6f 66 20 70 69 65 63 65 20 69 6e 20 62 79 74 65 73 2e 20 53 68 6f 75 6c | .|.Size.of.piece.in.bytes..Shoul |
8420 | 64 20 62 65 20 61 20 70 6f 77 65 72 20 6f 66 20 32 2e 00 00 74 79 70 65 20 50 69 65 63 65 49 78 | d.be.a.power.of.2...type.PieceIx |
8440 | 20 20 20 3d 20 49 6e 74 00 2d 2d 20 7c 20 5a 65 72 6f 2d 62 61 73 65 64 20 69 6e 64 65 78 20 6f | ...=.Int.--.|.Zero-based.index.o |
8460 | 66 20 70 69 65 63 65 20 69 6e 20 74 6f 72 72 65 6e 74 20 63 6f 6e 74 65 6e 74 2e 00 00 2d 2d 2d | f.piece.in.torrent.content...--- |
8480 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
84a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
84c0 | 2d 2d 2d 2d 7d 00 2d 2d 20 50 69 65 63 65 20 61 74 74 72 69 62 75 74 65 73 00 7b 2d 2d 2d 2d 2d | ----}.--.Piece.attributes.{----- |
84e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
8500 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
8520 | 2d 2d 00 00 7b 2d 23 20 53 50 45 43 49 41 4c 49 5a 45 20 73 69 7a 65 49 6e 42 61 73 65 20 3a 3a | --..{-#.SPECIALIZE.sizeInBase.:: |
8540 | 20 49 6e 74 65 67 65 72 20 2d 3e 20 49 6e 74 20 2d 3e 20 49 6e 74 20 23 2d 7d 00 7b 2d 23 20 53 | .Integer.->.Int.->.Int.#-}.{-#.S |
8560 | 50 45 43 49 41 4c 49 5a 45 20 73 69 7a 65 49 6e 42 61 73 65 20 3a 3a 20 49 6e 74 20 2d 3e 20 49 | PECIALIZE.sizeInBase.::.Int.->.I |
8580 | 6e 74 20 2d 3e 20 49 6e 74 20 23 2d 7d 00 20 20 20 20 61 6c 69 67 6e 20 3d 20 69 66 20 6e 20 60 | nt.->.Int.#-}.....align.=.if.n.` |
85a0 | 6d 6f 64 60 20 66 72 6f 6d 49 6e 74 65 67 72 61 6c 20 62 20 3d 3d 20 30 20 74 68 65 6e 20 30 20 | mod`.fromIntegral.b.==.0.then.0. |
85c0 | 65 6c 73 65 20 31 00 20 20 77 68 65 72 65 00 73 69 7a 65 49 6e 42 61 73 65 20 6e 20 62 20 3d 20 | else.1...where.sizeInBase.n.b.=. |
85e0 | 66 72 6f 6d 49 6e 74 65 67 72 61 6c 20 28 6e 20 60 64 69 76 60 20 66 72 6f 6d 49 6e 74 65 67 72 | fromIntegral.(n.`div`.fromIntegr |
8600 | 61 6c 20 62 29 20 2b 20 61 6c 69 67 6e 00 73 69 7a 65 49 6e 42 61 73 65 20 3a 3a 20 49 6e 74 65 | al.b).+.align.sizeInBase.::.Inte |
8620 | 67 72 61 6c 20 61 20 3d 3e 20 61 20 2d 3e 20 49 6e 74 20 2d 3e 20 49 6e 74 00 2d 2d 20 7c 20 44 | gral.a.=>.a.->.Int.->.Int.--.|.D |
8640 | 69 76 69 64 65 20 61 6e 64 20 72 6f 75 6e 64 20 75 70 2e 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ivide.and.round.up...----------- |
8660 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
8680 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 7b | -----------------------------..{ |
86a0 | 2d 23 20 49 4e 4c 49 4e 45 20 66 69 6c 65 4f 66 66 73 65 74 20 23 2d 7d 00 66 69 6c 65 4f 66 66 | -#.INLINE.fileOffset.#-}.fileOff |
86c0 | 73 65 74 20 3d 20 4c 2e 6c 6f 6f 6b 75 70 00 66 69 6c 65 4f 66 66 73 65 74 20 3a 3a 20 46 69 6c | set.=.L.lookup.fileOffset.::.Fil |
86e0 | 65 50 61 74 68 20 2d 3e 20 46 69 6c 65 4c 61 79 6f 75 74 20 46 69 6c 65 4f 66 66 73 65 74 20 2d | ePath.->.FileLayout.FileOffset.- |
8700 | 3e 20 4d 61 79 62 65 20 46 69 6c 65 4f 66 66 73 65 74 00 2d 2d 20 7c 20 47 69 76 65 73 20 67 6c | >.Maybe.FileOffset.--.|.Gives.gl |
8720 | 6f 62 61 6c 20 6f 66 66 73 65 74 20 6f 66 20 61 20 63 6f 6e 74 65 6e 74 20 66 69 6c 65 20 66 6f | obal.offset.of.a.content.file.fo |
8740 | 72 20 61 20 67 69 76 65 6e 20 66 75 6c 6c 20 70 61 74 68 2e 00 00 20 20 20 20 67 6f 20 21 6f 66 | r.a.given.full.path.......go.!of |
8760 | 66 73 65 74 20 28 28 6e 2c 20 73 29 20 3a 20 78 73 29 20 3d 20 28 6e 2c 20 28 6f 66 66 73 65 74 | fset.((n,.s).:.xs).=.(n,.(offset |
8780 | 2c 20 73 29 29 20 3a 20 67 6f 20 28 6f 66 66 73 65 74 20 2b 20 73 29 20 78 73 00 20 20 20 20 67 | ,.s)).:.go.(offset.+.s).xs.....g |
87a0 | 6f 20 21 5f 20 5b 5d 20 3d 20 5b 5d 00 20 20 77 68 65 72 65 00 61 63 63 75 6d 50 6f 73 69 74 69 | o.!_.[].=.[]...where.accumPositi |
87c0 | 6f 6e 73 20 3d 20 67 6f 20 30 00 61 63 63 75 6d 50 6f 73 69 74 69 6f 6e 73 20 3a 3a 20 46 69 6c | ons.=.go.0.accumPositions.::.Fil |
87e0 | 65 4c 61 79 6f 75 74 20 46 69 6c 65 53 69 7a 65 20 2d 3e 20 46 69 6c 65 4c 61 79 6f 75 74 20 28 | eLayout.FileSize.->.FileLayout.( |
8800 | 46 69 6c 65 4f 66 66 73 65 74 2c 20 46 69 6c 65 53 69 7a 65 29 00 2d 2d 20 7c 20 43 61 6c 63 75 | FileOffset,.FileSize).--.|.Calcu |
8820 | 6c 61 74 65 20 6f 66 66 73 65 74 20 6f 66 20 65 61 63 68 20 66 69 6c 65 20 62 61 73 65 64 20 6f | late.offset.of.each.file.based.o |
8840 | 6e 20 69 74 73 20 6c 65 6e 67 74 68 2c 20 69 6e 63 72 65 6d 65 6e 74 61 6c 6c 79 2e 00 00 20 20 | n.its.length,.incrementally..... |
8860 | 20 20 20 20 20 20 20 20 20 3c 2f 3e 20 6a 6f 69 6e 50 61 74 68 20 28 4c 2e 6d 61 70 20 42 43 2e | .........</>.joinPath.(L.map.BC. |
8880 | 75 6e 70 61 63 6b 20 66 69 4e 61 6d 65 29 00 20 20 20 20 20 20 20 20 5f 70 61 74 68 20 3d 20 70 | unpack.fiName)........._path.=.p |
88a0 | 72 65 66 69 78 50 61 74 68 20 3c 2f 3e 20 42 43 2e 75 6e 70 61 63 6b 20 6c 69 44 69 72 4e 61 6d | refixPath.</>.BC.unpack.liDirNam |
88c0 | 65 00 20 20 20 20 20 20 77 68 65 72 65 00 20 20 20 20 6d 6b 50 61 74 68 20 46 69 6c 65 49 6e 66 | e.......where.....mkPath.FileInf |
88e0 | 6f 20 7b 2e 2e 7d 20 3d 20 28 5f 70 61 74 68 2c 20 66 69 4c 65 6e 67 74 68 29 00 20 20 77 68 65 | o.{..}.=.(_path,.fiLength)...whe |
8900 | 72 65 20 20 20 2d 2d 20 54 4f 44 4f 20 75 73 65 20 75 74 66 38 20 65 6e 63 6f 64 69 6e 67 20 69 | re...--.TODO.use.utf8.encoding.i |
8920 | 6e 20 6e 61 6d 65 00 66 6c 61 74 4c 61 79 6f 75 74 20 70 72 65 66 69 78 50 61 74 68 20 4d 75 6c | n.name.flatLayout.prefixPath.Mul |
8940 | 74 69 46 69 6c 65 20 20 7b 2e 2e 7d 20 20 20 20 20 3d 20 4c 2e 6d 61 70 20 6d 6b 50 61 74 68 20 | tiFile..{..}.....=.L.map.mkPath. |
8960 | 6c 69 46 69 6c 65 73 00 20 20 20 20 3d 20 5b 28 70 72 65 66 69 78 50 61 74 68 20 3c 2f 3e 20 42 | liFiles.....=.[(prefixPath.</>.B |
8980 | 43 2e 75 6e 70 61 63 6b 20 66 69 4e 61 6d 65 2c 20 66 69 4c 65 6e 67 74 68 29 5d 00 66 6c 61 74 | C.unpack.fiName,.fiLength)].flat |
89a0 | 4c 61 79 6f 75 74 20 70 72 65 66 69 78 50 61 74 68 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 20 6c | Layout.prefixPath.SingleFile.{.l |
89c0 | 69 46 69 6c 65 20 3d 20 46 69 6c 65 49 6e 66 6f 20 7b 2e 2e 7d 20 7d 00 20 20 2d 3e 20 46 69 6c | iFile.=.FileInfo.{..}.}...->.Fil |
89e0 | 65 4c 61 79 6f 75 74 20 46 69 6c 65 53 69 7a 65 20 2d 2d 20 5e 20 54 68 65 20 61 6c 6c 20 66 69 | eLayout.FileSize.--.^.The.all.fi |
8a00 | 6c 65 20 70 61 74 68 73 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 74 68 65 20 67 69 76 65 6e | le.paths.prefixed.with.the.given |
8a20 | 20 72 6f 6f 74 2e 00 20 20 2d 3e 20 4c 61 79 6f 75 74 49 6e 66 6f 20 20 20 20 20 20 20 20 20 20 | .root....->.LayoutInfo.......... |
8a40 | 2d 2d 20 5e 20 54 6f 72 72 65 6e 74 20 63 6f 6e 74 65 6e 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e | --.^.Torrent.content.information |
8a60 | 2e 00 20 20 3a 3a 20 46 69 6c 65 50 61 74 68 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d 20 5e 20 | ....::.FilePath............--.^. |
8a80 | 52 6f 6f 74 20 70 61 74 68 20 66 6f 72 20 74 68 65 20 61 6c 6c 20 74 6f 72 72 65 6e 74 20 66 69 | Root.path.for.the.all.torrent.fi |
8aa0 | 6c 65 73 2e 00 66 6c 61 74 4c 61 79 6f 75 74 00 2d 2d 20 7c 20 45 78 74 72 61 63 74 20 66 69 6c | les..flatLayout.--.|.Extract.fil |
8ac0 | 65 73 20 6c 61 79 6f 75 74 20 66 72 6f 6d 20 74 6f 72 72 65 6e 74 20 69 6e 66 6f 20 77 69 74 68 | es.layout.from.torrent.info.with |
8ae0 | 20 74 68 65 20 67 69 76 65 6e 20 72 6f 6f 74 20 70 61 74 68 2e 00 00 74 79 70 65 20 46 69 6c 65 | .the.given.root.path...type.File |
8b00 | 4c 61 79 6f 75 74 20 61 20 3d 20 5b 28 46 69 6c 65 50 61 74 68 2c 20 61 29 5d 00 2d 2d 00 2d 2d | Layout.a.=.[(FilePath,.a)].--.-- |
8b20 | 20 20 20 61 64 64 72 65 73 73 20 73 70 61 63 65 2e 00 2d 2d 20 20 20 63 6f 61 6c 65 73 63 65 20 | ...address.space..--...coalesce. |
8b40 | 61 6c 6c 20 74 68 65 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 67 69 76 65 6e 20 6f 72 64 65 72 | all.the.files.in.the.given.order |
8b60 | 20 74 6f 20 67 65 74 20 74 68 65 20 6c 69 6e 65 61 72 20 62 6c 6f 63 6b 00 2d 2d 20 20 20 73 74 | .to.get.the.linear.block.--...st |
8b80 | 6f 72 61 67 65 2e 20 4e 6f 74 65 20 74 68 61 74 20 6f 72 64 65 72 20 6f 66 20 66 69 6c 65 73 20 | orage..Note.that.order.of.files. |
8ba0 | 69 73 20 68 69 67 68 6c 79 20 69 6d 70 6f 72 74 61 6e 74 20 73 69 6e 63 65 20 77 65 00 2d 2d 20 | is.highly.important.since.we.--. |
8bc0 | 7c 20 46 69 6c 65 20 6c 61 79 6f 75 74 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 6f 72 64 65 | |.File.layout.specifies.the.orde |
8be0 | 72 20 61 6e 64 20 74 68 65 20 73 69 7a 65 20 6f 66 20 65 61 63 68 20 66 69 6c 65 20 69 6e 20 74 | r.and.the.size.of.each.file.in.t |
8c00 | 68 65 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | he..---------------------------- |
8c20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
8c40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 62 6c 6f 63 6b 43 6f 75 6e 74 20 62 6c 6b 53 69 7a 65 | ------------..blockCount.blkSize |
8c60 | 20 63 69 20 3d 20 63 6f 6e 74 65 6e 74 4c 65 6e 67 74 68 20 63 69 20 60 73 69 7a 65 49 6e 42 61 | .ci.=.contentLength.ci.`sizeInBa |
8c80 | 73 65 60 20 62 6c 6b 53 69 7a 65 00 62 6c 6f 63 6b 43 6f 75 6e 74 20 3a 3a 20 49 6e 74 20 2d 3e | se`.blkSize.blockCount.::.Int.-> |
8ca0 | 20 4c 61 79 6f 75 74 49 6e 66 6f 20 2d 3e 20 49 6e 74 00 2d 2d 20 6e 6f 74 20 61 20 6d 75 6c 74 | .LayoutInfo.->.Int.--.not.a.mult |
8cc0 | 69 70 6c 65 20 6f 66 20 62 6c 6f 63 6b 20 73 69 7a 65 20 74 68 65 6e 20 74 68 65 20 63 6f 75 6e | iple.of.block.size.then.the.coun |
8ce0 | 74 20 69 73 20 72 6f 75 6e 64 65 64 20 75 70 2e 00 2d 2d 20 7c 20 46 69 6e 64 20 6e 75 6d 62 65 | t.is.rounded.up..--.|.Find.numbe |
8d00 | 72 20 6f 66 20 62 6c 6f 63 6b 73 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 69 7a | r.of.blocks.of.the.specified.siz |
8d20 | 65 2e 20 49 66 20 74 6f 72 72 65 6e 74 20 73 69 7a 65 20 69 73 00 00 66 69 6c 65 43 6f 75 6e 74 | e..If.torrent.size.is..fileCount |
8d40 | 20 4d 75 6c 74 69 46 69 6c 65 20 20 7b 2e 2e 7d 20 3d 20 4c 2e 6c 65 6e 67 74 68 20 6c 69 46 69 | .MultiFile..{..}.=.L.length.liFi |
8d60 | 6c 65 73 00 66 69 6c 65 43 6f 75 6e 74 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 2e 2e 7d 20 3d 20 | les.fileCount.SingleFile.{..}.=. |
8d80 | 31 00 66 69 6c 65 43 6f 75 6e 74 20 3a 3a 20 4c 61 79 6f 75 74 49 6e 66 6f 20 2d 3e 20 49 6e 74 | 1.fileCount.::.LayoutInfo.->.Int |
8da0 | 00 2d 2d 20 7c 20 47 65 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e | .--.|.Get.number.of.all.files.in |
8dc0 | 20 74 6f 72 72 65 6e 74 2e 00 00 63 6f 6e 74 65 6e 74 4c 65 6e 67 74 68 20 4d 75 6c 74 69 46 69 | .torrent...contentLength.MultiFi |
8de0 | 6c 65 20 20 7b 20 6c 69 46 69 6c 65 73 20 3d 20 74 66 73 20 20 20 20 20 20 20 20 20 20 20 7d 20 | le..{.liFiles.=.tfs...........}. |
8e00 | 3d 20 4c 2e 73 75 6d 20 28 4c 2e 6d 61 70 20 66 69 4c 65 6e 67 74 68 20 74 66 73 29 00 63 6f 6e | =.L.sum.(L.map.fiLength.tfs).con |
8e20 | 74 65 6e 74 4c 65 6e 67 74 68 20 53 69 6e 67 6c 65 46 69 6c 65 20 7b 20 6c 69 46 69 6c 65 20 20 | tentLength.SingleFile.{.liFile.. |
8e40 | 3d 20 46 69 6c 65 49 6e 66 6f 20 7b 2e 2e 7d 20 7d 20 3d 20 66 69 4c 65 6e 67 74 68 00 63 6f 6e | =.FileInfo.{..}.}.=.fiLength.con |
8e60 | 74 65 6e 74 4c 65 6e 67 74 68 20 3a 3a 20 4c 61 79 6f 75 74 49 6e 66 6f 20 2d 3e 20 46 69 6c 65 | tentLength.::.LayoutInfo.->.File |
8e80 | 53 69 7a 65 00 2d 2d 20 7c 20 46 69 6e 64 20 73 75 6d 20 6f 66 20 73 69 7a 65 73 20 6f 66 20 74 | Size.--.|.Find.sum.of.sizes.of.t |
8ea0 | 68 65 20 61 6c 6c 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 73 2e 00 00 7b 2d 23 20 49 4e 4c 49 4e | he.all.torrent.files...{-#.INLIN |
8ec0 | 45 20 73 75 67 67 65 73 74 65 64 4e 61 6d 65 20 23 2d 7d 00 73 75 67 67 65 73 74 65 64 4e 61 6d | E.suggestedName.#-}.suggestedNam |
8ee0 | 65 20 20 4d 75 6c 74 69 46 69 6c 65 20 20 20 20 20 20 20 20 20 20 20 7b 2e 2e 7d 20 20 3d 20 6c | e..MultiFile...........{..}..=.l |
8f00 | 69 44 69 72 4e 61 6d 65 00 73 75 67 67 65 73 74 65 64 4e 61 6d 65 20 28 53 69 6e 67 6c 65 46 69 | iDirName.suggestedName.(SingleFi |
8f20 | 6c 65 20 46 69 6c 65 49 6e 66 6f 20 7b 2e 2e 7d 29 20 3d 20 66 69 4e 61 6d 65 00 73 75 67 67 65 | le.FileInfo.{..}).=.fiName.sugge |
8f40 | 73 74 65 64 4e 61 6d 65 20 3a 3a 20 4c 61 79 6f 75 74 49 6e 66 6f 20 2d 3e 20 42 53 2e 42 79 74 | stedName.::.LayoutInfo.->.BS.Byt |
8f60 | 65 53 74 72 69 6e 67 00 2d 2d 20 7c 20 47 65 74 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 6f 72 | eString.--.|.Get.name.of.the.tor |
8f80 | 72 65 6e 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 74 68 20 70 69 65 63 | rent.based.on.the.root.path.piec |
8fa0 | 65 2e 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 69 73 4d 75 6c 74 69 46 69 6c 65 20 23 2d 7d 00 69 | e...{-#.INLINE.isMultiFile.#-}.i |
8fc0 | 73 4d 75 6c 74 69 46 69 6c 65 20 5f 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 46 61 6c 73 65 00 | sMultiFile._............=.False. |
8fe0 | 69 73 4d 75 6c 74 69 46 69 6c 65 20 4d 75 6c 74 69 46 69 6c 65 20 7b 7d 20 3d 20 54 72 75 65 00 | isMultiFile.MultiFile.{}.=.True. |
9000 | 61 64 00 00 32 00 00 00 36 02 00 00 00 10 00 00 7a 00 00 00 00 00 00 00 e4 0f 00 00 e3 0f 00 00 | ad..2...6.......z............... |
9020 | 9c 0f 00 00 92 0f 00 00 7e 0f 00 00 5f 0f 00 00 43 0f 00 00 42 0f 00 00 2d 0f 00 00 12 0f 00 00 | ........~..._...C...B...-....... |
9040 | c9 0e 00 00 c3 0e 00 00 b0 0e 00 00 5d 0e 00 00 56 0e 00 00 55 0e 00 00 1a 0e 00 00 f9 0d 00 00 | ............]...V...U........... |
9060 | b4 0d 00 00 ac 0d 00 00 6d 0d 00 00 6c 0d 00 00 23 0d 00 00 15 0d 00 00 cc 0c 00 00 cb 0c 00 00 | ........m...l...#............... |
9080 | ac 0c 00 00 ab 0c 00 00 9b 0c 00 00 8d 0c 00 00 75 0c 00 00 74 0c 00 00 49 0c 00 00 11 0c 00 00 | ................u...t...I....... |
90a0 | fc 0b 00 00 d0 0b 00 00 a6 0b 00 00 a5 0b 00 00 93 0b 00 00 7e 0b 00 00 4d 0b 00 00 4c 0b 00 00 | ....................~...M...L... |
90c0 | 20 0b 00 00 fa 0a 00 00 f9 0a 00 00 d9 0a 00 00 b9 0a 00 00 6b 0a 00 00 6a 0a 00 00 49 0a 00 00 | ....................k...j...I... |
90e0 | 1b 0a 00 00 e1 09 00 00 e0 09 00 00 cb 09 00 00 9d 09 00 00 54 09 00 00 53 09 00 00 0a 09 00 00 | ....................T...S....... |
9100 | f9 08 00 00 b0 08 00 00 af 08 00 00 80 08 00 00 44 08 00 00 1e 08 00 00 05 08 00 00 f0 07 00 00 | ................D............... |
9120 | e9 07 00 00 dc 07 00 00 db 07 00 00 c5 07 00 00 a5 07 00 00 91 07 00 00 90 07 00 00 51 07 00 00 | ............................Q... |
9140 | 36 07 00 00 06 07 00 00 de 06 00 00 dd 06 00 00 bd 06 00 00 85 06 00 00 5d 06 00 00 5c 06 00 00 | 6.......................]...\... |
9160 | 4c 06 00 00 28 06 00 00 eb 05 00 00 ea 05 00 00 b6 05 00 00 79 05 00 00 72 05 00 00 71 05 00 00 | L...(...............y...r...q... |
9180 | 51 05 00 00 1c 05 00 00 1b 05 00 00 fa 04 00 00 e2 04 00 00 e1 04 00 00 e0 04 00 00 c7 04 00 00 | Q............................... |
91a0 | 9c 04 00 00 79 04 00 00 51 04 00 00 29 04 00 00 1d 04 00 00 1c 04 00 00 fb 03 00 00 e9 03 00 00 | ....y...Q...)................... |
91c0 | c7 03 00 00 ab 03 00 00 aa 03 00 00 89 03 00 00 57 03 00 00 31 03 00 00 2a 03 00 00 29 03 00 00 | ................W...1...*...)... |
91e0 | 10 03 00 00 f0 02 00 00 b1 02 00 00 b0 02 00 00 7a 02 00 00 4c 02 00 00 37 02 00 00 36 02 00 00 | ................z...L...7...6... |
9200 | 35 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 5............................... |
9220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7b 2d 23 20 49 4e 4c 49 4e | .......................{-#.INLIN |
9240 | 45 20 73 6c 69 63 65 20 23 2d 7d 00 73 6c 69 63 65 20 73 74 61 72 74 20 6c 65 6e 20 3d 20 42 53 | E.slice.#-}.slice.start.len.=.BS |
9260 | 2e 74 61 6b 65 20 6c 65 6e 20 2e 20 42 53 2e 64 72 6f 70 20 73 74 61 72 74 00 73 6c 69 63 65 20 | .take.len...BS.drop.start.slice. |
9280 | 3a 3a 20 49 6e 74 20 2d 3e 20 49 6e 74 20 2d 3e 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 20 2d | ::.Int.->.Int.->.BS.ByteString.- |
92a0 | 3e 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 00 00 20 20 70 50 72 69 6e 74 20 20 50 69 65 63 65 | >.BS.ByteString....pPrint..Piece |
92c0 | 49 6e 66 6f 20 7b 2e 2e 7d 20 3d 20 22 50 69 65 63 65 20 73 69 7a 65 3a 20 22 20 3c 3e 20 69 6e | Info.{..}.=."Piece.size:.".<>.in |
92e0 | 74 20 70 69 50 69 65 63 65 4c 65 6e 67 74 68 00 69 6e 73 74 61 6e 63 65 20 50 72 65 74 74 79 20 | t.piPieceLength.instance.Pretty. |
9300 | 50 69 65 63 65 49 6e 66 6f 20 77 68 65 72 65 00 2d 2d 20 7c 20 48 61 73 68 65 73 20 61 72 65 20 | PieceInfo.where.--.|.Hashes.are. |
9320 | 6f 6d 69 74 74 65 64 2e 00 00 23 65 6e 64 69 66 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 3d | omitted...#endif...fromBEncode.= |
9340 | 20 66 72 6f 6d 44 69 63 74 20 67 65 74 50 69 65 63 65 49 6e 66 6f 00 20 20 74 6f 42 45 6e 63 6f | .fromDict.getPieceInfo...toBEnco |
9360 | 64 65 20 20 20 3d 20 74 6f 44 69 63 74 20 2e 20 28 60 70 75 74 50 69 65 63 65 49 6e 66 6f 60 20 | de...=.toDict...(`putPieceInfo`. |
9380 | 65 6e 64 44 69 63 74 29 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 65 20 50 69 65 63 65 49 | endDict).instance.BEncode.PieceI |
93a0 | 6e 66 6f 20 77 68 65 72 65 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 21 20 22 70 | nfo.where................<*>!."p |
93c0 | 69 65 63 65 73 22 00 20 20 20 20 50 69 65 63 65 49 6e 66 6f 20 3c 24 3e 21 20 22 70 69 65 63 65 | ieces".....PieceInfo.<$>!."piece |
93e0 | 20 6c 65 6e 67 74 68 22 00 67 65 74 50 69 65 63 65 49 6e 66 6f 20 3d 20 64 6f 00 67 65 74 50 69 | .length".getPieceInfo.=.do.getPi |
9400 | 65 63 65 49 6e 66 6f 20 3a 3a 20 42 45 2e 47 65 74 20 50 69 65 63 65 49 6e 66 6f 00 00 20 20 20 | eceInfo.::.BE.Get.PieceInfo..... |
9420 | 20 2e 3a 20 63 6f 6e 74 00 20 20 20 20 2e 3a 20 22 70 69 65 63 65 73 22 20 20 20 20 20 20 20 2e | ..:.cont......:."pieces"........ |
9440 | 3d 21 20 70 69 50 69 65 63 65 48 61 73 68 65 73 00 20 20 20 20 20 20 20 22 70 69 65 63 65 20 6c | =!.piPieceHashes........"piece.l |
9460 | 65 6e 67 74 68 22 20 2e 3d 21 20 70 69 50 69 65 63 65 4c 65 6e 67 74 68 00 70 75 74 50 69 65 63 | ength"..=!.piPieceLength.putPiec |
9480 | 65 49 6e 66 6f 20 50 69 65 63 65 49 6e 66 6f 20 7b 2e 2e 7d 20 63 6f 6e 74 20 3d 00 70 75 74 50 | eInfo.PieceInfo.{..}.cont.=.putP |
94a0 | 69 65 63 65 49 6e 66 6f 20 3a 3a 20 44 61 74 61 2e 54 6f 72 72 65 6e 74 2e 50 75 74 20 50 69 65 | ieceInfo.::.Data.Torrent.Put.Pie |
94c0 | 63 65 49 6e 66 6f 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 | ceInfo.#ifdef.VERSION_bencoding. |
94e0 | 00 00 20 20 64 65 66 20 3d 20 50 69 65 63 65 49 6e 66 6f 20 31 20 64 65 66 00 69 6e 73 74 61 6e | ....def.=.PieceInfo.1.def.instan |
9500 | 63 65 20 44 65 66 61 75 6c 74 20 50 69 65 63 65 49 6e 66 6f 20 77 68 65 72 65 00 00 20 20 72 6e | ce.Default.PieceInfo.where....rn |
9520 | 66 20 28 50 69 65 63 65 49 6e 66 6f 20 61 20 28 48 61 73 68 4c 69 73 74 20 62 29 29 20 3d 20 72 | f.(PieceInfo.a.(HashList.b)).=.r |
9540 | 6e 66 20 61 20 60 73 65 71 60 20 72 6e 66 20 62 00 69 6e 73 74 61 6e 63 65 20 4e 46 44 61 74 61 | nf.a.`seq`.rnf.b.instance.NFData |
9560 | 20 50 69 65 63 65 49 6e 66 6f 20 77 68 65 72 65 00 00 23 65 6e 64 69 66 00 6d 61 6b 65 4c 65 6e | .PieceInfo.where..#endif.makeLen |
9580 | 73 65 73 46 6f 72 20 5b 28 22 70 69 50 69 65 63 65 48 61 73 68 65 73 22 2c 20 22 70 69 65 63 65 | sesFor.[("piPieceHashes",."piece |
95a0 | 48 61 73 68 65 73 22 29 5d 20 27 27 50 69 65 63 65 49 6e 66 6f 00 2d 2d 20 7c 20 43 6f 6e 63 61 | Hashes")].''PieceInfo.--.|.Conca |
95c0 | 74 65 6e 61 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 32 30 2d 62 79 74 65 20 53 48 41 31 20 68 61 73 | tenation.of.all.20-byte.SHA1.has |
95e0 | 68 20 76 61 6c 75 65 73 2e 00 00 6d 61 6b 65 4c 65 6e 73 65 73 46 6f 72 20 5b 28 22 70 69 50 69 | h.values...makeLensesFor.[("piPi |
9600 | 65 63 65 4c 65 6e 67 74 68 22 2c 20 22 70 69 65 63 65 4c 65 6e 67 74 68 22 29 5d 20 27 27 50 69 | eceLength",."pieceLength")].''Pi |
9620 | 65 63 65 49 6e 66 6f 00 2d 2d 20 7c 20 4e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 69 6e 20 | eceInfo.--.|.Number.of.bytes.in. |
9640 | 65 61 63 68 20 70 69 65 63 65 2e 00 23 69 66 64 65 66 20 55 53 45 5f 6c 65 6e 73 00 00 20 20 7d | each.piece..#ifdef.USE_lens....} |
9660 | 20 64 65 72 69 76 69 6e 67 20 28 53 68 6f 77 2c 20 52 65 61 64 2c 20 45 71 2c 20 54 79 70 65 61 | .deriving.(Show,.Read,.Eq,.Typea |
9680 | 62 6c 65 29 00 20 20 20 20 2d 2d 20 5e 20 43 6f 6e 63 61 74 65 6e 61 74 69 6f 6e 20 6f 66 20 61 | ble).....--.^.Concatenation.of.a |
96a0 | 6c 6c 20 32 30 2d 62 79 74 65 20 53 48 41 31 20 68 61 73 68 20 76 61 6c 75 65 73 2e 00 20 20 2c | ll.20-byte.SHA1.hash.values...., |
96c0 | 20 70 69 50 69 65 63 65 48 61 73 68 65 73 20 20 3a 3a 20 21 48 61 73 68 4c 69 73 74 00 00 20 20 | .piPieceHashes..::.!HashList.... |
96e0 | 20 20 2d 2d 20 5e 20 4e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 20 69 6e 20 65 61 63 68 20 70 | ..--.^.Number.of.bytes.in.each.p |
9700 | 69 65 63 65 2e 00 20 20 7b 20 70 69 50 69 65 63 65 4c 65 6e 67 74 68 20 20 3a 3a 20 7b 2d 23 20 | iece....{.piPieceLength..::.{-#. |
9720 | 55 4e 50 41 43 4b 20 23 2d 7d 20 21 50 69 65 63 65 53 69 7a 65 00 64 61 74 61 20 50 69 65 63 65 | UNPACK.#-}.!PieceSize.data.Piece |
9740 | 49 6e 66 6f 20 3d 20 50 69 65 63 65 49 6e 66 6f 00 2d 2d 20 7c 20 50 61 72 74 20 6f 66 20 74 6f | Info.=.PieceInfo.--.|.Part.of.to |
9760 | 72 72 65 6e 74 20 66 69 6c 65 20 75 73 65 64 20 66 6f 72 20 74 6f 72 72 65 6e 74 20 63 6f 6e 74 | rrent.file.used.for.torrent.cont |
9780 | 65 6e 74 20 76 61 6c 69 64 61 74 69 6f 6e 2e 00 00 20 20 64 65 66 20 3d 20 48 61 73 68 4c 69 73 | ent.validation.....def.=.HashLis |
97a0 | 74 20 22 22 00 69 6e 73 74 61 6e 63 65 20 44 65 66 61 75 6c 74 20 48 61 73 68 4c 69 73 74 20 77 | t."".instance.Default.HashList.w |
97c0 | 68 65 72 65 00 2d 2d 20 7c 20 45 6d 70 74 79 20 68 61 73 68 20 6c 69 73 74 2e 00 00 20 20 20 20 | here.--.|.Empty.hash.list....... |
97e0 | 20 20 20 20 20 20 20 29 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 20 20 20 20 20 2c 20 42 45 6e | .......).#endif............,.BEn |
9800 | 63 6f 64 65 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 20 20 | code.#ifdef.VERSION_bencoding... |
9820 | 64 65 72 69 76 69 6e 67 20 28 20 53 68 6f 77 2c 20 52 65 61 64 2c 20 45 71 2c 20 54 79 70 65 61 | deriving.(.Show,.Read,.Eq,.Typea |
9840 | 62 6c 65 00 6e 65 77 74 79 70 65 20 48 61 73 68 4c 69 73 74 20 3d 20 48 61 73 68 4c 69 73 74 20 | ble.newtype.HashList.=.HashList. |
9860 | 7b 20 75 6e 48 61 73 68 4c 69 73 74 20 3a 3a 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 20 7d 00 | {.unHashList.::.BS.ByteString.}. |
9880 | 2d 2d 20 7c 20 41 20 66 6c 61 74 20 61 72 72 61 79 20 6f 66 20 53 48 41 31 20 68 61 73 68 20 66 | --.|.A.flat.array.of.SHA1.hash.f |
98a0 | 6f 72 20 65 61 63 68 20 70 69 65 63 65 2e 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | or.each.piece...---------------- |
98c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
98e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d 2d 20 50 69 65 63 | -----------------------}.--.Piec |
9900 | 65 20 63 6f 6e 74 72 6f 6c 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | e.control.{--------------------- |
9920 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
9940 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 68 61 73 68 50 69 65 63 65 20 50 69 | ------------------..hashPiece.Pi |
9960 | 65 63 65 20 7b 2e 2e 7d 20 3d 20 42 79 74 65 73 2e 63 6f 6e 76 65 72 74 20 28 68 61 73 68 6c 61 | ece.{..}.=.Bytes.convert.(hashla |
9980 | 7a 79 20 70 69 65 63 65 44 61 74 61 20 3a 3a 20 44 69 67 65 73 74 20 53 48 41 31 29 00 68 61 73 | zy.pieceData.::.Digest.SHA1).has |
99a0 | 68 50 69 65 63 65 20 3a 3a 20 50 69 65 63 65 20 42 4c 2e 42 79 74 65 53 74 72 69 6e 67 20 2d 3e | hPiece.::.Piece.BL.ByteString.-> |
99c0 | 20 50 69 65 63 65 48 61 73 68 00 2d 2d 20 7c 20 47 65 74 20 70 69 65 63 65 20 68 61 73 68 2e 00 | .PieceHash.--.|.Get.piece.hash.. |
99e0 | 00 70 69 65 63 65 53 69 7a 65 20 50 69 65 63 65 20 7b 2e 2e 7d 20 3d 20 66 72 6f 6d 49 6e 74 65 | .pieceSize.Piece.{..}.=.fromInte |
9a00 | 67 72 61 6c 20 28 42 4c 2e 6c 65 6e 67 74 68 20 70 69 65 63 65 44 61 74 61 29 00 70 69 65 63 65 | gral.(BL.length.pieceData).piece |
9a20 | 53 69 7a 65 20 3a 3a 20 50 69 65 63 65 20 42 4c 2e 42 79 74 65 53 74 72 69 6e 67 20 2d 3e 20 50 | Size.::.Piece.BL.ByteString.->.P |
9a40 | 69 65 63 65 53 69 7a 65 00 2d 2d 20 7c 20 47 65 74 20 73 69 7a 65 20 6f 66 20 70 69 65 63 65 20 | ieceSize.--.|.Get.size.of.piece. |
9a60 | 69 6e 20 62 79 74 65 73 2e 00 00 20 20 70 50 72 69 6e 74 20 50 69 65 63 65 20 7b 2e 2e 7d 20 3d | in.bytes.....pPrint.Piece.{..}.= |
9a80 | 20 22 50 69 65 63 65 22 20 3c 2b 3e 20 62 72 61 63 65 73 20 28 22 69 6e 64 65 78 22 20 3c 2b 3e | ."Piece".<+>.braces.("index".<+> |
9aa0 | 20 22 3d 22 20 3c 2b 3e 20 69 6e 74 20 70 69 65 63 65 49 6e 64 65 78 29 00 69 6e 73 74 61 6e 63 | ."=".<+>.int.pieceIndex).instanc |
9ac0 | 65 20 50 72 65 74 74 79 20 28 50 69 65 63 65 20 61 29 20 77 68 65 72 65 00 2d 2d 20 7c 20 50 61 | e.Pretty.(Piece.a).where.--.|.Pa |
9ae0 | 79 6c 6f 61 64 20 62 79 74 65 73 20 61 72 65 20 6f 6d 69 74 74 65 64 2e 00 00 20 20 72 6e 66 20 | yload.bytes.are.omitted.....rnf. |
9b00 | 28 50 69 65 63 65 20 61 20 62 29 20 3d 20 72 6e 66 20 61 20 60 73 65 71 60 20 72 6e 66 20 62 00 | (Piece.a.b).=.rnf.a.`seq`.rnf.b. |
9b20 | 69 6e 73 74 61 6e 63 65 20 4e 46 44 61 74 61 20 61 20 3d 3e 20 4e 46 44 61 74 61 20 28 50 69 65 | instance.NFData.a.=>.NFData.(Pie |
9b40 | 63 65 20 61 29 20 77 68 65 72 65 00 00 20 20 7d 20 64 65 72 69 76 69 6e 67 20 28 53 68 6f 77 2c | ce.a).where....}.deriving.(Show, |
9b60 | 20 52 65 61 64 2c 20 45 71 2c 20 46 75 6e 63 74 6f 72 2c 20 54 79 70 65 61 62 6c 65 29 00 20 20 | .Read,.Eq,.Functor,.Typeable)... |
9b80 | 2c 20 70 69 65 63 65 44 61 74 61 20 20 3a 3a 20 21 61 00 20 20 20 20 2d 2d 20 7c 20 50 61 79 6c | ,.pieceData..::.!a.....--.|.Payl |
9ba0 | 6f 61 64 2e 00 00 20 20 20 20 70 69 65 63 65 49 6e 64 65 78 20 3a 3a 20 7b 2d 23 20 55 4e 50 41 | oad.......pieceIndex.::.{-#.UNPA |
9bc0 | 43 4b 20 23 2d 7d 20 21 50 69 65 63 65 49 78 00 20 20 7b 20 2d 2d 20 7c 20 5a 65 72 6f 2d 62 61 | CK.#-}.!PieceIx...{.--.|.Zero-ba |
9be0 | 73 65 64 20 70 69 65 63 65 20 69 6e 64 65 78 20 69 6e 20 74 6f 72 72 65 6e 74 2e 00 64 61 74 61 | sed.piece.index.in.torrent..data |
9c00 | 20 50 69 65 63 65 20 61 20 3d 20 50 69 65 63 65 00 2d 2d 20 7c 20 50 69 65 63 65 20 70 61 79 6c | .Piece.a.=.Piece.--.|.Piece.payl |
9c20 | 6f 61 64 20 73 68 6f 75 6c 64 20 62 65 20 73 74 72 69 63 74 20 6f 72 20 6c 61 7a 79 20 62 79 74 | oad.should.be.strict.or.lazy.byt |
9c40 | 65 73 74 72 69 6e 67 2e 00 2d 2d 20 54 4f 44 4f 20 63 68 65 63 6b 20 69 66 20 70 69 65 63 65 4c | estring..--.TODO.check.if.pieceL |
9c60 | 65 6e 67 74 68 20 69 73 20 70 6f 77 65 72 20 6f 66 20 32 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 | ength.is.power.of.2..{-#.INLINE. |
9c80 | 68 61 73 68 73 69 7a 65 20 23 2d 7d 00 68 61 73 68 73 69 7a 65 20 3d 20 32 30 00 68 61 73 68 73 | hashsize.#-}.hashsize.=.20.hashs |
9ca0 | 69 7a 65 20 3a 3a 20 49 6e 74 00 00 74 79 70 65 20 50 69 65 63 65 48 61 73 68 20 3d 20 42 53 2e | ize.::.Int..type.PieceHash.=.BS. |
9cc0 | 42 79 74 65 53 74 72 69 6e 67 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ByteString..-------------------- |
9ce0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
9d00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d 2d 20 50 69 65 63 65 20 64 61 | -------------------}.--.Piece.da |
9d20 | 74 61 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ta.{---------------------------- |
9d40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
9d60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 20 20 70 63 20 3d 20 66 72 6f 6d 49 6e 74 65 67 72 | -----------......pc.=.fromIntegr |
9d80 | 61 6c 20 28 78 20 60 64 69 76 60 20 66 72 6f 6d 49 6e 74 65 67 72 61 6c 20 6f 70 74 69 6d 61 6c | al.(x.`div`.fromIntegral.optimal |
9da0 | 50 69 65 63 65 43 6f 75 6e 74 29 00 20 20 77 68 65 72 65 00 64 65 66 61 75 6c 74 50 69 65 63 65 | PieceCount)...where.defaultPiece |
9dc0 | 53 69 7a 65 20 78 20 3d 20 6d 61 78 20 6d 69 6e 50 69 65 63 65 53 69 7a 65 20 24 20 6d 69 6e 20 | Size.x.=.max.minPieceSize.$.min. |
9de0 | 6d 61 78 50 69 65 63 65 53 69 7a 65 20 24 20 74 6f 50 6f 77 32 20 70 63 00 64 65 66 61 75 6c 74 | maxPieceSize.$.toPow2.pc.default |
9e00 | 50 69 65 63 65 53 69 7a 65 20 3a 3a 20 49 6e 74 36 34 20 2d 3e 20 49 6e 74 00 2d 2d 20 7c 20 46 | PieceSize.::.Int64.->.Int.--.|.F |
9e20 | 69 6e 64 20 74 68 65 20 6f 70 74 69 6d 61 6c 20 70 69 65 63 65 20 73 69 7a 65 20 66 6f 72 20 61 | ind.the.optimal.piece.size.for.a |
9e40 | 20 67 69 76 65 6e 20 74 6f 72 72 65 6e 74 20 73 69 7a 65 2e 00 00 23 65 6e 64 69 66 00 74 6f 50 | .given.torrent.size...#endif.toP |
9e60 | 6f 77 32 20 78 20 3d 20 62 69 74 20 24 20 66 72 6f 6d 49 6e 74 65 67 72 61 6c 20 28 63 6f 75 6e | ow2.x.=.bit.$.fromIntegral.(coun |
9e80 | 74 4c 65 61 64 69 6e 67 5a 65 72 6f 73 20 28 30 20 3a 3a 20 49 6e 74 29 20 2d 20 63 6f 75 6e 74 | tLeadingZeros.(0.::.Int).-.count |
9ea0 | 4c 65 61 64 69 6e 67 5a 65 72 6f 73 20 78 29 00 2d 2d 20 62 61 73 65 20 3e 3d 20 34 2e 38 2e 30 | LeadingZeros.x).--.base.>=.4.8.0 |
9ec0 | 2e 30 00 23 65 6c 73 65 00 74 6f 50 6f 77 32 20 78 20 3d 20 62 69 74 20 24 20 66 72 6f 6d 49 6e | .0.#else.toPow2.x.=.bit.$.fromIn |
9ee0 | 74 65 67 72 61 6c 20 28 6c 65 61 64 69 6e 67 5a 65 72 6f 73 20 28 30 20 3a 3a 20 49 6e 74 29 20 | tegral.(leadingZeros.(0.::.Int). |
9f00 | 2d 20 6c 65 61 64 69 6e 67 5a 65 72 6f 73 20 78 29 00 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e | -.leadingZeros.x).#ifdef.VERSION |
9f20 | 5f 62 69 74 73 5f 65 78 74 72 61 73 00 74 6f 50 6f 77 32 20 3a 3a 20 49 6e 74 20 2d 3e 20 49 6e | _bits_extras.toPow2.::.Int.->.In |
9f40 | 74 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 6d 61 78 50 69 65 63 65 53 69 7a 65 20 23 2d 7d 00 6d | t..{-#.INLINE.maxPieceSize.#-}.m |
9f60 | 61 78 50 69 65 63 65 53 69 7a 65 20 3d 20 34 20 2a 20 31 30 32 34 20 2a 20 31 30 32 34 00 6d 61 | axPieceSize.=.4.*.1024.*.1024.ma |
9f80 | 78 50 69 65 63 65 53 69 7a 65 20 3a 3a 20 49 6e 74 00 2d 2d 20 76 61 6c 75 65 2e 00 2d 2d 20 7c | xPieceSize.::.Int.--.value..--.| |
9fa0 | 20 54 6f 20 70 72 65 76 65 6e 74 20 74 72 61 6e 73 66 65 72 20 64 65 67 72 61 64 61 74 69 6f 6e | .To.prevent.transfer.degradation |
9fc0 | 20 70 69 65 63 65 20 73 69 7a 65 20 73 68 6f 75 6c 64 20 6e 6f 74 20 65 78 63 65 65 64 20 74 68 | .piece.size.should.not.exceed.th |
9fe0 | 69 73 00 00 7b 2d 23 20 49 4e 4c 49 4e 45 20 6d 69 6e 50 69 65 63 65 53 69 7a 65 20 23 2d 7d 00 | is..{-#.INLINE.minPieceSize.#-}. |
a000 | 61 64 00 00 14 00 00 00 e8 01 00 00 00 10 00 00 6e 00 00 00 00 00 00 00 db 0f 00 00 da 0f 00 00 | ad..............n............... |
a020 | bb 0f 00 00 a2 0f 00 00 87 0f 00 00 6b 0f 00 00 50 0f 00 00 4f 0f 00 00 06 0f 00 00 f5 0e 00 00 | ............k...P...O........... |
a040 | ac 0e 00 00 88 0e 00 00 87 0e 00 00 5f 0e 00 00 48 0e 00 00 26 0e 00 00 05 0e 00 00 04 0e 00 00 | ............_...H...&........... |
a060 | de 0d 00 00 a9 0d 00 00 a2 0d 00 00 62 0d 00 00 61 0d 00 00 3e 0d 00 00 13 0d 00 00 12 0d 00 00 | ............b...a...>........... |
a080 | ef 0c 00 00 a9 0c 00 00 a8 0c 00 00 80 0c 00 00 41 0c 00 00 40 0c 00 00 1d 0c 00 00 d9 0b 00 00 | ................A...@........... |
a0a0 | a2 0b 00 00 a1 0b 00 00 82 0b 00 00 5b 0b 00 00 5a 0b 00 00 28 0b 00 00 e8 0a 00 00 a3 0a 00 00 | ............[...Z...(........... |
a0c0 | 64 0a 00 00 22 0a 00 00 1b 0a 00 00 d7 09 00 00 92 09 00 00 6d 09 00 00 6c 09 00 00 4a 09 00 00 | d..."...............m...l...J... |
a0e0 | 0b 09 00 00 cd 08 00 00 99 08 00 00 98 08 00 00 76 08 00 00 4a 08 00 00 05 08 00 00 ce 07 00 00 | ................v...J........... |
a100 | aa 07 00 00 a9 07 00 00 99 07 00 00 8b 07 00 00 65 07 00 00 3f 07 00 00 19 07 00 00 f3 06 00 00 | ................e...?........... |
a120 | cd 06 00 00 a7 06 00 00 81 06 00 00 5b 06 00 00 35 06 00 00 0f 06 00 00 0b 06 00 00 ff 05 00 00 | ............[...5............... |
a140 | f8 05 00 00 f7 05 00 00 d9 05 00 00 b6 05 00 00 b5 05 00 00 9c 05 00 00 82 05 00 00 67 05 00 00 | ............................g... |
a160 | 29 05 00 00 0e 05 00 00 0d 05 00 00 c1 04 00 00 7c 04 00 00 5f 04 00 00 5e 04 00 00 44 04 00 00 | )...............|..._...^...D... |
a180 | 2d 04 00 00 2c 04 00 00 12 04 00 00 f1 03 00 00 c0 03 00 00 8b 03 00 00 52 03 00 00 51 03 00 00 | -...,...................R...Q... |
a1a0 | 34 03 00 00 02 03 00 00 e1 02 00 00 b4 02 00 00 b1 02 00 00 7d 02 00 00 5c 02 00 00 2f 02 00 00 | 4...................}...\.../... |
a1c0 | 2c 02 00 00 2b 02 00 00 0c 02 00 00 e8 01 00 00 e7 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ,...+........................... |
a1e0 | 00 00 00 00 00 00 00 00 20 20 74 6f 42 45 6e 63 6f 64 65 20 54 6f 72 72 65 6e 74 20 7b 2e 2e 7d | ..........toBEncode.Torrent.{..} |
a200 | 20 3d 20 74 6f 44 69 63 74 20 24 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 65 20 54 6f 72 | .=.toDict.$.instance.BEncode.Tor |
a220 | 72 65 6e 74 20 77 68 65 72 65 00 00 2d 7d 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 76 20 3d | rent.where..-}...fromBEncode.v.= |
a240 | 20 54 2e 75 6e 70 61 63 6b 20 3c 24 3e 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 76 00 20 20 74 6f | .T.unpack.<$>.fromBEncode.v...to |
a260 | 42 45 6e 63 6f 64 65 20 3d 20 74 6f 42 45 6e 63 6f 64 65 20 2e 20 54 2e 70 61 63 6b 00 69 6e 73 | BEncode.=.toBEncode...T.pack.ins |
a280 | 74 61 6e 63 65 20 7b 2d 23 20 4f 56 45 52 4c 41 50 50 49 4e 47 20 23 2d 7d 20 42 45 6e 63 6f 64 | tance.{-#.OVERLAPPING.#-}.BEncod |
a2a0 | 65 20 48 6f 73 74 4e 61 6d 65 20 77 68 65 72 65 00 7b 2d 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 | e.HostName.where.{-...fromBEncod |
a2c0 | 65 20 76 20 3d 20 54 2e 75 6e 70 61 63 6b 20 3c 24 3e 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 76 | e.v.=.T.unpack.<$>.fromBEncode.v |
a2e0 | 00 20 20 74 6f 42 45 6e 63 6f 64 65 20 3d 20 74 6f 42 45 6e 63 6f 64 65 20 2e 20 54 2e 70 61 63 | ...toBEncode.=.toBEncode...T.pac |
a300 | 6b 00 69 6e 73 74 61 6e 63 65 20 7b 2d 23 20 4f 56 45 52 4c 41 50 50 49 4e 47 20 23 2d 7d 20 42 | k.instance.{-#.OVERLAPPING.#-}.B |
a320 | 45 6e 63 6f 64 65 20 53 74 72 69 6e 67 20 77 68 65 72 65 00 2d 2d 20 54 4f 44 4f 20 74 6f 20 62 | Encode.String.where.--.TODO.to.b |
a340 | 65 6e 63 6f 64 69 6e 67 20 70 61 63 6b 61 67 65 00 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 | encoding.package....fromBEncode. |
a360 | 5f 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 64 65 63 6f 64 69 6e 67 45 72 72 6f 72 20 24 20 22 | _............=.decodingError.$." |
a380 | 50 4f 53 49 58 54 69 6d 65 22 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 28 42 49 6e 74 65 67 | POSIXTime"...fromBEncode.(BInteg |
a3a0 | 65 72 20 69 29 20 3d 20 72 65 74 75 72 6e 20 24 20 66 72 6f 6d 49 6e 74 65 67 72 61 6c 20 69 00 | er.i).=.return.$.fromIntegral.i. |
a3c0 | 20 20 74 6f 42 45 6e 63 6f 64 65 20 70 74 20 3d 20 74 6f 42 45 6e 63 6f 64 65 20 28 66 6c 6f 6f | ..toBEncode.pt.=.toBEncode.(floo |
a3e0 | 72 20 70 74 20 3a 3a 20 49 6e 74 65 67 65 72 29 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 | r.pt.::.Integer).instance.BEncod |
a400 | 65 20 50 4f 53 49 58 54 69 6d 65 20 77 68 65 72 65 00 2d 2d 20 54 4f 44 4f 20 6d 6f 76 65 20 74 | e.POSIXTime.where.--.TODO.move.t |
a420 | 6f 20 62 65 6e 63 6f 64 69 6e 67 00 00 2d 2d 70 69 63 6f 32 75 6e 69 20 3d 20 75 6e 64 65 66 69 | o.bencoding..--pico2uni.=.undefi |
a440 | 6e 65 64 00 2d 2d 70 69 63 6f 32 75 6e 69 20 3a 3a 20 50 69 63 6f 20 2d 3e 20 55 6e 69 00 00 20 | ned.--pico2uni.::.Pico.->.Uni... |
a460 | 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 23 2d 7d 00 20 20 66 72 | .{-#.INLINE.fromBEncode.#-}...fr |
a480 | 6f 6d 42 45 6e 63 6f 64 65 20 62 20 20 20 20 20 20 20 20 20 20 20 3d 20 64 65 63 6f 64 69 6e 67 | omBEncode.b...........=.decoding |
a4a0 | 45 72 72 6f 72 20 24 20 22 75 72 6c 20 3c 22 20 2b 2b 20 73 68 6f 77 20 62 20 2b 2b 20 22 3e 22 | Error.$."url.<".++.show.b.++.">" |
a4c0 | 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 28 42 53 74 72 69 6e 67 20 73 29 20 7c 20 4a 75 73 | ...fromBEncode.(BString.s).|.Jus |
a4e0 | 74 20 75 72 6c 20 3c 2d 20 70 61 72 73 65 55 52 49 20 28 42 43 2e 75 6e 70 61 63 6b 20 73 29 20 | t.url.<-.parseURI.(BC.unpack.s). |
a500 | 3d 20 72 65 74 75 72 6e 20 75 72 6c 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 74 6f 42 45 6e | =.return.url....{-#.INLINE.toBEn |
a520 | 63 6f 64 65 20 23 2d 7d 00 20 20 74 6f 42 45 6e 63 6f 64 65 20 75 72 69 20 3d 20 74 6f 42 45 6e | code.#-}...toBEncode.uri.=.toBEn |
a540 | 63 6f 64 65 20 28 42 43 2e 70 61 63 6b 20 28 75 72 69 54 6f 53 74 72 69 6e 67 20 69 64 20 75 72 | code.(BC.pack.(uriToString.id.ur |
a560 | 69 20 22 22 29 29 00 69 6e 73 74 61 6e 63 65 20 42 45 6e 63 6f 64 65 20 55 52 49 20 77 68 65 72 | i."")).instance.BEncode.URI.wher |
a580 | 65 00 2d 2d 20 54 4f 44 4f 20 6d 6f 76 65 20 74 6f 20 62 65 6e 63 6f 64 69 6e 67 00 23 69 66 64 | e.--.TODO.move.to.bencoding.#ifd |
a5a0 | 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 00 20 20 72 6e 66 20 54 6f 72 72 | ef.VERSION_bencoding....rnf.Torr |
a5c0 | 65 6e 74 20 7b 2e 2e 7d 20 3d 20 72 6e 66 20 74 49 6e 66 6f 44 69 63 74 00 69 6e 73 74 61 6e 63 | ent.{..}.=.rnf.tInfoDict.instanc |
a5e0 | 65 20 4e 46 44 61 74 61 20 54 6f 72 72 65 6e 74 20 77 68 65 72 65 00 00 23 65 6e 64 69 66 00 20 | e.NFData.Torrent.where..#endif.. |
a600 | 20 27 27 54 6f 72 72 65 6e 74 00 20 20 5d 00 20 20 2c 20 28 22 74 53 69 67 6e 61 74 75 72 65 22 | .''Torrent...]...,.("tSignature" |
a620 | 20 20 20 2c 20 22 73 69 67 6e 61 74 75 72 65 22 20 20 20 29 00 20 20 2c 20 28 22 74 50 75 62 6c | ...,."signature"...)...,.("tPubl |
a640 | 69 73 68 65 72 55 52 4c 22 2c 20 22 70 75 62 6c 69 73 68 65 72 55 52 4c 22 29 00 20 20 2c 20 28 | isherURL",."publisherURL")...,.( |
a660 | 22 74 50 75 62 6c 69 73 68 65 72 22 20 20 20 2c 20 22 70 75 62 6c 69 73 68 65 72 22 20 20 20 29 | "tPublisher"...,."publisher"...) |
a680 | 00 20 20 2c 20 28 22 74 49 6e 66 6f 44 69 63 74 22 20 20 20 20 2c 20 22 69 6e 66 6f 44 69 63 74 | ...,.("tInfoDict"....,."infoDict |
a6a0 | 22 20 20 20 20 29 00 20 20 2c 20 28 22 74 45 6e 63 6f 64 69 6e 67 22 20 20 20 20 2c 20 22 65 6e | "....)...,.("tEncoding"....,."en |
a6c0 | 63 6f 64 69 6e 67 22 20 20 20 20 29 00 20 20 2c 20 28 22 74 43 72 65 61 74 69 6f 6e 44 61 74 65 | coding"....)...,.("tCreationDate |
a6e0 | 22 2c 20 22 63 72 65 61 74 69 6f 6e 44 61 74 65 22 29 00 20 20 2c 20 28 22 74 43 72 65 61 74 65 | ",."creationDate")...,.("tCreate |
a700 | 64 42 79 22 20 20 20 2c 20 22 63 72 65 61 74 65 64 42 79 22 20 20 20 29 00 20 20 2c 20 28 22 74 | dBy"...,."createdBy"...)...,.("t |
a720 | 43 6f 6d 6d 65 6e 74 22 20 20 20 20 20 2c 20 22 63 6f 6d 6d 65 6e 74 22 20 20 20 20 20 29 00 20 | Comment".....,."comment".....).. |
a740 | 20 2c 20 28 22 74 41 6e 6e 6f 75 6e 63 65 4c 69 73 74 22 2c 20 22 61 6e 6e 6f 75 6e 63 65 4c 69 | .,.("tAnnounceList",."announceLi |
a760 | 73 74 22 29 00 20 20 5b 20 28 22 74 41 6e 6e 6f 75 6e 63 65 22 20 20 20 20 2c 20 22 61 6e 6e 6f | st")...[.("tAnnounce"....,."anno |
a780 | 75 6e 63 65 22 20 20 20 20 29 00 6d 61 6b 65 4c 65 6e 73 65 73 46 6f 72 00 23 69 66 64 65 66 20 | unce"....).makeLensesFor.#ifdef. |
a7a0 | 55 53 45 5f 6c 65 6e 73 00 00 20 20 20 20 7d 20 64 65 72 69 76 69 6e 67 20 28 53 68 6f 77 2c 20 | USE_lens......}.deriving.(Show,. |
a7c0 | 45 71 2c 20 54 79 70 65 61 62 6c 65 29 00 20 20 20 20 2d 2d 20 20 20 65 6e 63 72 79 70 74 65 64 | Eq,.Typeable).....--...encrypted |
a7e0 | 20 53 48 41 2d 31 20 68 61 73 68 20 6f 66 20 74 68 65 20 69 6e 66 6f 20 64 69 63 74 69 6f 6e 61 | .SHA-1.hash.of.the.info.dictiona |
a800 | 72 79 29 2e 00 20 20 20 20 2d 2d 20 5e 20 54 68 65 20 52 53 41 20 73 69 67 6e 61 74 75 72 65 20 | ry)......--.^.The.RSA.signature. |
a820 | 6f 66 20 74 68 65 20 69 6e 66 6f 20 64 69 63 74 69 6f 6e 61 72 79 20 28 73 70 65 63 69 66 69 63 | of.the.info.dictionary.(specific |
a840 | 61 6c 6c 79 2c 20 74 68 65 00 20 20 2c 20 74 53 69 67 6e 61 74 75 72 65 20 20 20 20 3a 3a 20 21 | ally,.the...,.tSignature....::.! |
a860 | 28 4d 61 79 62 65 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 29 00 20 20 2c 20 74 50 75 62 6c 69 | (Maybe.BS.ByteString)...,.tPubli |
a880 | 73 68 65 72 55 52 4c 20 3a 3a 20 21 28 4d 61 79 62 65 20 55 52 49 29 00 00 20 20 20 20 2d 2d 20 | sherURL.::.!(Maybe.URI)......--. |
a8a0 | 61 75 74 68 6f 72 69 74 79 20 74 6f 20 61 6c 6c 6f 77 20 6e 65 77 20 70 65 65 72 73 20 6f 6e 74 | authority.to.allow.new.peers.ont |
a8c0 | 6f 20 74 68 65 20 73 77 61 72 6d 2e 00 20 20 20 20 2d 2d 20 74 6f 72 72 65 6e 74 2e 20 20 50 72 | o.the.swarm......--.torrent...Pr |
a8e0 | 69 76 61 74 65 20 63 6f 75 6e 74 65 72 70 61 72 74 20 6f 66 20 74 68 69 73 20 6b 65 79 20 74 68 | ivate.counterpart.of.this.key.th |
a900 | 61 74 20 68 61 73 20 74 68 65 00 20 20 20 20 2d 2d 20 5e 20 43 6f 6e 74 61 69 6e 69 6e 67 20 74 | at.has.the.....--.^.Containing.t |
a920 | 68 65 20 52 53 41 20 70 75 62 6c 69 63 20 6b 65 79 20 6f 66 20 74 68 65 20 70 75 62 6c 69 73 68 | he.RSA.public.key.of.the.publish |
a940 | 65 72 20 6f 66 20 74 68 65 00 20 20 2c 20 74 50 75 62 6c 69 73 68 65 72 20 20 20 20 3a 3a 20 21 | er.of.the...,.tPublisher....::.! |
a960 | 28 4d 61 79 62 65 20 55 52 49 29 00 00 20 20 20 20 2d 2d 20 75 73 65 20 64 69 66 66 65 72 65 6e | (Maybe.URI)......--.use.differen |
a980 | 74 20 62 6f 6f 74 73 74 72 61 70 20 6e 6f 64 65 2e 00 20 20 20 20 2d 2d 20 74 68 69 73 20 6c 69 | t.bootstrap.node......--.this.li |
a9a0 | 73 74 20 62 65 63 61 75 73 65 20 64 69 66 66 65 72 65 6e 74 20 62 69 74 74 6f 72 72 65 6e 74 20 | st.because.different.bittorrent. |
a9c0 | 73 6f 66 74 77 61 72 65 20 6d 61 79 20 70 72 65 66 65 72 20 74 6f 00 20 20 20 20 2d 2d 20 50 6c | software.may.prefer.to.....--.Pl |
a9e0 | 65 61 73 65 20 64 6f 20 6e 6f 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 64 64 20 5c 22 | ease.do.not.automatically.add.\" |
aa00 | 72 6f 75 74 65 72 2e 62 69 74 74 6f 72 72 65 6e 74 2e 63 6f 6d 5c 22 20 74 6f 00 20 20 20 20 2d | router.bittorrent.com\".to.....- |
aa20 | 2d 00 20 20 20 20 2d 2d 20 73 75 63 68 20 61 73 20 6f 6e 65 20 6f 70 65 72 61 74 65 64 20 62 79 | -.....--.such.as.one.operated.by |
aa40 | 20 74 68 65 20 70 65 72 73 6f 6e 20 67 65 6e 65 72 61 74 69 6e 67 20 74 68 65 20 74 6f 72 72 65 | .the.person.generating.the.torre |
aa60 | 6e 74 2e 00 20 20 20 20 2d 2d 20 6b 65 79 20 63 6f 75 6c 64 20 62 65 20 73 65 74 20 74 6f 20 61 | nt......--.key.could.be.set.to.a |
aa80 | 20 6b 6e 6f 77 6e 20 67 6f 6f 64 20 27 4e 65 74 77 6f 72 6b 2e 41 64 64 72 65 73 73 2e 4e 6f 64 | .known.good.'Network.Address.Nod |
aaa0 | 65 27 00 20 20 20 20 2d 2d 20 74 6f 72 72 65 6e 74 20 67 65 6e 65 72 61 74 69 6e 67 20 63 6c 69 | e'.....--.torrent.generating.cli |
aac0 | 65 6e 74 27 73 20 72 6f 75 74 69 6e 67 20 74 61 62 6c 65 2e 20 41 6c 74 65 72 6e 61 74 69 76 65 | ent's.routing.table..Alternative |
aae0 | 6c 79 2c 20 74 68 65 00 20 20 20 20 2d 2d 20 5e 20 54 68 69 73 20 6b 65 79 20 73 68 6f 75 6c 64 | ly,.the.....--.^.This.key.should |
ab00 | 20 62 65 20 73 65 74 20 74 6f 20 74 68 65 20 2f 4b 20 63 6c 6f 73 65 73 74 2f 20 6e 6f 64 65 73 | .be.set.to.the./K.closest/.nodes |
ab20 | 20 69 6e 20 74 68 65 00 20 20 2c 20 74 4e 6f 64 65 73 20 20 20 20 20 20 20 20 3a 3a 20 21 28 4d | .in.the...,.tNodes........::.!(M |
ab40 | 61 79 62 65 20 5b 4e 6f 64 65 41 64 64 72 20 48 6f 73 74 4e 61 6d 65 5d 29 00 00 20 20 20 20 2d | aybe.[NodeAddr.HostName])......- |
ab60 | 2d 20 5e 20 49 6e 66 6f 20 61 62 6f 75 74 20 65 61 63 68 20 63 6f 6e 74 65 6e 74 20 66 69 6c 65 | -.^.Info.about.each.content.file |
ab80 | 2e 00 20 20 2c 20 74 49 6e 66 6f 44 69 63 74 20 20 20 20 20 3a 3a 20 21 49 6e 66 6f 44 69 63 74 | ....,.tInfoDict.....::.!InfoDict |
aba0 | 00 00 20 20 20 20 2d 2d 20 20 20 74 68 65 20 69 6e 66 6f 20 64 69 63 74 69 6f 6e 61 72 79 20 69 | ......--...the.info.dictionary.i |
abc0 | 6e 20 74 68 65 20 2e 74 6f 72 72 65 6e 74 20 6d 65 74 61 66 69 6c 65 2e 00 20 20 20 20 2d 2d 20 | n.the..torrent.metafile......--. |
abe0 | 5e 20 53 74 72 69 6e 67 20 65 6e 63 6f 64 69 6e 67 20 66 6f 72 6d 61 74 20 75 73 65 64 20 74 6f | ^.String.encoding.format.used.to |
ac00 | 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 70 69 65 63 65 73 20 70 61 72 74 20 6f 66 00 20 20 2c | .generate.the.pieces.part.of..., |
ac20 | 20 74 45 6e 63 6f 64 69 6e 67 20 20 20 20 20 3a 3a 20 21 28 4d 61 79 62 65 20 54 65 78 74 29 00 | .tEncoding.....::.!(Maybe.Text). |
ac40 | 00 20 20 20 20 2d 2d 20 5e 20 43 72 65 61 74 69 6f 6e 20 74 69 6d 65 20 6f 66 20 74 68 65 20 74 | .....--.^.Creation.time.of.the.t |
ac60 | 6f 72 72 65 6e 74 2c 20 69 6e 20 73 74 61 6e 64 61 72 64 20 55 4e 49 58 20 65 70 6f 63 68 2e 00 | orrent,.in.standard.UNIX.epoch.. |
ac80 | 20 20 2c 20 74 43 72 65 61 74 69 6f 6e 44 61 74 65 20 3a 3a 20 21 28 4d 61 79 62 65 20 50 4f 53 | ..,.tCreationDate.::.!(Maybe.POS |
aca0 | 49 58 54 69 6d 65 29 00 00 20 20 20 20 2d 2d 20 5e 20 4e 61 6d 65 20 61 6e 64 20 76 65 72 73 69 | IXTime)......--.^.Name.and.versi |
acc0 | 6f 6e 20 6f 66 20 74 68 65 20 70 72 6f 67 72 61 6d 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 | on.of.the.program.used.to.create |
ace0 | 20 74 68 65 20 2e 74 6f 72 72 65 6e 74 2e 00 20 20 2c 20 74 43 72 65 61 74 65 64 42 79 20 20 20 | .the..torrent....,.tCreatedBy... |
ad00 | 20 3a 3a 20 21 28 4d 61 79 62 65 20 54 65 78 74 29 00 00 20 20 20 20 2d 2d 20 5e 20 46 72 65 65 | .::.!(Maybe.Text)......--.^.Free |
ad20 | 2d 66 6f 72 6d 20 63 6f 6d 6d 65 6e 74 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 00 20 20 | -form.comments.of.the.author.... |
ad40 | 2c 20 74 43 6f 6d 6d 65 6e 74 20 20 20 20 20 20 3a 3a 20 21 28 4d 61 79 62 65 20 54 65 78 74 29 | ,.tComment......::.!(Maybe.Text) |
ad60 | 00 00 20 20 20 20 2d 2d 20 20 20 42 45 50 20 31 32 3a 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 62 | ......--...BEP.12:.<http://www.b |
ad80 | 69 74 74 6f 72 72 65 6e 74 2e 6f 72 67 2f 62 65 70 73 2f 62 65 70 5f 30 30 31 32 2e 68 74 6d 6c | ittorrent.org/beps/bep_0012.html |
ada0 | 3e 00 20 20 20 20 2d 2d 00 20 20 20 20 2d 2d 20 5e 20 41 6e 6e 6f 75 6e 63 65 20 6c 69 73 74 20 | >.....--.....--.^.Announce.list. |
adc0 | 61 64 64 20 6d 75 6c 74 69 70 6c 65 20 74 72 61 63 6b 65 72 20 73 75 70 70 6f 72 74 2e 00 20 20 | add.multiple.tracker.support.... |
ade0 | 2c 20 74 41 6e 6e 6f 75 6e 63 65 4c 69 73 74 20 3a 3a 20 21 28 4d 61 79 62 65 20 5b 5b 55 52 49 | ,.tAnnounceList.::.!(Maybe.[[URI |
ae00 | 5d 5d 29 00 00 20 20 20 20 2d 2d 20 5e 20 54 68 65 20 55 52 4c 20 6f 66 20 74 68 65 20 74 72 61 | ]])......--.^.The.URL.of.the.tra |
ae20 | 63 6b 65 72 2e 00 20 20 7b 20 74 41 6e 6e 6f 75 6e 63 65 20 20 20 20 20 3a 3a 20 21 28 4d 61 79 | cker....{.tAnnounce.....::.!(May |
ae40 | 62 65 20 55 52 49 29 00 64 61 74 61 20 54 6f 72 72 65 6e 74 20 3d 20 54 6f 72 72 65 6e 74 00 2d | be.URI).data.Torrent.=.Torrent.- |
ae60 | 2d 20 7c 20 4d 65 74 61 69 6e 66 6f 20 61 62 6f 75 74 20 70 61 72 74 69 63 75 6c 61 72 20 74 6f | -.|.Metainfo.about.particular.to |
ae80 | 72 72 65 6e 74 2e 00 00 2d 2d 20 54 4f 44 4f 20 61 64 64 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 | rrent...--.TODO.add.torrent.file |
aea0 | 20 76 61 6c 69 64 61 74 69 6f 6e 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .validation.-------------------- |
aec0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
aee0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d 2d 20 20 54 6f 72 72 65 6e 74 | -------------------}.--..Torrent |
af00 | 20 69 6e 66 6f 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .info.{------------------------- |
af20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
af40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 20 20 70 70 50 72 69 76 61 63 79 20 20 20 | --------------......ppPrivacy... |
af60 | 20 69 64 50 72 69 76 61 74 65 00 20 20 20 20 70 50 72 69 6e 74 20 20 69 64 50 69 65 63 65 49 6e | .idPrivate.....pPrint..idPieceIn |
af80 | 66 6f 20 20 24 24 00 20 20 20 20 70 50 72 69 6e 74 20 69 64 4c 61 79 6f 75 74 49 6e 66 6f 20 24 | fo..$$.....pPrint.idLayoutInfo.$ |
afa0 | 24 00 20 20 70 50 72 69 6e 74 20 49 6e 66 6f 44 69 63 74 20 7b 2e 2e 7d 20 3d 00 69 6e 73 74 61 | $...pPrint.InfoDict.{..}.=.insta |
afc0 | 6e 63 65 20 50 72 65 74 74 79 20 49 6e 66 6f 44 69 63 74 20 77 68 65 72 65 00 00 2d 2d 70 70 41 | nce.Pretty.InfoDict.where..--ppA |
afe0 | 64 64 69 74 69 6f 6e 61 6c 49 6e 66 6f 20 6c 61 79 6f 75 74 20 3d 20 50 50 2e 65 6d 70 74 79 00 | dditionalInfo.layout.=.PP.empty. |
b000 | 61 64 00 00 3b 00 00 00 0f 02 00 00 00 10 00 00 6e 00 00 00 00 00 00 00 db 0f 00 00 b2 0f 00 00 | ad..;...........n............... |
b020 | 8e 0f 00 00 68 0f 00 00 3f 0f 00 00 1a 0f 00 00 f5 0e 00 00 d3 0e 00 00 ad 0e 00 00 84 0e 00 00 | ....h...?....................... |
b040 | 5e 0e 00 00 4f 0e 00 00 4e 0e 00 00 30 0e 00 00 14 0e 00 00 f3 0d 00 00 d8 0d 00 00 ba 0d 00 00 | ^...O...N...0................... |
b060 | 99 0d 00 00 7d 0d 00 00 65 0d 00 00 4c 0d 00 00 2f 0d 00 00 0e 0d 00 00 f1 0c 00 00 ea 0c 00 00 | ....}...e...L.../............... |
b080 | e9 0c 00 00 ce 0c 00 00 a7 0c 00 00 a6 0c 00 00 84 0c 00 00 66 0c 00 00 46 0c 00 00 45 0c 00 00 | ....................f...F...E... |
b0a0 | 27 0c 00 00 0f 0c 00 00 da 0b 00 00 b6 0b 00 00 95 0b 00 00 7d 0b 00 00 74 0b 00 00 4f 0b 00 00 | '...................}...t...O... |
b0c0 | 25 0b 00 00 eb 0a 00 00 df 0a 00 00 92 0a 00 00 91 0a 00 00 7f 0a 00 00 39 0a 00 00 f3 09 00 00 | %.......................9....... |
b0e0 | af 09 00 00 7a 09 00 00 34 09 00 00 f2 08 00 00 b0 08 00 00 74 08 00 00 73 08 00 00 5a 08 00 00 | ....z...4...........t...s...Z... |
b100 | 2d 08 00 00 0e 08 00 00 f6 07 00 00 ef 07 00 00 ee 07 00 00 b9 07 00 00 96 07 00 00 7b 07 00 00 | -...........................{... |
b120 | 47 07 00 00 1b 07 00 00 1a 07 00 00 f9 06 00 00 dc 06 00 00 b3 06 00 00 b2 06 00 00 83 06 00 00 | G............................... |
b140 | 6e 06 00 00 57 06 00 00 56 06 00 00 29 06 00 00 07 06 00 00 ba 05 00 00 b9 05 00 00 a0 05 00 00 | n...W...V...)................... |
b160 | 7a 05 00 00 57 05 00 00 40 05 00 00 1d 05 00 00 00 05 00 00 e7 04 00 00 9c 04 00 00 9b 04 00 00 | z...W...@....................... |
b180 | 74 04 00 00 4d 04 00 00 19 04 00 00 12 04 00 00 11 04 00 00 c8 03 00 00 c0 03 00 00 77 03 00 00 | t...M.......................w... |
b1a0 | 76 03 00 00 31 03 00 00 13 03 00 00 f9 02 00 00 f8 02 00 00 c3 02 00 00 7d 02 00 00 38 02 00 00 | v...1...................}...8... |
b1c0 | 35 02 00 00 21 02 00 00 10 02 00 00 0f 02 00 00 0e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | 5...!........................... |
b1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 62 74 69 68 20 20 3d 20 5b 22 62 74 69 68 22 5d | ................btih..=.["btih"] |
b220 | 00 62 74 69 68 20 3a 3a 20 4e 61 6d 65 73 70 61 63 65 49 64 00 2d 2d 00 2d 2d 20 65 6e 63 6f 64 | .btih.::.NamespaceId.--.--.encod |
b240 | 65 64 20 53 48 41 31 20 68 61 73 68 20 6f 66 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e | ed.SHA1.hash.of.the.correspondin |
b260 | 67 20 74 6f 72 72 65 6e 74 20 2f 69 6e 66 6f 2f 20 64 69 63 74 69 6f 6e 61 72 79 2e 00 2d 2d 20 | g.torrent./info/.dictionary..--. |
b280 | 69 64 65 6e 74 69 66 69 65 72 2e 20 4e 61 6d 65 73 70 61 63 65 2d 73 70 65 63 69 66 69 63 20 73 | identifier..Namespace-specific.s |
b2a0 | 74 72 69 6e 67 20 2f 73 68 6f 75 6c 64 2f 20 62 65 20 61 20 62 61 73 65 31 36 5c 2f 62 61 73 65 | tring./should/.be.a.base16\/base |
b2c0 | 33 32 00 2d 2d 20 7c 20 42 69 74 54 6f 72 72 65 6e 74 20 49 6e 66 6f 20 48 61 73 68 20 28 68 65 | 32.--.|.BitTorrent.Info.Hash.(he |
b2e0 | 6e 63 65 20 74 68 65 20 6e 61 6d 65 29 20 6e 61 6d 65 73 70 61 63 65 00 00 74 79 70 65 20 4e 61 | nce.the.name).namespace..type.Na |
b300 | 6d 65 73 70 61 63 65 49 64 20 3d 20 5b 54 65 78 74 5d 00 2d 2d 20 6e 61 6d 65 73 70 61 63 65 2d | mespaceId.=.[Text].--.namespace- |
b320 | 73 70 65 63 69 66 69 63 20 73 74 72 69 6e 67 2e 00 2d 2d 20 7c 20 4e 61 6d 65 73 70 61 63 65 20 | specific.string..--.|.Namespace. |
b340 | 69 64 65 6e 74 69 66 69 65 72 20 64 65 74 65 72 6d 69 6e 65 73 20 74 68 65 20 73 79 6e 74 61 63 | identifier.determines.the.syntac |
b360 | 74 69 63 20 69 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d | tic.interpretation.of..--------- |
b380 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
b3a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 | ------------------------------}. |
b3c0 | 2d 2d 20 20 55 52 4e 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --..URN.{----------------------- |
b3e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
b400 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 23 65 6e 64 69 66 00 74 6f 46 69 6c 65 20 | ----------------..#endif.toFile. |
b420 | 66 69 6c 65 70 61 74 68 20 3d 20 42 4c 2e 77 72 69 74 65 46 69 6c 65 20 66 69 6c 65 70 61 74 68 | filepath.=.BL.writeFile.filepath |
b440 | 20 2e 20 42 45 2e 65 6e 63 6f 64 65 00 74 6f 46 69 6c 65 20 3a 3a 20 46 69 6c 65 50 61 74 68 20 | ...BE.encode.toFile.::.FilePath. |
b460 | 2d 3e 20 54 6f 72 72 65 6e 74 20 2d 3e 20 49 4f 20 28 29 00 2d 2d 20 7c 20 45 6e 63 6f 64 65 20 | ->.Torrent.->.IO.().--.|.Encode. |
b480 | 61 6e 64 20 77 72 69 74 65 20 61 20 2e 74 6f 72 72 65 6e 74 20 66 69 6c 65 2e 00 00 20 20 20 20 | and.write.a..torrent.file....... |
b4a0 | 4c 65 66 74 20 6d 73 67 20 2d 3e 20 74 68 72 6f 77 49 4f 20 24 20 75 73 65 72 45 72 72 6f 72 20 | Left.msg.->.throwIO.$.userError. |
b4c0 | 24 20 6d 73 67 20 2b 2b 20 22 20 77 68 69 6c 65 20 72 65 61 64 69 6e 67 20 74 6f 72 72 65 6e 74 | $.msg.++.".while.reading.torrent |
b4e0 | 20 66 69 6c 65 22 00 20 20 20 20 52 69 67 68 74 20 21 74 20 2d 3e 20 72 65 74 75 72 6e 20 74 00 | .file".....Right.!t.->.return.t. |
b500 | 20 20 63 61 73 65 20 42 45 2e 64 65 63 6f 64 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 00 20 20 63 | ..case.BE.decode.contents.of...c |
b520 | 6f 6e 74 65 6e 74 73 20 3c 2d 20 42 53 2e 72 65 61 64 46 69 6c 65 20 66 69 6c 65 70 61 74 68 00 | ontents.<-.BS.readFile.filepath. |
b540 | 66 72 6f 6d 46 69 6c 65 20 66 69 6c 65 70 61 74 68 20 3d 20 64 6f 00 66 72 6f 6d 46 69 6c 65 20 | fromFile.filepath.=.do.fromFile. |
b560 | 3a 3a 20 46 69 6c 65 50 61 74 68 20 2d 3e 20 49 4f 20 54 6f 72 72 65 6e 74 00 2d 2d 20 7c 20 52 | ::.FilePath.->.IO.Torrent.--.|.R |
b580 | 65 61 64 20 61 6e 64 20 64 65 63 6f 64 65 20 61 20 2e 74 6f 72 72 65 6e 74 20 66 69 6c 65 2e 00 | ead.and.decode.a..torrent.file.. |
b5a0 | 23 69 66 64 65 66 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 00 69 73 54 6f 72 72 | #ifdef.VERSION_bencoding..isTorr |
b5c0 | 65 6e 74 50 61 74 68 20 66 69 6c 65 70 61 74 68 20 3d 20 74 61 6b 65 45 78 74 65 6e 73 69 6f 6e | entPath.filepath.=.takeExtension |
b5e0 | 20 66 69 6c 65 70 61 74 68 20 3d 3d 20 65 78 74 53 65 70 61 72 61 74 6f 72 20 3a 20 74 6f 72 72 | .filepath.==.extSeparator.:.torr |
b600 | 65 6e 74 45 78 74 00 69 73 54 6f 72 72 65 6e 74 50 61 74 68 20 3a 3a 20 46 69 6c 65 50 61 74 68 | entExt.isTorrentPath.::.FilePath |
b620 | 20 2d 3e 20 42 6f 6f 6c 00 2d 2d 20 7c 20 54 65 73 74 20 69 66 20 74 68 69 73 20 70 61 74 68 20 | .->.Bool.--.|.Test.if.this.path. |
b640 | 68 61 73 20 70 72 6f 70 65 72 20 65 78 74 65 6e 73 69 6f 6e 2e 00 00 74 6f 72 72 65 6e 74 45 78 | has.proper.extension...torrentEx |
b660 | 74 20 3d 20 22 74 6f 72 72 65 6e 74 22 00 74 6f 72 72 65 6e 74 45 78 74 20 3a 3a 20 53 74 72 69 | t.=."torrent".torrentExt.::.Stri |
b680 | 6e 67 00 2d 2d 20 7c 20 45 78 74 65 6e 73 69 6f 6e 20 75 73 75 61 6c 6c 79 20 75 73 65 64 20 66 | ng.--.|.Extension.usually.used.f |
b6a0 | 6f 72 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 73 2e 00 00 74 79 70 65 54 6f 72 72 65 6e 74 20 3d | or.torrent.files...typeTorrent.= |
b6c0 | 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 62 69 74 74 6f 72 72 65 6e 74 22 00 74 79 70 65 | ."application/x-bittorrent".type |
b6e0 | 54 6f 72 72 65 6e 74 20 3a 3a 20 42 53 2e 42 79 74 65 53 74 72 69 6e 67 00 2d 2d 20 7c 20 4d 69 | Torrent.::.BS.ByteString.--.|.Mi |
b700 | 6d 65 20 74 79 70 65 20 6f 66 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 73 2e 00 00 20 20 20 20 69 | me.type.of.torrent.files.......i |
b720 | 6e 66 6f 20 20 20 20 4e 6f 74 68 69 6e 67 20 4e 6f 74 68 69 6e 67 20 4e 6f 74 68 69 6e 67 20 4e | nfo....Nothing.Nothing.Nothing.N |
b740 | 6f 74 68 69 6e 67 00 20 20 20 20 4e 6f 74 68 69 6e 67 20 4e 6f 74 68 69 6e 67 20 4e 6f 74 68 69 | othing.....Nothing.Nothing.Nothi |
b760 | 6e 67 20 4e 6f 74 68 69 6e 67 20 4e 6f 74 68 69 6e 67 20 4e 6f 74 68 69 6e 67 00 6e 75 6c 6c 54 | ng.Nothing.Nothing.Nothing.nullT |
b780 | 6f 72 72 65 6e 74 20 69 6e 66 6f 20 3d 20 54 6f 72 72 65 6e 74 00 6e 75 6c 6c 54 6f 72 72 65 6e | orrent.info.=.Torrent.nullTorren |
b7a0 | 74 20 3a 3a 20 49 6e 66 6f 44 69 63 74 20 2d 3e 20 54 6f 72 72 65 6e 74 00 2d 2d 20 7c 20 41 20 | t.::.InfoDict.->.Torrent.--.|.A. |
b7c0 | 73 69 6d 70 6c 65 20 74 6f 72 72 65 6e 74 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 6c 79 20 72 65 71 | simple.torrent.contains.only.req |
b7e0 | 75 69 72 65 64 20 66 69 65 6c 64 73 2e 00 00 23 65 6e 64 69 66 00 20 20 64 65 66 20 3d 20 6e 75 | uired.fields...#endif...def.=.nu |
b800 | 6c 6c 54 6f 72 72 65 6e 74 20 64 65 66 00 69 6e 73 74 61 6e 63 65 20 44 65 66 61 75 6c 74 20 54 | llTorrent.def.instance.Default.T |
b820 | 6f 72 72 65 6e 74 20 77 68 65 72 65 00 2d 2d 20 7c 20 4e 6f 20 66 69 6c 65 73 2c 20 6e 6f 20 74 | orrent.where.--.|.No.files,.no.t |
b840 | 72 61 63 6b 65 72 73 2c 20 6e 6f 20 6e 6f 64 65 73 2c 20 65 74 63 2e 2e 2e 00 23 69 66 64 65 66 | rackers,.no.nodes,.etc....#ifdef |
b860 | 20 56 45 52 53 49 4f 4e 5f 62 65 6e 63 6f 64 69 6e 67 00 00 20 20 20 20 20 20 20 20 22 53 69 67 | .VERSION_bencoding.........."Sig |
b880 | 6e 61 74 75 72 65 22 20 20 20 20 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 73 68 6f 77 29 20 | nature".....<:>?.((text...show). |
b8a0 | 3c 24 3e 20 74 53 69 67 6e 61 74 75 72 65 29 00 20 20 20 20 20 20 20 20 22 50 75 62 6c 69 73 68 | <$>.tSignature)........."Publish |
b8c0 | 65 72 20 55 52 4c 22 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 73 68 6f 77 29 20 3c 24 3e 20 | er.URL".<:>?.((text...show).<$>. |
b8e0 | 74 50 75 62 6c 69 73 68 65 72 55 52 4c 29 20 24 24 00 20 20 20 20 20 20 20 20 22 50 75 62 6c 69 | tPublisherURL).$$........."Publi |
b900 | 73 68 65 72 22 20 20 20 20 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 73 68 6f 77 29 20 3c 24 | sher".....<:>?.((text...show).<$ |
b920 | 3e 20 74 50 75 62 6c 69 73 68 65 72 29 20 20 20 20 24 24 00 20 20 20 20 20 20 20 20 22 45 6e 63 | >.tPublisher)....$$........."Enc |
b940 | 6f 64 69 6e 67 22 20 20 20 20 20 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 54 2e 75 6e 70 61 | oding"......<:>?.((text...T.unpa |
b960 | 63 6b 29 20 3c 24 3e 20 74 45 6e 63 6f 64 69 6e 67 29 20 20 20 20 20 24 24 00 20 20 20 20 20 20 | ck).<$>.tEncoding).....$$....... |
b980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3c 24 3e 20 74 43 72 | .........................<$>.tCr |
b9a0 | 65 61 74 69 6f 6e 44 61 74 65 29 20 24 24 00 20 20 20 20 20 20 20 20 22 43 72 65 61 74 65 64 20 | eationDate).$$........."Created. |
b9c0 | 6f 6e 22 20 20 20 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 73 68 6f 77 20 2e 20 70 6f 73 69 | on"....<:>?.((text...show...posi |
b9e0 | 78 53 65 63 6f 6e 64 73 54 6f 55 54 43 54 69 6d 65 29 00 20 20 20 20 20 20 20 20 22 43 72 65 61 | xSecondsToUTCTime)........."Crea |
ba00 | 74 65 64 20 62 79 22 20 20 20 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 54 2e 75 6e 70 61 63 | ted.by"....<:>?.((text...T.unpac |
ba20 | 6b 29 20 3c 24 3e 20 74 43 72 65 61 74 65 64 42 79 29 20 20 20 20 24 24 00 20 20 20 20 20 20 20 | k).<$>.tCreatedBy)....$$........ |
ba40 | 20 22 43 6f 6d 6d 65 6e 74 22 20 20 20 20 20 20 20 3c 3a 3e 3f 20 28 28 74 65 78 74 20 2e 20 54 | ."Comment".......<:>?.((text...T |
ba60 | 2e 75 6e 70 61 63 6b 29 20 3c 24 3e 20 74 43 6f 6d 6d 65 6e 74 29 20 20 20 20 20 20 24 24 00 20 | .unpack).<$>.tComment)......$$.. |
ba80 | 20 20 20 67 65 6e 65 72 61 6c 49 6e 66 6f 20 3d 00 00 20 20 20 20 20 20 20 20 70 70 54 69 65 72 | ...generalInfo.=..........ppTier |
baa0 | 20 28 6e 2c 20 78 73 29 20 3d 20 22 54 69 65 72 20 23 22 20 3c 3e 20 69 6e 74 20 6e 20 3c 3a 3e | .(n,.xs).=."Tier.#".<>.int.n.<:> |
bac0 | 20 76 63 61 74 20 28 4c 2e 6d 61 70 20 28 74 65 78 74 20 2e 20 73 68 6f 77 29 20 78 73 29 00 20 | .vcat.(L.map.(text...show).xs).. |
bae0 | 20 20 20 20 20 77 68 65 72 65 00 20 20 20 20 20 20 20 20 4a 75 73 74 20 78 78 73 20 2d 3e 20 76 | .....where.........Just.xxs.->.v |
bb00 | 63 61 74 20 24 20 4c 2e 6d 61 70 20 70 70 54 69 65 72 20 24 20 4c 2e 7a 69 70 20 5b 31 2e 2e 5d | cat.$.L.map.ppTier.$.L.zip.[1..] |
bb20 | 20 78 78 73 00 20 20 20 20 20 20 20 20 4e 6f 74 68 69 6e 67 20 20 2d 3e 20 74 65 78 74 20 28 73 | .xxs.........Nothing..->.text.(s |
bb40 | 68 6f 77 20 74 41 6e 6e 6f 75 6e 63 65 29 00 20 20 20 20 74 72 61 63 6b 65 72 73 20 3d 20 63 61 | how.tAnnounce).....trackers.=.ca |
bb60 | 73 65 20 74 41 6e 6e 6f 75 6e 63 65 4c 69 73 74 20 6f 66 00 20 20 20 77 68 65 72 65 00 20 20 20 | se.tAnnounceList.of....where.... |
bb80 | 20 24 24 20 70 50 72 69 6e 74 20 74 49 6e 66 6f 44 69 63 74 00 20 20 20 20 24 24 20 68 61 6e 67 | .$$.pPrint.tInfoDict.....$$.hang |
bba0 | 20 22 54 72 61 63 6b 65 72 22 20 34 20 74 72 61 63 6b 65 72 73 00 20 20 20 20 24 24 20 68 61 6e | ."Tracker".4.trackers.....$$.han |
bbc0 | 67 20 22 47 65 6e 65 72 61 6c 22 20 34 20 67 65 6e 65 72 61 6c 49 6e 66 6f 00 20 20 20 20 20 20 | g."General".4.generalInfo....... |
bbe0 | 20 22 49 6e 66 6f 48 61 73 68 3a 20 22 20 3c 3e 20 70 50 72 69 6e 74 20 28 69 64 49 6e 66 6f 48 | ."InfoHash:.".<>.pPrint.(idInfoH |
bc00 | 61 73 68 20 74 49 6e 66 6f 44 69 63 74 29 00 20 20 70 50 72 69 6e 74 20 54 6f 72 72 65 6e 74 20 | ash.tInfoDict)...pPrint.Torrent. |
bc20 | 7b 2e 2e 7d 20 3d 00 69 6e 73 74 61 6e 63 65 20 50 72 65 74 74 79 20 54 6f 72 72 65 6e 74 20 77 | {..}.=.instance.Pretty.Torrent.w |
bc40 | 68 65 72 65 00 00 6e 61 6d 65 20 3c 3a 3e 3f 20 28 4a 75 73 74 20 64 29 20 3d 20 6e 61 6d 65 20 | here..name.<:>?.(Just.d).=.name. |
bc60 | 3c 3a 3e 20 64 00 5f 20 20 20 20 3c 3a 3e 3f 20 20 4e 6f 74 68 69 6e 67 20 3d 20 50 50 2e 65 6d | <:>.d._....<:>?..Nothing.=.PP.em |
bc80 | 70 74 79 00 28 3c 3a 3e 3f 29 20 3a 3a 20 44 6f 63 20 2d 3e 20 4d 61 79 62 65 20 44 6f 63 20 2d | pty.(<:>?).::.Doc.->.Maybe.Doc.- |
bca0 | 3e 20 44 6f 63 00 00 6e 61 6d 65 20 3c 3a 3e 20 20 20 76 20 20 20 20 20 20 20 3d 20 6e 61 6d 65 | >.Doc..name.<:>...v.......=.name |
bcc0 | 20 3c 3e 20 22 3a 22 20 3c 2b 3e 20 76 00 28 3c 3a 3e 29 20 3a 3a 20 44 6f 63 20 2d 3e 20 44 6f | .<>.":".<+>.v.(<:>).::.Doc.->.Do |
bce0 | 63 20 2d 3e 20 44 6f 63 00 00 23 65 6e 64 69 66 00 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e | c.->.Doc..#endif.............<*> |
bd00 | 3f 20 22 73 69 67 6e 61 74 75 72 65 22 00 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 3f 20 22 | ?."signature".............<*>?." |
bd20 | 70 75 62 6c 69 73 68 65 72 2d 75 72 6c 22 00 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 3f 20 | publisher-url".............<*>?. |
bd40 | 22 70 75 62 6c 69 73 68 65 72 22 00 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 3f 20 22 6e 6f | "publisher".............<*>?."no |
bd60 | 64 65 73 22 00 20 20 20 20 20 20 20 20 20 20 20 20 3c 2a 3e 21 20 22 69 6e 66 6f 22 00 20 20 20 | des".............<*>!."info".... |
bd80 | 20 20 20 20 20 20 20 20 20 3c 2a 3e 3f 20 22 65 6e 63 6f 64 69 6e 67 22 00 20 20 20 20 20 20 20 | .........<*>?."encoding"........ |
bda0 | 20 20 20 20 20 3c 2a 3e 3f 20 22 63 72 65 61 74 69 6f 6e 20 64 61 74 65 22 00 20 20 20 20 20 20 | .....<*>?."creation.date"....... |
bdc0 | 20 20 20 20 20 20 3c 2a 3e 3f 20 22 63 72 65 61 74 65 64 20 62 79 22 00 20 20 20 20 20 20 20 20 | ......<*>?."created.by"......... |
bde0 | 20 20 20 20 3c 2a 3e 3f 20 22 63 6f 6d 6d 65 6e 74 22 00 20 20 20 20 20 20 20 20 20 20 20 20 3c | ....<*>?."comment".............< |
be00 | 2a 3e 3f 20 22 61 6e 6e 6f 75 6e 63 65 2d 6c 69 73 74 22 00 20 20 20 20 54 6f 72 72 65 6e 74 20 | *>?."announce-list".....Torrent. |
be20 | 3c 24 3e 3f 20 22 61 6e 6e 6f 75 6e 63 65 22 00 20 20 66 72 6f 6d 42 45 6e 63 6f 64 65 20 3d 20 | <$>?."announce"...fromBEncode.=. |
be40 | 66 72 6f 6d 44 69 63 74 20 24 20 64 6f 00 00 20 20 20 20 2e 3a 20 65 6e 64 44 69 63 74 00 20 20 | fromDict.$.do.......:.endDict... |
be60 | 20 20 2e 3a 20 22 73 69 67 6e 61 74 75 72 65 22 20 20 20 20 20 2e 3d 3f 20 74 53 69 67 6e 61 74 | ...:."signature"......=?.tSignat |
be80 | 75 72 65 00 20 20 20 20 2e 3a 20 22 70 75 62 6c 69 73 68 65 72 2d 75 72 6c 22 20 2e 3d 3f 20 74 | ure......:."publisher-url"..=?.t |
bea0 | 50 75 62 6c 69 73 68 65 72 55 52 4c 00 20 20 20 20 2e 3a 20 22 70 75 62 6c 69 73 68 65 72 22 20 | PublisherURL......:."publisher". |
bec0 | 20 20 20 20 2e 3d 3f 20 74 50 75 62 6c 69 73 68 65 72 00 20 20 20 20 2e 3a 20 22 6e 6f 64 65 73 | .....=?.tPublisher......:."nodes |
bee0 | 22 20 20 20 20 20 20 20 20 20 2e 3d 3f 20 74 4e 6f 64 65 73 00 20 20 20 20 2e 3a 20 22 69 6e 66 | "..........=?.tNodes......:."inf |
bf00 | 6f 22 20 20 20 20 20 20 20 20 20 20 2e 3d 21 20 74 49 6e 66 6f 44 69 63 74 00 20 20 20 20 2e 3a | o"...........=!.tInfoDict......: |
bf20 | 20 22 65 6e 63 6f 64 69 6e 67 22 20 20 20 20 20 20 2e 3d 3f 20 74 45 6e 63 6f 64 69 6e 67 00 20 | ."encoding".......=?.tEncoding.. |
bf40 | 20 20 20 2e 3a 20 22 63 72 65 61 74 69 6f 6e 20 64 61 74 65 22 20 2e 3d 3f 20 74 43 72 65 61 74 | ....:."creation.date"..=?.tCreat |
bf60 | 69 6f 6e 44 61 74 65 00 20 20 20 20 2e 3a 20 22 63 72 65 61 74 65 64 20 62 79 22 20 20 20 20 2e | ionDate......:."created.by"..... |
bf80 | 3d 3f 20 74 43 72 65 61 74 65 64 42 79 00 20 20 20 20 2e 3a 20 22 63 6f 6d 6d 65 6e 74 22 20 20 | =?.tCreatedBy......:."comment".. |
bfa0 | 20 20 20 20 20 2e 3d 3f 20 74 43 6f 6d 6d 65 6e 74 00 20 20 20 20 2e 3a 20 22 61 6e 6e 6f 75 6e | ......=?.tComment......:."announ |
bfc0 | 63 65 2d 6c 69 73 74 22 20 2e 3d 3f 20 74 41 6e 6e 6f 75 6e 63 65 4c 69 73 74 00 20 20 20 20 20 | ce-list"..=?.tAnnounceList...... |
bfe0 | 20 20 22 61 6e 6e 6f 75 6e 63 65 22 20 20 20 20 20 20 2e 3d 3f 20 74 41 6e 6e 6f 75 6e 63 65 00 | .."announce".......=?.tAnnounce. |
c000 | 61 64 00 00 24 00 00 00 f4 01 00 00 00 10 00 00 6d 00 00 00 00 00 00 00 c6 0f 00 00 81 0f 00 00 | ad..$...........m............... |
c020 | 3d 0f 00 00 2d 0f 00 00 2a 0f 00 00 1b 0f 00 00 de 0e 00 00 a9 0e 00 00 6b 0e 00 00 4a 0e 00 00 | =...-...*...............k...J... |
c040 | 49 0e 00 00 01 0e 00 00 00 0e 00 00 d8 0d 00 00 bd 0d 00 00 80 0d 00 00 4d 0d 00 00 4c 0d 00 00 | I.......................M...L... |
c060 | 15 0d 00 00 e6 0c 00 00 e3 0c 00 00 c4 0c 00 00 a3 0c 00 00 a2 0c 00 00 7e 0c 00 00 63 0c 00 00 | ........................~...c... |
c080 | 4b 0c 00 00 4a 0c 00 00 01 0c 00 00 00 0c 00 00 d4 0b 00 00 bb 0b 00 00 a8 0b 00 00 6c 0b 00 00 | K...J.......................l... |
c0a0 | 6b 0b 00 00 51 0b 00 00 2a 0b 00 00 29 0b 00 00 11 0b 00 00 de 0a 00 00 dd 0a 00 00 bb 0a 00 00 | k...Q...*...)................... |
c0c0 | 91 0a 00 00 73 0a 00 00 72 0a 00 00 2a 0a 00 00 29 0a 00 00 08 0a 00 00 f3 09 00 00 ca 09 00 00 | ....s...r...*...)............... |
c0e0 | c9 09 00 00 a5 09 00 00 78 09 00 00 63 09 00 00 3b 09 00 00 1e 09 00 00 f2 08 00 00 cb 08 00 00 | ........x...c...;............... |
c100 | aa 08 00 00 9c 08 00 00 63 08 00 00 25 08 00 00 ef 07 00 00 ee 07 00 00 d2 07 00 00 9c 07 00 00 | ........c...%................... |
c120 | 78 07 00 00 77 07 00 00 40 07 00 00 3d 07 00 00 0a 07 00 00 07 07 00 00 e9 06 00 00 b4 06 00 00 | x...w...@...=................... |
c140 | b3 06 00 00 6a 06 00 00 5f 06 00 00 16 06 00 00 06 06 00 00 03 06 00 00 bf 05 00 00 79 05 00 00 | ....j..._...................y... |
c160 | 34 05 00 00 fc 04 00 00 f9 04 00 00 b2 04 00 00 a6 04 00 00 a3 04 00 00 7b 04 00 00 37 04 00 00 | 4.......................{...7... |
c180 | f8 03 00 00 f5 03 00 00 d3 03 00 00 9f 03 00 00 9c 03 00 00 9b 03 00 00 7d 03 00 00 4f 03 00 00 | ........................}...O... |
c1a0 | 4e 03 00 00 28 03 00 00 13 03 00 00 d2 02 00 00 b7 02 00 00 81 02 00 00 80 02 00 00 43 02 00 00 | N...(.......................C... |
c1c0 | 13 02 00 00 f5 01 00 00 f4 01 00 00 f3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
c1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 2c 20 64 69 73 70 6c 61 79 | .......................,.display |
c200 | 4e 61 6d 65 20 3a 3a 20 4d 61 79 62 65 20 54 65 78 74 00 20 20 20 20 2d 2d 20 64 69 73 70 6c 61 | Name.::.Maybe.Text.....--.displa |
c220 | 79 20 6e 61 6d 65 20 77 68 69 6c 65 20 77 61 69 74 69 6e 67 20 66 6f 72 20 6d 65 74 61 64 61 74 | y.name.while.waiting.for.metadat |
c240 | 61 2e 00 20 20 20 20 2d 2d 20 7c 20 41 20 66 69 6c 65 6e 61 6d 65 20 66 6f 72 20 74 68 65 20 66 | a......--.|.A.filename.for.the.f |
c260 | 69 6c 65 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 2e 20 43 61 6e 20 62 65 20 75 73 65 64 20 74 6f 00 | ile.to.download..Can.be.used.to. |
c280 | 00 20 20 20 20 65 78 61 63 74 54 6f 70 69 63 20 20 3a 3a 20 21 49 6e 66 6f 48 61 73 68 20 2d 2d | .....exactTopic..::.!InfoHash.-- |
c2a0 | 20 54 4f 44 4f 20 49 6e 66 6f 48 61 73 68 20 2d 3e 20 55 52 4e 3f 00 20 20 20 20 2d 2d 20 27 74 | .TODO.InfoHash.->.URN?.....--.'t |
c2c0 | 72 61 63 6b 65 72 27 20 70 72 6f 76 69 64 65 64 2e 00 20 20 7b 20 2d 2d 20 7c 20 54 6f 72 72 65 | racker'.provided....{.--.|.Torre |
c2e0 | 6e 74 20 69 6e 66 6f 68 61 73 68 20 68 61 73 68 2e 20 43 61 6e 20 62 65 20 75 73 65 64 20 69 6e | nt.infohash.hash..Can.be.used.in |
c300 | 20 44 48 54 20 71 75 65 72 69 65 73 20 69 66 20 6e 6f 00 64 61 74 61 20 4d 61 67 6e 65 74 20 3d | .DHT.queries.if.no.data.Magnet.= |
c320 | 20 4d 61 67 6e 65 74 00 2d 2d 20 7c 20 41 6e 20 55 52 49 20 75 73 65 64 20 74 6f 20 69 64 65 6e | .Magnet.--.|.An.URI.used.to.iden |
c340 | 74 69 66 79 20 74 6f 72 72 65 6e 74 2e 00 00 2d 2d 20 54 4f 44 4f 20 72 65 6e 64 65 72 2f 70 61 | tify.torrent...--.TODO.render/pa |
c360 | 72 73 65 20 73 75 70 70 6c 65 6d 65 6e 74 20 66 6f 72 20 55 52 49 2f 71 75 65 72 79 00 2d 2d 20 | rse.supplement.for.URI/query.--. |
c380 | 54 4f 44 4f 20 6d 75 6c 74 69 70 6c 65 20 65 78 61 63 74 20 74 6f 70 69 63 73 00 00 2d 2d 00 2d | TODO.multiple.exact.topics..--.- |
c3a0 | 2d 20 20 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 62 69 74 74 6f 72 72 65 6e 74 2e 6f 72 67 2f 62 | -...<http://www.bittorrent.org/b |
c3c0 | 65 70 73 2f 62 65 70 5f 30 30 30 39 2e 68 74 6d 6c 3e 00 2d 2d 20 20 20 42 69 74 74 6f 72 72 65 | eps/bep_0009.html>.--...Bittorre |
c3e0 | 6e 74 20 73 70 65 63 69 66 69 63 20 64 65 74 61 69 6c 73 3a 00 2d 2d 00 2d 2d 20 20 20 3c 68 74 | nt.specific.details:.--.--...<ht |
c400 | 74 70 3a 2f 2f 77 77 77 2e 69 61 6e 61 2e 6f 72 67 2f 61 73 73 69 67 6e 6d 65 6e 74 73 2f 75 72 | tp://www.iana.org/assignments/ur |
c420 | 69 2d 73 63 68 65 6d 65 73 2f 70 72 6f 76 2f 6d 61 67 6e 65 74 3e 00 2d 2d 20 20 20 3c 68 74 74 | i-schemes/prov/magnet>.--...<htt |
c440 | 70 3a 2f 2f 6d 61 67 6e 65 74 2d 75 72 69 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f 6d | p://magnet-uri.sourceforge.net/m |
c460 | 61 67 6e 65 74 2d 64 72 61 66 74 2d 6f 76 65 72 76 69 65 77 2e 74 78 74 3e 2c 00 2d 2d 20 20 20 | agnet-draft-overview.txt>,.--... |
c480 | 46 6f 72 20 67 65 6e 65 72 69 63 20 6d 61 67 6e 65 74 20 75 72 69 20 73 63 68 65 6d 65 20 73 65 | For.generic.magnet.uri.scheme.se |
c4a0 | 65 3a 00 2d 2d 00 2d 2d 20 20 20 6c 69 6e 6b 73 2e 00 2d 2d 20 20 20 54 68 69 73 20 6d 6f 64 75 | e:.--.--...links..--...This.modu |
c4c0 | 6c 65 20 70 72 6f 76 69 64 65 73 20 62 69 74 74 6f 72 72 65 6e 74 20 73 70 65 63 69 66 69 63 20 | le.provides.bittorrent.specific. |
c4e0 | 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 6d 61 67 6e 65 74 00 2d 2d 00 2d 2d 20 20 | implementation.of.magnet.--.--.. |
c500 | 20 6d 61 67 6e 65 74 20 6c 69 6e 6b 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 6e 73 74 65 61 | .magnet.links.can.be.used.instea |
c520 | 64 20 6f 66 20 74 6f 72 72 65 6e 74 20 66 69 6c 65 73 2e 00 2d 2d 20 20 20 63 61 6e 20 72 65 66 | d.of.torrent.files..--...can.ref |
c540 | 65 72 20 74 6f 20 74 6f 72 72 65 6e 74 20 75 73 69 6e 67 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e | er.to.torrent.using.correspondin |
c560 | 67 20 69 6e 66 6f 68 61 73 68 2e 20 49 6e 20 74 68 69 73 20 77 61 79 2c 00 2d 2d 20 20 20 6c 69 | g.infohash..In.this.way,.--...li |
c580 | 6e 6b 73 20 61 72 65 20 72 65 66 65 72 20 74 6f 20 72 65 73 6f 75 72 63 65 73 20 62 79 20 68 61 | nks.are.refer.to.resources.by.ha |
c5a0 | 73 68 2c 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 20 6d 61 67 6e 65 74 20 6c 69 6e 6b 73 00 2d | sh,.in.particular.magnet.links.- |
c5c0 | 2d 20 20 20 4d 61 67 6e 65 74 20 55 52 49 20 73 63 68 65 6d 65 20 69 73 20 61 6e 20 73 74 61 6e | -...Magnet.URI.scheme.is.an.stan |
c5e0 | 64 61 72 64 20 64 65 66 69 6e 69 6e 67 20 4d 61 67 6e 65 74 20 6c 69 6e 6b 73 2e 20 4d 61 67 6e | dard.defining.Magnet.links..Magn |
c600 | 65 74 00 2d 2d 00 2d 2d 20 24 6d 61 67 6e 65 74 2d 6c 69 6e 6b 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | et.--.--.$magnet-link.---------- |
c620 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
c640 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7d 00 2d | -----------------------------}.- |
c660 | 2d 20 20 4d 61 67 6e 65 74 00 7b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -..Magnet.{--------------------- |
c680 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
c6a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 70 61 72 73 65 55 52 4e 20 3d 20 65 | ------------------..parseURN.=.e |
c6c0 | 69 74 68 65 72 20 28 63 6f 6e 73 74 20 4e 6f 74 68 69 6e 67 29 20 70 75 72 65 20 2e 20 73 61 66 | ither.(const.Nothing).pure...saf |
c6e0 | 65 43 6f 6e 76 65 72 74 00 70 61 72 73 65 55 52 4e 20 3a 3a 20 54 65 78 74 20 2d 3e 20 4d 61 79 | eConvert.parseURN.::.Text.->.May |
c700 | 62 65 20 55 52 4e 00 2d 2d 00 2d 2d 20 20 55 73 65 20 27 73 61 66 65 43 6f 6e 76 65 72 74 27 20 | be.URN.--.--..Use.'safeConvert'. |
c720 | 66 6f 72 20 64 65 74 61 69 6c 65 64 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 73 2e 00 2d 2d 00 | for.detailed.error.messages..--. |
c740 | 2d 2d 20 7c 20 54 72 79 20 74 6f 20 70 61 72 73 65 20 61 6e 20 55 52 4e 20 66 72 6f 6d 20 69 74 | --.|.Try.to.parse.an.URN.from.it |
c760 | 73 20 74 65 78 74 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 00 00 20 20 20 20 20 20 20 20 | s.text.representation........... |
c780 | 20 20 20 20 20 2e 20 73 61 66 65 43 6f 6e 76 65 72 74 20 2e 20 54 2e 70 61 63 6b 00 20 20 66 72 | .......safeConvert...T.pack...fr |
c7a0 | 6f 6d 53 74 72 69 6e 67 20 3d 20 65 69 74 68 65 72 20 28 65 72 72 6f 72 20 2e 20 70 72 65 74 74 | omString.=.either.(error...prett |
c7c0 | 79 43 6f 6e 76 65 72 74 45 72 72 6f 72 29 20 69 64 00 69 6e 73 74 61 6e 63 65 20 49 73 53 74 72 | yConvertError).id.instance.IsStr |
c7e0 | 69 6e 67 20 55 52 4e 20 77 68 65 72 65 00 00 20 20 20 20 5b 5d 20 20 20 20 20 20 20 20 20 20 20 | ing.URN.where......[]........... |
c800 | 20 2d 3e 20 63 6f 6e 76 45 72 72 6f 72 20 22 6d 69 73 73 69 6e 67 20 55 52 4e 20 73 63 68 65 6d | .->.convError."missing.URN.schem |
c820 | 65 22 20 74 00 20 20 20 20 20 20 7c 20 6f 74 68 65 72 77 69 73 65 20 2d 3e 20 63 6f 6e 76 45 72 | e".t.......|.otherwise.->.convEr |
c840 | 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 55 52 4e 20 73 63 68 65 6d 65 22 20 75 72 69 53 63 68 65 | ror."invalid.URN.scheme".uriSche |
c860 | 6d 65 00 20 20 20 20 20 20 20 20 20 20 4e 6f 74 68 69 6e 67 20 2d 3e 20 63 6f 6e 76 45 72 72 6f | me...........Nothing.->.convErro |
c880 | 72 20 22 6d 69 73 73 69 6e 67 20 55 52 4e 20 73 74 72 69 6e 67 22 20 62 6f 64 79 00 20 20 20 20 | r."missing.URN.string".body..... |
c8a0 | 20 20 20 20 20 20 20 20 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 2c 20 75 72 6e 53 74 72 69 6e | ........}.............,.urnStrin |
c8c0 | 67 20 20 20 20 3d 20 76 61 6c 00 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 75 72 6e 4e 61 6d 65 | g....=.val.............{.urnName |
c8e0 | 73 70 61 63 65 20 3d 20 6e 61 6d 65 73 70 61 63 65 00 20 20 20 20 20 20 20 20 20 20 4a 75 73 74 | space.=.namespace...........Just |
c900 | 20 28 6e 61 6d 65 73 70 61 63 65 2c 20 76 61 6c 29 20 2d 3e 20 70 75 72 65 20 55 52 4e 00 20 20 | .(namespace,.val).->.pure.URN... |
c920 | 20 20 20 20 20 20 63 61 73 65 20 5f 75 6e 73 6e 6f 63 20 62 6f 64 79 20 6f 66 00 20 20 20 20 20 | ......case._unsnoc.body.of...... |
c940 | 20 7c 20 54 2e 74 6f 4c 6f 77 65 72 20 75 72 69 53 63 68 65 6d 65 20 3d 3d 20 22 75 72 6e 22 20 | .|.T.toLower.uriScheme.==."urn". |
c960 | 2d 3e 00 20 20 20 20 75 72 69 53 63 68 65 6d 65 20 3a 20 62 6f 64 79 00 20 20 73 61 66 65 43 6f | ->.....uriScheme.:.body...safeCo |
c980 | 6e 76 65 72 74 20 74 20 3d 20 63 61 73 65 20 54 2e 73 70 6c 69 74 20 28 3d 3d 20 27 3a 27 29 20 | nvert.t.=.case.T.split.(==.':'). |
c9a0 | 74 20 6f 66 00 69 6e 73 74 61 6e 63 65 20 43 6f 6e 76 65 72 74 69 62 6c 65 20 54 65 78 74 20 55 | t.of.instance.Convertible.Text.U |
c9c0 | 52 4e 20 77 68 65 72 65 00 00 5f 75 6e 73 6e 6f 63 20 78 73 20 3d 20 4a 75 73 74 20 28 4c 2e 69 | RN.where.._unsnoc.xs.=.Just.(L.i |
c9e0 | 6e 69 74 20 78 73 2c 20 4c 2e 6c 61 73 74 20 78 73 29 00 5f 75 6e 73 6e 6f 63 20 5b 5d 20 3d 20 | nit.xs,.L.last.xs)._unsnoc.[].=. |
ca00 | 4e 6f 74 68 69 6e 67 00 5f 75 6e 73 6e 6f 63 20 3a 3a 20 5b 61 5d 20 2d 3e 20 4d 61 79 62 65 20 | Nothing._unsnoc.::.[a].->.Maybe. |
ca20 | 28 5b 61 5d 2c 20 61 29 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ([a],.a)..---------------------- |
ca40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
ca60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 7b 2d 23 20 49 4e 4c 49 4e 45 20 | -----------------....{-#.INLINE. |
ca80 | 74 6f 51 75 65 72 79 56 61 6c 75 65 20 23 2d 7d 00 20 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 | toQueryValue.#-}...toQueryValue. |
caa0 | 3d 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 2e 20 72 65 6e 64 65 72 55 52 4e 00 69 6e 73 74 61 | =.toQueryValue...renderURN.insta |
cac0 | 6e 63 65 20 51 75 65 72 79 56 61 6c 75 65 4c 69 6b 65 20 55 52 4e 20 77 68 65 72 65 00 00 20 20 | nce.QueryValueLike.URN.where.... |
cae0 | 73 68 6f 77 73 50 72 65 63 20 6e 20 3d 20 73 68 6f 77 73 50 72 65 63 20 6e 20 2e 20 54 2e 75 6e | showsPrec.n.=.showsPrec.n...T.un |
cb00 | 70 61 63 6b 20 2e 20 72 65 6e 64 65 72 55 52 4e 00 69 6e 73 74 61 6e 63 65 20 53 68 6f 77 20 55 | pack...renderURN.instance.Show.U |
cb20 | 52 4e 20 77 68 65 72 65 00 00 20 20 70 50 72 69 6e 74 20 3d 20 74 65 78 74 20 2e 20 54 2e 75 6e | RN.where....pPrint.=.text...T.un |
cb40 | 70 61 63 6b 20 2e 20 72 65 6e 64 65 72 55 52 4e 00 69 6e 73 74 61 6e 63 65 20 50 72 65 74 74 79 | pack...renderURN.instance.Pretty |
cb60 | 20 55 52 4e 20 77 68 65 72 65 00 00 20 20 3d 20 54 2e 69 6e 74 65 72 63 61 6c 61 74 65 20 22 3a | .URN.where....=.T.intercalate.": |
cb80 | 22 20 24 20 22 75 72 6e 22 20 3a 20 75 72 6e 4e 61 6d 65 73 70 61 63 65 20 2b 2b 20 5b 75 72 6e | ".$."urn".:.urnNamespace.++.[urn |
cba0 | 53 74 72 69 6e 67 5d 00 72 65 6e 64 65 72 55 52 4e 20 55 52 4e 20 7b 2e 2e 7d 00 72 65 6e 64 65 | String].renderURN.URN.{..}.rende |
cbc0 | 72 55 52 4e 20 3a 3a 20 55 52 4e 20 2d 3e 20 54 65 78 74 00 2d 2d 20 7c 20 52 65 6e 64 65 72 20 | rURN.::.URN.->.Text.--.|.Render. |
cbe0 | 55 52 4e 20 74 6f 20 69 74 73 20 74 65 78 74 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 00 | URN.to.its.text.representation.. |
cc00 | 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .------------------------------- |
cc20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
cc40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 64 65 66 20 3d 20 69 6e 66 6f 68 61 73 68 55 52 4e 20 64 | ---------....def.=.infohashURN.d |
cc60 | 65 66 00 69 6e 73 74 61 6e 63 65 20 44 65 66 61 75 6c 74 20 55 52 4e 20 77 68 65 72 65 00 2d 2d | ef.instance.Default.URN.where.-- |
cc80 | 20 7c 20 4d 65 61 6e 69 6e 67 6c 65 73 73 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 76 61 6c 75 65 | .|.Meaningless.placeholder.value |
cca0 | 2e 00 00 69 6e 66 6f 68 61 73 68 55 52 4e 20 3d 20 55 52 4e 20 62 74 69 68 20 2e 20 6c 6f 6e 67 | ...infohashURN.=.URN.btih...long |
ccc0 | 48 65 78 00 69 6e 66 6f 68 61 73 68 55 52 4e 20 3a 3a 20 49 6e 66 6f 48 61 73 68 20 2d 3e 20 55 | Hex.infohashURN.::.InfoHash.->.U |
cce0 | 52 4e 00 2d 2d 00 2d 2d 20 69 6e 66 6f 68 61 73 68 2e 20 49 6e 66 6f 68 61 73 68 20 69 73 20 62 | RN.--.--.infohash..Infohash.is.b |
cd00 | 61 73 65 31 36 20 28 68 65 78 29 20 65 6e 63 6f 64 65 64 2e 00 2d 2d 20 7c 20 4d 61 6b 65 20 72 | ase16.(hex).encoded..--.|.Make.r |
cd20 | 65 73 6f 75 72 63 65 20 6e 61 6d 65 20 66 6f 72 20 74 6f 72 72 65 6e 74 20 77 69 74 68 20 63 6f | esource.name.for.torrent.with.co |
cd40 | 72 72 65 73 70 6f 6e 64 69 6e 67 00 00 20 20 20 20 7c 20 20 20 20 20 20 20 6f 74 68 65 72 77 69 | rresponding......|.......otherwi |
cd60 | 73 65 20 20 20 20 20 20 3d 20 73 61 66 65 43 6f 6e 76 65 72 74 20 75 72 6e 53 74 72 69 6e 67 00 | se......=.safeConvert.urnString. |
cd80 | 20 20 20 20 7c 20 75 72 6e 4e 61 6d 65 73 70 61 63 65 20 2f 3d 20 62 74 69 68 20 3d 20 63 6f 6e | ....|.urnNamespace./=.btih.=.con |
cda0 | 76 45 72 72 6f 72 20 22 69 6e 76 61 6c 69 64 20 6e 61 6d 65 73 70 61 63 65 22 20 75 00 20 20 73 | vError."invalid.namespace".u...s |
cdc0 | 61 66 65 43 6f 6e 76 65 72 74 20 75 20 40 20 55 52 4e 20 7b 2e 2e 7d 00 69 6e 73 74 61 6e 63 65 | afeConvert.u.@.URN.{..}.instance |
cde0 | 20 43 6f 6e 76 65 72 74 69 62 6c 65 20 55 52 4e 20 49 6e 66 6f 48 61 73 68 20 77 68 65 72 65 00 | .Convertible.URN.InfoHash.where. |
ce00 | 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .------------------------------- |
ce20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
ce40 | 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 7d 20 64 65 72 69 76 69 6e 67 20 28 45 71 2c 20 4f 72 64 2c | --------....}.deriving.(Eq,.Ord, |
ce60 | 20 54 79 70 65 61 62 6c 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .Typeable)...................... |
ce80 | 20 20 20 20 20 20 20 20 20 20 20 2d 2d 20 6e 61 6d 65 73 70 61 63 65 2d 73 70 65 63 69 66 69 63 | ...........--.namespace-specific |
cea0 | 20 73 74 72 69 6e 67 2e 00 20 20 2c 20 75 72 6e 53 74 72 69 6e 67 20 20 20 20 3a 3a 20 54 65 78 | .string....,.urnString....::.Tex |
cec0 | 74 20 20 20 20 20 20 20 20 2d 2d 20 5e 20 61 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 00 20 20 | t........--.^.a.corresponding... |
cee0 | 7b 20 75 72 6e 4e 61 6d 65 73 70 61 63 65 20 3a 3a 20 4e 61 6d 65 73 70 61 63 65 49 64 20 2d 2d | {.urnNamespace.::.NamespaceId.-- |
cf00 | 20 5e 20 61 20 6e 61 6d 65 73 70 61 63 65 20 69 64 65 6e 74 69 66 69 65 72 3b 00 64 61 74 61 20 | .^.a.namespace.identifier;.data. |
cf20 | 55 52 4e 20 3d 20 55 52 4e 00 2d 2d 00 2d 2d 20 20 20 6d 6f 72 65 20 69 6e 66 6f 2e 00 2d 2d 20 | URN.=.URN.--.--...more.info..--. |
cf40 | 20 20 61 73 20 61 20 70 61 72 74 20 6f 66 20 6d 61 67 6e 65 74 20 6c 69 6e 6b 2c 20 73 65 65 20 | ..as.a.part.of.magnet.link,.see. |
cf60 | 27 44 61 74 61 2e 54 6f 72 72 65 6e 74 2e 4d 61 67 6e 65 74 2e 4d 61 67 6e 65 74 27 20 66 6f 72 | 'Data.Torrent.Magnet.Magnet'.for |
cf80 | 00 2d 2d 20 20 20 72 65 73 6f 75 72 63 65 73 2e 20 49 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 | .--...resources..In.particular,. |
cfa0 | 55 52 4e 73 20 61 72 65 20 75 73 65 64 20 72 65 70 72 65 73 65 6e 74 20 74 6f 72 72 65 6e 74 20 | URNs.are.used.represent.torrent. |
cfc0 | 6e 61 6d 65 73 00 2d 2d 20 7c 20 55 52 4e 20 69 73 20 70 65 73 69 73 74 65 6e 74 20 6c 6f 63 61 | names.--.|.URN.is.pesistent.loca |
cfe0 | 74 69 6f 6e 2d 69 6e 64 65 70 65 6e 64 65 6e 74 20 69 64 65 6e 74 69 66 69 65 72 20 66 6f 72 00 | tion-independent.identifier.for. |
d000 | 61 64 00 00 0d 00 00 00 ed 01 00 00 00 10 00 00 71 00 00 00 00 00 00 00 d8 0f 00 00 b7 0f 00 00 | ad..............q............... |
d020 | b6 0f 00 00 75 0f 00 00 5a 0f 00 00 59 0f 00 00 41 0f 00 00 22 0f 00 00 21 0f 00 00 e0 0e 00 00 | ....u...Z...Y...A..."...!....... |
d040 | a0 0e 00 00 89 0e 00 00 67 0e 00 00 66 0e 00 00 40 0e 00 00 1e 0e 00 00 1d 0e 00 00 00 0e 00 00 | ........g...f...@............... |
d060 | e7 0d 00 00 e6 0d 00 00 b6 0d 00 00 96 0d 00 00 75 0d 00 00 74 0d 00 00 4e 0d 00 00 29 0d 00 00 | ................u...t...N...)... |
d080 | 28 0d 00 00 06 0d 00 00 e1 0c 00 00 e0 0c 00 00 c0 0c 00 00 a8 0c 00 00 74 0c 00 00 4d 0c 00 00 | (.......................t...M... |
d0a0 | 26 0c 00 00 02 0c 00 00 da 0b 00 00 ae 0b 00 00 87 0b 00 00 64 0b 00 00 5e 0b 00 00 5d 0b 00 00 | &...................d...^...]... |
d0c0 | 38 0b 00 00 0b 0b 00 00 0a 0b 00 00 de 0a 00 00 c8 0a 00 00 89 0a 00 00 47 0a 00 00 33 0a 00 00 | 8.......................G...3... |
d0e0 | 0d 0a 00 00 e0 09 00 00 a8 09 00 00 7b 09 00 00 4e 09 00 00 16 09 00 00 de 08 00 00 a6 08 00 00 | ............{...N............... |
d100 | 81 08 00 00 77 08 00 00 6d 08 00 00 26 08 00 00 00 08 00 00 dc 07 00 00 93 07 00 00 92 07 00 00 | ....w...m...&................... |
d120 | 7e 07 00 00 6b 07 00 00 4c 07 00 00 2f 07 00 00 17 07 00 00 ff 06 00 00 e7 06 00 00 e1 06 00 00 | ~...k...L.../................... |
d140 | e0 06 00 00 c5 06 00 00 91 06 00 00 90 06 00 00 65 06 00 00 3f 06 00 00 24 06 00 00 e0 05 00 00 | ................e...?...$....... |
d160 | 94 05 00 00 93 05 00 00 67 05 00 00 41 05 00 00 1b 05 00 00 df 04 00 00 de 04 00 00 b5 04 00 00 | ........g...A................... |
d180 | a3 04 00 00 72 04 00 00 2d 04 00 00 2c 04 00 00 e3 03 00 00 e2 03 00 00 be 03 00 00 a0 03 00 00 | ....r...-...,................... |
d1a0 | 91 03 00 00 74 03 00 00 53 03 00 00 32 03 00 00 11 03 00 00 f0 02 00 00 cf 02 00 00 ae 02 00 00 | ....t...S...2................... |
d1c0 | 8d 02 00 00 6c 02 00 00 66 02 00 00 65 02 00 00 24 02 00 00 03 02 00 00 ed 01 00 00 ec 01 00 00 | ....l...f...e...$............... |
d1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 6e 75 6c 6c 4d 61 67 6e 65 74 20 75 20 3d 20 4d 61 67 6e | .............nullMagnet.u.=.Magn |
d200 | 65 74 00 6e 75 6c 6c 4d 61 67 6e 65 74 20 3a 3a 20 49 6e 66 6f 48 61 73 68 20 2d 3e 20 4d 61 67 | et.nullMagnet.::.InfoHash.->.Mag |
d220 | 6e 65 74 00 2d 2d 20 7c 20 53 65 74 20 27 65 78 61 63 74 54 6f 70 69 63 27 20 28 27 78 74 27 20 | net.--.|.Set.'exactTopic'.('xt'. |
d240 | 70 61 72 61 6d 29 20 6f 6e 6c 79 2c 20 6f 74 68 65 72 20 70 61 72 61 6d 73 20 61 72 65 20 65 6d | param).only,.other.params.are.em |
d260 | 70 74 79 2e 00 00 20 20 20 20 7d 00 20 20 20 20 2c 20 73 75 70 70 6c 65 6d 65 6e 74 20 20 20 20 | pty.......}.....,.supplement.... |
d280 | 20 20 20 3d 20 4d 2e 65 6d 70 74 79 00 20 20 20 20 2c 20 74 72 61 63 6b 65 72 20 20 20 20 20 20 | ...=.M.empty.....,.tracker...... |
d2a0 | 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 65 78 61 63 74 53 6f 75 72 63 65 20 | ....=.Nothing.....,.exactSource. |
d2c0 | 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 61 63 63 65 70 74 61 62 6c 65 53 | .....=.Nothing.....,.acceptableS |
d2e0 | 6f 75 72 63 65 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 6b 65 79 77 6f 72 64 54 6f 70 | ource.=.Nothing.....,.keywordTop |
d300 | 69 63 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 6d 61 6e 69 66 65 73 74 20 | ic.....=.Nothing.....,.manifest. |
d320 | 20 20 20 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 65 78 61 63 74 4c 65 6e | ........=.Nothing.....,.exactLen |
d340 | 67 74 68 20 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 2c 20 64 69 73 70 6c 61 79 | gth......=.Nothing.....,.display |
d360 | 4e 61 6d 65 20 20 20 20 20 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 7b 20 65 78 61 63 74 54 | Name......=.Nothing.....{.exactT |
d380 | 6f 70 69 63 20 20 20 20 20 20 20 3d 20 64 65 66 00 20 20 64 65 66 20 3d 20 4d 61 67 6e 65 74 00 | opic.......=.def...def.=.Magnet. |
d3a0 | 69 6e 73 74 61 6e 63 65 20 44 65 66 61 75 6c 74 20 4d 61 67 6e 65 74 20 77 68 65 72 65 00 2d 2d | instance.Default.Magnet.where.-- |
d3c0 | 20 7c 20 4d 65 61 6e 69 6e 67 6c 65 73 73 20 70 6c 61 63 65 68 6f 6c 64 65 72 20 76 61 6c 75 65 | .|.Meaningless.placeholder.value |
d3e0 | 2e 00 00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...----------------------------- |
d400 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
d420 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 20 20 20 20 7c 20 20 20 20 20 20 20 20 6f 74 68 65 72 77 | -----------......|........otherw |
d440 | 69 73 65 20 20 20 20 20 20 20 20 20 3d 20 63 6f 6e 76 45 72 72 6f 72 20 22 75 6e 61 62 6c 65 20 | ise.........=.convError."unable. |
d460 | 74 6f 20 70 61 72 73 65 20 75 72 69 22 20 73 74 72 00 20 20 20 20 7c 20 4a 75 73 74 20 75 72 69 | to.parse.uri".str.....|.Just.uri |
d480 | 20 3c 2d 20 70 61 72 73 65 55 52 49 20 73 74 72 20 3d 20 73 61 66 65 43 6f 6e 76 65 72 74 20 75 | .<-.parseURI.str.=.safeConvert.u |
d4a0 | 72 69 00 20 20 73 61 66 65 43 6f 6e 76 65 72 74 20 73 74 72 00 69 6e 73 74 61 6e 63 65 20 43 6f | ri...safeConvert.str.instance.Co |
d4c0 | 6e 76 65 72 74 69 62 6c 65 20 53 74 72 69 6e 67 20 4d 61 67 6e 65 74 20 77 68 65 72 65 00 00 20 | nvertible.String.Magnet.where... |
d4e0 | 20 20 20 7b 20 75 72 69 51 75 65 72 79 20 3d 20 42 43 2e 75 6e 70 61 63 6b 20 24 20 72 65 6e 64 | ...{.uriQuery.=.BC.unpack.$.rend |
d500 | 65 72 51 75 65 72 79 20 54 72 75 65 20 24 20 74 6f 51 75 65 72 79 20 6d 20 7d 00 20 20 73 61 66 | erQuery.True.$.toQuery.m.}...saf |
d520 | 65 43 6f 6e 76 65 72 74 20 6d 20 3d 20 70 75 72 65 20 24 20 6d 61 67 6e 65 74 53 63 68 65 6d 65 | eConvert.m.=.pure.$.magnetScheme |
d540 | 00 69 6e 73 74 61 6e 63 65 20 43 6f 6e 76 65 72 74 69 62 6c 65 20 4d 61 67 6e 65 74 20 55 52 49 | .instance.Convertible.Magnet.URI |
d560 | 20 77 68 65 72 65 00 2d 2d 20 7c 20 43 61 6e 20 62 65 20 75 73 65 64 20 69 6e 73 74 65 61 64 20 | .where.--.|.Can.be.used.instead. |
d580 | 6f 66 20 27 72 65 6e 64 65 72 4d 61 67 6e 65 74 27 2e 00 00 20 20 20 20 7c 20 20 20 20 20 20 6f | of.'renderMagnet'.......|......o |
d5a0 | 74 68 65 72 77 69 73 65 20 20 20 20 20 20 3d 20 73 61 66 65 43 6f 6e 76 65 72 74 20 24 20 70 61 | therwise......=.safeConvert.$.pa |
d5c0 | 72 73 65 51 75 65 72 79 54 65 78 74 20 24 20 42 43 2e 70 61 63 6b 20 75 72 69 51 75 65 72 79 00 | rseQueryText.$.BC.pack.uriQuery. |
d5e0 | 20 20 20 20 7c 20 6e 6f 74 20 28 69 73 4d 61 67 6e 65 74 55 52 49 20 75 29 20 3d 20 63 6f 6e 76 | ....|.not.(isMagnetURI.u).=.conv |
d600 | 45 72 72 6f 72 20 22 74 68 69 73 20 69 73 20 6e 6f 74 20 61 20 6d 61 67 6e 65 74 20 6c 69 6e 6b | Error."this.is.not.a.magnet.link |
d620 | 22 20 75 00 20 20 73 61 66 65 43 6f 6e 76 65 72 74 20 75 20 40 20 55 52 49 20 7b 2e 2e 7d 00 69 | ".u...safeConvert.u.@.URI.{..}.i |
d640 | 6e 73 74 61 6e 63 65 20 43 6f 6e 76 65 72 74 69 62 6c 65 20 55 52 49 20 4d 61 67 6e 65 74 20 77 | nstance.Convertible.URI.Magnet.w |
d660 | 68 65 72 65 00 2d 2d 20 7c 20 43 61 6e 20 62 65 20 75 73 65 64 20 69 6e 73 74 65 61 64 20 6f 66 | here.--.|.Can.be.used.instead.of |
d680 | 20 27 70 61 72 73 65 4d 61 67 6e 65 74 27 2e 00 00 69 73 4d 61 67 6e 65 74 55 52 49 20 75 20 3d | .'parseMagnet'...isMagnetURI.u.= |
d6a0 | 20 75 20 7b 20 75 72 69 51 75 65 72 79 20 3d 20 22 22 20 7d 20 3d 3d 20 6d 61 67 6e 65 74 53 63 | .u.{.uriQuery.=."".}.==.magnetSc |
d6c0 | 68 65 6d 65 00 69 73 4d 61 67 6e 65 74 55 52 49 20 3a 3a 20 55 52 49 20 2d 3e 20 42 6f 6f 6c 00 | heme.isMagnetURI.::.URI.->.Bool. |
d6e0 | 00 20 20 20 20 7d 00 20 20 20 20 2c 20 75 72 69 46 72 61 67 6d 65 6e 74 20 20 3d 20 22 22 00 20 | .....}.....,.uriFragment..=."".. |
d700 | 20 20 20 2c 20 75 72 69 51 75 65 72 79 20 20 20 20 20 3d 20 22 22 00 20 20 20 20 2c 20 75 72 69 | ...,.uriQuery.....=."".....,.uri |
d720 | 50 61 74 68 20 20 20 20 20 20 3d 20 22 22 00 20 20 20 20 2c 20 75 72 69 41 75 74 68 6f 72 69 74 | Path......=."".....,.uriAuthorit |
d740 | 79 20 3d 20 4e 6f 74 68 69 6e 67 00 20 20 20 20 7b 20 75 72 69 53 63 68 65 6d 65 20 20 20 20 3d | y.=.Nothing.....{.uriScheme....= |
d760 | 20 22 6d 61 67 6e 65 74 3a 22 00 6d 61 67 6e 65 74 53 63 68 65 6d 65 20 3d 20 55 52 49 00 6d 61 | ."magnet:".magnetScheme.=.URI.ma |
d780 | 67 6e 65 74 53 63 68 65 6d 65 20 3a 3a 20 55 52 49 00 00 20 20 20 20 20 20 67 65 74 54 65 78 74 | gnetScheme.::.URI........getText |
d7a0 | 4d 73 67 20 70 20 6d 73 67 20 70 73 20 3d 20 6d 61 79 62 65 20 28 63 6f 6e 76 45 72 72 6f 72 20 | Msg.p.msg.ps.=.maybe.(convError. |
d7c0 | 6d 73 67 20 78 73 29 20 70 75 72 65 20 24 20 67 65 74 54 65 78 74 20 70 20 70 73 00 20 20 20 20 | msg.xs).pure.$.getText.p.ps..... |
d7e0 | 20 20 67 65 74 54 65 78 74 20 70 20 3d 20 6a 6f 69 6e 20 2e 20 4c 2e 6c 6f 6f 6b 75 70 20 70 00 | ..getText.p.=.join...L.lookup.p. |
d800 | 20 20 20 20 20 20 67 65 74 55 52 49 20 20 20 20 3d 20 70 61 72 73 65 55 52 49 20 2e 20 54 2e 75 | ......getURI....=.parseURI...T.u |
d820 | 6e 70 61 63 6b 00 20 20 20 20 20 20 67 65 74 49 6e 74 20 20 20 20 3d 20 65 69 74 68 65 72 20 28 | npack.......getInt....=.either.( |
d840 | 63 6f 6e 73 74 20 4e 6f 74 68 69 6e 67 29 20 28 4a 75 73 74 20 2e 20 66 73 74 29 20 2e 20 73 69 | const.Nothing).(Just...fst)...si |
d860 | 67 6e 65 64 20 64 65 63 69 6d 61 6c 00 20 20 20 20 77 68 65 72 65 00 20 20 20 20 20 20 20 20 7d | gned.decimal.....where.........} |
d880 | 00 20 20 20 20 20 20 20 20 2c 20 73 75 70 70 6c 65 6d 65 6e 74 20 20 20 20 20 20 20 3d 20 4d 2e | .........,.supplement.......=.M. |
d8a0 | 65 6d 70 74 79 00 20 20 20 20 20 20 20 20 2c 20 74 72 61 63 6b 65 72 20 20 20 20 20 20 20 20 20 | empty.........,.tracker......... |
d8c0 | 20 3d 20 67 65 74 54 65 78 74 20 22 74 72 22 20 78 73 20 3e 3e 3d 20 67 65 74 55 52 49 00 20 20 | .=.getText."tr".xs.>>=.getURI... |
d8e0 | 20 20 20 20 20 20 2c 20 65 78 61 63 74 53 6f 75 72 63 65 20 20 20 20 20 20 3d 20 67 65 74 54 65 | ......,.exactSource......=.getTe |
d900 | 78 74 20 22 78 73 22 20 78 73 20 3e 3e 3d 20 67 65 74 55 52 49 00 20 20 20 20 20 20 20 20 2c 20 | xt."xs".xs.>>=.getURI.........,. |
d920 | 61 63 63 65 70 74 61 62 6c 65 53 6f 75 72 63 65 20 3d 20 67 65 74 54 65 78 74 20 22 61 73 22 20 | acceptableSource.=.getText."as". |
d940 | 78 73 20 3e 3e 3d 20 67 65 74 55 52 49 00 20 20 20 20 20 20 20 20 2c 20 6b 65 79 77 6f 72 64 54 | xs.>>=.getURI.........,.keywordT |
d960 | 6f 70 69 63 20 20 20 20 20 3d 20 67 65 74 54 65 78 74 20 22 6b 74 22 20 78 73 00 20 20 20 20 20 | opic.....=.getText."kt".xs...... |
d980 | 20 20 20 2c 20 6d 61 6e 69 66 65 73 74 20 20 20 20 20 20 20 20 20 3d 20 67 65 74 54 65 78 74 20 | ...,.manifest.........=.getText. |
d9a0 | 22 6d 74 22 20 78 73 00 20 20 20 20 20 20 20 20 2c 20 65 78 61 63 74 4c 65 6e 67 74 68 20 20 20 | "mt".xs.........,.exactLength... |
d9c0 | 20 20 20 3d 20 67 65 74 54 65 78 74 20 22 78 6c 22 20 78 73 20 3e 3e 3d 20 67 65 74 49 6e 74 00 | ...=.getText."xl".xs.>>=.getInt. |
d9e0 | 20 20 20 20 20 20 20 20 2c 20 64 69 73 70 6c 61 79 4e 61 6d 65 20 20 20 20 20 20 3d 20 67 65 74 | ........,.displayName......=.get |
da00 | 54 65 78 74 20 22 64 6e 22 20 78 73 00 20 20 20 20 20 20 20 20 7b 20 65 78 61 63 74 54 6f 70 69 | Text."dn".xs.........{.exactTopi |
da20 | 63 20 20 20 20 20 20 20 3d 20 69 6e 66 6f 48 61 73 68 00 20 20 20 20 20 20 72 65 74 75 72 6e 20 | c.......=.infoHash.......return. |
da40 | 4d 61 67 6e 65 74 00 20 20 20 20 20 20 69 6e 66 6f 48 61 73 68 20 3c 2d 20 63 6f 6e 76 65 72 74 | Magnet.......infoHash.<-.convert |
da60 | 56 69 61 20 28 65 72 72 6f 72 20 22 73 61 66 65 43 6f 6e 76 65 72 74 22 20 3a 3a 20 55 52 4e 29 | Via.(error."safeConvert".::.URN) |
da80 | 20 20 75 72 6e 53 74 72 00 20 20 20 20 20 20 75 72 6e 53 74 72 20 20 20 3c 2d 20 67 65 74 54 65 | ..urnStr.......urnStr...<-.getTe |
daa0 | 78 74 4d 73 67 20 22 78 74 22 20 22 65 78 61 63 74 20 74 6f 70 69 63 20 6e 6f 74 20 64 65 66 69 | xtMsg."xt"."exact.topic.not.defi |
dac0 | 6e 65 64 22 20 78 73 00 20 20 73 61 66 65 43 6f 6e 76 65 72 74 20 78 73 20 3d 20 64 6f 00 69 6e | ned".xs...safeConvert.xs.=.do.in |
dae0 | 73 74 61 6e 63 65 20 43 6f 6e 76 65 72 74 69 62 6c 65 20 51 75 65 72 79 54 65 78 74 20 4d 61 67 | stance.Convertible.QueryText.Mag |
db00 | 6e 65 74 20 77 68 65 72 65 00 00 20 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 3d 20 74 6f 51 75 | net.where....toQueryValue.=.toQu |
db20 | 65 72 79 56 61 6c 75 65 20 2e 20 72 65 6e 64 65 72 4d 61 67 6e 65 74 00 69 6e 73 74 61 6e 63 65 | eryValue...renderMagnet.instance |
db40 | 20 51 75 65 72 79 56 61 6c 75 65 4c 69 6b 65 20 4d 61 67 6e 65 74 20 77 68 65 72 65 00 00 20 20 | .QueryValueLike.Magnet.where.... |
db60 | 20 20 5d 00 20 20 20 20 2c 20 28 22 74 72 22 2c 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 74 72 | ..].....,.("tr",.toQueryValue.tr |
db80 | 61 63 6b 65 72 29 00 20 20 20 20 2c 20 28 22 78 73 22 2c 20 74 6f 51 75 65 72 79 56 61 6c 75 65 | acker).....,.("xs",.toQueryValue |
dba0 | 20 65 78 61 63 74 53 6f 75 72 63 65 29 00 20 20 20 20 2c 20 28 22 61 73 22 2c 20 74 6f 51 75 65 | .exactSource).....,.("as",.toQue |
dbc0 | 72 79 56 61 6c 75 65 20 61 63 63 65 70 74 61 62 6c 65 53 6f 75 72 63 65 29 00 20 20 20 20 2c 20 | ryValue.acceptableSource).....,. |
dbe0 | 28 22 6b 74 22 2c 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 6b 65 79 77 6f 72 64 54 6f 70 69 63 | ("kt",.toQueryValue.keywordTopic |
dc00 | 29 00 20 20 20 20 2c 20 28 22 6d 74 22 2c 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 6d 61 6e 69 | ).....,.("mt",.toQueryValue.mani |
dc20 | 66 65 73 74 29 00 20 20 20 20 2c 20 28 22 78 6c 22 2c 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 | fest).....,.("xl",.toQueryValue. |
dc40 | 65 78 61 63 74 4c 65 6e 67 74 68 29 00 20 20 20 20 2c 20 28 22 64 6e 22 2c 20 74 6f 51 75 65 72 | exactLength).....,.("dn",.toQuer |
dc60 | 79 56 61 6c 75 65 20 64 69 73 70 6c 61 79 4e 61 6d 65 29 00 20 20 20 20 5b 20 28 22 78 74 22 2c | yValue.displayName).....[.("xt", |
dc80 | 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 24 20 69 6e 66 6f 68 61 73 68 55 52 4e 20 65 78 61 63 | .toQueryValue.$.infohashURN.exac |
dca0 | 74 54 6f 70 69 63 29 00 20 20 74 6f 51 75 65 72 79 20 4d 61 67 6e 65 74 20 7b 2e 2e 7d 20 3d 00 | tTopic)...toQuery.Magnet.{..}.=. |
dcc0 | 69 6e 73 74 61 6e 63 65 20 51 75 65 72 79 4c 69 6b 65 20 4d 61 67 6e 65 74 20 77 68 65 72 65 00 | instance.QueryLike.Magnet.where. |
dce0 | 00 20 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 3d 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 2e | ...toQueryValue.=.toQueryValue.. |
dd00 | 20 73 68 6f 77 00 69 6e 73 74 61 6e 63 65 20 51 75 65 72 79 56 61 6c 75 65 4c 69 6b 65 20 55 52 | .show.instance.QueryValueLike.UR |
dd20 | 49 20 77 68 65 72 65 00 00 20 20 74 6f 51 75 65 72 79 56 61 6c 75 65 20 3d 20 74 6f 51 75 65 72 | I.where....toQueryValue.=.toQuer |
dd40 | 79 56 61 6c 75 65 20 2e 20 73 68 6f 77 00 69 6e 73 74 61 6e 63 65 20 51 75 65 72 79 56 61 6c 75 | yValue...show.instance.QueryValu |
dd60 | 65 4c 69 6b 65 20 49 6e 74 65 67 65 72 20 77 68 65 72 65 00 00 20 20 7d 20 64 65 72 69 76 69 6e | eLike.Integer.where....}.derivin |
dd80 | 67 20 28 45 71 2c 20 4f 72 64 2c 20 54 79 70 65 61 62 6c 65 29 00 20 20 2c 20 73 75 70 70 6c 65 | g.(Eq,.Ord,.Typeable)...,.supple |
dda0 | 6d 65 6e 74 20 3a 3a 20 4d 61 70 20 54 65 78 74 20 54 65 78 74 00 20 20 20 20 2d 2d 20 7c 20 41 | ment.::.Map.Text.Text.....--.|.A |
ddc0 | 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 70 61 72 61 6d 65 | dditional.or.experimental.parame |
dde0 | 74 65 72 73 2e 00 00 20 20 2c 20 74 72 61 63 6b 65 72 20 3a 3a 20 4d 61 79 62 65 20 55 52 49 00 | ters.....,.tracker.::.Maybe.URI. |
de00 | 20 20 20 20 2d 2d 20 7c 20 55 52 49 20 74 6f 20 74 68 65 20 74 72 61 63 6b 65 72 2e 00 00 20 20 | ....--.|.URI.to.the.tracker..... |
de20 | 2c 20 65 78 61 63 74 53 6f 75 72 63 65 20 20 20 20 20 20 3a 3a 20 4d 61 79 62 65 20 55 52 49 00 | ,.exactSource......::.Maybe.URI. |
de40 | 20 20 20 20 2d 2d 20 7c 20 44 69 72 65 63 74 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 72 65 73 6f | ....--.|.Direct.link.to.the.reso |
de60 | 75 72 63 65 2e 00 00 20 20 2c 20 61 63 63 65 70 74 61 62 6c 65 53 6f 75 72 63 65 20 3a 3a 20 4d | urce.....,.acceptableSource.::.M |
de80 | 61 79 62 65 20 55 52 49 00 20 20 20 20 2d 2d 20 61 6d 6f 75 6e 74 20 6f 66 20 74 69 6d 65 2e 00 | aybe.URI.....--.amount.of.time.. |
dea0 | 20 20 20 20 2d 2d 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 66 69 6c 65 20 69 6e 20 74 68 65 20 | ....--.download.the.file.in.the. |
dec0 | 62 69 74 74 6f 72 72 65 6e 74 20 6e 65 74 77 6f 72 6b 20 69 6e 20 61 20 64 65 66 69 6e 65 64 00 | bittorrent.network.in.a.defined. |
dee0 | 20 20 20 20 2d 2d 20 7c 20 41 20 73 6f 75 72 63 65 20 74 6f 20 62 65 20 71 75 65 72 69 65 64 20 | ....--.|.A.source.to.be.queried. |
df00 | 61 66 74 65 72 20 6e 6f 74 20 62 65 69 6e 67 20 61 62 6c 65 20 74 6f 20 66 69 6e 64 20 61 6e 64 | after.not.being.able.to.find.and |
df20 | 00 00 20 20 2c 20 6b 65 79 77 6f 72 64 54 6f 70 69 63 20 3a 3a 20 4d 61 79 62 65 20 54 65 78 74 | ....,.keywordTopic.::.Maybe.Text |
df40 | 00 20 20 20 20 2d 2d 20 7c 20 53 65 61 72 63 68 20 73 74 72 69 6e 67 2e 00 00 20 20 2c 20 6d 61 | .....--.|.Search.string.....,.ma |
df60 | 6e 69 66 65 73 74 20 3a 3a 20 4d 61 79 62 65 20 54 65 78 74 00 20 20 20 20 2d 2d 20 7c 20 55 52 | nifest.::.Maybe.Text.....--.|.UR |
df80 | 49 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 6d 61 6e 69 66 65 73 74 2c 20 65 2e 67 2e 20 61 20 6c | I.pointing.to.manifest,.e.g..a.l |
dfa0 | 69 73 74 20 6f 66 20 66 75 72 74 68 65 72 20 69 74 65 6d 73 2e 00 00 20 20 2c 20 65 78 61 63 74 | ist.of.further.items.....,.exact |
dfc0 | 4c 65 6e 67 74 68 20 3a 3a 20 4d 61 79 62 65 20 49 6e 74 65 67 65 72 00 20 20 20 20 2d 2d 20 7c | Length.::.Maybe.Integer.....--.| |
dfe0 | 20 53 69 7a 65 20 6f 66 20 74 68 65 20 72 65 73 6f 75 72 63 65 20 69 6e 20 62 79 74 65 73 2e 00 | .Size.of.the.resource.in.bytes.. |