Write a Boolfuck Compiler or Interpreter From now on considering the word "fuck" to be non-profane would be a good idea

Make the smallest compiler or an interpreter for the Brainfuck variant, Boolfuck. It has to be executable in Windows, DOS, or a Unix operating system (so Linux, Mac, OpenBSD etc). Boolfuck is very similar to Brainfuck, and a complete definition can be found here.

Differences from Brainfuck


Works with bits not bytes (each cell is a single bit)
The output character is ; not .       
The input is read in little endian mode and reads a single bit at a time. 
Output is stored to a stream, then outputted in little endian mode


Rules


Use bits for the cells, not bytes
Support the complete list of operations from the official definition:

+  Flips the value of the bit under the pointer.

,  Reads a bit from the input stream, storing it under the pointer. 
   The end-user types information using characters, though. Bytes 
   are read in little-endian order; the first bit read from the 
   character a, for instance, is 1, followed by 0, 0, 0, 0, 1, 1, 
   and finally 0.

;  Outputs the bit under the pointer to the output stream. The bits
   get output in little-endian order, the same order in which they 
   would be input. If the total number of bits output is not a 
   multiple of eight at the end of the program, the last character
   of output gets padded with zeros on the more significant end. If
   the end-of-file character has been input, outputs a zero to the 
   bit under the pointer.

&lt;  This moves the pointer left by one bit.

&gt;  This moves the pointer right by one bit.

[  If the value under the pointer is zero, jumps forward, just past 
   the matching ] character.
]  Jumps back to the matching [ character.


Any character not in the official definition is ignored.
The program must start in the middle of the tape, not on an end.    
The tape must be unbounded in size (infinite in both directions).


Here is a sample Boolfuck program; it outputs Hello, world!:

;;;+;+;;+;+;
+;+;+;+;;+;;+;
;;+;;+;+;;+;
;;+;;+;+;;+;
+;;;;+;+;;+;
;;+;;+;+;+;;
;;;;;+;+;;
+;;;+;+;;;+;
+;;;;+;+;;+;
;+;+;;+;;;+;
;;+;;+;+;;+;
;;+;+;;+;;+;
+;+;;;;+;+;;
;+;+;+;
Perl - 171 bytes

#!perl -0
%h=qw(&lt; --$p &gt; ++$p + $$p^=1 [ while($$p){ ] } ; $o|=$$p&lt;&lt;$g++;$g&amp;=7or$o=!print+chr$o , $f&amp;=7or$_=getc;$$p=1&amp;ord&gt;&gt;$f++);$p=-1e9;eval&lt;ARGV&gt;=~s/./$h{$&amp;};/gr;$g&amp;&amp;print+chr$o


Counting the shebang as 1 byte.

This translates the source into perl, and then evaluates the translation. The target program is taken as a command line argument, input sent to the program should be piped via stdin.

Sample usage:

$ perl boolf.pl hello.blf
Hello, world!




Details

Each of the commands is translated as follows:

&lt; &rArr; --$p;
&gt; &rArr; ++$p;
+ &rArr; $$p^=1;
[ &rArr; while($$p){
] &rArr; }
; &rArr; $o|=$$p&lt;&lt;$g++;$g&amp;=7or$o=!print+chr$o;
, &rArr; $f&amp;=7or$_=getc;$$p=1&amp;ord&gt;&gt;$f++;

Negative integers are valid variable names, which is exploited here. $p, the cell pointer, is initialized as -1000000000, which is approximately at the center of the valid range, -2147483648 .. -1.

I've violated the specification in one regard: output is not printed all at once at the end, but rather as soon as a full byte has been collected. It's slightly longer this way, but I think it's more useful, as it allows for interactive scripts. For example, the Rot13 program below can be run in 'interactive mode', terminating the program with an eof char (^D on linux, ^Z on windows).


  Edit - Demonstration of Endianness
  
  There seems to be some doubt as to whether this interpreter reads bits in the proper (little-endian) order. I offer the following Boolfuck program, which reads a total of 8 bits, one at a time, and outputs each value read as its numeric ascii representation (0 outputs character 48, 1 outputs character 49). Each value is output entirely before the next bit is even read.

,;[+];;;+;;+;;
,;[+];;;+;;+;;
,;[+];;;+;;+;;
,;[+];;;+;;+;;
,;[+];;;+;;+;;
,;[+];;;+;;+;;
,;[+];;;+;;+;;
,;[+];;;+;;+;;

  
  Sample usage:

$ echo a | perl boolf.pl test.blf
10000110

  
  From the problem description:
  "Bytes are read in little-endian order; the first bit read from the character a, for instance, is 1, followed by 0, 0, 0, 0, 1, 1, and finally 0."
  
  According to this description, the bits are read in the proper order.




Stress Testing

First, a script to translate Brainfuck programs into Boolfuck:

#!perl -n0

%h = (
  '+' =&gt; '&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;',
  '-' =&gt; '&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;',
  '&lt;' =&gt; '&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;',
  '&gt;' =&gt; '&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;',
  ',' =&gt; '&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;',
  '.' =&gt; '&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;',
  '[' =&gt; '&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]',
  ']' =&gt; '&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]'
);

$o .= $h{$_} for /./g;
$o =~ s/&lt;(?R)?&gt;//g;
print $o




The Rot13 program from the Brainfuck Wiki Page translates thusly (with slight modification for null byte eof, rather than 255):

,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]
&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;
[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[
&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+
&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;
]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[
&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;
]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;
&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+
[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;
[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]
+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[
+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;[&gt;]+&lt;
[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;
[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+
&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;
&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+
&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]+&lt;&lt;&lt;&lt;&lt;&lt;
&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;
&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;
&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]+&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;,&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]


On a 26 character string, this runs in approximately 0.17 seconds:

$ echo abcdefghijklmnopqrstuvwxyz | timeit perl boolf.pl rot13.blf
nopqrstuvwxyzabcdefghijklm

Elapsed Time:     0:00:00.171




The squares.b from Daniel Cristofani's site:

&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;
&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;
[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]
+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+
]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;
&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[
+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;
&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;[+]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;
+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[
+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[
&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+
&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[
+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;
&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;
&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+
&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;
&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;
+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;
&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]+
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+
&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;
&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;
]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;
&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;
&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;
+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]
&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[
+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;
]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
&gt;[+]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;[&gt;]+&lt;[+&lt;
]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;
&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[&gt;]+&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;
]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;
&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&lt;
&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+]+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;+&lt;&lt;&lt;&lt;
&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;[+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;[&gt;]+&lt;[+&lt;]&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&lt;&lt;&lt;&lt;&lt;&lt;&lt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&lt;&lt;&lt;&lt;&lt;&lt;
&lt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;;&gt;+&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;+[&gt;+]&lt;[&lt;]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;]&lt;[+&lt;]


Runs in about 2.4s:

$ timeit perl boolf.pl out.dat
0
1
4
9
16
25
36
49
64
81
100
121
144
169
196
225
256
289
324
361
400
441
484
529
576
625
676
729
784
841
900
961
1024
1089
1156
1225
1296
1369
1444
1521
1600
1681
1764
1849
1936
2025
2116
2209
2304
2401
2500
2601
2704
2809
2916
3025
3136
3249
3364
3481
3600
3721
3844
3969
4096
4225
4356
4489
4624
4761
4900
5041
5184
5329
5476
5625
5776
5929
6084
6241
6400
6561
6724
6889
7056
7225
7396
7569
7744
7921
8100
8281
8464
8649
8836
9025
9216
9409
9604
9801
10000

Elapsed Time:     0:00:02.421