This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Import dead URLs from my last analysis
[perl5.git] / Porting / checkAUTHORS.pl
CommitLineData
5649b9c9
NC
1#!/usr/bin/perl -w
2use strict;
8a5e2fa6 3my ($committer, $patch, $author);
cdad3b53 4use utf8;
5649b9c9 5use Getopt::Long;
0be47eca 6use Unicode::Collate;
7582f0f6
JV
7use Text::Wrap;
8$Text::Wrap::columns = 80;
5649b9c9 9
946fbe37
DG
10my ($rank, $ta, $ack, $who, $tap) = (0) x 5;
11my ($author_file, $percentage, $cumulative, $reverse);
12my (%authors, %untraced, %patchers, %committers, %real_names);
13
14my $result = GetOptions (
15 # modes
c673b32a
MH
16 "who" => \$who,
17 "rank" => \$rank,
946fbe37 18 "thanks-applied" => \$ta,
c673b32a
MH
19 "missing" => \$ack ,
20 "tap" => \$tap,
21
946fbe37 22 # modifiers
c673b32a
MH
23 "authors=s" => \$author_file,
24 "percentage" => \$percentage, # show as %age
25 "cumulative" => \$cumulative,
26 "reverse" => \$reverse,
00229b97 27 );
5649b9c9 28
946fbe37 29if (!$result or ( $rank + $ta + $who + $ack + $tap != 1 ) or !@ARGV) {
7582f0f6
JV
30 usage();
31}
32
946fbe37 33$author_file ||= './AUTHORS';
c673b32a 34die "Can't locate '$author_file'. Specify it with '--authors <path>'."
946fbe37
DG
35 unless -f $author_file;
36
7582f0f6
JV
37my $map = generate_known_author_map();
38
946fbe37 39read_authors_files($author_file);
7582f0f6 40
7582f0f6
JV
41
42if ($rank) {
3877da06 43 parse_commits_from_stdin();
7582f0f6
JV
44 display_ordered(\%patchers);
45} elsif ($ta) {
3877da06 46 parse_commits_from_stdin();
7582f0f6 47 display_ordered(\%committers);
946fbe37 48} elsif ($tap) {
3877da06 49 parse_commits_from_stdin_authors();
7582f0f6 50 display_test_output(\%patchers, \%authors, \%real_names);
946fbe37 51} elsif ($ack) {
3877da06 52 parse_commits_from_stdin();
7582f0f6 53 display_missing_authors(\%patchers, \%authors, \%real_names);
64265e98 54} elsif ($who) {
3877da06 55 parse_commits_from_stdin();
946fbe37 56 list_authors(\%patchers, \%authors);
7582f0f6
JV
57}
58
7582f0f6
JV
59exit(0);
60
61sub usage {
62
5649b9c9 63 die <<"EOS";
946fbe37
DG
64Usage: $0 [modes] [modifiers] <git-log-output-file>
65
66Modes (use only one):
67 --who # show list of unique authors by full name
68 --rank # rank authors by patches
69 --thanks-applied # ranks committers of others' patches
70 --missing # display authors not in AUTHORS
71 --tap # show authors present/missing as TAP
72
73Modifiers:
74 --authors <authors-file> # path to authors file (default: ./AUTHORS)
75 --percentage # show rankings as percentages
76 --cumulative # show rankings cumulatively
77 --reverse # show rankings in reverse
78
79Generate git-log-output-file with git log --pretty=fuller rev1..rev2
47e01c32 80(or pipe by specifying '-' for stdin). For example:
64265e98 81 \$ git log --pretty=fuller v5.12.0..v5.12.1 > gitlog
946fbe37 82 \$ perl Porting/checkAUTHORS.pl --rank --percentage gitlog
5649b9c9
NC
83EOS
84}
85
64265e98 86sub list_authors {
946fbe37
DG
87 my ($patchers, $authors) = @_;
88 binmode(STDOUT, ":utf8");
0be47eca 89 print wrap '', '', join(', ', Unicode::Collate->new(level => 1)->sort(
946fbe37 90 map { $authors->{$_} }
0be47eca 91 keys %$patchers)) . ".\n";
64265e98 92}
7582f0f6
JV
93
94sub parse_commits_from_stdin {
95 my @lines = split( /^commit\s*/sm, join( '', <> ) );
96 for (@lines) {
97 next if m/^$/;
98 next if m/^(\S*?)^Merge:/ism; # skip merge commits
8a5e2fa6 99 if (m/^(.*?)^Author:\s*(.*?)^AuthorDate:\s*.*?^Commit:\s*(.*?)^(.*)$/gism) {
7582f0f6
JV
100
101 # new patch
8a5e2fa6 102 ( $patch, $author, $committer ) = ( $1, $2, $3 );
7582f0f6
JV
103 chomp($author);
104 unless ($author) { die $_ }
105 chomp($committer);
106 unless ($committer) { die $_ }
107 process( $committer, $patch, $author );
108 } else {
109 die "XXX $_ did not match";
110 }
e427132c 111 }
e427132c 112
e427132c
JV
113}
114
3877da06
DM
115# just grab authors. Quicker than parse_commits_from_stdin
116
117sub parse_commits_from_stdin_authors {
118 while (<>) {
119 next unless /^Author:\s*(.*)$/;
120 my $author = $1;
121 $author = _raw_address($author);
122 $patchers{$author}++;
123 }
124}
125
e427132c 126
7582f0f6
JV
127sub generate_known_author_map {
128 my %map;
e427132c 129
7582f0f6
JV
130 my $prev = "";
131 while (<DATA>) {
132 chomp;
133 s/\\100/\@/g;
134 $_ = lc;
135 if ( my ( $correct, $alias ) = /^\s*([^#\s]\S*)\s+(.*\S)/ ) {
136 $correct =~ s/^\\043/#/;
137 if ( $correct eq '+' ) { $correct = $prev }
138 else { $prev = $correct }
139 $map{$alias} = $correct;
140 }
141 }
8513229b 142
7582f0f6
JV
143 #
144 # Email addresses for we do not have names.
145 #
146 $map{$_} = "?"
147 for
148 "bah\100longitude.com",
149 "bbucklan\100jpl-devvax.jpl.nasa.gov",
150 "bilbo\100ua.fm",
151 "bob\100starlabs.net",
152 "cygwin\100cygwin.com",
153 "david\100dhaller.de", "erik\100cs.uni-jena.de", "info\100lingo.kiev.ua", # Lingo Translation agency
154 "jms\100mathras.comcast.net",
155 "premchai21\100yahoo.com",
156 "pxm\100nubz.org",
157 "raf\100tradingpost.com.au",
158 "smoketst\100hp46t243.cup.hp.com", "root\100chronos.fi.muni.cz", # no clue - jrv 20090803
159 "gomar\100md.media-web.de", # no clue - jrv 20090803
160 "data-drift\100so.uio.no", # no data. originally private message from 199701282014.VAA12645@selters.uio.no
161 "arbor\100al37al08.telecel.pt"
162 , # reported perlbug ticket 5196 - no actual code contribution. no real name - jrv 20091006
163 "oracle\100pcr8.pcr.com", # Reported perlbug ticket 1015 - no patch - Probably Ed Eddington ed@pcr.com
48f3d0c6 164 "snaury\100gmail.com", # Reported cpan ticket 35943, with patch for fix
7582f0f6
JV
165 ;
166
167 #
168 # Email addresses for people that don't have an email address in AUTHORS
169 # Presumably deliberately?
170 #
171
172 $map{$_} = '!' for
173
174 # Nick Ing-Simmons has passed away (2006-09-25).
175 "nick\100ing-simmons.net",
176 "nik\100tiuk.ti.com",
177 "nick.ing-simmons\100elixent.com",
178 "nick\100ni-s.u-net.com",
179 "nick.ing-simmons\100tiuk.ti.com",
180
181 # Iain Truskett has passed away (2003-12-29).
182 "perl\100dellah.anu.edu.au", "spoon\100dellah.org", "spoon\100cpan.org",
183
184 # Ton Hospel
185 "me-02\100ton.iguana.be", "perl-5.8.0\100ton.iguana.be", "perl5-porters\100ton.iguana.be",
186
187 # Beau Cox
188 "beau\100beaucox.com",
189
190 # Randy W. Sims
191 "ml-perl\100thepierianspring.org",
192
41dadfe2
JK
193 # Jason Hord
194 "pravus\100cpan.org",
195
7582f0f6
JV
196 # perl internal addresses
197 "perl5-porters\100africa.nicoh.com",
198 "perlbug\100perl.org",,
199 "perl5-porters.nicoh.com",
200 "perlbug-followup\100perl.org",
201 "perlbug-comment\100perl.org",
202 "bug-module-corelist\100rt.cpan.org",
203 "bug-storable\100rt.cpan.org",
204 "bugs-perl5\100bugs6.perl.org",
205 "unknown",
206 "unknown\100unknown",
207 "unknown\100longtimeago",
208 "unknown\100perl.org",
209 "",
210 "(none)",
211 ;
212
213 return \%map;
214}
e427132c 215
7582f0f6
JV
216sub read_authors_files {
217 my @authors = (@_);
218 return unless (@authors);
946fbe37 219 my (%count, %raw);
7582f0f6 220 foreach my $filename (@authors) {
1ae6ead9 221 open FH, '<', $filename or die "Can't open $filename: $!";
60d42009 222 binmode FH, ':encoding(UTF-8)';
7582f0f6
JV
223 while (<FH>) {
224 next if /^\#/;
225 next if /^-- /;
946fbe37 226 if (/^([^<]+)<([^>]+)>/) {
7582f0f6 227 # Easy line.
946fbe37
DG
228 my ($name, $email) = ($1, $2);
229 $name =~ s/\s*\z//;
230 $raw{$email} = $name;
231 $count{$email}++;
daeedd11 232 } elsif (/^([- .'\w]+)[\t\n]/) {
7582f0f6
JV
233
234 # Name only
235 $untraced{$1}++;
236 } elsif ( length $_ ) {
237 chomp;
238 warn "Can't parse line '$_'";
239 } else {
240 next;
241 }
242 }
8513229b 243 }
7582f0f6 244 foreach ( keys %raw ) {
946fbe37
DG
245 print "E-mail $_ occurs $count{$_} times\n" if $count{$_} > 1;
246 my $lc = lc $_;
247 $authors{ $map->{$lc} || $lc } = $raw{$_};
7582f0f6 248 }
946fbe37 249 $authors{$_} = $_ for qw(? !);
8513229b
A
250}
251
7582f0f6
JV
252sub display_test_output {
253 my $patchers = shift;
254 my $authors = shift;
255 my $real_names = shift;
256 my $count = 0;
3877da06 257 printf "1..%d\n", scalar keys %$patchers;
7582f0f6 258 foreach ( sort keys %$patchers ) {
3877da06 259 $count++;
7582f0f6
JV
260 if ($authors->{$_}) {
261 print "ok $count - ".$real_names->{$_} ." $_\n";
262 } else {
263 print "not ok $count - Contributor not found in AUTHORS: $_ ".($real_names->{$_} || '???' )."\n";
7ce1b4c4 264 print STDERR ($real_names->{$_} || '???' )." <$_> not found in AUTHORS\n";
7582f0f6 265 }
8513229b 266
7582f0f6 267 }
5649b9c9
NC
268}
269
e427132c 270sub display_missing_authors {
7582f0f6
JV
271 my $patchers = shift;
272 my $authors = shift;
e427132c 273 my $real_names = shift;
7582f0f6
JV
274 my %missing;
275 foreach ( sort keys %$patchers ) {
276 next if $authors->{$_};
277
278 # Sort by number of patches, then name.
279 $missing{ $patchers{$_} }->{$_}++;
280 }
281 foreach my $patches ( sort { $b <=> $a } keys %missing ) {
282 print "\n\n=head1 $patches patch(es)\n\n";
283 foreach my $author ( sort keys %{ $missing{$patches} } ) {
284 my $xauthor = $author;
285 $xauthor =~ s/@/\\100/g; # xxx temp hack
286 print "" . ( $real_names->{$author} || $author ) . "\t\t\t<" . $xauthor . ">\n";
287 }
5649b9c9 288 }
5649b9c9
NC
289}
290
291sub display_ordered {
7582f0f6
JV
292 my $what = shift;
293 my @sorted;
294 my $total;
295
296 while ( my ( $name, $count ) = each %$what ) {
297 push @{ $sorted[$count] }, $name;
298 $total += $count;
299 }
300
301 my $i = @sorted;
302 return unless @sorted;
303 my $sum = 0;
304 foreach my $i ( $reverse ? 0 .. $#sorted : reverse 0 .. $#sorted ) {
305 next unless $sorted[$i];
306 my $prefix;
307 $sum += $i * @{ $sorted[$i] };
308
309 # Value to display is either this one, or the cumulative sum.
310 my $value = $cumulative ? $sum : $i;
311 if ($percentage) {
312 $prefix = sprintf "%6.2f:\t", 100 * $value / $total;
313 } else {
314 $prefix = "$value:\t";
315 }
316 print wrap ( $prefix, "\t", join( " ", sort @{ $sorted[$i] } ), "\n" );
15b8f96d 317 }
5649b9c9
NC
318}
319
320sub process {
7582f0f6
JV
321 my ( $committer, $patch, $author ) = @_;
322 return unless $author;
323 return unless $committer;
324
325 $author = _raw_address($author);
326 $patchers{$author}++;
327
328 $committer = _raw_address($committer);
329 if ( $committer ne $author ) {
330
331 # separate commit credit only if committing someone else's patch
332 $committers{$committer}++;
333 }
5649b9c9
NC
334}
335
00229b97
JV
336sub _raw_address {
337 my $addr = shift;
338 my $real_name;
350bd8f1 339 if ($addr =~ /(?:\\?")?\s*\(via RT\) <perlbug-followup\@perl\.org>$/p) {
08dc3bc8 340 my $name = ${^PREMATCH};
e529a387 341 $addr = 'perlbug-followup@perl.org';
08dc3bc8
A
342 #
343 # Try to find the author
344 #
ac664a5e
DR
345 if (exists $map->{$name}) {
346 $addr = $map->{$name};
347 $real_name = $authors{$addr};
348 }
349 else {
350 while (my ($email, $author_name) = each %authors) {
351 if ($name eq $author_name) {
352 $addr = $email;
353 $real_name = $name;
354 last;
355 }
08dc3bc8
A
356 }
357 }
358 }
359 elsif ( $addr =~ /<.*>/ ) {
7582f0f6
JV
360 $addr =~ s/^\s*(.*)\s*<\s*(.*?)\s*>.*$/$2/;
361 $real_name = $1;
00229b97 362 }
5a528087
CB
363 $addr =~ s/\[mailto://;
364 $addr =~ s/\]//;
00229b97 365 $addr = lc $addr;
e427132c 366 $addr = $map->{$addr} || $addr;
7582f0f6 367 $addr =~ s/\\100/@/g; # Sometimes, there are encoded @ signs in the git log.
5e8353a0 368
7582f0f6 369 if ($real_name) { $real_names{$addr} = $real_name }
00229b97
JV
370 return $addr;
371}
372
5649b9c9 373
8513229b
A
374__DATA__
375
376#
377# List of mappings. First entry the "correct" email address, as appears
378# in the AUTHORS file. Second is any "alias" mapped to it.
379#
a695a9ef 380# If the "correct" email address is a '+', the entry above it is reused;
8513229b
A
381# this for addresses with more than one alias.
382#
383# Note that all entries are in lowercase. Further, no '@' signs should
384# appear; use \100 instead.
385#
386#
387# Committers.
388#
389adi enache\100rdslink.ro
390alanbur alan.burlison\100sun.com
391+ alan.burlison\100uk.sun.com
00229b97
JV
392+ aburlison\100cix.compulink.co.uk
393ams ams\100toroid.org
394+ ams\100wiw.org
8513229b 395chip chip\100pobox.com
00229b97
JV
396+ chip\100perl.com
397+ salzench\100nielsenmedia.com
398+ chip\100atlantic.net
399+ chip\100rio.atlantic.net
400+ salzench\100dun.nielsen.com
3bf51dad 401+ chip\100ci005.sv2.upperbeyond.com
8513229b
A
402craigb craig.berry\100psinetcs.com
403+ craig.berry\100metamorgs.com
404+ craig.berry\100signaltreesolutions.com
405+ craigberry\100mac.com
a94e4597 406+ craig.a.berry\100gmail.com
e82692ac 407+ craig a. berry)
8513229b
A
408davem davem\100fdgroup.com
409+ davem\100iabyn.nospamdeletethisbit.com
a94e4597 410+ davem\100iabyn.com
8513229b
A
411+ davem\100fdgroup.co.uk
412+ davem\100fdisolutions.com
413+ davem\100iabyn.com
414demerphq demerphq\100gmail.com
415+ yves.orton\100de.mci.com
416+ yves.orton\100mciworldcom.de
745b54e4 417+ yves.orton\100booking.com
00229b97
JV
418+ demerphq\100dromedary.booking.com
419+ demerphq\100gemini.(none)
420+ demerphq\100camel.booking.com
421+ demerphq\100hotmail.com
8513229b 422doughera doughera\100lafayette.edu
00229b97
JV
423+ doughera\100lafcol.lafayette.edu
424+ doughera\100fractal.phys.lafayette.edu
425+ doughera.lafayette.edu
426+ doughera\100newton.phys.lafayette.edu
427
8513229b 428gbarr gbarr\100pobox.com
00229b97
JV
429+ bodg\100tiuk.ti.com
430+ gbarr\100ti.com
431+ graham.barr\100tiuk.ti.com
e82692ac 432+ gbarr\100monty.mutatus.co.uk
8513229b
A
433gisle gisle\100activestate.com
434+ gisle\100aas.no
00229b97
JV
435+ aas\100aas.no
436+ aas\100bergen.sn.no
8513229b
A
437gsar gsar\100activestate.com
438+ gsar\100cpan.org
00229b97 439+ gsar\100engin.umich.edu
8513229b
A
440hv hv\100crypt.compulink.co.uk
441+ hv\100crypt.org
00229b97 442+ hv\100iii.co.uk
8513229b
A
443jhi jhi\100iki.fi
444+ jhietaniemi\100gmail.com
445+ jhi\100kosh.hut.fi
00229b97 446+ jhi\100alpha.hut.fi
8513229b 447+ jhi\100cc.hut.fi
fda5b70a 448+ jhi\100hut.fi
8513229b 449+ jarkko.hietaniemi\100nokia.com
00229b97 450+ jarkko.hietaniemi\100cc.hut.fi
63d7924f 451+ jarkko.hietaniemi\100booking.com
00229b97
JV
452jesse jesse\100bestpractical.com
453+ jesse\100fsck.com
454+ jesse\100perl.org
8513229b 455merijn h.m.brand\100xs4all.nl
b14d03de
MB
456+ h.m.brand\100procura.nl
457+ merijn.brand\100procura.nl
8513229b
A
458+ h.m.brand\100hccnet.nl
459+ merijn\100l1.procura.nl
e82692ac 460+ merijn\100a5.(none)
8513229b 461mhx mhx-perl\100gmx.net
e82692ac 462+ mhx\100r2d2.(none)
93456aa7
JV
463mst mst\100shadowcat.co.uk
464+ matthewt\100hercule.scsys.co.uk
8513229b
A
465nicholas nick\100unfortu.net
466+ nick\100ccl4.org
467+ nick\100talking.bollo.cx
468+ nick\100plum.flirble.org
469+ nick\100babyhippo.co.uk
470+ nick\100bagpuss.unfortu.net
e82692ac 471+ nick\100babyhippo.com
93456aa7 472+ nicholas\100dromedary.ams6.corp.booking.com
e82692ac 473+ Nicholas Clark (sans From field in mail header)
8513229b
A
474pudge pudge\100pobox.com
475rgs rgarciasuarez\100free.fr
476+ rgarciasuarez\100mandrakesoft.com
477+ rgarciasuarez\100mandriva.com
478+ rgarciasuarez\100gmail.com
479+ raphel.garcia-suarez\100hexaflux.com
12feb466 480+ rgs@consttype.org
8513229b
A
481sky sky\100nanisky.com
482+ artur\100contiller.se
483+ arthur\100contiller.se
86e2f329
S
484smueller 7k8lrvf02\100sneakemail.com
485+ kjx9zthh3001\100sneakemail.com
486+ dtr8sin02\100sneakemail.com
487+ rt8363b02\100sneakemail.com
488+ o6hhmk002\100sneakemail.com
489+ smueller\100cpan.org
490+ l2ot9pa02\100sneakemail.com
491+ wyp3rlx02\100sneakemail.com
492+ 0mgwtfbbq\100sneakemail.com
493+ xyey9001\100sneakemail.com
03c4920e
SH
494steveh steve.m.hay\100googlemail.com
495+ stevehay\100planit.com
b692cd7a 496+ steve.hay\100uk.radan.com
8513229b
A
497stevep steve\100fisharerojo.org
498+ steve.peters\100gmail.com
e82692ac 499+ root\100dixie.cscaper.com
00229b97
JV
500timb Tim.Bunce\100pobox.com
501+ tim.bunce\100ig.co.uk
87ff2bbe
TC
502tonyc tony\100develop-help.com
503+ tony\100openbsd32.tony.develop-help.com
a2d496af 504+ tony\100saturn.(none)
8513229b
A
505
506#
507# Mere mortals.
508#
00229b97 509\043####\100juerd.nl juerd\100cpan.org
212682ea 510+ juerd\100c3.convolution.nl
00229b97 511+ juerd\100convolution.nl
00229b97 512a.r.ferreira\100gmail.com aferreira\100shopzilla.com
8513229b 513abe\100ztreet.demon.nl abeltje\100cpan.org
00229b97 514abela\100hsc.fr abela\100geneanet.org
8513229b
A
515abigail\100abigail.be abigail\100foad.org
516+ abigail\100abigail.nl
00229b97 517+ abigail\100fnx.com
e82692ac 518aburt\100isis.cs.du.edu isis!aburt
00229b97 519ach\100mpe.mpg.de ach\100rosat.mpe-garching.mpg.de
e82692ac 520adavies\100ptc.com alex.davies\100talktalk.net
8513229b 521ajohnson\100nvidia.com ajohnson\100wischip.com
e82692ac 522+ anders\100broadcom.com
8513229b 523alexm\100netli.com alexm\100w-m.ru
a94e4597 524alex-p5p\100earth.li alex\100rcon.rog
00229b97 525alexmv\100mit.edu alex\100chmrr.net
8513229b 526alian\100cpan.org alian\100alianwebserver.com
00229b97
JV
527allen\100grumman.com allen\100gateway.grumman.com
528allen\100huarp.harvard.edu nort\100bottesini.harvard.edu
e82692ac 529+ nort\100qnx.com
8513229b 530allens\100cpan.org easmith\100beatrice.rutgers.edu
e82692ac 531+ root\100dogberry.rutgers.edu
fcacab09 532ambs\100cpan.org hashashin\100gmail.com
00229b97
JV
533andreas.koenig\100anima.de andreas.koenig.gmwojprw\100franz.ak.mind.de
534+ andreas.koenig.7os6vvqr\100franz.ak.mind.de
8513229b 535+ a.koenig\100mind.de
00229b97
JV
536+ k\100anna.in-berlin.de
537+ andk\100cpan.org
538+ koenig\100anna.mind.de
539+ k\100anna.mind.de
e82692ac
MB
540+ root\100ak-71.mind.de
541+ root\100ak-75.mind.de
542+ k\100sissy.in-berlin.de
543+ a.koenig\100kulturbox.de
544+ k\100sissy.in-berlin.de
545+ root\100dubravka.in-berlin.de
8513229b
A
546anno4000\100lublin.zrz.tu-berlin.de anno4000\100mailbox.tu-berlin.de
547+ siegel\100zrz.tu-berlin.de
25b68122 548apocal@cpan.org perl\1000ne.us
e82692ac
MB
549arnold\100gnu.ai.mit.edu arnold\100emoryu2.arpa
550+ gatech!skeeve!arnold
7dbe2044 551arodland\100cpan.org andrew\100hbslabs.com
e82692ac 552arussell\100cs.uml.edu adam\100adam-pc.(none)
8513229b
A
553ash\100cpan.org ash_cpan\100firemirror.com
554avarab\100gmail.com avar\100cpan.org
555
00229b97
JV
556bailey\100newman.upenn.edu bailey\100hmivax.humgen.upenn.edu
557+ bailey\100genetics.upenn.edu
e82692ac 558+ bailey.charles\100gmail.com
8513229b 559bah\100ecnvantage.com bholzman\100longitude.com
e82692ac
MB
560barries\100slaysys.com root\100jester.slaysys.com
561bkedryna\100home.com bart\100cg681574-a.adubn1.nj.home.com
00229b97 562bcarter\100gumdrop.flyinganvil.org q.eibcartereio.=~m-b.{6}-cgimosx\100gumdrop.flyinganvil.org
8513229b 563ben_tilly\100operamail.com btilly\100gmail.com
e82692ac
MB
564+ ben_tilly\100hotmail.com
565ben\100morrow.me.uk mauzo\100csv.warwick.ac.uk
566+ mauzo\100.(none)
567bepi\100perl.it enrico.sorcinelli\100gmail.com
568bert\100alum.mit.edu bert\100genscan.com
93456aa7 569bigbang7\100gmail.com ddascalescu+github\100gmail.com
f8a89dce 570blgl\100stacken.kth.se blgl\100hagernas.com
6fd0ab63 571+ 2bfjdsla52kztwejndzdstsxl9athp\100gmail.com
d203773f 572brian.d.foy\100gmail.com bdfoy\100cpan.org
e82692ac 573BQW10602\100nifty.com sadahiro\100cpan.org
ac664a5e 574bulk88\100hotmail.com bulk88
8513229b 575
4bba85d0 576chad.granum\100dreamhost.com exodist7\100gmail.com
4d88742b 577choroba\100cpan.org choroba\100weed.(none)
8513229b 578chromatic\100wgz.org chromatic\100rmci.net
201da6ff 579ckuskie\100cadence.com colink\100perldreamer.com
040d2336 580claes\100surfar.nu claes\100versed.se
e82692ac 581clintp\100geeksalad.org cpierce1\100ford.com
8513229b 582clkao\100clkao.org clkao\100bestpractical.com
00229b97 583corion\100corion.net corion\100cpan.org
8513229b
A
584cp\100onsitetech.com publiustemp-p5p\100yahoo.com
585+ publiustemp-p5p3\100yahoo.com
586cpan\100audreyt.org autrijus\100egb.elixus.org
587+ autrijus\100geb.elixus.org
588+ autrijus\100gmail.com
589+ autrijus\100ossf.iis.sinica.edu.tw
590+ autrijus\100autrijus.org
591+ audreyt\100audreyt.org
e82692ac 592cpan\100ton.iguana.be me-01\100ton.iguana.be
d203773f 593crt\100kiski.net perl\100ctweten.amsite.com
8513229b 594
e82692ac 595dairiki\100dairiki.org dairiki at dairiki.org
fda5b70a 596dagolden\100cpan.org xdaveg\100gmail.com
6fb5c52d 597+ xdg\100xdg.me
895db057 598damian\100conway.org damian\100cs.monash.edu.au
00229b97
JV
599dan\100sidhe.org sugalsd\100lbcc.cc.or.us
600+ sugalskd\100osshe.edu
e82692ac 601daniel\100bitpusher.com daniel\100biz.bitpusher.com
83cad695 602dave\100mag-sol.com dave\100dave.org.uk
8513229b 603david.dyck\100fluke.com dcd\100tc.fluke.com
9d1ee727
KW
604david\100justatheory.com david\100wheeler.net
605+ david\100kineticode.com
606+ david\100wheeler.com
e82692ac 607+ david\100wheeler.net
c2e08204 608whatever\100davidnicol.com davidnicol\100gmail.com
3bf51dad 609dennis\100booking.com dennis\100camel.ams6.corp.booking.com
6439ee77 610+ dennis.kaarsemaker\100booking.com
a4d824de 611+ dennis\100kaarsemaker.net
d203773f 612dev-perl\100pimb.org knew-p5p\100pimb.org
5a528087 613+ lists-p5p\100pimb.org
e82692ac 614djberg86\100attbi.com djberg96\100attbi.com
09c3cef4 615dk\100tetsuo.karasik.eu.org dmitry\100karasik.eu.org
61edc94a 616dom\100earth.li dom\100semmle.com
8513229b 617domo\100computer.org shouldbedomo\100mac.com
00229b97 618+ domo\100slipper.ip.lu
e82692ac 619+ domo\100tcp.ip.lu
00229b97
JV
620dougm\100covalent.net dougm\100opengroup.org
621+ dougm\100osf.org
e82692ac
MB
622dougw\100cpan.org doug_wilson\100intuit.com
623dwegscheid\100qtm.net wegscd\100whirlpool.com
624edwardp\100excitehome.net epeschko\100den-mdev1
625+ epeschko\100elmer.tci.com
626+ esp5\100pge.com
00229b97 627egf7\100columbia.edu efifer\100sanwaint.com
e82692ac 628eggert\100twinsun.com eggert\100sea.sm.unisys.com
2330d9b7 629etj\100cpan.org mohawk2\100users.noreply.github.com
8513229b
A
630
631fugazi\100zyx.net larrysh\100cpan.org
e82692ac 632+ lshatzer\100islanddata.com
8513229b 633
e82692ac 634gbacon\100itsc.uah.edu gbacon\100adtrn-srv4.adtran.com
d203773f 635gerberb\100zenez.com root\100devsys0.zenez.com
e82692ac 636gfuji\100cpan.org g.psy.va\100gmail.com
14ccab5a 637genesullivan50\100yahoo.com gsullivan\100cpan.org
e82692ac 638gerard\100ggoossen.net gerard\100tty.nl
fda5b70a
JV
639gibreel\100pobox.com stephen.zander\100interlock.mckesson.com
640+ srz\100loopback
b9ff0c49 641gideon\100cpan.org gidisrael\100gmail.com
00229b97 642gnat\100frii.com gnat\100prometheus.frii.com
8513229b
A
643gp\100familiehaase.de gerrit\100familiehaase.de
644grazz\100pobox.com grazz\100nyc.rr.com
d203773f 645gward\100ase.com greg\100bic.mni.mcgill.ca
a22ececd
AHA
646haggai\100cpan.org alanhaggai\100alanhaggai.org
647+ alanhaggai\100gmail.com
00229b97
JV
648hansmu\100xs4all.nl hansm\100icgroup.nl
649+ hansm\100icgned.nl
650+ hans\100icgned.nl
b5e2dde1 651+ hans\100icgroup.nl
00229b97 652+ hansm\100euronet.nl
e82692ac 653+ hansm\100euro.net
8513229b 654hio\100ymir.co.jp hio\100hio.jp
e82692ac 655hops\100sco.com hops\100scoot.pdev.sco.com
8513229b 656
74314d7a 657ian.goodacre\100xtra.co.nz ian\100debian.lan
e82692ac 658ingo_weinhold\100gmx.de bonefish\100cs.tu-berlin.de
c07671d7 659
e82692ac 660james\100mastros.biz theorb\100desert-island.me.uk
5ab3d1b3
JD
661jan\100jandubois.com jand\100activestate.com
662+ jan.dubois\100ibm.net
8513229b
A
663japhy\100pobox.com japhy\100pobox.org
664+ japhy\100perlmonk.org
665+ japhy\100cpan.org
e82692ac 666+ jeffp\100crusoe.net
8513229b 667jari.aalto\100poboxes.com jari.aalto\100cante.net
e82692ac
MB
668jarausch\100numa1.igpm.rwth-aachen.de helmutjarausch\100unknown
669jasons\100cs.unm.edu jasons\100sandy-home.arc.unm.edu
670jbuehler\100hekimian.com jhpb\100hekimian.com
671jcromie\100100divsol.com jcromie\100cpan.org
8513229b 672+ jim.cromie\100gmail.com
1ae6ead9 673jd\100cpanel.net lightsey\100debian.org
8513229b
A
674jdhedden\100cpan.org jerry\100hedden.us
675+ jdhedden\1001979.usna.com
676+ jdhedden\100gmail.com
677+ jdhedden\100yahoo.com
e82692ac 678+ jhedden\100pn100-02-2-356p.corp.bloomberg.com
9846bace 679+ jdhedden\100solydxk
e82692ac 680jeremy\100zawodny.com jzawodn\100wcnet.org
d203773f 681jesse\100sig.bsh.com jesse\100ginger
8513229b 682jfriedl\100yahoo.com jfriedl\100yahoo-inc.com
e82692ac 683jfs\100fluent.com jfs\100jfs.fluent.com
fd548ba4
FC
684jhannah\100mutationgrid.com jay\100jays.net
685+ jhannah\100omnihotels.com
686jidanni\100jidanni.org jidanni\100hoffa.dreamhost.com
8513229b 687jjore\100cpan.org twists\100gmail.com
dfe12d64
JK
688jkeenan\100cpan.org jkeen\100verizon.net
689+ jkeenan\100dromedary-001.ams6.corp.booking.com
fda5b70a
JV
690jns\100integration-house.com jns\100gellyfish.com
691+ gellyfish\100gellyfish.com
e82692ac
MB
692john\100atlantech.com john\100titanic.atlantech.com
693john\100johnwright.org john.wright\100hp.com
694joseph\100cscaper.com joseph\1005sigma.com
695joshua\100rodd.us jrodd\100pbs.org
696jtobey\100john-edwin-tobey.org jtobey\100user1.channel1.com
9feb1316 697jpeacock\100messagesystems.com john.peacock\100havurah-software.org
fda5b70a 698+ jpeacock\100havurah-software.org
e82692ac 699+ jpeacock\100dsl092-147-156.wdc1.dsl.speakeasy.net
feaafc86 700+ jpeacock\100jpeacock-hp.doesntexist.org
05ddb96b 701+ jpeacock\100cpan.org
9feb1316 702+ jpeacock\100rowman.com
a25f3052 703james.schneider\100db.com jschneid\100netilla.com
277c21af 704jpl.jpl\100gmail.com jpl\100research.att.com
d203773f 705jql\100accessone.com jql\100jql.accessone.com
e82692ac 706jsm28\100hermes.cam.ac.uk jsm28\100cam.ac.uk
8513229b
A
707
708kane\100dwim.org kane\100xs4all.net
709+ kane\100cpan.org
710+ kane\100xs4all.nl
711+ jos\100dwim.org
712+ jib\100ripe.net
60d42009 713keith.s.thompson\100gmail.com kst\100mib.org
00229b97 714ken\100mathforum.org kenahoo\100gmail.com
e82692ac 715+ ken.williams\100thomsonreuters.com
31a15f36 716kentfredric\100gmail.com kentnl\100cpan.org
63781094
RS
717kmx\100volny.cz kmx\100volny.cz
718+ kmx\100cpan.org
8513229b 719kroepke\100dolphin-services.de kay\100dolphin-services.de
78d25b6c
JV
720kst\100mib.org kst\100cts.com
721+ kst\100SDSC.EDU
8513229b 722kstar\100wolfetech.com kstar\100cpan.org
00229b97 723+ kurt_starsinic\100ml.com
e82692ac
MB
724+ kstar\100www.chapin.edu
725+ kstar\100chapin.edu
00229b97
JV
726larry\100wall.org lwall\100jpl-devvax.jpl.nasa.gov
727+ lwall\100netlabs.com
728+ larry\100netlabs.com
729+ lwall\100sems.com
730+ lwall\100scalpel.netlabs.com
e82692ac
MB
731laszlo.molnar\100eth.ericsson.se molnarl\100cdata.tvnet.hu
732+ ml1050\100freemail.hu
946fbe37 733lewart\100uiuc.edu lewart\100vadds.cvm.uiuc.edu
00229b97 734+ d-lewart\100uiuc.edu
84ad9c6c 735lkundrak\100v3.sk lubo.rintel\100gooddata.com
e82692ac
MB
736lstein\100cshl.org lstein\100formaggio.cshl.org
737+ lstein\100genome.wi.mit.edu
84ad9c6c 738l.mai\100web.de plokinom\100gmail.com
e82692ac
MB
739lupe\100lupe-christoph.de lupe\100alanya.m.isar.de
740lutherh\100stratcom.com lutherh\100infinet.com
741mab\100wdl.loral.com markb\100rdcf.sm.unisys.com
00229b97 742marcel\100codewerk.com gr\100univie.ac.at
06fdbb00 743+ hanekomu\100gmail.com
9d0e037a 744marcgreen\100cpan.org marcgreen\100wpi.edu
d4cb306b 745markleightonfisher\100gmail.com fisherm\100tce.com
a8a7611f 746+ mark-fisher\100mindspring.com
e82692ac
MB
747mark.p.lutz\100boeing.com tecmpl1\100triton.ca.boeing.com
748marnix\100gmail.com pttesac!marnix!vanam
88048be8 749marty+p5p\100kasei.com marty\100martian.org
8513229b
A
750mats\100sm6sxl.net mats\100sm5sxl.net
751mbarbon\100dsi.unive.it mattia.barbon\100libero.it
a73beef9 752+ mattia\100barbon.org
8513229b 753mcmahon\100ibiblio.org mcmahon\100metalab.unc.edu
e82692ac
MB
754me\100davidglasser.net glasser\100tang-eleven-seventy-nine.mit.edu
755merijnb\100iloquent.nl merijnb\100ms.com
756+ merijnb\100iloquent.com
d203773f 757merlyn\100stonehenge.com merlyn\100gadget.cscaper.com
d5564dc4 758mestre.smash\100gmail.com smash\100cpan.org
8513229b 759mgjv\100comdyn.com.au mgjv\100tradingpost.com.au
e82692ac 760mlh\100swl.msd.ray.com webtools\100uewrhp03.msd.ray.com
8513229b
A
761michael.schroeder\100informatik.uni-erlangen.de mls\100suse.de
762mike\100stok.co.uk mike\100exegenix.com
e7613a67 763miyagawa\100bulknews.net miyagawa\100edge.co.jp
8513229b 764mjtg\100cam.ac.uk mjtg\100cus.cam.ac.uk
e82692ac 765mikedlr\100tardis.ed.ac.uk mikedlr\100it.com.pl
fda5b70a 766moritz\100casella.verplant.org moritz\100faui2k3.org
e82692ac 767+ moritz lenz
fda5b70a 768
e82692ac 769neale\100VMA.TABNSW.COM.AU neale\100pucc.princeton.edu
d203773f 770neeracher\100mac.com neeri\100iis.ee.ethz.ch
e82692ac 771neil\100bowers.com neilb\100cre.canon.co.uk
20b15ed1 772
8513229b
A
773nospam-abuse\100bloodgate.com tels\100bloodgate.com
774+ perl_dummy\100bloodgate.com
00229b97 775
e82692ac
MB
776ian.phillipps\100iname.com ian_phillipps\100yahoo.co.uk
777+ ian\100dial.pipex.com
00229b97 778ignasi.roca\100fujitsu-siemens.com ignasi.roca\100fujitsu.siemens.es
e82692ac 779ikegami\100adaelis.com eric\100fmdev10.(none)
d203773f 780ilmari\100ilmari.org ilmari\100vesla.ilmari.org
e82692ac 781illpide\100telecel.pt arbor\100al37al08.telecel.pt
20b15ed1
JV
782# see http://www.nntp.perl.org/group/perl.perl5.porters/2001/01/msg28925.html
783#
a94e4597
S
784ilya\100math.berkeley.edu ilya\100math.ohio-state.edu
785+ nospam-abuse\100ilyaz.org
e82692ac 786+ [9]ilya\100math.ohio-state.edu
d203773f 787ilya\100martynov.org ilya\100juil.nonet
8513229b 788
31febfb6
FC
789joshua.pritikin\100db.com joshua\100paloalto.com
790
9fcef2a0
FC
791litt\100acm.org tlhackque\100yahoo.com
792
3b8d3bda
FC
793meyering@asic.sc.ti.com jim\100meyering.net
794
00229b97 795okamoto\100corp.hp.com okamoto\100hpcc123.corp.hp.com
e82692ac 796orwant\100oreilly.com orwant\100media.mit.edu
00229b97 797
8513229b
A
798p5-authors\100crystalflame.net perl\100crystalflame.net
799+ rs\100crystalflame.net
00229b97
JV
800+ coral\100eekeek.org
801+ coral\100moonlight.crystalflame.net
802+ rs\100oregonnet.com
93456aa7 803+ rs\100topsy.com
8513229b 804paul.green\100stratus.com paul_greenvos\100vos.stratus.com
e82692ac 805+ pgreen\100seussnt.stratus.com
8513229b
A
806paul.marquess\100btinternet.com paul_marquess\100yahoo.co.uk
807+ paul.marquess\100ntlworld.com
808+ paul.marquess\100openwave.com
00229b97
JV
809+ pmarquess\100bfsec.bt.co.uk
810+ pmqs\100cpan.org
e82692ac
MB
811+ paul\100paul-desktop.(none)
812Pavel.Zakouril\100mff.cuni.cz root\100egg.karlov.mff.cuni.cz
8513229b 813pcg\100goof.com schmorp\100schmorp.de
00229b97 814perl\100cadop.com cdp\100hpescdp.fc.hp.com
e82692ac 815perl\100greerga.m-l.org greerga\100m-l.org
00229b97
JV
816perl\100profvince.com vince\100profvince.com
817perl-rt\100wizbit.be p5p\100perl.wizbit.be
8513229b 818# Maybe we should special case this to get real names out?
946fbe37 819Peter.Dintelmann\100Dresdner-Bank.com peter.dintelmann\100dresdner-bank.com
fda5b70a 820# NOTE: There is an intentional trailing space in the line above
00229b97 821pfeifer\100wait.de pfeifer\100charly.informatik.uni-dortmund.de
e82692ac 822+ upf\100de.uu.net
36a4e1d1
NC
823ribasushi@cpan.org rabbit\100rabbit.us
824+ rabbit+bugs\100rabbit.us
d6abd0a3 825perl\100aaroncrane.co.uk arc\100cpan.org
8513229b
A
826phil\100perkpartners.com phil\100finchcomputer.com
827pimlott\100idiomtech.com andrew\100pimlott.net
e82692ac
MB
828+ pimlott\100abel.math.harvard.edu
829pixel\100mandriva.com pixel\100mandrakesoft.com
8513229b
A
830pne\100cpan.org philip.newton\100gmx.net
831+ philip.newton\100datenrevision.de
832+ pnewton\100gmx.de
00229b97 833pprymmer\100factset.com pvhp\100forte.com
3eab96ca
KW
834khw\100cpan.org khw\100karl.(none)
835+ public\100khwilliamson.com
e82692ac 836+ khw\100khw-desktop.(none)
8513229b
A
837
838radu\100netsoft.ro rgreab\100fx.ro
549122ae 839rajagopa\100pauline.schrodinger.com rajagopa\100schrodinger.com
00229b97 840raphael.manfredi\100pobox.com raphael_manfredi\100grenoble.hp.com
117a8c22
RB
841module@renee-baecker.de renee.baecker\100smart-websolutions.de
842+ reneeb\100reneeb-desktop.(none)
a7f7a167 843+ github@renee-baecker.de
2bacf451 844+ otrs\100ubuntu.(none)
524cd813 845+ perl\100renee-baecker.de
7bb7565a 846+ reb\100perl-services.de
8f6628e3 847+ info\100perl-services.de
f157ad77 848richard.foley\100rfi.net richard.foley\100t-online.de
8513229b 849+ richard.foley\100ubs.com
f157ad77 850+ richard.foley\100ubsw.com
8513229b
A
851rick\100consumercontact.com rick\100bort.ca
852+ rick.delaney\100rogers.com
a94e4597 853+ rick\100bort.ca
e82692ac 854+ rick.delaney\100home.com
4bc69901 855rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org
e82692ac 856+ perl.p5p\100rjbs.manxome.org
8513229b
A
857rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu
858+ rjk-perl-p5p\100tamias.net
ec36440e 859+ rjk\100tamias.net
e82692ac 860rjray\100redhat.com rjray\100uswest.com
8513229b 861rmgiroux\100acm.org rmgiroux\100hotmail.com
e82692ac 862+ mgiroux\100bear.com
a94e4597
S
863rmbarker\100cpan.org rmb1\100cise.npl.co.uk
864+ robin.barker\100npl.co.uk
00229b97 865+ rmb\100cise.npl.co.uk
5b2081f5 866+ robin\100spade-ubuntu.(none)
b2061475 867+ r.m.barker\100btinternet.com
34c029c7 868+ rmbarker.cpan\100btinternet.com
00229b97 869robertmay\100cpan.org rob\100themayfamily.me.uk
d203773f 870roberto\100keltia.freenix.fr roberto\100eurocontrol.fr
00229b97
JV
871robin\100cpan.org robin\100kitsite.com
872roderick\100argon.org roderick\100gate.net
e82692ac 873+ roderick\100ibcinc.com
3560ee4d 874argrath\100ub32.org root\100ub32.org
8513229b 875rootbeer\100teleport.com rootbeer\100redcat.com
e82692ac 876+ tomphoenix\100unknown
3bf51dad 877rurban\100x-ray.at rurban\100cpan.org
080d4cd3 878+ rurban\100cpanel.net
2515a12c 879rvtol+news\100isolution.nl rvtol\100isolution.nl
c0e9ef6a 880sartak\100bestpractical.com sartak\100gmail.com
a3d8b840 881+ code\100sartak.org
ed429a63 882sadinoff\100olf.com danny-cpan\100sadinoff.com
8513229b
A
883schubiger\100cpan.org steven\100accognoscere.org
884+ sts\100accognoscere.org
00229b97 885+ schubiger\100gmail.com
f273d1e7 886+ stsc\100refcnt.org
8513229b 887schwern\100pobox.com schwern\100gmail.com
8ed05479
MS
888+ schwern\100athens.arena-i.com
889+ schwern\100blackrider.aocn.com
890+ schwern\100ool-18b93024.dyn.optonline.net
a6580681 891scop\100cs132170.pp.htv.fi ville.skytta\100iki.fi
e82692ac
MB
892scotth\100sgi.com author scotth\100sgi.com 842220273 +0000
893+ schotth\100sgi.com
894schwab\100suse.de schwab\100issan.informatik.uni-dortmund.de
895+ schwab\100ls5.informatik.uni-dortmund.de
8513229b
A
896sebastien\100aperghis.net maddingue\100free.fr
897+ saper\100cpan.org
1048cfac 898shigeya\100wide.ad.jp shigeya\100foretune.co.jp
917cc27d
SF
899shlomif\100cpan.org shlomif\100vipe.technion.ac.il
900+ shlomif\100iglu.org.il
ff47f462 901+ shlomif+processed-by-perl\100gmail.com
be235cc1 902+ shlomif\100shlomifish.org
8513229b
A
903simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk
904+ simon\100brecon.co.uk
905+ simon\100othersideofthe.earth.li
906+ simon\100cozens.net
907+ simon\100netthink.co.uk
2dcd19f0
S
908sisyphus\100cpan.org sisyphus1\100optusnet.com.au
909+ sisyphus359\100gmail.com
cd799e5a
SL
910lannings\100who.int lannings\100gmail.com
911+ slanning\100cpan.org
8513229b 912slaven\100rezic.de slaven.rezic\100berlin.de
a94e4597 913+ srezic\100iconmobile.com
00229b97 914+ srezic\100cpan.org
e82692ac
MB
915+ eserte\100cs.tu-berlin.de
916+ eserte\100vran.herceg.de
8513229b
A
917smcc\100mit.edu smcc\100ocf.berkeley.edu
918+ smcc\100csua.berkeley.edu
00229b97 919+ alias\100mcs.com
fda5b70a 920+ smccam\100uclink4.berkeley.edu
8513229b
A
921spider\100orb.nashua.nh.us spider\100web.zk3.dec.com
922+ spider\100leggy.zk3.dec.com
923+ spider-perl\100orb.nashua.nh.us
924+ spider\100peano.zk3.dec.com
fda5b70a
JV
925+ spider.boardman\100orb.nashua.nh.us>
926+ spidb\100cpan.org
e82692ac
MB
927+ spider.boardman\100orb.nashua.nh.us
928+ root\100peano.zk3.dec.com
1ea085fc 929spiros\100lokku.com s.denaxas\100gmail.com
00229b97 930spp\100ds.net spp\100psa.pencom.com
fda5b70a
JV
931+ spp\100psasolar.colltech.com
932+ spp\100spotter.yi.org
8513229b
A
933stef\100mongueurs.net stef\100payrard.net
934+ s.payrard\100wanadoo.fr
e82692ac
MB
935+ properler\100freesurf.fr
936+ stef\100francenet.fr
cb991fd8 937stevan\100cpan.org stevan.little\100gmail.com
c6a7f572 938+ stevan.little\100iinteractive.com
e82692ac 939sthoenna\100efn.org ysth\100raven.shiftboard.com
8513229b
A
940
941tassilo.parseval\100post.rwth-aachen.de tassilo.von.parseval\100rwth-aachen.de
e82692ac
MB
942tchrist\100perl.com tchrist\100mox.perl.com
943+ tchrist\100jhereg.perl.com
944thomas.dorner\100start.de tdorner\100amadeus.net
945tjenness\100cpan.org t.jenness\100jach.hawaii.edu
946+ timj\100jach.hawaii.edu
947tobez\100tobez.org tobez\100plab.ku.dk
2fe8fc10 948toddr\100cpan.org toddr\100cpanel.net
e82692ac
MB
949tom\100compton.nu thh\100cyberscience.com
950tom.horsley\100mail.ccur.com tom.horsley\100ccur.com
951+ tom\100amber.ssd.hcsc.com
952
953vkonovalov\100lucent.com vkonovalov\100peterstar.ru
954+ konovalo\100mail.wplus.net
955+ vadim\100vkonovalov.ru
956+ vkonovalov\100spb.lucent.com
957+ vkonovalov\100alcatel-lucent.com
058a5f6c 958+ vadim.konovalov\100alcatel-lucent.com
e82692ac
MB
959
960whatever\100davidnicol.com davidnicol\100gmail.com
961wolfgang.laun\100alcatel.at wolfgang.laun\100chello.at
962+ wolfgang.laun\100thalesgroup.com
963+ wolfgang.laun\100gmail.com
64698074 964wolfsage\100gmail.com mhorsfall\100darmstadtium.(none)
e82692ac 965yath\100yath.de yath-perlbug\100yath.de
691b316a 966