// JS1K ヽ(*⌒∇⌒*)ノ
S = b.querySelectorAll("script")[1].innerHTML.split("\n");
so = 0; fs = "fillStyle";
lo = 1; ln = "length";
c.width = W = innerWidth;
c.height = H = S.length*20;
b.style.margin = 0;
b.style.background = "#000";
b.style.overflow = "hidden";
a.textBaseline = "top";
a.font = "12px monospace";
x = setInterval(function() {
a.globalCompositeOperation = "source-over";
a.shadowBlur = 0; a[fs] = "rgba(0,0,0,0.4)";
a.fillRect(0,0,W,H);
a.shadowColor = "rgba(0,255,0,0.5)";
a.shadowBlur = 10; a[fs] = "#060";
a.globalCompositeOperation = "lighter";
S.forEach(function(v, i) {
if (i <= lo) {
if (i == lo) { v = v.substr(0, so); }
a.fillText(v, 100, 100+i*16);
}
});
a[fs] = "#0f0";
a.fillRect(100+a.measureText(S[lo].substr(0, so)).width, 102+lo*16, 10, 14);
so++;
if (so >= S[lo][ln]) { lo++; so = 0; }
if (lo*16 > innerHeight-200) { a.translate(0, -0.5); }
if (lo >= S[ln]-1) { window.clearInterval(x); }
}, 25);
Ly8gSlMxSyDjg70oKuKMkuKIh+KMkiop776JDQoNClMgPSBiLnF1ZXJ5U2VsZWN0b3JBbGwoInNjcmlwdCIpWzFdLmlubmVySFRNTC5zcGxpdCgiXG4iKTsNCg0Kc28gPSAwOyBmcyA9ICJmaWxsU3R5bGUiOw0KbG8gPSAxOyBsbiA9ICJsZW5ndGgiOw0KDQpjLndpZHRoID0gVyA9IGlubmVyV2lkdGg7DQpjLmhlaWdodCA9IEggPSBTLmxlbmd0aCoyMDsNCg0KYi5zdHlsZS5tYXJnaW4gPSAwOw0KYi5zdHlsZS5iYWNrZ3JvdW5kID0gIiMwMDAiOw0KYi5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOw0KDQphLnRleHRCYXNlbGluZSA9ICJ0b3AiOw0KYS5mb250ID0gIjEycHggbW9ub3NwYWNlIjsNCg0KeCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgew0KCWEuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gInNvdXJjZS1vdmVyIjsNCglhLnNoYWRvd0JsdXIgPSAwOyBhW2ZzXSA9ICJyZ2JhKDAsMCwwLDAuNCkiOw0KCWEuZmlsbFJlY3QoMCwwLFcsSCk7DQoNCglhLnNoYWRvd0NvbG9yID0gInJnYmEoMCwyNTUsMCwwLjUpIjsNCglhLnNoYWRvd0JsdXIgPSAxMDsgYVtmc10gPSAiIzA2MCI7DQoJYS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAibGlnaHRlciI7DQoNCglTLmZvckVhY2goZnVuY3Rpb24odiwgaSkgew0KCQlpZiAoaSA8PSBsbykgew0KCQkJaWYgKGkgPT0gbG8pIHsgdiA9IHYuc3Vic3RyKDAsIHNvKTsgfQ0KCQkJYS5maWxsVGV4dCh2LCAxMDAsIDEwMCtpKjE2KTsNCgkJfQ0KCX0pOw0KDQoJYVtmc10gPSAiIzBmMCI7DQoJYS5maWxsUmVjdCgxMDArYS5tZWFzdXJlVGV4dChTW2xvXS5zdWJzdHIoMCwgc28pKS53aWR0aCwgMTAyK2xvKjE2LCAxMCwgMTQpOw0KCXNvKys7DQoNCglpZiAoc28gPj0gU1tsb11bbG5dKSB7IGxvKys7IHNvID0gMDsgfQ0KCWlmIChsbyoxNiA+IGlubmVySGVpZ2h0LTIwMCkgeyBhLnRyYW5zbGF0ZSgwLCAtMC41KTsgfQ0KCWlmIChsbyA+PSBTW2xuXS0xKSB7IHdpbmRvdy5jbGVhckludGVydmFsKHgpOyB9DQp9LCAyNSk7
Original source not submitted