my @visit = ();
+my @vsource = ();
+
for my $i (keys %essential) {
push @visit, $i;
}
my $n = pop @visit;
next if grep /^$n$/, @pp;
push @pp, $n;
+ my $source = $csource{$n};
+ if ($source and !grep /^$source$/, @vsource) {
+ push @vsource, $source;
+ for my $b (@{$bdeps{$source}}) {
+ if (!grep /^$b$/, @pp && !grep /^$b$/, @visit) {
+ push @visit, $b;
+ }
+ }
+ }
my $l = $depends{$n};
for my $d (@$l) {
if (!grep /^$d$/, @pp && !grep /^$d$/, @visit) {