rubyjs 0.7.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/examples/client_server/README +18 -0
- data/examples/client_server/Rakefile +5 -0
- data/examples/client_server/client.js +749 -0
- data/examples/client_server/client.rb +12 -0
- data/examples/client_server/index.html +7 -0
- data/examples/client_server/server.rb +17 -0
- data/examples/hw/hw.js +234 -216
- data/rubyjs.gemspec +2 -2
- data/src/rubyjs.rb +0 -1
- data/src/rubyjs/compiler.rb +21 -8
- data/src/rubyjs/debug_name_generator.rb +23 -6
- data/src/rubyjs/model.rb +14 -8
- data/test/browser.test.html +1 -1
- data/test/browser.test.js +2337 -1992
- data/test/test_yield.rb +2 -0
- metadata +108 -158
- data/patches/parse_tree.rb.diff +0 -34
- data/vendor/ParseTree-1.7.1-patched/History.txt +0 -217
- data/vendor/ParseTree-1.7.1-patched/Manifest.txt +0 -22
- data/vendor/ParseTree-1.7.1-patched/README.txt +0 -110
- data/vendor/ParseTree-1.7.1-patched/Rakefile +0 -41
- data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_abc +0 -89
- data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_audit +0 -28
- data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_deps +0 -62
- data/vendor/ParseTree-1.7.1-patched/bin/parse_tree_show +0 -49
- data/vendor/ParseTree-1.7.1-patched/demo/printer.rb +0 -20
- data/vendor/ParseTree-1.7.1-patched/lib/composite_sexp_processor.rb +0 -49
- data/vendor/ParseTree-1.7.1-patched/lib/parse_tree.rb +0 -1013
- data/vendor/ParseTree-1.7.1-patched/lib/sexp.rb +0 -235
- data/vendor/ParseTree-1.7.1-patched/lib/sexp_processor.rb +0 -330
- data/vendor/ParseTree-1.7.1-patched/lib/unique.rb +0 -15
- data/vendor/ParseTree-1.7.1-patched/test/pt_testcase.rb +0 -1221
- data/vendor/ParseTree-1.7.1-patched/test/something.rb +0 -53
- data/vendor/ParseTree-1.7.1-patched/test/test_all.rb +0 -13
- data/vendor/ParseTree-1.7.1-patched/test/test_composite_sexp_processor.rb +0 -69
- data/vendor/ParseTree-1.7.1-patched/test/test_parse_tree.rb +0 -216
- data/vendor/ParseTree-1.7.1-patched/test/test_sexp.rb +0 -291
- data/vendor/ParseTree-1.7.1-patched/test/test_sexp_processor.rb +0 -244
- data/vendor/ParseTree-1.7.1-patched/validate.sh +0 -31
- data/vendor/ParseTree-1.7.1/History.txt +0 -217
- data/vendor/ParseTree-1.7.1/Manifest.txt +0 -22
- data/vendor/ParseTree-1.7.1/README.txt +0 -110
- data/vendor/ParseTree-1.7.1/Rakefile +0 -41
- data/vendor/ParseTree-1.7.1/bin/parse_tree_abc +0 -89
- data/vendor/ParseTree-1.7.1/bin/parse_tree_audit +0 -28
- data/vendor/ParseTree-1.7.1/bin/parse_tree_deps +0 -62
- data/vendor/ParseTree-1.7.1/bin/parse_tree_show +0 -49
- data/vendor/ParseTree-1.7.1/demo/printer.rb +0 -20
- data/vendor/ParseTree-1.7.1/lib/composite_sexp_processor.rb +0 -49
- data/vendor/ParseTree-1.7.1/lib/parse_tree.rb +0 -1004
- data/vendor/ParseTree-1.7.1/lib/sexp.rb +0 -235
- data/vendor/ParseTree-1.7.1/lib/sexp_processor.rb +0 -330
- data/vendor/ParseTree-1.7.1/lib/unique.rb +0 -15
- data/vendor/ParseTree-1.7.1/test/pt_testcase.rb +0 -1221
- data/vendor/ParseTree-1.7.1/test/something.rb +0 -53
- data/vendor/ParseTree-1.7.1/test/test_all.rb +0 -13
- data/vendor/ParseTree-1.7.1/test/test_composite_sexp_processor.rb +0 -69
- data/vendor/ParseTree-1.7.1/test/test_parse_tree.rb +0 -216
- data/vendor/ParseTree-1.7.1/test/test_sexp.rb +0 -291
- data/vendor/ParseTree-1.7.1/test/test_sexp_processor.rb +0 -244
- data/vendor/ParseTree-1.7.1/validate.sh +0 -31
| @@ -0,0 +1,17 @@ | |
| 1 | 
            +
            require 'rack'
         | 
| 2 | 
            +
            require 'json'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class JsonHandler
         | 
| 5 | 
            +
              def call(env)
         | 
| 6 | 
            +
                [200, {"Content-Type" => "application/json"},
         | 
| 7 | 
            +
                  JSON.dump([{'Hello' => 'World!'}])]
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
            end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            if __FILE__ == $0
         | 
| 12 | 
            +
              require 'rack/handler/mongrel'
         | 
| 13 | 
            +
              server = Mongrel::HttpServer.new('0.0.0.0', 3000)
         | 
| 14 | 
            +
              server.register('/', Rack::Handler::Mongrel.new(Rack::File.new('.')))
         | 
| 15 | 
            +
              server.register('/json', Rack::Handler::Mongrel.new(JsonHandler.new))
         | 
| 16 | 
            +
              server.run.join
         | 
| 17 | 
            +
            end
         | 
    
        data/examples/hw/hw.js
    CHANGED
    
    | @@ -207,7 +207,7 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 207 207 | 
             
                if (m) 
         | 
| 208 208 | 
             
                  return m.apply(self, [_e].concat(_b));
         | 
| 209 209 | 
             
                else
         | 
| 210 | 
            -
                  return self.$n.apply(self, [_e].concat([_a]).concat(_b));}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==4))return _f.a$a;throw(_f)}},$n: function(_d,_a){var self,_b,_c,_e,_f;_f=nil;self=this;_e=_d==null?nil:_d;try{_b=[];for(_c=2;_c<arguments.length;_c++)_b.push(arguments[_c]);;_f=self.$j(nil,$g,("undefined method `" + (_a).$o() + ("' for ") | 
| 210 | 
            +
                  return self.$n.apply(self, [_e].concat([_a]).concat(_b));}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==4))return _f.a$a;throw(_f)}},$n: function(_d,_a){var self,_b,_c,_e,_f;_f=nil;self=this;_e=_d==null?nil:_d;try{_b=[];for(_c=2;_c<arguments.length;_c++)_b.push(arguments[_c]);;_f=self.$j(nil,$g,("undefined method `" + ((_a).$o()) + ("' for ") + ((self.$i()).$o())));return _f}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==3))return _g.a$a;throw(_g)}},$j: function(){var self,_a,_b,_c,_d;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;_c=((_b=_a.$l(),_b!==false&&_b!==nil)?$c.$a(nil,""):(_d=_a.$k(),((_b=_d.$h(nil,$b),_b!==false&&_b!==nil)?_d.$d(nil,'$a',a$b(_a)):((_b=_d.$m(nil,$f),_b!==false&&_b!==nil)?((_b=_a.$l(),_b!==false&&_b!==nil)?_d:$a.$a(nil,"to many arguments given to raise")):((_b=_d.$m(nil,$e),_b!==false&&_b!==nil)?((_b=_a.$l(),_b!==false&&_b!==nil)?$c.$a(nil,_d):$a.$a(nil,"to many arguments given to raise")):$d.$a(nil,"exception class/object expected"))))));throw(_c)},$q: function(){var self,_a;_a=nil;self=this;_a=false;return _a},$s: function(_a){var self,_b,_c;_c=nil;self=this;_b=_a==null?nil:_a;try{_c=$h.$a(_b);return _c}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==6))return _d.a$a;throw(_d)}},$r: function(_b,_a){var self;self=this;try{
         | 
| 211 211 | 
             
                var m = a$f[_a]; 
         | 
| 212 212 | 
             
                return (m !== undefined && self[m] !== undefined && !self[m].a$i)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==5))return _c.a$a;throw(_c)}},$t: function(){var self,_a,_b,_f;_f=nil;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;_a.$v(function(_c){var _d;var _e=nil;_d=_c==null?nil:_c;_e=self.$u(nil,_d.$i());return _e});_f=nil;return _f},$d: function(_c,_a,_b){var self,_d;self=this;_d=_c==null?nil:_c;try{
         | 
| 213 213 | 
             
                var m = self[_a];
         | 
| @@ -220,25 +220,150 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 220 220 | 
             
                if (m) 
         | 
| 221 221 | 
             
                  return m.apply(self, [_e].concat(_b));
         | 
| 222 222 | 
             
                else
         | 
| 223 | 
            -
                  return self.$n.apply(self, [_e].concat([_a]).concat(_b));}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==8))return _f.a$a;throw(_f)}}}});$k = a$d({a$j: [$i],a$e: nil,a$c: "Object",a$h: {$h: function(_b,_a){var self;self=this;try{return a$i(self, _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==11))return _c.a$a;throw(_c)}},$y: function(_b,_a){var self;self=this;try{return a$i(self, _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 224 | 
            -
                var  | 
| 225 | 
            -
                 | 
| 226 | 
            -
                   | 
| 227 | 
            -
             | 
| 228 | 
            -
                  }  | 
| 229 | 
            -
             | 
| 223 | 
            +
                  return self.$n.apply(self, [_e].concat([_a]).concat(_b));}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==8))return _f.a$a;throw(_f)}}}});$k = a$d({a$j: [$i],a$e: nil,a$c: "Object",a$h: {$h: function(_b,_a){var self;self=this;try{return a$i(self, _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==11))return _c.a$a;throw(_c)}},$y: function(_b,_a){var self;self=this;try{return a$i(self, _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==14))return _c.a$a;throw(_c)}},$n: function(_d,_a){var self,_b,_c,_e,_f;_f=nil;self=this;_e=_d==null?nil:_d;try{_b=[];for(_c=2;_c<arguments.length;_c++)_b.push(arguments[_c]);;_f=self.$j(nil,$g,("undefined method `" + ((_a).$o()) + ("' for ") + ((self.$i()).$o())));return _f}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==13))return _g.a$a;throw(_g)}},$p: function(_d,_a){var self,_b,_c,_e;self=this;_e=_d==null?nil:_d;try{_b=[];for(_c=2;_c<arguments.length;_c++)_b.push(arguments[_c]);;
         | 
| 224 | 
            +
                var m = self[a$f[_a]];
         | 
| 225 | 
            +
                if (m) 
         | 
| 226 | 
            +
                  return m.apply(self, [_e].concat(_b));
         | 
| 227 | 
            +
                else
         | 
| 228 | 
            +
                  return self.$n.apply(self, [_e].concat([_a]).concat(_b));}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==12))return _f.a$a;throw(_f)}},$j: function(){var self,_a,_b,_c,_d;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;_c=((_b=_a.$l(),_b!==false&&_b!==nil)?$c.$a(nil,""):(_d=_a.$k(),((_b=_d.$h(nil,$b),_b!==false&&_b!==nil)?_d.$d(nil,'$a',a$b(_a)):((_b=_d.$m(nil,$f),_b!==false&&_b!==nil)?((_b=_a.$l(),_b!==false&&_b!==nil)?_d:$a.$a(nil,"to many arguments given to raise")):((_b=_d.$m(nil,$e),_b!==false&&_b!==nil)?((_b=_a.$l(),_b!==false&&_b!==nil)?$c.$a(nil,_d):$a.$a(nil,"to many arguments given to raise")):$d.$a(nil,"exception class/object expected"))))));throw(_c)},$z: function(){var self;self=this;return self.a$g},$g: function(_b,_a){var self;self=this;try{return (self.constructor == _a.constructor && self == _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==15))return _c.a$a;throw(_c)}},$B: function(){var self;self=this;return self.toString()},$A: function(_a){var self,_b;_b=nil;self=this;try{_a(self);_b=self;return _b}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==16))return _c.a$a;throw(_c)}},$q: function(){var self,_a;_a=nil;self=this;_a=false;return _a},$o: function(){var self;self=this;return self.toString()},$r: function(_b,_a){var self;self=this;try{
         | 
| 229 | 
            +
                var m = a$f[_a]; 
         | 
| 230 | 
            +
                return (m !== undefined && self[m] !== undefined && !self[m].a$i)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==18))return _c.a$a;throw(_c)}},$s: function(_a){var self,_b,_c;_c=nil;self=this;_b=_a==null?nil:_a;try{_c=$h.$a(_b);return _c}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==17))return _d.a$a;throw(_d)}},$c: function(){var self,_a;_a=nil;self=this;_a=nil;return _a},$C: function(_c,_a){var self,_b;_b=nil;self=this;try{_b=$j.$a(nil,self,_a);return _b}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==19))return _d.a$a;throw(_d)}},$t: function(){var self,_a,_b,_f;_f=nil;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;_a.$v(function(_c){var _d;var _e=nil;_d=_c==null?nil:_c;_e=self.$u(nil,_d.$i());return _e});_f=nil;return _f},$d: function(_c,_a,_b){var self,_d;self=this;_d=_c==null?nil:_c;try{
         | 
| 231 | 
            +
                var m = self[_a];
         | 
| 232 | 
            +
                if (m)
         | 
| 233 | 
            +
                  return m.apply(self, [_d].concat(_b));
         | 
| 234 | 
            +
                else
         | 
| 235 | 
            +
                  return self.$n.apply(self, 
         | 
| 236 | 
            +
                    [_d].concat([a$h[_a]]).concat(_b));}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==20))return _e.a$a;throw(_e)}},$f: function(_d,_a){var self,_b,_c;_c=nil;self=this;try{_c=(_b=self.$g(nil,_a), (_b!==false&&_b!==nil) ? _b : (self.$h(nil,_a)));return _c}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==21))return _e.a$a;throw(_e)}},$m: function(_b,_a){var self;self=this;try{return (self.a$g === _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==25))return _c.a$a;throw(_c)}},$w: function(_d,_a){var self,_b,_c,_e;self=this;_e=_d==null?nil:_d;try{_b=[];for(_c=2;_c<arguments.length;_c++)_b.push(arguments[_c]);;
         | 
| 237 | 
            +
                var m = self[a$f[_a]];
         | 
| 238 | 
            +
                if (m) 
         | 
| 239 | 
            +
                  return m.apply(self, [_e].concat(_b));
         | 
| 240 | 
            +
                else
         | 
| 241 | 
            +
                  return self.$n.apply(self, [_e].concat([_a]).concat(_b));}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==24))return _f.a$a;throw(_f)}},$x: function(_a){var self,_b;_b=nil;self=this;try{while(true){_a()};_b=nil;;return _b}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==23))return _c.a$a;throw(_c)}},$u: function(_b,_a){var self;self=this;try{_a=_a.$o();alert(_a); return nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==22))return _c.a$a;throw(_c)}},$i: function(){var self;self=this;return self.toString()}}});$l = a$d({a$j: [],a$e: nil,a$c: "Enumerable",a$h: {$D: function(_a){var self,_b,_c,_f,_h;_h=nil;self=this;_b=_a==null?nil:_a;try{_c=[];self.$v(function(_d){var _e;var _g=nil;_e=_d==null?nil:_d;_g=_c.$E(nil,((_f=_b,_f!==false&&_f!==nil)?_b.$F(nil,_e):_e));return _g});_h=_c;return _h}catch(_i){if(_i instanceof a$c && (!_i.a$b || _i.a$b==26))return _i.a$a;throw(_i)}},$G: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e!==false&&_e!==nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==27))return _h.a$a;throw(_h)}},$H: function(_a){var self,_b,_c,_f,_h;_h=nil;self=this;_b=_a==null?nil:_a;try{_c=[];self.$v(function(_d){var _e;var _g=nil;_e=_d==null?nil:_d;_g=_c.$E(nil,((_f=_b,_f!==false&&_f!==nil)?_b.$F(nil,_e):_e));return _g});_h=_c;return _h}catch(_i){if(_i instanceof a$c && (!_i.a$b || _i.a$b==28))return _i.a$a;throw(_i)}},$I: function(){var self,_a,_e;_e=nil;self=this;_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;_d=_a.$E(nil,_c);return _d});_e=_a;return _e},$J: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e===false||_e===nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==29))return _h.a$a;throw(_h)}},$K: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e!==false&&_e!==nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==30))return _h.a$a;throw(_h)}}}});$m = a$d({a$j: [$l],a$e: $k,a$f: {$Q: function(){var self,_a,_b,_c;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;if((_b=_a.$R().$S(nil,2).$T(nil,0),_b===false||_b===nil)){self.$j(nil,$a)};_c=self.$b();
         | 
| 242 | 
            +
                // 
         | 
| 243 | 
            +
                // we use an associate array to store the items. But unlike
         | 
| 244 | 
            +
                // Javascript, the entries are arrays which contain the collisions.
         | 
| 245 | 
            +
                // NOTE that we have to prefix the hash code with a prefix so that
         | 
| 246 | 
            +
                // there are no collisions with methods etc.   
         | 
| 247 | 
            +
                // I prefix it for now with ":".
         | 
| 248 | 
            +
                //
         | 
| 249 | 
            +
                var items = {};
         | 
| 250 | 
            +
                var hashed_key, current_key, current_val;
         | 
| 251 | 
            +
               
         | 
| 252 | 
            +
                for (var i = 0; i < _a.length; i += 2)
         | 
| 253 | 
            +
                {
         | 
| 254 | 
            +
                  current_key = _a[i];
         | 
| 255 | 
            +
                  current_val = _a[i+1];
         | 
| 256 | 
            +
                  hashed_key = ":" + current_key.$B();
         | 
| 257 | 
            +
             | 
| 258 | 
            +
                  // make sure that a bucket exists
         | 
| 259 | 
            +
                  if (!items[hashed_key]) items[hashed_key] = [];
         | 
| 260 | 
            +
             | 
| 261 | 
            +
                  items[hashed_key].push(current_key, current_val);
         | 
| 262 | 
            +
                }
         | 
| 263 | 
            +
             | 
| 264 | 
            +
                _c.a$k = items; 
         | 
| 265 | 
            +
                _c.a$l = nil;
         | 
| 266 | 
            +
                return _c;
         | 
| 267 | 
            +
                },$U: function(_d,_a){var self,_b,_c;_c=nil;self=this;try{_c=_b=self.$a();return _c}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==39))return _e.a$a;throw(_e)}}},a$c: "Hash",a$h: {$M: function(_b,_a){var self;self=this;try{
         | 
| 268 | 
            +
                if (!self.a$k)
         | 
| 269 | 
            +
                {
         | 
| 270 | 
            +
                  // this is a Javascript Object, not a RubyJS Hash object.
         | 
| 271 | 
            +
                  // we directly look the key up. it's fast but not Ruby-like,
         | 
| 272 | 
            +
                  // so be careful!
         | 
| 273 | 
            +
                  
         | 
| 274 | 
            +
                  var elem = self[_a];
         | 
| 275 | 
            +
                  return (elem == null ? nil : elem);
         | 
| 276 | 
            +
                }
         | 
| 277 | 
            +
             | 
| 278 | 
            +
                var hashed_key = ":" + _a.$B();
         | 
| 279 | 
            +
                var bucket = self.a$k[hashed_key];
         | 
| 280 | 
            +
             | 
| 281 | 
            +
                if (bucket)
         | 
| 282 | 
            +
                {
         | 
| 283 | 
            +
                  //
         | 
| 284 | 
            +
                  // find the matching element inside the bucket
         | 
| 285 | 
            +
                  //
         | 
| 286 | 
            +
             | 
| 287 | 
            +
                  for (var i = 0; i < bucket.length; i += 2)
         | 
| 288 | 
            +
                  {
         | 
| 289 | 
            +
                    if (bucket[i].$g(nil,_a))
         | 
| 290 | 
            +
                      return bucket[i+1];
         | 
| 230 291 | 
             
                  }
         | 
| 231 | 
            -
                } | 
| 232 | 
            -
             | 
| 233 | 
            -
                 | 
| 234 | 
            -
             | 
| 235 | 
            -
             | 
| 236 | 
            -
             | 
| 237 | 
            -
             | 
| 238 | 
            -
                   | 
| 239 | 
            -
                  ' | 
| 240 | 
            -
             | 
| 241 | 
            -
             | 
| 292 | 
            +
                }
         | 
| 293 | 
            +
             | 
| 294 | 
            +
                // no matching key found -> return default value
         | 
| 295 | 
            +
                return self.a$l;
         | 
| 296 | 
            +
                }catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==31))return _c.a$a;throw(_c)}},$L: function(){var self,_b,_f;_b=_f=nil;self=this;_f=self.$H(function(_a){var _c,_d;var _e=nil;(_b=a$j(_a),_c=_b[0]==null?nil:_b[0],_d=_b[1]==null?nil:_b[1],_b);_e=_c;return _e});return _f},$D: function(_a){var self,_b,_c,_f,_h;_h=nil;self=this;_b=_a==null?nil:_a;try{_c=[];self.$v(function(_d){var _e;var _g=nil;_e=_d==null?nil:_d;_g=_c.$E(nil,((_f=_b,_f!==false&&_f!==nil)?_b.$F(nil,_e):_e));return _g});_h=_c;return _h}catch(_i){if(_i instanceof a$c && (!_i.a$b || _i.a$b==32))return _i.a$a;throw(_i)}},$o: function(){var self,_a,_c,_g;_c=_g=nil;self=this;_a=[];self.$v(function(_b){var _d,_e;var _f=nil;(_c=a$j(_b),_d=_c[0]==null?nil:_c[0],_e=_c[1]==null?nil:_c[1],_c);_a.$E(nil,_d);_f=_a.$E(nil,_e);return _f});_g=_a.$N(nil,"");return _g},$O: function(_c,_a,_b){var self;self=this;try{
         | 
| 297 | 
            +
                if (!self.a$k)
         | 
| 298 | 
            +
                {
         | 
| 299 | 
            +
                  // this is a Javascript Object, not a RubyJS Hash object.
         | 
| 300 | 
            +
                  // we directly look the key up. it's fast but not Ruby-like,
         | 
| 301 | 
            +
                  // so be careful!
         | 
| 302 | 
            +
                  
         | 
| 303 | 
            +
                  self[_a] = _b;
         | 
| 304 | 
            +
                  return _b; 
         | 
| 305 | 
            +
                }
         | 
| 306 | 
            +
             | 
| 307 | 
            +
                var hashed_key = ":" + _a.$B();
         | 
| 308 | 
            +
                var bucket = self.a$k[hashed_key];
         | 
| 309 | 
            +
             | 
| 310 | 
            +
                if (bucket)
         | 
| 311 | 
            +
                {
         | 
| 312 | 
            +
                  //
         | 
| 313 | 
            +
                  // find the matching element inside the bucket
         | 
| 314 | 
            +
                  //
         | 
| 315 | 
            +
             | 
| 316 | 
            +
                  for (var i = 0; i < bucket.length; i += 2)
         | 
| 317 | 
            +
                  {
         | 
| 318 | 
            +
                    if (bucket[i].$g(nil,_a))
         | 
| 319 | 
            +
                    {
         | 
| 320 | 
            +
                      // overwrite value
         | 
| 321 | 
            +
                      bucket[i+1] = _b;
         | 
| 322 | 
            +
                      return _b;
         | 
| 323 | 
            +
                    }
         | 
| 324 | 
            +
                  }
         | 
| 325 | 
            +
                  // key not found in this bucket. append key, value pair to bucket
         | 
| 326 | 
            +
                  bucket.push(_a, _b);
         | 
| 327 | 
            +
                }
         | 
| 328 | 
            +
                else 
         | 
| 329 | 
            +
                {
         | 
| 330 | 
            +
                  //
         | 
| 331 | 
            +
                  // create new bucket
         | 
| 332 | 
            +
                  //
         | 
| 333 | 
            +
                  self.a$k[hashed_key] = [_a, _b];
         | 
| 334 | 
            +
                }
         | 
| 335 | 
            +
                return _b;
         | 
| 336 | 
            +
                }catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==35))return _d.a$a;throw(_d)}},$v: function(_a){var self;self=this;try{
         | 
| 337 | 
            +
                if (!self.a$k)
         | 
| 338 | 
            +
                {
         | 
| 339 | 
            +
                  // this is a Javascript Object, not a RubyJS Hash object.
         | 
| 340 | 
            +
                  // we directly look the key up. it's fast but not Ruby-like,
         | 
| 341 | 
            +
                  // so be careful!
         | 
| 342 | 
            +
                  var key, value;
         | 
| 343 | 
            +
                  for (key in self)
         | 
| 344 | 
            +
                  {
         | 
| 345 | 
            +
                    value = self[key];;_a([(key == null ? nil : key),(value == null ? nil : value)]);
         | 
| 346 | 
            +
                  }
         | 
| 347 | 
            +
                  
         | 
| 348 | 
            +
                  return nil;
         | 
| 349 | 
            +
                }
         | 
| 350 | 
            +
             | 
| 351 | 
            +
                var key, bucket, i;
         | 
| 352 | 
            +
                for (key in self.a$k)
         | 
| 353 | 
            +
                {
         | 
| 354 | 
            +
                  if (key.charAt(0) == ":")
         | 
| 355 | 
            +
                  {
         | 
| 356 | 
            +
                    bucket = self.a$k[key];
         | 
| 357 | 
            +
                    for (i=0; i<bucket.length; i+=2)
         | 
| 358 | 
            +
                    {;_a([bucket[i],bucket[i+1]]);
         | 
| 359 | 
            +
                    }
         | 
| 360 | 
            +
                  }
         | 
| 361 | 
            +
                }
         | 
| 362 | 
            +
                return nil;
         | 
| 363 | 
            +
                }catch(_b){if(_b instanceof a$c && (!_b.a$b || _b.a$b==34))return _b.a$a;throw(_b)}},$c: function(){var self;self=this;
         | 
| 364 | 
            +
                self.a$k = {}; 
         | 
| 365 | 
            +
                self.a$l = nil;
         | 
| 366 | 
            +
                return nil},$G: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e!==false&&_e!==nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==33))return _h.a$a;throw(_h)}},$P: function(){var self,_b,_f;_b=_f=nil;self=this;_f=self.$H(function(_a){var _c,_d;var _e=nil;(_b=a$j(_a),_c=_b[0]==null?nil:_b[0],_d=_b[1]==null?nil:_b[1],_b);_e=_d;return _e});return _f},$H: function(_a){var self,_b,_c,_f,_h;_h=nil;self=this;_b=_a==null?nil:_a;try{_c=[];self.$v(function(_d){var _e;var _g=nil;_e=_d==null?nil:_d;_g=_c.$E(nil,((_f=_b,_f!==false&&_f!==nil)?_b.$F(nil,_e):_e));return _g});_h=_c;return _h}catch(_i){if(_i instanceof a$c && (!_i.a$b || _i.a$b==36))return _i.a$a;throw(_i)}},$I: function(){var self,_a,_e;_e=nil;self=this;_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;_d=_a.$E(nil,_c);return _d});_e=_a;return _e},$i: function(){var self,_a,_c,_g;_c=_g=nil;self=this;_a="{";_a=(_a)+(self.$H(function(_b){var _d,_e;var _f=nil;(_c=a$j(_b),_d=_c[0]==null?nil:_c[0],_e=_c[1]==null?nil:_c[1],_c);_f=((_d.$i())+("=>"))+(_e.$i());return _f}).$N(nil,", "));_a=(_a)+("}");_g=_a;return _g},$J: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e===false||_e===nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==37))return _h.a$a;throw(_h)}},$K: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e!==false&&_e!==nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==38))return _h.a$a;throw(_h)}}}});$n = a$d({a$j: [],a$e: $k,a$c: "Range",a$h: {$T: function(_e,_a){var self,_b,_c,_d;_d=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;try{if (self.constructor != _a.constructor) return false;;_d=(_b=self.$V.$T(nil,_a.$W()), (_b!==false&&_b!==nil) ? ((_c=self.$X.$T(nil,_a.$Y()), (_c!==false&&_c!==nil) ? (self.$Z.$T(nil,_a.$0())) : _c)) : _b);return _d}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==40))return _f.a$a;throw(_f)}},$1: function(){var self,_a;_a=nil;self=this;if(self.$V==null)self.$V=nil;_a=self.$V;return _a},$g: function(_e,_a){var self,_b,_c,_d;_d=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;try{if (self.constructor != _a.constructor) return false;;_d=(_b=self.$V.$g(nil,_a.$W()), (_b!==false&&_b!==nil) ? ((_c=self.$X.$g(nil,_a.$Y()), (_c!==false&&_c!==nil) ? (self.$Z.$T(nil,_a.$0())) : _c)) : _b);return _d}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==41))return _f.a$a;throw(_f)}},$0: function(){var self,_a;_a=nil;self=this;if(self.$Z==null)self.$Z=nil;_a=self.$Z;return _a},$Y: function(){var self,_a;_a=nil;self=this;if(self.$X==null)self.$X=nil;_a=self.$X;return _a},$o: function(){var self,_b,_a;_a=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;if((_b=self.$Z,_b!==false&&_b!==nil)){_a=("" + ((self.$V).$o()) + ("...") + ((self.$X).$o()))}else{_a=("" + ((self.$V).$o()) + ("..") + ((self.$X).$o()))};return _a},$v: function(_c){var self,_a,_b,_d;_d=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;try{_a=self.$V;if((_b=(self.$V)>(self.$X),_b!==false&&_b!==nil)){return nil};if((_b=self.$Z,_b!==false&&_b!==nil)){while((_b=(_a)<(self.$X),_b!==false&&_b!==nil)){_c(_a);_a=_a.$4()};_d=nil;}else{while((_b=(_a)<=(self.$X),_b!==false&&_b!==nil)){_c(_a);_a=_a.$4()};_d=nil;};return _d}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==44))return _e.a$a;throw(_e)}},$3: function(){var self,_a;_a=nil;self=this;if(self.$X==null)self.$X=nil;_a=self.$X;return _a},$W: function(){var self,_a;_a=nil;self=this;if(self.$V==null)self.$V=nil;_a=self.$V;return _a},$2: function(_d,_a){var self,_b,_c;_c=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;try{if((_b=(_a)<(self.$V),_b!==false&&_b!==nil)){return false};if((_b=self.$Z,_b!==false&&_b!==nil)){_c=(_a)<(self.$X)}else{_c=(_a)<=(self.$X)};return _c}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==43))return _e.a$a;throw(_e)}},$c: function(_f,_a,_b,_c){var self,_d,_e;_e=nil;self=this;try{if(_c==null)_c=false;;(_d=[_a,_b],self.$V=_d[0]==null?nil:_d[0],self.$X=_d[1]==null?nil:_d[1],_d);_e=self.$Z=((_d=_c,_d!==false&&_d!==nil)?true:false);return _e}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==42))return _g.a$a;throw(_g)}},$f: function(_d,_a){var self,_b,_c;_c=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;try{if((_b=(_a)<(self.$V),_b!==false&&_b!==nil)){return false};if((_b=self.$Z,_b!==false&&_b!==nil)){_c=(_a)<(self.$X)}else{_c=(_a)<=(self.$X)};return _c}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==45))return _e.a$a;throw(_e)}},$I: function(){var self,_a,_b,_c;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;_a=[];if((_b=(self.$V)>(self.$X),_b!==false&&_b!==nil)){return _a};_c=self.$V;if((_b=self.$Z,_b!==false&&_b!==nil)){while((_b=(_c)<(self.$X),_b!==false&&_b!==nil)){_a.$E(nil,_c);_c=_c.$4()}}else{while((_b=(_c)<=(self.$X),_b!==false&&_b!==nil)){_a.$E(nil,_c);_c=_c.$4()}};return _a},$i: function(){var self,_b,_a;_a=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;if((_b=self.$Z,_b!==false&&_b!==nil)){_a=("" + ((self.$V.$i()).$o()) + ("...") + ((self.$X.$i()).$o()))}else{_a=("" + ((self.$V.$i()).$o()) + ("..") + ((self.$X.$i()).$o()))};return _a},$5: function(_d,_a){var self,_b,_c;_c=nil;self=this;if(self.$Z==null)self.$Z=nil;if(self.$V==null)self.$V=nil;if(self.$X==null)self.$X=nil;try{if((_b=(_a)<(self.$V),_b!==false&&_b!==nil)){return false};if((_b=self.$Z,_b!==false&&_b!==nil)){_c=(_a)<(self.$X)}else{_c=(_a)<=(self.$X)};return _c}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==46))return _e.a$a;throw(_e)}}}});$o = a$d({a$j: [$l],a$e: $k,a$f: {$a: function(){var self;self=this;return []}},a$c: "Array",a$d: Array,a$h: {$7: function(_b,_a){var self;self=this;try{return self.concat(_a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==49))return _c.a$a;throw(_c)}},$E: function(_b,_a){var self;self=this;try{self.push(_a); return self}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==48))return _c.a$a;throw(_c)}},$6: function(_b,_a){var self;self=this;try{
         | 
| 242 367 | 
             
                var del = false;
         | 
| 243 368 | 
             
                for (var i=0; i < self.length; i++)
         | 
| 244 369 | 
             
                {
         | 
| @@ -250,7 +375,7 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 250 375 | 
             
                    if (i < self.length-1) --i; 
         | 
| 251 376 | 
             
                  }
         | 
| 252 377 | 
             
                }
         | 
| 253 | 
            -
                return del ? _a : nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 378 | 
            +
                return del ? _a : nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==47))return _c.a$a;throw(_c)}},$8: function(){var self;self=this;return self.length},$M: function(_b,_a){var self;self=this;try{var v = self[_a]; return (v == null ? nil : v)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==51))return _c.a$a;throw(_c)}},$_: function(){var self;self=this;self.length=0; return self},$g: function(_b,_a){var self;self=this;try{
         | 
| 254 379 | 
             
                if (!(_a instanceof Array)) return false;
         | 
| 255 380 | 
             
                if (self.length != _a.length) return false;  
         | 
| 256 381 |  | 
| @@ -269,77 +394,113 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 269 394 | 
             
                }
         | 
| 270 395 |  | 
| 271 396 | 
             
                return true;
         | 
| 272 | 
            -
                }catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 397 | 
            +
                }catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==50))return _c.a$a;throw(_c)}},$9: function(){var self;self=this;return self.concat().reverse()},$D: function(_a){var self,_b,_c,_f,_h;_h=nil;self=this;_b=_a==null?nil:_a;try{_c=[];self.$v(function(_d){var _e;var _g=nil;_e=_d==null?nil:_d;_g=_c.$E(nil,((_f=_b,_f!==false&&_f!==nil)?_b.$F(nil,_e):_e));return _g});_h=_c;return _h}catch(_i){if(_i instanceof a$c && (!_i.a$b || _i.a$b==52))return _i.a$a;throw(_i)}},$Y: function(){var self;self=this;var v = self[self.length - 1]; return (v == null ? nil : v)},$o: function(){var self,_d;_d=nil;self=this;_d=self.$H(function(_a){var _b;var _c=nil;_b=_a==null?nil:_a;_c=_b.$o();return _c}).$N();return _d},$O: function(_c,_a,_b){var self;self=this;try{return (self[_a] = _b)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==56))return _d.a$a;throw(_d)}},$v: function(_a){var self;self=this;try{
         | 
| 273 398 | 
             
                var elem;
         | 
| 274 399 | 
             
                for (var i=0; i < self.length; i++) {
         | 
| 275 400 | 
             
                  elem = self[i];;_a((elem == null ? nil : elem));}
         | 
| 276 | 
            -
                return self}catch(_b){if(_b instanceof a$c && (!_b.a$b || _b.a$b== | 
| 401 | 
            +
                return self}catch(_b){if(_b instanceof a$c && (!_b.a$b || _b.a$b==55))return _b.a$a;throw(_b)}},$$: function(_a){var self;self=this;try{  
         | 
| 277 402 | 
             
                var elem;
         | 
| 278 403 | 
             
                for (var i=0; i < self.length; i++) {
         | 
| 279 404 | 
             
                  elem = self[i];;_a([(elem == null ? nil : elem),i]);}
         | 
| 280 | 
            -
                return self}catch(_b){if(_b instanceof a$c && (!_b.a$b || _b.a$b== | 
| 405 | 
            +
                return self}catch(_b){if(_b instanceof a$c && (!_b.a$b || _b.a$b==54))return _b.a$a;throw(_b)}},$W: function(){var self;self=this;var v = self[0]; return (v == null ? nil : v)},$G: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e!==false&&_e!==nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==53))return _h.a$a;throw(_h)}},$R: function(){var self;self=this;return self.length},$aa: function(){var self;self=this;
         | 
| 281 406 | 
             
                var elem = self.pop();
         | 
| 282 407 | 
             
                return (elem == null ? nil : elem)},$k: function(){var self;self=this;
         | 
| 283 408 | 
             
                var elem = self.shift();
         | 
| 284 | 
            -
                return (elem == null ? nil : elem)},$l: function(){var self;self=this;return (self.length == 0)},$ | 
| 409 | 
            +
                return (elem == null ? nil : elem)},$H: function(_a){var self,_b,_c,_f,_h;_h=nil;self=this;_b=_a==null?nil:_a;try{_c=[];self.$v(function(_d){var _e;var _g=nil;_e=_d==null?nil:_d;_g=_c.$E(nil,((_f=_b,_f!==false&&_f!==nil)?_b.$F(nil,_e):_e));return _g});_h=_c;return _h}catch(_i){if(_i instanceof a$c && (!_i.a$b || _i.a$b==57))return _i.a$a;throw(_i)}},$l: function(){var self;self=this;return (self.length == 0)},$I: function(){var self,_a,_e;_e=nil;self=this;_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;_d=_a.$E(nil,_c);return _d});_e=_a;return _e},$ac: function(){var self,_a,_b;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;self.push.apply(self, _a); return self},$ab: function(){var self,_a;_a=nil;self=this;_a=self;return _a},$af: function(){var self;self=this;return self.concat()},$i: function(){var self,_a,_e;_e=nil;self=this;_a="[";_a=(_a)+(self.$H(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;_d=_c.$i();return _d}).$N(nil,", "));_a=(_a)+("]");_e=_a;return _e},$ae: function(){var self;self=this;self.reverse(); return self},$ad: function(){var self,_a,_b;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;self.unshift.apply(self, _a); return self},$J: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e===false||_e===nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==58))return _h.a$a;throw(_h)}},$N: function(_i,_a){var self,_b,_d,_h;_h=nil;self=this;try{if(_a==null)_a="";;_b="";self.$$(function(_c){var _e,_f;var _g=nil;(_d=a$j(_c),_e=_d[0]==null?nil:_d[0],_f=_d[1]==null?nil:_d[1],_d);_b=(_b)+(_e.$o());if((_d=_f.$T(nil,(self.$R())-(1)),_d===false||_d===nil)){_g=_b=(_b)+(_a)}else{_g=nil};return _g});_h=_b;return _h}catch(_j){if(_j instanceof a$c && (!_j.a$b || _j.a$b==60))return _j.a$a;throw(_j)}},$K: function(_f){var self,_a,_e,_g;_g=nil;self=this;try{_a=[];self.$v(function(_b){var _c;var _d=nil;_c=_b==null?nil:_b;if((_e=_f(_c),_e!==false&&_e!==nil)){_d=_a.$E(nil,_c)}else{_d=nil};return _d});_g=_a;return _g}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==59))return _h.a$a;throw(_h)}}}});$p = a$d({a$j: [],a$e: $k,a$c: "Boolean",a$d: Boolean,a$h: {$T: function(_b,_a){var self;self=this;try{return (self == _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==61))return _c.a$a;throw(_c)}},$o: function(){var self;self=this;return (self == true ? 'true' : 'false')},$i: function(){var self;self=this;return (self == true ? 'true' : 'false')}}});$q = a$d({a$j: [],a$e: $k,a$c: "Number",a$d: Number,a$h: {$7: function(_b,_a){var self;self=this;try{return self + _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==65))return _c.a$a;throw(_c)}},$T: function(_b,_a){var self;self=this;try{return self == _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==64))return _c.a$a;throw(_c)}},$ah: function(_d,_a){var self,_b,_c;self=this;try{_b=self;while((_c=(_b)>=(_a),_c!==false&&_c!==nil)){_d(_b);_b=(_b)-(1)};return self}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==63))return _e.a$a;throw(_e)}},$ag: function(_d,_a){var self,_b,_c;self=this;try{_b=self;while((_c=(_b)<=(_a),_c!==false&&_c!==nil)){_d(_b);_b=(_b)+(1)};return self}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==62))return _e.a$a;throw(_e)}},$ai: function(_b,_a){var self;self=this;try{return self <= _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==66))return _c.a$a;throw(_c)}},$aj: function(_b,_a){var self;self=this;try{return self - _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==67))return _c.a$a;throw(_c)}},$4: function(){var self;self=this;return self+1},$ak: function(_b,_a){var self;self=this;try{return self / _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==69))return _c.a$a;throw(_c)}},$o: function(_b,_a){var self;self=this;try{if(_a==null)_a=10;;return self.toString(_a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==68))return _c.a$a;throw(_c)}},$S: function(_b,_a){var self;self=this;try{return self % _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==70))return _c.a$a;throw(_c)}},$ao: function(_b,_a){var self;self=this;try{return self & _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==74))return _c.a$a;throw(_c)}},$an: function(_b,_a){var self;self=this;try{return self < _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==73))return _c.a$a;throw(_c)}},$am: function(_c){var self,_a,_b;self=this;try{_a=0;while((_b=(_a)<(self),_b!==false&&_b!==nil)){_c(_a);_a=(_a)+(1)};return self}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==72))return _d.a$a;throw(_d)}},$al: function(_b,_a){var self;self=this;try{return self | _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==71))return _c.a$a;throw(_c)}},$as: function(){var self;self=this;return -self},$ar: function(_b,_a){var self;self=this;try{return self > _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==76))return _c.a$a;throw(_c)}},$aq: function(_b,_a){var self;self=this;try{return self ^ _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==75))return _c.a$a;throw(_c)}},$ap: function(){var self;self=this;return ~self},$at: function(_b,_a){var self;self=this;try{return self >= _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==77))return _c.a$a;throw(_c)}},$i: function(){var self;self=this;return self.toString()},$av: function(_b,_a){var self;self=this;try{return self * _a}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==78))return _c.a$a;throw(_c)}},$au: function(){var self;self=this;return self}}});$r = a$d({a$j: [],a$e: $q,a$c: "Bignum",a$d: Number});$s = a$d({a$j: [],a$e: $q,a$c: "Float",a$d: Number});$h = a$d({a$j: [],a$e: $k,a$f: {$a: function(_a){var self,_b,_c;self=this;_b=_a==null?nil:_a;try{if((_c=_b,_c===false||_c===nil)){self.$j(nil,$a,"tried to create Proc object without a block")};return (function() {
         | 
| 410 | 
            +
                  try {
         | 
| 411 | 
            +
                    return _b.$F.apply(_b, arguments);
         | 
| 412 | 
            +
                  } catch(e) 
         | 
| 413 | 
            +
                  {
         | 
| 414 | 
            +
                    if (e instanceof a$c) 
         | 
| 415 | 
            +
                    {
         | 
| 416 | 
            +
                      if (e.a$b == null)
         | 
| 417 | 
            +
                      {;self.$j(nil,$t,"break from proc-closure");}
         | 
| 418 | 
            +
                      return e.a$a;
         | 
| 419 | 
            +
                    }
         | 
| 420 | 
            +
                    else throw(e);
         | 
| 421 | 
            +
                  }
         | 
| 422 | 
            +
                })}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==79))return _d.a$a;throw(_d)}}},a$c: "Proc",a$d: Function,a$h: {$F: function(){var self,_a,_b;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;
         | 
| 423 | 
            +
                // TODO: use switch/case
         | 
| 424 | 
            +
                if (_a.length == 0) return self();
         | 
| 425 | 
            +
                else if (_a.length == 1) return self(_a[0]);
         | 
| 426 | 
            +
                else return self(_a);}}});$f = a$d({a$j: [],a$e: $k,a$c: "Exception",a$h: {$aw: function(){var self,_a;_a=nil;self=this;if(self.$ax==null)self.$ax=nil;_a=self.$ax;return _a},$o: function(){var self,_a;_a=nil;self=this;if(self.$ax==null)self.$ax=nil;_a=self.$ax;return _a},$c: function(_d,_a){var self,_c,_b;_b=nil;self=this;try{if(_a==null)_a=nil;;if((_c=_a.$q(),_c!==false&&_c!==nil)){_b=self.$ax=self.$z().$e()}else{_b=self.$ax=_a};return _b}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==80))return _e.a$a;throw(_e)}},$i: function(){var self,_a;_a=nil;self=this;if(self.$ax==null)self.$ax=nil;_a=("#<" + ((self.$z().$e()).$o()) + (": ") + ((self.$ax).$o()) + (">"));return _a}}});$u = a$d({a$j: [],a$e: $f,a$c: "StandardError"});$v = a$d({a$j: [],a$e: $u,a$c: "NameError"});$g = a$d({a$j: [],a$e: $v,a$c: "NoMethodError"});$w = a$d({a$j: [],a$e: $k,a$c: "MatchData",a$h: {$c: function(_c,_a){var self,_b;_b=nil;self=this;try{_b=self.$ay=_a;return _b}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==81))return _d.a$a;throw(_d)}}}});a$d({a$j: [],a$g: $b});$e = a$d({a$j: [],a$e: $k,a$c: "String",a$d: String,a$h: {$7: function(_b,_a){var self;self=this;try{return(self + _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==83))return _c.a$a;throw(_c)}},$az: function(_c,_a,_b){var self;self=this;try{self.replace(pattern, replacement)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==82))return _d.a$a;throw(_d)}},$aB: function(_b,_a){var self;self=this;try{
         | 
| 427 | 
            +
                var i = self.search(_a);
         | 
| 428 | 
            +
                return (i == -1 ? nil : i)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==85))return _c.a$a;throw(_c)}},$aA: function(_f,_a,_b){var self,_c,_d,_e;self=this;try{if(_b==null)_b=" ";;if((_c=_b.$l(),_c!==false&&_c!==nil)){self.$j(nil,$a,"zero width padding")};_d=(_a)-(self.$R());if((_c=(_d)<=(0),_c!==false&&_c!==nil)){return self};_e="";while(_e.length < _d) _e += _b;;return (_e.$M(nil,0,_d))+(self)}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==84))return _g.a$a;throw(_g)}},$8: function(){var self;self=this;return self.length},$M: function(_d,_a,_b){var self,_c;self=this;try{if(_b==null)_b=nil;;if((_c=_b.$q(),_c!==false&&_c!==nil)){return self.charAt(_a) || nil}else{if((_c=(_b)<(0),_c!==false&&_c!==nil)){return nil};return self.substring(_a, _a+_b)}}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==87))return _e.a$a;throw(_e)}},$aC: function(_f,_a,_b){var self,_c,_d,_e;self=this;try{if(_b==null)_b=" ";;if((_c=_b.$l(),_c!==false&&_c!==nil)){self.$j(nil,$a,"zero width padding")};_d=(_a)-(self.$R());if((_c=(_d)<=(0),_c!==false&&_c!==nil)){return self};_e="";while(_e.length < _d) _e += _b;;return (self)+(_e.$M(nil,0,_d))}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==86))return _g.a$a;throw(_g)}},$aD: function(_b,_a){var self;self=this;try{return self.split(_a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==88))return _c.a$a;throw(_c)}},$o: function(){var self,_a;_a=nil;self=this;_a=self;return _a},$R: function(){var self;self=this;return self.length},$aE: function(){var self;self=this;return self.replace(/^\s+/, '').replace(/\s+$/, '')},$l: function(){var self;self=this;return(self === "")},$aG: function(_g,_a,_b){var self,_c,_d,_e,_f;self=this;try{if(_b==null)_b=nil;;(_c=["",self,nil],_d=_c[0]==null?nil:_c[0],_e=_c[1]==null?nil:_c[1],_f=_c[2]==null?nil:_c[2],_c);while(_e.length > 0) {
         | 
| 429 | 
            +
                  if (_f = _e.match(_a)) {
         | 
| 430 | 
            +
                    _d += _e.slice(0, _f.index);;if((_c=_b,_c!==false&&_c!==nil)){_d=(_d)+(_b)}else{_d=(_d)+(_g(_f.$W()).$o())};_e = _e.slice(_f.index + _f[0].length);
         | 
| 431 | 
            +
                  } else {
         | 
| 432 | 
            +
                    _d += _e; _e = '';
         | 
| 433 | 
            +
                  }
         | 
| 434 | 
            +
                } return _d}catch(_h){if(_h instanceof a$c && (!_h.a$b || _h.a$b==90))return _h.a$a;throw(_h)}},$aF: function(_c,_a,_b){var self;self=this;try{if(_b==null)_b=0;;
         | 
| 435 | 
            +
                var i = self.indexOf(_a, _b);
         | 
| 436 | 
            +
                return (i == -1) ? nil : i}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==89))return _d.a$a;throw(_d)}},$i: function(){var self,_a,_b;self=this;_a={
         | 
| 437 | 
            +
                  '\b': '\\b',
         | 
| 438 | 
            +
                  '\t': '\\t',
         | 
| 439 | 
            +
                  '\n': '\\n',
         | 
| 440 | 
            +
                  '\f': '\\f',
         | 
| 441 | 
            +
                  '\r': '\\r',
         | 
| 442 | 
            +
                  '\\': '\\\\'
         | 
| 443 | 
            +
                };;_b=self.$aG(function(_c){var _d,_e;_d=_c==null?nil:_c;_e=_a[_d];return _e ? _e : 
         | 
| 444 | 
            +
                    '\\u00' + ("0" + _d.charCodeAt().toString(16)).substring(0,2);},/[\x00-\x1f\\]/);return ('"' + _b.replace(/"/g, '\\"') + '"');}}});$c = a$d({a$j: [],a$e: $u,a$c: "RuntimeError"});$x = a$d({a$j: [],a$e: $k,a$c: "NilClass",a$d: NilClass,a$h: {$aH: function(){var self,_a;_a=nil;self=this;_a=0.0;return _a},$q: function(){var self,_a;_a=nil;self=this;_a=true;return _a},$o: function(){var self,_a;_a=nil;self=this;_a="";return _a},$aI: function(){var self,_a;_a=nil;self=this;_a=0;return _a},$I: function(){var self,_a;_a=nil;self=this;_a=[];return _a},$aJ: function(){var self,_a;_a=nil;self=this;_a=[];return _a},$i: function(){var self,_a;_a=nil;self=this;_a="nil";return _a}}});$j = a$d({a$j: [],a$e: $k,a$c: "Method",a$h: {$c: function(_f,_a,_b){var self,_c,_d,_e;_e=nil;self=this;try{(_c=[_a,_b],self.$aK=_c[0]==null?nil:_c[0],self.$aL=_c[1]==null?nil:_c[1],_c);_d=nil;_d = _a[a$f[_b]];
         | 
| 445 | 
            +
                if (_d==null) _d = nil;;if((_c=_d,_c!==false&&_c!==nil)){_e=self.$aM=_d}else{_e=self.$j(nil,$v,("undefined method `" + ((_b).$o()) + ("' for class `") + ((_a.$z().$e()).$o()) + ("'")))};return _e}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==91))return _g.a$a;throw(_g)}},$F: function(_c){var self,_a,_b,_d;self=this;_d=_c==null?nil:_c;try{_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;return self.$aM.apply(self.$aK, [_d].concat(_a))}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==92))return _e.a$a;throw(_e)}},$i: function(){var self,_a;_a=nil;self=this;if(self.$aK==null)self.$aK=nil;if(self.$aL==null)self.$aL=nil;_a=("#<Method: " + ((self.$aK.$z().$e()).$o()) + ("#") + ((self.$aL).$o()) + (">"));return _a}}});$a = a$d({a$j: [],a$e: $u,a$c: "ArgumentError"});$y = a$d({a$j: [],a$e: $q,a$c: "Fixnum",a$d: Number});$d = a$d({a$j: [],a$e: $u,a$c: "TypeError"});$A = a$d({a$j: [],a$e: $k,a$f: {$aN: function(){var self,_a,_b;_b=nil;self=this;_a=$z.$aO(nil,"out");_b=$z.$aP(nil,_a,"hello world");return _b}},a$c: "HelloWorld"});$z = a$d({a$j: [],a$e: $k,a$f: {$aR: function(_c,_a,_b){var self;self=this;try{if(_b==null)_b="";;
         | 
| 285 446 | 
             
                _a.innerHTML = _b;
         | 
| 286 | 
            -
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 447 | 
            +
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==95))return _d.a$a;throw(_d)}},$aO: function(_b,_a){var self;self=this;try{return document.getElementById(_a) || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==96))return _c.a$a;throw(_c)}},$aQ: function(_d,_a,_b,_c){var self;self=this;try{_a[_b] = _c; return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==94))return _e.a$a;throw(_e)}},$aS: function(_c,_a,_b){var self;self=this;try{
         | 
| 287 448 | 
             
                var ret = _a.style[_b];
         | 
| 288 | 
            -
                return (ret == null) ? nil : ret}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 449 | 
            +
                return (ret == null) ? nil : ret}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==97))return _d.a$a;throw(_d)}},$o: function(_b,_a){var self;self=this;try{return _a.outerHTML}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==93))return _c.a$a;throw(_c)}},$aT: function(_b,_a){var self;self=this;try{
         | 
| 289 450 | 
             
                var sib = _a.nextSibling;
         | 
| 290 451 | 
             
                while (sib && sib.nodeType != 1)
         | 
| 291 452 | 
             
                  sib = sib.nextSibling;
         | 
| 292 | 
            -
                return sib || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 453 | 
            +
                return sib || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==98))return _c.a$a;throw(_c)}},$aU: function(_d,_a){var self,_b,_c;self=this;if(self.$aV==null)self.$aV=nil;try{if((_b=(_c=self.$aV, (_c!==false&&_c!==nil) ? (self.$aW(nil,_a,self.$aV)) : _c),_b!==false&&_b!==nil)){self.$aV=nil};if (_a == window.a$m) window.a$m = null;;return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==99))return _e.a$a;throw(_e)}},$aX: function(_d,_a,_b){var self,_c;self=this;try{if(_b==null)_b=true;;if((_c=_b,_c!==false&&_c!==nil)){_a.style.display = ''}else{_a.style.display = 'none'};return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==100))return _e.a$a;throw(_e)}},$aW: function(_c,_a,_b){var self;self=this;try{return (_a == _b)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==101))return _d.a$a;throw(_d)}},$aY: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"colgroup");return _a},$a0: function(){var self,_a;_a=nil;self=this;_a=self.$a1(nil,"text");return _a},$a2: function(_c,_a,_b){var self;self=this;try{
         | 
| 293 454 | 
             
                var i = parseInt(_a.style[_b]);
         | 
| 294 | 
            -
                return ((!i) ? 0 : i)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 455 | 
            +
                return ((!i) ? 0 : i)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==102))return _d.a$a;throw(_d)}},$a3: function(_b,_a){var self;self=this;try{
         | 
| 295 456 | 
             
                var e = document.createElement("INPUT");
         | 
| 296 457 | 
             
                e.type = 'radio';
         | 
| 297 458 | 
             
                e.name = _a;
         | 
| 298 | 
            -
                return e}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 459 | 
            +
                return e}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==103))return _c.a$a;throw(_c)}},$a4: function(_b,_a){var self;self=this;try{
         | 
| 299 460 | 
             
                // To mimic IEs +innerText+ property in the W3C DOM, we need to recursively
         | 
| 300 461 | 
             
                // concatenate all child text nodes (depth first).
         | 
| 301 462 | 
             
                var text = '', child = _a.firstChild;
         | 
| 302 463 | 
             
                while (child) {
         | 
| 303 464 | 
             
                  // 1 == Element node
         | 
| 304 465 | 
             
                  if (child.nodeType == 1) {
         | 
| 305 | 
            -
                    text += this.$ | 
| 466 | 
            +
                    text += this.$a4(nil, child);
         | 
| 306 467 | 
             
                  } else if (child.nodeValue) {
         | 
| 307 468 | 
             
                    text += child.nodeValue;
         | 
| 308 469 | 
             
                  }
         | 
| 309 470 | 
             
                  child = child.nextSibling;
         | 
| 310 471 | 
             
                }
         | 
| 311 | 
            -
                return text}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 472 | 
            +
                return text}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==104))return _c.a$a;throw(_c)}},$a5: function(_b,_a){var self;self=this;try{self.$aV=_a;window.a$m = _a;;return nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==105))return _c.a$a;throw(_c)}},$a6: function(_b,_a){var self;self=this;try{
         | 
| 312 473 | 
             
                var ret = _a.src;
         | 
| 313 | 
            -
                return (ret == null) ? nil : ret}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 474 | 
            +
                return (ret == null) ? nil : ret}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==106))return _c.a$a;throw(_c)}},$a7: function(_e,_a,_b,_c){var self,_d;_d=nil;self=this;try{self.$a8(nil,_a,"position","absolute");self.$a8(nil,_a,"left",(_b)+("px"));_d=self.$a8(nil,_a,"top",(_c)+("px"));return _d}catch(_f){if(_f instanceof a$c && (!_f.a$b || _f.a$b==107))return _f.a$a;throw(_f)}},$a9: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"tr");return _a},$a_: function(_c,_a,_b){var self;self=this;try{
         | 
| 314 475 | 
             
                var ret = _a[_b];
         | 
| 315 | 
            -
                return (ret == null) ? nil : String(ret)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 476 | 
            +
                return (ret == null) ? nil : String(ret)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==108))return _d.a$a;throw(_d)}},$bb: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"caption");return _a},$bc: function(_c,_a,_b){var self;self=this;try{
         | 
| 316 477 | 
             
                var i = parseInt(_a[_b]);
         | 
| 317 | 
            -
                return ((!i) ? 0 : i)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 318 | 
            -
                _a.a$ | 
| 319 | 
            -
             | 
| 320 | 
            -
                _a.onclick       = (_b & 0x00001) ? window.a$ | 
| 321 | 
            -
                _a.ondblclick    = (_b & 0x00002) ? window.a$ | 
| 322 | 
            -
                _a.onmousedown   = (_b & 0x00004) ? window.a$ | 
| 323 | 
            -
                _a.onmouseup     = (_b & 0x00008) ? window.a$ | 
| 324 | 
            -
                _a.onmouseover   = (_b & 0x00010) ? window.a$ | 
| 325 | 
            -
                _a.onmouseout    = (_b & 0x00020) ? window.a$ | 
| 326 | 
            -
                _a.onmousemove   = (_b & 0x00040) ? window.a$ | 
| 327 | 
            -
                _a.onkeydown     = (_b & 0x00080) ? window.a$ | 
| 328 | 
            -
                _a.onkeypress    = (_b & 0x00100) ? window.a$ | 
| 329 | 
            -
                _a.onkeyup       = (_b & 0x00200) ? window.a$ | 
| 330 | 
            -
                _a.onchange      = (_b & 0x00400) ? window.a$ | 
| 331 | 
            -
                _a.onfocus       = (_b & 0x00800) ? window.a$ | 
| 332 | 
            -
                _a.onblur        = (_b & 0x01000) ? window.a$ | 
| 333 | 
            -
                _a.onlosecapture = (_b & 0x02000) ? window.a$ | 
| 334 | 
            -
                _a.onscroll      = (_b & 0x04000) ? window.a$ | 
| 335 | 
            -
                _a.onload        = (_b & 0x08000) ? window.a$ | 
| 336 | 
            -
                _a.onerror       = (_b & 0x10000) ? window.a$ | 
| 337 | 
            -
                _a.onmousewheel  = (_b & 0x20000) ? window.a$ | 
| 478 | 
            +
                return ((!i) ? 0 : i)}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==110))return _d.a$a;throw(_d)}},$ba: function(_c,_a,_b){var self;self=this;try{
         | 
| 479 | 
            +
                _a.a$n = _b;
         | 
| 480 | 
            +
             | 
| 481 | 
            +
                _a.onclick       = (_b & 0x00001) ? window.a$o : null;
         | 
| 482 | 
            +
                _a.ondblclick    = (_b & 0x00002) ? window.a$o : null;
         | 
| 483 | 
            +
                _a.onmousedown   = (_b & 0x00004) ? window.a$o : null;
         | 
| 484 | 
            +
                _a.onmouseup     = (_b & 0x00008) ? window.a$o : null;
         | 
| 485 | 
            +
                _a.onmouseover   = (_b & 0x00010) ? window.a$o : null;
         | 
| 486 | 
            +
                _a.onmouseout    = (_b & 0x00020) ? window.a$o : null;
         | 
| 487 | 
            +
                _a.onmousemove   = (_b & 0x00040) ? window.a$o : null;
         | 
| 488 | 
            +
                _a.onkeydown     = (_b & 0x00080) ? window.a$o : null;
         | 
| 489 | 
            +
                _a.onkeypress    = (_b & 0x00100) ? window.a$o : null;
         | 
| 490 | 
            +
                _a.onkeyup       = (_b & 0x00200) ? window.a$o : null;
         | 
| 491 | 
            +
                _a.onchange      = (_b & 0x00400) ? window.a$o : null;
         | 
| 492 | 
            +
                _a.onfocus       = (_b & 0x00800) ? window.a$o : null;
         | 
| 493 | 
            +
                _a.onblur        = (_b & 0x01000) ? window.a$o : null;
         | 
| 494 | 
            +
                _a.onlosecapture = (_b & 0x02000) ? window.a$o : null;
         | 
| 495 | 
            +
                _a.onscroll      = (_b & 0x04000) ? window.a$o : null;
         | 
| 496 | 
            +
                _a.onload        = (_b & 0x08000) ? window.a$o : null;
         | 
| 497 | 
            +
                _a.onerror       = (_b & 0x10000) ? window.a$o : null;
         | 
| 498 | 
            +
                _a.onmousewheel  = (_b & 0x20000) ? window.a$o : null;
         | 
| 338 499 |  | 
| 339 | 
            -
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 500 | 
            +
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==109))return _d.a$a;throw(_d)}},$bd: function(_d,_a,_b,_c){var self;self=this;try{_a.setAttribute(_b, _c); return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==111))return _e.a$a;throw(_e)}},$a$: function(){var self;self=this;return document.body.clientWidth},$be: function(_b,_a){var self;self=this;try{return _a.a$n || 0}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==112))return _c.a$a;throw(_c)}},$bg: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"tbody");return _a},$bf: function(_c,_a,_b){var self;self=this;try{_a.src = _b; return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==113))return _d.a$a;throw(_d)}},$a1: function(_b,_a){var self;self=this;try{
         | 
| 340 501 | 
             
                var e = document.createElement("INPUT");
         | 
| 341 502 | 
             
                e.type = _a;
         | 
| 342 | 
            -
                return e}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 503 | 
            +
                return e}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==114))return _c.a$a;throw(_c)}},$bh: function(_b,_a){var self;self=this;try{
         | 
| 343 504 | 
             
                var left = _a.offsetLeft, top = _a.offsetTop;
         | 
| 344 505 | 
             
                var width = _a.offsetWidth, height = _a.offsetHeight;
         | 
| 345 506 |  | 
| @@ -378,11 +539,11 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 378 539 | 
             
                  top += offsetTop - cur.scrollTop;
         | 
| 379 540 | 
             
                  cur = cur.parentNode;
         | 
| 380 541 | 
             
                }
         | 
| 381 | 
            -
                return nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 542 | 
            +
                return nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==115))return _c.a$a;throw(_c)}},$bi: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"legend");return _a},$bj: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"fieldset");return _a},$aZ: function(_b,_a){var self;self=this;try{return document.createElement(_a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==116))return _c.a$a;throw(_c)}},$bl: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"div");return _a},$bm: function(_b,_a){var self;self=this;try{
         | 
| 382 543 | 
             
                var child = _a.firstChild;
         | 
| 383 544 | 
             
                while (child && child.nodeType != 1)
         | 
| 384 545 | 
             
                  child = child.nextSibling;
         | 
| 385 | 
            -
                return child || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 546 | 
            +
                return child || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==117))return _c.a$a;throw(_c)}},$bk: function(){var self;self=this;return document.body.clientHeight},$bn: function(_b,_a){var self;self=this;try{
         | 
| 386 547 | 
             
                var left = 0;
         | 
| 387 548 | 
             
                var curr = _a;
         | 
| 388 549 | 
             
                // This intentionally excludes body which has a null offsetParent.    
         | 
| @@ -394,13 +555,13 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 394 555 | 
             
                  left += _a.offsetLeft;
         | 
| 395 556 | 
             
                  _a = _a.offsetParent;
         | 
| 396 557 | 
             
                }
         | 
| 397 | 
            -
                return left}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 558 | 
            +
                return left}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==118))return _c.a$a;throw(_c)}},$bo: function(_d,_a,_b,_c){var self;self=this;try{_a.insertBefore(_b, _c); return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==119))return _e.a$a;throw(_e)}},$bp: function(_d,_a,_b,_c){var self;self=this;try{var option = _a.options[_c];
         | 
| 398 559 | 
             
                option.text = _b;
         | 
| 399 | 
            -
                return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b== | 
| 560 | 
            +
                return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==120))return _e.a$a;throw(_e)}},$bq: function(_c,_a,_b){var self;self=this;try{_a.removeChild(_b); return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==121))return _d.a$a;throw(_d)}},$br: function(_b,_a){var self;self=this;try{
         | 
| 400 561 | 
             
                var ret = _a.innerHTML;
         | 
| 401 | 
            -
                return (ret == null) ? nil : ret}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 562 | 
            +
                return (ret == null) ? nil : ret}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==122))return _c.a$a;throw(_c)}},$bs: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"td");return _a},$bt: function(){var self,_a;_a=nil;self=this;_a=self.$a1(nil,"password");return _a},$bu: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"textarea");return _a},$bv: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"tfoot");return _a},$bw: function(){var self,_a;_a=nil;self=this;_a=self.$a1(nil,"checkbox");return _a},$by: function(_c,_a,_b){var self;self=this;try{
         | 
| 402 563 | 
             
                var ret = _a.getAttribute(_b);
         | 
| 403 | 
            -
                return (ret == null) ? nil : ret}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 564 | 
            +
                return (ret == null) ? nil : ret}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==124))return _d.a$a;throw(_d)}},$bz: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"form");return _a},$bA: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"button");return _a},$bB: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"label");return _a},$bx: function(_c,_a,_b){var self;self=this;try{_a.a$p = (_b === nil) ? null : _b; return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==123))return _d.a$a;throw(_d)}},$bC: function(_b,_a){var self;self=this;try{return (_a.style.display != 'none')}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==125))return _c.a$a;throw(_c)}},$bD: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"th");return _a},$bE: function(_c,_a,_b){var self;self=this;try{
         | 
| 404 565 | 
             
                var count = 0, child = _a.firstChild;
         | 
| 405 566 | 
             
                while (child) {
         | 
| 406 567 | 
             
                  if (child == _b)
         | 
| @@ -410,12 +571,12 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 410 571 | 
             
                  child = child.nextSibling;
         | 
| 411 572 | 
             
                }
         | 
| 412 573 |  | 
| 413 | 
            -
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 574 | 
            +
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==126))return _d.a$a;throw(_d)}},$bF: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"col");return _a},$bG: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"iframe");return _a},$bH: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"options");return _a},$bI: function(_c,_a,_b){var self;self=this;try{
         | 
| 414 575 | 
             
                var p = _a.parentNode;
         | 
| 415 576 | 
             
                if (!p) return;
         | 
| 416 577 | 
             
                p.insertBefore(_b, _a);
         | 
| 417 578 | 
             
                p.removeChild(_a);
         | 
| 418 | 
            -
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 579 | 
            +
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==127))return _d.a$a;throw(_d)}},$bJ: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"A");return _a},$bK: function(_b,_a){var self;self=this;try{_a.a$p = null; return nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==129))return _c.a$a;throw(_c)}},$aP: function(_c,_a,_b){var self;self=this;try{
         | 
| 419 580 | 
             
                // Remove all children first.
         | 
| 420 581 | 
             
                while (_a.firstChild) {
         | 
| 421 582 | 
             
                  _a.removeChild(_a.firstChild);
         | 
| @@ -424,7 +585,7 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 424 585 | 
             
                if (_b !== nil) {
         | 
| 425 586 | 
             
                  _a.appendChild(document.createTextNode(_b));
         | 
| 426 587 | 
             
                }
         | 
| 427 | 
            -
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 588 | 
            +
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==128))return _d.a$a;throw(_d)}},$bL: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"img");return _a},$a8: function(_d,_a,_b,_c){var self;self=this;try{_a.style[_b] = _c; return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==130))return _e.a$a;throw(_e)}},$bM: function(_c,_a,_b){var self;self=this;try{
         | 
| 428 589 | 
             
                var count = 0, child = _a.firstChild;
         | 
| 429 590 | 
             
                while (child) {
         | 
| 430 591 | 
             
                  var next = child.nextSibling;
         | 
| @@ -436,7 +597,7 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 436 597 | 
             
                  child = next;
         | 
| 437 598 | 
             
                }
         | 
| 438 599 |  | 
| 439 | 
            -
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 600 | 
            +
                return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==131))return _d.a$a;throw(_d)}},$bN: function(){var self;self=this;if(self.$aV==null)self.$aV=nil;return self.$aV},$bO: function(_c,_a,_b){var self;self=this;try{
         | 
| 440 601 | 
             
                while (_b) {
         | 
| 441 602 | 
             
                  if (_a == _b) {
         | 
| 442 603 | 
             
                    return true;
         | 
| @@ -446,14 +607,14 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 446 607 | 
             
                    _b = null;
         | 
| 447 608 | 
             
                  }
         | 
| 448 609 | 
             
                }
         | 
| 449 | 
            -
                return false}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b== | 
| 610 | 
            +
                return false}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==132))return _d.a$a;throw(_d)}},$bP: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"table");return _a},$bQ: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"thead");return _a},$bS: function(_c,_a,_b){var self;self=this;try{return !!_a[_b]}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==134))return _d.a$a;throw(_d)}},$bR: function(_b,_a){var self;self=this;try{
         | 
| 450 611 | 
             
                var count = 0, child = _a.firstChild;
         | 
| 451 612 | 
             
                while (child) {
         | 
| 452 613 | 
             
                  if (child.nodeType == 1)
         | 
| 453 614 | 
             
                    ++count;
         | 
| 454 615 | 
             
                  child = child.nextSibling;
         | 
| 455 616 | 
             
                }
         | 
| 456 | 
            -
                return count}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 617 | 
            +
                return count}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==133))return _c.a$a;throw(_c)}},$bV: function(_c,_a,_b){var self;self=this;try{return !!_a.style[_b]}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==136))return _d.a$a;throw(_d)}},$bU: function(_c,_a,_b){var self;self=this;try{_a.removeAttribute(_b); return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==135))return _d.a$a;throw(_d)}},$bT: function(){var self,_a;_a=nil;self=this;_a=self.$aZ(nil,"span");return _a},$b1: function(_b,_a){var self;self=this;try{
         | 
| 457 618 | 
             
                var top = 0;
         | 
| 458 619 | 
             
                var curr = _a;
         | 
| 459 620 | 
             
                // This intentionally excludes body which has a null offsetParent.    
         | 
| @@ -465,14 +626,14 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 465 626 | 
             
                  top += _a.offsetTop;
         | 
| 466 627 | 
             
                  _a = _a.offsetParent;
         | 
| 467 628 | 
             
                }
         | 
| 468 | 
            -
                return top}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 629 | 
            +
                return top}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==142))return _c.a$a;throw(_c)}},$b0: function(_b,_a){var self;self=this;try{
         | 
| 469 630 | 
             
                var parent = _a.parentNode;
         | 
| 470 631 | 
             
                if(parent == null) {
         | 
| 471 632 | 
             
                  return nil;
         | 
| 472 633 | 
             
                }
         | 
| 473 634 | 
             
                if (parent.nodeType != 1)
         | 
| 474 635 | 
             
                  parent = null;
         | 
| 475 | 
            -
                return parent || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b== | 
| 636 | 
            +
                return parent || nil}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==141))return _c.a$a;throw(_c)}},$bZ: function(_c,_a){var self,_b;_b=nil;self=this;try{self.$a8(nil,_a,"left","");self.$a8(nil,_a,"top","");_b=self.$a8(nil,_a,"position","static");return _b}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==140))return _d.a$a;throw(_d)}},$bY: function(_d,_a){var self,_b,_c;self=this;try{if(_a==null)_a=false;;_b=self.$aZ(nil,"select");if((_c=_a,_c!==false&&_c!==nil)){self.$aQ(nil,_b,"multiple",true)};return _b}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==139))return _e.a$a;throw(_e)}},$bX: function(_c,_a,_b){var self;self=this;try{_a.appendChild(_b); return nil}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==138))return _d.a$a;throw(_d)}},$bW: function(_d,_a,_b,_c){var self;self=this;try{
         | 
| 476 637 | 
             
                var count = 0, child = _a.firstChild, before = null;
         | 
| 477 638 | 
             
                while (child) {
         | 
| 478 639 | 
             
                  if (child.nodeType == 1) {
         | 
| @@ -486,150 +647,7 @@ $b = a$d({a$e: nil,a$f: {$a: function(_e,_a,_b,_c){var self,_d;self=this;try{if( | |
| 486 647 | 
             
                }
         | 
| 487 648 |  | 
| 488 649 | 
             
                _a.insertBefore(_b, before);
         | 
| 489 | 
            -
                return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b== | 
| 490 | 
            -
             | 
| 491 | 
            -
                // we use an associate array to store the items. But unlike
         | 
| 492 | 
            -
                // Javascript, the entries are arrays which contain the collisions.
         | 
| 493 | 
            -
                // NOTE that we have to prefix the hash code with a prefix so that
         | 
| 494 | 
            -
                // there are no collisions with methods etc.   
         | 
| 495 | 
            -
                // I prefix it for now with ":".
         | 
| 496 | 
            -
                //
         | 
| 497 | 
            -
                var items = {};
         | 
| 498 | 
            -
                var hashed_key, current_key, current_val;
         | 
| 499 | 
            -
               
         | 
| 500 | 
            -
                for (var i = 0; i < _a.length; i += 2)
         | 
| 501 | 
            -
                {
         | 
| 502 | 
            -
                  current_key = _a[i];
         | 
| 503 | 
            -
                  current_val = _a[i+1];
         | 
| 504 | 
            -
                  hashed_key = ":" + current_key.$B();
         | 
| 505 | 
            -
             | 
| 506 | 
            -
                  // make sure that a bucket exists
         | 
| 507 | 
            -
                  if (!items[hashed_key]) items[hashed_key] = [];
         | 
| 508 | 
            -
             | 
| 509 | 
            -
                  items[hashed_key].push(current_key, current_val);
         | 
| 510 | 
            -
                }
         | 
| 511 | 
            -
             | 
| 512 | 
            -
                _c.a$o = items; 
         | 
| 513 | 
            -
                _c.a$p = nil;
         | 
| 514 | 
            -
                return _c;
         | 
| 515 | 
            -
                },$bT: function(_d,_a){var self,_b,_c;_c=nil;self=this;try{_c=_b=self.$a();return _c}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==119))return _e.a$a;throw(_e)}}},a$c: "Hash",a$h: {$I: function(_b,_a){var self;self=this;try{
         | 
| 516 | 
            -
                if (!self.a$o)
         | 
| 517 | 
            -
                {
         | 
| 518 | 
            -
                  // this is a Javascript Object, not a RubyJS Hash object.
         | 
| 519 | 
            -
                  // we directly look the key up. it's fast but not Ruby-like,
         | 
| 520 | 
            -
                  // so be careful!
         | 
| 521 | 
            -
                  
         | 
| 522 | 
            -
                  var elem = self[_a];
         | 
| 523 | 
            -
                  return (elem == null ? nil : elem);
         | 
| 524 | 
            -
                }
         | 
| 525 | 
            -
             | 
| 526 | 
            -
                var hashed_key = ":" + _a.$B();
         | 
| 527 | 
            -
                var bucket = self.a$o[hashed_key];
         | 
| 528 | 
            -
             | 
| 529 | 
            -
                if (bucket)
         | 
| 530 | 
            -
                {
         | 
| 531 | 
            -
                  //
         | 
| 532 | 
            -
                  // find the matching element inside the bucket
         | 
| 533 | 
            -
                  //
         | 
| 534 | 
            -
             | 
| 535 | 
            -
                  for (var i = 0; i < bucket.length; i += 2)
         | 
| 536 | 
            -
                  {
         | 
| 537 | 
            -
                    if (bucket[i].$g(nil,_a))
         | 
| 538 | 
            -
                      return bucket[i+1];
         | 
| 539 | 
            -
                  }
         | 
| 540 | 
            -
                }
         | 
| 541 | 
            -
             | 
| 542 | 
            -
                // no matching key found -> return default value
         | 
| 543 | 
            -
                return self.a$p;
         | 
| 544 | 
            -
                }catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==116))return _c.a$a;throw(_c)}},$bQ: function(){var self,_b,_f;_b=_f=nil;self=this;_f=self.$U(function(_a){var _c,_d;var _e=nil;(_b=a$j(_a),_c=_b[0]==null?nil:_b[0],_d=_b[1]==null?nil:_b[1],_b);_e=_c;return _e});return _f},$o: function(){var self,_a,_c,_g;_c=_g=nil;self=this;_a=[];self.$v(function(_b){var _d,_e;var _f=nil;(_c=a$j(_b),_d=_c[0]==null?nil:_c[0],_e=_c[1]==null?nil:_c[1],_c);_a.$R(nil,_d);_f=_a.$R(nil,_e);return _f});_g=_a.$1(nil,"");return _g},$4: function(_c,_a,_b){var self;self=this;try{
         | 
| 545 | 
            -
                if (!self.a$o)
         | 
| 546 | 
            -
                {
         | 
| 547 | 
            -
                  // this is a Javascript Object, not a RubyJS Hash object.
         | 
| 548 | 
            -
                  // we directly look the key up. it's fast but not Ruby-like,
         | 
| 549 | 
            -
                  // so be careful!
         | 
| 550 | 
            -
                  
         | 
| 551 | 
            -
                  self[_a] = _b;
         | 
| 552 | 
            -
                  return _b; 
         | 
| 553 | 
            -
                }
         | 
| 554 | 
            -
             | 
| 555 | 
            -
                var hashed_key = ":" + _a.$B();
         | 
| 556 | 
            -
                var bucket = self.a$o[hashed_key];
         | 
| 557 | 
            -
             | 
| 558 | 
            -
                if (bucket)
         | 
| 559 | 
            -
                {
         | 
| 560 | 
            -
                  //
         | 
| 561 | 
            -
                  // find the matching element inside the bucket
         | 
| 562 | 
            -
                  //
         | 
| 563 | 
            -
             | 
| 564 | 
            -
                  for (var i = 0; i < bucket.length; i += 2)
         | 
| 565 | 
            -
                  {
         | 
| 566 | 
            -
                    if (bucket[i].$g(nil,_a))
         | 
| 567 | 
            -
                    {
         | 
| 568 | 
            -
                      // overwrite value
         | 
| 569 | 
            -
                      bucket[i+1] = _b;
         | 
| 570 | 
            -
                      return _b;
         | 
| 571 | 
            -
                    }
         | 
| 572 | 
            -
                  }
         | 
| 573 | 
            -
                  // key not found in this bucket. append key, value pair to bucket
         | 
| 574 | 
            -
                  bucket.push(_a, _b);
         | 
| 575 | 
            -
                }
         | 
| 576 | 
            -
                else 
         | 
| 577 | 
            -
                {
         | 
| 578 | 
            -
                  //
         | 
| 579 | 
            -
                  // create new bucket
         | 
| 580 | 
            -
                  //
         | 
| 581 | 
            -
                  self.a$o[hashed_key] = [_a, _b];
         | 
| 582 | 
            -
                }
         | 
| 583 | 
            -
                return _b;
         | 
| 584 | 
            -
                }catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==118))return _d.a$a;throw(_d)}},$v: function(_a){var self;self=this;try{
         | 
| 585 | 
            -
                if (!self.a$o)
         | 
| 586 | 
            -
                {
         | 
| 587 | 
            -
                  // this is a Javascript Object, not a RubyJS Hash object.
         | 
| 588 | 
            -
                  // we directly look the key up. it's fast but not Ruby-like,
         | 
| 589 | 
            -
                  // so be careful!
         | 
| 590 | 
            -
                  var key, value;
         | 
| 591 | 
            -
                  for (key in self)
         | 
| 592 | 
            -
                  {
         | 
| 593 | 
            -
                    value = self[key];;_a([(key == null ? nil : key),(value == null ? nil : value)]);
         | 
| 594 | 
            -
                  }
         | 
| 595 | 
            -
                  
         | 
| 596 | 
            -
                  return nil;
         | 
| 597 | 
            -
                }
         | 
| 598 | 
            -
             | 
| 599 | 
            -
                var key, bucket, i;
         | 
| 600 | 
            -
                for (key in self.a$o)
         | 
| 601 | 
            -
                {
         | 
| 602 | 
            -
                  if (key.charAt(0) == ":")
         | 
| 603 | 
            -
                  {
         | 
| 604 | 
            -
                    bucket = self.a$o[key];
         | 
| 605 | 
            -
                    for (i=0; i<bucket.length; i+=2)
         | 
| 606 | 
            -
                    {;_a([bucket[i],bucket[i+1]]);
         | 
| 607 | 
            -
                    }
         | 
| 608 | 
            -
                  }
         | 
| 609 | 
            -
                }
         | 
| 610 | 
            -
                return nil;
         | 
| 611 | 
            -
                }catch(_b){if(_b instanceof a$c && (!_b.a$b || _b.a$b==117))return _b.a$a;throw(_b)}},$c: function(){var self;self=this;
         | 
| 612 | 
            -
                self.a$o = {}; 
         | 
| 613 | 
            -
                self.a$p = nil;
         | 
| 614 | 
            -
                return nil},$bR: function(){var self,_b,_f;_b=_f=nil;self=this;_f=self.$U(function(_a){var _c,_d;var _e=nil;(_b=a$j(_a),_c=_b[0]==null?nil:_b[0],_d=_b[1]==null?nil:_b[1],_b);_e=_d;return _e});return _f},$i: function(){var self,_a,_c,_g;_c=_g=nil;self=this;_a="{";_a=(_a)+(self.$U(function(_b){var _d,_e;var _f=nil;(_c=a$j(_b),_d=_c[0]==null?nil:_c[0],_e=_c[1]==null?nil:_c[1],_c);_f=((_d.$i())+("=>"))+(_e.$i());return _f}).$1(nil,", "));_a=(_a)+("}");_g=_a;return _g}}});$u = a$d({a$j: [],a$e: $k,a$c: "Regexp",a$d: RegExp});$c = a$d({a$j: [],a$e: $p,a$c: "RuntimeError"});$v = a$d({a$j: [],a$e: $r,a$c: "Fixnum",a$d: Number});$h = a$d({a$j: [],a$e: $k,a$f: {$a: function(_a){var self,_b,_c;self=this;_b=_a==null?nil:_a;try{if((_c=_b,_c===false||_c===nil)){self.$j(nil,$a,"tried to create Proc object without a block")};return (function() {
         | 
| 615 | 
            -
                  try {
         | 
| 616 | 
            -
                    return _b.$S.apply(_b, arguments);
         | 
| 617 | 
            -
                  } catch(e) 
         | 
| 618 | 
            -
                  {
         | 
| 619 | 
            -
                    if (e instanceof a$c) 
         | 
| 620 | 
            -
                    {
         | 
| 621 | 
            -
                      if (e.a$b == null)
         | 
| 622 | 
            -
                      {;self.$j(nil,$w,"break from proc-closure");}
         | 
| 623 | 
            -
                      return e.a$a;
         | 
| 624 | 
            -
                    }
         | 
| 625 | 
            -
                    else throw(e);
         | 
| 626 | 
            -
                  }
         | 
| 627 | 
            -
                })}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==120))return _d.a$a;throw(_d)}}},a$c: "Proc",a$d: Function,a$h: {$S: function(){var self,_a,_b;self=this;_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;
         | 
| 628 | 
            -
                // TODO: use switch/case
         | 
| 629 | 
            -
                if (_a.length == 0) return self();
         | 
| 630 | 
            -
                else if (_a.length == 1) return self(_a[0]);
         | 
| 631 | 
            -
                else return self(_a);}}});$w = a$d({a$j: [],a$e: $p,a$c: "LocalJumpError"});$x = a$d({a$j: [],a$e: $r,a$c: "Float",a$d: Number});$y = a$d({a$j: [],a$e: $k,a$c: "NilClass",a$d: NilClass,a$h: {$bU: function(){var self,_a;_a=nil;self=this;_a=0.0;return _a},$q: function(){var self,_a;_a=nil;self=this;_a=true;return _a},$o: function(){var self,_a;_a=nil;self=this;_a="";return _a},$bV: function(){var self,_a;_a=nil;self=this;_a=0;return _a},$V: function(){var self,_a;_a=nil;self=this;_a=[];return _a},$bW: function(){var self,_a;_a=nil;self=this;_a=[];return _a},$i: function(){var self,_a;_a=nil;self=this;_a="nil";return _a}}});$j = a$d({a$j: [],a$e: $k,a$c: "Method",a$h: {$c: function(_f,_a,_b){var self,_c,_d,_e;_e=nil;self=this;try{(_c=[_a,_b],self.$bX=_c[0]==null?nil:_c[0],self.$bY=_c[1]==null?nil:_c[1],_c);_d=nil;_d = _a[a$f[_b]];
         | 
| 632 | 
            -
                if (_d==null) _d = nil;;if((_c=_d,_c!==false&&_c!==nil)){_e=self.$bZ=_d}else{_e=self.$j(nil,$q,("undefined method `" + (_b).$o() + ("' for class `").$o() + (_a.$z().$e()).$o() + ("'").$o()))};return _e}catch(_g){if(_g instanceof a$c && (!_g.a$b || _g.a$b==121))return _g.a$a;throw(_g)}},$S: function(_c){var self,_a,_b,_d;self=this;_d=_c==null?nil:_c;try{_a=[];for(_b=1;_b<arguments.length;_b++)_a.push(arguments[_b]);;return self.$bZ.apply(self.$bX, [_d].concat(_a))}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==122))return _e.a$a;throw(_e)}},$i: function(){var self,_a;_a=nil;self=this;if(self.$bX==null)self.$bX=nil;if(self.$bY==null)self.$bY=nil;_a=("#<Method: " + (self.$bX.$z().$e()).$o() + ("#").$o() + (self.$bY).$o() + (">").$o());return _a}}});$z = a$d({a$j: [],a$e: $k,a$c: "MatchData",a$h: {$c: function(_c,_a){var self,_b;_b=nil;self=this;try{_b=self.$b0=_a;return _b}catch(_d){if(_d instanceof a$c && (!_d.a$b || _d.a$b==123))return _d.a$a;throw(_d)}}}});$A = a$d({a$j: [],a$e: $k,a$f: {$b1: function(){var self,_a,_b;_b=nil;self=this;_a=$n.$ac(nil,"out");_b=$n.$a6(nil,_a,"hello world");return _b}},a$c: "HelloWorld"});$B = a$d({a$j: [],a$e: $k,a$c: "Boolean",a$d: Boolean,a$h: {$$: function(_b,_a){var self;self=this;try{return (self == _a)}catch(_c){if(_c instanceof a$c && (!_c.a$b || _c.a$b==124))return _c.a$a;throw(_c)}},$o: function(){var self;self=this;return (self == true ? 'true' : 'false')},$i: function(){var self;self=this;return (self == true ? 'true' : 'false')}}});$a = a$d({a$j: [],a$e: $p,a$c: "ArgumentError"});      $b.a$e = $k;
         | 
| 633 | 
            -
            var a$k = [$i,$k,$b,$e,$l,$m,$n,$o,$f,$p,$q,$g,$d,$r,$s,$t,$u,$c,$v,$h,$w,$x,$y,$j,$z,$A,$B,$a];
         | 
| 650 | 
            +
                return nil}catch(_e){if(_e instanceof a$c && (!_e.a$b || _e.a$b==137))return _e.a$a;throw(_e)}}},a$c: "DOM"});$B = a$d({a$j: [],a$e: $k,a$c: "Regexp",a$d: RegExp});$t = a$d({a$j: [],a$e: $u,a$c: "LocalJumpError"});      $b.a$e = $k;
         | 
| 651 | 
            +
            var a$k = [$i,$k,$l,$m,$n,$o,$p,$q,$r,$s,$h,$f,$u,$v,$g,$w,$b,$e,$c,$x,$j,$a,$y,$d,$A,$z,$B,$t];
         | 
| 634 652 | 
             
            a$l(a$k);
         | 
| 635 | 
            -
            function main() { return $A.$ | 
| 653 | 
            +
            function main() { return $A.$aN.apply($A, arguments); }
         |