or download this
sub w{push@n,$_[0]}sub p{pop@n}map{push@L,@C+0;push@C,split//,lc}<>;wh
+ile($n<@C){$_=$C[$n++];if(/n/){$0=0;/-/ or$0=$_+$0*7while($_=index"ht
+aoinse",$C[$n++])<7;w$0}if(/t/){$_=p@n;$_?$n=$L[$_-1]:last if p@n}/a/
+&&push@n,1+grep$n>$_,@L;if(/h/){$_=p@n;$n[$#n-abs];$_>0&&splice@n,@n-
+2-$_,1}/o/&&print+chr(p@n);/s/&w-(p@n)+p@n;$0=p@n,$_=p@n,w(int$_/$0),
+$_%$0if/e/;w($_=getc)?ord:-1if/i/}