+
+ # this is where we decide to delay PC11s in the hope that a PC61 will be along soon.
+
+ my $key = join '|', @spot[0..2,4,7]; # not including text
+
+ unless ($recurse) {
+ if ($pcno == 61) {
+ ++$pc61_rx;
+
+ if ($pc11_saved) {
+ if ($key eq $pc11_saved->[0]) {
+ ++$pc11_to_61;
+ my $percent = $pc11_rx ? $pc11_to_61 * 100 / $pc11_rx : 0;
+ dbg(sprintf("recurse: $recurse saved PC11 spot $key dumped, better pc61 received pc61: $pc61_rx pc11: $pc11_rx -> pc61: $pc11_to_61 (%0.1f%%)", $percent)) if isdbg("pc11");
+ undef $pc11_saved;
+ }
+ }
+ }
+ if ($pcno == 11) {
+
+ ++$pc11_rx;
+
+ if ($pc11_saved) {
+ if ($key eq $pc11_saved->[0] ) {
+ dbg("recurse: $recurse saved PC11 spot $key, dupe pc11 received and dumped") if isdbg("pc11");
+ return; # because it's a dup
+ }
+ }
+
+ # can we promote this to a PC61?
+ my $r = Route::User::get($spot[4]); # find spotter
+ if ($r && $r->ip) { # do we have an ip addres
+ $pcno = 61; # now turn this into a PC61
+ $spot[14] = $r->ip;
+ ++$rpc11_to_61;
+ my $percent = $pc11_rx ? $rpc11_to_61 * 100 / $pc11_rx : 0;
+ dbg(sprintf("recurse: $recurse PC11 spot $key promoted to pc61 ip $spot[14] pc61: $pc61_rx pc11: $pc11_rx -> pc61 $pc11_to_61 (%0.1f%%)", $percent)) if isdbg("pc11");
+ undef $pc11_saved;
+ }
+
+ # if it is STILL (despite all efforts to change it) a PC11
+ if ($pcno == 11) {
+ if ($pc11_saved && $key ne $pc11_saved->[0]) {
+ dbg("recurse: $recurse NEW PC11 spot $key ne $pc11_saved->[0], recursing") if isdbg("pc11");
+ # shift @$pc11_saved; # saved key
+ my $self = $pc11_saved->[1];
+ my @saved = @$pc11_saved[2..5];
+ $self->handle_11(@saved, 1);
+ }
+
+ $pc11_saved = [$key, $self, $pcno, $line, $origin, $pc];
+ $pc11_saved_time = $main::systime;
+ dbg("recurse: $recurse saved new PC11 spot $key for a better offer") if isdbg("pc11");
+ return;
+ }
+
+ } else {
+ my $count = $pc11_to_61+$rpc11_to_61;
+ my $percent = $pc11_rx ? $count*100 / $pc11_rx : 0;
+ dbg(sprintf("recurse: $recurse PC61 spot $key passed onward pc61: $pc61_rx pc11: $pc11_rx -> pc61: $count (%0.1f%%)", $percent)) if isdbg("pc11");
+ $recurse = 0;
+ undef $pc11_saved;
+ }
+ }
+
+