-
-
Save susisu/78680a69a82c82000d7206c3403c6f79 to your computer and use it in GitHub Desktop.
Brainfuck interpreter written in Grass
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
wvwwWWWwwvwwvwwWWwwWwwvwwWWWwWWWwvwWWwWWWwwWwwvwWwvwwwWWWwwWwwWWWWWWwvwwwWWWwwWw | |
wWWWWwvwwwWWwwwWWwvwwwWWWWWWWWWWWWwWWWWwwwWwwWwwwwwwwwwwwwwwwwvwwWWWWwWWWwWWWWWW | |
WWWWWWWWWwvwWWWwWWWwWWWWWWWWWWWWWWWwvwwwwWWWwwWWWWWwwwWwwwWWWwvwwwwWWWWwwWWWWwWw | |
wwvwWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwvwWwwWwwwwwwwwwwwwwwwwwvWWWWWWWWWwwwwwwwwwwwww | |
wwWWWWWWWWWWwWWWWWwWwwWWWWWWWwWwwwwWWWWWWWWWwWwwwwwwWWWWWWWWWWWwWwwwwwwwwWWWWWWW | |
WWWWWWwWwwwwwwwwwwWWWWWWWWWWWWWWWwWwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWWWW | |
WWWWWWWWWWWWWWwwwwwwWwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwWwwww | |
wwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwww | |
wwWwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwWwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWw | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwww | |
wwwwwWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwvwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwWWWWWWWWWWWWWWWWWWWWWW | |
Wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwWwwvWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvwWWWWWWWWWWWWWWWWWWWWWWWwvwwWWwvwwwwWWwwwwWwwwwv | |
wWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwvwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvwwWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwvwWwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvwwwwWWWWWWWwwwWWWWWwWWWWWWW | |
WWWwwwwwWWWWWWWWWWWWwWwwwwwwWWWWwvwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwWWWWWWWwwwwwWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWwWwwwWwwwwwvwwWWWwWWWwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwWWWWwWWWwWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWwvwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwWwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwvwwwwWwwwwWwwwwWwwwwvwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwvwWwwvwwwwWWWWWWW | |
wwwWwwwwwWwwwvwwWWWwWWWwvwwwWWWWWWWWWWWWWWWWWWwwWwwwwWWWWWWWWWWwWWWWWWWWWWWWWWWW | |
WWWWwwwwWWwWWWWWWWWWWWWWWWWWWWWWwwwwwwWWwvwWwwvwwwWWWWWWWWWWWWWWWWWWwwwWWWWWWWWW | |
WWwWWWWWWWWWWWWWWWWWWWWWwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwWwwwwwwWWWwvwWwwvw | |
wwWWWWWWWWWWWWwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWWwWwwwwvwWwwvwwwWWWWWWWWWWWWWWw | |
wwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWWwWwwwwvwWwwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWwww | |
WWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWwvwwWWWWWWWWWWWWWWWWWWWWWWWWwwvwwww | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWwvwwwwW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwWwwwwwvw | |
wwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWWWWWwWwwwwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwWWwWwwwwwwwwwvw | |
wwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
wwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWwWwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwww | |
WWwvwwwwwwwWWWWWwWWWWWWWWWWwWWWWWwwwWWWWWWWwwwwWWwWWWWwWWWWWWWWWWWWwWWWWWWWWWwww | |
wwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWwvwwwwWWWWWwWWWWWWWwwWWwWWWWWWWwwww | |
WWwWWWWWWWWwwwwwwWWwWWWWWWWWWWWWWWWWWWwwwwwwwwWWWWWWWWWWWWWWWWWwWWWwWWWWWWWWWWWW | |
wwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwWWWW | |
WWwWWWwWWWWWWWWWWwwwWWwWWWWWWWWWWWWWWwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWwvWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwwwwwWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWWwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwWWWWWWWWwWwwwwwwwWwwwwwwwvwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwW | |
WWWWWwWwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwWwwwwwwWWWwvwwwwWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwWwwwwwwwvwwwwwWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWwWwwwwwWwwwwwvwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWwwwwWWWWWWwWwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWW | |
wvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWwWwwwwWwwwwwwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw | |
wWWWWWwWwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWwvwwwwWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWwwwwwwwwWWwvwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWwwwwWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWwWwwwwwwvwwwwwWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWwWwww | |
wwwvwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWWWWWwWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWwwwwwWWwWwwwwwwvwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWwwwwWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWwWwwwwwwvwwwwwWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwww | |
wwWWWWWWWWwWwwwwwwwWwwwwwwwvwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwWWWWWWW | |
wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwWwwwwWWWwWwwwwwwwwvwwwwWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWwWwwwwwwWwwwwwwwwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwWWwvwwwwWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWwWwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWwwwwwwWWwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwWWwvwwwwWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwWWwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWwWwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWwwwwwwWWwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwWWwWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwww | |
WWwvwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWww | |
wwwwwwwwWWWWwWWWWWWwwWWWWWWWWwwwWWWWWWWWWWwwwwWWWWWWWWWWWWwwwwwWWWWWWWWWWWWWWwww | |
wwwWWWWWWWWWWWWWWWWwwwwwwwWWwWWWWwWWWWWWwWWWWWWWWwWWWWWWWWWWwWWWWWWWWWWWWwWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwww | |
wwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWwwwwwwWWwvwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWW | |
WWWWWWWWWWWWwwwWWwWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWwwwwwwWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWwWWWwWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWwWWWwWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw | |
WWWwWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WwWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWwWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwww | |
wwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwww | |
wwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWwWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWW | |
wWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwWWwvwww | |
wwwwwwwwwwwwWWWWWWWWWWWWWwWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWwwwWWwWWWWWWWWWWWWWWWwww | |
wwWWwWWWWWWWWWWWWWWWWwwwwwwwWWwWWWWWWWWWWWWWWWWWwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWww | |
wwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwWW | |
wWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwww | |
wwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwwwwwww | |
wwwwwwwWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWwwWWwWWWWWWWWWWwWWWWWWWWWWWWWWWWWWwwww | |
wWWwWWWWWWWWWWWWWWWWWWWwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWwwwwwwwwwWWwWWWWWWWWWWWWWWW | |
WWWWWWwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWW | |
WwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWW | |
WWWWWWWwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwWWwWW | |
WWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWwww | |
wwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwww | |
WWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwWWWWWWWWWWWWWWWWWWWWWWWwWWWwWWWWWWWWWWWWWW | |
WwwwWWwWWWWWWWWWWWWWWWWWWwwwwwWWwWWWWWWWWWWWWWWWWWWWWWwwwwwwwWWwWWWWWWWWWWWWWWWW | |
WWWWWWWWwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwWWWW | |
WWWWWWWWWWWWWWwWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwWWw | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvwwWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWwwWwwwwWWWWWWwvwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWwWwwwwwwwWwwwwwwvwwWWWWWwWWWwwWWWWWWWwwwWWWWWWwWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWwWWWWW | |
wwWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWwwwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWwwwWWwWwwwwwwwwwwwwvwWWWWwWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwvWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW | |
WWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvwWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWWWWwWwwwwWwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww | |
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* utilities *) | |
let id x = x | |
let true x y = x | |
let false x y = y | |
let const x y = x | |
let fix f = (fun x -> f (fun y -> x x y)) (fun x -> f (fun y -> x x y)) | |
let do p = p p | |
let nothing = id | |
let if c a b = do (c a b) | |
(* church numerals *) | |
let n0 = fun f x -> x | |
let succ n = fun f x -> f (n f x) | |
let pred n = fun f x -> n (fun g h -> h (g f)) (fun _ -> x) (fun y -> y) | |
let add n m = fun f x -> m f (n f x) | |
let mul n m = fun f x -> m (n f) x | |
let is_zero n = n (fun _ -> false) true | |
let n1 = succ n0 | |
let n2 = succ n1 | |
let n4 = mul n2 n2 | |
let n8 = mul n4 n2 | |
let n16 = mul n8 n2 | |
let n32 = mul n16 n2 | |
let n64 = mul n32 n2 | |
let n128 = mul n64 n2 | |
(* +-><[]., = 43, 45, 62, 60, 91, 93, 46, 44, 33 *) | |
let n33 = succ n32 | |
let n43 = succ (add (add n32 n8) n2) | |
let n44 = succ n43 | |
let n45 = succ n44 | |
let n46 = succ n45 | |
let n60 = add (add (add n32 n16) n8) n4 | |
let n62 = add n60 n2 | |
let n91 = succ (add (add (add n64 n16) n8) n2) | |
let n93 = add n91 n2 | |
let n137 = succ (add n128 n8) | |
let n255 = mul (mul (succ n2) (succ n4)) (succ n16) | |
(* characters *) | |
let NULL = n137 Succ w | |
let PLUS = n43 Succ NULL | |
let MINUS = n45 Succ NULL | |
let LANGLE = n60 Succ NULL | |
let RANGLE = n62 Succ NULL | |
let LBRACKET = n91 Succ NULL | |
let RBRACKET = n93 Succ NULL | |
let PERIOD = n46 Succ NULL | |
let COMMA = n44 Succ NULL | |
let EXCL = n33 Succ NULL | |
(* character operations *) | |
let incr_char c = Succ c | |
let decr_char c = n255 Succ c | |
let NAC = const false | |
let is_char c = c c | |
let is_NULL c = NULL c | |
let eq_char a b = a b | |
(* list *) | |
let nil = fun c n -> n | |
let cons x y = fun c n -> c x y | |
let car xs = xs true NULL | |
let cdr xs = xs false nil | |
let is_nil xs = xs (fun _ _ -> false) true | |
let reverse xs = | |
let itr = fix (fun itr xs ys -> | |
if (is_nil xs) | |
(fun _ -> ys) | |
(fun _ -> itr (cdr xs) (cons (car xs) ys)) | |
) | |
in itr xs nil | |
(* memory *) | |
let mem ls x rs = fun c -> c ls x rs | |
let read m = m (fun _ x _ -> x) | |
let write m x = m (fun ls _ rs -> mem ls x rs) | |
let move_fwd m = m (fun ls x rs -> mem (cons x ls) (car rs) (cdr rs)) | |
let move_bwd m = m (fun ls x rs -> mem (cdr ls) (car ls) (cons x rs)) | |
let incr m = m (fun ls x rs -> mem ls (incr_char x) rs) | |
let decr m = m (fun ls x rs -> mem ls (decr_char x) rs) | |
(* BF interpreter *) | |
let find_end = fix (fun find_end prog depth -> | |
if (is_nil prog) prog (fun _ -> | |
let com = car prog in | |
if (eq_char com LBRACKET) (fun _ -> find_end (cdr prog) (succ depth)) (fun _ -> | |
if (eq_char com RBRACKET) | |
(fun _ -> | |
if (is_zero depth) | |
(fun _ -> cdr prog) | |
(fun _ -> find_end (cdr prog) (pred depth)) | |
) (fun _ -> | |
find_end (cdr prog) depth | |
)) | |
) | |
) | |
let run_bf = fix (fun run_bf prog memory dump -> | |
if (is_nil prog) nothing (fun _ -> | |
let com = car prog in | |
if (eq_char com LBRACKET) | |
(fun _ -> | |
if (is_NULL (read memory)) | |
(fun _ -> run_bf (find_end (cdr prog) n0) memory dump) | |
(fun _ -> run_bf (cdr prog) memory (cons prog dump)) | |
) (fun _ -> | |
if (eq_char com RBRACKET) | |
(fun _ -> | |
if (is_NULL (read memory)) | |
(fun _ -> | |
if (is_nil dump) | |
(fun _ -> run_bf (cdr prog) memory dump) | |
(fun _ -> run_bf (cdr prog) memory (cdr dump)) | |
) | |
(fun _ -> | |
if (is_nil dump) | |
(fun _ -> run_bf (cdr prog) memory dump) | |
(fun _ -> run_bf (car dump) memory (cdr dump)) | |
) | |
) (fun _ -> | |
if (eq_char com PLUS) (fun _ -> run_bf (cdr prog) (incr memory) dump) (fun _ -> | |
if (eq_char com MINUS) (fun _ -> run_bf (cdr prog) (decr memory) dump) (fun _ -> | |
if (eq_char com RANGLE) (fun _ -> run_bf (cdr prog) (move_fwd memory) dump) (fun _ -> | |
if (eq_char com LANGLE) (fun _ -> run_bf (cdr prog) (move_bwd memory) dump) (fun _ -> | |
if (eq_char com PERIOD) (fun _ -> let _ = Out (read memory) in run_bf (cdr prog) memory dump) (fun _ -> | |
if (eq_char com COMMA) (fun _ -> let c = In NULL in run_bf (cdr prog) (write memory c) dump) (fun _ -> | |
run_bf (cdr prog) memory dump | |
)))))))) | |
) | |
) | |
let read_prog = fix (fun read_prog cs -> | |
let c = In NAC in | |
if (is_char c) | |
(fun _ -> | |
if (eq_char c EXCL) | |
(fun _ -> reverse cs) | |
(fun _ -> read_prog (cons c cs)) | |
) | |
(fun _ -> reverse cs) | |
) | |
let init_memory = mem nil NULL nil | |
let main _ = | |
let prog = read_prog nil in | |
run_bf prog init_memory nil |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment