aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-025/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-025/arne-sommer/perl6/ch-1.p662
-rwxr-xr-xchallenge-025/arne-sommer/perl6/ch-2.p667
-rwxr-xr-xchallenge-025/arne-sommer/perl6/pokemon-graphviz34
-rwxr-xr-xchallenge-025/arne-sommer/perl6/pokemon-infinite7
-rwxr-xr-xchallenge-025/arne-sommer/perl6/pokemon-observations23
-rw-r--r--challenge-025/arne-sommer/perl6/pokemon.dot186
-rw-r--r--challenge-025/arne-sommer/perl6/pokemon.svg1465
-rw-r--r--stats/pwc-current.json253
-rw-r--r--stats/pwc-language-breakdown-summary.json54
-rw-r--r--stats/pwc-language-breakdown.json224
-rw-r--r--stats/pwc-leaders.json488
-rw-r--r--stats/pwc-summary-1-30.json120
-rw-r--r--stats/pwc-summary-31-60.json110
-rw-r--r--stats/pwc-summary-61-90.json122
-rw-r--r--stats/pwc-summary-91-120.json104
-rw-r--r--stats/pwc-summary.json44
17 files changed, 2614 insertions, 750 deletions
diff --git a/challenge-025/arne-sommer/blog.txt b/challenge-025/arne-sommer/blog.txt
new file mode 100644
index 0000000000..c5df0f7c43
--- /dev/null
+++ b/challenge-025/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://perl6.eu/pokemon-chiao.html
diff --git a/challenge-025/arne-sommer/perl6/ch-1.p6 b/challenge-025/arne-sommer/perl6/ch-1.p6
new file mode 100755
index 0000000000..031b133f45
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/ch-1.p6
@@ -0,0 +1,62 @@
+#! /usr/bin/env perl6
+
+my @names = <audino bagon baltoy banette bidoof braviary bronzor carracosta charmeleon cresselia croagunk darmanitan deino emboar emolga exeggcute gabite girafarig gulpin haxorus heatmor heatran ivysaur jellicent jumpluff kangaskhan kricketune landorus ledyba loudred lumineon lunatone machamp magnezone mamoswine nosepass petilil pidgeotto pikachu pinsir poliwrath poochyena porygon2 porygonz registeel relicanth remoraid rufflet sableye scolipede scrafty seaking sealeo silcoon simisear snivy snorlax spoink starly tirtouga trapinch treecko tyrogue vigoroth vulpix wailord wartortle whismur wingull yamask>;
+
+my @start = @names.map( *.substr(0,1) ).unique;
+
+my %start-list;
+
+for @start -> $letter
+{
+ %start-list{$letter} = @names.grep(*.substr(0,1) eq $letter);
+}
+
+my $length = 0;
+my @solution;
+
+for @names -> $name
+{
+ do-check( $name.List );
+}
+
+for @(@solution) -> @sol
+{
+ say "{ @sol.elems }: { @sol }";
+}
+
+say "Total: { @(@solution).elems } solutions.";
+
+sub do-check (@path)
+{
+ my $last = @path[*-1];
+ my $last-letter = $last.substr(*-1,1);
+
+ my $found-next = False;
+
+ if %start-list{$last-letter}
+ {
+ for @(%start-list{$last-letter}) -> $next-name
+ {
+ next if $next-name eq any( @path );
+
+ my @new = @path; @new.push: $next-name;
+ $found-next = True;
+ do-check(@new);
+ }
+ }
+ unless $found-next
+ {
+ my $current-length = @path.elems;
+
+ return if $current-length < $length;
+
+ if $current-length > $length
+ {
+ @solution = ();
+ $length = $current-length;
+ say "Currently longest path found at $current-length.";
+ }
+
+ @solution.push(@path);
+ }
+}
diff --git a/challenge-025/arne-sommer/perl6/ch-2.p6 b/challenge-025/arne-sommer/perl6/ch-2.p6
new file mode 100755
index 0000000000..554851651a
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/ch-2.p6
@@ -0,0 +1,67 @@
+#! /usr/bin/env perl6
+
+subset ChaoChar of Str where $_ eq any ('A' .. 'Z');
+subset ChaoStr of Str where /^ <[A .. Z]>+ $/;
+
+subset ChaoAlphabet of Str where $_.chars == 26 && $_.comb.sort.join eq 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+unit sub MAIN (ChaoStr $message,
+ Bool :$verbose,
+ Bool :$decipher,
+ ChaoAlphabet :$left = ('A' ... 'Z').pick(*).join,
+ ChaoAlphabet :$right = ('A' ... 'Z').pick(*).join);
+
+my @left = $left.comb; # also called "left"
+my @right = $right.comb; # also called "right"
+
+say "!! { @left.join } { @right.join }" if $verbose;
+
+constant ZENITH = 0; # Shown as '+'
+constant NADIR = 13; # Shown as '*'
+constant END = 25;
+
+my $encoded-message = "";
+
+for $message.comb -> $letter
+{
+ my $encoded-letter = $decipher
+ ?? left2right($letter)
+ !! right2left($letter);
+
+ $encoded-message ~= $encoded-letter;
+
+ if ($decipher)
+ {
+ @left .= rotate while @left[ZENITH] ne $letter;
+ @right .= rotate while @right[ZENITH] ne $encoded-letter;
+ }
+ else
+ {
+ @left .= rotate while @left[ZENITH] ne $encoded-letter;
+ @right .= rotate while @right[ZENITH] ne $letter;
+ }
+ @right .= rotate;
+
+ @left = @left[ZENITH, ZENITH + 2 .. NADIR, ZENITH + 1, NADIR + 1 .. END].flat;
+ @right = @right[ZENITH, ZENITH + 1, ZENITH + 3 .. NADIR, ZENITH + 2, NADIR + 1 .. END].flat;
+
+ say "!! { @left.join } { @right.join } $encoded-letter $letter" if $verbose;
+}
+
+sub right2left (ChaoChar $letter)
+{
+ for 0 .. Inf -> $index # we could have used 'index', if we had a string!!
+ {
+ return @left[$index] if @right[$index] eq $letter;
+ }
+}
+
+sub left2right (ChaoChar $letter)
+{
+ for 0 .. Inf -> $index # we could have used 'index', if we had a string!!
+ {
+ return @right[$index] if @left[$index] eq $letter;
+ }
+}
+
+say $encoded-message; \ No newline at end of file
diff --git a/challenge-025/arne-sommer/perl6/pokemon-graphviz b/challenge-025/arne-sommer/perl6/pokemon-graphviz
new file mode 100755
index 0000000000..5612b3ea21
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/pokemon-graphviz
@@ -0,0 +1,34 @@
+#! /usr/bin/env perl6
+
+my @names = <audino bagon baltoy banette bidoof braviary bronzor carracosta charmeleon cresselia croagunk darmanitan deino emboar emolga exeggcute gabite girafarig gulpin haxorus heatmor heatran ivysaur jellicent jumpluff kangaskhan kricketune landorus ledyba loudred lumineon lunatone machamp magnezone mamoswine nosepass petilil pidgeotto pikachu pinsir poliwrath poochyena porygon2 porygonz registeel relicanth remoraid rufflet sableye scolipede scrafty seaking sealeo silcoon simisear snivy snorlax spoink starly tirtouga trapinch treecko tyrogue vigoroth vulpix wailord wartortle whismur wingull yamask>;
+
+my @start = @names.map( *.substr(0,1) ).unique;
+
+my %start-list;
+
+for @start -> $letter
+{
+ %start-list{$letter} = @names.grep(*.substr(0,1) eq $letter);
+}
+
+say 'digraph foogrph {';
+
+for @names -> $name
+{
+ my $last-char = $name.substr(*-1,1);
+
+ if %start-list{$last-char}
+ {
+ for @(%start-list{$last-char}) -> $next
+ {
+ say " $name -> $next;" unless $name eq $next;
+ }
+ }
+ else
+ {
+ say " $name;"; # A dead end.
+ }
+
+}
+
+say '}';
diff --git a/challenge-025/arne-sommer/perl6/pokemon-infinite b/challenge-025/arne-sommer/perl6/pokemon-infinite
new file mode 100755
index 0000000000..a38d02f5f5
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/pokemon-infinite
@@ -0,0 +1,7 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Int $count = 10);
+
+my @infinite = 'girafarig', 'girafarig' ... *;
+
+say @infinite[^$count]; \ No newline at end of file
diff --git a/challenge-025/arne-sommer/perl6/pokemon-observations b/challenge-025/arne-sommer/perl6/pokemon-observations
new file mode 100755
index 0000000000..edf4f836cb
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/pokemon-observations
@@ -0,0 +1,23 @@
+#! /usr/bin/env perl6
+
+my @names = <audino bagon baltoy banette bidoof braviary bronzor carracosta charmeleon cresselia croagunk darmanitan deino emboar emolga exeggcute gabite girafarig gulpin haxorus heatmor heatran ivysaur jellicent jumpluff kangaskhan kricketune landorus ledyba loudred lumineon lunatone machamp magnezone mamoswine nosepass petilil pidgeotto pikachu pinsir poliwrath poochyena porygon2 porygonz registeel relicanth remoraid rufflet sableye scolipede scrafty seaking sealeo silcoon simisear snivy snorlax spoink starly tirtouga trapinch treecko tyrogue vigoroth vulpix wailord wartortle whismur wingull yamask>;
+
+say "Names: { @names.elems }.";
+
+my @start = @names.map( *.substr( 0,1) ).unique;
+my @end = @names.map( *.substr(*-1,1) ).unique.sort;
+
+say "Start: { @start }.";
+say "End: { @end }.";
+
+my %start = @start.Set;
+my %end = @end.Set;
+my @orphans = @names.grep({ ! %end{$_.substr(0,1)} && ! %start{$_.substr(*-1,1)} });
+
+say "Orphans: { @orphans }";
+
+my @not-dead = (@names ∖ @orphans).keys.sort;
+say "Not Dead (implied): { @not-dead }";
+
+
+
diff --git a/challenge-025/arne-sommer/perl6/pokemon.dot b/challenge-025/arne-sommer/perl6/pokemon.dot
new file mode 100644
index 0000000000..558a904ec0
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/pokemon.dot
@@ -0,0 +1,186 @@
+digraph foogrph {
+ audino;
+ bagon -> nosepass;
+ baltoy -> yamask;
+ banette -> emboar;
+ banette -> emolga;
+ banette -> exeggcute;
+ bidoof;
+ braviary -> yamask;
+ bronzor -> registeel;
+ bronzor -> relicanth;
+ bronzor -> remoraid;
+ bronzor -> rufflet;
+ carracosta -> audino;
+ charmeleon -> nosepass;
+ cresselia -> audino;
+ croagunk -> kangaskhan;
+ croagunk -> kricketune;
+ darmanitan -> nosepass;
+ deino;
+ emboar -> registeel;
+ emboar -> relicanth;
+ emboar -> remoraid;
+ emboar -> rufflet;
+ emolga -> audino;
+ exeggcute -> emboar;
+ exeggcute -> emolga;
+ gabite -> emboar;
+ gabite -> emolga;
+ gabite -> exeggcute;
+ girafarig -> gabite;
+ girafarig -> gulpin;
+ gulpin -> nosepass;
+ haxorus -> sableye;
+ haxorus -> scolipede;
+ haxorus -> scrafty;
+ haxorus -> seaking;
+ haxorus -> sealeo;
+ haxorus -> silcoon;
+ haxorus -> simisear;
+ haxorus -> snivy;
+ haxorus -> snorlax;
+ haxorus -> spoink;
+ haxorus -> starly;
+ heatmor -> registeel;
+ heatmor -> relicanth;
+ heatmor -> remoraid;
+ heatmor -> rufflet;
+ heatran -> nosepass;
+ ivysaur -> registeel;
+ ivysaur -> relicanth;
+ ivysaur -> remoraid;
+ ivysaur -> rufflet;
+ jellicent -> tirtouga;
+ jellicent -> trapinch;
+ jellicent -> treecko;
+ jellicent -> tyrogue;
+ jumpluff;
+ kangaskhan -> nosepass;
+ kricketune -> emboar;
+ kricketune -> emolga;
+ kricketune -> exeggcute;
+ landorus -> sableye;
+ landorus -> scolipede;
+ landorus -> scrafty;
+ landorus -> seaking;
+ landorus -> sealeo;
+ landorus -> silcoon;
+ landorus -> simisear;
+ landorus -> snivy;
+ landorus -> snorlax;
+ landorus -> spoink;
+ landorus -> starly;
+ ledyba -> audino;
+ loudred -> darmanitan;
+ loudred -> deino;
+ lumineon -> nosepass;
+ lunatone -> emboar;
+ lunatone -> emolga;
+ lunatone -> exeggcute;
+ machamp -> petilil;
+ machamp -> pidgeotto;
+ machamp -> pikachu;
+ machamp -> pinsir;
+ machamp -> poliwrath;
+ machamp -> poochyena;
+ machamp -> porygon2;
+ machamp -> porygonz;
+ magnezone -> emboar;
+ magnezone -> emolga;
+ magnezone -> exeggcute;
+ mamoswine -> emboar;
+ mamoswine -> emolga;
+ mamoswine -> exeggcute;
+ nosepass -> sableye;
+ nosepass -> scolipede;
+ nosepass -> scrafty;
+ nosepass -> seaking;
+ nosepass -> sealeo;
+ nosepass -> silcoon;
+ nosepass -> simisear;
+ nosepass -> snivy;
+ nosepass -> snorlax;
+ nosepass -> spoink;
+ nosepass -> starly;
+ petilil -> landorus;
+ petilil -> ledyba;
+ petilil -> loudred;
+ petilil -> lumineon;
+ petilil -> lunatone;
+ pidgeotto;
+ pikachu;
+ pinsir -> registeel;
+ pinsir -> relicanth;
+ pinsir -> remoraid;
+ pinsir -> rufflet;
+ poliwrath -> haxorus;
+ poliwrath -> heatmor;
+ poliwrath -> heatran;
+ poochyena -> audino;
+ porygon2;
+ porygonz;
+ registeel -> landorus;
+ registeel -> ledyba;
+ registeel -> loudred;
+ registeel -> lumineon;
+ registeel -> lunatone;
+ relicanth -> haxorus;
+ relicanth -> heatmor;
+ relicanth -> heatran;
+ remoraid -> darmanitan;
+ remoraid -> deino;
+ rufflet -> tirtouga;
+ rufflet -> trapinch;
+ rufflet -> treecko;
+ rufflet -> tyrogue;
+ sableye -> emboar;
+ sableye -> emolga;
+ sableye -> exeggcute;
+ scolipede -> emboar;
+ scolipede -> emolga;
+ scolipede -> exeggcute;
+ scrafty -> yamask;
+ seaking -> gabite;
+ seaking -> girafarig;
+ seaking -> gulpin;
+ sealeo;
+ silcoon -> nosepass;
+ simisear -> registeel;
+ simisear -> relicanth;
+ simisear -> remoraid;
+ simisear -> rufflet;
+ snivy -> yamask;
+ snorlax;
+ spoink -> kangaskhan;
+ spoink -> kricketune;
+ starly -> yamask;
+ tirtouga -> audino;
+ trapinch -> haxorus;
+ trapinch -> heatmor;
+ trapinch -> heatran;
+ treecko;
+ tyrogue -> emboar;
+ tyrogue -> emolga;
+ tyrogue -> exeggcute;
+ vigoroth -> haxorus;
+ vigoroth -> heatmor;
+ vigoroth -> heatran;
+ vulpix;
+ wailord -> darmanitan;
+ wailord -> deino;
+ wartortle -> emboar;
+ wartortle -> emolga;
+ wartortle -> exeggcute;
+ whismur -> registeel;
+ whismur -> relicanth;
+ whismur -> remoraid;
+ whismur -> rufflet;
+ wingull -> landorus;
+ wingull -> ledyba;
+ wingull -> loudred;
+ wingull -> lumineon;
+ wingull -> lunatone;
+ yamask -> kangaskhan;
+ yamask -> kricketune;
+}
diff --git a/challenge-025/arne-sommer/perl6/pokemon.svg b/challenge-025/arne-sommer/perl6/pokemon.svg
new file mode 100644
index 0000000000..d121d67502
--- /dev/null
+++ b/challenge-025/arne-sommer/perl6/pokemon.svg
@@ -0,0 +1,1465 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: foogrph Pages: 1 -->
+<svg width="3354pt" height="1412pt"
+ viewBox="0.00 0.00 3354.49 1412.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1408)">
+<title>foogrph</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1408 3350.4937,-1408 3350.4937,4 -4,4"/>
+<!-- audino -->
+<g id="node1" class="node">
+<title>audino</title>
+<ellipse fill="none" stroke="#000000" cx="1475.3466" cy="-18" rx="34.394" ry="18"/>
+<text text-anchor="middle" x="1475.3466" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">audino</text>
+</g>
+<!-- bagon -->
+<g id="node2" class="node">
+<title>bagon</title>
+<ellipse fill="none" stroke="#000000" cx="1246.3466" cy="-954" rx="32.4942" ry="18"/>
+<text text-anchor="middle" x="1246.3466" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000">bagon</text>
+</g>
+<!-- nosepass -->
+<g id="node3" class="node">
+<title>nosepass</title>
+<ellipse fill="none" stroke="#000000" cx="1144.3466" cy="-882" rx="42.4939" ry="18"/>
+<text text-anchor="middle" x="1144.3466" y="-878.3" font-family="Times,serif" font-size="14.00" fill="#000000">nosepass</text>
+</g>
+<!-- bagon&#45;&gt;nosepass -->
+<g id="edge1" class="edge">
+<title>bagon&#45;&gt;nosepass</title>
+<path fill="none" stroke="#000000" d="M1226.1947,-939.7751C1211.4614,-929.3752 1191.2265,-915.0917 1174.5627,-903.329"/>
+<polygon fill="#000000" stroke="#000000" points="1176.4104,-900.3491 1166.2223,-897.4417 1172.3736,-906.0679 1176.4104,-900.3491"/>
+</g>
+<!-- sableye -->
+<g id="node29" class="node">
+<title>sableye</title>
+<ellipse fill="none" stroke="#000000" cx="1303.3466" cy="-378" rx="37.0935" ry="18"/>
+<text text-anchor="middle" x="1303.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">sableye</text>
+</g>
+<!-- nosepass&#45;&gt;sableye -->
+<g id="edge90" class="edge">
+<title>nosepass&#45;&gt;sableye</title>
+<path fill="none" stroke="#000000" d="M1170.5025,-867.7114C1185.4271,-858.2857 1203.3058,-844.6202 1214.3466,-828 1273.8792,-738.3832 1276.3466,-701.5886 1276.3466,-594 1276.3466,-594 1276.3466,-594 1276.3466,-522 1276.3466,-480.9969 1287.0527,-434.534 1294.9816,-405.7459"/>
+<polygon fill="#000000" stroke="#000000" points="1298.3893,-406.558 1297.7522,-395.9823 1291.6552,-404.647 1298.3893,-406.558"/>
+</g>
+<!-- scolipede -->
+<g id="node30" class="node">
+<title>scolipede</title>
+<ellipse fill="none" stroke="#000000" cx="1402.3466" cy="-378" rx="44.393" ry="18"/>
+<text text-anchor="middle" x="1402.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">scolipede</text>
+</g>
+<!-- nosepass&#45;&gt;scolipede -->
+<g id="edge91" class="edge">
+<title>nosepass&#45;&gt;scolipede</title>
+<path fill="none" stroke="#000000" d="M1177.9331,-870.8171C1227.4763,-851.9525 1314.3466,-808.7827 1314.3466,-738 1314.3466,-738 1314.3466,-738 1314.3466,-522 1314.3466,-480.6022 1316.172,-466.9581 1338.3466,-432 1346.3673,-419.3554 1358.2942,-408.1442 1369.6856,-399.2599"/>
+<polygon fill="#000000" stroke="#000000" points="1371.8825,-401.988 1377.8222,-393.2147 1367.7078,-396.369 1371.8825,-401.988"/>
+</g>
+<!-- scrafty -->
+<g id="node31" class="node">
+<title>scrafty</title>
+<ellipse fill="none" stroke="#000000" cx="698.3466" cy="-1098" rx="34.394" ry="18"/>
+<text text-anchor="middle" x="698.3466" y="-1094.3" font-family="Times,serif" font-size="14.00" fill="#000000">scrafty</text>
+</g>
+<!-- nosepass&#45;&gt;scrafty -->
+<g id="edge92" class="edge">
+<title>nosepass&#45;&gt;scrafty</title>
+<path fill="none" stroke="#000000" d="M1116.3216,-895.5726C1038.2526,-933.3819 818.4399,-1039.8382 732.9598,-1081.2367"/>
+<polygon fill="#000000" stroke="#000000" points="731.4019,-1078.1022 723.9274,-1085.6111 734.4531,-1084.4023 731.4019,-1078.1022"/>
+</g>
+<!-- seaking -->
+<g id="node32" class="node">
+<title>seaking</title>
+<ellipse fill="none" stroke="#000000" cx="1172.3466" cy="-378" rx="37.8943" ry="18"/>
+<text text-anchor="middle" x="1172.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">seaking</text>
+</g>
+<!-- nosepass&#45;&gt;seaking -->
+<g id="edge93" class="edge">
+<title>nosepass&#45;&gt;seaking</title>
+<path fill="none" stroke="#000000" d="M1148.8346,-863.8014C1162.1232,-809.3039 1200.3466,-647.8653 1200.3466,-594 1200.3466,-594 1200.3466,-594 1200.3466,-522 1200.3466,-480.9444 1189.244,-434.4951 1181.0214,-405.7243"/>
+<polygon fill="#000000" stroke="#000000" points="1184.3305,-404.5712 1178.1482,-395.9672 1177.6156,-406.5486 1184.3305,-404.5712"/>
+</g>
+<!-- sealeo -->
+<g id="node33" class="node">
+<title>sealeo</title>
+<ellipse fill="none" stroke="#000000" cx="706.3466" cy="-378" rx="32.4942" ry="18"/>
+<text text-anchor="middle" x="706.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">sealeo</text>
+</g>
+<!-- nosepass&#45;&gt;sealeo -->
+<g id="edge94" class="edge">
+<title>nosepass&#45;&gt;sealeo</title>
+<path fill="none" stroke="#000000" d="M1110.0486,-871.238C1083.4863,-862.0245 1046.4386,-847.2067 1017.3466,-828 850.5212,-717.8612 747.7739,-484.6007 716.5187,-405.1582"/>
+<polygon fill="#000000" stroke="#000000" points="719.7803,-403.8886 712.9012,-395.8308 713.254,-406.4198 719.7803,-403.8886"/>
+</g>
+<!-- silcoon -->
+<g id="node34" class="node">
+<title>silcoon</title>
+<ellipse fill="none" stroke="#000000" cx="793.3466" cy="-378" rx="36.2938" ry="18"/>
+<text text-anchor="middle" x="793.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">silcoon</text>
+</g>
+<!-- nosepass&#45;&gt;silcoon -->
+<g id="edge95" class="edge">
+<title>nosepass&#45;&gt;silcoon</title>
+<path fill="none" stroke="#000000" d="M1117.2558,-868.0005C1068.7802,-838.822 967.6887,-767.2518 908.3466,-684 843.4885,-593.0098 805.5056,-463.162 795.0495,-406.394"/>
+<polygon fill="#000000" stroke="#000000" points="798.4728,-405.6443 793.371,-396.3587 791.5687,-406.7991 798.4728,-405.6443"/>
+</g>
+<!-- simisear -->
+<g id="node35" class="node">
+<title>simisear</title>
+<ellipse fill="none" stroke="#000000" cx="1648.3466" cy="-810" rx="40.0939" ry="18"/>
+<text text-anchor="middle" x="1648.3466" y="-806.3" font-family="Times,serif" font-size="14.00" fill="#000000">simisear</text>
+</g>
+<!-- nosepass&#45;&gt;simisear -->
+<g id="edge96" class="edge">
+<title>nosepass&#45;&gt;simisear</title>
+<path fill="none" stroke="#000000" d="M1184.7391,-876.2296C1276.5601,-863.1124 1500.6597,-831.0981 1599.8004,-816.9352"/>
+<polygon fill="#000000" stroke="#000000" points="1600.4406,-820.3793 1609.8451,-815.5002 1599.4506,-813.4497 1600.4406,-820.3793"/>
+</g>
+<!-- snivy -->
+<g id="node36" class="node">
+<title>snivy</title>
+<ellipse fill="none" stroke="#000000" cx="465.3466" cy="-378" rx="29.795" ry="18"/>
+<text text-anchor="middle" x="465.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">snivy</text>
+</g>
+<!-- nosepass&#45;&gt;snivy -->
+<g id="edge97" class="edge">
+<title>nosepass&#45;&gt;snivy</title>
+<path fill="none" stroke="#000000" d="M1105.9575,-874.4781C986.3568,-850.2837 623.8288,-770.9596 546.3466,-684 474.2441,-603.078 465.1625,-465.222 464.793,-406.1865"/>
+<polygon fill="#000000" stroke="#000000" points="468.2931,-406.1187 464.8122,-396.112 461.2931,-406.1053 468.2931,-406.1187"/>
+</g>
+<!-- snorlax -->
+<g id="node37" class="node">
+<title>snorlax</title>
+<ellipse fill="none" stroke="#000000" cx="619.3466" cy="-378" rx="36.2938" ry="18"/>
+<text text-anchor="middle" x="619.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">snorlax</text>
+</g>
+<!-- nosepass&#45;&gt;snorlax -->
+<g id="edge98" class="edge">
+<title>nosepass&#45;&gt;snorlax</title>
+<path fill="none" stroke="#000000" d="M1104.368,-875.736C1066.8607,-868.5365 1010.2688,-854.186 967.3466,-828 789.8777,-719.7298 668.9744,-485.265 631.6012,-405.3353"/>
+<polygon fill="#000000" stroke="#000000" points="634.6368,-403.5606 627.2663,-395.9496 628.2819,-406.4957 634.6368,-403.5606"/>
+</g>
+<!-- spoink -->
+<g id="node38" class="node">
+<title>spoink</title>
+<ellipse fill="none" stroke="#000000" cx="1499.3466" cy="-378" rx="34.394" ry="18"/>
+<text text-anchor="middle" x="1499.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">spoink</text>
+</g>
+<!-- nosepass&#45;&gt;spoink -->
+<g id="edge99" class="edge">
+<title>nosepass&#45;&gt;spoink</title>
+<path fill="none" stroke="#000000" d="M1182.497,-873.9121C1242.5448,-858.692 1352.3466,-819.6922 1352.3466,-738 1352.3466,-738 1352.3466,-738 1352.3466,-522 1352.3466,-480.6022 1349.3981,-463.4254 1376.3466,-432 1379.4082,-428.4298 1427.4611,-407.9131 1462.5821,-393.2273"/>
+<polygon fill="#000000" stroke="#000000" points="1464.2149,-396.3385 1472.097,-389.2587 1461.5202,-389.878 1464.2149,-396.3385"/>
+</g>
+<!-- starly -->
+<g id="node39" class="node">
+<title>starly</title>
+<ellipse fill="none" stroke="#000000" cx="341.3466" cy="-378" rx="30.5947" ry="18"/>
+<text text-anchor="middle" x="341.3466" y="-374.3" font-family="Times,serif" font-size="14.00" fill="#000000">starly</text>
+</g>
+<!-- nosepass&#45;&gt;starly -->
+<g id="edge100" class="edge">
+<title>nosepass&#45;&gt;starly</title>
+<path fill="none" stroke="#000000" d="M1102.5728,-879.217C1032.9032,-873.8541 889.0201,-859.6949 771.3466,-828 688.5473,-805.6983 664.3675,-802.5412 592.3466,-756 456.1341,-667.977 376.6747,-477.0637 350.7804,-405.6764"/>
+<polygon fill="#000000" stroke="#000000" points="354,-404.2841 347.3483,-396.0376 347.4056,-406.6323 354,-404.2841"/>
+</g>
+<!-- baltoy -->
+<g id="node4" class="node">
+<title>baltoy</title>
+<ellipse fill="none" stroke="#000000" cx="500.3466" cy="-1098" rx="32.4942" ry="18"/>
+<text text-anchor="middle" x="500.3466" y="-1094.3" font-family="Times,serif" font-size="14.00" fill="#000000">baltoy</text>
+</g>
+<!-- yamask -->
+<g id="node5" class="node">
+<title>yamask</title>
+<ellipse fill="none" stroke="#000000" cx="446.3466" cy="-1026" rx="38.1938" ry="18"/>
+<text text-anchor="middle" x="446.3466" y="-1022.3" font-family="Times,serif" font-size="14.00" fill="#000000">yamask</text>
+</g>
+<!-- baltoy&#45;&gt;yamask -->
+<g id="edge2" class="edge">
+<title>baltoy&#45;&gt;yamask</title>
+<path fill="none" stroke="#000000" d="M487.8222,-1081.3008C481.1041,-1072.3433 472.6884,-1061.1223 465.1965,-1051.1331"/>
+<polygon fill="#000000" stroke="#000000" points="467.9781,-1049.0086 459.1781,-1043.1086 462.3781,-1053.2087 467.9781,-1049.0086"/>
+</g>
+<!-- kangaskhan -->
+<g id="node21" class="node">
+<title>kangaskhan</title>
+<ellipse fill="none" stroke="#000000" cx="1348.3466" cy="-954" rx="51.9908" ry="18"/>
+<text text-anchor="middle" x="1348.3466" y="-950.3" font-family="Times,serif" font-size="14.00" fill="#000000">kangaskhan</text>
+</g>
+<!-- yamask&#45;&gt;kangaskhan -->
+<g id="edge171" class="edge">
+<title>yamask&#45;&gt;kangaskhan</title>
+<path fill="none" stroke="#000000" d="M485.0661,-1024.6602C628.5785,-1019.5161 1129.9616,-999.913 1287.3466,-972 1291.7464,-971.2197 1296.2795,-970.2362 1300.7938,-969.1334"/>
+<polygon fill="#000000" stroke="#000000" points="1301.8047,-972.4867 1310.5874,-966.5609 1300.0263,-965.7164 1301.8047,-972.4867"/>
+</g>
+<!-- kricketune -->
+<g id="node22" class="node">
+<title>kricketune</title>
+<ellipse fill="none" stroke="#000000" cx="2507.3466" cy="-306" rx="48.1917" ry="18"/>
+<text text-anchor="middle" x="2507.3466" y="-302.3" font-family="Times,serif" font-size="14.00" fill="#000000">kricketune</text>
+</g>
+<!-- yamask&#45;&gt;kricketune -->
+<g id="edge172" class="edge">
+<title>yamask&#45;&gt;kricketune</title>
+<path fill="none" stroke="#000000" d="M423.277,-1011.4065C389.9659,-988.3322 332.3466,-940.0323 332.3466,-882 332.3466,-882 332.3466,-882 332.3466,-810 332.3466,-609.526 161.3353,-503.4805 301.3466,-360 320.6642,-340.2037 2101.8985,-312.1566 2449.0698,-306.8754"/>
+<polygon fill="#000000" stroke="#000000" points="2449.2117,-310.3738 2459.1574,-306.7222 2449.1054,-303.3746 2449.2117,-310.3738"/>
+</g>
+<!-- banette -->
+<g id="node6" class="node">
+<title>banette</title>
+<ellipse fill="none" stroke="#000000" cx="2791.3466" cy="-1386" rx="36.2938" ry="18"/>
+<text text-anchor="middle" x="2791.3466" y="-1382.3" font-family="Times,serif" font-size="14.00" fill="#000000">banette</text>
+</g>
+<!-- emboar -->
+<g id="node7" class="node">
+<title>emboar</title>
+<ellipse fill="none" stroke="#000000" cx="2564.3466" cy="-1314" rx="37.8943" ry="18"/>
+<text text-anchor="middle" x="2564.3466" y="-1310.3" font-family="Times,serif" font-size="14.00" fill="#000000">emboar</text>
+</g>
+<!-- banette&#45;&gt;emboar -->
+<g id="edge3" class="edge">
+<title>banette&#45;&gt;emboar</title>
+<path fill="none" stroke="#000000" d="M2760.2592,-1376.1397C2720.0713,-1363.3929 2649.9755,-1341.1598 2605.4312,-1327.0313"/>
+<polygon fill="#000000" stroke="#000000" points="2606.3772,-1323.6595 2595.787,-1323.9723 2604.2608,-1330.3319 2606.3772,-1323.6595"/>
+</g>
+<!-- emolga -->
+<g id="node8" class="node">
+<title>emolga</title>
+<ellipse fill="none" stroke="#000000" cx="1986.3466" cy="-90" rx="37.0935" ry="18"/>
+<text text-anchor="middle" x="1986.3466" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#000000">emolga</text>
+</g>
+<!-- banette&#45;&gt;emolga -->
+<g id="edge4" class="edge">
+<title>banette&#45;&gt;emolga</title>
+<path fill="none" stroke="#000000" d="M2807.3369,-1369.6883C2838.9357,-1335.6471 2906.3466,-1253.268 2906.3466,-1170 2906.3466,-1170 2906.3466,-1170 2906.3466,-234 2906.3466,-95.2216 2743.9458,-168.4975 2607.3466,-144 2355.3116,-98.8004 2282.3556,-163.3185 2032.3466,-108 2029.3453,-107.3359 2026.2827,-106.5049 2023.2347,-105.5668"/>
+<polygon fill="#000000" stroke="#000000" points="2024.2372,-102.2105 2013.6425,-102.2786 2021.9672,-108.8323 2024.2372,-102.2105"/>
+</g>
+<!-- exeggcute -->
+<g id="node9" class="node">
+<title>exeggcute</title>
+<ellipse fill="none" stroke="#000000" cx="2445.3466" cy="-162" rx="46.2923" ry="18"/>
+<text text-anchor="middle" x="2445.3466" y="-158.3" font-family="Times,serif" font-size="14.00" fill="#000000">exeggcute</text>
+</g>
+<!-- banette&#45;&gt;exeggcute -->
+<g id="edge5" class="edge">
+<title>banette&#45;&gt;exeggcute</title>
+<path fill="none" stroke="#000000" d="M2799.4274,-1368.2344C2810.8508,-1341.4535 2830.3466,-1288.8802 2830.3466,-1242 2830.3466,-1242 2830.3466,-1242 2830.3466,-594 2830.3466,-386.4595 2579.6304,-232.5565 2482.8421,-180.8752"/>
+<polygon fill="#000000" stroke="#000000" points="2484.4475,-177.7649 2473.9696,-176.1945 2481.1812,-183.9562 2484.4475,-177.7649"/>
+</g>
+<!-- registeel -->
+<g id="node13" class="node">
+<title>registeel</title>
+<ellipse fill="none" stroke="#000000" cx="1618.3466" cy="-1242" rx="40.0939" ry="18"/>
+<text text-anchor="middle" x="1618.3466" y="-1238.3" font-family="Times,serif" font-size="14.00" fill="#000000">registeel</text>
+</g>
+<!-- emboar&#45;&gt;registeel -->
+<g id="edge17" class="edge">
+<title>emboar&#45;&gt;registeel</title>
+<path fill="none" stroke="#000000" d="M2526.6051,-1312.2978C2367.6565,-1305.0498 1757.0271,-1276.383 1672.3466,-1260 1667.9154,-1259.1427 1663.3466,-1258.0184 1658.8303,-1256.7496"/>
+<polygon fill="#000000" stroke="#000000" points="1659.6868,-1253.3518 1649.1009,-1253.7889 1657.6488,-1260.0486 1659.6868,-1253.3518"/>
+</g>
+<!-- relicanth -->
+<g id="node14" class="node">
+<title>relicanth</title>
+<ellipse fill="none" stroke="#000000" cx="1782.3466" cy="-522" rx="41.6928" ry="18"/>
+<text text-anchor="middle" x="1782.3466" y="-518.3" font-family="Times,serif" font-size="14.00" fill="#000000">relicanth</text>
+</g>
+<!-- emboar&#45;&gt;relicanth -->
+<g id="edge18" class="edge">
+<title>emboar&#45;&gt;relicanth</title>
+<path fill="none" stroke="#000000" d="M2548.5993,-1297.3378C2526.3385,-1271.9644 2488.3466,-1221.1655 2488.3466,-1170 2488.3466,-1170 2488.3466,-1170 2488.3466,-738 2488.3466,-690.6526 2470.4316,-674.7234 2431.3466,-648 2362.5596,-600.9686 2145.1511,-591.8628 2063.3466,-576 1981.6244,-560.1532 1886.4899,-541.9151 1830.5167,-531.206"/>
+<polygon fill="#000000" stroke="#000000" points="1831.0126,-527.7375 1820.5331,-529.2963 1829.6974,-534.6128 1831.0126,-527.7375"/>
+</g>
+<!-- remoraid -->
+<g id="node15" class="node">
+<title>remoraid</title>
+<ellipse fill="none" stroke="#000000" cx="2128.3466" cy="-522" rx="42.7926" ry="18"/>
+<text text-anchor="middle" x="2128.3466" y="-518.3" font-family="Times,serif" font-size="14.00" fill="#000000">remoraid</text>
+</g>
+<!-- emboar&#45;&gt;remoraid -->
+<g id="edge19" class="edge">
+<title>emboar&#45;&gt;remoraid</title>
+<path fill="none" stroke="#000000" d="M2556.473,-1296.2135C2545.3425,-1269.4059 2526.3466,-1216.799 2526.3466,-1170 2526.3466,-1170 2526.3466,-1170 2526.3466,-738 2526.3466,-696.6022 2529.9573,-678.8452 2502.3466,-648 2458.1899,-598.6706 2267.5663,-552.0143 2176.7766,-532.107"/>
+<polygon fill="#000000" stroke="#000000" points="2177.5153,-528.6859 2167.0001,-529.9822 2176.0287,-535.5262 2177.5153,-528.6859"/>
+</g>
+<!-- rufflet -->
+<g id="node16" class="node">
+<title>rufflet</title>
+<ellipse fill="none" stroke="#000000" cx="2028.3466" cy="-738" rx="32.4942" ry="18"/>
+<text text-anchor="middle" x="2028.3466" y="-734.3" font-family="Times,serif" font-size="14.00" fill="#000000">rufflet</text>
+</g>
+<!-- emboar&#45;&gt;rufflet -->
+<g id="edge20" class="edge">
+<title>emboar&#45;&gt;rufflet</title>
+<path fill="none" stroke="#000000" d="M2531.1863,-1305.1177C2503.8228,-1296.6509 2464.9794,-1281.9161 2436.3466,-1260 2336.5813,-1183.6379 2109.986,-857.4923 2045.6637,-763.465"/>
+<polygon fill="#000000" stroke="#000000" points="2048.4853,-761.3904 2039.9553,-755.1064 2042.7047,-765.3382 2048.4853,-761.3904"/>
+</g>
+<!-- emolga&#45;&gt;audino -->
+<g id="edge21" class="edge">
+<title>emolga&#45;&gt;audino</title>
+<path fill="none" stroke="#000000" d="M1950.4141,-84.9371C1859.029,-72.0609 1617.9913,-38.0987 1518.8671,-24.132"/>
+<polygon fill="#000000" stroke="#000000" points="1519.2799,-20.6557 1508.8894,-22.7262 1518.3032,-27.5873 1519.2799,-20.6557"/>
+</g>
+<!-- exeggcute&#45;&gt;emboar -->
+<g id="edge22" class="edge">
+<title>exeggcute&#45;&gt;emboar</title>
+<path fill="none" stroke="#000000" d="M2488.0673,-168.8477C2541.4091,-178.0989 2628.7705,-195.7785 2654.3466,-216 2794.6397,-326.9217 2792.3466,-415.1543 2792.3466,-594 2792.3466,-1170 2792.3466,-1170 2792.3466,-1170 2792.3466,-1255.3884 2676.6172,-1292.1991 2610.0612,-1306.3086"/>
+<polygon fill="#000000" stroke="#000000" points="2609.3264,-1302.8863 2600.2224,-1308.3056 2610.7188,-1309.7464 2609.3264,-1302.8863"/>
+</g>
+<!-- exeggcute&#45;&gt;emolga -->
+<g id="edge23" class="edge">
+<title>exeggcute&#45;&gt;emolga</title>
+<path fill="none" stroke="#000000" d="M2399.4367,-159.6418C2322.462,-154.8824 2162.9652,-141.5612 2032.3466,-108 2029.5433,-107.2797 2026.6797,-106.4365 2023.8203,-105.5153"/>
+<polygon fill="#000000" stroke="#000000" points="2024.8039,-102.1514 2014.209,-102.148 2022.4893,-108.7577 2024.8039,-102.1514"/>
+</g>
+<!-- bidoof -->
+<g id="node10" class="node">
+<title>bidoof</title>
+<ellipse fill="none" stroke="#000000" cx="3126.3466" cy="-1386" rx="33.5952" ry="18"/>
+<text text-anchor="middle" x="3126.3466" y="-1382.3" font-family="Times,serif" font-size="14.00" fill="#000000">bidoof</text>
+</g>
+<!-- braviary -->
+<g id="node11" class="node">
+<title>braviary</title>
+<ellipse fill="none" stroke="#000000" cx="409.3466" cy="-1098" rx="40.0939" ry="18"/>
+<text text-anchor="middle" x="409.3466" y="-1094.3" font-family="Times,serif" font-size="14.00" fill="#000000">braviary</text>
+</g>
+<!-- braviary&#45;&gt;yamask -->
+<g id="edge6" class="edge">
+<title>braviary&#45;&gt;yamask</title>
+<path fill="none" stroke="#000000" d="M418.4927,-1080.2022C422.7492,-1071.9192 427.9024,-1061.8915 432.613,-1052.7248"/>
+<polygon fill="#000000" stroke="#000000" points="435.848,-1054.08